@fireproof/core 0.21.0-dev-preview-4 → 0.21.0-dev-preview-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.
Files changed (125) hide show
  1. package/blockstore/attachable-store.d.ts.map +1 -1
  2. package/blockstore/attachable-store.js +5 -4
  3. package/blockstore/attachable-store.js.map +1 -1
  4. package/blockstore/loader.d.ts +1 -2
  5. package/blockstore/loader.d.ts.map +1 -1
  6. package/blockstore/loader.js +10 -40
  7. package/blockstore/loader.js.map +1 -1
  8. package/blockstore/store.js +1 -1
  9. package/blockstore/store.js.map +1 -1
  10. package/blockstore/types.d.ts +2 -0
  11. package/blockstore/types.d.ts.map +1 -1
  12. package/blockstore/types.js.map +1 -1
  13. package/database.d.ts +1 -0
  14. package/database.d.ts.map +1 -1
  15. package/database.js +1 -0
  16. package/database.js.map +1 -1
  17. package/ledger.d.ts +2 -3
  18. package/ledger.d.ts.map +1 -1
  19. package/ledger.js +19 -16
  20. package/ledger.js.map +1 -1
  21. package/package.json +1 -1
  22. package/protocols/cloud/http-connection.d.ts +1 -2
  23. package/protocols/cloud/http-connection.d.ts.map +1 -1
  24. package/protocols/cloud/http-connection.js +0 -1
  25. package/protocols/cloud/http-connection.js.map +1 -1
  26. package/protocols/cloud/msg-types-data.d.ts +4 -4
  27. package/protocols/cloud/msg-types-data.d.ts.map +1 -1
  28. package/protocols/cloud/msg-types-data.js.map +1 -1
  29. package/protocols/cloud/msg-types-meta.d.ts +13 -13
  30. package/protocols/cloud/msg-types-meta.d.ts.map +1 -1
  31. package/protocols/cloud/msg-types-meta.js.map +1 -1
  32. package/protocols/cloud/msg-types-wal.d.ts +4 -4
  33. package/protocols/cloud/msg-types-wal.d.ts.map +1 -1
  34. package/protocols/cloud/msg-types-wal.js.map +1 -1
  35. package/protocols/cloud/msg-types.d.ts +19 -33
  36. package/protocols/cloud/msg-types.d.ts.map +1 -1
  37. package/protocols/cloud/msg-types.js +1 -4
  38. package/protocols/cloud/msg-types.js.map +1 -1
  39. package/protocols/cloud/msger.d.ts +38 -47
  40. package/protocols/cloud/msger.d.ts.map +1 -1
  41. package/protocols/cloud/msger.js +106 -211
  42. package/protocols/cloud/msger.js.map +1 -1
  43. package/protocols/cloud/ws-connection.d.ts +3 -14
  44. package/protocols/cloud/ws-connection.d.ts.map +1 -1
  45. package/protocols/cloud/ws-connection.js +34 -73
  46. package/protocols/cloud/ws-connection.js.map +1 -1
  47. package/protocols/index.d.ts +0 -1
  48. package/protocols/index.d.ts.map +1 -1
  49. package/protocols/index.js +0 -1
  50. package/protocols/index.js.map +1 -1
  51. package/react/types.d.ts +8 -28
  52. package/react/types.d.ts.map +1 -1
  53. package/react/use-attach.d.ts +4 -9
  54. package/react/use-attach.d.ts.map +1 -1
  55. package/react/use-attach.js +43 -136
  56. package/react/use-attach.js.map +1 -1
  57. package/react/use-fireproof.js +2 -2
  58. package/react/use-fireproof.js.map +1 -1
  59. package/runtime/gateways/cloud/gateway.d.ts +8 -8
  60. package/runtime/gateways/cloud/gateway.d.ts.map +1 -1
  61. package/runtime/gateways/cloud/gateway.js +15 -17
  62. package/runtime/gateways/cloud/gateway.js.map +1 -1
  63. package/runtime/gateways/cloud/to-cloud.d.ts +9 -22
  64. package/runtime/gateways/cloud/to-cloud.d.ts.map +1 -1
  65. package/runtime/gateways/cloud/to-cloud.js +59 -75
  66. package/runtime/gateways/cloud/to-cloud.js.map +1 -1
  67. package/runtime/gateways/file/key-bag-file.d.ts +0 -1
  68. package/runtime/gateways/file/key-bag-file.d.ts.map +1 -1
  69. package/runtime/gateways/file/key-bag-file.js +0 -12
  70. package/runtime/gateways/file/key-bag-file.js.map +1 -1
  71. package/runtime/gateways/indexeddb/gateway-impl.d.ts.map +1 -1
  72. package/runtime/gateways/indexeddb/gateway-impl.js.map +1 -1
  73. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts +0 -1
  74. package/runtime/gateways/indexeddb/key-bag-indexeddb.d.ts.map +1 -1
  75. package/runtime/gateways/indexeddb/key-bag-indexeddb.js +0 -6
  76. package/runtime/gateways/indexeddb/key-bag-indexeddb.js.map +1 -1
  77. package/runtime/key-bag-memory.d.ts +0 -1
  78. package/runtime/key-bag-memory.d.ts.map +1 -1
  79. package/runtime/key-bag-memory.js +0 -7
  80. package/runtime/key-bag-memory.js.map +1 -1
  81. package/runtime/key-bag.d.ts +0 -3
  82. package/runtime/key-bag.d.ts.map +1 -1
  83. package/runtime/key-bag.js +0 -6
  84. package/runtime/key-bag.js.map +1 -1
  85. package/runtime/keyed-crypto.d.ts.map +1 -1
  86. package/runtime/keyed-crypto.js +5 -5
  87. package/runtime/keyed-crypto.js.map +1 -1
  88. package/tests/blockstore/keyed-crypto.test.ts +150 -0
  89. package/tests/fireproof/attachable.test.ts +1 -1
  90. package/tests/utils.test.ts +192 -0
  91. package/types.d.ts +2 -1
  92. package/types.d.ts.map +1 -1
  93. package/use-fireproof/iframe-strategy.d.ts +4 -6
  94. package/use-fireproof/iframe-strategy.d.ts.map +1 -1
  95. package/use-fireproof/iframe-strategy.js +11 -7
  96. package/use-fireproof/iframe-strategy.js.map +1 -1
  97. package/use-fireproof/index.d.ts +2 -6
  98. package/use-fireproof/index.d.ts.map +1 -1
  99. package/use-fireproof/index.js +3 -23
  100. package/use-fireproof/index.js.map +1 -1
  101. package/use-fireproof/redirect-strategy.d.ts +4 -11
  102. package/use-fireproof/redirect-strategy.d.ts.map +1 -1
  103. package/use-fireproof/redirect-strategy.js +20 -142
  104. package/use-fireproof/redirect-strategy.js.map +1 -1
  105. package/utils.d.ts +6 -5
  106. package/utils.d.ts.map +1 -1
  107. package/utils.js +67 -19
  108. package/utils.js.map +1 -1
  109. package/protocols/dashboard/index.d.ts +0 -4
  110. package/protocols/dashboard/index.d.ts.map +0 -1
  111. package/protocols/dashboard/index.js +0 -4
  112. package/protocols/dashboard/index.js.map +0 -1
  113. package/protocols/dashboard/msg-api.d.ts +0 -11
  114. package/protocols/dashboard/msg-api.d.ts.map +0 -1
  115. package/protocols/dashboard/msg-api.js +0 -55
  116. package/protocols/dashboard/msg-api.js.map +0 -1
  117. package/protocols/dashboard/msg-is.d.ts +0 -45
  118. package/protocols/dashboard/msg-is.d.ts.map +0 -1
  119. package/protocols/dashboard/msg-is.js +0 -63
  120. package/protocols/dashboard/msg-is.js.map +0 -1
  121. package/protocols/dashboard/msg-types.d.ts +0 -397
  122. package/protocols/dashboard/msg-types.d.ts.map +0 -1
  123. package/protocols/dashboard/msg-types.js +0 -4
  124. package/protocols/dashboard/msg-types.js.map +0 -1
  125. package/tests/protocols/cloud/msger.test.ts +0 -563
