@openora/core 0.4.1-canary.52 → 0.4.1-canary.53
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/dist/.tsbuildinfo +1 -1
- package/dist/admin-console/plugin.d.ts +1 -1
- package/dist/analytics/plugin.d.ts +1 -1
- package/dist/audit/plugin.d.ts +1 -1
- package/dist/casino/gaming/plugin.d.ts +1 -1
- package/dist/casino/lobby/plugin.d.ts +1 -1
- package/dist/cms/plugin.d.ts +1 -1
- package/dist/compliance/plugin.d.ts +1 -1
- package/dist/contracts/adapters/chat-system-writer.d.ts +1 -1
- package/dist/contracts/adapters/chat-system-writer.d.ts.map +1 -1
- package/dist/contracts/adapters/identity-reader.d.ts +1 -1
- package/dist/contracts/adapters/identity-reader.d.ts.map +1 -1
- package/dist/contracts/adapters/index.d.ts +1 -1
- package/dist/contracts/adapters/index.d.ts.map +1 -1
- package/dist/contracts/adapters/index.js.map +1 -1
- package/dist/contracts/adapters/token.d.ts +8 -5
- package/dist/contracts/adapters/token.d.ts.map +1 -1
- package/dist/contracts/adapters/token.js +4 -4
- package/dist/contracts/adapters/token.js.map +1 -1
- package/dist/contracts/adapters/wallet-reader.d.ts +1 -1
- package/dist/contracts/adapters/wallet-reader.d.ts.map +1 -1
- package/dist/contracts/schemas/platform-config.d.ts +1 -1
- package/dist/contracts/schemas/platform-config.d.ts.map +1 -1
- package/dist/engagement/chat/plugin.d.ts +1 -1
- package/dist/engagement/chat-commands/plugin.d.ts +1 -1
- package/dist/engagement/notifications/plugin.d.ts +1 -1
- package/dist/iam/plugin.d.ts +1 -1
- package/dist/pam/identity/plugin.d.ts +1 -1
- package/dist/pam/player-management/plugin.d.ts +1 -1
- package/dist/pam/player-note/plugin.d.ts +1 -1
- package/dist/pam/profile/plugin.d.ts +1 -1
- package/dist/pam/tag/plugin.d.ts +1 -1
- package/dist/server/kernel/container.d.ts +4 -2
- package/dist/server/kernel/container.d.ts.map +1 -1
- package/dist/server/kernel/container.js.map +1 -1
- package/dist/server/plugin-host/__tests__/load-plugins.test.d.ts +2 -0
- package/dist/server/plugin-host/__tests__/load-plugins.test.d.ts.map +1 -0
- package/dist/server/plugin-host/__tests__/load-plugins.test.js +22 -0
- package/dist/server/plugin-host/__tests__/load-plugins.test.js.map +1 -0
- package/dist/server/plugin-host/__tests__/typed-plugin.test.d.ts +2 -0
- package/dist/server/plugin-host/__tests__/typed-plugin.test.d.ts.map +1 -0
- package/dist/server/plugin-host/__tests__/typed-plugin.test.js +43 -0
- package/dist/server/plugin-host/__tests__/typed-plugin.test.js.map +1 -0
- package/dist/server/plugin-host/define-plugin.d.ts +17 -16
- package/dist/server/plugin-host/define-plugin.d.ts.map +1 -1
- package/dist/server/plugin-host/define-plugin.js +5 -0
- package/dist/server/plugin-host/define-plugin.js.map +1 -1
- package/dist/server/plugin-host/index.d.ts +3 -3
- package/dist/server/plugin-host/index.d.ts.map +1 -1
- package/dist/server/plugin-host/index.js +2 -2
- package/dist/server/plugin-host/index.js.map +1 -1
- package/dist/server/plugin-host/load-plugins.d.ts +23 -4
- package/dist/server/plugin-host/load-plugins.d.ts.map +1 -1
- package/dist/server/plugin-host/load-plugins.js +4 -1
- package/dist/server/plugin-host/load-plugins.js.map +1 -1
- package/dist/server/plugin-host/module-registry.d.ts +3 -3
- package/dist/server/plugin-host/module-registry.d.ts.map +1 -1
- package/dist/server/plugin-host/module-registry.js.map +1 -1
- package/dist/wallet/plugin.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: import("@openora/core/server").Plugin
|
|
1
|
+
declare const _default: import("@openora/core/server").Plugin<never, "admin-console", readonly ["identity", "wallet", "audit", "gaming", "iam"]>;
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=plugin.d.ts.map
|
package/dist/audit/plugin.d.ts
CHANGED
package/dist/cms/plugin.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const _default: import("@openora/core/server").Plugin
|
|
1
|
+
declare const _default: import("@openora/core/server").Plugin<never, "compliance", readonly ["player-management", "identity", "wallet", "gaming", "audit"]>;
|
|
2
2
|
export default _default;
|
|
3
3
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -8,5 +8,5 @@ export type ChatSystemWriter = {
|
|
|
8
8
|
tx?: unknown;
|
|
9
9
|
}): Promise<SystemChatMessage>;
|
|
10
10
|
};
|
|
11
|
-
export declare const CHAT_SYSTEM_WRITER: import("./token.js").Token<ChatSystemWriter>;
|
|
11
|
+
export declare const CHAT_SYSTEM_WRITER: import("./token.js").Token<ChatSystemWriter, string>;
|
|
12
12
|
//# sourceMappingURL=chat-system-writer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-system-writer.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/chat-system-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAErF,YAAY,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,eAAe,CAAC;QAC1B,EAAE,CAAC,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"chat-system-writer.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/chat-system-writer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAErF,YAAY,EAAE,iBAAiB,IAAI,iBAAiB,EAAE,CAAC;AAEvD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iBAAiB,CAAC,IAAI,EAAE;QACtB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,eAAe,CAAC;QAC1B,EAAE,CAAC,EAAE,OAAO,CAAC;KACd,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChC,CAAC;AAEF,eAAO,MAAM,kBAAkB,sDAAoD,CAAC"}
|
|
@@ -12,5 +12,5 @@ export type IdentityReader = {
|
|
|
12
12
|
/** Returns other player user ids that have authenticated from the same login IP. */
|
|
13
13
|
getPlayerUserIdsSharingLoginIp(userId: User['id'], ipAddress: string): Promise<User['id'][]>;
|
|
14
14
|
};
|
|
15
|
-
export declare const IDENTITY_READER: import("./token.js").Token<IdentityReader>;
|
|
15
|
+
export declare const IDENTITY_READER: import("./token.js").Token<IdentityReader, string>;
|
|
16
16
|
//# sourceMappingURL=identity-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-reader.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/identity-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,yHAAyH;IACzH,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzD,qHAAqH;IACrH,yBAAyB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,mGAAmG;IACnG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,6FAA6F;IAC7F,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC1E,oFAAoF;IACpF,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC9F,CAAC;AAEF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"identity-reader.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/identity-reader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9D,MAAM,MAAM,cAAc,GAAG;IAC3B,yHAAyH;IACzH,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC;IACzD,qHAAqH;IACrH,yBAAyB,CAAC,SAAS,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClE,mGAAmG;IACnG,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IACtE,6FAA6F;IAC7F,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IAC1E,oFAAoF;IACpF,8BAA8B,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;CAC9F,CAAC;AAEF,eAAO,MAAM,eAAe,oDAAiD,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { AnyToken, Token, SealedToken, ClientPageToken } from './token.js';
|
|
1
|
+
export type { AnyToken, Token, SealedToken, ClientPageToken, TokenCatalog, TokenValue, } from './token.js';
|
|
2
2
|
export { createToken, createSealedToken, createClientPageToken } from './token.js';
|
|
3
3
|
export type { EventEnvelope, MessageBrokerAdapter, BrokerHandler, SubscribeOptions, } from './broker.js';
|
|
4
4
|
export { MESSAGE_BROKER } from './broker.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/index.ts"],"names":[],"mappings":"AAKA,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/index.ts"],"names":[],"mappings":"AAKA,YAAY,EACV,QAAQ,EACR,KAAK,EACL,WAAW,EACX,eAAe,EACf,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAEnF,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,gBAAgB,GACjB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,YAAY,EACV,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,YAAY,EACV,qBAAqB,EACrB,oCAAoC,GACrC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAEvE,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,YAAY,EACV,eAAe,EACf,SAAS,EACT,eAAe,EACf,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,aAAa,GACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAElD,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAElF,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,eAAe,CAAC;AAEvB,YAAY,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,cAAc,GACf,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAElB,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAEzE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,YAAY,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAElE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAElF,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAEvF,YAAY,EAAE,oBAAoB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD,YAAY,EAAE,UAAU,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAElE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,YAAY,EACV,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAE5F,YAAY,EACV,UAAU,EACV,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,GACd,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE9F,YAAY,EACV,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,GAChB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAE/F,YAAY,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,YAAY,EACV,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD,YAAY,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/adapters/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,gFAAgF;AAChF,gFAAgF;AAChF,sFAAsF;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/contracts/adapters/index.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,gFAAgF;AAChF,gFAAgF;AAChF,sFAAsF;AAUtF,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAQnF,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAcvD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AASlD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AASnC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,EAC1B,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAazC,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAGzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAG7C,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAGlE,OAAO,EAAE,kBAAkB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AAGlF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAMvC,OAAO,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAGvF,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAS/C,OAAO,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AAS5F,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAS9F,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAS/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAOnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAG7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
export type AnyToken<T> = symbol & {
|
|
1
|
+
export type AnyToken<T, K extends string = string> = symbol & {
|
|
2
2
|
readonly __token?: T;
|
|
3
|
+
readonly __key?: K;
|
|
3
4
|
};
|
|
4
|
-
export type
|
|
5
|
+
export type TokenCatalog = Record<string, AnyToken<unknown>>;
|
|
6
|
+
export type TokenValue<T> = T extends AnyToken<infer Value> ? Value : never;
|
|
7
|
+
export type Token<T, K extends string = string> = AnyToken<T, K> & {
|
|
5
8
|
readonly __sealed?: never;
|
|
6
9
|
};
|
|
7
|
-
export declare function createToken<T>(
|
|
10
|
+
export declare function createToken<T, const K extends string = string>(key: K): Token<T, K>;
|
|
8
11
|
/**
|
|
9
12
|
* A sealed token represents a regulator-mandated service operators must NEVER
|
|
10
13
|
* override (self-exclusion enforcement, AML/SAR audit log writes, ledger writes,
|
|
@@ -22,10 +25,10 @@ export declare function createToken<T>(description: string): Token<T>;
|
|
|
22
25
|
* See `@openora/core/compliance` for the canonical list and the regulatory
|
|
23
26
|
* citation per token.
|
|
24
27
|
*/
|
|
25
|
-
export type SealedToken<T> = AnyToken<T> & {
|
|
28
|
+
export type SealedToken<T, K extends string = string> = AnyToken<T, K> & {
|
|
26
29
|
readonly __sealed: true;
|
|
27
30
|
};
|
|
28
|
-
export declare function createSealedToken<T>(
|
|
31
|
+
export declare function createSealedToken<T, const K extends string = string>(key: K): SealedToken<T, K>;
|
|
29
32
|
/**
|
|
30
33
|
* A page override token lets a plugin replace an entire client-side page
|
|
31
34
|
* via `ctx.provide(ADMIN_USERS_PAGE, MyImpl)`. The phantom type tracks the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/token.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,MAAM,GAAG;
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/token.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,MAAM,GAAG;IAC5D,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7D,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,CAAC,SAAS,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC;AAM5E,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC;CAC3B,CAAC;AAEF,wBAAgB,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAEnF;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG;IACvE,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC;CACzB,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAE/F;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IAAI,MAAM,GAAG;IAClD,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACrB,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC;CAC7B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,CAAC,GAAG,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAE1F"}
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// field only carries the resolved type so the composition container can infer
|
|
3
3
|
// what `container.get(TOKEN)` returns. No decorators, no reflection - the type
|
|
4
4
|
// travels with the symbol. See @openora/core/server `Container`.
|
|
5
|
-
export function createToken(
|
|
6
|
-
return Symbol(
|
|
5
|
+
export function createToken(key) {
|
|
6
|
+
return Symbol(key);
|
|
7
7
|
}
|
|
8
|
-
export function createSealedToken(
|
|
9
|
-
return Symbol(`sealed:${
|
|
8
|
+
export function createSealedToken(key) {
|
|
9
|
+
return Symbol(`sealed:${key}`);
|
|
10
10
|
}
|
|
11
11
|
export function createClientPageToken(description) {
|
|
12
12
|
return Symbol(`page:${description}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/contracts/adapters/token.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,iEAAiE;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../../src/contracts/adapters/token.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,+EAA+E;AAC/E,iEAAiE;AAsBjE,MAAM,UAAU,WAAW,CAAqC,GAAM;IACpE,OAAO,MAAM,CAAC,GAAG,CAAgB,CAAC;AACpC,CAAC;AAuBD,MAAM,UAAU,iBAAiB,CAAqC,GAAM;IAC1E,OAAO,MAAM,CAAC,UAAU,GAAG,EAAE,CAAsB,CAAC;AACtD,CAAC;AAgBD,MAAM,UAAU,qBAAqB,CAAc,WAAmB;IACpE,OAAO,MAAM,CAAC,QAAQ,WAAW,EAAE,CAAuB,CAAC;AAC7D,CAAC"}
|
|
@@ -12,5 +12,5 @@ export type WalletReader = {
|
|
|
12
12
|
*/
|
|
13
13
|
getWithdrawalCountsInWindow?(userIds: string[], windowDays: number): Promise<Map<string, number>>;
|
|
14
14
|
};
|
|
15
|
-
export declare const WALLET_READER: import("./token.js").Token<WalletReader>;
|
|
15
|
+
export declare const WALLET_READER: import("./token.js").Token<WalletReader, string>;
|
|
16
16
|
//# sourceMappingURL=wallet-reader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-reader.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/wallet-reader.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,4IAA4I;IAC5I,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,kHAAkH;IAClH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF;;;;;;OAMG;IACH,2BAA2B,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnG,CAAC;AAEF,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"wallet-reader.d.ts","sourceRoot":"","sources":["../../../src/contracts/adapters/wallet-reader.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,YAAY,GAAG;IACzB,4IAA4I;IAC5I,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,kHAAkH;IAClH,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAChF;;;;;;OAMG;IACH,2BAA2B,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACnG,CAAC;AAEF,eAAO,MAAM,aAAa,kDAA6C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,kBAAkB,wCAAoC,CAAC;AAEpE,eAAO,MAAM,WAAW;;;;;kBAUb,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;kBAcjB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;kBAa5B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8C7B,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAShF;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,cAAyC,CAAC;AAE9E,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"platform-config.d.ts","sourceRoot":"","sources":["../../../src/contracts/schemas/platform-config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB;;;;;;;;;;;;GAYG;AAEH,eAAO,MAAM,kBAAkB,wCAAoC,CAAC;AAEpE,eAAO,MAAM,WAAW;;;;;kBAUb,CAAC;AAEZ,eAAO,MAAM,eAAe;;;;;kBAcjB,CAAC;AAEZ,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;kBAa5B,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAE9E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBA8C7B,CAAC;AAEL,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEvE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,mBAAmB,GAAG,cAAc,CAShF;AAED,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,cAAyC,CAAC;AAE9E,+EAA+E;AAC/E,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAAiD,CAAC"}
|
package/dist/iam/plugin.d.ts
CHANGED
package/dist/pam/tag/plugin.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AnyToken } from '@openora/core/contracts';
|
|
1
|
+
import type { AnyToken, TokenCatalog, TokenValue } from '@openora/core/contracts';
|
|
2
2
|
export type Factory<T> = (c: Container) => T;
|
|
3
3
|
/**
|
|
4
4
|
* Functional DI container - no decorators, no reflection. `get()` resolves
|
|
@@ -10,13 +10,15 @@ export type Factory<T> = (c: Container) => T;
|
|
|
10
10
|
* `dispose()` runs every `onDispose` callback in REVERSE registration order -
|
|
11
11
|
* register dependencies before their dependents so teardown happens safely.
|
|
12
12
|
*/
|
|
13
|
-
export declare class Container {
|
|
13
|
+
export declare class Container<C extends TokenCatalog = never> {
|
|
14
14
|
private readonly factories;
|
|
15
15
|
private readonly instances;
|
|
16
16
|
private readonly resolving;
|
|
17
17
|
private readonly disposers;
|
|
18
18
|
register<T>(token: AnyToken<T>, factory: Factory<T>): void;
|
|
19
|
+
has<K extends keyof C>(token: C[K]): boolean;
|
|
19
20
|
has(token: AnyToken<unknown>): boolean;
|
|
21
|
+
get<K extends keyof C>(token: C[K]): TokenValue<C[K]>;
|
|
20
22
|
get<T>(token: AnyToken<T>): T;
|
|
21
23
|
onDispose(fn: () => void | Promise<void>): void;
|
|
22
24
|
dispose(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../../src/server/kernel/container.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAUlF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,SAAS,KAAK,CAAC,CAAC;AAE7C;;;;;;;;;GASG;AACH,qBAAa,SAAS,CAAC,CAAC,SAAS,YAAY,GAAG,KAAK;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8B;IACxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAyC;IAEnE,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI;IAK1D,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO;IAC5C,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,OAAO;IAKtC,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC;IAuB7B,SAAS,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIzC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAK/B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/server/kernel/container.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,OAAO,SAAS;IACH,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,SAAS,GAAsC,EAAE,CAAC;IAEnE,QAAQ,CAAI,KAAkB,EAAE,OAAmB;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAA2B,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;
|
|
1
|
+
{"version":3,"file":"container.js","sourceRoot":"","sources":["../../../src/server/kernel/container.ts"],"names":[],"mappings":"AAYA;;;;;;;;;GASG;AACH,MAAM,OAAO,SAAS;IACH,SAAS,GAAG,IAAI,GAAG,EAA4B,CAAC;IAChD,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,SAAS,GAAsC,EAAE,CAAC;IAEnE,QAAQ,CAAI,KAAkB,EAAE,OAAmB;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAA2B,CAAC,CAAC;QACvD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAID,GAAG,CAAC,KAAwB;QAC1B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAID,GAAG,CAAI,KAAkB;QACvB,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAM,CAAC;QACxC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,qCAAqC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC9F,CAAC;QACD,IAAI,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,wCAAwC,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,KAAK,CAAC,GAAG,CAC9E,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC1B,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAM,CAAC;QACpC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACpC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,SAAS,CAAC,EAA8B;QACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,KAAK,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;YAC/C,MAAM,EAAE,EAAE,CAAC;QACb,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-plugins.test.d.ts","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/load-plugins.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { topoSort } from '../load-plugins.js';
|
|
3
|
+
function plugin(id, dependsOn = []) {
|
|
4
|
+
return {
|
|
5
|
+
id,
|
|
6
|
+
dependsOn,
|
|
7
|
+
register() { },
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
describe('topoSort', () => {
|
|
11
|
+
it('places dependencies before dependents', () => {
|
|
12
|
+
const sorted = topoSort([plugin('feature', ['foundation']), plugin('foundation')]);
|
|
13
|
+
expect(sorted.map(({ id }) => id)).toEqual(['foundation', 'feature']);
|
|
14
|
+
});
|
|
15
|
+
it('rejects an unregistered dependency', () => {
|
|
16
|
+
expect(() => topoSort([plugin('feature', ['missing'])])).toThrow('Plugin "feature" depends on "missing" which is not registered');
|
|
17
|
+
});
|
|
18
|
+
it('rejects a dependency cycle', () => {
|
|
19
|
+
expect(() => topoSort([plugin('a', ['b']), plugin('b', ['c']), plugin('c', ['a'])])).toThrow('Circular plugin dependency: a -> b -> c -> a');
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
//# sourceMappingURL=load-plugins.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-plugins.test.js","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/load-plugins.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,SAAS,MAAM,CAAC,EAAU,EAAE,YAAsB,EAAE;IAClD,OAAO;QACL,EAAE;QACF,SAAS;QACT,QAAQ,KAAI,CAAC;KACd,CAAC;AACJ,CAAC;AAED,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;IACxB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEnF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC9D,+DAA+D,CAChE,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAC1F,8CAA8C,CAC/C,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-plugin.test.d.ts","sourceRoot":"","sources":["../../../../src/server/plugin-host/__tests__/typed-plugin.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest';
|
|
2
|
+
import { createToken } from '@openora/core/contracts';
|
|
3
|
+
import { Container } from '../../kernel/index.js';
|
|
4
|
+
import { defineExtensions, definePluginWithCatalog, ModuleRegistryImpl } from '../index.js';
|
|
5
|
+
const COUNT = createToken('COUNT');
|
|
6
|
+
const SEED = createToken('SEED');
|
|
7
|
+
const OTHER = createToken('OTHER');
|
|
8
|
+
const catalog = { COUNT, SEED };
|
|
9
|
+
const typedPlugin = definePluginWithCatalog()({
|
|
10
|
+
id: 'typed-plugin',
|
|
11
|
+
dependsOn: ['foundation'],
|
|
12
|
+
register(ctx) {
|
|
13
|
+
ctx.provide(COUNT, (container) => container.get(SEED) + 1);
|
|
14
|
+
// @ts-expect-error A token outside the catalog is not a valid provider.
|
|
15
|
+
ctx.provide(OTHER, () => 'not-registered');
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
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
|
+
]);
|
|
31
|
+
describe('typed plugin surface', () => {
|
|
32
|
+
it('keeps literal plugin metadata and resolves catalog services', () => {
|
|
33
|
+
const container = new Container();
|
|
34
|
+
const registry = new ModuleRegistryImpl(container);
|
|
35
|
+
container.register(SEED, () => 41);
|
|
36
|
+
void typedPlugin.register(registry);
|
|
37
|
+
expect(typedPluginId).toBe('typed-plugin');
|
|
38
|
+
expect(typedDependency).toEqual(['foundation']);
|
|
39
|
+
expect(validGraph[1]?.dependsOn).toEqual(['foundation']);
|
|
40
|
+
expect(container.get(COUNT)).toBe(42);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
//# sourceMappingURL=typed-plugin.test.js.map
|
|
@@ -0,0 +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,5 +1,5 @@
|
|
|
1
|
-
import type { Container
|
|
2
|
-
import type { EventEnvelope, SealedToken, Token, WorkerRegistration } from '@openora/core/contracts';
|
|
1
|
+
import type { Container } from '../kernel/index.js';
|
|
2
|
+
import type { EventEnvelope, SealedToken, Token, TokenCatalog, TokenValue, WorkerRegistration } from '@openora/core/contracts';
|
|
3
3
|
export type McpToolDefinition = {
|
|
4
4
|
name: string;
|
|
5
5
|
description: string;
|
|
@@ -7,10 +7,15 @@ export type McpToolDefinition = {
|
|
|
7
7
|
handler: (input: unknown) => unknown | Promise<unknown>;
|
|
8
8
|
};
|
|
9
9
|
export type RouterFactory = (c: Container) => unknown;
|
|
10
|
+
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;
|
|
13
|
+
onDispose(fn: () => void | Promise<void>): void;
|
|
14
|
+
};
|
|
10
15
|
export type EventHandler = (payload: unknown, envelope?: EventEnvelope) => void | Promise<void>;
|
|
11
|
-
export type ModuleRegistry = {
|
|
12
|
-
provide<T>(token: Token<T>, factory:
|
|
13
|
-
provideSealed<T>(token: SealedToken<T>, factory:
|
|
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;
|
|
14
19
|
routers: {
|
|
15
20
|
add(namespace: string, factory: RouterFactory): void;
|
|
16
21
|
getAll(): Map<string, RouterFactory>;
|
|
@@ -32,17 +37,13 @@ export type ModuleRegistry = {
|
|
|
32
37
|
getAll(): McpToolDefinition[];
|
|
33
38
|
};
|
|
34
39
|
};
|
|
35
|
-
export type
|
|
36
|
-
id:
|
|
37
|
-
dependsOn?:
|
|
38
|
-
requiresPorts?: Token<unknown>[];
|
|
39
|
-
register: (ctx: ModuleRegistry) => void | Promise<void>;
|
|
40
|
-
};
|
|
41
|
-
export type PluginDefinition = {
|
|
42
|
-
id: string;
|
|
43
|
-
dependsOn?: string[];
|
|
40
|
+
export type PluginDefinition<C extends TokenCatalog = never, Id extends string = string, Dependencies extends readonly string[] = string[]> = {
|
|
41
|
+
id: Id;
|
|
42
|
+
dependsOn?: Dependencies;
|
|
44
43
|
requiresPorts?: Token<unknown>[];
|
|
45
|
-
register: (ctx: ModuleRegistry) => void | Promise<void>;
|
|
44
|
+
register: (ctx: ModuleRegistry<C>) => void | Promise<void>;
|
|
46
45
|
};
|
|
47
|
-
export
|
|
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>;
|
|
48
49
|
//# 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,EAAE,SAAS,EAAE,
|
|
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":"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,7 +1,7 @@
|
|
|
1
|
-
export { definePlugin } from './define-plugin.js';
|
|
2
|
-
export type { Plugin, PluginDefinition, ModuleRegistry, McpToolDefinition, RouterFactory, EventHandler, } from './define-plugin.js';
|
|
1
|
+
export { definePlugin, definePluginWithCatalog } from './define-plugin.js';
|
|
2
|
+
export type { Plugin, PluginDefinition, ModuleRegistry, McpToolDefinition, RouterFactory, EventHandler, TypedContainer, } from './define-plugin.js';
|
|
3
3
|
export { ModuleRegistryImpl } from './module-registry.js';
|
|
4
|
-
export { loadPlugins } from './load-plugins.js';
|
|
4
|
+
export { defineExtensions, loadPlugins, topoSort } from './load-plugins.js';
|
|
5
5
|
export type { PluginEntry } from './load-plugins.js';
|
|
6
6
|
export { applyServiceManifest, parseServiceManifest } from './service-manifest.js';
|
|
7
7
|
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,MAAM,oBAAoB,CAAC;
|
|
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,6 +1,6 @@
|
|
|
1
|
-
export { definePlugin } from './define-plugin.js';
|
|
1
|
+
export { definePlugin, definePluginWithCatalog } from './define-plugin.js';
|
|
2
2
|
export { ModuleRegistryImpl } from './module-registry.js';
|
|
3
|
-
export { loadPlugins } from './load-plugins.js';
|
|
3
|
+
export { defineExtensions, loadPlugins, topoSort } from './load-plugins.js';
|
|
4
4
|
export { applyServiceManifest, parseServiceManifest } from './service-manifest.js';
|
|
5
5
|
export { loadExtensions } from './load-extensions.js';
|
|
6
6
|
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,MAAM,oBAAoB,CAAC;
|
|
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,12 +1,30 @@
|
|
|
1
1
|
import type { Container } from '../kernel/index.js';
|
|
2
|
+
import type { TokenCatalog } from '@openora/core/contracts';
|
|
2
3
|
import type { Plugin } from './define-plugin.js';
|
|
3
4
|
import { ModuleRegistryImpl } from './module-registry.js';
|
|
4
|
-
export type PluginEntry = {
|
|
5
|
-
id:
|
|
5
|
+
export type PluginEntry<Id extends string = string, Dependencies extends readonly string[] = readonly string[]> = {
|
|
6
|
+
id: Id;
|
|
6
7
|
path: string;
|
|
8
|
+
dependsOn?: Dependencies;
|
|
7
9
|
kind?: 'module' | 'infra';
|
|
8
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;
|
|
26
|
+
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>>;
|
|
10
28
|
/**
|
|
11
29
|
* Boot-time fail-fast for cross-domain ports (ADR-0024). A domain depends ONLY on
|
|
12
30
|
* the foundation and reaches another domain through a port token the other domain
|
|
@@ -17,5 +35,6 @@ export declare function loadPlugins(entries: PluginEntry[], container: Container
|
|
|
17
35
|
* registration and throw one actionable error naming the plugin, the port, and the
|
|
18
36
|
* likely-missing package.
|
|
19
37
|
*/
|
|
20
|
-
export declare function assertRequiredPorts(plugins: Plugin[], container: Container): void;
|
|
38
|
+
export declare function assertRequiredPorts<C extends TokenCatalog = never>(plugins: Plugin<C>[], container: Container): void;
|
|
39
|
+
export {};
|
|
21
40
|
//# 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,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,MAAM,WAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"load-plugins.d.ts","sourceRoot":"","sources":["../../../src/server/plugin-host/load-plugins.ts"],"names":[],"mappings":"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"}
|