tywrap 0.2.0 → 0.3.0

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 (163) hide show
  1. package/README.md +65 -31
  2. package/dist/cli.js +49 -2
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config/index.d.ts +11 -7
  5. package/dist/config/index.d.ts.map +1 -1
  6. package/dist/config/index.js +43 -7
  7. package/dist/config/index.js.map +1 -1
  8. package/dist/core/analyzer.d.ts +1 -0
  9. package/dist/core/analyzer.d.ts.map +1 -1
  10. package/dist/core/analyzer.js +47 -12
  11. package/dist/core/analyzer.js.map +1 -1
  12. package/dist/core/annotation-parser.d.ts +8 -0
  13. package/dist/core/annotation-parser.d.ts.map +1 -0
  14. package/dist/core/annotation-parser.js +409 -0
  15. package/dist/core/annotation-parser.js.map +1 -0
  16. package/dist/core/discovery.d.ts +1 -0
  17. package/dist/core/discovery.d.ts.map +1 -1
  18. package/dist/core/discovery.js +9 -9
  19. package/dist/core/discovery.js.map +1 -1
  20. package/dist/core/generator.d.ts +9 -1
  21. package/dist/core/generator.d.ts.map +1 -1
  22. package/dist/core/generator.js +738 -104
  23. package/dist/core/generator.js.map +1 -1
  24. package/dist/core/mapper.d.ts +9 -7
  25. package/dist/core/mapper.d.ts.map +1 -1
  26. package/dist/core/mapper.js +129 -44
  27. package/dist/core/mapper.js.map +1 -1
  28. package/dist/index.d.ts +23 -7
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +23 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/runtime/base.d.ts +17 -7
  33. package/dist/runtime/base.d.ts.map +1 -1
  34. package/dist/runtime/base.js +18 -1
  35. package/dist/runtime/base.js.map +1 -1
  36. package/dist/runtime/bounded-context.d.ts +252 -0
  37. package/dist/runtime/bounded-context.d.ts.map +1 -0
  38. package/dist/runtime/bounded-context.js +454 -0
  39. package/dist/runtime/bounded-context.js.map +1 -0
  40. package/dist/runtime/bridge-core.d.ts +1 -0
  41. package/dist/runtime/bridge-core.d.ts.map +1 -1
  42. package/dist/runtime/bridge-core.js +52 -17
  43. package/dist/runtime/bridge-core.js.map +1 -1
  44. package/dist/runtime/bridge-protocol.d.ts +184 -0
  45. package/dist/runtime/bridge-protocol.d.ts.map +1 -0
  46. package/dist/runtime/bridge-protocol.js +344 -0
  47. package/dist/runtime/bridge-protocol.js.map +1 -0
  48. package/dist/runtime/disposable.d.ts +40 -0
  49. package/dist/runtime/disposable.d.ts.map +1 -0
  50. package/dist/runtime/disposable.js +49 -0
  51. package/dist/runtime/disposable.js.map +1 -0
  52. package/dist/runtime/errors.d.ts +10 -0
  53. package/dist/runtime/errors.d.ts.map +1 -1
  54. package/dist/runtime/errors.js +9 -0
  55. package/dist/runtime/errors.js.map +1 -1
  56. package/dist/runtime/http-io.d.ts +91 -0
  57. package/dist/runtime/http-io.d.ts.map +1 -0
  58. package/dist/runtime/http-io.js +195 -0
  59. package/dist/runtime/http-io.js.map +1 -0
  60. package/dist/runtime/http.d.ts +48 -13
  61. package/dist/runtime/http.d.ts.map +1 -1
  62. package/dist/runtime/http.js +60 -73
  63. package/dist/runtime/http.js.map +1 -1
  64. package/dist/runtime/node.d.ts +97 -130
  65. package/dist/runtime/node.d.ts.map +1 -1
  66. package/dist/runtime/node.js +392 -521
  67. package/dist/runtime/node.js.map +1 -1
  68. package/dist/runtime/optimized-node.d.ts +1 -1
  69. package/dist/runtime/optimized-node.d.ts.map +1 -1
  70. package/dist/runtime/optimized-node.js +1 -1
  71. package/dist/runtime/optimized-node.js.map +1 -1
  72. package/dist/runtime/pooled-transport.d.ts +135 -0
  73. package/dist/runtime/pooled-transport.d.ts.map +1 -0
  74. package/dist/runtime/pooled-transport.js +177 -0
  75. package/dist/runtime/pooled-transport.js.map +1 -0
  76. package/dist/runtime/process-io.d.ts +209 -0
  77. package/dist/runtime/process-io.d.ts.map +1 -0
  78. package/dist/runtime/process-io.js +729 -0
  79. package/dist/runtime/process-io.js.map +1 -0
  80. package/dist/runtime/pyodide-io.d.ts +154 -0
  81. package/dist/runtime/pyodide-io.d.ts.map +1 -0
  82. package/dist/runtime/pyodide-io.js +459 -0
  83. package/dist/runtime/pyodide-io.js.map +1 -0
  84. package/dist/runtime/pyodide.d.ts +51 -19
  85. package/dist/runtime/pyodide.d.ts.map +1 -1
  86. package/dist/runtime/pyodide.js +57 -186
  87. package/dist/runtime/pyodide.js.map +1 -1
  88. package/dist/runtime/safe-codec.d.ts +103 -0
  89. package/dist/runtime/safe-codec.d.ts.map +1 -0
  90. package/dist/runtime/safe-codec.js +519 -0
  91. package/dist/runtime/safe-codec.js.map +1 -0
  92. package/dist/runtime/transport.d.ts +191 -0
  93. package/dist/runtime/transport.d.ts.map +1 -0
  94. package/dist/runtime/transport.js +86 -0
  95. package/dist/runtime/transport.js.map +1 -0
  96. package/dist/runtime/validators.d.ts +120 -0
  97. package/dist/runtime/validators.d.ts.map +1 -0
  98. package/dist/runtime/validators.js +229 -0
  99. package/dist/runtime/validators.js.map +1 -0
  100. package/dist/runtime/worker-pool.d.ts +208 -0
  101. package/dist/runtime/worker-pool.d.ts.map +1 -0
  102. package/dist/runtime/worker-pool.js +419 -0
  103. package/dist/runtime/worker-pool.js.map +1 -0
  104. package/dist/types/index.d.ts +51 -1
  105. package/dist/types/index.d.ts.map +1 -1
  106. package/dist/tywrap.d.ts.map +1 -1
  107. package/dist/tywrap.js +227 -328
  108. package/dist/tywrap.js.map +1 -1
  109. package/dist/utils/cache.d.ts.map +1 -1
  110. package/dist/utils/cache.js +53 -5
  111. package/dist/utils/cache.js.map +1 -1
  112. package/dist/utils/codec.d.ts.map +1 -1
  113. package/dist/utils/codec.js +114 -1
  114. package/dist/utils/codec.js.map +1 -1
  115. package/dist/utils/ir-cache.d.ts +28 -0
  116. package/dist/utils/ir-cache.d.ts.map +1 -0
  117. package/dist/utils/ir-cache.js +29 -0
  118. package/dist/utils/ir-cache.js.map +1 -0
  119. package/dist/utils/parallel-processor.d.ts +1 -1
  120. package/dist/utils/parallel-processor.d.ts.map +1 -1
  121. package/dist/utils/parallel-processor.js +111 -40
  122. package/dist/utils/parallel-processor.js.map +1 -1
  123. package/dist/utils/runtime.d.ts +5 -1
  124. package/dist/utils/runtime.d.ts.map +1 -1
  125. package/dist/utils/runtime.js +112 -18
  126. package/dist/utils/runtime.js.map +1 -1
  127. package/package.json +40 -18
  128. package/runtime/python_bridge.py +108 -15
  129. package/runtime/safe_codec.py +344 -0
  130. package/src/cli.ts +61 -2
  131. package/src/config/index.ts +63 -17
  132. package/src/core/analyzer.ts +52 -15
  133. package/src/core/annotation-parser.ts +500 -0
  134. package/src/core/discovery.ts +26 -12
  135. package/src/core/generator.ts +956 -116
  136. package/src/core/mapper.ts +158 -51
  137. package/src/index.ts +78 -6
  138. package/src/runtime/base.ts +18 -26
  139. package/src/runtime/bounded-context.ts +608 -0
  140. package/src/runtime/bridge-core.ts +58 -18
  141. package/src/runtime/bridge-protocol.ts +483 -0
  142. package/src/runtime/disposable.ts +65 -0
  143. package/src/runtime/errors.ts +14 -0
  144. package/src/runtime/http-io.ts +245 -0
  145. package/src/runtime/http.ts +76 -115
  146. package/src/runtime/node.ts +563 -676
  147. package/src/runtime/optimized-node.ts +4 -1
  148. package/src/runtime/pooled-transport.ts +263 -0
  149. package/src/runtime/process-io.ts +930 -0
  150. package/src/runtime/pyodide-io.ts +551 -0
  151. package/src/runtime/pyodide.ts +75 -215
  152. package/src/runtime/safe-codec.ts +651 -0
  153. package/src/runtime/transport.ts +278 -0
  154. package/src/runtime/validators.ts +252 -0
  155. package/src/runtime/worker-pool.ts +559 -0
  156. package/src/types/global.d.ts +11 -1
  157. package/src/types/index.ts +63 -0
  158. package/src/tywrap.ts +279 -358
  159. package/src/utils/cache.ts +59 -5
  160. package/src/utils/codec.ts +122 -1
  161. package/src/utils/ir-cache.ts +51 -0
  162. package/src/utils/parallel-processor.ts +119 -43
  163. package/src/utils/runtime.ts +129 -18
