@naylence/runtime 0.3.6-test.102 → 0.3.6-test.104

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.
@@ -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.102
101
+ // Generated from package.json version: 0.3.6-test.104
102
102
  /**
103
103
  * The package version, injected at build time.
104
104
  * @internal
105
105
  */
106
- const VERSION = '0.3.6-test.102';
106
+ const VERSION = '0.3.6-test.104';
107
107
 
108
108
  /**
109
109
  * Fame protocol specific error classes with WebSocket close codes and proper inheritance.
@@ -10863,6 +10863,20 @@ class UpstreamSessionManager extends TaskSpawner {
10863
10863
  await connector.start(this.wrappedHandler);
10864
10864
  this.connector = connector;
10865
10865
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
10866
+ logger$Z.debug('callback_grants_before_augmentation', {
10867
+ count: callbackGrants.length,
10868
+ types: callbackGrants.map(g => g.type),
10869
+ });
10870
+ // Check if we should create a broadcast callback grant before processing connection grants
10871
+ // This prevents adding duplicate broadcast grants
10872
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
10873
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
10874
+ ? this.createBroadcastCallbackGrant(grant)
10875
+ : null;
10876
+ logger$Z.debug('broadcast_callback_grant_check', {
10877
+ should_add: shouldAddBroadcastGrant,
10878
+ grant_created: !!broadcastCallbackGrant,
10879
+ });
10866
10880
  // Include admission client's connection grants as callback grants
10867
10881
  // This ensures DirectAdmissionClient grants are available for grant selection
10868
10882
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -10872,16 +10886,31 @@ class UpstreamSessionManager extends TaskSpawner {
10872
10886
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
10873
10887
  if (!isDuplicate) {
10874
10888
  callbackGrants.push(grant);
10889
+ logger$Z.debug('added_connection_grant_as_callback', {
10890
+ type: grant.type,
10891
+ });
10892
+ }
10893
+ else {
10894
+ logger$Z.debug('skipped_duplicate_connection_grant', {
10895
+ type: grant.type,
10896
+ });
10875
10897
  }
10876
10898
  }
10877
10899
  }
10878
10900
  }
10879
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10880
- const augmented = this.createBroadcastCallbackGrant(grant);
10881
- if (augmented) {
10882
- callbackGrants.push(augmented);
10883
- }
10901
+ // Add broadcast grant after connection grants to ensure we don't duplicate
10902
+ // any broadcast grants that may have been in connectionGrants
10903
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10904
+ callbackGrants.push(broadcastCallbackGrant);
10905
+ logger$Z.debug('added_broadcast_callback_grant');
10884
10906
  }
10907
+ else if (broadcastCallbackGrant) {
10908
+ logger$Z.debug('skipped_duplicate_broadcast_callback_grant');
10909
+ }
10910
+ logger$Z.debug('callback_grants_after_augmentation', {
10911
+ count: callbackGrants.length,
10912
+ types: callbackGrants.map(g => g.type),
10913
+ });
10885
10914
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
10886
10915
  this.targetSystemId = attachInfo.targetSystemId ?? null;
10887
10916
  if (this.targetSystemId) {
@@ -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.102
99
+ // Generated from package.json version: 0.3.6-test.104
100
100
  /**
101
101
  * The package version, injected at build time.
102
102
  * @internal
103
103
  */
104
- const VERSION = '0.3.6-test.102';
104
+ const VERSION = '0.3.6-test.104';
105
105
 
