@ebarahona/loopback-transport-core 1.0.0 → 1.2.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 (105) hide show
  1. package/README.md +472 -35
  2. package/dist/client/client-proxy.d.ts +73 -42
  3. package/dist/client/client-proxy.js +71 -42
  4. package/dist/client/client-proxy.js.map +1 -1
  5. package/dist/client/index.d.ts +1 -1
  6. package/dist/client/index.js +3 -15
  7. package/dist/client/index.js.map +1 -1
  8. package/dist/context/execution-context.d.ts +58 -11
  9. package/dist/context/execution-context.js +62 -17
  10. package/dist/context/execution-context.js.map +1 -1
  11. package/dist/context/index.d.ts +2 -1
  12. package/dist/context/index.js +3 -15
  13. package/dist/context/index.js.map +1 -1
  14. package/dist/decorators/constants.d.ts +20 -10
  15. package/dist/decorators/constants.js +6 -2
  16. package/dist/decorators/constants.js.map +1 -1
  17. package/dist/decorators/event-handler.decorator.d.ts +10 -7
  18. package/dist/decorators/event-handler.decorator.js +18 -13
  19. package/dist/decorators/event-handler.decorator.js.map +1 -1
  20. package/dist/decorators/index.d.ts +5 -4
  21. package/dist/decorators/index.js +11 -18
  22. package/dist/decorators/index.js.map +1 -1
  23. package/dist/decorators/message-handler.decorator.d.ts +8 -5
  24. package/dist/decorators/message-handler.decorator.js +16 -11
  25. package/dist/decorators/message-handler.decorator.js.map +1 -1
  26. package/dist/decorators/payload.decorator.d.ts +16 -7
  27. package/dist/decorators/payload.decorator.js +16 -8
  28. package/dist/decorators/payload.decorator.js.map +1 -1
  29. package/dist/discovery/discovery.service.d.ts +143 -0
  30. package/dist/discovery/discovery.service.js +165 -0
  31. package/dist/discovery/discovery.service.js.map +1 -0
  32. package/dist/discovery/event-handler-discoverer.d.ts +19 -0
  33. package/dist/discovery/event-handler-discoverer.js +50 -0
  34. package/dist/discovery/event-handler-discoverer.js.map +1 -0
  35. package/dist/discovery/handler-discoverer.d.ts +48 -0
  36. package/dist/discovery/handler-discoverer.js +3 -0
  37. package/dist/discovery/handler-discoverer.js.map +1 -0
  38. package/dist/discovery/handler-kind.d.ts +23 -0
  39. package/dist/discovery/handler-kind.js +14 -0
  40. package/dist/discovery/handler-kind.js.map +1 -0
  41. package/dist/discovery/index.d.ts +7 -0
  42. package/dist/discovery/index.js +13 -0
  43. package/dist/discovery/index.js.map +1 -0
  44. package/dist/discovery/message-handler-discoverer.d.ts +19 -0
  45. package/dist/discovery/message-handler-discoverer.js +50 -0
  46. package/dist/discovery/message-handler-discoverer.js.map +1 -0
  47. package/dist/discovery/registered-handler.d.ts +35 -0
  48. package/dist/discovery/registered-handler.js +3 -0
  49. package/dist/discovery/registered-handler.js.map +1 -0
  50. package/dist/helpers/errors.d.ts +61 -0
  51. package/dist/helpers/errors.js +80 -0
  52. package/dist/helpers/errors.js.map +1 -0
  53. package/dist/helpers/index.d.ts +2 -0
  54. package/dist/helpers/index.js +14 -0
  55. package/dist/helpers/index.js.map +1 -0
  56. package/dist/helpers/register-server.d.ts +44 -0
  57. package/dist/helpers/register-server.js +72 -0
  58. package/dist/helpers/register-server.js.map +1 -0
  59. package/dist/index.d.ts +15 -7
  60. package/dist/index.js +33 -9
  61. package/dist/index.js.map +1 -1
  62. package/dist/interfaces/index.d.ts +4 -4
  63. package/dist/interfaces/index.js +0 -18
  64. package/dist/interfaces/index.js.map +1 -1
  65. package/dist/interfaces/message-handler.interface.d.ts +12 -6
  66. package/dist/interfaces/packet.interface.d.ts +20 -2
  67. package/dist/interfaces/transport-client.interface.d.ts +25 -13
  68. package/dist/interfaces/transport-server.interface.d.ts +36 -10
  69. package/dist/keys.d.ts +143 -46
  70. package/dist/keys.js +142 -68
  71. package/dist/keys.js.map +1 -1
  72. package/dist/registry/handler-registry.d.ts +94 -24
  73. package/dist/registry/handler-registry.js +279 -89
  74. package/dist/registry/handler-registry.js.map +1 -1
  75. package/dist/registry/index.d.ts +1 -1
  76. package/dist/registry/index.js +3 -15
  77. package/dist/registry/index.js.map +1 -1
  78. package/dist/serializers/cloudevents-serializer.d.ts +107 -0
  79. package/dist/serializers/cloudevents-serializer.js +130 -0
  80. package/dist/serializers/cloudevents-serializer.js.map +1 -0
  81. package/dist/serializers/index.d.ts +4 -1
  82. package/dist/serializers/index.js +7 -15
  83. package/dist/serializers/index.js.map +1 -1
  84. package/dist/serializers/serializer.interface.d.ts +49 -16
  85. package/dist/serializers/serializer.interface.js +41 -15
  86. package/dist/serializers/serializer.interface.js.map +1 -1
  87. package/dist/server/index.d.ts +2 -1
  88. package/dist/server/index.js +3 -15
  89. package/dist/server/index.js.map +1 -1
  90. package/dist/server/server-base.d.ts +125 -52
  91. package/dist/server/server-base.js +168 -57
  92. package/dist/server/server-base.js.map +1 -1
  93. package/dist/transport.component.d.ts +21 -8
  94. package/dist/transport.component.js +41 -18
  95. package/dist/transport.component.js.map +1 -1
  96. package/dist/transport.observer.d.ts +91 -0
  97. package/dist/transport.observer.js +297 -0
  98. package/dist/transport.observer.js.map +1 -0
  99. package/dist/utils/normalize-pattern.d.ts +11 -6
  100. package/dist/utils/normalize-pattern.js +18 -13
  101. package/dist/utils/normalize-pattern.js.map +1 -1
  102. package/package.json +58 -16
  103. package/dist/transport-booter.d.ts +0 -31
  104. package/dist/transport-booter.js +0 -117
  105. package/dist/transport-booter.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"server-base.js","sourceRoot":"","sources":["../../src/server/server-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server-base.js","sourceRoot":"","sources":["../../src/server/server-base.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,37 @@
1
- import { Binding, Component, Constructor, LifeCycleObserver } from '@loopback/core';
1
+ import type { Component, Constructor, LifeCycleObserver } from '@loopback/core';
2
+ import { Binding } from '@loopback/core';
2
3
  /**
3
4
  * LoopBack 4 component that enables transport-agnostic microservices.
4
5
  *
5
6
  * Registers the core transport extension points:
6
- * - HandlerRegistry (singleton): discovers and manages transport handlers
7
- * - TransportBooter (lifecycle observer): wires handlers to servers at boot
8
7
  *
9
- * The component intentionally stays thin. Discovery, validation,
10
- * server binding, and listener lifecycle management live in the
11
- * TransportBooter/HandlerRegistry layer so the component remains a
12
- * stable package boundary for transport adapters.
8
+ * - `HandlerRegistry` (singleton): discovers and manages transport handlers.
9
+ * - `MessageHandlerDiscoverer` and `EventHandlerDiscoverer` (singletons):
10
+ * default `HandlerDiscoverer` implementations tagged with
11
+ * `TransportBindings.tags.HANDLER_DISCOVERER`. Plugins contributing a
12
+ * custom decorator vocabulary bind their own discoverer under the
13
+ * same tag.
14
+ * - `DiscoveryService` (singleton): universal read-only enumeration of
15
+ * every discovered handler. Populated by `TransportBooter` after
16
+ * discovery and wrapping complete.
17
+ * - `TransportBooter` (lifecycle observer): wires handlers to servers at boot.
18
+ *
19
+ * The component intentionally stays thin. Discovery, validation, server
20
+ * binding, and listener lifecycle management live in the
21
+ * `TransportBooter` / `HandlerRegistry` layer so the component remains
22
+ * a stable package boundary for transport adapters.
13
23
  *
14
24
  * Usage:
25
+ *
15
26
  * ```typescript
16
27
  * const app = new Application();
17
28
  * app.component(TransportComponent);
18
29
  * ```
19
30
  *
20
31
  * Transport adapters can build on top of this component by contributing
21
- * server bindings and configuration under TransportBindings.
32
+ * server bindings and configuration under `TransportBindings`.
33
+ *
34
+ * @public
22
35
  */
23
36
  export declare class TransportComponent implements Component {
24
37
  readonly bindings: Binding<unknown>[];
@@ -2,41 +2,64 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.TransportComponent = void 0;
4
4
  const core_1 = require("@loopback/core");
5
+ const discovery_1 = require("./discovery");
5
6
  const keys_1 = require("./keys");
6
7
  const registry_1 = require("./registry");
7
- const transport_booter_1 = require("./transport-booter");
8
+ const transport_observer_1 = require("./transport.observer");
8
9
  /**
9
10
  * LoopBack 4 component that enables transport-agnostic microservices.
10
11
  *
11
12
  * Registers the core transport extension points:
12
- * - HandlerRegistry (singleton): discovers and manages transport handlers
13
- * - TransportBooter (lifecycle observer): wires handlers to servers at boot
14
13
  *
15
- * The component intentionally stays thin. Discovery, validation,
16
- * server binding, and listener lifecycle management live in the
17
- * TransportBooter/HandlerRegistry layer so the component remains a
18
- * stable package boundary for transport adapters.
14
+ * - `HandlerRegistry` (singleton): discovers and manages transport handlers.
15
+ * - `MessageHandlerDiscoverer` and `EventHandlerDiscoverer` (singletons):
16
+ * default `HandlerDiscoverer` implementations tagged with
17
+ * `TransportBindings.tags.HANDLER_DISCOVERER`. Plugins contributing a
18
+ * custom decorator vocabulary bind their own discoverer under the
19
+ * same tag.
20
+ * - `DiscoveryService` (singleton): universal read-only enumeration of
21
+ * every discovered handler. Populated by `TransportBooter` after
22
+ * discovery and wrapping complete.
23
+ * - `TransportBooter` (lifecycle observer): wires handlers to servers at boot.
24
+ *
25
+ * The component intentionally stays thin. Discovery, validation, server
26
+ * binding, and listener lifecycle management live in the
27
+ * `TransportBooter` / `HandlerRegistry` layer so the component remains
28
+ * a stable package boundary for transport adapters.
19
29
  *
20
30
  * Usage:
31
+ *
21
32
  * ```typescript
22
33
  * const app = new Application();
23
34
  * app.component(TransportComponent);
24
35
  * ```
25
36
  *
26
37
  * Transport adapters can build on top of this component by contributing
27
- * server bindings and configuration under TransportBindings.
38
+ * server bindings and configuration under `TransportBindings`.
39
+ *
40
+ * @public
28
41
  */
29
42
  class TransportComponent {
30
- constructor() {
31
- this.bindings = [
32
- core_1.Binding.bind(keys_1.TransportBindings.HANDLER_REGISTRY)
33
- .toClass(registry_1.HandlerRegistry)
34
- .inScope(core_1.BindingScope.SINGLETON),
35
- ];
36
- this.lifeCycleObservers = [
37
- transport_booter_1.TransportBooter,
38
- ];
39
- }
43
+ bindings = [
44
+ core_1.Binding.bind(keys_1.TransportBindings.HANDLER_REGISTRY)
45
+ .toClass(registry_1.HandlerRegistry)
46
+ .inScope(core_1.BindingScope.SINGLETON),
47
+ core_1.Binding.bind(keys_1.TransportBindings.DISCOVERY_SERVICE)
48
+ .toClass(discovery_1.DiscoveryService)
49
+ .inScope(core_1.BindingScope.SINGLETON),
50
+ core_1.Binding.bind('transport.discoverer.message')
51
+ .toClass(discovery_1.MessageHandlerDiscoverer)
52
+ .tag(keys_1.TransportBindings.tags.HANDLER_DISCOVERER)
53
+ .inScope(core_1.BindingScope.SINGLETON),
54
+ core_1.Binding.bind('transport.discoverer.event')
55
+ .toClass(discovery_1.EventHandlerDiscoverer)
56
+ .tag(keys_1.TransportBindings.tags.HANDLER_DISCOVERER)
57
+ .inScope(core_1.BindingScope.SINGLETON),
58
+ core_1.Binding.bind(keys_1.TransportBindings.STRICT_BINDING).to(true),
59
+ ];
60
+ lifeCycleObservers = [
61
+ transport_observer_1.TransportBooter,
62
+ ];
40
63
  }
41
64
  exports.TransportComponent = TransportComponent;
42
65
  //# sourceMappingURL=transport.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transport.component.js","sourceRoot":"","sources":["../src/transport.component.ts"],"names":[],"mappings":";;;AAAA,yCAMwB;AACxB,iCAAyC;AACzC,yCAA2C;AAC3C,yDAAmD;AAEnD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,kBAAkB;IAA/B;QACW,aAAQ,GAAuB;YACtC,cAAO,CAAC,IAAI,CAAC,wBAAiB,CAAC,gBAAgB,CAAC;iBAC7C,OAAO,CAAC,0BAAe,CAAC;iBACxB,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC;SACnC,CAAC;QAEO,uBAAkB,GAAqC;YAC9D,kCAAe;SAChB,CAAC;IACJ,CAAC;CAAA;AAVD,gDAUC"}
1
+ {"version":3,"file":"transport.component.js","sourceRoot":"","sources":["../src/transport.component.ts"],"names":[],"mappings":";;;AACA,yCAAqD;AACrD,2CAIqB;AACrB,iCAAyC;AACzC,yCAA2C;AAC3C,6DAAqD;AAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,MAAa,kBAAkB;IACpB,QAAQ,GAAuB;QACtC,cAAO,CAAC,IAAI,CAAC,wBAAiB,CAAC,gBAAgB,CAAC;aAC7C,OAAO,CAAC,0BAAe,CAAC;aACxB,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC;QAClC,cAAO,CAAC,IAAI,CAAC,wBAAiB,CAAC,iBAAiB,CAAC;aAC9C,OAAO,CAAC,4BAAgB,CAAC;aACzB,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC;QAClC,cAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC;aACzC,OAAO,CAAC,oCAAwB,CAAC;aACjC,GAAG,CAAC,wBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC9C,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC;QAClC,cAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC;aACvC,OAAO,CAAC,kCAAsB,CAAC;aAC/B,GAAG,CAAC,wBAAiB,CAAC,IAAI,CAAC,kBAAkB,CAAC;aAC9C,OAAO,CAAC,mBAAY,CAAC,SAAS,CAAC;QAClC,cAAO,CAAC,IAAI,CAAC,wBAAiB,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC;KACxD,CAAC;IAEO,kBAAkB,GAAqC;QAC9D,oCAAe;KAChB,CAAC;CACH;AAtBD,gDAsBC"}
@@ -0,0 +1,91 @@
1
+ import { type Application, LifeCycleObserver } from '@loopback/core';
2
+ import type { HandlerRegistry } from './registry';
3
+ /**
4
+ * Lifecycle observer that discovers transport handlers after boot and
5
+ * starts/stops transport servers.
6
+ *
7
+ * Runs after all controllers are registered (boot phase complete).
8
+ * Scans controllers for `@messageHandler` / `@eventHandler` metadata,
9
+ * registers handlers with transport servers, then starts listeners.
10
+ *
11
+ * Boot sequence:
12
+ *
13
+ * 1. Discover handlers from every bound `HandlerDiscoverer`.
14
+ * 2. Populate the `DiscoveryService` snapshot.
15
+ * 3. Bind the handlers to their transport servers.
16
+ * 4. Start servers sequentially.
17
+ *
18
+ * Startup behavior: sequential with deterministic rollback. Servers
19
+ * start one at a time. If any fails, every server that has already
20
+ * been started — including the failing one — is closed in reverse
21
+ * order. No race between concurrent starts.
22
+ *
23
+ * Shutdown behavior: best-effort parallel. All servers stop
24
+ * concurrently. Individual errors are logged but do not prevent other
25
+ * servers from stopping.
26
+ *
27
+ * Restart safety: servers are cleared of handlers before rebinding to
28
+ * prevent duplicate registration on stop/start cycles.
29
+ *
30
+ * Idempotency: `start()` and `stop()` are safe to call multiple times.
31
+ * Concurrent calls share the same in-flight promise.
32
+ *
33
+ * @public
34
+ */
35
+ export declare class TransportBooter implements LifeCycleObserver {
36
+ private readonly app;
37
+ private readonly registry;
38
+ private state;
39
+ private startPromise;
40
+ private stopPromise;
41
+ constructor(app: Application, registry: HandlerRegistry);
42
+ /**
43
+ * Start every registered transport server.
44
+ *
45
+ * Idempotent and concurrency-safe: a second concurrent call shares
46
+ * the in-flight start promise, and calling `start()` on an already
47
+ * started booter is a no-op.
48
+ *
49
+ * @public
50
+ * @returns Resolves when every server has reported ready.
51
+ * @throws TransportError When any server fails to start. All
52
+ * partially-started servers are closed before the original error
53
+ * is re-thrown.
54
+ */
55
+ start(): Promise<void>;
56
+ /**
57
+ * Stop every registered transport server.
58
+ *
59
+ * Idempotent and concurrency-safe: a second concurrent call shares
60
+ * the in-flight stop promise, and calling `stop()` on an already
61
+ * stopped booter is a no-op.
62
+ *
63
+ * @public
64
+ * @returns Resolves once every server has closed (or its close has
65
+ * been attempted).
66
+ */
67
+ stop(): Promise<void>;
68
+ private doStart;
69
+ private doStop;
70
+ /**
71
+ * Build the final `RegisteredHandler[]` snapshot from the registry
72
+ * and hand it to the `DiscoveryService` along with the bound
73
+ * discoverers and transport servers.
74
+ *
75
+ * `RegisteredHandler` entries and their `pattern` (when object-typed)
76
+ * and `options` are deep-frozen before being handed to
77
+ * `DiscoveryService` so consumers cannot mutate registry state.
78
+ */
79
+ private populateDiscoveryService;
80
+ /**
81
+ * Resolve all registered transport servers with their names.
82
+ *
83
+ * Bindings tagged as transport servers but missing the transport-name
84
+ * tag are skipped with a debug log. The registry's Guard 4 in
85
+ * `bindToServers` also surfaces this misconfiguration. Skipped servers
86
+ * are not started and do not receive handlers; register them via
87
+ * `registerServer` / `registerServerClass` / `registerServerProvider`
88
+ * to opt in to the lifecycle.
89
+ */
90
+ private getServerEntries;
91
+ }
@@ -0,0 +1,297 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
12
+ return function (target, key) { decorator(target, key, paramIndex); }
13
+ };
14
+ var __importDefault = (this && this.__importDefault) || function (mod) {
15
+ return (mod && mod.__esModule) ? mod : { "default": mod };
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.TransportBooter = void 0;
19
+ const core_1 = require("@loopback/core");
20
+ const debug_1 = __importDefault(require("debug"));
21
+ const keys_1 = require("./keys");
22
+ const debug = (0, debug_1.default)('loopback:transport:booter');
23
+ /**
24
+ * Recursively freeze a value and every nested object/array property.
25
+ * File-private; used to harden the `RegisteredHandler` snapshot handed
26
+ * to `DiscoveryService` so consumers cannot mutate registry state.
27
+ */
28
+ function deepFreeze(value) {
29
+ if (value === null || typeof value !== 'object' || Object.isFrozen(value)) {
30
+ return value;
31
+ }
32
+ for (const key of Object.keys(value)) {
33
+ deepFreeze(value[key]);
34
+ }
35
+ return Object.freeze(value);
36
+ }
37
+ /**
38
+ * Lifecycle observer that discovers transport handlers after boot and
39
+ * starts/stops transport servers.
40
+ *
41
+ * Runs after all controllers are registered (boot phase complete).
42
+ * Scans controllers for `@messageHandler` / `@eventHandler` metadata,
43
+ * registers handlers with transport servers, then starts listeners.
44
+ *
45
+ * Boot sequence:
46
+ *
47
+ * 1. Discover handlers from every bound `HandlerDiscoverer`.
48
+ * 2. Populate the `DiscoveryService` snapshot.
49
+ * 3. Bind the handlers to their transport servers.
50
+ * 4. Start servers sequentially.
51
+ *
52
+ * Startup behavior: sequential with deterministic rollback. Servers
53
+ * start one at a time. If any fails, every server that has already
54
+ * been started — including the failing one — is closed in reverse
55
+ * order. No race between concurrent starts.
56
+ *
57
+ * Shutdown behavior: best-effort parallel. All servers stop
58
+ * concurrently. Individual errors are logged but do not prevent other
59
+ * servers from stopping.
60
+ *
61
+ * Restart safety: servers are cleared of handlers before rebinding to
62
+ * prevent duplicate registration on stop/start cycles.
63
+ *
64
+ * Idempotency: `start()` and `stop()` are safe to call multiple times.
65
+ * Concurrent calls share the same in-flight promise.
66
+ *
67
+ * @public
68
+ */
69
+ let TransportBooter = class TransportBooter {
70
+ app;
71
+ registry;
72
+ state = 'stopped';
73
+ startPromise;
74
+ stopPromise;
75
+ constructor(app, registry) {
76
+ this.app = app;
77
+ this.registry = registry;
78
+ }
79
+ /**
80
+ * Start every registered transport server.
81
+ *
82
+ * Idempotent and concurrency-safe: a second concurrent call shares
83
+ * the in-flight start promise, and calling `start()` on an already
84
+ * started booter is a no-op.
85
+ *
86
+ * @public
87
+ * @returns Resolves when every server has reported ready.
88
+ * @throws TransportError When any server fails to start. All
89
+ * partially-started servers are closed before the original error
90
+ * is re-thrown.
91
+ */
92
+ async start() {
93
+ if (this.state === 'started')
94
+ return;
95
+ if (this.startPromise)
96
+ return this.startPromise;
97
+ this.state = 'starting';
98
+ this.startPromise = this.doStart().finally(() => {
99
+ this.startPromise = undefined;
100
+ });
101
+ try {
102
+ await this.startPromise;
103
+ this.state = 'started';
104
+ }
105
+ catch (err) {
106
+ this.state = 'stopped';
107
+ throw err;
108
+ }
109
+ }
110
+ /**
111
+ * Stop every registered transport server.
112
+ *
113
+ * Idempotent and concurrency-safe: a second concurrent call shares
114
+ * the in-flight stop promise, and calling `stop()` on an already
115
+ * stopped booter is a no-op.
116
+ *
117
+ * @public
118
+ * @returns Resolves once every server has closed (or its close has
119
+ * been attempted).
120
+ */
121
+ async stop() {
122
+ if (this.state === 'stopped')
123
+ return;
124
+ if (this.stopPromise)
125
+ return this.stopPromise;
126
+ this.state = 'stopping';
127
+ this.stopPromise = this.doStop().finally(() => {
128
+ this.stopPromise = undefined;
129
+ });
130
+ try {
131
+ await this.stopPromise;
132
+ }
133
+ finally {
134
+ this.state = 'stopped';
135
+ }
136
+ }
137
+ async doStart() {
138
+ debug('transport booter starting');
139
+ // Discover handlers from controllers (idempotent: clears first).
140
+ await this.registry.discoverHandlers(this.app);
141
+ // Populate the universal DiscoveryService snapshot so cross-cutting
142
+ // plugins can enumerate the discovered handler graph.
143
+ await this.populateDiscoveryService();
144
+ // Clear existing handlers from servers before rebinding so a
145
+ // restart cycle does not double-register.
146
+ const entries = await this.getServerEntries();
147
+ for (const { server } of entries) {
148
+ server.clearHandlers();
149
+ }
150
+ await this.registry.bindToServers(this.app);
151
+ // Resolve each server's serializer/deserializer pair from
152
+ // tag-based bindings (transport-scoped > generic > subclass
153
+ // default). Runs after `bindToServers` and before `listen()` so
154
+ // every adapter sees the final serializer choice in its
155
+ // `listen()` implementation. `resolveSerializer` is a required
156
+ // method on `TransportServer`; subclasses of `ServerBase` inherit
157
+ // the default implementation.
158
+ for (const { server } of entries) {
159
+ await server.resolveSerializer(this.app);
160
+ }
161
+ // Start servers sequentially. Push BEFORE awaiting listen() so
162
+ // rollback covers the failing server too — listen() may have
163
+ // partially opened sockets/consumers before throwing.
164
+ const started = [];
165
+ for (const { name, server } of entries) {
166
+ started.push(server);
167
+ try {
168
+ await server.listen();
169
+ debug('transport server [%s] started', name);
170
+ }
171
+ catch (err) {
172
+ debug('startup failed at [%s], rolling back %d server(s)', name, started.length);
173
+ for (const s of [...started].reverse()) {
174
+ try {
175
+ await s.close();
176
+ }
177
+ catch (closeErr) {
178
+ debug('rollback close failed: %O', closeErr);
179
+ }
180
+ }
181
+ throw err;
182
+ }
183
+ }
184
+ debug('transport booter started (%d handlers, %d servers)', this.registry.getHandlers().size, entries.length);
185
+ }
186
+ async doStop() {
187
+ debug('transport booter stopping');
188
+ const entries = await this.getServerEntries();
189
+ const results = await Promise.allSettled(entries.map(async ({ name, server }) => {
190
+ await server.close();
191
+ debug('transport server [%s] stopped', name);
192
+ }));
193
+ const failures = results.filter((r) => r.status === 'rejected');
194
+ if (failures.length > 0) {
195
+ debug('%d transport server(s) failed to stop cleanly', failures.length);
196
+ for (const failure of failures) {
197
+ debug('transport server shutdown failure: %O', failure.reason);
198
+ }
199
+ }
200
+ debug('transport booter stopped');
201
+ }
202
+ /**
203
+ * Build the final `RegisteredHandler[]` snapshot from the registry
204
+ * and hand it to the `DiscoveryService` along with the bound
205
+ * discoverers and transport servers.
206
+ *
207
+ * `RegisteredHandler` entries and their `pattern` (when object-typed)
208
+ * and `options` are deep-frozen before being handed to
209
+ * `DiscoveryService` so consumers cannot mutate registry state.
210
+ */
211
+ async populateDiscoveryService() {
212
+ const handlers = [];
213
+ for (const entry of this.registry._getEntries()) {
214
+ const pattern = typeof entry.pattern === 'string'
215
+ ? entry.pattern
216
+ : deepFreeze({ ...entry.pattern });
217
+ const options = entry.options === undefined
218
+ ? undefined
219
+ : deepFreeze({ ...entry.options });
220
+ handlers.push(Object.freeze({
221
+ pattern,
222
+ transport: entry.transport,
223
+ kind: entry.kind,
224
+ controllerClass: entry.controllerClass,
225
+ methodName: entry.methodName,
226
+ discovererId: entry.discovererId,
227
+ ...(options !== undefined ? { options } : {}),
228
+ invoke: entry.handler,
229
+ }));
230
+ }
231
+ const discovererBindings = this.app.findByTag(keys_1.HANDLER_DISCOVERER_TAG);
232
+ const discoverers = [];
233
+ for (const binding of discovererBindings) {
234
+ discoverers.push(await this.app.get(binding.key));
235
+ }
236
+ const servers = [];
237
+ for (const binding of this.app.findByTag(keys_1.TRANSPORT_SERVER_TAG)) {
238
+ servers.push(await this.app.get(binding.key));
239
+ }
240
+ const serializers = [];
241
+ for (const binding of this.app.findByTag(keys_1.SERIALIZER_TAG)) {
242
+ const instance = await this.app.get(binding.key);
243
+ const transport = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
244
+ serializers.push({
245
+ instance,
246
+ transport: typeof transport === 'string' && transport.length > 0
247
+ ? transport
248
+ : undefined,
249
+ });
250
+ }
251
+ const deserializers = [];
252
+ for (const binding of this.app.findByTag(keys_1.DESERIALIZER_TAG)) {
253
+ const instance = await this.app.get(binding.key);
254
+ const transport = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
255
+ deserializers.push({
256
+ instance,
257
+ transport: typeof transport === 'string' && transport.length > 0
258
+ ? transport
259
+ : undefined,
260
+ });
261
+ }
262
+ const service = await this.app.get(keys_1.TransportBindings.DISCOVERY_SERVICE);
263
+ service._populate(handlers, discoverers, servers, serializers, deserializers);
264
+ }
265
+ /**
266
+ * Resolve all registered transport servers with their names.
267
+ *
268
+ * Bindings tagged as transport servers but missing the transport-name
269
+ * tag are skipped with a debug log. The registry's Guard 4 in
270
+ * `bindToServers` also surfaces this misconfiguration. Skipped servers
271
+ * are not started and do not receive handlers; register them via
272
+ * `registerServer` / `registerServerClass` / `registerServerProvider`
273
+ * to opt in to the lifecycle.
274
+ */
275
+ async getServerEntries() {
276
+ const bindings = this.app.findByTag(keys_1.TRANSPORT_SERVER_TAG);
277
+ const entries = [];
278
+ for (const binding of bindings) {
279
+ const tag = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
280
+ if (typeof tag !== 'string' || tag.length === 0) {
281
+ debug('skipping transport server binding "%s": missing %s tag; will not be started or receive handlers', String(binding.key), keys_1.TRANSPORT_NAME_TAG);
282
+ continue;
283
+ }
284
+ const server = await this.app.get(binding.key);
285
+ entries.push({ name: tag, server });
286
+ }
287
+ return entries;
288
+ }
289
+ };
290
+ exports.TransportBooter = TransportBooter;
291
+ exports.TransportBooter = TransportBooter = __decorate([
292
+ (0, core_1.lifeCycleObserver)('transport'),
293
+ __param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)),
294
+ __param(1, (0, core_1.inject)(keys_1.TransportBindings.HANDLER_REGISTRY)),
295
+ __metadata("design:paramtypes", [Function, Function])
296
+ ], TransportBooter);
297
+ //# sourceMappingURL=transport.observer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transport.observer.js","sourceRoot":"","sources":["../src/transport.observer.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,23 @@
1
1
  /**
2
2
  * Normalize a pattern to a consistent string key.
3
3
  *
4
- * Strings pass through as-is. Objects are deep-sorted by key
5
- * and JSON-stringified for consistent lookup regardless of
6
- * property insertion order.
4
+ * Strings pass through as-is. Objects are deep-sorted by key and
5
+ * JSON-stringified for consistent lookup regardless of property
6
+ * insertion order.
7
7
  *
8
8
  * Only JSON-compatible values are accepted: strings, finite numbers,
9
9
  * booleans, null, plain objects, and arrays. Non-JSON values
10
- * (undefined, functions, symbols, NaN, Infinity, BigInt, Date,
11
- * RegExp, Map, Set, class instances) are rejected deterministically.
10
+ * (`undefined`, functions, symbols, `NaN`, `Infinity`, `BigInt`,
11
+ * `Date`, `RegExp`, `Map`, `Set`, class instances) are rejected
12
+ * deterministically.
12
13
  *
13
14
  * Shared (non-circular) object references are allowed. Only true
14
15
  * cycles throw.
15
16
  *
16
- * @throws Error on circular references, non-JSON values, or non-plain objects.
17
+ * @public
18
+ * @param pattern - String or plain-object pattern.
19
+ * @returns A canonical string representation suitable as a registry key.
20
+ * @throws TransportPatternError On circular references, non-JSON
21
+ * values, or non-plain objects.
17
22
  */
18
23
  export declare function normalizePattern(pattern: string | Record<string, unknown>): string;