@naylence/runtime 0.3.6-test.107 → 0.3.6-test.108
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/dist/browser/index.cjs +3 -61
- package/dist/browser/index.mjs +3 -61
- package/dist/cjs/naylence/fame/delivery/default-delivery-tracker.js +1 -59
- package/dist/cjs/version.js +2 -2
- package/dist/esm/naylence/fame/delivery/default-delivery-tracker.js +1 -59
- package/dist/esm/version.js +2 -2
- package/dist/node/index.cjs +3 -61
- package/dist/node/index.mjs +3 -61
- package/dist/node/node.cjs +3 -61
- package/dist/node/node.mjs +3 -61
- package/dist/types/naylence/fame/delivery/default-delivery-tracker.d.ts +0 -6
- package/dist/types/version.d.ts +1 -1
- package/package.json +1 -1
package/dist/browser/index.cjs
CHANGED
|
@@ -98,12 +98,12 @@ installProcessEnvShim();
|
|
|
98
98
|
// --- END ENV SHIM ---
|
|
99
99
|
|
|
100
100
|
// This file is auto-generated during build - do not edit manually
|
|
101
|
-
// Generated from package.json version: 0.3.6-test.
|
|
101
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
102
102
|
/**
|
|
103
103
|
* The package version, injected at build time.
|
|
104
104
|
* @internal
|
|
105
105
|
*/
|
|
106
|
-
const VERSION = '0.3.6-test.
|
|
106
|
+
const VERSION = '0.3.6-test.108';
|
|
107
107
|
|
|
108
108
|
/**
|
|
109
109
|
* Fame protocol specific error classes with WebSocket close codes and proper inheritance.
|
|
@@ -7175,9 +7175,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7175
7175
|
this.ackDoneSince = new Map();
|
|
7176
7176
|
this.replyDoneSince = new Map();
|
|
7177
7177
|
this.pendingAckDispatches = new Set();
|
|
7178
|
-
this.recentlyHandled = new Map();
|
|
7179
|
-
this.recentlyHandledOrder = [];
|
|
7180
|
-
this.recentlyHandledTtlMs = 60000;
|
|
7181
7178
|
this.isPreparingToStop = false;
|
|
7182
7179
|
this.shutdownRequestedAtMs = null;
|
|
7183
7180
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -7399,22 +7396,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7399
7396
|
}
|
|
7400
7397
|
}
|
|
7401
7398
|
else {
|
|
7402
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
7403
|
-
if (wasRecentlyHandled) {
|
|
7404
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
7405
|
-
envp_id: envelope.id,
|
|
7406
|
-
});
|
|
7407
|
-
return new TrackedEnvelope({
|
|
7408
|
-
timeoutAtMs: 0,
|
|
7409
|
-
overallTimeoutAtMs: 0,
|
|
7410
|
-
expectedResponseType: envelope.rtype ?? core.FameResponseType.NONE,
|
|
7411
|
-
createdAtMs: Date.now(),
|
|
7412
|
-
status: EnvelopeStatus.HANDLED,
|
|
7413
|
-
mailboxType: MailboxType.INBOX,
|
|
7414
|
-
originalEnvelope: envelope,
|
|
7415
|
-
serviceName: inboxName,
|
|
7416
|
-
});
|
|
7417
|
-
}
|
|
7418
7399
|
tracked = new TrackedEnvelope({
|
|
7419
7400
|
timeoutAtMs: 0,
|
|
7420
7401
|
overallTimeoutAtMs: 0,
|
|
@@ -7436,12 +7417,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7436
7417
|
async onEnvelopeHandled(envelope) {
|
|
7437
7418
|
const inbox = this.ensureInbox();
|
|
7438
7419
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
7420
|
+
// Delete the envelope from inbox to prevent growth
|
|
7439
7421
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
7440
|
-
await this.lock.runExclusive(async () => {
|
|
7441
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
7442
|
-
});
|
|
7443
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
7444
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
7445
7422
|
}
|
|
7446
7423
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
7447
7424
|
const inbox = this.ensureInbox();
|
|
@@ -7808,8 +7785,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7808
7785
|
}
|
|
7809
7786
|
this.streamDone.clear();
|
|
7810
7787
|
this.correlationToEnvelope.clear();
|
|
7811
|
-
this.recentlyHandled.clear();
|
|
7812
|
-
this.recentlyHandledOrder.length = 0;
|
|
7813
7788
|
return values;
|
|
7814
7789
|
});
|
|
7815
7790
|
for (const timer of timers) {
|
|
@@ -8391,39 +8366,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
8391
8366
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
8392
8367
|
}
|
|
8393
8368
|
}
|
|
8394
|
-
markRecentlyHandled(envelopeId) {
|
|
8395
|
-
const now = Date.now();
|
|
8396
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
8397
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
8398
|
-
this.trimRecentlyHandled(now);
|
|
8399
|
-
}
|
|
8400
|
-
wasRecentlyHandled(envelopeId) {
|
|
8401
|
-
const now = Date.now();
|
|
8402
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
8403
|
-
if (timestamp === undefined) {
|
|
8404
|
-
return false;
|
|
8405
|
-
}
|
|
8406
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
8407
|
-
this.recentlyHandled.delete(envelopeId);
|
|
8408
|
-
return false;
|
|
8409
|
-
}
|
|
8410
|
-
return true;
|
|
8411
|
-
}
|
|
8412
|
-
trimRecentlyHandled(now) {
|
|
8413
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
8414
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
8415
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
8416
|
-
if (timestamp === undefined) {
|
|
8417
|
-
this.recentlyHandledOrder.shift();
|
|
8418
|
-
continue;
|
|
8419
|
-
}
|
|
8420
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
8421
|
-
break;
|
|
8422
|
-
}
|
|
8423
|
-
this.recentlyHandled.delete(candidate);
|
|
8424
|
-
this.recentlyHandledOrder.shift();
|
|
8425
|
-
}
|
|
8426
|
-
}
|
|
8427
8369
|
getShutdownRetryDeferDelay(nowMs) {
|
|
8428
8370
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
8429
8371
|
return null;
|
package/dist/browser/index.mjs
CHANGED
|
@@ -96,12 +96,12 @@ installProcessEnvShim();
|
|
|
96
96
|
// --- END ENV SHIM ---
|
|
97
97
|
|
|
98
98
|
// This file is auto-generated during build - do not edit manually
|
|
99
|
-
// Generated from package.json version: 0.3.6-test.
|
|
99
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
100
100
|
/**
|
|
101
101
|
* The package version, injected at build time.
|
|
102
102
|
* @internal
|
|
103
103
|
*/
|
|
104
|
-
const VERSION = '0.3.6-test.
|
|
104
|
+
const VERSION = '0.3.6-test.108';
|
|
105
105
|
|
|
106
106
|
/**
|
|
107
107
|
* Fame protocol specific error classes with WebSocket close codes and proper inheritance.
|
|
@@ -7173,9 +7173,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7173
7173
|
this.ackDoneSince = new Map();
|
|
7174
7174
|
this.replyDoneSince = new Map();
|
|
7175
7175
|
this.pendingAckDispatches = new Set();
|
|
7176
|
-
this.recentlyHandled = new Map();
|
|
7177
|
-
this.recentlyHandledOrder = [];
|
|
7178
|
-
this.recentlyHandledTtlMs = 60000;
|
|
7179
7176
|
this.isPreparingToStop = false;
|
|
7180
7177
|
this.shutdownRequestedAtMs = null;
|
|
7181
7178
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -7397,22 +7394,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7397
7394
|
}
|
|
7398
7395
|
}
|
|
7399
7396
|
else {
|
|
7400
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
7401
|
-
if (wasRecentlyHandled) {
|
|
7402
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
7403
|
-
envp_id: envelope.id,
|
|
7404
|
-
});
|
|
7405
|
-
return new TrackedEnvelope({
|
|
7406
|
-
timeoutAtMs: 0,
|
|
7407
|
-
overallTimeoutAtMs: 0,
|
|
7408
|
-
expectedResponseType: envelope.rtype ?? FameResponseType.NONE,
|
|
7409
|
-
createdAtMs: Date.now(),
|
|
7410
|
-
status: EnvelopeStatus.HANDLED,
|
|
7411
|
-
mailboxType: MailboxType.INBOX,
|
|
7412
|
-
originalEnvelope: envelope,
|
|
7413
|
-
serviceName: inboxName,
|
|
7414
|
-
});
|
|
7415
|
-
}
|
|
7416
7397
|
tracked = new TrackedEnvelope({
|
|
7417
7398
|
timeoutAtMs: 0,
|
|
7418
7399
|
overallTimeoutAtMs: 0,
|
|
@@ -7434,12 +7415,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7434
7415
|
async onEnvelopeHandled(envelope) {
|
|
7435
7416
|
const inbox = this.ensureInbox();
|
|
7436
7417
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
7418
|
+
// Delete the envelope from inbox to prevent growth
|
|
7437
7419
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
7438
|
-
await this.lock.runExclusive(async () => {
|
|
7439
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
7440
|
-
});
|
|
7441
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
7442
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
7443
7420
|
}
|
|
7444
7421
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
7445
7422
|
const inbox = this.ensureInbox();
|
|
@@ -7806,8 +7783,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7806
7783
|
}
|
|
7807
7784
|
this.streamDone.clear();
|
|
7808
7785
|
this.correlationToEnvelope.clear();
|
|
7809
|
-
this.recentlyHandled.clear();
|
|
7810
|
-
this.recentlyHandledOrder.length = 0;
|
|
7811
7786
|
return values;
|
|
7812
7787
|
});
|
|
7813
7788
|
for (const timer of timers) {
|
|
@@ -8389,39 +8364,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
8389
8364
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
8390
8365
|
}
|
|
8391
8366
|
}
|
|
8392
|
-
markRecentlyHandled(envelopeId) {
|
|
8393
|
-
const now = Date.now();
|
|
8394
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
8395
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
8396
|
-
this.trimRecentlyHandled(now);
|
|
8397
|
-
}
|
|
8398
|
-
wasRecentlyHandled(envelopeId) {
|
|
8399
|
-
const now = Date.now();
|
|
8400
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
8401
|
-
if (timestamp === undefined) {
|
|
8402
|
-
return false;
|
|
8403
|
-
}
|
|
8404
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
8405
|
-
this.recentlyHandled.delete(envelopeId);
|
|
8406
|
-
return false;
|
|
8407
|
-
}
|
|
8408
|
-
return true;
|
|
8409
|
-
}
|
|
8410
|
-
trimRecentlyHandled(now) {
|
|
8411
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
8412
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
8413
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
8414
|
-
if (timestamp === undefined) {
|
|
8415
|
-
this.recentlyHandledOrder.shift();
|
|
8416
|
-
continue;
|
|
8417
|
-
}
|
|
8418
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
8419
|
-
break;
|
|
8420
|
-
}
|
|
8421
|
-
this.recentlyHandled.delete(candidate);
|
|
8422
|
-
this.recentlyHandledOrder.shift();
|
|
8423
|
-
}
|
|
8424
|
-
}
|
|
8425
8367
|
getShutdownRetryDeferDelay(nowMs) {
|
|
8426
8368
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
8427
8369
|
return null;
|
|
@@ -149,9 +149,6 @@ class DefaultDeliveryTracker extends task_spawner_js_1.TaskSpawner {
|
|
|
149
149
|
this.ackDoneSince = new Map();
|
|
150
150
|
this.replyDoneSince = new Map();
|
|
151
151
|
this.pendingAckDispatches = new Set();
|
|
152
|
-
this.recentlyHandled = new Map();
|
|
153
|
-
this.recentlyHandledOrder = [];
|
|
154
|
-
this.recentlyHandledTtlMs = 60000;
|
|
155
152
|
this.isPreparingToStop = false;
|
|
156
153
|
this.shutdownRequestedAtMs = null;
|
|
157
154
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -387,22 +384,6 @@ class DefaultDeliveryTracker extends task_spawner_js_1.TaskSpawner {
|
|
|
387
384
|
}
|
|
388
385
|
}
|
|
389
386
|
else {
|
|
390
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
391
|
-
if (wasRecentlyHandled) {
|
|
392
|
-
logger.debug('tracker_duplicate_envelope_recently_handled', {
|
|
393
|
-
envp_id: envelope.id,
|
|
394
|
-
});
|
|
395
|
-
return new tracked_envelope_js_1.TrackedEnvelope({
|
|
396
|
-
timeoutAtMs: 0,
|
|
397
|
-
overallTimeoutAtMs: 0,
|
|
398
|
-
expectedResponseType: envelope.rtype ?? core_1.FameResponseType.NONE,
|
|
399
|
-
createdAtMs: Date.now(),
|
|
400
|
-
status: tracked_envelope_js_1.EnvelopeStatus.HANDLED,
|
|
401
|
-
mailboxType: tracked_envelope_js_1.MailboxType.INBOX,
|
|
402
|
-
originalEnvelope: envelope,
|
|
403
|
-
serviceName: inboxName,
|
|
404
|
-
});
|
|
405
|
-
}
|
|
406
387
|
tracked = new tracked_envelope_js_1.TrackedEnvelope({
|
|
407
388
|
timeoutAtMs: 0,
|
|
408
389
|
overallTimeoutAtMs: 0,
|
|
@@ -424,12 +405,8 @@ class DefaultDeliveryTracker extends task_spawner_js_1.TaskSpawner {
|
|
|
424
405
|
async onEnvelopeHandled(envelope) {
|
|
425
406
|
const inbox = this.ensureInbox();
|
|
426
407
|
envelope.status = tracked_envelope_js_1.EnvelopeStatus.HANDLED;
|
|
408
|
+
// Delete the envelope from inbox to prevent growth
|
|
427
409
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
428
|
-
await this.lock.runExclusive(async () => {
|
|
429
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
430
|
-
});
|
|
431
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
432
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
433
410
|
}
|
|
434
411
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
435
412
|
void context;
|
|
@@ -800,8 +777,6 @@ class DefaultDeliveryTracker extends task_spawner_js_1.TaskSpawner {
|
|
|
800
777
|
}
|
|
801
778
|
this.streamDone.clear();
|
|
802
779
|
this.correlationToEnvelope.clear();
|
|
803
|
-
this.recentlyHandled.clear();
|
|
804
|
-
this.recentlyHandledOrder.length = 0;
|
|
805
780
|
return values;
|
|
806
781
|
});
|
|
807
782
|
for (const timer of timers) {
|
|
@@ -1383,39 +1358,6 @@ class DefaultDeliveryTracker extends task_spawner_js_1.TaskSpawner {
|
|
|
1383
1358
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
1384
1359
|
}
|
|
1385
1360
|
}
|
|
1386
|
-
markRecentlyHandled(envelopeId) {
|
|
1387
|
-
const now = Date.now();
|
|
1388
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
1389
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
1390
|
-
this.trimRecentlyHandled(now);
|
|
1391
|
-
}
|
|
1392
|
-
wasRecentlyHandled(envelopeId) {
|
|
1393
|
-
const now = Date.now();
|
|
1394
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
1395
|
-
if (timestamp === undefined) {
|
|
1396
|
-
return false;
|
|
1397
|
-
}
|
|
1398
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
1399
|
-
this.recentlyHandled.delete(envelopeId);
|
|
1400
|
-
return false;
|
|
1401
|
-
}
|
|
1402
|
-
return true;
|
|
1403
|
-
}
|
|
1404
|
-
trimRecentlyHandled(now) {
|
|
1405
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
1406
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
1407
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
1408
|
-
if (timestamp === undefined) {
|
|
1409
|
-
this.recentlyHandledOrder.shift();
|
|
1410
|
-
continue;
|
|
1411
|
-
}
|
|
1412
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
1413
|
-
break;
|
|
1414
|
-
}
|
|
1415
|
-
this.recentlyHandled.delete(candidate);
|
|
1416
|
-
this.recentlyHandledOrder.shift();
|
|
1417
|
-
}
|
|
1418
|
-
}
|
|
1419
1361
|
getShutdownRetryDeferDelay(nowMs) {
|
|
1420
1362
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
1421
1363
|
return null;
|
package/dist/cjs/version.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
// This file is auto-generated during build - do not edit manually
|
|
3
|
-
// Generated from package.json version: 0.3.6-test.
|
|
3
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
5
|
exports.VERSION = void 0;
|
|
6
6
|
/**
|
|
7
7
|
* The package version, injected at build time.
|
|
8
8
|
* @internal
|
|
9
9
|
*/
|
|
10
|
-
exports.VERSION = '0.3.6-test.
|
|
10
|
+
exports.VERSION = '0.3.6-test.108';
|
|
@@ -146,9 +146,6 @@ export class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
146
146
|
this.ackDoneSince = new Map();
|
|
147
147
|
this.replyDoneSince = new Map();
|
|
148
148
|
this.pendingAckDispatches = new Set();
|
|
149
|
-
this.recentlyHandled = new Map();
|
|
150
|
-
this.recentlyHandledOrder = [];
|
|
151
|
-
this.recentlyHandledTtlMs = 60000;
|
|
152
149
|
this.isPreparingToStop = false;
|
|
153
150
|
this.shutdownRequestedAtMs = null;
|
|
154
151
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -384,22 +381,6 @@ export class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
384
381
|
}
|
|
385
382
|
}
|
|
386
383
|
else {
|
|
387
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
388
|
-
if (wasRecentlyHandled) {
|
|
389
|
-
logger.debug('tracker_duplicate_envelope_recently_handled', {
|
|
390
|
-
envp_id: envelope.id,
|
|
391
|
-
});
|
|
392
|
-
return new TrackedEnvelope({
|
|
393
|
-
timeoutAtMs: 0,
|
|
394
|
-
overallTimeoutAtMs: 0,
|
|
395
|
-
expectedResponseType: envelope.rtype ?? FameResponseType.NONE,
|
|
396
|
-
createdAtMs: Date.now(),
|
|
397
|
-
status: EnvelopeStatus.HANDLED,
|
|
398
|
-
mailboxType: MailboxType.INBOX,
|
|
399
|
-
originalEnvelope: envelope,
|
|
400
|
-
serviceName: inboxName,
|
|
401
|
-
});
|
|
402
|
-
}
|
|
403
384
|
tracked = new TrackedEnvelope({
|
|
404
385
|
timeoutAtMs: 0,
|
|
405
386
|
overallTimeoutAtMs: 0,
|
|
@@ -421,12 +402,8 @@ export class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
421
402
|
async onEnvelopeHandled(envelope) {
|
|
422
403
|
const inbox = this.ensureInbox();
|
|
423
404
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
405
|
+
// Delete the envelope from inbox to prevent growth
|
|
424
406
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
425
|
-
await this.lock.runExclusive(async () => {
|
|
426
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
427
|
-
});
|
|
428
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
429
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
430
407
|
}
|
|
431
408
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
432
409
|
void context;
|
|
@@ -797,8 +774,6 @@ export class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
797
774
|
}
|
|
798
775
|
this.streamDone.clear();
|
|
799
776
|
this.correlationToEnvelope.clear();
|
|
800
|
-
this.recentlyHandled.clear();
|
|
801
|
-
this.recentlyHandledOrder.length = 0;
|
|
802
777
|
return values;
|
|
803
778
|
});
|
|
804
779
|
for (const timer of timers) {
|
|
@@ -1380,39 +1355,6 @@ export class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
1380
1355
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
1381
1356
|
}
|
|
1382
1357
|
}
|
|
1383
|
-
markRecentlyHandled(envelopeId) {
|
|
1384
|
-
const now = Date.now();
|
|
1385
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
1386
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
1387
|
-
this.trimRecentlyHandled(now);
|
|
1388
|
-
}
|
|
1389
|
-
wasRecentlyHandled(envelopeId) {
|
|
1390
|
-
const now = Date.now();
|
|
1391
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
1392
|
-
if (timestamp === undefined) {
|
|
1393
|
-
return false;
|
|
1394
|
-
}
|
|
1395
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
1396
|
-
this.recentlyHandled.delete(envelopeId);
|
|
1397
|
-
return false;
|
|
1398
|
-
}
|
|
1399
|
-
return true;
|
|
1400
|
-
}
|
|
1401
|
-
trimRecentlyHandled(now) {
|
|
1402
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
1403
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
1404
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
1405
|
-
if (timestamp === undefined) {
|
|
1406
|
-
this.recentlyHandledOrder.shift();
|
|
1407
|
-
continue;
|
|
1408
|
-
}
|
|
1409
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
1410
|
-
break;
|
|
1411
|
-
}
|
|
1412
|
-
this.recentlyHandled.delete(candidate);
|
|
1413
|
-
this.recentlyHandledOrder.shift();
|
|
1414
|
-
}
|
|
1415
|
-
}
|
|
1416
1358
|
getShutdownRetryDeferDelay(nowMs) {
|
|
1417
1359
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
1418
1360
|
return null;
|
package/dist/esm/version.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// This file is auto-generated during build - do not edit manually
|
|
2
|
-
// Generated from package.json version: 0.3.6-test.
|
|
2
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
3
3
|
/**
|
|
4
4
|
* The package version, injected at build time.
|
|
5
5
|
* @internal
|
|
6
6
|
*/
|
|
7
|
-
export const VERSION = '0.3.6-test.
|
|
7
|
+
export const VERSION = '0.3.6-test.108';
|
package/dist/node/index.cjs
CHANGED
|
@@ -14,12 +14,12 @@ var fastify = require('fastify');
|
|
|
14
14
|
var websocketPlugin = require('@fastify/websocket');
|
|
15
15
|
|
|
16
16
|
// This file is auto-generated during build - do not edit manually
|
|
17
|
-
// Generated from package.json version: 0.3.6-test.
|
|
17
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
18
18
|
/**
|
|
19
19
|
* The package version, injected at build time.
|
|
20
20
|
* @internal
|
|
21
21
|
*/
|
|
22
|
-
const VERSION = '0.3.6-test.
|
|
22
|
+
const VERSION = '0.3.6-test.108';
|
|
23
23
|
|
|
24
24
|
/**
|
|
25
25
|
* Fame protocol specific error classes with WebSocket close codes and proper inheritance.
|
|
@@ -7091,9 +7091,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7091
7091
|
this.ackDoneSince = new Map();
|
|
7092
7092
|
this.replyDoneSince = new Map();
|
|
7093
7093
|
this.pendingAckDispatches = new Set();
|
|
7094
|
-
this.recentlyHandled = new Map();
|
|
7095
|
-
this.recentlyHandledOrder = [];
|
|
7096
|
-
this.recentlyHandledTtlMs = 60000;
|
|
7097
7094
|
this.isPreparingToStop = false;
|
|
7098
7095
|
this.shutdownRequestedAtMs = null;
|
|
7099
7096
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -7315,22 +7312,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7315
7312
|
}
|
|
7316
7313
|
}
|
|
7317
7314
|
else {
|
|
7318
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
7319
|
-
if (wasRecentlyHandled) {
|
|
7320
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
7321
|
-
envp_id: envelope.id,
|
|
7322
|
-
});
|
|
7323
|
-
return new TrackedEnvelope({
|
|
7324
|
-
timeoutAtMs: 0,
|
|
7325
|
-
overallTimeoutAtMs: 0,
|
|
7326
|
-
expectedResponseType: envelope.rtype ?? core.FameResponseType.NONE,
|
|
7327
|
-
createdAtMs: Date.now(),
|
|
7328
|
-
status: EnvelopeStatus.HANDLED,
|
|
7329
|
-
mailboxType: MailboxType.INBOX,
|
|
7330
|
-
originalEnvelope: envelope,
|
|
7331
|
-
serviceName: inboxName,
|
|
7332
|
-
});
|
|
7333
|
-
}
|
|
7334
7315
|
tracked = new TrackedEnvelope({
|
|
7335
7316
|
timeoutAtMs: 0,
|
|
7336
7317
|
overallTimeoutAtMs: 0,
|
|
@@ -7352,12 +7333,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7352
7333
|
async onEnvelopeHandled(envelope) {
|
|
7353
7334
|
const inbox = this.ensureInbox();
|
|
7354
7335
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
7336
|
+
// Delete the envelope from inbox to prevent growth
|
|
7355
7337
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
7356
|
-
await this.lock.runExclusive(async () => {
|
|
7357
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
7358
|
-
});
|
|
7359
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
7360
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
7361
7338
|
}
|
|
7362
7339
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
7363
7340
|
const inbox = this.ensureInbox();
|
|
@@ -7724,8 +7701,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7724
7701
|
}
|
|
7725
7702
|
this.streamDone.clear();
|
|
7726
7703
|
this.correlationToEnvelope.clear();
|
|
7727
|
-
this.recentlyHandled.clear();
|
|
7728
|
-
this.recentlyHandledOrder.length = 0;
|
|
7729
7704
|
return values;
|
|
7730
7705
|
});
|
|
7731
7706
|
for (const timer of timers) {
|
|
@@ -8307,39 +8282,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
8307
8282
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
8308
8283
|
}
|
|
8309
8284
|
}
|
|
8310
|
-
markRecentlyHandled(envelopeId) {
|
|
8311
|
-
const now = Date.now();
|
|
8312
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
8313
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
8314
|
-
this.trimRecentlyHandled(now);
|
|
8315
|
-
}
|
|
8316
|
-
wasRecentlyHandled(envelopeId) {
|
|
8317
|
-
const now = Date.now();
|
|
8318
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
8319
|
-
if (timestamp === undefined) {
|
|
8320
|
-
return false;
|
|
8321
|
-
}
|
|
8322
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
8323
|
-
this.recentlyHandled.delete(envelopeId);
|
|
8324
|
-
return false;
|
|
8325
|
-
}
|
|
8326
|
-
return true;
|
|
8327
|
-
}
|
|
8328
|
-
trimRecentlyHandled(now) {
|
|
8329
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
8330
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
8331
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
8332
|
-
if (timestamp === undefined) {
|
|
8333
|
-
this.recentlyHandledOrder.shift();
|
|
8334
|
-
continue;
|
|
8335
|
-
}
|
|
8336
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
8337
|
-
break;
|
|
8338
|
-
}
|
|
8339
|
-
this.recentlyHandled.delete(candidate);
|
|
8340
|
-
this.recentlyHandledOrder.shift();
|
|
8341
|
-
}
|
|
8342
|
-
}
|
|
8343
8285
|
getShutdownRetryDeferDelay(nowMs) {
|
|
8344
8286
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
8345
8287
|
return null;
|
package/dist/node/index.mjs
CHANGED
|
@@ -13,12 +13,12 @@ import fastify from 'fastify';
|
|
|
13
13
|
import websocketPlugin from '@fastify/websocket';
|
|
14
14
|
|
|
15
15
|
// This file is auto-generated during build - do not edit manually
|
|
16
|
-
// Generated from package.json version: 0.3.6-test.
|
|
16
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
17
17
|
/**
|
|
18
18
|
* The package version, injected at build time.
|
|
19
19
|
* @internal
|
|
20
20
|
*/
|
|
21
|
-
const VERSION = '0.3.6-test.
|
|
21
|
+
const VERSION = '0.3.6-test.108';
|
|
22
22
|
|
|
23
23
|
/**
|
|
24
24
|
* Fame protocol specific error classes with WebSocket close codes and proper inheritance.
|
|
@@ -7090,9 +7090,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7090
7090
|
this.ackDoneSince = new Map();
|
|
7091
7091
|
this.replyDoneSince = new Map();
|
|
7092
7092
|
this.pendingAckDispatches = new Set();
|
|
7093
|
-
this.recentlyHandled = new Map();
|
|
7094
|
-
this.recentlyHandledOrder = [];
|
|
7095
|
-
this.recentlyHandledTtlMs = 60000;
|
|
7096
7093
|
this.isPreparingToStop = false;
|
|
7097
7094
|
this.shutdownRequestedAtMs = null;
|
|
7098
7095
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -7314,22 +7311,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7314
7311
|
}
|
|
7315
7312
|
}
|
|
7316
7313
|
else {
|
|
7317
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
7318
|
-
if (wasRecentlyHandled) {
|
|
7319
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
7320
|
-
envp_id: envelope.id,
|
|
7321
|
-
});
|
|
7322
|
-
return new TrackedEnvelope({
|
|
7323
|
-
timeoutAtMs: 0,
|
|
7324
|
-
overallTimeoutAtMs: 0,
|
|
7325
|
-
expectedResponseType: envelope.rtype ?? FameResponseType.NONE,
|
|
7326
|
-
createdAtMs: Date.now(),
|
|
7327
|
-
status: EnvelopeStatus.HANDLED,
|
|
7328
|
-
mailboxType: MailboxType.INBOX,
|
|
7329
|
-
originalEnvelope: envelope,
|
|
7330
|
-
serviceName: inboxName,
|
|
7331
|
-
});
|
|
7332
|
-
}
|
|
7333
7314
|
tracked = new TrackedEnvelope({
|
|
7334
7315
|
timeoutAtMs: 0,
|
|
7335
7316
|
overallTimeoutAtMs: 0,
|
|
@@ -7351,12 +7332,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7351
7332
|
async onEnvelopeHandled(envelope) {
|
|
7352
7333
|
const inbox = this.ensureInbox();
|
|
7353
7334
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
7335
|
+
// Delete the envelope from inbox to prevent growth
|
|
7354
7336
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
7355
|
-
await this.lock.runExclusive(async () => {
|
|
7356
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
7357
|
-
});
|
|
7358
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
7359
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
7360
7337
|
}
|
|
7361
7338
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
7362
7339
|
const inbox = this.ensureInbox();
|
|
@@ -7723,8 +7700,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
7723
7700
|
}
|
|
7724
7701
|
this.streamDone.clear();
|
|
7725
7702
|
this.correlationToEnvelope.clear();
|
|
7726
|
-
this.recentlyHandled.clear();
|
|
7727
|
-
this.recentlyHandledOrder.length = 0;
|
|
7728
7703
|
return values;
|
|
7729
7704
|
});
|
|
7730
7705
|
for (const timer of timers) {
|
|
@@ -8306,39 +8281,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
8306
8281
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
8307
8282
|
}
|
|
8308
8283
|
}
|
|
8309
|
-
markRecentlyHandled(envelopeId) {
|
|
8310
|
-
const now = Date.now();
|
|
8311
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
8312
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
8313
|
-
this.trimRecentlyHandled(now);
|
|
8314
|
-
}
|
|
8315
|
-
wasRecentlyHandled(envelopeId) {
|
|
8316
|
-
const now = Date.now();
|
|
8317
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
8318
|
-
if (timestamp === undefined) {
|
|
8319
|
-
return false;
|
|
8320
|
-
}
|
|
8321
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
8322
|
-
this.recentlyHandled.delete(envelopeId);
|
|
8323
|
-
return false;
|
|
8324
|
-
}
|
|
8325
|
-
return true;
|
|
8326
|
-
}
|
|
8327
|
-
trimRecentlyHandled(now) {
|
|
8328
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
8329
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
8330
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
8331
|
-
if (timestamp === undefined) {
|
|
8332
|
-
this.recentlyHandledOrder.shift();
|
|
8333
|
-
continue;
|
|
8334
|
-
}
|
|
8335
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
8336
|
-
break;
|
|
8337
|
-
}
|
|
8338
|
-
this.recentlyHandled.delete(candidate);
|
|
8339
|
-
this.recentlyHandledOrder.shift();
|
|
8340
|
-
}
|
|
8341
|
-
}
|
|
8342
8284
|
getShutdownRetryDeferDelay(nowMs) {
|
|
8343
8285
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
8344
8286
|
return null;
|
package/dist/node/node.cjs
CHANGED
|
@@ -5563,12 +5563,12 @@ for (const [name, config] of Object.entries(SQLITE_PROFILES)) {
|
|
|
5563
5563
|
}
|
|
5564
5564
|
|
|
5565
5565
|
// This file is auto-generated during build - do not edit manually
|
|
5566
|
-
// Generated from package.json version: 0.3.6-test.
|
|
5566
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
5567
5567
|
/**
|
|
5568
5568
|
* The package version, injected at build time.
|
|
5569
5569
|
* @internal
|
|
5570
5570
|
*/
|
|
5571
|
-
const VERSION = '0.3.6-test.
|
|
5571
|
+
const VERSION = '0.3.6-test.108';
|
|
5572
5572
|
|
|
5573
5573
|
/**
|
|
5574
5574
|
* Fame errors module - Fame protocol specific error classes
|
|
@@ -9727,9 +9727,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
9727
9727
|
this.ackDoneSince = new Map();
|
|
9728
9728
|
this.replyDoneSince = new Map();
|
|
9729
9729
|
this.pendingAckDispatches = new Set();
|
|
9730
|
-
this.recentlyHandled = new Map();
|
|
9731
|
-
this.recentlyHandledOrder = [];
|
|
9732
|
-
this.recentlyHandledTtlMs = 60000;
|
|
9733
9730
|
this.isPreparingToStop = false;
|
|
9734
9731
|
this.shutdownRequestedAtMs = null;
|
|
9735
9732
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -9965,22 +9962,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
9965
9962
|
}
|
|
9966
9963
|
}
|
|
9967
9964
|
else {
|
|
9968
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
9969
|
-
if (wasRecentlyHandled) {
|
|
9970
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
9971
|
-
envp_id: envelope.id,
|
|
9972
|
-
});
|
|
9973
|
-
return new TrackedEnvelope({
|
|
9974
|
-
timeoutAtMs: 0,
|
|
9975
|
-
overallTimeoutAtMs: 0,
|
|
9976
|
-
expectedResponseType: envelope.rtype ?? core.FameResponseType.NONE,
|
|
9977
|
-
createdAtMs: Date.now(),
|
|
9978
|
-
status: EnvelopeStatus.HANDLED,
|
|
9979
|
-
mailboxType: MailboxType.INBOX,
|
|
9980
|
-
originalEnvelope: envelope,
|
|
9981
|
-
serviceName: inboxName,
|
|
9982
|
-
});
|
|
9983
|
-
}
|
|
9984
9965
|
tracked = new TrackedEnvelope({
|
|
9985
9966
|
timeoutAtMs: 0,
|
|
9986
9967
|
overallTimeoutAtMs: 0,
|
|
@@ -10002,12 +9983,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10002
9983
|
async onEnvelopeHandled(envelope) {
|
|
10003
9984
|
const inbox = this.ensureInbox();
|
|
10004
9985
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
9986
|
+
// Delete the envelope from inbox to prevent growth
|
|
10005
9987
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
10006
|
-
await this.lock.runExclusive(async () => {
|
|
10007
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
10008
|
-
});
|
|
10009
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
10010
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
10011
9988
|
}
|
|
10012
9989
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
10013
9990
|
void context;
|
|
@@ -10378,8 +10355,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10378
10355
|
}
|
|
10379
10356
|
this.streamDone.clear();
|
|
10380
10357
|
this.correlationToEnvelope.clear();
|
|
10381
|
-
this.recentlyHandled.clear();
|
|
10382
|
-
this.recentlyHandledOrder.length = 0;
|
|
10383
10358
|
return values;
|
|
10384
10359
|
});
|
|
10385
10360
|
for (const timer of timers) {
|
|
@@ -10961,39 +10936,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10961
10936
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
10962
10937
|
}
|
|
10963
10938
|
}
|
|
10964
|
-
markRecentlyHandled(envelopeId) {
|
|
10965
|
-
const now = Date.now();
|
|
10966
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
10967
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
10968
|
-
this.trimRecentlyHandled(now);
|
|
10969
|
-
}
|
|
10970
|
-
wasRecentlyHandled(envelopeId) {
|
|
10971
|
-
const now = Date.now();
|
|
10972
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
10973
|
-
if (timestamp === undefined) {
|
|
10974
|
-
return false;
|
|
10975
|
-
}
|
|
10976
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
10977
|
-
this.recentlyHandled.delete(envelopeId);
|
|
10978
|
-
return false;
|
|
10979
|
-
}
|
|
10980
|
-
return true;
|
|
10981
|
-
}
|
|
10982
|
-
trimRecentlyHandled(now) {
|
|
10983
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
10984
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
10985
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
10986
|
-
if (timestamp === undefined) {
|
|
10987
|
-
this.recentlyHandledOrder.shift();
|
|
10988
|
-
continue;
|
|
10989
|
-
}
|
|
10990
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
10991
|
-
break;
|
|
10992
|
-
}
|
|
10993
|
-
this.recentlyHandled.delete(candidate);
|
|
10994
|
-
this.recentlyHandledOrder.shift();
|
|
10995
|
-
}
|
|
10996
|
-
}
|
|
10997
10939
|
getShutdownRetryDeferDelay(nowMs) {
|
|
10998
10940
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
10999
10941
|
return null;
|
package/dist/node/node.mjs
CHANGED
|
@@ -5562,12 +5562,12 @@ for (const [name, config] of Object.entries(SQLITE_PROFILES)) {
|
|
|
5562
5562
|
}
|
|
5563
5563
|
|
|
5564
5564
|
// This file is auto-generated during build - do not edit manually
|
|
5565
|
-
// Generated from package.json version: 0.3.6-test.
|
|
5565
|
+
// Generated from package.json version: 0.3.6-test.108
|
|
5566
5566
|
/**
|
|
5567
5567
|
* The package version, injected at build time.
|
|
5568
5568
|
* @internal
|
|
5569
5569
|
*/
|
|
5570
|
-
const VERSION = '0.3.6-test.
|
|
5570
|
+
const VERSION = '0.3.6-test.108';
|
|
5571
5571
|
|
|
5572
5572
|
/**
|
|
5573
5573
|
* Fame errors module - Fame protocol specific error classes
|
|
@@ -9726,9 +9726,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
9726
9726
|
this.ackDoneSince = new Map();
|
|
9727
9727
|
this.replyDoneSince = new Map();
|
|
9728
9728
|
this.pendingAckDispatches = new Set();
|
|
9729
|
-
this.recentlyHandled = new Map();
|
|
9730
|
-
this.recentlyHandledOrder = [];
|
|
9731
|
-
this.recentlyHandledTtlMs = 60000;
|
|
9732
9729
|
this.isPreparingToStop = false;
|
|
9733
9730
|
this.shutdownRequestedAtMs = null;
|
|
9734
9731
|
this.shutdownRetryGraceMs = 1000;
|
|
@@ -9964,22 +9961,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
9964
9961
|
}
|
|
9965
9962
|
}
|
|
9966
9963
|
else {
|
|
9967
|
-
const wasRecentlyHandled = await this.lock.runExclusive(async () => this.wasRecentlyHandled(envelope.id));
|
|
9968
|
-
if (wasRecentlyHandled) {
|
|
9969
|
-
logger$12.debug('tracker_duplicate_envelope_recently_handled', {
|
|
9970
|
-
envp_id: envelope.id,
|
|
9971
|
-
});
|
|
9972
|
-
return new TrackedEnvelope({
|
|
9973
|
-
timeoutAtMs: 0,
|
|
9974
|
-
overallTimeoutAtMs: 0,
|
|
9975
|
-
expectedResponseType: envelope.rtype ?? FameResponseType.NONE,
|
|
9976
|
-
createdAtMs: Date.now(),
|
|
9977
|
-
status: EnvelopeStatus.HANDLED,
|
|
9978
|
-
mailboxType: MailboxType.INBOX,
|
|
9979
|
-
originalEnvelope: envelope,
|
|
9980
|
-
serviceName: inboxName,
|
|
9981
|
-
});
|
|
9982
|
-
}
|
|
9983
9964
|
tracked = new TrackedEnvelope({
|
|
9984
9965
|
timeoutAtMs: 0,
|
|
9985
9966
|
overallTimeoutAtMs: 0,
|
|
@@ -10001,12 +9982,8 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10001
9982
|
async onEnvelopeHandled(envelope) {
|
|
10002
9983
|
const inbox = this.ensureInbox();
|
|
10003
9984
|
envelope.status = EnvelopeStatus.HANDLED;
|
|
9985
|
+
// Delete the envelope from inbox to prevent growth
|
|
10004
9986
|
await inbox.delete(envelope.originalEnvelope.id);
|
|
10005
|
-
await this.lock.runExclusive(async () => {
|
|
10006
|
-
this.markRecentlyHandled(envelope.originalEnvelope.id);
|
|
10007
|
-
});
|
|
10008
|
-
// Preserve handled envelope to prevent duplicate redelivery during shutdown drains.
|
|
10009
|
-
// await inbox.set(envelope.originalEnvelope.id, envelope);
|
|
10010
9987
|
}
|
|
10011
9988
|
async onEnvelopeHandleFailed(inboxName, envelope, context, error, isFinalFailure = false) {
|
|
10012
9989
|
void context;
|
|
@@ -10377,8 +10354,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10377
10354
|
}
|
|
10378
10355
|
this.streamDone.clear();
|
|
10379
10356
|
this.correlationToEnvelope.clear();
|
|
10380
|
-
this.recentlyHandled.clear();
|
|
10381
|
-
this.recentlyHandledOrder.length = 0;
|
|
10382
10357
|
return values;
|
|
10383
10358
|
});
|
|
10384
10359
|
for (const timer of timers) {
|
|
@@ -10960,39 +10935,6 @@ class DefaultDeliveryTracker extends TaskSpawner {
|
|
|
10960
10935
|
this.pendingAckDispatches.delete(ackDispatch);
|
|
10961
10936
|
}
|
|
10962
10937
|
}
|
|
10963
|
-
markRecentlyHandled(envelopeId) {
|
|
10964
|
-
const now = Date.now();
|
|
10965
|
-
this.recentlyHandled.set(envelopeId, now);
|
|
10966
|
-
this.recentlyHandledOrder.push(envelopeId);
|
|
10967
|
-
this.trimRecentlyHandled(now);
|
|
10968
|
-
}
|
|
10969
|
-
wasRecentlyHandled(envelopeId) {
|
|
10970
|
-
const now = Date.now();
|
|
10971
|
-
const timestamp = this.recentlyHandled.get(envelopeId);
|
|
10972
|
-
if (timestamp === undefined) {
|
|
10973
|
-
return false;
|
|
10974
|
-
}
|
|
10975
|
-
if (now - timestamp > this.recentlyHandledTtlMs) {
|
|
10976
|
-
this.recentlyHandled.delete(envelopeId);
|
|
10977
|
-
return false;
|
|
10978
|
-
}
|
|
10979
|
-
return true;
|
|
10980
|
-
}
|
|
10981
|
-
trimRecentlyHandled(now) {
|
|
10982
|
-
while (this.recentlyHandledOrder.length > 0) {
|
|
10983
|
-
const candidate = this.recentlyHandledOrder[0];
|
|
10984
|
-
const timestamp = this.recentlyHandled.get(candidate);
|
|
10985
|
-
if (timestamp === undefined) {
|
|
10986
|
-
this.recentlyHandledOrder.shift();
|
|
10987
|
-
continue;
|
|
10988
|
-
}
|
|
10989
|
-
if (now - timestamp <= this.recentlyHandledTtlMs) {
|
|
10990
|
-
break;
|
|
10991
|
-
}
|
|
10992
|
-
this.recentlyHandled.delete(candidate);
|
|
10993
|
-
this.recentlyHandledOrder.shift();
|
|
10994
|
-
}
|
|
10995
|
-
}
|
|
10996
10938
|
getShutdownRetryDeferDelay(nowMs) {
|
|
10997
10939
|
if (!this.isPreparingToStop || this.shutdownRequestedAtMs === null) {
|
|
10998
10940
|
return null;
|
|
@@ -38,9 +38,6 @@ export declare class DefaultDeliveryTracker extends TaskSpawner implements NodeE
|
|
|
38
38
|
private readonly ackDoneSince;
|
|
39
39
|
private readonly replyDoneSince;
|
|
40
40
|
private readonly pendingAckDispatches;
|
|
41
|
-
private readonly recentlyHandled;
|
|
42
|
-
private readonly recentlyHandledOrder;
|
|
43
|
-
private readonly recentlyHandledTtlMs;
|
|
44
41
|
private isPreparingToStop;
|
|
45
42
|
private shutdownRequestedAtMs;
|
|
46
43
|
private readonly shutdownRetryGraceMs;
|
|
@@ -102,9 +99,6 @@ export declare class DefaultDeliveryTracker extends TaskSpawner implements NodeE
|
|
|
102
99
|
private sweepFuturesLoop;
|
|
103
100
|
private statusIsTerminal;
|
|
104
101
|
private sendAck;
|
|
105
|
-
private markRecentlyHandled;
|
|
106
|
-
private wasRecentlyHandled;
|
|
107
|
-
private trimRecentlyHandled;
|
|
108
102
|
private getShutdownRetryDeferDelay;
|
|
109
103
|
}
|
|
110
104
|
export {};
|
package/dist/types/version.d.ts
CHANGED