106
106
  /**
107
107
  * Fame protocol specific error classes with WebSocket close codes and proper inheritance.
@@ -10861,6 +10861,20 @@ class UpstreamSessionManager extends TaskSpawner {
10861
10861
  await connector.start(this.wrappedHandler);
10862
10862
  this.connector = connector;
10863
10863
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
10864
+ logger$Z.debug('callback_grants_before_augmentation', {
10865
+ count: callbackGrants.length,
10866
+ types: callbackGrants.map(g => g.type),
10867
+ });
10868
+ // Check if we should create a broadcast callback grant before processing connection grants
10869
+ // This prevents adding duplicate broadcast grants
10870
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
10871
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
10872
+ ? this.createBroadcastCallbackGrant(grant)
10873
+ : null;
10874
+ logger$Z.debug('broadcast_callback_grant_check', {
10875
+ should_add: shouldAddBroadcastGrant,
10876
+ grant_created: !!broadcastCallbackGrant,
10877
+ });
10864
10878
  // Include admission client's connection grants as callback grants
10865
10879
  // This ensures DirectAdmissionClient grants are available for grant selection
10866
10880
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -10870,16 +10884,31 @@ class UpstreamSessionManager extends TaskSpawner {
10870
10884
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
10871
10885
  if (!isDuplicate) {
10872
10886
  callbackGrants.push(grant);
10887
+ logger$Z.debug('added_connection_grant_as_callback', {
10888
+ type: grant.type,
10889
+ });
10890
+ }
10891
+ else {
10892
+ logger$Z.debug('skipped_duplicate_connection_grant', {
10893
+ type: grant.type,
10894
+ });
10873
10895
  }
10874
10896
  }
10875
10897
  }
10876
10898
  }
10877
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10878
- const augmented = this.createBroadcastCallbackGrant(grant);
10879
- if (augmented) {
10880
- callbackGrants.push(augmented);
10881
- }
10899
+ // Add broadcast grant after connection grants to ensure we don't duplicate
10900
+ // any broadcast grants that may have been in connectionGrants
10901
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10902
+ callbackGrants.push(broadcastCallbackGrant);
10903
+ logger$Z.debug('added_broadcast_callback_grant');
10882
10904
  }
10905
+ else if (broadcastCallbackGrant) {
10906
+ logger$Z.debug('skipped_duplicate_broadcast_callback_grant');
10907
+ }
10908
+ logger$Z.debug('callback_grants_after_augmentation', {
10909
+ count: callbackGrants.length,
10910
+ types: callbackGrants.map(g => g.type),
10911
+ });
10883
10912
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
10884
10913
  this.targetSystemId = attachInfo.targetSystemId ?? null;
10885
10914
  if (this.targetSystemId) {
@@ -321,6 +321,20 @@ class UpstreamSessionManager extends task_spawner_js_1.TaskSpawner {
321
321
  await connector.start(this.wrappedHandler);
322
322
  this.connector = connector;
323
323
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
324
+ logger.debug('callback_grants_before_augmentation', {
325
+ count: callbackGrants.length,
326
+ types: callbackGrants.map(g => g.type),
327
+ });
328
+ // Check if we should create a broadcast callback grant before processing connection grants
329
+ // This prevents adding duplicate broadcast grants
330
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
331
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
332
+ ? this.createBroadcastCallbackGrant(grant)
333
+ : null;
334
+ logger.debug('broadcast_callback_grant_check', {
335
+ should_add: shouldAddBroadcastGrant,
336
+ grant_created: !!broadcastCallbackGrant,
337
+ });
324
338
  // Include admission client's connection grants as callback grants
325
339
  // This ensures DirectAdmissionClient grants are available for grant selection
326
340
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -330,16 +344,31 @@ class UpstreamSessionManager extends task_spawner_js_1.TaskSpawner {
330
344
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
331
345
  if (!isDuplicate) {
332
346
  callbackGrants.push(grant);
347
+ logger.debug('added_connection_grant_as_callback', {
348
+ type: grant.type,
349
+ });
350
+ }
351
+ else {
352
+ logger.debug('skipped_duplicate_connection_grant', {
353
+ type: grant.type,
354
+ });
333
355
  }
334
356
  }
335
357
  }
336
358
  }
337
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
338
- const augmented = this.createBroadcastCallbackGrant(grant);
339
- if (augmented) {
340
- callbackGrants.push(augmented);
341
- }
359
+ // Add broadcast grant after connection grants to ensure we don't duplicate
360
+ // any broadcast grants that may have been in connectionGrants
361
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
362
+ callbackGrants.push(broadcastCallbackGrant);
363
+ logger.debug('added_broadcast_callback_grant');
364
+ }
365
+ else if (broadcastCallbackGrant) {
366
+ logger.debug('skipped_duplicate_broadcast_callback_grant');
342
367
  }
368
+ logger.debug('callback_grants_after_augmentation', {
369
+ count: callbackGrants.length,
370
+ types: callbackGrants.map(g => g.type),
371
+ });
343
372
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
344
373
  this.targetSystemId = attachInfo.targetSystemId ?? null;
345
374
  if (this.targetSystemId) {
@@ -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.102
3
+ // Generated from package.json version: 0.3.6-test.104
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.102';
10
+ exports.VERSION = '0.3.6-test.104';
@@ -318,6 +318,20 @@ export class UpstreamSessionManager extends TaskSpawner {
318
318
  await connector.start(this.wrappedHandler);
319
319
  this.connector = connector;
320
320
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
321
+ logger.debug('callback_grants_before_augmentation', {
322
+ count: callbackGrants.length,
323
+ types: callbackGrants.map(g => g.type),
324
+ });
325
+ // Check if we should create a broadcast callback grant before processing connection grants
326
+ // This prevents adding duplicate broadcast grants
327
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
328
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
329
+ ? this.createBroadcastCallbackGrant(grant)
330
+ : null;
331
+ logger.debug('broadcast_callback_grant_check', {
332
+ should_add: shouldAddBroadcastGrant,
333
+ grant_created: !!broadcastCallbackGrant,
334
+ });
321
335
  // Include admission client's connection grants as callback grants
322
336
  // This ensures DirectAdmissionClient grants are available for grant selection
323
337
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -327,16 +341,31 @@ export class UpstreamSessionManager extends TaskSpawner {
327
341
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
328
342
  if (!isDuplicate) {
329
343
  callbackGrants.push(grant);
344
+ logger.debug('added_connection_grant_as_callback', {
345
+ type: grant.type,
346
+ });
347
+ }
348
+ else {
349
+ logger.debug('skipped_duplicate_connection_grant', {
350
+ type: grant.type,
351
+ });
330
352
  }
331
353
  }
332
354
  }
333
355
  }
334
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
335
- const augmented = this.createBroadcastCallbackGrant(grant);
336
- if (augmented) {
337
- callbackGrants.push(augmented);
338
- }
356
+ // Add broadcast grant after connection grants to ensure we don't duplicate
357
+ // any broadcast grants that may have been in connectionGrants
358
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
359
+ callbackGrants.push(broadcastCallbackGrant);
360
+ logger.debug('added_broadcast_callback_grant');
361
+ }
362
+ else if (broadcastCallbackGrant) {
363
+ logger.debug('skipped_duplicate_broadcast_callback_grant');
339
364
  }
365
+ logger.debug('callback_grants_after_augmentation', {
366
+ count: callbackGrants.length,
367
+ types: callbackGrants.map(g => g.type),
368
+ });
340
369
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
341
370
  this.targetSystemId = attachInfo.targetSystemId ?? null;
342
371
  if (this.targetSystemId) {
@@ -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.102
2
+ // Generated from package.json version: 0.3.6-test.104
3
3
  /**
4
4
  * The package version, injected at build time.
5
5
  * @internal
6
6
  */
