bunqueue 2.7.17 → 2.7.19

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 (112) hide show
  1. package/dist/application/backgroundTasks.d.ts.map +1 -1
  2. package/dist/application/backgroundTasks.js +41 -0
  3. package/dist/application/backgroundTasks.js.map +1 -1
  4. package/dist/application/operations/jobManagement.d.ts +1 -1
  5. package/dist/application/operations/jobManagement.d.ts.map +1 -1
  6. package/dist/application/operations/jobManagement.js +2 -2
  7. package/dist/application/operations/jobManagement.js.map +1 -1
  8. package/dist/application/queueManager.d.ts +9 -2
  9. package/dist/application/queueManager.d.ts.map +1 -1
  10. package/dist/application/queueManager.js +39 -25
  11. package/dist/application/queueManager.js.map +1 -1
  12. package/dist/client/flow.js +1 -1
  13. package/dist/client/flow.js.map +1 -1
  14. package/dist/client/flowJobFactory.d.ts +4 -1
  15. package/dist/client/flowJobFactory.d.ts.map +1 -1
  16. package/dist/client/flowJobFactory.js +7 -5
  17. package/dist/client/flowJobFactory.js.map +1 -1
  18. package/dist/client/flowPush.d.ts.map +1 -1
  19. package/dist/client/flowPush.js +95 -46
  20. package/dist/client/flowPush.js.map +1 -1
  21. package/dist/client/queue/bullmqCompat.d.ts +1 -0
  22. package/dist/client/queue/bullmqCompat.d.ts.map +1 -1
  23. package/dist/client/queue/jobProxy.d.ts.map +1 -1
  24. package/dist/client/queue/jobProxy.js +48 -24
  25. package/dist/client/queue/jobProxy.js.map +1 -1
  26. package/dist/client/queue/operations/add.d.ts +1 -0
  27. package/dist/client/queue/operations/add.d.ts.map +1 -1
  28. package/dist/client/queue/operations/add.js +7 -3
  29. package/dist/client/queue/operations/add.js.map +1 -1
  30. package/dist/client/queue/operations/management.js +2 -2
  31. package/dist/client/queue/operations/management.js.map +1 -1
  32. package/dist/client/queue/operations/query.d.ts +1 -0
  33. package/dist/client/queue/operations/query.d.ts.map +1 -1
  34. package/dist/client/queue/operations/query.js +4 -4
  35. package/dist/client/queue/operations/query.js.map +1 -1
  36. package/dist/client/queue/queue.js.map +1 -1
  37. package/dist/client/tcp/client.d.ts.map +1 -1
  38. package/dist/client/tcp/client.js +11 -8
  39. package/dist/client/tcp/client.js.map +1 -1
  40. package/dist/client/types.d.ts +8 -4
  41. package/dist/client/types.d.ts.map +1 -1
  42. package/dist/client/types.js.map +1 -1
  43. package/dist/client/worker/ackBatcher.d.ts.map +1 -1
  44. package/dist/client/worker/ackBatcher.js +18 -8
  45. package/dist/client/worker/ackBatcher.js.map +1 -1
  46. package/dist/client/worker/processorHandlers.js +2 -2
  47. package/dist/client/worker/processorHandlers.js.map +1 -1
  48. package/dist/client/workflow/compensator.d.ts.map +1 -1
  49. package/dist/client/workflow/compensator.js +10 -2
  50. package/dist/client/workflow/compensator.js.map +1 -1
  51. package/dist/client/workflow/loops.d.ts.map +1 -1
  52. package/dist/client/workflow/loops.js +7 -0
  53. package/dist/client/workflow/loops.js.map +1 -1
  54. package/dist/client/workflow/types.d.ts +4 -0
  55. package/dist/client/workflow/types.d.ts.map +1 -1
  56. package/dist/domain/queue/dlqShard.d.ts.map +1 -1
  57. package/dist/domain/queue/dlqShard.js +6 -0
  58. package/dist/domain/queue/dlqShard.js.map +1 -1
  59. package/dist/domain/queue/priorityQueue.d.ts +2 -2
  60. package/dist/domain/queue/priorityQueue.d.ts.map +1 -1
  61. package/dist/domain/queue/priorityQueue.js +5 -3
  62. package/dist/domain/queue/priorityQueue.js.map +1 -1
  63. package/dist/domain/types/command.d.ts +2 -0
  64. package/dist/domain/types/command.d.ts.map +1 -1
  65. package/dist/domain/types/job.d.ts.map +1 -1
  66. package/dist/domain/types/job.js +9 -2
  67. package/dist/domain/types/job.js.map +1 -1
  68. package/dist/infrastructure/backup/s3BackupOperations.d.ts.map +1 -1
  69. package/dist/infrastructure/backup/s3BackupOperations.js +44 -6
  70. package/dist/infrastructure/backup/s3BackupOperations.js.map +1 -1
  71. package/dist/infrastructure/cloud/cloudAgent.d.ts +1 -1
  72. package/dist/infrastructure/cloud/cloudAgent.d.ts.map +1 -1
  73. package/dist/infrastructure/cloud/cloudAgent.js +9 -11
  74. package/dist/infrastructure/cloud/cloudAgent.js.map +1 -1
  75. package/dist/infrastructure/cloud/redact.d.ts +11 -0
  76. package/dist/infrastructure/cloud/redact.d.ts.map +1 -0
  77. package/dist/infrastructure/cloud/redact.js +22 -0
  78. package/dist/infrastructure/cloud/redact.js.map +1 -0
  79. package/dist/infrastructure/cloud/snapshotCollector.d.ts +4 -0
  80. package/dist/infrastructure/cloud/snapshotCollector.d.ts.map +1 -1
  81. package/dist/infrastructure/cloud/snapshotCollector.js +32 -17
  82. package/dist/infrastructure/cloud/snapshotCollector.js.map +1 -1
  83. package/dist/infrastructure/cloud/snapshotHelpers.d.ts +9 -2
  84. package/dist/infrastructure/cloud/snapshotHelpers.d.ts.map +1 -1
  85. package/dist/infrastructure/cloud/snapshotHelpers.js +10 -8
  86. package/dist/infrastructure/cloud/snapshotHelpers.js.map +1 -1
  87. package/dist/infrastructure/persistence/sqlite.d.ts +1 -1
  88. package/dist/infrastructure/persistence/sqlite.d.ts.map +1 -1
  89. package/dist/infrastructure/persistence/sqlite.js +18 -0
  90. package/dist/infrastructure/persistence/sqlite.js.map +1 -1
  91. package/dist/infrastructure/persistence/sqliteSerializer.d.ts +16 -0
  92. package/dist/infrastructure/persistence/sqliteSerializer.d.ts.map +1 -1
  93. package/dist/infrastructure/persistence/sqliteSerializer.js +73 -8
  94. package/dist/infrastructure/persistence/sqliteSerializer.js.map +1 -1
  95. package/dist/infrastructure/scheduler/cronScheduler.d.ts.map +1 -1
  96. package/dist/infrastructure/scheduler/cronScheduler.js +11 -1
  97. package/dist/infrastructure/scheduler/cronScheduler.js.map +1 -1
  98. package/dist/infrastructure/server/handlers/advanced.js +1 -1
  99. package/dist/infrastructure/server/handlers/advanced.js.map +1 -1
  100. package/dist/infrastructure/server/protocol.d.ts +4 -0
  101. package/dist/infrastructure/server/protocol.d.ts.map +1 -1
  102. package/dist/infrastructure/server/protocol.js +17 -2
  103. package/dist/infrastructure/server/protocol.js.map +1 -1
  104. package/dist/infrastructure/server/socketWriteQueue.d.ts +67 -0
  105. package/dist/infrastructure/server/socketWriteQueue.d.ts.map +1 -0
  106. package/dist/infrastructure/server/socketWriteQueue.js +127 -0
  107. package/dist/infrastructure/server/socketWriteQueue.js.map +1 -0
  108. package/dist/infrastructure/server/tcp.d.ts +17 -0
  109. package/dist/infrastructure/server/tcp.d.ts.map +1 -1
  110. package/dist/infrastructure/server/tcp.js +104 -10
  111. package/dist/infrastructure/server/tcp.js.map +1 -1
  112. package/package.json +1 -1
