@openora/core 0.4.1-canary.57 → 0.4.1-canary.59

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 (260) hide show
  1. package/README.md +10 -10
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/admin-console/plugin.d.ts +107 -1
  4. package/dist/admin-console/plugin.d.ts.map +1 -1
  5. package/dist/admin-console/plugin.js +3 -3
  6. package/dist/admin-console/plugin.js.map +1 -1
  7. package/dist/analytics/plugin.d.ts +107 -1
  8. package/dist/analytics/plugin.d.ts.map +1 -1
  9. package/dist/analytics/plugin.js +3 -3
  10. package/dist/analytics/plugin.js.map +1 -1
  11. package/dist/audit/plugin.d.ts +106 -1
  12. package/dist/audit/plugin.d.ts.map +1 -1
  13. package/dist/audit/plugin.js +3 -3
  14. package/dist/audit/plugin.js.map +1 -1
  15. package/dist/casino/gaming/plugin.d.ts +108 -1
  16. package/dist/casino/gaming/plugin.d.ts.map +1 -1
  17. package/dist/casino/gaming/plugin.js +3 -3
  18. package/dist/casino/gaming/plugin.js.map +1 -1
  19. package/dist/casino/lobby/plugin.d.ts +106 -1
  20. package/dist/casino/lobby/plugin.d.ts.map +1 -1
  21. package/dist/casino/lobby/plugin.js +3 -3
  22. package/dist/casino/lobby/plugin.js.map +1 -1
  23. package/dist/cms/plugin.d.ts +106 -1
  24. package/dist/cms/plugin.d.ts.map +1 -1
  25. package/dist/cms/plugin.js +3 -3
  26. package/dist/cms/plugin.js.map +1 -1
  27. package/dist/compliance/plugin.d.ts +109 -1
  28. package/dist/compliance/plugin.d.ts.map +1 -1
  29. package/dist/compliance/plugin.js +3 -3
  30. package/dist/compliance/plugin.js.map +1 -1
  31. package/dist/compliance/service/kyc.service.d.ts +8 -11
  32. package/dist/compliance/service/kyc.service.d.ts.map +1 -1
  33. package/dist/compliance/service/kyc.service.js +8 -11
  34. package/dist/compliance/service/kyc.service.js.map +1 -1
  35. package/dist/contracts/adapters/admin-game-reporting.d.ts +12 -0
  36. package/dist/contracts/adapters/admin-game-reporting.d.ts.map +1 -1
  37. package/dist/contracts/adapters/admin-game-reporting.js +6 -4
  38. package/dist/contracts/adapters/admin-game-reporting.js.map +1 -1
  39. package/dist/contracts/adapters/admin-permission.d.ts +10 -0
  40. package/dist/contracts/adapters/admin-permission.d.ts.map +1 -1
  41. package/dist/contracts/adapters/admin-permission.js +6 -4
  42. package/dist/contracts/adapters/admin-permission.js.map +1 -1
  43. package/dist/contracts/adapters/admin-player-activity.d.ts +22 -0
  44. package/dist/contracts/adapters/admin-player-activity.d.ts.map +1 -1
  45. package/dist/contracts/adapters/admin-player-activity.js.map +1 -1
  46. package/dist/contracts/adapters/admin-user-directory.d.ts +27 -0
  47. package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
  48. package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
  49. package/dist/contracts/adapters/admin-wallet-reporting.d.ts +6 -0
  50. package/dist/contracts/adapters/admin-wallet-reporting.d.ts.map +1 -1
  51. package/dist/contracts/adapters/admin-wallet-reporting.js.map +1 -1
  52. package/dist/contracts/adapters/aggregator.d.ts +12 -0
  53. package/dist/contracts/adapters/aggregator.d.ts.map +1 -1
  54. package/dist/contracts/adapters/aggregator.js +5 -3
  55. package/dist/contracts/adapters/aggregator.js.map +1 -1
  56. package/dist/contracts/adapters/audit.d.ts +17 -0
  57. package/dist/contracts/adapters/audit.d.ts.map +1 -1
  58. package/dist/contracts/adapters/audit.js.map +1 -1
  59. package/dist/contracts/adapters/broker.d.ts +23 -0
  60. package/dist/contracts/adapters/broker.d.ts.map +1 -1
  61. package/dist/contracts/adapters/broker.js +8 -6
  62. package/dist/contracts/adapters/broker.js.map +1 -1
  63. package/dist/contracts/adapters/cache.d.ts +8 -0
  64. package/dist/contracts/adapters/cache.d.ts.map +1 -1
  65. package/dist/contracts/adapters/cache.js +8 -6
  66. package/dist/contracts/adapters/cache.js.map +1 -1
  67. package/dist/contracts/adapters/chat-block-writer.d.ts +4 -0
  68. package/dist/contracts/adapters/chat-block-writer.d.ts.map +1 -1
  69. package/dist/contracts/adapters/chat-block-writer.js.map +1 -1
  70. package/dist/contracts/adapters/email-template.d.ts +8 -0
  71. package/dist/contracts/adapters/email-template.d.ts.map +1 -1
  72. package/dist/contracts/adapters/email-template.js +8 -6
  73. package/dist/contracts/adapters/email-template.js.map +1 -1
  74. package/dist/contracts/adapters/email.d.ts +7 -0
  75. package/dist/contracts/adapters/email.d.ts.map +1 -1
  76. package/dist/contracts/adapters/email.js +7 -5
  77. package/dist/contracts/adapters/email.js.map +1 -1
  78. package/dist/contracts/adapters/game.d.ts +4 -0
  79. package/dist/contracts/adapters/game.d.ts.map +1 -1
  80. package/dist/contracts/adapters/game.js +4 -2
  81. package/dist/contracts/adapters/game.js.map +1 -1
  82. package/dist/contracts/adapters/geo-ip.d.ts +4 -0
  83. package/dist/contracts/adapters/geo-ip.d.ts.map +1 -1
  84. package/dist/contracts/adapters/geo-ip.js +4 -2
  85. package/dist/contracts/adapters/geo-ip.js.map +1 -1
  86. package/dist/contracts/adapters/identity.d.ts +4 -0
  87. package/dist/contracts/adapters/identity.d.ts.map +1 -1
  88. package/dist/contracts/adapters/identity.js +4 -2
  89. package/dist/contracts/adapters/identity.js.map +1 -1
  90. package/dist/contracts/adapters/index.d.ts +7 -1
  91. package/dist/contracts/adapters/index.d.ts.map +1 -1
  92. package/dist/contracts/adapters/index.js +6 -4
  93. package/dist/contracts/adapters/index.js.map +1 -1
  94. package/dist/contracts/adapters/job-queue.d.ts +55 -0
  95. package/dist/contracts/adapters/job-queue.d.ts.map +1 -1
  96. package/dist/contracts/adapters/job-queue.js +11 -9
  97. package/dist/contracts/adapters/job-queue.js.map +1 -1
  98. package/dist/contracts/adapters/login-enforcement.d.ts +8 -0
  99. package/dist/contracts/adapters/login-enforcement.d.ts.map +1 -1
  100. package/dist/contracts/adapters/login-enforcement.js +8 -6
  101. package/dist/contracts/adapters/login-enforcement.js.map +1 -1
  102. package/dist/contracts/adapters/notification.d.ts +7 -0
  103. package/dist/contracts/adapters/notification.d.ts.map +1 -1
  104. package/dist/contracts/adapters/notification.js +7 -5
  105. package/dist/contracts/adapters/notification.js.map +1 -1
  106. package/dist/contracts/adapters/outbox.d.ts +14 -0
  107. package/dist/contracts/adapters/outbox.d.ts.map +1 -1
  108. package/dist/contracts/adapters/outbox.js +14 -12
  109. package/dist/contracts/adapters/outbox.js.map +1 -1
  110. package/dist/contracts/adapters/payment.d.ts +5 -0
  111. package/dist/contracts/adapters/payment.d.ts.map +1 -1
  112. package/dist/contracts/adapters/payment.js +5 -3
  113. package/dist/contracts/adapters/payment.js.map +1 -1
  114. package/dist/contracts/adapters/player-tags.d.ts +4 -0
  115. package/dist/contracts/adapters/player-tags.d.ts.map +1 -1
  116. package/dist/contracts/adapters/player-tags.js.map +1 -1
  117. package/dist/contracts/adapters/rate-limit.d.ts +17 -0
  118. package/dist/contracts/adapters/rate-limit.d.ts.map +1 -1
  119. package/dist/contracts/adapters/rate-limit.js +9 -6
  120. package/dist/contracts/adapters/rate-limit.js.map +1 -1
  121. package/dist/contracts/adapters/realtime.d.ts +90 -3
  122. package/dist/contracts/adapters/realtime.d.ts.map +1 -1
  123. package/dist/contracts/adapters/realtime.js +24 -22
  124. package/dist/contracts/adapters/realtime.js.map +1 -1
  125. package/dist/contracts/adapters/rng.d.ts +11 -0
  126. package/dist/contracts/adapters/rng.d.ts.map +1 -1
  127. package/dist/contracts/adapters/rng.js +11 -9
  128. package/dist/contracts/adapters/rng.js.map +1 -1
  129. package/dist/contracts/adapters/sms.d.ts +6 -0
  130. package/dist/contracts/adapters/sms.d.ts.map +1 -1
  131. package/dist/contracts/adapters/sms.js +6 -4
  132. package/dist/contracts/adapters/sms.js.map +1 -1
  133. package/dist/contracts/adapters/tag-evaluation-commands.d.ts +10 -0
  134. package/dist/contracts/adapters/tag-evaluation-commands.d.ts.map +1 -1
  135. package/dist/contracts/adapters/tag-evaluation-commands.js +10 -8
  136. package/dist/contracts/adapters/tag-evaluation-commands.js.map +1 -1
  137. package/dist/contracts/adapters/token.d.ts +21 -1
  138. package/dist/contracts/adapters/token.d.ts.map +1 -1
  139. package/dist/contracts/adapters/token.js +6 -4
  140. package/dist/contracts/adapters/token.js.map +1 -1
  141. package/dist/contracts/adapters/wallet-commands.d.ts +4 -0
  142. package/dist/contracts/adapters/wallet-commands.d.ts.map +1 -1
  143. package/dist/contracts/adapters/wallet-commands.js.map +1 -1
  144. package/dist/contracts/schemas/igaming-config.d.ts +25 -1
  145. package/dist/contracts/schemas/igaming-config.d.ts.map +1 -1
  146. package/dist/contracts/schemas/igaming-config.js +2 -1
  147. package/dist/contracts/schemas/igaming-config.js.map +1 -1
  148. package/dist/engagement/chat/plugin.d.ts +107 -1
  149. package/dist/engagement/chat/plugin.d.ts.map +1 -1
  150. package/dist/engagement/chat/plugin.js +3 -3
  151. package/dist/engagement/chat/plugin.js.map +1 -1
  152. package/dist/engagement/chat-commands/plugin.d.ts +107 -1
  153. package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
  154. package/dist/engagement/chat-commands/plugin.js +3 -3
  155. package/dist/engagement/chat-commands/plugin.js.map +1 -1
  156. package/dist/engagement/notifications/plugin.d.ts +108 -1
  157. package/dist/engagement/notifications/plugin.d.ts.map +1 -1
  158. package/dist/engagement/notifications/plugin.js +3 -3
  159. package/dist/engagement/notifications/plugin.js.map +1 -1
  160. package/dist/iam/__tests__/iam.service.int.test.js +49 -1
  161. package/dist/iam/__tests__/iam.service.int.test.js.map +1 -1
  162. package/dist/iam/contract/index.d.ts +10 -0
  163. package/dist/iam/contract/index.d.ts.map +1 -1
  164. package/dist/iam/contract/index.js +4 -0
  165. package/dist/iam/contract/index.js.map +1 -1
  166. package/dist/iam/plugin.d.ts +107 -1
  167. package/dist/iam/plugin.d.ts.map +1 -1
  168. package/dist/iam/plugin.js +5 -5
  169. package/dist/iam/plugin.js.map +1 -1
  170. package/dist/iam/router/index.d.ts +10 -0
  171. package/dist/iam/router/index.d.ts.map +1 -1
  172. package/dist/iam/router/index.js +4 -0
  173. package/dist/iam/router/index.js.map +1 -1
  174. package/dist/iam/service/iam.service.d.ts +11 -3
  175. package/dist/iam/service/iam.service.d.ts.map +1 -1
  176. package/dist/iam/service/iam.service.js +20 -1
  177. package/dist/iam/service/iam.service.js.map +1 -1
  178. package/dist/pam/identity/plugin.d.ts +106 -1
  179. package/dist/pam/identity/plugin.d.ts.map +1 -1
  180. package/dist/pam/identity/plugin.js +3 -3
  181. package/dist/pam/identity/plugin.js.map +1 -1
  182. package/dist/pam/player-management/plugin.d.ts +107 -1
  183. package/dist/pam/player-management/plugin.d.ts.map +1 -1
  184. package/dist/pam/player-management/plugin.js +3 -3
  185. package/dist/pam/player-management/plugin.js.map +1 -1
  186. package/dist/pam/player-management/service/kyc-status-writer.d.ts +1 -1
  187. package/dist/pam/player-management/service/kyc-status-writer.js +1 -1
  188. package/dist/pam/player-note/plugin.d.ts +106 -1
  189. package/dist/pam/player-note/plugin.d.ts.map +1 -1
  190. package/dist/pam/player-note/plugin.js +3 -3
  191. package/dist/pam/player-note/plugin.js.map +1 -1
  192. package/dist/pam/profile/plugin.d.ts +106 -1
  193. package/dist/pam/profile/plugin.d.ts.map +1 -1
  194. package/dist/pam/profile/plugin.js +3 -3
  195. package/dist/pam/profile/plugin.js.map +1 -1
  196. package/dist/pam/tag/plugin.d.ts +107 -1
  197. package/dist/pam/tag/plugin.d.ts.map +1 -1
  198. package/dist/pam/tag/plugin.js +3 -3
  199. package/dist/pam/tag/plugin.js.map +1 -1
  200. package/dist/server/kernel/container.d.ts +6 -7
  201. package/dist/server/kernel/container.d.ts.map +1 -1
  202. package/dist/server/kernel/container.js +3 -0
  203. package/dist/server/kernel/container.js.map +1 -1
  204. package/dist/server/plugin-host/__tests__/core-plugins.test.js +1 -1
  205. package/dist/server/plugin-host/__tests__/core-plugins.test.js.map +1 -1
  206. package/dist/server/plugin-host/__tests__/load-plugins.test.js +10 -1
  207. package/dist/server/plugin-host/__tests__/load-plugins.test.js.map +1 -1
  208. package/dist/server/plugin-host/__tests__/module-registry.test.js.map +1 -1
  209. package/dist/server/plugin-host/__tests__/required-ports.test.js +1 -0
  210. package/dist/server/plugin-host/__tests__/required-ports.test.js.map +1 -1
  211. package/dist/server/plugin-host/__tests__/typed-plugin.test.js +56 -17
  212. package/dist/server/plugin-host/__tests__/typed-plugin.test.js.map +1 -1
  213. package/dist/server/plugin-host/core-plugins.js +19 -19
  214. package/dist/server/plugin-host/core-plugins.js.map +1 -1
  215. package/dist/server/plugin-host/define-plugin.d.ts +20 -21
  216. package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
  217. package/dist/server/plugin-host/define-plugin.js +1 -8
  218. package/dist/server/plugin-host/define-plugin.js.map +1 -1
  219. package/dist/server/plugin-host/index.d.ts +2 -3
  220. package/dist/server/plugin-host/index.d.ts.map +1 -1
  221. package/dist/server/plugin-host/index.js +1 -2
  222. package/dist/server/plugin-host/index.js.map +1 -1
  223. package/dist/server/plugin-host/load-plugins.d.ts +6 -21
  224. package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
  225. package/dist/server/plugin-host/load-plugins.js +9 -4
  226. package/dist/server/plugin-host/load-plugins.js.map +1 -1
  227. package/dist/server/plugin-host/module-registry.d.ts +8 -13
  228. package/dist/server/plugin-host/module-registry.d.ts.map +1 -1
  229. package/dist/server/plugin-host/module-registry.js +2 -9
  230. package/dist/server/plugin-host/module-registry.js.map +1 -1
  231. package/dist/server/runtime/__tests__/create-app.test.js +8 -3
  232. package/dist/server/runtime/__tests__/create-app.test.js.map +1 -1
  233. package/dist/server/runtime/core-token-catalog.d.ts +106 -0
  234. package/dist/server/runtime/core-token-catalog.d.ts.map +1 -0
  235. package/dist/server/runtime/core-token-catalog.js +53 -0
  236. package/dist/server/runtime/core-token-catalog.js.map +1 -0
  237. package/dist/server/runtime/create-app.d.ts +3 -14
  238. package/dist/server/runtime/create-app.d.ts.map +1 -1
  239. package/dist/server/runtime/create-app.js +13 -17
  240. package/dist/server/runtime/create-app.js.map +1 -1
  241. package/dist/server/runtime/index.d.ts +2 -3
  242. package/dist/server/runtime/index.d.ts.map +1 -1
  243. package/dist/server/runtime/index.js +0 -2
  244. package/dist/server/runtime/index.js.map +1 -1
  245. package/dist/wallet/plugin.d.ts +107 -1
  246. package/dist/wallet/plugin.d.ts.map +1 -1
  247. package/dist/wallet/plugin.js +3 -3
  248. package/dist/wallet/plugin.js.map +1 -1
  249. package/generators/src/config.ts +1 -28
  250. package/generators/src/templates/adapter.hbs +3 -3
  251. package/generators/src/templates/contract.hbs +1 -1
  252. package/generators/src/templates/job-worker.hbs +3 -3
  253. package/generators/src/templates/module/plugin.hbs +4 -3
  254. package/generators/src/templates/plugin.hbs +3 -3
  255. package/package.json +1 -1
  256. package/dist/server/runtime/openapi.d.ts +0 -15
  257. package/dist/server/runtime/openapi.d.ts.map +0 -1
  258. package/dist/server/runtime/openapi.js +0 -26
  259. package/dist/server/runtime/openapi.js.map +0 -1
  260. package/generators/src/templates/module/agents.hbs +0 -17