7
- export const VERSION = '0.3.6-test.102';
7
+ export const VERSION = '0.3.6-test.104';
@@ -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.102
17
+ // Generated from package.json version: 0.3.6-test.104
18
18
  /**
19
19
  * The package version, injected at build time.
20
20
  * @internal
21
21
  */
22
- const VERSION = '0.3.6-test.102';
22
+ const VERSION = '0.3.6-test.104';
23
23
 
24
24
  /**
25
25
  * Fame protocol specific error classes with WebSocket close codes and proper inheritance.
@@ -10779,6 +10779,20 @@ class UpstreamSessionManager extends TaskSpawner {
10779
10779
  await connector.start(this.wrappedHandler);
10780
10780
  this.connector = connector;
10781
10781
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
10782
+ logger$Z.debug('callback_grants_before_augmentation', {
10783
+ count: callbackGrants.length,
10784
+ types: callbackGrants.map(g => g.type),
10785
+ });
10786
+ // Check if we should create a broadcast callback grant before processing connection grants
10787
+ // This prevents adding duplicate broadcast grants
10788
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
10789
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
10790
+ ? this.createBroadcastCallbackGrant(grant)
10791
+ : null;
10792
+ logger$Z.debug('broadcast_callback_grant_check', {
10793
+ should_add: shouldAddBroadcastGrant,
10794
+ grant_created: !!broadcastCallbackGrant,
10795
+ });
10782
10796
  // Include admission client's connection grants as callback grants
10783
10797
  // This ensures DirectAdmissionClient grants are available for grant selection
10784
10798
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -10788,16 +10802,31 @@ class UpstreamSessionManager extends TaskSpawner {
10788
10802
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
10789
10803
  if (!isDuplicate) {
10790
10804
  callbackGrants.push(grant);
10805
+ logger$Z.debug('added_connection_grant_as_callback', {
10806
+ type: grant.type,
10807
+ });
10808
+ }
10809
+ else {
10810
+ logger$Z.debug('skipped_duplicate_connection_grant', {
10811
+ type: grant.type,
10812
+ });
10791
10813
  }
10792
10814
  }
10793
10815
  }
10794
10816
  }
10795
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10796
- const augmented = this.createBroadcastCallbackGrant(grant);
10797
- if (augmented) {
10798
- callbackGrants.push(augmented);
10799
- }
10817
+ // Add broadcast grant after connection grants to ensure we don't duplicate
10818
+ // any broadcast grants that may have been in connectionGrants
10819
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10820
+ callbackGrants.push(broadcastCallbackGrant);
10821
+ logger$Z.debug('added_broadcast_callback_grant');
10800
10822
  }
10823
+ else if (broadcastCallbackGrant) {
10824
+ logger$Z.debug('skipped_duplicate_broadcast_callback_grant');
10825
+ }
10826
+ logger$Z.debug('callback_grants_after_augmentation', {
10827
+ count: callbackGrants.length,
10828
+ types: callbackGrants.map(g => g.type),
10829
+ });
10801
10830
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
10802
10831
  this.targetSystemId = attachInfo.targetSystemId ?? null;
10803
10832
  if (this.targetSystemId) {
@@ -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.102
16
+ // Generated from package.json version: 0.3.6-test.104
17
17
  /**
18
18
  * The package version, injected at build time.
19
19
  * @internal
20
20
  */
