@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.
- package/README.md +10 -10
- package/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/plugin.d.ts +107 -1
- package/dist/admin-console/plugin.d.ts.map +1 -1
- package/dist/admin-console/plugin.js +3 -3
- package/dist/admin-console/plugin.js.map +1 -1
- package/dist/analytics/plugin.d.ts +107 -1
- package/dist/analytics/plugin.d.ts.map +1 -1
- package/dist/analytics/plugin.js +3 -3
- package/dist/analytics/plugin.js.map +1 -1
- package/dist/audit/plugin.d.ts +106 -1
- package/dist/audit/plugin.d.ts.map +1 -1
- package/dist/audit/plugin.js +3 -3
- package/dist/audit/plugin.js.map +1 -1
- package/dist/casino/gaming/plugin.d.ts +108 -1
- package/dist/casino/gaming/plugin.d.ts.map +1 -1
- package/dist/casino/gaming/plugin.js +3 -3
- package/dist/casino/gaming/plugin.js.map +1 -1
- package/dist/casino/lobby/plugin.d.ts +106 -1
- package/dist/casino/lobby/plugin.d.ts.map +1 -1
- package/dist/casino/lobby/plugin.js +3 -3
- package/dist/casino/lobby/plugin.js.map +1 -1
- package/dist/cms/plugin.d.ts +106 -1
- package/dist/cms/plugin.d.ts.map +1 -1
- package/dist/cms/plugin.js +3 -3
- package/dist/cms/plugin.js.map +1 -1
- package/dist/compliance/plugin.d.ts +109 -1
- package/dist/compliance/plugin.d.ts.map +1 -1
- package/dist/compliance/plugin.js +3 -3
- package/dist/compliance/plugin.js.map +1 -1
- package/dist/compliance/service/kyc.service.d.ts +8 -11
- package/dist/compliance/service/kyc.service.d.ts.map +1 -1
- package/dist/compliance/service/kyc.service.js +8 -11
- package/dist/compliance/service/kyc.service.js.map +1 -1
- package/dist/contracts/adapters/admin-game-reporting.d.ts +12 -0
- package/dist/contracts/adapters/admin-game-reporting.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-game-reporting.js +6 -4
- package/dist/contracts/adapters/admin-game-reporting.js.map +1 -1
- package/dist/contracts/adapters/admin-permission.d.ts +10 -0
- package/dist/contracts/adapters/admin-permission.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-permission.js +6 -4
- package/dist/contracts/adapters/admin-permission.js.map +1 -1
- package/dist/contracts/adapters/admin-player-activity.d.ts +22 -0
- package/dist/contracts/adapters/admin-player-activity.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-player-activity.js.map +1 -1
- package/dist/contracts/adapters/admin-user-directory.d.ts +27 -0
- package/dist/contracts/adapters/admin-user-directory.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-user-directory.js.map +1 -1
- package/dist/contracts/adapters/admin-wallet-reporting.d.ts +6 -0
- package/dist/contracts/adapters/admin-wallet-reporting.d.ts.map +1 -1
- package/dist/contracts/adapters/admin-wallet-reporting.js.map +1 -1
- package/dist/contracts/adapters/aggregator.d.ts +12 -0
- package/dist/contracts/adapters/aggregator.d.ts.map +1 -1
- package/dist/contracts/adapters/aggregator.js +5 -3
- package/dist/contracts/adapters/aggregator.js.map +1 -1
- package/dist/contracts/adapters/audit.d.ts +17 -0
- package/dist/contracts/adapters/audit.d.ts.map +1 -1
- package/dist/contracts/adapters/audit.js.map +1 -1
- package/dist/contracts/adapters/broker.d.ts +23 -0
- package/dist/contracts/adapters/broker.d.ts.map +1 -1
- package/dist/contracts/adapters/broker.js +8 -6
- package/dist/contracts/adapters/broker.js.map +1 -1
- package/dist/contracts/adapters/cache.d.ts +8 -0
- package/dist/contracts/adapters/cache.d.ts.map +1 -1
- package/dist/contracts/adapters/cache.js +8 -6
- package/dist/contracts/adapters/cache.js.map +1 -1
- package/dist/contracts/adapters/chat-block-writer.d.ts +4 -0
- package/dist/contracts/adapters/chat-block-writer.d.ts.map +1 -1
- package/dist/contracts/adapters/chat-block-writer.js.map +1 -1
- package/dist/contracts/adapters/email-template.d.ts +8 -0
- package/dist/contracts/adapters/email-template.d.ts.map +1 -1
- package/dist/contracts/adapters/email-template.js +8 -6
- package/dist/contracts/adapters/email-template.js.map +1 -1
- package/dist/contracts/adapters/email.d.ts +7 -0
- package/dist/contracts/adapters/email.d.ts.map +1 -1
- package/dist/contracts/adapters/email.js +7 -5
- package/dist/contracts/adapters/email.js.map +1 -1
- package/dist/contracts/adapters/game.d.ts +4 -0
- package/dist/contracts/adapters/game.d.ts.map +1 -1
- package/dist/contracts/adapters/game.js +4 -2
- package/dist/contracts/adapters/game.js.map +1 -1
- package/dist/contracts/adapters/geo-ip.d.ts +4 -0
- package/dist/contracts/adapters/geo-ip.d.ts.map +1 -1
- package/dist/contracts/adapters/geo-ip.js +4 -2
- package/dist/contracts/adapters/geo-ip.js.map +1 -1
- package/dist/contracts/adapters/identity.d.ts +4 -0
- package/dist/contracts/adapters/identity.d.ts.map +1 -1
- package/dist/contracts/adapters/identity.js +4 -2
- package/dist/contracts/adapters/identity.js.map +1 -1
- package/dist/contracts/adapters/index.d.ts +7 -1
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js +6 -4
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/adapters/job-queue.d.ts +55 -0
- package/dist/contracts/adapters/job-queue.d.ts.map +1 -1
- package/dist/contracts/adapters/job-queue.js +11 -9
- package/dist/contracts/adapters/job-queue.js.map +1 -1
- package/dist/contracts/adapters/login-enforcement.d.ts +8 -0
- package/dist/contracts/adapters/login-enforcement.d.ts.map +1 -1
- package/dist/contracts/adapters/login-enforcement.js +8 -6
- package/dist/contracts/adapters/login-enforcement.js.map +1 -1
- package/dist/contracts/adapters/notification.d.ts +7 -0
- package/dist/contracts/adapters/notification.d.ts.map +1 -1
- package/dist/contracts/adapters/notification.js +7 -5
- package/dist/contracts/adapters/notification.js.map +1 -1
- package/dist/contracts/adapters/outbox.d.ts +14 -0
- package/dist/contracts/adapters/outbox.d.ts.map +1 -1
- package/dist/contracts/adapters/outbox.js +14 -12
- package/dist/contracts/adapters/outbox.js.map +1 -1
- package/dist/contracts/adapters/payment.d.ts +5 -0
- package/dist/contracts/adapters/payment.d.ts.map +1 -1
- package/dist/contracts/adapters/payment.js +5 -3
- package/dist/contracts/adapters/payment.js.map +1 -1
- package/dist/contracts/adapters/player-tags.d.ts +4 -0
- package/dist/contracts/adapters/player-tags.d.ts.map +1 -1
- package/dist/contracts/adapters/player-tags.js.map +1 -1
- package/dist/contracts/adapters/rate-limit.d.ts +17 -0
- package/dist/contracts/adapters/rate-limit.d.ts.map +1 -1
- package/dist/contracts/adapters/rate-limit.js +9 -6
- package/dist/contracts/adapters/rate-limit.js.map +1 -1
- package/dist/contracts/adapters/realtime.d.ts +90 -3
- package/dist/contracts/adapters/realtime.d.ts.map +1 -1
- package/dist/contracts/adapters/realtime.js +24 -22
- package/dist/contracts/adapters/realtime.js.map +1 -1
- package/dist/contracts/adapters/rng.d.ts +11 -0
- package/dist/contracts/adapters/rng.d.ts.map +1 -1
- package/dist/contracts/adapters/rng.js +11 -9
- package/dist/contracts/adapters/rng.js.map +1 -1
- package/dist/contracts/adapters/sms.d.ts +6 -0
- package/dist/contracts/adapters/sms.d.ts.map +1 -1
- package/dist/contracts/adapters/sms.js +6 -4
- package/dist/contracts/adapters/sms.js.map +1 -1
- package/dist/contracts/adapters/tag-evaluation-commands.d.ts +10 -0
- package/dist/contracts/adapters/tag-evaluation-commands.d.ts.map +1 -1
- package/dist/contracts/adapters/tag-evaluation-commands.js +10 -8
- package/dist/contracts/adapters/tag-evaluation-commands.js.map +1 -1
- package/dist/contracts/adapters/token.d.ts +21 -1
- package/dist/contracts/adapters/token.d.ts.map +1 -1
- package/dist/contracts/adapters/token.js +6 -4
- package/dist/contracts/adapters/token.js.map +1 -1
- package/dist/contracts/adapters/wallet-commands.d.ts +4 -0
- package/dist/contracts/adapters/wallet-commands.d.ts.map +1 -1
- package/dist/contracts/adapters/wallet-commands.js.map +1 -1
- package/dist/contracts/schemas/igaming-config.d.ts +25 -1
- package/dist/contracts/schemas/igaming-config.d.ts.map +1 -1
- package/dist/contracts/schemas/igaming-config.js +2 -1
- package/dist/contracts/schemas/igaming-config.js.map +1 -1
- package/dist/engagement/chat/plugin.d.ts +107 -1
- package/dist/engagement/chat/plugin.d.ts.map +1 -1
- package/dist/engagement/chat/plugin.js +3 -3
- package/dist/engagement/chat/plugin.js.map +1 -1
- package/dist/engagement/chat-commands/plugin.d.ts +107 -1
- package/dist/engagement/chat-commands/plugin.d.ts.map +1 -1
- package/dist/engagement/chat-commands/plugin.js +3 -3
- package/dist/engagement/chat-commands/plugin.js.map +1 -1
- package/dist/engagement/notifications/plugin.d.ts +108 -1
- package/dist/engagement/notifications/plugin.d.ts.map +1 -1
- package/dist/engagement/notifications/plugin.js +3 -3
- package/dist/engagement/notifications/plugin.js.map +1 -1
- package/dist/iam/__tests__/iam.service.int.test.js +49 -1
- package/dist/iam/__tests__/iam.service.int.test.js.map +1 -1
- package/dist/iam/contract/index.d.ts +10 -0
- package/dist/iam/contract/index.d.ts.map +1 -1
- package/dist/iam/contract/index.js +4 -0
- package/dist/iam/contract/index.js.map +1 -1
- package/dist/iam/plugin.d.ts +107 -1
- package/dist/iam/plugin.d.ts.map +1 -1
- package/dist/iam/plugin.js +5 -5
- package/dist/iam/plugin.js.map +1 -1
- package/dist/iam/router/index.d.ts +10 -0
- package/dist/iam/router/index.d.ts.map +1 -1
- package/dist/iam/router/index.js +4 -0
- package/dist/iam/router/index.js.map +1 -1
- package/dist/iam/service/iam.service.d.ts +11 -3
- package/dist/iam/service/iam.service.d.ts.map +1 -1
- package/dist/iam/service/iam.service.js +20 -1
- package/dist/iam/service/iam.service.js.map +1 -1
- package/dist/pam/identity/plugin.d.ts +106 -1
- package/dist/pam/identity/plugin.d.ts.map +1 -1
- package/dist/pam/identity/plugin.js +3 -3
- package/dist/pam/identity/plugin.js.map +1 -1
- package/dist/pam/player-management/plugin.d.ts +107 -1
- package/dist/pam/player-management/plugin.d.ts.map +1 -1
- package/dist/pam/player-management/plugin.js +3 -3
- package/dist/pam/player-management/plugin.js.map +1 -1
- package/dist/pam/player-management/service/kyc-status-writer.d.ts +1 -1
- package/dist/pam/player-management/service/kyc-status-writer.js +1 -1
- package/dist/pam/player-note/plugin.d.ts +106 -1
- package/dist/pam/player-note/plugin.d.ts.map +1 -1
- package/dist/pam/player-note/plugin.js +3 -3
- package/dist/pam/player-note/plugin.js.map +1 -1
- package/dist/pam/profile/plugin.d.ts +106 -1
- package/dist/pam/profile/plugin.d.ts.map +1 -1
- package/dist/pam/profile/plugin.js +3 -3
- package/dist/pam/profile/plugin.js.map +1 -1
- package/dist/pam/tag/plugin.d.ts +107 -1
- package/dist/pam/tag/plugin.d.ts.map +1 -1
- package/dist/pam/tag/plugin.js +3 -3
- package/dist/pam/tag/plugin.js.map +1 -1
- package/dist/server/kernel/container.d.ts +6 -7
- package/dist/server/kernel/container.d.ts.map +1 -1
- package/dist/server/kernel/container.js +3 -0
- package/dist/server/kernel/container.js.map +1 -1
- package/dist/server/plugin-host/__tests__/core-plugins.test.js +1 -1
- package/dist/server/plugin-host/__tests__/core-plugins.test.js.map +1 -1
- package/dist/server/plugin-host/__tests__/load-plugins.test.js +10 -1
- package/dist/server/plugin-host/__tests__/load-plugins.test.js.map +1 -1
- package/dist/server/plugin-host/__tests__/module-registry.test.js.map +1 -1
- package/dist/server/plugin-host/__tests__/required-ports.test.js +1 -0
- package/dist/server/plugin-host/__tests__/required-ports.test.js.map +1 -1
- package/dist/server/plugin-host/__tests__/typed-plugin.test.js +56 -17
- package/dist/server/plugin-host/__tests__/typed-plugin.test.js.map +1 -1
- package/dist/server/plugin-host/core-plugins.js +19 -19
- package/dist/server/plugin-host/core-plugins.js.map +1 -1
- package/dist/server/plugin-host/define-plugin.d.ts +20 -21
- package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
- package/dist/server/plugin-host/define-plugin.js +1 -8
- package/dist/server/plugin-host/define-plugin.js.map +1 -1
- package/dist/server/plugin-host/index.d.ts +2 -3
- package/dist/server/plugin-host/index.d.ts.map +1 -1
- package/dist/server/plugin-host/index.js +1 -2
- package/dist/server/plugin-host/index.js.map +1 -1
- package/dist/server/plugin-host/load-plugins.d.ts +6 -21
- package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
- package/dist/server/plugin-host/load-plugins.js +9 -4
- package/dist/server/plugin-host/load-plugins.js.map +1 -1
- package/dist/server/plugin-host/module-registry.d.ts +8 -13
- package/dist/server/plugin-host/module-registry.d.ts.map +1 -1
- package/dist/server/plugin-host/module-registry.js +2 -9
- package/dist/server/plugin-host/module-registry.js.map +1 -1
- package/dist/server/runtime/__tests__/create-app.test.js +8 -3
- package/dist/server/runtime/__tests__/create-app.test.js.map +1 -1
- package/dist/server/runtime/core-token-catalog.d.ts +106 -0
- package/dist/server/runtime/core-token-catalog.d.ts.map +1 -0
- package/dist/server/runtime/core-token-catalog.js +53 -0
- package/dist/server/runtime/core-token-catalog.js.map +1 -0
- package/dist/server/runtime/create-app.d.ts +3 -14
- package/dist/server/runtime/create-app.d.ts.map +1 -1
- package/dist/server/runtime/create-app.js +13 -17
- package/dist/server/runtime/create-app.js.map +1 -1
- package/dist/server/runtime/index.d.ts +2 -3
- package/dist/server/runtime/index.d.ts.map +1 -1
- package/dist/server/runtime/index.js +0 -2
- package/dist/server/runtime/index.js.map +1 -1
- package/dist/wallet/plugin.d.ts +107 -1
- package/dist/wallet/plugin.d.ts.map +1 -1
- package/dist/wallet/plugin.js +3 -3
- package/dist/wallet/plugin.js.map +1 -1
- package/generators/src/config.ts +1 -28
- package/generators/src/templates/adapter.hbs +3 -3
- package/generators/src/templates/contract.hbs +1 -1
- package/generators/src/templates/job-worker.hbs +3 -3
- package/generators/src/templates/module/plugin.hbs +4 -3
- package/generators/src/templates/plugin.hbs +3 -3
- package/package.json +1 -1
- package/dist/server/runtime/openapi.d.ts +0 -15
- package/dist/server/runtime/openapi.d.ts.map +0 -1
- package/dist/server/runtime/openapi.js +0 -26
- package/dist/server/runtime/openapi.js.map +0 -1
- 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 {
|
|
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
|
|
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
|
|
20
|
-
const
|
|
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('
|
|
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(
|
|
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,
|
|
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',
|
|
5
|
-
{ id: '
|
|
6
|
-
{ id: '
|
|
7
|
-
{ id: 'notifications',
|
|
8
|
-
{ id: '
|
|
9
|
-
{ id: '
|
|
10
|
-
{ id: '
|
|
11
|
-
{ id: '
|
|
12
|
-
{ id: '
|
|
13
|
-
{ id: '
|
|
14
|
-
{ id: '
|
|
15
|
-
{ id: '
|
|
16
|
-
{ id: '
|
|
17
|
-
{ id: '
|
|
18
|
-
{ id: '
|
|
19
|
-
{ id: '
|
|
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((
|
|
36
|
-
id,
|
|
37
|
-
path: nodeRequire.resolve(
|
|
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,
|
|
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
|
-
|
|
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<
|
|
12
|
-
has<
|
|
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
|
|
17
|
-
provide<T
|
|
18
|
-
provideSealed<T
|
|
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
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
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":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"define-plugin.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"define-plugin.js","sourceRoot":"","sources":["../../../src/server/plugin-host/define-plugin.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
export {
|
|
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 {
|
|
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,
|
|
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 {
|
|
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":"
|
|
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
|
|
6
|
-
id:
|
|
5
|
+
export type PluginEntry = {
|
|
6
|
+
id: string;
|
|
7
7
|
path: string;
|
|
8
|
-
dependsOn?: Dependencies;
|
|
9
8
|
kind?: 'module' | 'infra';
|
|
10
9
|
};
|
|
11
|
-
|
|
12
|
-
|
|
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
|
|
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
|
|
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":"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,
|
|
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
|
|
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":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
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
|
|
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
|
|
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
|
|
14
|
-
provideSealed: <T
|
|
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,
|
|
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.
|
|
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.
|
|
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":"
|
|
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
|
|
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
|
|
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":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACzF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,mFAAmF;AACnF,iFAAiF;AACjF,mFAAmF;AACnF,4EAA4E;AAC5E,MAAM,kBAAkB,GAAG,kDAAkD,CAAC;AAE9E,QAAQ,CAAC,uDAAuD,EAAE,GAAG,EAAE;IACrE,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"create-app.test.js","sourceRoot":"","sources":["../../../../src/server/runtime/__tests__/create-app.test.ts"],"names":[],"mappings":"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"}
|