@ebarahona/loopback-transport-core 1.0.0 → 1.1.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 +442 -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 +132 -46
  70. package/dist/keys.js +131 -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 +195 -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 +40 -18
  95. package/dist/transport.component.js.map +1 -1
  96. package/dist/transport.observer.d.ts +87 -0
  97. package/dist/transport.observer.js +296 -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,63 @@
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
+ ];
59
+ lifeCycleObservers = [
60
+ transport_observer_1.TransportBooter,
61
+ ];
40
62
  }
41
63
  exports.TransportComponent = TransportComponent;
42
64
  //# 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;KACnC,CAAC;IAEO,kBAAkB,GAAqC;QAC9D,oCAAe;KAChB,CAAC;CACH;AArBD,gDAqBC"}
@@ -0,0 +1,87 @@
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
+ * @throws TransportConfigError When a binding is tagged as a
84
+ * transport server but missing the transport-name tag.
85
+ */
86
+ private getServerEntries;
87
+ }
@@ -0,0 +1,296 @@
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 errors_1 = require("./helpers/errors");
22
+ const keys_1 = require("./keys");
23
+ const debug = (0, debug_1.default)('loopback:transport:booter');
24
+ /**
25
+ * Recursively freeze a value and every nested object/array property.
26
+ * File-private; used to harden the `RegisteredHandler` snapshot handed
27
+ * to `DiscoveryService` so consumers cannot mutate registry state.
28
+ */
29
+ function deepFreeze(value) {
30
+ if (value === null || typeof value !== 'object' || Object.isFrozen(value)) {
31
+ return value;
32
+ }
33
+ for (const key of Object.keys(value)) {
34
+ deepFreeze(value[key]);
35
+ }
36
+ return Object.freeze(value);
37
+ }
38
+ /**
39
+ * Lifecycle observer that discovers transport handlers after boot and
40
+ * starts/stops transport servers.
41
+ *
42
+ * Runs after all controllers are registered (boot phase complete).
43
+ * Scans controllers for `@messageHandler` / `@eventHandler` metadata,
44
+ * registers handlers with transport servers, then starts listeners.
45
+ *
46
+ * Boot sequence:
47
+ *
48
+ * 1. Discover handlers from every bound `HandlerDiscoverer`.
49
+ * 2. Populate the `DiscoveryService` snapshot.
50
+ * 3. Bind the handlers to their transport servers.
51
+ * 4. Start servers sequentially.
52
+ *
53
+ * Startup behavior: sequential with deterministic rollback. Servers
54
+ * start one at a time. If any fails, every server that has already
55
+ * been started — including the failing one — is closed in reverse
56
+ * order. No race between concurrent starts.
57
+ *
58
+ * Shutdown behavior: best-effort parallel. All servers stop
59
+ * concurrently. Individual errors are logged but do not prevent other
60
+ * servers from stopping.
61
+ *
62
+ * Restart safety: servers are cleared of handlers before rebinding to
63
+ * prevent duplicate registration on stop/start cycles.
64
+ *
65
+ * Idempotency: `start()` and `stop()` are safe to call multiple times.
66
+ * Concurrent calls share the same in-flight promise.
67
+ *
68
+ * @public
69
+ */
70
+ let TransportBooter = class TransportBooter {
71
+ app;
72
+ registry;
73
+ state = 'stopped';
74
+ startPromise;
75
+ stopPromise;
76
+ constructor(app, registry) {
77
+ this.app = app;
78
+ this.registry = registry;
79
+ }
80
+ /**
81
+ * Start every registered transport server.
82
+ *
83
+ * Idempotent and concurrency-safe: a second concurrent call shares
84
+ * the in-flight start promise, and calling `start()` on an already
85
+ * started booter is a no-op.
86
+ *
87
+ * @public
88
+ * @returns Resolves when every server has reported ready.
89
+ * @throws TransportError When any server fails to start. All
90
+ * partially-started servers are closed before the original error
91
+ * is re-thrown.
92
+ */
93
+ async start() {
94
+ if (this.state === 'started')
95
+ return;
96
+ if (this.startPromise)
97
+ return this.startPromise;
98
+ this.state = 'starting';
99
+ this.startPromise = this.doStart().finally(() => {
100
+ this.startPromise = undefined;
101
+ });
102
+ try {
103
+ await this.startPromise;
104
+ this.state = 'started';
105
+ }
106
+ catch (err) {
107
+ this.state = 'stopped';
108
+ throw err;
109
+ }
110
+ }
111
+ /**
112
+ * Stop every registered transport server.
113
+ *
114
+ * Idempotent and concurrency-safe: a second concurrent call shares
115
+ * the in-flight stop promise, and calling `stop()` on an already
116
+ * stopped booter is a no-op.
117
+ *
118
+ * @public
119
+ * @returns Resolves once every server has closed (or its close has
120
+ * been attempted).
121
+ */
122
+ async stop() {
123
+ if (this.state === 'stopped')
124
+ return;
125
+ if (this.stopPromise)
126
+ return this.stopPromise;
127
+ this.state = 'stopping';
128
+ this.stopPromise = this.doStop().finally(() => {
129
+ this.stopPromise = undefined;
130
+ });
131
+ try {
132
+ await this.stopPromise;
133
+ }
134
+ finally {
135
+ this.state = 'stopped';
136
+ }
137
+ }
138
+ async doStart() {
139
+ debug('transport booter starting');
140
+ // Discover handlers from controllers (idempotent: clears first).
141
+ await this.registry.discoverHandlers(this.app);
142
+ // Populate the universal DiscoveryService snapshot so cross-cutting
143
+ // plugins can enumerate the discovered handler graph.
144
+ await this.populateDiscoveryService();
145
+ // Clear existing handlers from servers before rebinding so a
146
+ // restart cycle does not double-register.
147
+ const entries = await this.getServerEntries();
148
+ for (const { server } of entries) {
149
+ server.clearHandlers();
150
+ }
151
+ await this.registry.bindToServers(this.app);
152
+ // Resolve each server's serializer/deserializer pair from
153
+ // tag-based bindings (transport-scoped > generic > subclass
154
+ // default). Runs after `bindToServers` and before `listen()` so
155
+ // every adapter sees the final serializer choice in its
156
+ // `listen()` implementation. `resolveSerializer` is a required
157
+ // method on `TransportServer`; subclasses of `ServerBase` inherit
158
+ // the default implementation.
159
+ for (const { server } of entries) {
160
+ await server.resolveSerializer(this.app);
161
+ }
162
+ // Start servers sequentially. Push BEFORE awaiting listen() so
163
+ // rollback covers the failing server too — listen() may have
164
+ // partially opened sockets/consumers before throwing.
165
+ const started = [];
166
+ for (const { name, server } of entries) {
167
+ started.push(server);
168
+ try {
169
+ await server.listen();
170
+ debug('transport server [%s] started', name);
171
+ }
172
+ catch (err) {
173
+ debug('startup failed at [%s], rolling back %d server(s)', name, started.length);
174
+ for (const s of [...started].reverse()) {
175
+ try {
176
+ await s.close();
177
+ }
178
+ catch (closeErr) {
179
+ debug('rollback close failed: %O', closeErr);
180
+ }
181
+ }
182
+ throw err;
183
+ }
184
+ }
185
+ debug('transport booter started (%d handlers, %d servers)', this.registry.getHandlers().size, entries.length);
186
+ }
187
+ async doStop() {
188
+ debug('transport booter stopping');
189
+ const entries = await this.getServerEntries();
190
+ const results = await Promise.allSettled(entries.map(async ({ name, server }) => {
191
+ await server.close();
192
+ debug('transport server [%s] stopped', name);
193
+ }));
194
+ const failures = results.filter((r) => r.status === 'rejected');
195
+ if (failures.length > 0) {
196
+ debug('%d transport server(s) failed to stop cleanly', failures.length);
197
+ for (const failure of failures) {
198
+ debug('transport server shutdown failure: %O', failure.reason);
199
+ }
200
+ }
201
+ debug('transport booter stopped');
202
+ }
203
+ /**
204
+ * Build the final `RegisteredHandler[]` snapshot from the registry
205
+ * and hand it to the `DiscoveryService` along with the bound
206
+ * discoverers and transport servers.
207
+ *
208
+ * `RegisteredHandler` entries and their `pattern` (when object-typed)
209
+ * and `options` are deep-frozen before being handed to
210
+ * `DiscoveryService` so consumers cannot mutate registry state.
211
+ */
212
+ async populateDiscoveryService() {
213
+ const handlers = [];
214
+ for (const entry of this.registry._getEntries()) {
215
+ const pattern = typeof entry.pattern === 'string'
216
+ ? entry.pattern
217
+ : deepFreeze({ ...entry.pattern });
218
+ const options = entry.options === undefined
219
+ ? undefined
220
+ : deepFreeze({ ...entry.options });
221
+ handlers.push(Object.freeze({
222
+ pattern,
223
+ transport: entry.transport,
224
+ kind: entry.kind,
225
+ controllerClass: entry.controllerClass,
226
+ methodName: entry.methodName,
227
+ discovererId: entry.discovererId,
228
+ ...(options !== undefined ? { options } : {}),
229
+ invoke: entry.handler,
230
+ }));
231
+ }
232
+ const discovererBindings = this.app.findByTag(keys_1.HANDLER_DISCOVERER_TAG);
233
+ const discoverers = [];
234
+ for (const binding of discovererBindings) {
235
+ discoverers.push(await this.app.get(binding.key));
236
+ }
237
+ const servers = [];
238
+ for (const binding of this.app.findByTag(keys_1.TRANSPORT_SERVER_TAG)) {
239
+ servers.push(await this.app.get(binding.key));
240
+ }
241
+ const serializers = [];
242
+ for (const binding of this.app.findByTag(keys_1.SERIALIZER_TAG)) {
243
+ const instance = await this.app.get(binding.key);
244
+ const transport = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
245
+ serializers.push({
246
+ instance,
247
+ transport: typeof transport === 'string' && transport.length > 0
248
+ ? transport
249
+ : undefined,
250
+ });
251
+ }
252
+ const deserializers = [];
253
+ for (const binding of this.app.findByTag(keys_1.DESERIALIZER_TAG)) {
254
+ const instance = await this.app.get(binding.key);
255
+ const transport = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
256
+ deserializers.push({
257
+ instance,
258
+ transport: typeof transport === 'string' && transport.length > 0
259
+ ? transport
260
+ : undefined,
261
+ });
262
+ }
263
+ const service = await this.app.get(keys_1.TransportBindings.DISCOVERY_SERVICE);
264
+ service._populate(handlers, discoverers, servers, serializers, deserializers);
265
+ }
266
+ /**
267
+ * Resolve all registered transport servers with their names.
268
+ *
269
+ * @throws TransportConfigError When a binding is tagged as a
270
+ * transport server but missing the transport-name tag.
271
+ */
272
+ async getServerEntries() {
273
+ const bindings = this.app.findByTag(keys_1.TRANSPORT_SERVER_TAG);
274
+ const entries = [];
275
+ for (const binding of bindings) {
276
+ const tag = binding.tagMap?.[keys_1.TRANSPORT_NAME_TAG];
277
+ if (typeof tag !== 'string' || tag.length === 0) {
278
+ throw new errors_1.TransportConfigError(`Transport server binding "${String(binding.key)}" is missing ` +
279
+ `the "${keys_1.TRANSPORT_NAME_TAG}" tag. Register the server through ` +
280
+ 'registerServer/registerServerClass/registerServerProvider so ' +
281
+ 'the booter can route handlers to the correct transport.');
282
+ }
283
+ const server = await this.app.get(binding.key);
284
+ entries.push({ name: tag, server });
285
+ }
286
+ return entries;
287
+ }
288
+ };
289
+ exports.TransportBooter = TransportBooter;
290
+ exports.TransportBooter = TransportBooter = __decorate([
291
+ (0, core_1.lifeCycleObserver)('transport'),
292
+ __param(0, (0, core_1.inject)(core_1.CoreBindings.APPLICATION_INSTANCE)),
293
+ __param(1, (0, core_1.inject)(keys_1.TransportBindings.HANDLER_REGISTRY)),
294
+ __metadata("design:paramtypes", [Function, Function])
295
+ ], TransportBooter);
296
+ //# 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;