@@ -1,43 +1,82 @@
1
1
  import { describe, expect, it } from 'vitest';
2
2
  import { createToken } from '@openora/core/contracts';
3
3
  import { Container } from '../../kernel/index.js';
4
- import { defineExtensions, definePluginWithCatalog, ModuleRegistryImpl } from '../index.js';
4
+ import { ModuleRegistryImpl } from '../index.js';
5
5
  const COUNT = createToken('COUNT');
6
6
  const SEED = createToken('SEED');
7
7
  const OTHER = createToken('OTHER');
8
8
  const catalog = { COUNT, SEED };
9
- const typedPlugin = definePluginWithCatalog()({
9
+ const typedCatalog = { COUNT, SEED };
10
+ void typedCatalog;
11
+ const typedCatalogWrongValue = {
12
+ // @ts-expect-error The catalog value type must match the token value.
13
+ COUNT: createToken('COUNT'),
14
+ };
15
+ void typedCatalogWrongValue;
16
+ function assertTypedContainer() {
17
+ const typedContainer = new Container();
18
+ const typedCount = typedContainer.get(COUNT);
19
+ void typedCount;
20
+ // @ts-expect-error A catalogued container factory must return the token value.
21
+ typedContainer.register(COUNT, () => 'wrong-value');
22
+ // @ts-expect-error A catalogued container cannot register an unknown token.
23
+ typedContainer.register(OTHER, () => 'not-registered');
24
+ // @ts-expect-error A catalogued container cannot resolve an unknown token.
25
+ typedContainer.get(OTHER);
26
+ // @ts-expect-error A catalogued container cannot check an unknown token.
27
+ typedContainer.has(OTHER);
28
+ }
29
+ void assertTypedContainer;
30
+ const typedPlugin = {
10
31
  id: 'typed-plugin',
11
32
  dependsOn: ['foundation'],
33
+ requiresPorts: [SEED],
12
34
  register(ctx) {
13
35
  ctx.provide(COUNT, (container) => container.get(SEED) + 1);
36
+ ctx.routers.add('typed', (container) => {
37
+ const seed = container.get(SEED);
38
+ return { seed };
39
+ });
14
40
  // @ts-expect-error A token outside the catalog is not a valid provider.
15
41
  ctx.provide(OTHER, () => 'not-registered');
16
42
  },
17
- });
43
+ };
44
+ const invalidTypedPlugin = {
45
+ id: 'invalid-typed-plugin',
46
+ register(ctx) {
47
+ // @ts-expect-error A provider must return the catalog token value.
48
+ ctx.provide(COUNT, () => 'wrong-value');
49
+ ctx.routers.add('invalid', (container) => {
50
+ // @ts-expect-error A router can only resolve catalogued tokens.
51
+ container.get(OTHER);
52
+ // @ts-expect-error A router can only check catalogued tokens.
53
+ container.has(OTHER);
54
+ return undefined;
55
+ });
56
+ },
57
+ };
58
+ void invalidTypedPlugin;
18
59
  const typedPluginId = typedPlugin.id;