@@ -22,17 +22,58 @@ export function unpack(buffer, fallback, context) {
22
22
  return fallback;
23
23
  }
24
24
  }
25
+ /**
26
+ * Symbol marker stamped on a Job whose `depends_on` blob failed to decode.
27
+ *
28
+ * A corrupt dependency list must NOT collapse into `dependsOn: []` (which the
29
+ * recovery path treats as "ready, no deps" -> out-of-order execution). Rather
30
+ * than parking the job behind a magic-string dependency (which could collide
31
+ * with a real user-supplied jobId, and which leaks into waitingDeps forever),
32
+ * we signal corruption with a Symbol-keyed flag that cannot collide with any
33
+ * user data. The recovery path detects this flag and routes the job to the DLQ.
34
+ *
35
+ * A Symbol property is non-enumerable to JSON/msgpack and is never persisted,
36
+ * so it only exists on the in-memory Job for the duration of recovery.
37
+ */
38
+ export const CORRUPT_DEPENDS_ON = Symbol('bunqueue.corruptDependsOn');
39
+ /** True if a Job was recovered with a corrupt `depends_on` blob. */
40
+ export function isCorruptDependsOn(job) {
41
+ return job[CORRUPT_DEPENDS_ON] === true;
42
+ }
43
+ /**
44
+ * Decode a job's `depends_on` blob, distinguishing a genuine decode FAILURE
45
+ * from a legitimately empty list. On decode failure, returns `corrupt: true`
46
+ * (with empty ids) instead of silently swallowing it into a healthy empty array.
47
+ */
48
+ function decodeDependsOn(buffer, context) {
49
+ if (!buffer)
50
+ return { ids: [], corrupt: false };
51
+ try {
52
+ return { ids: msgpackDecode(buffer), corrupt: false };
53
+ }
54
+ catch (err) {
55
+ storageLog.error('Corrupt depends_on blob (routing job to DLQ)', {
56
+ context,
57
+ error: String(err),
58
+ });
59
+ return { ids: [], corrupt: true };
60
+ }
61
+ }
25
62
  /** Convert database row to Job object */