@@ -0,0 +1,454 @@
1
+ /**
2
+ * BoundedContext - Unified abstraction for cross-boundary concerns.
3
+ *
4
+ * This base class provides consistent handling of:
5
+ * - Lifecycle management (init/dispose state machine)
6
+ * - Validation helpers
7
+ * - Error classification
8
+ * - Bounded execution (timeout, retry)
9
+ * - Resource ownership tracking
10
+ *
11
+ * All runtime bridges (NodeBridge, PyodideBridge, HttpBridge) extend this class.
12
+ *
13
+ * @see https://github.com/bbopen/tywrap/issues/149
14
+ */
15
+ import { BridgeDisposedError, BridgeError, BridgeExecutionError, BridgeProtocolError, BridgeTimeoutError, } from './errors.js';
16
+ import { disposeAll } from './disposable.js';
17
+ import { assertFiniteNumber, assertNonEmptyString, assertPositive, assertString, ValidationError, } from './validators.js';
18
+ // ═══════════════════════════════════════════════════════════════════════════
19
+ // BOUNDED CONTEXT BASE CLASS
20
+ // ═══════════════════════════════════════════════════════════════════════════
21
+ /**
22
+ * Abstract base class for runtime bridges with unified boundary management.
23
+ *
24
+ * Provides lifecycle management, validation, error classification,
25
+ * bounded execution, and resource tracking.
26
+ */
27
+ export class BoundedContext {
28
+ // ═══════════════════════════════════════════════════════════════════════════
29
+ // STATE
30
+ // ═══════════════════════════════════════════════════════════════════════════
31
+ _state = 'idle';
32
+ _initPromise;
33
+ _resources = new Set();
34
+ /**
35
+ * Current lifecycle state of the context.
36
+ */
37
+ get state() {
38
+ return this._state;
39
+ }
40
+ /**
41
+ * Whether the context is ready for operations.
42
+ */
43
+ get isReady() {
44
+ return this._state === 'ready';
45
+ }
46
+ /**
47
+ * Whether the context has been disposed.
48
+ */
49
+ get isDisposed() {
50
+ return this._state === 'disposed';
51
+ }
52
+ // ═══════════════════════════════════════════════════════════════════════════
53
+ // LIFECYCLE (addresses #142, #148)
54
+ // ═══════════════════════════════════════════════════════════════════════════
55
+ /**
56
+ * Initialize the context.
57
+ *
58
+ * This method:
59
+ * - Is idempotent (safe to call multiple times)
60
+ * - Deduplicates concurrent calls (returns the same promise)
61
+ * - Allows retry after failure (resets to idle state)
62
+ * - Throws BridgeDisposedError if already disposed
63
+ *
64
+ * @throws BridgeDisposedError if the context has been disposed
65
+ * @throws BridgeError subclass if initialization fails
66
+ */
67
+ async init() {
68
+ // Guard against disposed or disposing states
69
+ if (this._state === 'disposed' || this._state === 'disposing') {
70
+ throw new BridgeDisposedError('Context has been disposed');
71
+ }
72
+ if (this._state === 'ready') {
73
+ return;
74
+ }
75
+ if (this._initPromise) {
76
+ return this._initPromise;
77
+ }
78
+ this._state = 'initializing';
79
+ this._initPromise = this.doInit()
80
+ .then(() => {
81
+ // Guard against dispose() being called during init
82
+ if (this._state === 'initializing') {
83
+ this._state = 'ready';
84
+ }
85
+ })
86
+ .catch(err => {
87
+ // Only allow retry by resetting to idle if still initializing
88
+ // (don't revive a disposed/disposing context)
89
+ if (this._state === 'initializing') {
90
+ this._state = 'idle';
91
+ this._initPromise = undefined;
92
+ }
93
+ throw this.classifyError(err);
94
+ });
95
+ return this._initPromise;
96
+ }
97
+ /**
98
+ * Dispose the context and all tracked resources.
99
+ *
100
+ * This method:
101
+ * - Is idempotent (safe to call multiple times)
102
+ * - Disposes all tracked resources before calling doDispose()
103
+ * - Collects errors from resource disposal and reports them
104
+ * - Transitions to disposed state even if disposal errors occur
105
+ *
106
+ * @throws AggregateError if multiple disposal errors occur
107
+ * @throws Error if a single disposal error occurs
108
+ */
109
+ async dispose() {
110
+ if (this._state === 'disposed') {
111
+ return;
112
+ }
113
+ if (this._state === 'disposing') {
114
+ // Another dispose is in progress; don't overlap
115
+ return;
116
+ }
117
+ this._state = 'disposing';
118
+ // Dispose all tracked resources
119
+ const resourceErrors = await disposeAll(this._resources);
120
+ this._resources.clear();
121
+ // Call subclass dispose logic
122
+ let doDisposeError;
123
+ try {
124
+ await this.doDispose();
125
+ }
126
+ catch (e) {
127
+ doDisposeError = e instanceof Error ? e : new Error(String(e));
128
+ }
129
+ // Always transition to disposed
130
+ this._state = 'disposed';
131
+ this._initPromise = undefined;
132
+ // Report any errors
133
+ const allErrors = doDisposeError ? [...resourceErrors, doDisposeError] : resourceErrors;
134
+ if (allErrors.length === 1) {
135
+ throw allErrors[0];
136
+ }
137
+ if (allErrors.length > 1) {
138
+ throw new AggregateError(allErrors, 'Multiple errors during dispose');
139
+ }
140
+ }
141
+ // ═══════════════════════════════════════════════════════════════════════════
142
+ // VALIDATION (addresses #141, #145, #146, #147)
143
+ // ═══════════════════════════════════════════════════════════════════════════
144
+ /**
145
+ * Validate that a value is a finite number.
146
+ * Wraps validation errors in appropriate BridgeError.
147
+ *
148
+ * @param value - The value to validate
149
+ * @param name - Parameter name for error messages
150
+ * @returns The validated number
151
+ * @throws BridgeError if validation fails
152
+ */
153
+ validateNumeric(value, name) {
154
+ try {
155
+ return assertFiniteNumber(value, name);
156
+ }
157
+ catch (error) {
158
+ throw this.classifyError(error);
159
+ }
160
+ }
161
+ /**
162
+ * Validate that a value is a positive number.
163
+ * Wraps validation errors in appropriate BridgeError.
164
+ *
165
+ * @param value - The value to validate
166
+ * @param name - Parameter name for error messages
167
+ * @returns The validated number
168
+ * @throws BridgeError if validation fails
169
+ */
170
+ validatePositive(value, name) {
171
+ try {
172
+ return assertPositive(value, name);
173
+ }
174
+ catch (error) {
175
+ throw this.classifyError(error);
176
+ }
177
+ }
178
+ /**
179
+ * Validate that a value is a string.
180
+ * Wraps validation errors in appropriate BridgeError.
181
+ *
182
+ * @param value - The value to validate
183
+ * @param name - Parameter name for error messages
184
+ * @returns The validated string
185
+ * @throws BridgeError if validation fails
186
+ */
187
+ validateString(value, name) {
188
+ try {
189
+ return assertString(value, name);
190
+ }
191
+ catch (error) {
192
+ throw this.classifyError(error);
193
+ }
194
+ }
195
+ /**
196
+ * Validate that a value is a non-empty string.
197
+ * Wraps validation errors in appropriate BridgeError.
198
+ *
199
+ * @param value - The value to validate
200
+ * @param name - Parameter name for error messages
201
+ * @returns The validated string
202
+ * @throws BridgeError if validation fails
203
+ */
204
+ validateNonEmptyString(value, name) {
205
+ try {
206
+ return assertNonEmptyString(value, name);
207
+ }
208
+ catch (error) {
209
+ throw this.classifyError(error);
210
+ }
211
+ }
212
+ /**
213
+ * Validate input before processing.
214
+ * Override in subclasses for domain-specific input validation.
215
+ *
216
+ * @param input - The input to validate
217
+ * @returns The validated input
218
+ */
219
+ validateInput(input) {
220
+ return input;
221
+ }
222
+ /**
223
+ * Validate output before returning.
224
+ * Override in subclasses for domain-specific output validation.
225
+ *
226
+ * @param output - The output to validate
227
+ * @returns The validated output
228
+ */
229
+ validateOutput(output) {
230
+ return output;
231
+ }
232
+ // ═══════════════════════════════════════════════════════════════════════════
233
+ // ERROR CLASSIFICATION (addresses #143)
234
+ // ═══════════════════════════════════════════════════════════════════════════
235
+ /**
236
+ * Classify an error into the appropriate BridgeError subtype.
237
+ *
238
+ * This method:
239
+ * - Passes through existing BridgeError instances
240
+ * - Uses context state to determine appropriate error type
241
+ * - Pattern-matches error messages for classification
242
+ *
243
+ * @param error - The error to classify
244
+ * @returns A BridgeError instance
245
+ */
246
+ classifyError(error) {
247
+ // Pass through existing BridgeErrors
248
+ if (error instanceof BridgeError) {
249
+ return error;
250
+ }
251
+ const message = error instanceof Error ? error.message : String(error);
252
+ const cause = error instanceof Error ? error : undefined;
253
+ // Context state takes precedence
254
+ if (this._state === 'disposed') {
255
+ return new BridgeDisposedError(message, { cause });
256
+ }
257
+ // Pattern matching for classification
258
+ const lowerMessage = message.toLowerCase();
259
+ // Timeout patterns
260
+ if (lowerMessage.includes('timeout') ||
261
+ lowerMessage.includes('etimedout') ||
262
+ lowerMessage.includes('timed out') ||
263
+ lowerMessage.includes('aborted')) {
264
+ return new BridgeTimeoutError(message, { cause });
265
+ }
266
+ // Protocol patterns
267
+ if (lowerMessage.includes('protocol') ||
268
+ lowerMessage.includes('invalid json') ||
269
+ lowerMessage.includes('parse error') ||
270
+ lowerMessage.includes('unexpected token') ||
271
+ lowerMessage.includes('not found') ||
272
+ error instanceof ValidationError) {
273
+ return new BridgeProtocolError(message, { cause });
274
+ }
275
+ // Default to execution error
276
+ return new BridgeExecutionError(message, { cause });
277
+ }
278
+ // ═══════════════════════════════════════════════════════════════════════════
279
+ // BOUNDED EXECUTION (addresses #141, #147, #148)
280
+ // ═══════════════════════════════════════════════════════════════════════════
281
+ /**
282
+ * Execute an operation with bounded execution guarantees.
283
+ *
284
+ * This method:
285
+ * - Auto-initializes if not ready
286
+ * - Enforces timeout limits
287
+ * - Supports retry on retryable errors
288
+ * - Respects abort signals
289
+ * - Validates results if a validator is provided
290
+ *
291
+ * @param operation - The async operation to execute
292
+ * @param options - Execution options (timeout, retries, etc.)
293
+ * @returns The operation result
294
+ * @throws BridgeTimeoutError if the operation times out
295
+ * @throws BridgeDisposedError if the context is disposed
296
+ * @throws BridgeError for other failures
297
+ */
298
+ async execute(operation, options = {}) {
299
+ // Auto-initialize if needed
300
+ if (this._state !== 'ready') {
301
+ await this.init();
302
+ }
303
+ // Check disposed state after potential init
304
+ if (this._state === 'disposed') {
305
+ throw new BridgeDisposedError('Context disposed');
306
+ }
307
+ const { timeoutMs = 30000, retries = 0, retryDelayMs = 100, validate, signal } = options;
308
+ let lastError;
309
+ for (let attempt = 0; attempt <= retries; attempt++) {
310
+ // Check for abort before each attempt
311
+ if (signal?.aborted) {
312
+ throw new BridgeTimeoutError('Operation aborted');
313
+ }
314
+ try {
315
+ const result = await this.withTimeout(operation(), timeoutMs, signal);
316
+ return validate ? validate(result) : result;
317
+ }
318
+ catch (error) {
319
+ lastError = this.classifyError(error);
320
+ // Retry if appropriate
321
+ if (attempt < retries && this.isRetryable(lastError)) {
322
+ await this.delay(retryDelayMs * (attempt + 1));
323
+ continue;
324
+ }
325
+ throw lastError;
326
+ }
327
+ }
328
+ // Should not reach here, but TypeScript doesn't know that
329
+ /* istanbul ignore next */
330
+ throw lastError ?? new BridgeExecutionError('Unexpected execution flow');
331
+ }
332
+ /**
333
+ * Wrap a promise with a timeout.
334
+ *
335
+ * @param promise - The promise to wrap
336
+ * @param ms - Timeout in milliseconds (0 or negative disables timeout)
337
+ * @param signal - Optional abort signal
338
+ * @returns The promise result
339
+ * @throws BridgeTimeoutError if the timeout expires
340
+ */
341
+ async withTimeout(promise, ms, signal) {
342
+ // Check if already aborted
343
+ if (signal?.aborted) {
344
+ throw new BridgeTimeoutError('Operation aborted');
345
+ }
346
+ // No timeout if ms is 0 or negative, but still honor abort signal
347
+ if (ms <= 0 || !Number.isFinite(ms)) {
348
+ if (!signal) {
349
+ return promise;
350
+ }
351
+ // Wrap promise to honor abort signal even without timeout
352
+ return new Promise((resolve, reject) => {
353
+ const abortHandler = () => {
354
+ reject(new BridgeTimeoutError('Operation aborted'));
355
+ };
356
+ signal.addEventListener('abort', abortHandler, { once: true });
357
+ promise
358
+ .then(result => {
359
+ signal.removeEventListener('abort', abortHandler);
360
+ resolve(result);
361
+ })
362
+ .catch(error => {
363
+ signal.removeEventListener('abort', abortHandler);
364
+ reject(error);
365
+ });
366
+ });
367
+ }
368
+ return new Promise((resolve, reject) => {
369
+ const timer = setTimeout(() => {
370
+ reject(new BridgeTimeoutError(`Operation timed out after ${ms}ms`));
371
+ }, ms);
372
+ // Handle external abort signal
373
+ const abortHandler = () => {
374
+ clearTimeout(timer);
375
+ reject(new BridgeTimeoutError('Operation aborted'));
376
+ };
377
+ if (signal) {
378
+ signal.addEventListener('abort', abortHandler, { once: true });
379
+ }
380
+ promise
381
+ .then(result => {
382
+ clearTimeout(timer);
383
+ signal?.removeEventListener('abort', abortHandler);
384
+ resolve(result);
385
+ })
386
+ .catch(error => {
387
+ clearTimeout(timer);
388
+ signal?.removeEventListener('abort', abortHandler);
389
+ reject(error);
390
+ });
391
+ });
392
+ }
393
+ /**
394
+ * Determine if an error is retryable.
395
+ * Override in subclasses to customize retry logic.
396
+ *
397
+ * @param error - The error to check
398
+ * @returns True if the operation should be retried
399
+ */
400
+ isRetryable(error) {
401
+ // Timeout and connection errors are typically retryable
402
+ if (error instanceof BridgeTimeoutError) {
403
+ return true;
404
+ }
405
+ const message = error.message.toLowerCase();
406
+ return (message.includes('econnreset') ||
407
+ message.includes('econnrefused') ||
408
+ message.includes('epipe') ||
409
+ message.includes('connection reset'));
410
+ }
411
+ /**
412
+ * Delay for a specified duration.
413
+ *
414
+ * @param ms - Milliseconds to delay
415
+ */
416
+ delay(ms) {
417
+ return new Promise(resolve => setTimeout(resolve, ms));
418
+ }
419
+ // ═══════════════════════════════════════════════════════════════════════════
420
+ // RESOURCE OWNERSHIP (addresses #144, #148)
421
+ // ═══════════════════════════════════════════════════════════════════════════
422
+ /**
423
+ * Track a disposable resource for automatic cleanup.
424
+ *
425
+ * When the context is disposed, all tracked resources will be
426
+ * disposed automatically.
427
+ *
428
+ * @param resource - The resource to track
429
+ * @returns The same resource (for chaining)
430
+ */
431
+ trackResource(resource) {
432
+ this._resources.add(resource);
433
+ return resource;
434
+ }
435
+ /**
436
+ * Stop tracking a resource.
437
+ *
438
+ * Use this when a resource is disposed manually and should
439
+ * not be disposed again during context disposal.
440
+ *
441
+ * @param resource - The resource to untrack
442
+ * @returns True if the resource was being tracked
443
+ */
444
+ untrackResource(resource) {
445
+ return this._resources.delete(resource);
446
+ }
447
+ /**
448
+ * Number of currently tracked resources.
449
+ */
450
+ get resourceCount() {
451
+ return this._resources.size;
452
+ }
453
+ }
454
+ //# sourceMappingURL=bounded-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bounded-context.js","sourceRoot":"","sources":["../../src/runtime/bounded-context.ts"],"names":[],"mappings":"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"}
@@ -50,6 +50,7 @@ export declare class BridgeCore {
50
50
  private handleResponseLine;
51
51
  private errorFrom;
52
52
  private normalizeErrorPayload;
53
+ private describeInvalidErrorPayload;
53
54
  private failRequest;
54
55
  private rejectAll;
55
56
  private handleProtocolError;
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-core.d.ts","sourceRoot":"","sources":["../../src/runtime/bridge-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-core.d.ts","sourceRoot":"","sources":["../../src/runtime/bridge-core.ts"],"names":[],"mappings":"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"}
@@ -170,15 +170,30 @@ export class BridgeCore {
170
170
  this.handleProtocolError(`Unexpected response id ${msg.id}`, line);
171
171
  return;
172
172
  }
173
- this.pending.delete(msg.id);
174
- if (pending.timer) {
175
- clearTimeout(pending.timer);
173
+ const hasResult = Object.prototype.hasOwnProperty.call(msg, 'result');
174
+ const hasError = Object.prototype.hasOwnProperty.call(msg, 'error');
175
+ if (hasResult && hasError) {
176
+ this.handleProtocolError('Response cannot include both "result" and "error"', line);
177
+ return;
176
178
  }
177
- if ('error' in msg) {
179
+ if (hasError) {
178
180
  const errorPayload = this.normalizeErrorPayload(msg.error);
181
+ if (!errorPayload) {
182
+ const reason = this.describeInvalidErrorPayload(msg.error);
183
+ this.handleProtocolError(`Invalid response "error" payload: ${reason}`, line);
184
+ return;
185
+ }
186
+ this.pending.delete(msg.id);
187
+ if (pending.timer) {
188
+ clearTimeout(pending.timer);
189
+ }
179
190
  pending.reject(this.errorFrom(errorPayload));
180
191
  return;
181
192
  }
193
+ this.pending.delete(msg.id);
194
+ if (pending.timer) {
195
+ clearTimeout(pending.timer);
196
+ }
182
197
  Promise.resolve(this.options.decodeValue(msg.result))
183
198
  .then(decoded => pending.resolve(decoded))
184
199
  .catch(err => {
@@ -191,20 +206,40 @@ export class BridgeCore {
191
206
  return error;
192
207
  }
193
208
  normalizeErrorPayload(err) {
194
- if (err && typeof err === 'object') {
195
- const candidate = err;
196
- if (typeof candidate.type === 'string' && typeof candidate.message === 'string') {
197
- const normalized = {
198
- type: candidate.type,
199
- message: candidate.message,
200
- };
201
- if (typeof candidate.traceback === 'string') {
202
- normalized.traceback = candidate.traceback;
203
- }
204
- return normalized;
205
- }
209
+ if (!err || typeof err !== 'object' || Array.isArray(err)) {
210
+ return null;
211
+ }
212
+ const candidate = err;
213
+ if (typeof candidate.type !== 'string' || typeof candidate.message !== 'string') {
214
+ return null;
215
+ }
216
+ if (candidate.traceback !== undefined && typeof candidate.traceback !== 'string') {
217
+ return null;
218
+ }
219
+ const normalized = {
220
+ type: candidate.type,
221
+ message: candidate.message,
222
+ };
223
+ if (typeof candidate.traceback === 'string') {
224
+ normalized.traceback = candidate.traceback;
225
+ }
226
+ return normalized;
227
+ }
228
+ describeInvalidErrorPayload(err) {
229
+ if (!err || typeof err !== 'object' || Array.isArray(err)) {
230
+ return 'expected an object with string "type" and "message" fields';
231
+ }
232
+ const candidate = err;
233
+ if (typeof candidate.type !== 'string') {
234
+ return '"type" must be a string';
235
+ }
236
+ if (typeof candidate.message !== 'string') {
237
+ return '"message" must be a string';
238
+ }
239
+ if (candidate.traceback !== undefined && typeof candidate.traceback !== 'string') {
240
+ return '"traceback" must be a string when provided';
206
241
  }
207
- return { type: 'UnknownError', message: String(err) };
242
+ return 'expected an object with string "type" and "message" fields';
208
243
  }
209
244
  failRequest(id, error) {
210
245
  const pending = this.pending.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"bridge-core.js","sourceRoot":"","sources":["../../src/runtime/bridge-core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge-core.js","sourceRoot":"","sources":["../../src/runtime/bridge-core.ts"],"names":[],"mappings":"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"}