19
- const typedDependency = typedPlugin.dependsOn ?? ['foundation'];
20
- const validGraph = defineExtensions([
21
- { id: 'foundation', path: './foundation.js' },
22
- { id: 'feature', path: './feature.js', dependsOn: ['foundation'] },
23
- ]);
24
- // @ts-expect-error The registry must reject an unknown dependency.
25
- defineExtensions([{ id: 'feature', path: './feature.js', dependsOn: ['missing'] }]);
26
- // @ts-expect-error The registry must reject a dependency cycle.
27
- defineExtensions([
28
- { id: 'a', path: './a.js', dependsOn: ['b'] },
29
- { id: 'b', path: './b.js', dependsOn: ['a'] },
30
- ]);
60
+ const typedDependency = typedPlugin.dependsOn;
61
+ const typedRequiredPort = typedPlugin.requiresPorts[0];
31
62
  describe('typed plugin surface', () => {
32
- it('keeps literal plugin metadata and resolves catalog services', () => {
63
+ it('resolves catalog services through a catalogued plugin', () => {
33
64
  const container = new Container();
34
65
  const registry = new ModuleRegistryImpl(container);
35
66
  container.register(SEED, () => 41);
36
67
  void typedPlugin.register(registry);
37
68
  expect(typedPluginId).toBe('typed-plugin');
38
69
  expect(typedDependency).toEqual(['foundation']);
39
- expect(validGraph[1]?.dependsOn).toEqual(['foundation']);
70
+ expect(typedRequiredPort).toBe(SEED);
40
71
  expect(container.get(COUNT)).toBe(42);
41
72
  });
73
+ it('keeps router factories on the catalogued container view', () => {
74
+ const container = new Container();
75
+ const registry = new ModuleRegistryImpl(container);
76
+ container.register(SEED, () => 7);
77
+ typedPlugin.register(registry);
78
+ const router = registry.routers.getAll().get('typed');
79
+ expect(router?.(container)).toEqual({ seed: 7 });
80
+ });
42
81
  });
43
82
  //# sourceMappingURL=typed-plugin.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"typed-plugin.test.js","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/typed-plugin.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAqB,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE5F,MAAM,KAAK,GAAG,WAAW,CAAS,OAAO,CAAC,CAAC;AAC3C,MAAM,IAAI,GAAG,WAAW,CAAS,MAAM,CAAC,CAAC;AACzC,MAAM,KAAK,GAAG,WAAW,CAAS,OAAO,CAAC,CAAC;AAE3C,MAAM,OAAO,GAAG,EAAE,KAAK,EAAE,IAAI,EAAyB,CAAC;AAEvD,MAAM,WAAW,GAAG,uBAAuB,EAAkB,CAAC;IAC5D,EAAE,EAAE,cAAc;IAClB,SAAS,EAAE,CAAC,YAAY,CAAC;IACzB,QAAQ,CAAC,GAAG;QACV,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE3D,wEAAwE;QACxE,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC7C,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,aAAa,GAAmB,WAAW,CAAC,EAAE,CAAC;AACrD,MAAM,eAAe,GAA4B,WAAW,CAAC,SAAS,IAAI,CAAC,YAAY,CAAC,CAAC;AAEzF,MAAM,UAAU,GAAG,gBAAgB,CAAC;IAClC,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,iBAAiB,EAAE;IAC7C,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE;CACnE,CAAC,CAAC;AAEH,mEAAmE;AACnE,gBAAgB,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC;AAEpF,gEAAgE;AAChE,gBAAgB,CAAC;IACf,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE;IAC7C,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,EAAE;CAC9C,CAAC,CAAC;AAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACpC,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACrE,MAAM,SAAS,GAAG,IAAI,SAAS,EAAkB,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,kBAAkB,CAAiB,SAAS,CAAC,CAAC;QAEnE,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,KAAK,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEpC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3C,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QAChD,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACzD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"typed-plugin.test.js","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/typed-plugin.test.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,22 @@
1
1
  import { createRequire } from 'node:module';
2
2
  const nodeRequire = createRequire(import.meta.url);
3
3
  const CORE_PLUGIN_MODULES = [
4
- { id: 'audit', specifier: '@openora/core/audit/plugin' },
5
- { id: 'iam', specifier: '@openora/core/iam/plugin' },
6
- { id: 'identity', specifier: '@openora/core/pam/plugins/identity' },
7
- { id: 'notifications', specifier: '@openora/core/engagement/plugins/notifications' },
8
- { id: 'compliance', specifier: '@openora/core/compliance/plugins/compliance' },
9
- { id: 'wallet', specifier: '@openora/core/wallet/plugins/wallet' },
10
- { id: 'gaming', specifier: '@openora/core/casino/plugins/gaming' },
11
- { id: 'lobby', specifier: '@openora/core/casino/plugins/lobby' },
12
- { id: 'chat', specifier: '@openora/core/engagement/plugins/chat' },
13
- { id: 'profile', specifier: '@openora/core/pam/plugins/profile' },
14
- { id: 'tag', specifier: '@openora/core/pam/plugins/tag' },
15
- { id: 'admin-console', specifier: '@openora/core/admin-console/plugin' },
16
- { id: 'analytics', specifier: '@openora/core/analytics/plugin' },
17
- { id: 'player-note', specifier: '@openora/core/pam/plugins/player-note' },
18
- { id: 'cms', specifier: '@openora/core/cms/plugins/cms' },
19
- { id: 'player-management', specifier: '@openora/core/pam/plugins/player-management' },
4
+ { id: 'audit', path: '@openora/core/audit/plugin' },
5
+ { id: 'identity', path: '@openora/core/pam/plugins/identity' },
6
+ { id: 'iam', path: '@openora/core/iam/plugin' },
7
+ { id: 'notifications', path: '@openora/core/engagement/plugins/notifications' },
8
+ { id: 'wallet', path: '@openora/core/wallet/plugins/wallet' },
9
+ { id: 'gaming', path: '@openora/core/casino/plugins/gaming' },
10
+ { id: 'lobby', path: '@openora/core/casino/plugins/lobby' },
11
+ { id: 'chat', path: '@openora/core/engagement/plugins/chat' },
12
+ { id: 'profile', path: '@openora/core/pam/plugins/profile' },
13
+ { id: 'tag', path: '@openora/core/pam/plugins/tag' },
14
+ { id: 'player-management', path: '@openora/core/pam/plugins/player-management' },
15
+ { id: 'compliance', path: '@openora/core/compliance/plugins/compliance' },
16
+ { id: 'admin-console', path: '@openora/core/admin-console/plugin' },
17
+ { id: 'analytics', path: '@openora/core/analytics/plugin' },
18
+ { id: 'player-note', path: '@openora/core/pam/plugins/player-note' },
19
+ { id: 'cms', path: '@openora/core/cms/plugins/cms' },
20
20
  ];
21
21
  /**
22
22
  * The full set of built-in platform plugins, as a ready-to-spread
@@ -32,9 +32,9 @@ const CORE_PLUGIN_MODULES = [
32
32
  * out, filter by id: `corePlugins().filter((p) => p.id !== 'chat')`.
33
33
  */
34
34
  export function corePlugins() {
35
- return CORE_PLUGIN_MODULES.map(({ id, specifier }) => ({
36
- id,
37
- path: nodeRequire.resolve(specifier),
35
+ return CORE_PLUGIN_MODULES.map((module) => ({
36
+ id: module.id,
37
+ path: nodeRequire.resolve(module.path),
38
38
  }));
39
39
  }
40
40
  //# sourceMappingURL=core-plugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAqD;IAC5E,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,4BAA4B,EAAE;IACxD,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,0BAA0B,EAAE;IACpD,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACnE,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,gDAAgD,EAAE;IACpF,EAAE,EAAE,EAAE,YAAY,EAAE,SAAS,EAAE,6CAA6C,EAAE;IAC9E,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,qCAAqC,EAAE;IAClE,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,oCAAoC,EAAE;IAChE,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,uCAAuC,EAAE;IAClE,EAAE,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,mCAAmC,EAAE;IACjE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE;IACzD,EAAE,EAAE,EAAE,eAAe,EAAE,SAAS,EAAE,oCAAoC,EAAE;IACxE,EAAE,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,gCAAgC,EAAE;IAChE,EAAE,EAAE,EAAE,aAAa,EAAE,SAAS,EAAE,uCAAuC,EAAE;IACzE,EAAE,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,+BAA+B,EAAE;IACzD,EAAE,EAAE,EAAE,mBAAmB,EAAE,SAAS,EAAE,6CAA6C,EAAE;CACtF,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC;QACrD,EAAE;QACF,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;KACrC,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"core-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/core-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEnD,MAAM,mBAAmB,GAAG;IAC1B,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,4BAA4B,EAAE;IACnD,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,oCAAoC,EAAE;IAC9D,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,0BAA0B,EAAE;IAC/C,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,gDAAgD,EAAE;IAC/E,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE;IAC7D,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,qCAAqC,EAAE;IAC7D,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,oCAAoC,EAAE;IAC3D,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,uCAAuC,EAAE;IAC7D,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,mCAAmC,EAAE;IAC5D,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE;IACpD,EAAE,EAAE,EAAE,mBAAmB,EAAE,IAAI,EAAE,6CAA6C,EAAE;IAChF,EAAE,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,6CAA6C,EAAE;IACzE,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,oCAAoC,EAAE;IACnE,EAAE,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,gCAAgC,EAAE;IAC3D,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,uCAAuC,EAAE;IACpE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE;CAC5C,CAAC;AAEX;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAC1C,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;KACvC,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -1,4 +1,3 @@
1
- import type { Container } from '../kernel/index.js';
2
1
  import type { EventEnvelope, SealedToken, Token, TokenCatalog, TokenValue, WorkerRegistration } from '@openora/core/contracts';
3
2
  export type McpToolDefinition = {
4
3
  name: string;
@@ -6,23 +5,25 @@ export type McpToolDefinition = {
6
5
  inputSchema: Record<string, unknown>;
7
6
  handler: (input: unknown) => unknown | Promise<unknown>;
8
7
  };
9
- export type RouterFactory = (c: Container) => unknown;
8
+ /**
9
+ * Container view a plugin's `provide()`/`provideSealed()` factory and router
10
+ * factories receive: read-only (`get`/`has`/`onDispose`) and catalog-constrained
11
+ * - never the full `Container`, so plugin code can't call `register()` directly
12
+ * and bypass ModuleRegistry's sealed-token rejection.
13
+ */
10
14
  export type TypedContainer<C extends TokenCatalog> = {
11
- get<K extends keyof C>(token: C[K]): TokenValue<C[K]>;
12
- has<K extends keyof C>(token: C[K]): boolean;
15
+ get<T extends C[keyof C]>(token: T): TokenValue<T>;
16
+ has<T extends C[keyof C]>(token: T): boolean;
13
17
  onDispose(fn: () => void | Promise<void>): void;
14
18
  };
19
+ export type RouterFactory<C extends TokenCatalog> = (c: TypedContainer<C>) => unknown;
15
20
  export type EventHandler = (payload: unknown, envelope?: EventEnvelope) => void | Promise<void>;
16
- export type ModuleRegistry<C extends TokenCatalog = never> = {
17
- provide<T>(token: [C] extends [never] ? Token<T> : C[keyof C] & Token<T>, factory: (container: [C] extends [never] ? Container : TypedContainer<C>) => T): void;
18
- provideSealed<T>(token: [C] extends [never] ? SealedToken<T> : C[keyof C] & SealedToken<T>, factory: (container: [C] extends [never] ? Container : TypedContainer<C>) => T): void;
21
+ export type ModuleRegistry<C extends TokenCatalog> = {
22
+ provide<T extends C[keyof C] & Token<unknown>>(token: T, factory: (container: TypedContainer<C>) => TokenValue<T>): void;
23
+ provideSealed<T extends C[keyof C] & SealedToken<unknown>>(token: T, factory: (container: TypedContainer<C>) => TokenValue<T>): void;
19
24
  routers: {
20
- add(namespace: string, factory: RouterFactory): void;
21
- getAll(): Map<string, RouterFactory>;
22
- };
23
- slots: {
24
- fill(slotName: string, component: unknown): void;
25
- getAll(): Map<string, unknown>;
25
+ add(namespace: string, factory: RouterFactory<C>): void;
26
+ getAll(): Map<string, RouterFactory<C>>;
26
27
  };
27
28
  events: {
28
29
  on(event: string, handler: EventHandler): void;
@@ -37,13 +38,11 @@ export type ModuleRegistry<C extends TokenCatalog = never> = {
37
38
  getAll(): McpToolDefinition[];
38
39
  };
39
40
  };
40
- export type PluginDefinition<C extends TokenCatalog = never, Id extends string = string, Dependencies extends readonly string[] = string[]> = {
41
- id: Id;
42
- dependsOn?: Dependencies;
43
- requiresPorts?: Token<unknown>[];
44
- register: (ctx: ModuleRegistry<C>) => void | Promise<void>;
41
+ export type PluginContext<C extends TokenCatalog> = ModuleRegistry<C>;
42
+ export type Plugin<C extends TokenCatalog> = {
43
+ id: string;
44
+ dependsOn?: readonly string[];
45
+ requiresPorts?: readonly (C[keyof C] & Token<unknown>)[];
46
+ register(ctx: PluginContext<C>): void | Promise<void>;
45
47
  };
46
- export type Plugin<C extends TokenCatalog = never, Id extends string = string, Dependencies extends readonly string[] = string[]> = PluginDefinition<C, Id, Dependencies>;
47
- export declare function definePlugin<C extends TokenCatalog = never, const Id extends string = string, const Dependencies extends readonly string[] = []>(definition: PluginDefinition<C, Id, Dependencies>): Plugin<C, Id, Dependencies>;
48
- export declare function definePluginWithCatalog<C extends TokenCatalog>(): <const Id extends string, const Dependencies extends readonly string[] = []>(definition: PluginDefinition<C, Id, Dependencies>) => Plugin<C, Id, Dependencies>;
49
48
  //# sourceMappingURL=define-plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,2 @@
1
- export function definePlugin(definition) {
2
- return definition;
3
- }
4
- export function definePluginWithCatalog() {
5
- return function defineCataloguedPlugin(definition) {
6
- return definition;
7
- };
8
- }
1
+ export {};
9
2
  //# sourceMappingURL=define-plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"AAkFA,MAAM,UAAU,YAAY,CAI1B,UAAiD;IACjD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB;IACrC,OAAO,SAAS,sBAAsB,CAGpC,UAAiD;QACjD,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":""}
@@ -1,7 +1,6 @@
1
- export { definePlugin, definePluginWithCatalog } from './define-plugin.js';
2
- export type { Plugin, PluginDefinition, ModuleRegistry, McpToolDefinition, RouterFactory, EventHandler, TypedContainer, } from './define-plugin.js';
1
+ export type { Plugin, ModuleRegistry, PluginContext, RouterFactory, McpToolDefinition, EventHandler, TypedContainer, } from './define-plugin.js';
3
2
  export { ModuleRegistryImpl } from './module-registry.js';
4
- export { defineExtensions, loadPlugins, topoSort } from './load-plugins.js';
3
+ export { loadPlugins, topoSort } from './load-plugins.js';
5
4
  export type { PluginEntry } from './load-plugins.js';
6
5
  export { applyServiceManifest, parseServiceManifest } from './service-manifest.js';
7
6
  export { loadExtensions } from './load-extensions.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,YAAY,EACV,MAAM,EACN,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5E,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,MAAM,EACN,cAAc,EACd,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC1D,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,6 +1,5 @@
1
- export { definePlugin, definePluginWithCatalog } from './define-plugin.js';
2
1
  export { ModuleRegistryImpl } from './module-registry.js';
3
- export { defineExtensions, loadPlugins, topoSort } from './load-plugins.js';
2
+ export { loadPlugins, topoSort } from './load-plugins.js';
4
3
  export { applyServiceManifest, parseServiceManifest } from './service-manifest.js';
5
4
  export { loadExtensions } from './load-extensions.js';
6
5
  export { corePlugins } from './core-plugins.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/plugin-host/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAU3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/plugin-host/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACnF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC"}
@@ -2,29 +2,15 @@ import type { Container } from '../kernel/index.js';
2
2
  import type { TokenCatalog } from '@openora/core/contracts';
3
3
  import type { Plugin } from './define-plugin.js';
4
4
  import { ModuleRegistryImpl } from './module-registry.js';
5
- export type PluginEntry<Id extends string = string, Dependencies extends readonly string[] = readonly string[]> = {
6
- id: Id;
5
+ export type PluginEntry = {
6
+ id: string;
7
7
  path: string;
8
- dependsOn?: Dependencies;
9
8
  kind?: 'module' | 'infra';
10
9
  };
11
- type EntryIds<Entries extends readonly PluginEntry[]> = Entries[number]['id'];
12
- type EntryDependencies<Entry extends PluginEntry> = Entry['dependsOn'] extends readonly string[] ? Entry['dependsOn'][number] : never;
13
- type MissingDependencies<Entries extends readonly PluginEntry[]> = Entries[number] extends infer Entry ? Entry extends PluginEntry ? Exclude<EntryDependencies<Entry>, EntryIds<Entries>> : never : never;
14
- type EntryById<Entries extends readonly PluginEntry[], Id extends string> = Entries[number] extends infer Entry ? (Entry extends PluginEntry<Id> ? Entry : never) : never;
15
- type HasDependencyCycle<Entries extends readonly PluginEntry[], Id extends string, Trail extends readonly string[] = []> = Id extends Trail[number] ? true : EntryById<Entries, Id> extends infer Entry ? Entry extends PluginEntry ? HasDependencyCycleFor<Entries, EntryDependencies<Entry>, [...Trail, Id]> : false : false;
16
- type HasDependencyCycleFor<Entries extends readonly PluginEntry[], Ids extends string, Trail extends readonly string[]> = true extends (Ids extends string ? HasDependencyCycle<Entries, Ids, Trail> : never) ? true : false;
17
- type GraphHasCycle<Entries extends readonly PluginEntry[], Ids extends string = EntryIds<Entries>> = true extends (Ids extends string ? HasDependencyCycle<Entries, Ids> : never) ? true : false;
18
- type PluginGraphError<Entries extends readonly PluginEntry[]> = [
19
- MissingDependencies<Entries>
20
- ] extends [never] ? GraphHasCycle<Entries> extends true ? {
21
- readonly __pluginGraphError: 'circular dependency';
22
- } : unknown : {
23
- readonly __pluginGraphError: 'unknown dependency';
24
- };
25
- export declare function defineExtensions<const Entries extends readonly PluginEntry[]>(entries: Entries & PluginGraphError<Entries>): Entries;
10
+ /** Ensures a registry entry resolves the plugin it names. */
11
+ export declare function assertEntryMatchesPlugin<C extends TokenCatalog>(entry: PluginEntry, plugin: Plugin<C>): void;
26
12
  export declare function topoSort<C extends TokenCatalog>(plugins: Plugin<C>[]): Plugin<C>[];
27
- export declare function loadPlugins<C extends TokenCatalog = never>(entries: PluginEntry[], container: Container<C>): Promise<ModuleRegistryImpl<C>>;
13
+ export declare function loadPlugins<C extends TokenCatalog>(entries: PluginEntry[], container: Container<C>): Promise<ModuleRegistryImpl<C>>;
28
14
  /**
29
15
  * Boot-time fail-fast for cross-domain ports (ADR-0024). A domain depends ONLY on
30
16
  * the foundation and reaches another domain through a port token the other domain
@@ -35,6 +21,5 @@ export declare function loadPlugins<C extends TokenCatalog = never>(entries: Plu
35
21
  * registration and throw one actionable error naming the plugin, the port, and the
36
22
  * likely-missing package.
37
23
  */
38
- export declare function assertRequiredPorts<C extends TokenCatalog = never>(plugins: Plugin<C>[], container: Container): void;
39
- export {};
24
+ export declare function assertRequiredPorts<C extends TokenCatalog>(plugins: Plugin<C>[], container: Container<C>): void;
40
25
  //# sourceMappingURL=load-plugins.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"load-plugins.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/load-plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-plugins.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/load-plugins.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAKb,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC3B,CAAC;AA8BF,6DAA6D;AAC7D,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,YAAY,EAC7D,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,GAChB,IAAI,CAON;AAED,wBAAgB,QAAQ,CAAC,CAAC,SAAS,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CA8BlF;AAED,wBAAsB,WAAW,CAAC,CAAC,SAAS,YAAY,EACtD,OAAO,EAAE,WAAW,EAAE,EACtB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAwBhC;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,YAAY,EACxD,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,EACpB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,GACtB,IAAI,CAgBN"}
@@ -1,7 +1,4 @@
1
1
  import { ModuleRegistryImpl } from './module-registry.js';
2
- export function defineExtensions(entries) {
3
- return entries;
4
- }
5
2
  function validateEntries(entries) {
6
3
  if (!Array.isArray(entries)) {
7
4
  throw new Error(`extensions.config.ts must export \`extensions\` as an array of { id, path }. Got ${typeof entries}.`);
@@ -25,6 +22,13 @@ function validateEntries(entries) {
25
22
  seen.add(id);
26
23
  });
27
24
  }
25
+ /** Ensures a registry entry resolves the plugin it names. */
26
+ export function assertEntryMatchesPlugin(entry, plugin) {
27
+ if (entry.id !== plugin.id) {
28
+ throw new Error(`Registry entry id "${entry.id}" does not match the plugin's own id "${plugin.id}" ` +
29
+ `(loaded from ${entry.path}).`);
30
+ }
31
+ }
28
32
  export function topoSort(plugins) {
29
33
  const byId = new Map(plugins.map((p) => [p.id, p]));
30
34
  const visited = new Set();
@@ -60,8 +64,9 @@ export async function loadPlugins(entries, container) {
60
64
  const mod = (await import(entry.path));
61
65
  const plugin = mod.default;
62
66
  if (!plugin || typeof plugin.register !== 'function') {
63
- throw new Error(`Plugin at "${entry.path}" does not export a valid definePlugin result`);
67
+ throw new Error(`Plugin at "${entry.path}" does not default-export a valid plugin`);
64
68
  }
69
+ assertEntryMatchesPlugin(entry, plugin);
65
70
  plugins.push(plugin);
66
71
  }
67
72
  const ordered = topoSort(plugins);
@@ -1 +1 @@
1
- {"version":3,"file":"load-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/load-plugins.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"load-plugins.js","sourceRoot":"","sources":["../../../src/server/plugin-host/load-plugins.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,19 @@
1
- import type { Container, Factory } from '../kernel/index.js';
2
- import type { SealedToken, Token, TokenCatalog, WorkerRegistration } from '@openora/core/contracts';
3
- import type { ModuleRegistry, McpToolDefinition, RouterFactory, EventHandler } from './define-plugin.js';
4
- export declare class ModuleRegistryImpl<C extends TokenCatalog = never> implements ModuleRegistry<C> {
1
+ import type { Container } from '../kernel/index.js';
2
+ import type { SealedToken, Token, TokenCatalog, TokenValue, WorkerRegistration } from '@openora/core/contracts';
3
+ import type { ModuleRegistry, McpToolDefinition, RouterFactory, TypedContainer, EventHandler } from './define-plugin.js';
4
+ export declare class ModuleRegistryImpl<C extends TokenCatalog> implements ModuleRegistry<C> {
5
5
  private readonly container;
6
6
  private _routers;
7
- private _slots;
8
7
  private _events;
9
8
  private _jobs;
10
9
  private _mcpTools;
11
10
  private _sealedBound;
12
11
  constructor(container: Container<C>);
13
- provide: <T>(token: Token<T>, factory: Factory<T>) => void;
14
- provideSealed: <T>(token: SealedToken<T>, factory: Factory<T>) => void;
12
+ provide: <T extends Token<unknown>>(token: T, factory: (container: TypedContainer<C>) => TokenValue<T>) => void;
13
+ provideSealed: <T extends SealedToken<unknown>>(token: T, factory: (container: TypedContainer<C>) => TokenValue<T>) => void;
15
14
  routers: {
16
- add: (namespace: string, factory: RouterFactory) => void;
17
- getAll: () => Map<string, RouterFactory>;
18
- };
19
- slots: {
20
- fill: (slotName: string, component: unknown) => void;
21
- getAll: () => Map<string, unknown>;
15
+ add: (namespace: string, factory: RouterFactory<C>) => void;
16
+ getAll: () => Map<string, RouterFactory<C>>;
22
17
  };
23
18
  events: {
24
19
  on: (event: string, handler: EventHandler) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/module-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACpG,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,kBAAkB,CAAC,CAAC,SAAS,YAAY,GAAG,KAAK,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAQ9E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAPtC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,YAAY,CAAqB;gBAEZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAMpD,OAAO,GAAI,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,KAAG,IAAI,CAYvD;IAMF,aAAa,GAAI,CAAC,EAAE,OAAO,WAAW,CAAC,CAAC,CAAC,EAAE,SAAS,OAAO,CAAC,CAAC,CAAC,KAAG,IAAI,CASnE;IAEF,OAAO;yBACY,MAAM,WAAW,aAAa;;MAO/C;IAEF,KAAK;yBACc,MAAM,aAAa,OAAO;;MAI3C;IAEF,MAAM;oBACQ,MAAM,WAAW,YAAY;;MAMzC;IAEF,IAAI;iBACO,CAAC,gBAAgB,kBAAkB,CAAC,CAAC,CAAC;;MAI/C;IAEF,GAAG;2BACkB,iBAAiB;;MAIpC;CACH"}
1
+ {"version":3,"file":"module-registry.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/module-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EACV,WAAW,EACX,KAAK,EACL,YAAY,EACZ,UAAU,EACV,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,oBAAoB,CAAC;AAE5B,qBAAa,kBAAkB,CAAC,CAAC,SAAS,YAAY,CAAE,YAAW,cAAc,CAAC,CAAC,CAAC;IAOtE,OAAO,CAAC,QAAQ,CAAC,SAAS;IANtC,OAAO,CAAC,QAAQ,CAAuC;IACvD,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,YAAY,CAAqB;gBAEZ,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAMpD,OAAO,GAAI,CAAC,SAAS,KAAK,CAAC,OAAO,CAAC,EACjC,OAAO,CAAC,EACR,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KACvD,IAAI,CAYL;IAMF,aAAa,GAAI,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,EAC7C,OAAO,CAAC,EACR,SAAS,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KACvD,IAAI,CASL;IAEF,OAAO;yBACY,MAAM,WAAW,aAAa,CAAC,CAAC,CAAC;;MAOlD;IAEF,MAAM;oBACQ,MAAM,WAAW,YAAY;;MAMzC;IAEF,IAAI;iBACO,CAAC,gBAAgB,kBAAkB,CAAC,CAAC,CAAC;;MAI/C;IAEF,GAAG;2BACkB,iBAAiB;;MAIpC;CACH"}
@@ -1,7 +1,6 @@
1
1
  export class ModuleRegistryImpl {
2
2
  container;
3
3
  _routers = new Map();
4
- _slots = new Map();
5
4
  _events = new Map();
6
5
  _jobs = [];
7
6
  _mcpTools = [];
@@ -22,7 +21,7 @@ export class ModuleRegistryImpl {
22
21
  `Its owning module binds it via ctx.provideSealed() instead. ` +
23
22
  `See @openora/core/compliance for the canonical list.`);
24
23
  }
25
- this.container.register(token, factory);
24
+ this.container.registerUnsafe(token, factory);
26
25
  };
27
26
  // Bind-once. The owning module calls this during its own register() to bind the
28
27
  // canonical implementation; a second call for the same token - an overlay trying
@@ -34,7 +33,7 @@ export class ModuleRegistryImpl {
34
33
  `A sealed service may be bound exactly once, by its owning module, and never rebound.`);
35
34
  }
36
35
  this._sealedBound.add(token);
37
- this.container.register(token, factory);
36
+ this.container.registerUnsafe(token, factory);
38
37
  };
39
38
  routers = {
40
39
  add: (namespace, factory) => {
@@ -45,12 +44,6 @@ export class ModuleRegistryImpl {
45
44
  },
46
45
  getAll: () => this._routers,
47
46
  };
48
- slots = {
49
- fill: (slotName, component) => {
50
- this._slots.set(slotName, component);
51
- },
52
- getAll: () => this._slots,
53
- };
54
47
  events = {
55
48
  on: (event, handler) => {
56
49
  const handlers = this._events.get(event) ?? [];
@@ -1 +1 @@
1
- {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../../src/server/plugin-host/module-registry.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,kBAAkB;IAQA;IAPrB,QAAQ,GAAG,IAAI,GAAG,EAAyB,CAAC;IAC5C,MAAM,GAAG,IAAI,GAAG,EAAmB,CAAC;IACpC,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,KAAK,GAAkC,EAAE,CAAC;IAC1C,SAAS,GAAwB,EAAE,CAAC;IACpC,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAExD,+EAA+E;IAC/E,gFAAgF;IAChF,+FAA+F;IAC/F,6DAA6D;IAC7D,OAAO,GAAG,CAAI,KAAe,EAAE,OAAmB,EAAQ,EAAE;QAC1D,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,KAAK;gBACzD,0EAA0E;gBAC1E,0EAA0E;gBAC1E,8DAA8D;gBAC9D,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,gFAAgF;IAChF,iFAAiF;IACjF,mFAAmF;IACnF,sEAAsE;IACtE,aAAa,GAAG,CAAI,KAAqB,EAAE,OAAmB,EAAQ,EAAE;QACtE,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,CAAC,WAAW,IAAI,WAAW,sBAAsB;gBACnF,sFAAsF,CACzF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,OAAO,GAAG;QACR,GAAG,EAAE,CAAC,SAAiB,EAAE,OAAsB,EAAE,EAAE;YACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,yBAAyB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ;KAC5B,CAAC;IAEF,KAAK,GAAG;QACN,IAAI,EAAE,CAAC,QAAgB,EAAE,SAAkB,EAAE,EAAE;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM;KAC1B,CAAC;IAEF,MAAM,GAAG;QACP,EAAE,EAAE,CAAC,KAAa,EAAE,OAAqB,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;KAC3B,CAAC;IAEF,IAAI,GAAG;QACL,MAAM,EAAE,CAAI,YAAmC,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;KACzB,CAAC;IAEF,GAAG,GAAG;QACJ,IAAI,EAAE,CAAC,UAA6B,EAAE,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;KAC7B,CAAC;CACH"}
1
+ {"version":3,"file":"module-registry.js","sourceRoot":"","sources":["../../../src/server/plugin-host/module-registry.ts"],"names":[],"mappings":"AAgBA,MAAM,OAAO,kBAAkB;IAOA;IANrB,QAAQ,GAAG,IAAI,GAAG,EAA4B,CAAC;IAC/C,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,KAAK,GAAkC,EAAE,CAAC;IAC1C,SAAS,GAAwB,EAAE,CAAC;IACpC,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IAEzC,YAA6B,SAAuB;QAAvB,cAAS,GAAT,SAAS,CAAc;IAAG,CAAC;IAExD,+EAA+E;IAC/E,gFAAgF;IAChF,+FAA+F;IAC/F,6DAA6D;IAC7D,OAAO,GAAG,CACR,KAAQ,EACR,OAAwD,EAClD,EAAE;QACR,MAAM,IAAI,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CACb,kDAAkD,IAAI,KAAK;gBACzD,0EAA0E;gBAC1E,0EAA0E;gBAC1E,8DAA8D;gBAC9D,sDAAsD,CACzD,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,gFAAgF;IAChF,iFAAiF;IACjF,mFAAmF;IACnF,sEAAsE;IACtE,aAAa,GAAG,CACd,KAAQ,EACR,OAAwD,EAClD,EAAE;QACR,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CACb,+BAA+B,KAAK,CAAC,WAAW,IAAI,WAAW,sBAAsB;gBACnF,sFAAsF,CACzF,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC,CAAC;IAEF,OAAO,GAAG;QACR,GAAG,EAAE,CAAC,SAAiB,EAAE,OAAyB,EAAE,EAAE;YACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBACjC,MAAM,IAAI,KAAK,CAAC,qBAAqB,SAAS,yBAAyB,CAAC,CAAC;YAC3E,CAAC;YACD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ;KAC5B,CAAC;IAEF,MAAM,GAAG;QACP,EAAE,EAAE,CAAC,KAAa,EAAE,OAAqB,EAAE,EAAE;YAC3C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YAC/C,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO;KAC3B,CAAC;IAEF,IAAI,GAAG;QACL,MAAM,EAAE,CAAI,YAAmC,EAAE,EAAE;YACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,YAA2C,CAAC,CAAC;QAC/D,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK;KACzB,CAAC;IAEF,GAAG,GAAG;QACJ,IAAI,EAAE,CAAC,UAA6B,EAAE,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClC,CAAC;QACD,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;KAC7B,CAAC;CACH"}
@@ -9,7 +9,7 @@ import { createApp } from '../create-app.js';
9
9
  const DUMMY_DATABASE_URL = 'postgres://test:test@127.0.0.1:1/create_app_test';
10
10
  describe('createApp - distributed-only durable seams (ADR-0030)', () => {
11
11
  it('throws a clear, actionable error when no durable seam is bound', async () => {
12
- await expect(createApp({ plugins: [], databaseUrl: DUMMY_DATABASE_URL, openapi: { enabled: false } })).rejects.toThrow(/MESSAGE_BROKER.*JOB_QUEUE.*CACHE.*RATE_LIMITER/s);
12
+ await expect(createApp({ plugins: [], databaseUrl: DUMMY_DATABASE_URL })).rejects.toThrow(/MESSAGE_BROKER.*JOB_QUEUE.*CACHE.*RATE_LIMITER/s);
13
13
  });
14
14
  it('boots and serves once REDIS_URL auto-binds all four seams', async () => {
15
15
  const saved = process.env['REDIS_URL'];
@@ -18,7 +18,6 @@ describe('createApp - distributed-only durable seams (ADR-0030)', () => {
18
18
  const created = await createApp({
19
19
  plugins: [],
20
20
  databaseUrl: DUMMY_DATABASE_URL,
21
- openapi: { enabled: false },
22
21
  });
23
22
  for (const token of [MESSAGE_BROKER, JOB_QUEUE, CACHE, RATE_LIMITER]) {
24
23
  expect(created.container.has(token)).toBe(true);
@@ -26,6 +25,12 @@ describe('createApp - distributed-only durable seams (ADR-0030)', () => {
26
25
  const res = await created.app.request('/health');
27
26
  expect(res.status).toBe(200);
28
27
  expect(await res.json()).toMatchObject({ status: 'ok' });
28
+ const spec = await created.app.request('/openapi.json');
29
+ expect(spec.status).toBe(200);
30
+ expect(await spec.json()).toMatchObject({ openapi: expect.any(String) });
31
+ const docs = await created.app.request('/docs');
32
+ expect(docs.status).toBe(200);
33
+ expect(await docs.text()).toContain('API Reference');
29
34
  await created.close();
30
35
  }
31
36
  finally {
@@ -62,7 +67,7 @@ describe('createApp - service name for the Redis Streams consumer group', () =>
62
67
  process.env['REDIS_URL'] = 'redis://127.0.0.1:1';
63
68
  process.env['SERVICE_MANIFEST'] = 'wallet,iam';
64
69
  delete process.env['SERVICE_NAME'];
65
- await expect(createApp({ plugins: [], databaseUrl: DUMMY_DATABASE_URL, openapi: { enabled: false } })).rejects.toThrow(/SERVICE_MANIFEST is set but SERVICE_NAME is not/);
70
+ await expect(createApp({ plugins: [], databaseUrl: DUMMY_DATABASE_URL })).rejects.toThrow(/SERVICE_MANIFEST is set but SERVICE_NAME is not/);
66
71
  });
67
72
  });
68
73
  //# sourceMappingURL=create-app.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"create-app.test.js","sourceRoot":"","sources":["../../../../src/server/runtime/__tests__/create-app.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-app.test.js","sourceRoot":"","sources":["../../../../src/server/runtime/__tests__/create-app.test.ts"],"names":[],"mappings":"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"}