26
63
  export function rowToJob(row) {
27
64
  const jobContext = `rowToJob:${row.id}`;
28
- const dependsOn = row.depends_on
29
- ? unpack(row.depends_on, [], `${jobContext}:dependsOn`)
30
- : [];
65
+ // A corrupt depends_on blob must NOT be silently swallowed into [] (which the
66
+ // recovery path treats as "ready, no deps" -> out-of-order execution).
67
+ // decodeDependsOn() surfaces the corruption via a `corrupt` flag; we then
68
+ // stamp the returned Job with the CORRUPT_DEPENDS_ON symbol so the recovery
69
+ // path can route it to the DLQ instead of enqueuing it as ready.
70
+ const decoded = decodeDependsOn(row.depends_on, `${jobContext}:dependsOn`);
71
+ const dependsOn = decoded.ids;
31
72
  const childrenIds = row.children_ids
32
73
  ? unpack(row.children_ids, [], `${jobContext}:childrenIds`)
33
74
  : [];
34
75
  const tags = row.tags ? unpack(row.tags, [], `${jobContext}:tags`) : [];
35
- return {
76
+ const job = {
36
77
  id: jobId(row.id),
37
78
  queue: row.queue,
38
79
  data: unpack(row.data, {}, `${jobContext}:data`),
@@ -81,6 +122,30 @@ export function rowToJob(row) {
81
122
  ? unpack(row.timeline, [], `${jobContext}:timeline`)
82
123
  : [],
83
124
  };
125
+ // Stamp a collision-proof corruption marker (non-enumerable Symbol, never
126
+ // persisted) so the recovery path routes this job to the DLQ rather than
127
+ // enqueuing it as ready. We keep dependsOn: [] here — the real deps are
128
+ // unrecoverable — but the marker prevents out-of-order execution.
129
+ if (decoded.corrupt) {
130
+ Object.defineProperty(job, CORRUPT_DEPENDS_ON, {
131
+ value: true,
132
+ enumerable: false,
133
+ configurable: true,
134
+ });
135
+ }
136
+ return job;
137
+ }
138
+ /**
139
+ * Brand a decoded id as a JobId, preserving its runtime type.
140
+ *
141
+ * Production ids are UUIDv7 strings (identity). msgpackr faithfully round-trips
142
+ * the original runtime type (including bigint), so we only stringify when the
143
+ * decoded value is genuinely non-string rather than unconditionally coercing —
144
+ * which would otherwise rewrite a recovered job's id and break id equality on
145
+ * the critical-loss -> DLQ -> restart recovery path.
146
+ */
147
+ function brandId(id) {
148
+ return typeof id === 'string' ? jobId(id) : id;
84
149
  }
85
150
  /** Reconstruct DlqEntry from MessagePack-decoded data */
86
151
  export function reconstructDlqEntry(entry) {
@@ -88,10 +153,10 @@ export function reconstructDlqEntry(entry) {
88
153
  ...entry,
89
154
  job: {
90
155
  ...entry.job,
91
- id: jobId(String(entry.job.id)),
92
- dependsOn: entry.job.dependsOn.map((id) => jobId(String(id))),
93
- parentId: entry.job.parentId ? jobId(String(entry.job.parentId)) : null,
94
- childrenIds: entry.job.childrenIds.map((id) => jobId(String(id))),
156
+ id: brandId(entry.job.id),
157
+ dependsOn: entry.job.dependsOn.map((id) => brandId(id)),
158
+ parentId: entry.job.parentId !== null ? brandId(entry.job.parentId) : null,
159
+ childrenIds: entry.job.childrenIds.map((id) => brandId(id)),
95
160
  },
96
161
  };
97
162
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sqliteSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqliteSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,IAAI,aAAa,EAAE,MAAM,IAAI,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAmC,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGhF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,wCAAwC;AACxC,MAAM,UAAU,IAAI,CAAC,IAAa;IAChC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;AAC7B,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,MAAM,CAAI,MAAyB,EAAE,QAAW,EAAE,OAAe;IAC/E,IAAI,CAAC,MAAM;QAAE,OAAO,QAAQ,CAAC;IAC7B,IAAI,CAAC;QACH,OAAO,aAAa,CAAC,MAAM,CAAM,CAAC;IACpC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,UAAU,CAAC,KAAK,CAAC,0BAA0B,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,QAAQ,CAAC;IAClB,CAAC;AACH,CAAC;AAED,yCAAyC;AACzC,MAAM,UAAU,QAAQ,CAAC,GAAU;IACjC,MAAM,UAAU,GAAG,YAAY,GAAG,CAAC,EAAE,EAAE,CAAC;IACxC,MAAM,SAAS,GAAa,GAAG,CAAC,UAAU;QACxC,CAAC,CAAC,MAAM,CAAW,GAAG,CAAC,UAAU,EAAE,EAAE,EAAE,GAAG,UAAU,YAAY,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAa,GAAG,CAAC,YAAY;QAC5C,CAAC,CAAC,MAAM,CAAW,GAAG,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,UAAU,cAAc,CAAC;QACrE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,IAAI,GAAa,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAW,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAE5F,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,UAAU,OAAO,CAAC;QAChD,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,KAAK,EAAE,GAAG,CAAC,MAAM;QACjB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,aAAa,EAAE,IAAI,EAAE,8CAA8C;QACnE,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,QAAQ,EAAE,GAAG,CAAC,SAAS;QACvB,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACzC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;QACrD,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7C,iBAAiB,EAAE,CAAC;QACpB,IAAI;QACJ,IAAI,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC;QACpB,OAAO,EAAE,GAAG,CAAC,QAAQ;QACrB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC;QAC3B,eAAe,EAAE,GAAG,CAAC,YAAY;QACjC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,KAAK,CAAC;QAC9C,YAAY,EAAE,GAAG,CAAC,cAAc,KAAK,CAAC;QACtC,MAAM,EAAE,IAAI;QACZ,aAAa,EAAE,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC,UAAU;QACnD,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,UAAU,EAAE,CAAC;QACb,kEAAkE;QAClE,eAAe,EAAE,EAAE;QACnB,QAAQ,EAAE,IAAI;QACd,SAAS,EAAE,IAAI;QACf,mBAAmB,EAAE,KAAK;QAC1B,yBAAyB,EAAE,KAAK;QAChC,uBAAuB,EAAE,KAAK;QAC9B,yBAAyB,EAAE,KAAK;QAChC,gBAAgB,EAAE,IAAI;QACtB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,UAAU,EAAE,IAAI;QAChB,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACpB,CAAC,CAAC,MAAM,CAAqB,GAAG,CAAC,QAAQ,EAAE,EAAE,EAAE,GAAG,UAAU,WAAW,CAAC;YACxE,CAAC,CAAC,EAAE;KACP,CAAC;AACJ,CAAC;AAED,yDAAyD;AACzD,MAAM,UAAU,mBAAmB,CAAC,KAAe;IACjD,OAAO;QACL,GAAG,KAAK;QACR,GAAG,EAAE;YACH,GAAG,KAAK,CAAC,GAAG;YACZ,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC/B,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAC7D,QAAQ,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI;YACvE,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;SAClE;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"sqliteSerializer.js","sourceRoot":"","sources":["../../../src/infrastructure/persistence/sqliteSerializer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ9F;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,sDAAsD;IACtD,OAAO,CAAC,SAAS,CAA8C;IAC/D,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA+C;IACrE,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAyE;IAC9F,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAG7C,OAAO,CAAC,EAAE,mBAAmB;IAKzC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIlE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIxF;;;OAGG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAoDjC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAe7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC;;OAEG;IACH,IAAI,IAAI,OAAO,EAAE;IAIjB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IA4B5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;OAIG;YACW,IAAI;IAwGlB,wDAAwD;YAC1C,WAAW;IA4CzB;;;OAGG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CA4BvE"}
1
+ {"version":3,"file":"cronScheduler.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAA4B,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAUvD,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,yEAAyE;IACzE,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAKD,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEhF,uCAAuC;AACvC,MAAM,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAQ9F;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IACrF,sDAAsD;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyE;IAClG,iCAAiC;IACjC,OAAO,CAAC,UAAU,CAAK;IACvB,sDAAsD;IACtD,OAAO,CAAC,SAAS,CAA8C;IAC/D,qCAAqC;IACrC,OAAO,CAAC,cAAc,CAA+C;IACrE,uCAAuC;IACvC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAgC;IAC/C,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,UAAU,CAA6C;IAC/D,OAAO,CAAC,aAAa,CAAyE;IAC9F,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6B;gBAG7C,OAAO,CAAC,EAAE,mBAAmB;IAKzC;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAIhD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI;IAIvD;;OAEG;IACH,sBAAsB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI;IAIlE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,IAAI;IAIxF;;;OAGG;IACH,KAAK,IAAI,IAAI;IAab;;OAEG;IACH,IAAI,IAAI,IAAI;IAYZ;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO;IAuDjC;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAkB7B;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAItC;;OAEG;IACH,IAAI,IAAI,OAAO,EAAE;IAIjB;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI;IA4B5B;;;OAGG;IACH,OAAO,CAAC,YAAY;IA6BpB;;;;OAIG;YACW,IAAI;IA4GlB,wDAAwD;YAC1C,WAAW;IA4CzB;;;OAGG;IACH,QAAQ,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;CA4BvE"}
@@ -125,6 +125,9 @@ export class CronScheduler {
125
125
  const existing = this.cronJobs.get(cron.name);
126
126
  if (existing) {
127
127
  cron.executions = existing.cron.executions;
128
+ // Reset per-name overlap tracking on upsert: the redefined cron starts
129
+ // fresh and must not be blocked by the previous definition's last fire (H10)
130
+ this.lastFiredAt.delete(cron.name);
128
131
  }
129
132
  // Handle immediately option: set nextRun to now so it fires on next tick
130
133
  // Only on first creation, not on upsert (otherwise it overrides skipMissedOnRestart)
@@ -150,6 +153,9 @@ export class CronScheduler {
150
153
  return false;
151
154
  // Just remove from map - heap entry becomes stale (lazy deletion)
152
155
  this.cronJobs.delete(name);
156
+ // Clear per-name overlap tracking so a future cron re-added with the same
157
+ // name isn't blocked by this cron's stale last-fire timestamp (fixes H10)
158
+ this.lastFiredAt.delete(name);
153
159
  // Reschedule in case removed cron was the next timer target
154
160
  if (this.started) {
155
161
  this.scheduleNext();
@@ -262,13 +268,17 @@ export class CronScheduler {
262
268
  // Calculate new state BEFORE pushing job
263
269
  const newExecutions = cron.executions + 1;
264
270
  const executionTime = Date.now();
271
+ // The slot this fire was scheduled for (anchor for fixed-rate intervals)
272
+ const scheduledRun = cron.nextRun;
265
273
  let newNextRun;
266
274
  if (cron.schedule) {
267
275
  const expanded = expandCronShortcut(cron.schedule);
268
276
  newNextRun = getNextCronRun(expanded, executionTime, cron.timezone ?? undefined);
269
277
  }
270
278
  else if (cron.repeatEvery) {
271
- newNextRun = getNextIntervalRun(cron.repeatEvery, executionTime);
279
+ // Fixed-rate: anchor to the scheduled slot, not wall-clock now, so a
280
+ // slow/late job does not cumulatively drift the schedule forward (M4)
281
+ newNextRun = getNextIntervalRun(cron.repeatEvery, scheduledRun);
272
282
  }
273
283
  else {
274
284
  newNextRun = executionTime;
@@ -1 +1 @@
1
- {"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cronScheduler.js","sourceRoot":"","sources":["../../../src/infrastructure/scheduler/cronScheduler.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export async function handleUpdate(cmd, ctx, reqId) {
16
16
  }
17
17
  /** Handle ChangePriority command */
18
18
  export async function handleChangePriority(cmd, ctx, reqId) {
19
- const success = await ctx.queueManager.changePriority(jobId(cmd.id), cmd.priority);
19
+ const success = await ctx.queueManager.changePriority(jobId(cmd.id), cmd.priority, cmd.lifo);
20
20
  if (success) {
21
21
  ctx.queueManager.emitDashboardEvent('job:priority-changed', {
22
22
  jobId: cmd.id,
@@ -1 +1 @@
1
- {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/advanced.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"advanced.js","sourceRoot":"","sources":["../../../../src/infrastructure/server/handlers/advanced.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAGlD,2CAA2C;AAE3C,8CAA8C;AAC9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAwC,EACxC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9E,IAAI,OAAO;QAAE,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,kBAAkB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACxF,OAAO,OAAO;QACZ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;AAC9D,CAAC;AAED,oCAAoC;AACpC,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;IAC7F,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;YAC1D,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,WAAW,EAAE,GAAG,CAAC,QAAQ;SAC1B,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,KAAK,CAAC,CAAC;AAClG,CAAC;AAED,uDAAuD;AACvD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO;QAAE,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACpF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;AACjG,CAAC;AAED,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAA8C,EAC9C,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED,mCAAmC;AACnC,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,GAA+C,EAC/C,GAAmB,EACnB,KAAc;IAEd,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpE,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;YAC1D,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,KAAK,EAAE,GAAG,CAAC,KAAK;SACjB,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACrD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,qCAAqC,KAAK,GAAG,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9D,IAAI,OAAO;QAAE,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IACrF,OAAO,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;AAClF,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,GAAyC,EACzC,GAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC1B,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC;IAErC,qDAAqD;IACrD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAC/C,IAAI,CAAC,GAAG;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;IACpD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;IAClE,CAAC;IAED,uDAAuD;IACvD,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,oBAAoB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE5E,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;IAClE,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAc,CAAC;AAC3D,CAAC;AAED,0CAA0C;AAE1C,8BAA8B;AAC9B,MAAM,UAAU,cAAc,CAC5B,GAA0C,EAC1C,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAC9B,GAA4C,EAC5C,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,gBAAgB,CAC9B,IAA6C,EAC7C,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC;IAC7C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CACzB,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/E,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnB,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,EAAE;YACnD,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,KAAK,EAAE,GAAG,CAAC,MAAM;SAClB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;AACrD,CAAC;AAED,2BAA2B;AAC3B,MAAM,UAAU,WAAW,CACzB,GAAuC,EACvC,GAAmB,EACnB,KAAc;IAEd,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,0CAA0C;AAE1C,+BAA+B;AAC/B,MAAM,UAAU,eAAe,CAC7B,GAA2C,EAC3C,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACpD,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAClC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC3C,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,mBAAmB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC/E,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAClC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtD,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,iBAAiB,EAAE;QACrD,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,WAAW,EAAE,GAAG,CAAC,KAAK;KACvB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,sCAAsC;AACtC,MAAM,UAAU,sBAAsB,CACpC,GAAkD,EAClD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7C,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,4CAA4C;AAE5C,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAClC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;QAC1D,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,oCAAoC;AACpC,MAAM,UAAU,oBAAoB,CAClC,GAAgD,EAChD,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,kBAAkB,CAChC,GAA8C,EAC9C,GAAmB,EACnB,KAAc;IAEd,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrD,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,oBAAoB,EAAE;QACxD,KAAK,EAAE,GAAG,CAAC,KAAK;QAChB,MAAM,EAAE,GAAG,CAAC,MAAM;KACnB,CAAC,CAAC;IACH,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AACnC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,kBAAkB,CAChC,GAA8C,EAC9C,GAAmB,EACnB,KAAc;IAEd,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;AACjD,CAAC;AAED,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAA6C,EAC7C,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7E,IAAI,OAAO,EAAE,CAAC;QACZ,GAAG,CAAC,YAAY,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;YACvD,KAAK,EAAE,GAAG,CAAC,EAAE;YACb,QAAQ,EAAE,GAAG,CAAC,KAAK;SACpB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,OAAO;QACZ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QAC3B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,sCAAsC,EAAE,KAAK,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,GAA4C,EAC5C,GAAmB,EACnB,KAAc;IAEd,MAAM,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACzB,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAErD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;QACvD,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IAC3F,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC9C,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;QACpD,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAC5F,CAAC;IACD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,aAAa,EAAE,CAAC;QACnD,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,+BAA+B,KAAK,cAAc,EAAE,KAAK,CAAC,CAAC;AAC/E,CAAC;AAED,uEAAuE;AACvE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,GAA6C,EAC7C,GAAmB,EACnB,KAAc;IAEd,MAAM,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAC1C,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACzD,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC9D,IAAI,OAAO;YAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACpC,CAAC;AAED,qDAAqD;AAErD,6CAA6C;AAC7C,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,GAAyD,EACzD,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,uBAAuB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAc,CAAC;IACrD,CAAC;AACH,CAAC;AAED,gDAAgD;AAChD,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,GAA4D,EAC5D,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,0BAA0B,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAc,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAc,CAAC;IACrD,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,GAAuD,EACvD,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,YAAY,CAAC,qBAAqB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAc,CAAC;IAClD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC;AAED,+CAA+C;AAC/C,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,GAA2D,EAC3D,GAAmB,EACnB,KAAc;IAEd,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,YAAY,CAAC,yBAAyB,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;IAC7E,CAAC;AACH,CAAC"}
@@ -60,6 +60,10 @@ export declare class FrameParser {
60
60
  * @throws {FrameSizeError} if frame length exceeds maxFrameSize
61
61
  */
62
62
  addData(data: Uint8Array): Uint8Array[];
63
+ /** Number of bytes currently buffered awaiting a complete frame. */
64
+ get bufferedBytes(): number;
65
+ /** True while a partial (incomplete) frame is buffered. */
66
+ get hasPartialFrame(): boolean;
63
67
  /** Clear the internal buffer */
64
68
  clear(): void;
65
69
  /** Create a framed message */
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,6BAA6B,CAAC;AAEnE,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAUzD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAYrD;AAED,0BAA0B;AAC1B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW7D;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,MAAM,GAAG,IAAI,CA+Bf;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAmBlF;AAED,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAKvE;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAM;IAEpB,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgB/B,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,mBAAmB;IACnB,KAAK,IAAI,IAAI;CAGd;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,KAAK;aAErB,aAAa,EAAE,MAAM;aACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlC;AAED,mCAAmC;AACnC,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,GAAE,MAAuB;IAIjD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE;IAuCvC,gCAAgC;IAChC,KAAK,IAAI,IAAI;IAIb,8BAA8B;IAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;CAU3C"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,6BAA6B,CAAC;AAEnE,uCAAuC;AACvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAUzD;AAED,wCAAwC;AACxC,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE5D;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAYrD;AAED,0BAA0B;AAC1B,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW7D;AAED,6BAA6B;AAC7B,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAM5D;AAED,qDAAqD;AACrD,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO,GAC/D,MAAM,GAAG,IAAI,CA+Bf;AAED,0CAA0C;AAC1C,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,GAAG,IAAI,CAmBlF;AAED,8DAA8D;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,uBAAuB;AACvB,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,sCAAsC;AACtC,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,CAKvE;AAED,4BAA4B;AAC5B,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,sCAAsC;AACtC,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAM;IAEpB,oDAAoD;IACpD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE;IAgB/B,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,mBAAmB;IACnB,KAAK,IAAI,IAAI;CAGd;AAED,yEAAyE;AACzE,eAAO,MAAM,cAAc,QAAmB,CAAC;AAE/C,mDAAmD;AACnD,qBAAa,cAAe,SAAQ,KAAK;aAErB,aAAa,EAAE,MAAM;aACrB,OAAO,EAAE,MAAM;gBADf,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM;CAKlC;AAED,mCAAmC;AACnC,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;gBAE1B,YAAY,GAAE,MAAuB;IAIjD;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,EAAE;IA8CvC,oEAAoE;IACpE,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED,2DAA2D;IAC3D,IAAI,eAAe,IAAI,OAAO,CAE7B;IAED,gCAAgC;IAChC,KAAK,IAAI,IAAI;IAIb,8BAA8B;IAC9B,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU;CAU3C"}
@@ -174,14 +174,21 @@ export class FrameParser {
174
174
  (this.buffer[2] << 8) |
175
175
  this.buffer[3]) >>>
176
176
  0;
177
- // Validate frame size to prevent memory exhaustion DoS
177
+ // Validate frame size to prevent memory exhaustion DoS. A single frame's
178
+ // declared length can never exceed maxFrameSize (64MB), so the partial
179
+ // buffer is bounded by maxFrameSize regardless of how it is segmented
180
+ // across TCP reads. Slowloris (a connection that declares a large frame
181
+ // then never completes it) is handled at the transport layer by an idle
182
+ // read timeout in the server, NOT by dropping legal large partial frames.
178
183
  if (length > this.maxFrameSize) {
179
184
  // Clear buffer to prevent further processing of malicious data
180
185
  this.buffer = new Uint8Array(0);
181
186
  throw new FrameSizeError(length, this.maxFrameSize);
182
187
  }
183
188
  if (this.buffer.length < 4 + length) {
184
- // Not enough data
189
+ // Not enough data for this (legal, < maxFrameSize) frame yet. Keep the
190
+ // partial bytes buffered until the rest of the frame arrives across
191
+ // subsequent TCP segments.
185
192
  break;
186
193
  }
187
194
  // Extract frame
@@ -190,6 +197,14 @@ export class FrameParser {
190
197
  }
191
198
  return frames;
192
199
  }
200
+ /** Number of bytes currently buffered awaiting a complete frame. */
201
+ get bufferedBytes() {
202
+ return this.buffer.length;
203
+ }
204
+ /** True while a partial (incomplete) frame is buffered. */
205
+ get hasPartialFrame() {
206
+ return this.buffer.length > 0;
207
+ }
193
208
  /** Clear the internal buffer */
194
209
  clear() {
195
210
  this.buffer = new Uint8Array(0);
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../src/infrastructure/server/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Per-socket write queue
3
+ * =================================================================
4
+ * Bun's `socket.write()` may write FEWER bytes than provided when the kernel
5
+ * send buffer is full (backpressure). The unwritten tail is NOT retained by
6
+ * Bun — the caller is responsible for buffering it and resending once the
7
+ * socket fires `drain`. Ignoring the short count silently drops response
8
+ * bytes, corrupting the length-prefixed frame protocol.
9
+ *
10
+ * This helper buffers any unwritten tail per-socket and preserves ordering:
11
+ * while a pending tail exists, all subsequent writes are appended to the queue
12
+ * (never written ahead of older bytes), and the queue is flushed in order from
13
+ * the `drain` handler.
14
+ */
15
+ import type { Socket } from 'bun';
16
+ /** Minimal write surface a socket must expose for the queue. */
17
+ interface WritableSocket {
18
+ write(data: Uint8Array): number;
19
+ }
20
+ /** Per-socket pending write state. Stored on `socket.data`. */
21
+ export declare class SocketWriteQueue {
22
+ /** Buffered chunks waiting to be (re)written, in order. */
23
+ private pending;
24
+ /** Byte offset into pending[0] already written by a short write. */
25
+ private offset;
26
+ /** Total queued bytes (for bounds / observability). */
27
+ private queuedBytes;
28
+ /** Max queued bytes before the queue reports over-budget (0 = unbounded). */
29
+ private readonly maxBytes;
30
+ /**
31
+ * @param maxBytes Soft cap on buffered bytes. When `bytesQueued` exceeds this,
32
+ * `isOverBudget` becomes true and the owner should drop the connection
33
+ * (bounds write-side memory for a client that stopped reading). 0 disables.
34
+ */
35
+ constructor(maxBytes?: number);
36
+ /**
37
+ * True once the buffered byte count exceeds the configured cap. The owner is
38
+ * expected to terminate the connection and `clear()` the queue.
39
+ */
40
+ get isOverBudget(): boolean;
41
+ /**
42
+ * Enqueue `data` for delivery on `socket`, preserving order.
43
+ * Returns false if the socket appears closed (write threw / returned < 0).
44
+ */
45
+ write(socket: WritableSocket, data: Uint8Array): boolean;
46
+ /**
47
+ * Flush as much of the pending queue as the socket accepts.
48
+ * Call from the socket's `drain` handler. Stops at the first short write,
49
+ * leaving the remainder queued for the next drain.
50
+ */
51
+ flush(socket: WritableSocket): void;
52
+ /** Number of bytes still buffered awaiting drain. */
53
+ get bytesQueued(): number;
54
+ /** Whether there is unwritten data awaiting drain. */
55
+ get hasPending(): boolean;
56
+ /** Drop all buffered data (e.g. on close). */
57
+ clear(): void;
58
+ }
59
+ /**
60
+ * Convenience: write through a socket whose `data` carries a `writeQueue`.
61
+ * Keeps call sites in tcp.ts terse and consistent.
62
+ */
63
+ export declare function queuedWrite<T extends {
64
+ writeQueue: SocketWriteQueue;
65
+ }>(socket: Socket<T>, data: Uint8Array): void;
66
+ export {};
67
+ //# sourceMappingURL=socketWriteQueue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketWriteQueue.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/server/socketWriteQueue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAElC,gEAAgE;AAChE,UAAU,cAAc;IACtB,KAAK,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;CACjC;AAED,+DAA+D;AAC/D,qBAAa,gBAAgB;IAC3B,2DAA2D;IAC3D,OAAO,CAAC,OAAO,CAAoB;IACnC,oEAAoE;IACpE,OAAO,CAAC,MAAM,CAAK;IACnB,uDAAuD;IACvD,OAAO,CAAC,WAAW,CAAK;IACxB,6EAA6E;IAC7E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC;;;;OAIG;gBACS,QAAQ,SAAI;IAIxB;;;OAGG;IACH,IAAI,YAAY,IAAI,OAAO,CAE1B;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO;IAgCxD;;;;OAIG;IACH,KAAK,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI;IA+BnC,qDAAqD;IACrD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,sDAAsD;IACtD,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,8CAA8C;IAC9C,KAAK,IAAI,IAAI;CAKd;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,SAAS;IAAE,UAAU,EAAE,gBAAgB,CAAA;CAAE,EACpE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EACjB,IAAI,EAAE,UAAU,GACf,IAAI,CAEN"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * Per-socket write queue
3
+ * =================================================================
4
+ * Bun's `socket.write()` may write FEWER bytes than provided when the kernel
5
+ * send buffer is full (backpressure). The unwritten tail is NOT retained by
6
+ * Bun — the caller is responsible for buffering it and resending once the
7
+ * socket fires `drain`. Ignoring the short count silently drops response
8
+ * bytes, corrupting the length-prefixed frame protocol.
9
+ *
10
+ * This helper buffers any unwritten tail per-socket and preserves ordering:
11
+ * while a pending tail exists, all subsequent writes are appended to the queue
12
+ * (never written ahead of older bytes), and the queue is flushed in order from
13
+ * the `drain` handler.
14
+ */
15
+ /** Per-socket pending write state. Stored on `socket.data`. */
16
+ export class SocketWriteQueue {
17
+ /** Buffered chunks waiting to be (re)written, in order. */
18
+ pending = [];
19
+ /** Byte offset into pending[0] already written by a short write. */
20
+ offset = 0;
21
+ /** Total queued bytes (for bounds / observability). */
22
+ queuedBytes = 0;
23
+ /** Max queued bytes before the queue reports over-budget (0 = unbounded). */
24
+ maxBytes;
25
+ /**
26
+ * @param maxBytes Soft cap on buffered bytes. When `bytesQueued` exceeds this,
27
+ * `isOverBudget` becomes true and the owner should drop the connection
28
+ * (bounds write-side memory for a client that stopped reading). 0 disables.
29
+ */
30
+ constructor(maxBytes = 0) {
31
+ this.maxBytes = maxBytes > 0 ? maxBytes : 0;
32
+ }
33
+ /**
34
+ * True once the buffered byte count exceeds the configured cap. The owner is
35
+ * expected to terminate the connection and `clear()` the queue.
36
+ */
37
+ get isOverBudget() {
38
+ return this.maxBytes > 0 && this.queuedBytes > this.maxBytes;
39
+ }
40
+ /**
41
+ * Enqueue `data` for delivery on `socket`, preserving order.
42
+ * Returns false if the socket appears closed (write threw / returned < 0).
43
+ */
44
+ write(socket, data) {
45
+ if (data.length === 0)
46
+ return true;
47
+ // If a tail is already pending, do NOT write ahead of it — append and wait
48
+ // for drain to flush in order.
49
+ if (this.pending.length > 0) {
50
+ this.pending.push(data);
51
+ this.queuedBytes += data.length;
52
+ return true;
53
+ }
54
+ let written;
55
+ try {
56
+ written = socket.write(data);
57
+ }
58
+ catch {
59
+ return false;
60
+ }
61
+ if (written < 0) {
62
+ // Socket closed.
63
+ return false;
64
+ }
65
+ if (written < data.length) {
66
+ // Short write: buffer the unwritten tail; flush on drain.
67
+ const tail = data.subarray(written);
68
+ this.pending.push(tail);
69
+ this.queuedBytes += tail.length;
70
+ }
71
+ return true;
72
+ }
73
+ /**
74
+ * Flush as much of the pending queue as the socket accepts.
75
+ * Call from the socket's `drain` handler. Stops at the first short write,
76
+ * leaving the remainder queued for the next drain.
77
+ */
78
+ flush(socket) {
79
+ while (this.pending.length > 0) {
80
+ const chunk = this.pending[0];
81
+ const view = this.offset > 0 ? chunk.subarray(this.offset) : chunk;
82
+ let written;
83
+ try {
84
+ written = socket.write(view);
85
+ }
86
+ catch {
87
+ return;
88
+ }
89
+ if (written <= 0) {
90
+ // Socket not ready / closed; wait for the next drain.
91
+ return;
92
+ }
93
+ if (written < view.length) {
94
+ // Still backpressured: advance offset within the current chunk.
95
+ this.offset += written;
96
+ this.queuedBytes -= written;
97
+ return;
98
+ }
99
+ // Whole chunk flushed.
100
+ this.queuedBytes -= view.length;
101
+ this.pending.shift();
102
+ this.offset = 0;
103
+ }
104
+ }
105
+ /** Number of bytes still buffered awaiting drain. */
106
+ get bytesQueued() {
107
+ return this.queuedBytes;
108
+ }
109
+ /** Whether there is unwritten data awaiting drain. */
110
+ get hasPending() {
111
+ return this.pending.length > 0;
112
+ }
113
+ /** Drop all buffered data (e.g. on close). */
114
+ clear() {
115
+ this.pending = [];
116
+ this.offset = 0;
117
+ this.queuedBytes = 0;
118
+ }
119
+ }
120
+ /**
121
+ * Convenience: write through a socket whose `data` carries a `writeQueue`.
122
+ * Keeps call sites in tcp.ts terse and consistent.
123
+ */
124
+ export function queuedWrite(socket, data) {
125
+ socket.data.writeQueue.write(socket, data);
126
+ }
127
+ //# sourceMappingURL=socketWriteQueue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"socketWriteQueue.js","sourceRoot":"","sources":["../../../src/infrastructure/server/socketWriteQueue.ts"],"names":[],"mappings":"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"}