21
- const VERSION = '0.3.6-test.102';
21
+ const VERSION = '0.3.6-test.104';
22
22
 
23
23
  /**
24
24
  * Fame protocol specific error classes with WebSocket close codes and proper inheritance.
@@ -10778,6 +10778,20 @@ class UpstreamSessionManager extends TaskSpawner {
10778
10778
  await connector.start(this.wrappedHandler);
10779
10779
  this.connector = connector;
10780
10780
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
10781
+ logger$Z.debug('callback_grants_before_augmentation', {
10782
+ count: callbackGrants.length,
10783
+ types: callbackGrants.map(g => g.type),
10784
+ });
10785
+ // Check if we should create a broadcast callback grant before processing connection grants
10786
+ // This prevents adding duplicate broadcast grants
10787
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
10788
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
10789
+ ? this.createBroadcastCallbackGrant(grant)
10790
+ : null;
10791
+ logger$Z.debug('broadcast_callback_grant_check', {
10792
+ should_add: shouldAddBroadcastGrant,
10793
+ grant_created: !!broadcastCallbackGrant,
10794
+ });
10781
10795
  // Include admission client's connection grants as callback grants
10782
10796
  // This ensures DirectAdmissionClient grants are available for grant selection
10783
10797
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -10787,16 +10801,31 @@ class UpstreamSessionManager extends TaskSpawner {
10787
10801
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
10788
10802
  if (!isDuplicate) {
10789
10803
  callbackGrants.push(grant);
10804
+ logger$Z.debug('added_connection_grant_as_callback', {
10805
+ type: grant.type,
10806
+ });
10807
+ }
10808
+ else {
10809
+ logger$Z.debug('skipped_duplicate_connection_grant', {
10810
+ type: grant.type,
10811
+ });
10790
10812
  }
10791
10813
  }
10792
10814
  }
10793
10815
  }
10794
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10795
- const augmented = this.createBroadcastCallbackGrant(grant);
10796
- if (augmented) {
10797
- callbackGrants.push(augmented);
10798
- }
10816
+ // Add broadcast grant after connection grants to ensure we don't duplicate
10817
+ // any broadcast grants that may have been in connectionGrants
10818
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
10819
+ callbackGrants.push(broadcastCallbackGrant);
10820
+ logger$Z.debug('added_broadcast_callback_grant');
10799
10821
  }
10822
+ else if (broadcastCallbackGrant) {
10823
+ logger$Z.debug('skipped_duplicate_broadcast_callback_grant');
10824
+ }
10825
+ logger$Z.debug('callback_grants_after_augmentation', {
10826
+ count: callbackGrants.length,
10827
+ types: callbackGrants.map(g => g.type),
10828
+ });
10800
10829
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
10801
10830
  this.targetSystemId = attachInfo.targetSystemId ?? null;
10802
10831
  if (this.targetSystemId) {
@@ -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.102
5566
+ // Generated from package.json version: 0.3.6-test.104
5567
5567
  /**
5568
5568
  * The package version, injected at build time.
5569
5569
  * @internal
5570
5570
  */