@@ -1,9 +1,7 @@
1
1
  import { BuildURI, Result, runtimeFn, URI } from "@adviser/cement";
2
- import { buildReqGestalt, defaultGestalt, MsgIsResGestalt, MsgIsError, buildReqOpen, MsgIsResOpen, MsgIsConnected, MsgIsWithConn, } from "./msg-types.js";
2
+ import { buildReqGestalt, defaultGestalt, MsgIsResGestalt, buildReqOpen, MsgIsConnected, MsgIsError, MsgIsResOpen, MsgIsTid, buildReqClose, MsgIsResClose, } from "./msg-types.js";
3
3
  import { ensurePath, HttpConnection } from "./http-connection.js";
4
4
  import { WSConnection } from "./ws-connection.js";
5
- import { ensureLogger, sleep } from "../../utils.js";
6
- import pLimit from "p-limit";
7
5
  export function selectRandom(arr) {
8
6
  return arr[Math.floor(Math.random() * arr.length)];
9
7
  }
@@ -58,246 +56,143 @@ export async function authTypeFromUri(logger, curi) {
58
56
  },
59
57
  });
60
58
  }
61
- function initialFPUri(curl) {
62
- let gestaltUrl = URI.from(curl);
63
- if (["", "/"].includes(gestaltUrl.pathname)) {
64
- gestaltUrl = gestaltUrl.build().appendRelative("/fp").URI();
65
- }
66
- return gestaltUrl;
67
- }
68
- export class Msger {
69
- static connect(sthis, curl, imsgP = {}, conn, mowh) {
70
- const vc = new VirtualConnected(sthis, { curl, imsgP, conn, openWSorHttp: mowh });
71
- return Promise.resolve(Result.Ok(vc));
72
- }
73
- constructor() {
74
- }
75
- }
76
- export class MsgOpenWSAndHttp {
77
- async openHttp(vc, urls, msgP, exGestalt) {
78
- return Result.Ok(new HttpConnection(vc, urls, msgP, exGestalt));
79
- }
80
- async openWS(vc, url, msgP, exGestalt) {
81
- url = url.build().setParam("random", vc.nextId().str).URI();
82
- const wsUrl = ensurePath(url, "ws");
83
- let wsFactory;
84
- if (runtimeFn().isNodeIsh) {
85
- const { WebSocket } = await import("ws");
86
- wsFactory = () => new WebSocket(wsUrl);
59
+ export class MsgConnected {
60
+ static async connect(auth, mrc, conn = {}) {
61
+ if (Result.Is(mrc)) {
62
+ if (mrc.isErr()) {
63
+ return Result.Err(mrc.Err());
64
+ }
65
+ mrc = mrc.Ok();
87
66
  }
88
- else {
89
- wsFactory = () => new WebSocket(wsUrl);
67
+ const res = await mrc.request(buildReqOpen(mrc.sthis, auth, conn), { waitFor: MsgIsResOpen });
68
+ if (MsgIsError(res) || !MsgIsResOpen(res)) {
69
+ return mrc.sthis.logger.Error().Err(res).Msg("unexpected response").ResultError();
90
70
  }
91
- return Result.Ok(new WSConnection(vc, wsFactory(), msgP, exGestalt));
71
+ return Result.Ok(new MsgConnected(mrc, res.conn));
92
72
  }
93
- }
94
- export class VirtualConnected {
95
- constructor(sthis, opts) {
96
- this.retries = [];
97
- this.activeBinds = new Map();
98
- this.mutex = pLimit(1);
99
- this.sthis = sthis;
100
- this.id = sthis.nextId().str;
101
- this.logger = ensureLogger(sthis, "VirtualConnected");
102
- this.opts = {
103
- ...opts,
104
- openWSorHttp: opts.openWSorHttp || new MsgOpenWSAndHttp(),
105
- retryCount: opts.retryCount || 3,
106
- retryDelay: opts.retryDelay || 500,
107
- conn: { reqId: sthis.nextId().str, ...opts.conn },
108
- };
109
- this.mowh = this.opts.openWSorHttp;
73
+ constructor(raw, conn) {
74
+ this.sthis = raw.sthis;
75
+ this.raw = raw;
76
+ this.exchangedGestalt = raw.exchangedGestalt;
77
+ this.conn = conn;
78
+ this.activeBinds = raw.activeBinds;
79
+ this.id = this.sthis.nextId().str;
110
80
  }
111
- get conn() {
112
- if (!this.virtualConn) {
113
- throw new Error("conn is not set");
114
- }
115
- return this.virtualConn;
81
+ attachAuth(auth) {
82
+ return new MsgConnectedAuth(this, auth);
116
83
  }
117
- async handleBindRealConn(realConn, req, as) {
118
- const stream = realConn.bind({ ...as.bind.msg, auth: req.auth, conn: { ...this.conn, ...req.conn } }, as.bind.opts);
119
- for await (const msg of stream) {
120
- try {
121
- if (MsgIsConnected(msg, this.conn)) {
122
- as.controller?.enqueue(msg);
123
- }
124
- }
125
- catch (err) {
126
- this.sthis.logger.Error().Err(err).Any({ msg }).Msg("Error in handleBindRealConn callback[ignored]");
127
- }
128
- }
84
+ }
85
+ export class MsgConnectedAuth {
86
+ constructor(conn, authFactory) {
87
+ this.id = conn.id;
88
+ this.raw = conn.raw;
89
+ this.conn = conn.conn;
90
+ this.sthis = conn.sthis;
91
+ this.authFactory = authFactory;
92
+ this.exchangedGestalt = conn.exchangedGestalt;
93
+ this.activeBinds = conn.activeBinds;
129
94
  }
130
95
  bind(req, opts) {
131
- const id = this.sthis.nextId().str;
132
- return new ReadableStream({
133
- cancel: (err) => {
134
- this.sthis.logger.Debug().Msg("vc-bind-cancel", id, err);
135
- this.activeBinds.delete(id);
136
- },
137
- start: (ctl) => {
138
- this.getRealConn(req, opts, async (realConn) => {
139
- const as = {
140
- id,
141
- bind: {
142
- msg: req,
143
- opts,
144
- },
145
- controller: ctl,
146
- };
147
- this.activeBinds.set(id, as);
148
- this.handleBindRealConn(realConn, req, as);
149
- return Result.Ok(undefined);
150
- }).catch((err) => {
151
- ctl.error({
152
- type: "error",
153
- src: "VirtualConnection:bind",
154
- message: err.message,
155
- tid: req.tid,
156
- version: req.version,
157
- auth: req.auth,
158
- stack: [],
159
- });
160
- });
96
+ const stream = this.raw.bind({ ...req, conn: req.conn || this.conn }, opts);
97
+ const ts = new TransformStream({
98
+ transform: (chunk, controller) => {
99
+ if (!MsgIsTid(chunk, req.tid)) {
100
+ return;
101
+ }
102
+ if (MsgIsConnected(chunk, this.conn)) {
103
+ if (opts.waitFor?.(chunk) || MsgIsError(chunk)) {
104
+ controller.enqueue(chunk);
105
+ }
106
+ }
161
107
  },
162
108
  });
109
+ stream.pipeThrough(ts);
110
+ return ts.readable;
111
+ }
112
+ authType() {
113
+ return this.authFactory();
114
+ }
115
+ msgConnAuth() {
116
+ return this.authType().then((r) => {
117
+ if (r.isErr()) {
118
+ return Result.Err(r);
119
+ }
120
+ return Result.Ok({ conn: this.conn, auth: r.Ok() });
121
+ });
163
122
  }
164
123
  request(req, opts) {
165
- return this.getRealConn(req, opts, (realConn) => realConn.request({
166
- ...req,
167
- conn: { ...this.virtualConn, ...req.conn },
168
- }, opts));
124
+ return this.raw.request({ ...req, conn: req.conn || this.conn }, opts);
169
125
  }
170
126
  send(msg) {
171
- return this.getRealConn(msg, {
172
- waitFor: () => true,
173
- }, async (realConn) => {
174
- const ret = await realConn.send({
175
- ...msg,
176
- conn: { ...this.conn, ...msg.conn },
177
- });
178
- return ret;
179
- });
127
+ return this.raw.send({ ...msg, conn: msg.conn || this.conn });
180
128
  }
181
- close(t) {
182
- return this.getRealConn(t, {
183
- waitFor: () => true,
184
- noRetry: true,
185
- }, (realConn) => realConn.close(t));
129
+ start() {
130
+ return this.raw.start();
131
+ }
132
+ async close(t) {
133
+ await this.request(buildReqClose(this.sthis, t.auth, this.conn), { waitFor: MsgIsResClose });
134
+ return await this.raw.close(t);
186
135
  }
187
136
  onMsg(msgFn) {
188
- throw new Error("Method not implemented.");
137
+ return this.raw.onMsg((msg) => {
138
+ if (MsgIsConnected(msg, this.conn)) {
139
+ msgFn(msg);
140
+ }
141
+ });
142
+ }
143
+ }
144
+ function initialFPUri(curl) {
145
+ let gestaltUrl = URI.from(curl);
146
+ if (["", "/"].includes(gestaltUrl.pathname)) {
147
+ gestaltUrl = gestaltUrl.build().appendRelative("/fp").URI();
148
+ }
149
+ return gestaltUrl;
150
+ }
151
+ export class Msger {
152
+ static async openHttp(sthis, urls, msgP, exGestalt) {
153
+ return Result.Ok(new HttpConnection(sthis, urls, msgP, exGestalt));
154
+ }
155
+ static async openWS(sthis, url, msgP, exGestalt) {
156
+ let ws;
157
+ url = url.build().setParam("random", sthis.nextId().str).URI();
158
+ const wsUrl = ensurePath(url, "ws");
159
+ if (runtimeFn().isNodeIsh) {
160
+ const { WebSocket } = await import("ws");
161
+ ws = new WebSocket(wsUrl);
162
+ }
163
+ else {
164
+ ws = new WebSocket(wsUrl);
165
+ }
166
+ return Result.Ok(new WSConnection(sthis, ws, msgP, exGestalt));
189
167
  }
190
- async connect(auth, curl, imsgP = {}) {
191
- const jsMsgP = defaultMsgParams(this.sthis, { ...imsgP, mime: "application/json", ende: jsonEnDe(this.sthis) });
168
+ static async open(sthis, auth, curl, imsgP = {}) {
169
+ const jsMsgP = defaultMsgParams(sthis, { ...imsgP, mime: "application/json", ende: jsonEnDe(sthis) });
192
170
  const gestaltUrl = initialFPUri(curl);
193
- const gs = defaultGestalt(defaultMsgParams(this.sthis, imsgP), { id: "FP-Universal-Client" });
194
- const rHC = await this.mowh.openHttp(this.sthis, [gestaltUrl], jsMsgP, { my: gs, remote: gs });
171
+ const gs = defaultGestalt(defaultMsgParams(sthis, imsgP), { id: "FP-Universal-Client" });
172
+ const rHC = await Msger.openHttp(sthis, [gestaltUrl], jsMsgP, { my: gs, remote: gs });
195
173
  if (rHC.isErr()) {
196
174
  return rHC;
197
175
  }
198
176
  const hc = rHC.Ok();
199
- const resGestalt = await hc.request(buildReqGestalt(this.sthis, auth, gs), {
177
+ const resGestalt = await hc.request(buildReqGestalt(sthis, auth, gs), {
200
178
  waitFor: MsgIsResGestalt,
201
- noConn: true,
202
179
  });
203
180
  if (!MsgIsResGestalt(resGestalt)) {
204
- return this.logger.Error().Any({ resGestalt }).Msg("should be ResGestalt").ResultError();
181
+ return sthis.logger.Error().Any({ resGestalt }).Msg("should be ResGestalt").ResultError();
205
182
  }
206
183
  await hc.close(resGestalt);
207
184
  const exGt = { my: gs, remote: resGestalt.gestalt };
208
- const msgP = defaultMsgParams(this.sthis, imsgP);
209
- this.exchangedGestalt = exGt;
210
- let rRealConn;
185
+ const msgP = defaultMsgParams(sthis, imsgP);
211
186
  if (exGt.remote.protocolCapabilities.includes("reqRes") && !exGt.remote.protocolCapabilities.includes("stream")) {
212
- rRealConn = await this.mowh.openHttp(this.sthis, exGt.remote.httpEndpoints.map((i) => BuildURI.from(curl).resolve(i).URI()), msgP, exGt);
213
- }
214
- else {
215
- const wsUrl = BuildURI.from(gestaltUrl).resolve(selectRandom(exGt.remote.wsEndpoints)).URI();
216
- rRealConn = await this.mowh.openWS(this.sthis, wsUrl, msgP, exGt);
217
- }
218
- if (rRealConn.isErr()) {
219
- return rRealConn;
220
- }
221
- const realConn = rRealConn.Ok();
222
- const rStart = await realConn.start();
223
- if (rStart.isErr()) {
224
- return Result.Err(rStart);
187
+ return applyStart(Msger.openHttp(sthis, exGt.remote.httpEndpoints.map((i) => BuildURI.from(curl).resolve(i).URI()), msgP, exGt));
225
188
  }
226
- return rRealConn;
189
+ const wsUrl = BuildURI.from(gestaltUrl).resolve(selectRandom(exGt.remote.wsEndpoints)).URI();
190
+ return applyStart(Msger.openWS(sthis, wsUrl, msgP, exGt));
227
191
  }
228
- async getQSIdWithSideEffect(msg, conn) {
229
- const mOpen = await this.request(buildReqOpen(this.sthis, msg.auth, conn), {
230
- waitFor: MsgIsResOpen,
231
- noConn: true,
232
- });
233
- if (MsgIsError(mOpen)) {
234
- return mOpen;
235
- }
236
- this.virtualConn = mOpen.conn;
237
- return mOpen;
192
+ static connect(sthis, auth, curl, imsgP = {}, conn = {}) {
193
+ return Msger.open(sthis, auth, curl, imsgP).then((srv) => MsgConnected.connect(auth, srv, conn));
238
194
  }
239
- async getRealConn(msg, opts, action) {
240
- if (!this.realConn) {
241
- await this.mutex(async () => {
242
- if (this.retries.length >= this.opts.retryCount) {
243
- return Promise.resolve({
244
- type: "error",
245
- src: "VirtualConnection:getRealConn",
246
- message: "retry count exceeded",
247
- tid: msg.tid,
248
- version: msg.version,
249
- auth: msg.auth,
250
- stack: [],
251
- });
252
- }
253
- const rConn = await this.connect(msg.auth, this.opts.curl, this.opts.imsgP);
254
- if (rConn.isErr()) {
255
- this.retries.push({ retryCount: this.retries.length + 1 });
256
- await sleep(this.opts.retryDelay * this.retries.length);
257
- return this.getRealConn(msg, opts, action);
258
- }
259
- this.realConn = rConn.Ok();
260
- const mQSid = await this.getQSIdWithSideEffect(msg, {
261
- reqId: this.sthis.nextId().str,
262
- ...this.virtualConn,
263
- ...this.opts.conn,
264
- });
265
- if (MsgIsError(mQSid)) {
266
- return {
267
- ...mQSid,
268
- tid: msg.tid,
269
- };
270
- }
271
- for (const as of this.activeBinds.values()) {
272
- void this.handleBindRealConn(this.realConn, msg, as);
273
- }
274
- });
275
- const ret = await this.getRealConn(msg, opts, action);
276
- return ret;
277
- }
278
- else {
279
- if (!this.realConn.isReady) {
280
- await this.realConn.close(msg);
281
- this.realConn = undefined;
282
- this.retries = [];
283
- return this.getRealConn(msg, opts, action);
284
- }
285
- if (!opts.noConn && !this.virtualConn) {
286
- const conn = MsgIsWithConn(msg) ? { conn: msg.conn } : {};
287
- return {
288
- type: "error",
289
- src: msg,
290
- message: "virtualConn is not set",
291
- tid: msg.tid,
292
- ...conn,
293
- version: msg.version,
294
- auth: msg.auth,
295
- stack: [],
296
- };
297
- }
298
- const ret = await action(this.realConn);
299
- return ret;
300
- }
195
+ constructor() {
301
196
  }
302
197
  }
303
198
  //# sourceMappingURL=msger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"msger.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/msger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"msger.js","sourceRoot":"","sources":["../../../../../src/protocols/cloud/msger.ts"],"names":[],"mappings":"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"}
@@ -7,24 +7,14 @@ export interface WSReqOpen {
7
7
  readonly reqOpen: ReqOpen;
8
8
  readonly ws: WebSocket;
9
9
  }
10
- interface WaitForTidItem {
11
- readonly opts: WaitForTid;
12
- readonly timeout?: ReturnType<typeof setTimeout>;
13
- }
14
- declare class WaitForTids {
15
- readonly waitForTids: Map<string, WaitForTidItem>;
16
- start(sthis: SuperThis, logger: Logger, waitFor: WaitForTid): void;
17
- stop(tid: string): void;
18
- resolve(msg: MsgBase): WaitForTidItem | undefined;
19
- }
20
10
  export declare class WSConnection extends MsgRawConnectionBase implements MsgRawConnection {
21
11
  #private;
22
12
  readonly logger: Logger;
23
13
  readonly msgP: MsgerParamsWithEnDe;
24
14
  readonly ws: WebSocket;
25
- readonly waitForTid: WaitForTids;
15
+ readonly waitForTid: Map<string, WaitForTid>;
16
+ opened: boolean;
26
17
  readonly id: string;
27
- isReady: boolean;
28
18
  constructor(sthis: SuperThis, ws: WebSocket, msgP: MsgerParamsWithEnDe, exGestalt: ExchangedGestalt);
29
19
  start(): Promise<Result<void>>;
30
20
  close(): Promise<Result<void>>;
@@ -32,9 +22,8 @@ export declare class WSConnection extends MsgRawConnectionBase implements MsgRaw
32
22
  send<Q extends MsgBase, S extends MsgBase>(msg: Q): Promise<S>;
33
23
  onMsg<S extends MsgBase>(fn: OnMsgFn<S>): UnReg;
34
24
  onClose(fn: UnReg): UnReg;
35
- readonly activeBinds: Map<string, ActiveStream>;
25
+ readonly activeBinds: Map<string, ActiveStream<MsgBase, MsgBase>>;
36
26
  bind<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): ReadableStream<MsgWithError<S>>;
37
27
  request<Q extends MsgBase, S extends MsgBase>(req: Q, opts: RequestOpts): Promise<MsgWithError<S>>;
38
28
  }
39
- export {};
40
29
  //# sourceMappingURL=ws-connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ws-connection.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/ws-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,EAAE,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,OAAO,EAA6B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;CACxB;AAED,UAAU,cAAc;IACtB,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;CAClD;AAED,cAAM,WAAW;IACf,QAAQ,CAAC,WAAW,8BAAqC;IAEzD,KAAK,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;IAuB3D,IAAI,CAAC,GAAG,EAAE,MAAM;IAWhB,OAAO,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,GAAG,SAAS;CAalD;AAID,qBAAa,YAAa,SAAQ,oBAAqB,YAAW,gBAAgB;;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAMvB,QAAQ,CAAC,UAAU,cAAqB;IAExC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,OAAO,UAAS;gBAEJ,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB;IAS7F,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAmE9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAQpC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAK/D,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM9D,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;IAM/C,OAAO,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK;IAMzB,QAAQ,CAAC,WAAW,4BAAmC;IACvD,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA+ChG,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAgBzG"}
1
+ {"version":3,"file":"ws-connection.d.ts","sourceRoot":"","sources":["../../../../../src/protocols/cloud/ws-connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,MAAM,EAAE,MAAM,EAAa,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,OAAO,EAA6B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnH,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,SAAS;IACxB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;CACxB;AAED,qBAAa,YAAa,SAAQ,oBAAqB,YAAW,gBAAgB;;IAChF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,mBAAmB,CAAC;IACnC,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IAMvB,QAAQ,CAAC,UAAU,0BAAiC;IAEpD,MAAM,UAAS;IAEf,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;gBAER,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,SAAS,EAAE,gBAAgB;IAS7F,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IA+E9B,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAQpC,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAK/D,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAM9D,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK;IAM/C,OAAO,CAAC,EAAE,EAAE,KAAK,GAAG,KAAK;IAMzB,QAAQ,CAAC,WAAW,8CAAqD;IACzE,IAAI,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IA2ChG,OAAO,CAAC,CAAC,SAAS,OAAO,EAAE,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAczG"}
@@ -5,60 +5,16 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
5
5
  };
6
6
  var _WSConnection_onMsg, _WSConnection_onClose, _WSConnection_wsOnMessage;
7
7
  import { exception2Result, Future, Result, top_uint8 } from "@adviser/cement";
8
- import { MsgIsError, buildErrorMsg } from "./msg-types.js";
8
+ import { MsgIsError, buildErrorMsg, MsgIsTid } from "./msg-types.js";
9
9
  import { MsgRawConnectionBase } from "./msg-raw-connection-base.js";
10
10
  import { ensureLogger } from "../../utils.js";
11
- class WaitForTids {
12
- constructor() {
13
- this.waitForTids = new Map();
14
- }
15
- start(sthis, logger, waitFor) {
16
- let timeout = undefined;
17
- if (typeof waitFor.timeout === "number" && waitFor.timeout > 0) {
18
- timeout = setTimeout(() => {
19
- this.waitForTids.delete(waitFor.tid);
20
- waitFor.future.resolve(buildErrorMsg({ logger, sthis }, {
21
- tid: waitFor.tid,
22
- }, logger.Error().Any({ tid: waitFor }).Msg("Timeout").AsError()));
23
- }, waitFor.timeout);
24
- }
25
- this.waitForTids.set(waitFor.tid, {
26
- opts: waitFor,
27
- timeout,
28
- });
29
- }
30
- stop(tid) {
31
- const item = this.waitForTids.get(tid);
32
- if (!item) {
33
- return;
34
- }
35
- if (item.timeout) {
36
- clearTimeout(item.timeout);
37
- }
38
- this.waitForTids.delete(tid);
39
- }
40
- resolve(msg) {
41
- const item = this.waitForTids.get(msg.tid);
42
- if (!item) {
43
- return undefined;
44
- }
45
- if (item.opts.waitFor(msg)) {
46
- if (item.timeout) {
47
- clearTimeout(item.timeout);
48
- }
49
- item.opts.future.resolve(msg);
50
- }
51
- return item;
52
- }
53
- }
54
- const DefaultRoundTripTime = 1000;
55
11
  export class WSConnection extends MsgRawConnectionBase {
56
12
  constructor(sthis, ws, msgP, exGestalt) {
57
13
  super(sthis, exGestalt);
58
14
  _WSConnection_onMsg.set(this, new Map());
59
15
  _WSConnection_onClose.set(this, new Map());
60
- this.waitForTid = new WaitForTids();
61
- this.isReady = false;
16
+ this.waitForTid = new Map();
17
+ this.opened = false;
62
18
  _WSConnection_wsOnMessage.set(this, async (event) => {
63
19
  const rMsg = await exception2Result(async () => {
64
20
  const msg = this.msgP.ende.decode(await top_uint8(event.data));
@@ -69,10 +25,24 @@ export class WSConnection extends MsgRawConnectionBase {
69
25
  return;
70
26
  }
71
27
  const msg = rMsg.Ok();
72
- this.waitForTid.resolve(msg);
28
+ const waitFor = this.waitForTid.get(msg.tid);
73
29
  Array.from(__classPrivateFieldGet(this, _WSConnection_onMsg, "f").values()).forEach((cb) => {
74
30
  cb(msg);
75
31
  });
32
+ if (waitFor) {
33
+ if (MsgIsError(msg)) {
34
+ this.waitForTid.delete(msg.tid);
35
+ waitFor.future.resolve(msg);
36
+ }
37
+ else if (waitFor.waitFor(msg)) {
38
+ this.waitForTid.delete(msg.tid);
39
+ waitFor.future.resolve(msg);
40
+ }
41
+ else {
42
+ this.waitForTid.delete(msg.tid);
43
+ waitFor.future.resolve(msg);
44
+ }
45
+ }
76
46
  });
77
47
  this.activeBinds = new Map();
78
48
  this.id = sthis.nextId().str;
@@ -89,7 +59,7 @@ export class WSConnection extends MsgRawConnectionBase {
89
59
  }, this.msgP.timeout);
90
60
  this.ws.onopen = () => {
91
61
  onOpenFuture.resolve(Result.Ok(undefined));
92
- this.isReady = true;
62
+ this.opened = true;
93
63
  };
94
64
  this.ws.onerror = (ierr) => {
95
65
  const err = this.logger.Error().Err(ierr).Msg("WS Error").AsError();
@@ -98,13 +68,13 @@ export class WSConnection extends MsgRawConnectionBase {
98
68
  this.toMsg(res);
99
69
  };
100
70
  this.ws.onmessage = (evt) => {
101
- if (!this.isReady) {
71
+ if (!this.opened) {
102
72
  this.toMsg(buildErrorMsg(this, {}, this.logger.Error().Msg("Received message before onOpen").AsError()));
103
73
  }
104
74
  __classPrivateFieldGet(this, _WSConnection_wsOnMessage, "f").call(this, evt);
105
75
  };
106
76
  this.ws.onclose = () => {
107
- this.isReady = false;
77
+ this.opened = false;
108
78
  this.close().catch((ierr) => {
109
79
  const err = this.logger.Error().Err(ierr).Msg("close error").AsError();
110
80
  onOpenFuture.resolve(Result.Err(err));
@@ -151,7 +121,6 @@ export class WSConnection extends MsgRawConnectionBase {
151
121
  msg: req,
152
122
  opts,
153
123
  },
154
- controller: undefined,
155
124
  };
156
125
  this.activeBinds.set(state.id, state);
157
126
  return new ReadableStream({
@@ -159,27 +128,21 @@ export class WSConnection extends MsgRawConnectionBase {
159
128
  this.activeBinds.delete(state.id);
160
129
  },
161
130
  start: (controller) => {
162
- state.controller = controller;
163
131
  this.onMsg((msg) => {
164
- try {
165
- if (MsgIsError(msg)) {
166
- controller.enqueue(msg);
167
- return;
168
- }
169
- if (!opts.waitFor) {
170
- controller.enqueue(msg);
171
- }
172
- else if (opts.waitFor(msg)) {
173
- controller.enqueue(msg);
174
- }
132
+ if (MsgIsError(msg)) {
133
+ controller.enqueue(msg);
134
+ return;
175
135
  }
176
- catch (err) {
177
- this.logger.Error().Err(err).Any({ msg }).Msg("Error in onMsg callback[ignored]");
136
+ if (!MsgIsTid(msg, req.tid)) {
137
+ return;
138
+ }
139
+ if (opts.waitFor && opts.waitFor(msg)) {
140
+ controller.enqueue(msg);
178
141
  }
179
142
  });
180
143
  this.send(req);
181
144
  const future = new Future();
182
- this.waitForTid.start(this.sthis, this.logger, { tid: req.tid, future, waitFor: opts.waitFor });
145
+ this.waitForTid.set(req.tid, { tid: req.tid, future, waitFor: opts.waitFor, timeout: opts.timeout });
183
146
  future.asPromise().then((msg) => {
184
147
  if (MsgIsError(msg)) {
185
148
  controller.enqueue(msg);
@@ -190,13 +153,11 @@ export class WSConnection extends MsgRawConnectionBase {
190
153
  });
191
154
  }
192
155
  async request(req, opts) {
156
+ if (!this.opened) {
157
+ return buildErrorMsg(this, req, this.logger.Error().Msg("Connection not open").AsError());
158
+ }
193
159
  const future = new Future();
194
- this.waitForTid.start(this.sthis, this.logger, {
195
- tid: req.tid,
196
- future,
197
- waitFor: opts.waitFor,
198
- timeout: opts.timeout ?? DefaultRoundTripTime,
199
- });
160
+ this.waitForTid.set(req.tid, { tid: req.tid, future, waitFor: opts.waitFor, timeout: opts.timeout });
200
161
  await this.send(req);
201
162
  return future.asPromise();
202
163
  }