5571
- const VERSION = '0.3.6-test.102';
5571
+ const VERSION = '0.3.6-test.104';
5572
5572
 
5573
5573
  /**
5574
5574
  * Fame errors module - Fame protocol specific error classes
@@ -12471,6 +12471,20 @@ class UpstreamSessionManager extends TaskSpawner {
12471
12471
  await connector.start(this.wrappedHandler);
12472
12472
  this.connector = connector;
12473
12473
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
12474
+ logger$$.debug('callback_grants_before_augmentation', {
12475
+ count: callbackGrants.length,
12476
+ types: callbackGrants.map(g => g.type),
12477
+ });
12478
+ // Check if we should create a broadcast callback grant before processing connection grants
12479
+ // This prevents adding duplicate broadcast grants
12480
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
12481
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
12482
+ ? this.createBroadcastCallbackGrant(grant)
12483
+ : null;
12484
+ logger$$.debug('broadcast_callback_grant_check', {
12485
+ should_add: shouldAddBroadcastGrant,
12486
+ grant_created: !!broadcastCallbackGrant,
12487
+ });
12474
12488
  // Include admission client's connection grants as callback grants
12475
12489
  // This ensures DirectAdmissionClient grants are available for grant selection
12476
12490
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -12480,16 +12494,31 @@ class UpstreamSessionManager extends TaskSpawner {
12480
12494
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
12481
12495
  if (!isDuplicate) {
12482
12496
  callbackGrants.push(grant);
12497
+ logger$$.debug('added_connection_grant_as_callback', {
12498
+ type: grant.type,
12499
+ });
12500
+ }
12501
+ else {
12502
+ logger$$.debug('skipped_duplicate_connection_grant', {
12503
+ type: grant.type,
12504
+ });
12483
12505
  }
12484
12506
  }
12485
12507
  }
12486
12508
  }
12487
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
12488
- const augmented = this.createBroadcastCallbackGrant(grant);
12489
- if (augmented) {
12490
- callbackGrants.push(augmented);
12491
- }
12509
+ // Add broadcast grant after connection grants to ensure we don't duplicate
12510
+ // any broadcast grants that may have been in connectionGrants
12511
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
12512
+ callbackGrants.push(broadcastCallbackGrant);
12513
+ logger$$.debug('added_broadcast_callback_grant');
12492
12514
  }
12515
+ else if (broadcastCallbackGrant) {
12516
+ logger$$.debug('skipped_duplicate_broadcast_callback_grant');
12517
+ }
12518
+ logger$$.debug('callback_grants_after_augmentation', {
12519
+ count: callbackGrants.length,
12520
+ types: callbackGrants.map(g => g.type),
12521
+ });
12493
12522
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
12494
12523
  this.targetSystemId = attachInfo.targetSystemId ?? null;
12495
12524
  if (this.targetSystemId) {
@@ -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.102
5565
+ // Generated from package.json version: 0.3.6-test.104
5566
5566
  /**
5567
5567
  * The package version, injected at build time.
5568
5568
  * @internal
5569
5569
  */
5570
- const VERSION = '0.3.6-test.102';
5570
+ const VERSION = '0.3.6-test.104';
5571
5571
 
5572
5572
  /**
5573
5573
  * Fame errors module - Fame protocol specific error classes
@@ -12470,6 +12470,20 @@ class UpstreamSessionManager extends TaskSpawner {
12470
12470
  await connector.start(this.wrappedHandler);
12471
12471
  this.connector = connector;
12472
12472
  const callbackGrants = this.node.gatherSupportedCallbackGrants();
12473
+ logger$$.debug('callback_grants_before_augmentation', {
12474
+ count: callbackGrants.length,
12475
+ types: callbackGrants.map(g => g.type),
12476
+ });
12477
+ // Check if we should create a broadcast callback grant before processing connection grants
12478
+ // This prevents adding duplicate broadcast grants
12479
+ const shouldAddBroadcastGrant = this.shouldAdvertiseBroadcastGrant(grant, callbackGrants);
12480
+ const broadcastCallbackGrant = shouldAddBroadcastGrant
12481
+ ? this.createBroadcastCallbackGrant(grant)
12482
+ : null;
12483
+ logger$$.debug('broadcast_callback_grant_check', {
12484
+ should_add: shouldAddBroadcastGrant,
12485
+ grant_created: !!broadcastCallbackGrant,
12486
+ });
12473
12487
  // Include admission client's connection grants as callback grants
12474
12488
  // This ensures DirectAdmissionClient grants are available for grant selection
12475
12489
  if (welcome.frame.connectionGrants && Array.isArray(welcome.frame.connectionGrants)) {
@@ -12479,16 +12493,31 @@ class UpstreamSessionManager extends TaskSpawner {
12479
12493
  const isDuplicate = callbackGrants.some(existing => JSON.stringify(existing) === JSON.stringify(grant));
12480
12494
  if (!isDuplicate) {
12481
12495
  callbackGrants.push(grant);
12496
+ logger$$.debug('added_connection_grant_as_callback', {
12497
+ type: grant.type,
12498
+ });
12499
+ }
12500
+ else {
12501
+ logger$$.debug('skipped_duplicate_connection_grant', {
12502
+ type: grant.type,
12503
+ });
12482
12504
  }
12483
12505
  }
12484
12506
  }
12485
12507
  }
12486
- if (this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
12487
- const augmented = this.createBroadcastCallbackGrant(grant);
12488
- if (augmented) {
12489
- callbackGrants.push(augmented);
12490
- }
12508
+ // Add broadcast grant after connection grants to ensure we don't duplicate
12509
+ // any broadcast grants that may have been in connectionGrants
12510
+ if (broadcastCallbackGrant && this.shouldAdvertiseBroadcastGrant(grant, callbackGrants)) {
12511
+ callbackGrants.push(broadcastCallbackGrant);
12512
+ logger$$.debug('added_broadcast_callback_grant');
12491
12513
  }
12514
+ else if (broadcastCallbackGrant) {
12515
+ logger$$.debug('skipped_duplicate_broadcast_callback_grant');
12516
+ }
12517
+ logger$$.debug('callback_grants_after_augmentation', {
12518
+ count: callbackGrants.length,
12519
+ types: callbackGrants.map(g => g.type),
12520
+ });
12492
12521
  const attachInfo = await this.attachClient.attach(this.node, this.outboundOriginType, connector, welcome.frame, this.wrappedHandler, this.getKeys() ?? undefined, callbackGrants);
12493
12522
  this.targetSystemId = attachInfo.targetSystemId ?? null;
12494
12523
  if (this.targetSystemId) {
@@ -2,4 +2,4 @@
2
2
  * The package version, injected at build time.
3
3
  * @internal
4
4
  */
5
- export declare const VERSION = "0.3.6-test.102";
5
+ export declare const VERSION = "0.3.6-test.104";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@naylence/runtime",
3
- "version": "0.3.6-test.102",
3
+ "version": "0.3.6-test.104",
4
4
  "type": "module",
5
5
  "description": "Naylence Runtime - Complete TypeScript runtime",
6
6
  "author": "Naylence Dev <naylencedev@gmail.com>",