@twin.org/engine-server-types 0.0.3-next.20 → 0.0.3-next.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/dist/es/components/authentication.js +22 -19
  2. package/dist/es/components/authentication.js.map +1 -1
  3. package/dist/es/components/authenticationAdmin.js +17 -15
  4. package/dist/es/components/authenticationAdmin.js.map +1 -1
  5. package/dist/es/components/hosting.js +12 -10
  6. package/dist/es/components/hosting.js.map +1 -1
  7. package/dist/es/components/information.js +12 -9
  8. package/dist/es/components/information.js.map +1 -1
  9. package/dist/es/components/mimeTypeProcessor.js +7 -7
  10. package/dist/es/components/mimeTypeProcessor.js.map +1 -1
  11. package/dist/es/components/restRouteProcessor.js +29 -33
  12. package/dist/es/components/restRouteProcessor.js.map +1 -1
  13. package/dist/es/components/socketRouteProcessor.js +26 -30
  14. package/dist/es/components/socketRouteProcessor.js.map +1 -1
  15. package/dist/types/components/authentication.d.ts +3 -7
  16. package/dist/types/components/authenticationAdmin.d.ts +3 -7
  17. package/dist/types/components/hosting.d.ts +3 -7
  18. package/dist/types/components/information.d.ts +3 -7
  19. package/dist/types/components/mimeTypeProcessor.d.ts +2 -7
  20. package/dist/types/components/restRouteProcessor.d.ts +2 -7
  21. package/dist/types/components/socketRouteProcessor.d.ts +2 -7
  22. package/docs/changelog.md +15 -0
  23. package/docs/reference/functions/initialiseAuthenticationAdminComponent.md +2 -2
  24. package/docs/reference/functions/initialiseAuthenticationComponent.md +2 -2
  25. package/docs/reference/functions/initialiseHostingComponent.md +2 -2
  26. package/docs/reference/functions/initialiseInformationComponent.md +2 -2
  27. package/docs/reference/functions/initialiseMimeTypeProcessorComponent.md +2 -2
  28. package/docs/reference/functions/initialiseRestRouteProcessorComponent.md +2 -2
  29. package/docs/reference/functions/initialiseSocketRouteProcessorComponent.md +2 -2
  30. package/package.json +3 -3
@@ -1,8 +1,10 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { EntityStorageAuthenticationRestClient } from "@twin.org/api-auth-entity-storage-rest-client";
2
4
  import { EntityStorageAuthenticationService, initSchema as initSchemaAuthEntityStorage } from "@twin.org/api-auth-entity-storage-service";
3
5
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
4
6
  import { ComponentFactory } from "@twin.org/core";
5
- import { initialiseEntityStorageConnector } from "@twin.org/engine-types";
7
+ import { EngineTypeHelper, initialiseEntityStorageConnector } from "@twin.org/engine-types";
6
8
  import { AuthenticationComponentType } from "../models/types/authenticationComponentType.js";
7
9
  /**
8
10
  * Initialise the authentication.
@@ -11,29 +13,30 @@ import { AuthenticationComponentType } from "../models/types/authenticationCompo
11
13
  * @param instanceConfig The instance config.
12
14
  * @returns The instance created and the factory for it.
13
15
  */
14
- export async function initialiseAuthenticationComponent(engineCore, context, instanceConfig) {
15
- let component;
16
- let instanceType;
16
+ export function initialiseAuthenticationComponent(engineCore, context, instanceConfig) {
17
+ let createComponent;
18
+ let instanceTypeName;
17
19
  if (instanceConfig.type === AuthenticationComponentType.EntityStorage) {
18
- initSchemaAuthEntityStorage();
19
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.userEntityStorageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
20
- ContextIdKeys.Node,
21
- ContextIdKeys.Tenant
22
- ]));
23
- component = new EntityStorageAuthenticationService({
24
- vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
25
- authenticationAdminServiceType: engineCore.getRegisteredInstanceType("authenticationAdminComponent"),
26
- ...instanceConfig.options
27
- });
28
- instanceType = "entity-storage-authentication-service";
20
+ createComponent = (createConfig) => {
21
+ initSchemaAuthEntityStorage();
22
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.userEntityStorageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
23
+ ContextIdKeys.Node,
24
+ ContextIdKeys.Tenant
25
+ ]));
26
+ return new EntityStorageAuthenticationService(EngineTypeHelper.mergeConfig({
27
+ vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
28
+ authenticationAdminServiceType: engineCore.getRegisteredInstanceType("authenticationAdminComponent")
29
+ }, createConfig.options));
30
+ };
31
+ instanceTypeName = "entity-storage-authentication-service";
29
32
  }
30
33
  else if (instanceConfig.type === AuthenticationComponentType.RestClient) {
31
- component = new EntityStorageAuthenticationRestClient(instanceConfig.options);
32
- instanceType = "entity-storage-authentication-rest-client";
34
+ createComponent = (createConfig) => new EntityStorageAuthenticationRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
35
+ instanceTypeName = "entity-storage-authentication-rest-client";
33
36
  }
34
37
  return {
35
- component,
36
- instanceType,
38
+ createComponent: createComponent,
39
+ instanceTypeName,
37
40
  factory: ComponentFactory
38
41
  };
39
42
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qCAAqC,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,EACN,kCAAkC,EAClC,UAAU,IAAI,2BAA2B,EAEzC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iCAAiC,CACtD,UAA4C,EAC5C,OAAgD,EAChD,cAA6C;IAE7C,IAAI,SAA+C,CAAC;IACpD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,aAAa,EAAE,CAAC;QACvE,2BAA2B,EAAE,CAAC;QAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,qBAAqB,wBAE7C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,kCAAkC,CAAC;YAClD,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YAC1E,8BAA8B,EAAE,UAAU,CAAC,yBAAyB,CACnE,8BAA8B,CAC9B;YACD,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,0CAAsD,CAAC;IACpE,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,UAAU,EAAE,CAAC;QAC3E,SAAS,GAAG,IAAI,qCAAqC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9E,YAAY,8CAAyD,CAAC;IACvE,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IAuthenticationComponent } from \"@twin.org/api-auth-entity-storage-models\";\nimport { EntityStorageAuthenticationRestClient } from \"@twin.org/api-auth-entity-storage-rest-client\";\nimport {\n\tEntityStorageAuthenticationService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationUser\n} from \"@twin.org/api-auth-entity-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AuthenticationComponentConfig } from \"../models/config/authenticationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationComponentType } from \"../models/types/authenticationComponentType.js\";\n\n/**\n * Initialise the authentication.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAuthenticationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IAuthenticationComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AuthenticationComponentType.EntityStorage) {\n\t\tinitSchemaAuthEntityStorage();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.userEntityStorageType,\n\t\t\tnameof<AuthenticationUser>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\n\t\tcomponent = new EntityStorageAuthenticationService({\n\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\tauthenticationAdminServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\"authenticationAdminComponent\"\n\t\t\t),\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(EntityStorageAuthenticationService);\n\t} else if (instanceConfig.type === AuthenticationComponentType.RestClient) {\n\t\tcomponent = new EntityStorageAuthenticationRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(EntityStorageAuthenticationRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"authentication.js","sourceRoot":"","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,qCAAqC,EAAE,MAAM,+CAA+C,CAAC;AACtG,OAAO,EACN,kCAAkC,EAClC,UAAU,IAAI,2BAA2B,EAEzC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI5F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,UAA4C,EAC5C,OAAgD,EAChD,cAA6C;IAE7C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,aAAa,EAAE,CAAC;QACvE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,2BAA2B,EAAE,CAAC;YAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,wBAE3C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YACF,OAAO,IAAI,kCAAkC,CAC5C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBAC1E,8BAA8B,EAAE,UAAU,CAAC,yBAAyB,CACnE,8BAA8B,CAC9B;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,0CAAsD,CAAC;IACxE,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,UAAU,EAAE,CAAC;QAC3E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,qCAAqC,CACxC,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,8CAAyD,CAAC;IAC3E,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationRestClient } from \"@twin.org/api-auth-entity-storage-rest-client\";\nimport {\n\tEntityStorageAuthenticationService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationUser\n} from \"@twin.org/api-auth-entity-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AuthenticationComponentConfig } from \"../models/config/authenticationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationComponentType } from \"../models/types/authenticationComponentType.js\";\n\n/**\n * Initialise the authentication.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaAuthEntityStorage();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType,\n\t\t\t\tnameof<AuthenticationUser>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t\t\t\tauthenticationAdminServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAdminComponent\"\n\t\t\t\t\t\t)\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(EntityStorageAuthenticationService);\n\t} else if (instanceConfig.type === AuthenticationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(EntityStorageAuthenticationRestClient);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,7 +1,9 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { EntityStorageAuthenticationAdminService, initSchema as initSchemaAuthEntityStorage } from "@twin.org/api-auth-entity-storage-service";
2
4
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
3
5
  import { ComponentFactory } from "@twin.org/core";
4
- import { initialiseEntityStorageConnector } from "@twin.org/engine-types";
6
+ import { EngineTypeHelper, initialiseEntityStorageConnector } from "@twin.org/engine-types";
5
7
  import { AuthenticationAdminComponentType } from "../models/types/authenticationAdminComponentType.js";
6
8
  /**
7
9
  * Initialise the authentication admin.
@@ -10,23 +12,23 @@ import { AuthenticationAdminComponentType } from "../models/types/authentication
10
12
  * @param instanceConfig The instance config.
11
13
  * @returns The instance created and the factory for it.
12
14
  */
13
- export async function initialiseAuthenticationAdminComponent(engineCore, context, instanceConfig) {
14
- let component;
15
- let instanceType;
15
+ export function initialiseAuthenticationAdminComponent(engineCore, context, instanceConfig) {
16
+ let createComponent;
17
+ let instanceTypeName;
16
18
  if (instanceConfig.type === AuthenticationAdminComponentType.EntityStorage) {
17
- initSchemaAuthEntityStorage();
18
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.userEntityStorageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
19
- ContextIdKeys.Node,
20
- ContextIdKeys.Tenant
21
- ]));
22
- component = new EntityStorageAuthenticationAdminService({
23
- ...instanceConfig.options
24
- });
25
- instanceType = "entity-storage-authentication-admin-service";
19
+ createComponent = (createConfig) => {
20
+ initSchemaAuthEntityStorage();
21
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.userEntityStorageType, "AuthenticationUser", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
22
+ ContextIdKeys.Node,
23
+ ContextIdKeys.Tenant
24
+ ]));
25
+ return new EntityStorageAuthenticationAdminService(EngineTypeHelper.mergeConfig(createConfig.options));
26
+ };
27
+ instanceTypeName = "entity-storage-authentication-admin-service";
26
28
  }
27
29
  return {
28
- component,
29
- instanceType,
30
+ createComponent: createComponent,
31
+ instanceTypeName,
30
32
  factory: ComponentFactory
31
33
  };
32
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAdmin.js","sourceRoot":"","sources":["../../../src/components/authenticationAdmin.ts"],"names":[],"mappings":"AAGA,OAAO,EACN,uCAAuC,EACvC,UAAU,IAAI,2BAA2B,EAEzC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAEvG;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,sCAAsC,CAC3D,UAA4C,EAC5C,OAAgD,EAChD,cAAkD;IAElD,IAAI,SAAoD,CAAC;IACzD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,aAAa,EAAE,CAAC;QAC5E,2BAA2B,EAAE,CAAC;QAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,qBAAqB,wBAE7C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,uCAAuC,CAAC;YACvD,GAAG,cAAc,CAAC,OAAO;SACzB,CAAC,CAAC;QACH,YAAY,gDAA2D,CAAC;IACzE,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IAuthenticationAdminComponent } from \"@twin.org/api-auth-entity-storage-models\";\nimport {\n\tEntityStorageAuthenticationAdminService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationUser\n} from \"@twin.org/api-auth-entity-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AuthenticationAdminComponentConfig } from \"../models/config/authenticationAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAdminComponentType } from \"../models/types/authenticationAdminComponentType.js\";\n\n/**\n * Initialise the authentication admin.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseAuthenticationAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAdminComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IAuthenticationAdminComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === AuthenticationAdminComponentType.EntityStorage) {\n\t\tinitSchemaAuthEntityStorage();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.userEntityStorageType,\n\t\t\tnameof<AuthenticationUser>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\n\t\tcomponent = new EntityStorageAuthenticationAdminService({\n\t\t\t...instanceConfig.options\n\t\t});\n\t\tinstanceType = nameofKebabCase(EntityStorageAuthenticationAdminService);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"authenticationAdmin.js","sourceRoot":"","sources":["../../../src/components/authenticationAdmin.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EACN,uCAAuC,EACvC,UAAU,IAAI,2BAA2B,EAEzC,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI5F,OAAO,EAAE,gCAAgC,EAAE,MAAM,qDAAqD,CAAC;AAEvG;;;;;;GAMG;AACH,MAAM,UAAU,sCAAsC,CACrD,UAA4C,EAC5C,OAAgD,EAChD,cAAkD;IAElD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,gCAAgC,CAAC,aAAa,EAAE,CAAC;QAC5E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,2BAA2B,EAAE,CAAC;YAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,wBAE3C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;gBACpE,aAAa,CAAC,IAAI;gBAClB,aAAa,CAAC,MAAM;aACpB,CAAC,CACF,CAAC;YACF,OAAO,IAAI,uCAAuC,CACjD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,gDAA2D,CAAC;IAC7E,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport {\n\tEntityStorageAuthenticationAdminService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationUser\n} from \"@twin.org/api-auth-entity-storage-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { AuthenticationAdminComponentConfig } from \"../models/config/authenticationAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAdminComponentType } from \"../models/types/authenticationAdminComponentType.js\";\n\n/**\n * Initialise the authentication admin.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseAuthenticationAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAdminComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaAuthEntityStorage();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType,\n\t\t\t\tnameof<AuthenticationUser>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(EntityStorageAuthenticationAdminService);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,5 +1,8 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { HostingService } from "@twin.org/api-service";
2
4
  import { ComponentFactory } from "@twin.org/core";
5
+ import { EngineTypeHelper } from "@twin.org/engine-types";
3
6
  import { HostingComponentType } from "../models/types/hostingComponentType.js";
4
7
  /**
5
8
  * Initialise the hosting component.
@@ -8,19 +11,18 @@ import { HostingComponentType } from "../models/types/hostingComponentType.js";
8
11
  * @param instanceConfig The instance config.
9
12
  * @returns The instance created and the factory for it.
10
13
  */
11
- export async function initialiseHostingComponent(engineCore, context, instanceConfig) {
12
- let component;
13
- let instanceType;
14
+ export function initialiseHostingComponent(engineCore, context, instanceConfig) {
15
+ let createComponent;
16
+ let instanceTypeName;
14
17
  if (instanceConfig.type === HostingComponentType.Service) {
15
- component = new HostingService({
16
- tenantAdminComponentType: engineCore.getRegisteredInstanceTypeOptional("tenantAdminComponent"),
17
- config: instanceConfig.options.config
18
- });
19
- instanceType = "hosting-service";
18
+ createComponent = (createConfig) => new HostingService(EngineTypeHelper.mergeConfig({
19
+ tenantAdminComponentType: engineCore.getRegisteredInstanceTypeOptional("tenantAdminComponent")
20
+ }, createConfig.options));
21
+ instanceTypeName = "hosting-service";
20
22
  }
21
23
  return {
22
- component,
23
- instanceType,
24
+ createComponent: createComponent,
25
+ instanceTypeName,
24
26
  factory: ComponentFactory
25
27
  };
26
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"hosting.js","sourceRoot":"","sources":["../../../src/components/hosting.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAKnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC/C,UAA4C,EAC5C,OAAgD,EAChD,cAAsC;IAEtC,IAAI,SAAwC,CAAC;IAC7C,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC1D,SAAS,GAAG,IAAI,cAAc,CAAC;YAC9B,wBAAwB,EACvB,UAAU,CAAC,iCAAiC,CAAC,sBAAsB,CAAC;YACrE,MAAM,EAAE,cAAc,CAAC,OAAO,CAAC,MAAM;SACrC,CAAC,CAAC;QACH,YAAY,oBAAkC,CAAC;IAChD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IHostingComponent } from \"@twin.org/api-models\";\nimport { HostingService } from \"@twin.org/api-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { HostingComponentConfig } from \"../models/config/hostingComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { HostingComponentType } from \"../models/types/hostingComponentType.js\";\n\n/**\n * Initialise the hosting component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseHostingComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: HostingComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IHostingComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === HostingComponentType.Service) {\n\t\tcomponent = new HostingService({\n\t\t\ttenantAdminComponentType:\n\t\t\t\tengineCore.getRegisteredInstanceTypeOptional(\"tenantAdminComponent\"),\n\t\t\tconfig: instanceConfig.options.config\n\t\t});\n\t\tinstanceType = nameofKebabCase(HostingService);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"hosting.js","sourceRoot":"","sources":["../../../src/components/hosting.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E;;;;;;GAMG;AACH,MAAM,UAAU,0BAA0B,CACzC,UAA4C,EAC5C,OAAgD,EAChD,cAAsC;IAEtC,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC1D,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,cAAc,CACjB,gBAAgB,CAAC,WAAW,CAC3B;YACC,wBAAwB,EACvB,UAAU,CAAC,iCAAiC,CAAC,sBAAsB,CAAC;SACrE,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,oBAAkC,CAAC;IACpD,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { HostingService } from \"@twin.org/api-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper } from \"@twin.org/engine-types\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { HostingComponentConfig } from \"../models/config/hostingComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { HostingComponentType } from \"../models/types/hostingComponentType.js\";\n\n/**\n * Initialise the hosting component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseHostingComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: HostingComponentConfig\n): EngineTypeInitialiserReturn<HostingComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === HostingComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew HostingService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\ttenantAdminComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceTypeOptional(\"tenantAdminComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(HostingService);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -1,6 +1,9 @@
1
+ // Copyright 2024 IOTA Stiftung.
2
+ // SPDX-License-Identifier: Apache-2.0.
1
3
  import { InformationRestClient } from "@twin.org/api-rest-client";
2
4
  import { InformationService } from "@twin.org/api-service";
3
5
  import { ComponentFactory } from "@twin.org/core";
6
+ import { EngineTypeHelper } from "@twin.org/engine-types";
4
7
  import { InformationComponentType } from "../models/types/informationComponentType.js";
5
8
  /**
6
9
  * Initialise the information component.
@@ -9,20 +12,20 @@ import { InformationComponentType } from "../models/types/informationComponentTy
9
12
  * @param instanceConfig The instance config.
10
13
  * @returns The instance created and the factory for it.
11
14
  */
12
- export async function initialiseInformationComponent(engineCore, context, instanceConfig) {
13
- let component;
14
- let instanceType;
15
+ export function initialiseInformationComponent(engineCore, context, instanceConfig) {
16
+ let createComponent;
17
+ let instanceTypeName;
15
18
  if (instanceConfig.type === InformationComponentType.Service) {
16
- component = new InformationService(instanceConfig.options);
17
- instanceType = "information-service";
19
+ createComponent = (createConfig) => new InformationService(EngineTypeHelper.mergeConfig(createConfig.options));
20
+ instanceTypeName = "information-service";
18
21
  }
19
22
  else if (instanceConfig.type === InformationComponentType.RestClient) {
20
- component = new InformationRestClient(instanceConfig.options);
21
- instanceType = "information-rest-client";
23
+ createComponent = (createConfig) => new InformationRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
24
+ instanceTypeName = "information-rest-client";
22
25
  }
23
26
  return {
24
- component,
25
- instanceType,
27
+ createComponent: createComponent,
28
+ instanceTypeName,
26
29
  factory: ComponentFactory
27
30
  };
28
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"information.js","sourceRoot":"","sources":["../../../src/components/information.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAKnE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CACnD,UAA4C,EAC5C,OAAgD,EAChD,cAA0C;IAE1C,IAAI,SAA4C,CAAC;IACjD,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC9D,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,YAAY,wBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,SAAS,GAAG,IAAI,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC9D,YAAY,4BAAyC,CAAC;IACvD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IInformationComponent } from \"@twin.org/api-models\";\nimport { InformationRestClient } from \"@twin.org/api-rest-client\";\nimport { InformationService } from \"@twin.org/api-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { InformationComponentConfig } from \"../models/config/informationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { InformationComponentType } from \"../models/types/informationComponentType.js\";\n\n/**\n * Initialise the information component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseInformationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: InformationComponentConfig\n): Promise<{ instanceType?: string; factory?: typeof ComponentFactory; component?: IComponent }> {\n\tlet component: IInformationComponent | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === InformationComponentType.Service) {\n\t\tcomponent = new InformationService(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(InformationService);\n\t} else if (instanceConfig.type === InformationComponentType.RestClient) {\n\t\tcomponent = new InformationRestClient(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(InformationRestClient);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"information.js","sourceRoot":"","sources":["../../../src/components/information.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,gBAAgB,CAAC;AAMnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAI1D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,UAAU,8BAA8B,CAC7C,UAA4C,EAC5C,OAAgD,EAChD,cAA0C;IAE1C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QAC9D,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,kBAAkB,CACrB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,wBAAsC,CAAC;IACxD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACxE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,qBAAqB,CACxB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,4BAAyC,CAAC;IAC3D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { InformationRestClient } from \"@twin.org/api-rest-client\";\nimport { InformationService } from \"@twin.org/api-service\";\nimport { ComponentFactory, type IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper } from \"@twin.org/engine-types\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { InformationComponentConfig } from \"../models/config/informationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { InformationComponentType } from \"../models/types/informationComponentType.js\";\n\n/**\n * Initialise the information component.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseInformationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: InformationComponentConfig\n): EngineTypeInitialiserReturn<InformationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === InformationComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew InformationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(InformationService);\n\t} else if (instanceConfig.type === InformationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew InformationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(InformationRestClient);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: ComponentFactory\n\t};\n}\n"]}
@@ -10,16 +10,16 @@ import { MimeTypeProcessorType } from "../models/types/mimeTypeProcessorType.js"
10
10
  * @param instanceConfig The instance config.
11
11
  * @returns The instance created and the factory for it.
12
12
  */
13
- export async function initialiseMimeTypeProcessorComponent(engineCore, context, instanceConfig) {
14
- let component;
15
- let instanceType;
13
+ export function initialiseMimeTypeProcessorComponent(engineCore, context, instanceConfig) {
14
+ let createComponent;
15
+ let instanceTypeName;
16
16
  if (instanceConfig.type === MimeTypeProcessorType.Jwt) {
17
- component = new JwtMimeTypeProcessor();
18
- instanceType = "jwt-mime-type-processor";
17
+ createComponent = (createConfig) => new JwtMimeTypeProcessor();
18
+ instanceTypeName = "jwt-mime-type-processor";
19
19
  }
20
20
  return {
21
- component,
22
- instanceType,
21
+ createComponent: createComponent,
22
+ instanceTypeName,
23
23
  factory: MimeTypeProcessorFactory
24
24
  };
25
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mimeTypeProcessor.js","sourceRoot":"","sources":["../../../src/components/mimeTypeProcessor.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAA2B,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAMhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACzD,UAA4C,EAC5C,OAAgD,EAChD,cAAuC;IAMvC,IAAI,SAAyC,CAAC;IAC9C,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;QACvD,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvC,YAAY,4BAAwC,CAAC;IACtD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,wBAAwB;KACjC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { MimeTypeProcessorFactory, type IMimeTypeProcessor } from \"@twin.org/api-models\";\nimport { JwtMimeTypeProcessor } from \"@twin.org/api-processors\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { MimeTypeProcessorConfig } from \"../models/config/mimeTypeProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { MimeTypeProcessorType } from \"../models/types/mimeTypeProcessorType.js\";\n\n/**\n * Initialise the mime type processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseMimeTypeProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: MimeTypeProcessorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof MimeTypeProcessorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IMimeTypeProcessor | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === MimeTypeProcessorType.Jwt) {\n\t\tcomponent = new JwtMimeTypeProcessor();\n\t\tinstanceType = nameofKebabCase(JwtMimeTypeProcessor);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: MimeTypeProcessorFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"mimeTypeProcessor.js","sourceRoot":"","sources":["../../../src/components/mimeTypeProcessor.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAUhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF;;;;;;GAMG;AACH,MAAM,UAAU,oCAAoC,CACnD,UAA4C,EAC5C,OAAgD,EAChD,cAAuC;IAEvC,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,qBAAqB,CAAC,GAAG,EAAE,CAAC;QACvD,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC;QACtF,gBAAgB,4BAAwC,CAAC;IAC1D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,wBAAwB;KACjC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { MimeTypeProcessorFactory } from \"@twin.org/api-models\";\nimport { JwtMimeTypeProcessor } from \"@twin.org/api-processors\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { nameofKebabCase } from \"@twin.org/nameof\";\nimport type { MimeTypeProcessorConfig } from \"../models/config/mimeTypeProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { MimeTypeProcessorType } from \"../models/types/mimeTypeProcessorType.js\";\n\n/**\n * Initialise the mime type processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseMimeTypeProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: MimeTypeProcessorConfig\n): EngineTypeInitialiserReturn<MimeTypeProcessorConfig, typeof MimeTypeProcessorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === MimeTypeProcessorType.Jwt) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => new JwtMimeTypeProcessor();\n\t\tinstanceTypeName = nameofKebabCase(JwtMimeTypeProcessor);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: MimeTypeProcessorFactory\n\t};\n}\n"]}
@@ -5,7 +5,7 @@ import { RestRouteProcessorFactory } from "@twin.org/api-models";
5
5
  import { LoggingProcessor, ContextIdProcessor, RestRouteProcessor, StaticContextIdProcessor } from "@twin.org/api-processors";
6
6
  import { initSchema as initSchemaTenantProcessor, TenantProcessor } from "@twin.org/api-tenant-processor";
7
7
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
8
- import { initialiseEntityStorageConnector } from "@twin.org/engine-types";
8
+ import { EngineTypeHelper, initialiseEntityStorageConnector } from "@twin.org/engine-types";
9
9
  import { RestRouteProcessorType } from "../models/types/restRouteProcessorType.js";
10
10
  /**
11
11
  * Initialise the rest route processor.
@@ -14,51 +14,47 @@ import { RestRouteProcessorType } from "../models/types/restRouteProcessorType.j
14
14
  * @param instanceConfig The instance config.
15
15
  * @returns The instance created and the factory for it.
16
16
  */
17
- export async function initialiseRestRouteProcessorComponent(engineCore, context, instanceConfig) {
18
- let component;
19
- let instanceType;
17
+ export function initialiseRestRouteProcessorComponent(engineCore, context, instanceConfig) {
18
+ let createComponent;
19
+ let instanceTypeName;
20
20
  if (instanceConfig.type === RestRouteProcessorType.AuthHeader) {
21
- component = new AuthHeaderProcessor({
22
- vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
23
- config: {
24
- ...instanceConfig.options?.config
25
- }
26
- });
27
- instanceType = "auth-header-processor";
21
+ createComponent = (createConfig) => new AuthHeaderProcessor(EngineTypeHelper.mergeConfig({
22
+ vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector")
23
+ }, createConfig.options));
24
+ instanceTypeName = "auth-header-processor";
28
25
  }
29
26
  else if (instanceConfig.type === RestRouteProcessorType.Logging) {
30
- component = new LoggingProcessor({
31
- loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
32
- config: {
33
- ...instanceConfig.options?.config
34
- }
35
- });
36
- instanceType = "logging-processor";
27
+ createComponent = (createConfig) => new LoggingProcessor(EngineTypeHelper.mergeConfig({
28
+ loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent")
29
+ }, createConfig.options));
30
+ instanceTypeName = "logging-processor";
37
31
  }
38
32
  else if (instanceConfig.type === RestRouteProcessorType.ContextId) {
39
- component = new ContextIdProcessor(instanceConfig.options);
40
- instanceType = "context-id-processor";
33
+ createComponent = (createConfig) => new ContextIdProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
34
+ instanceTypeName = "context-id-processor";
41
35
  }
42
36
  else if (instanceConfig.type === RestRouteProcessorType.StaticContextId) {
43
- component = new StaticContextIdProcessor(instanceConfig.options);
44
- instanceType = "static-context-id-processor";
37
+ createComponent = (createConfig) => new StaticContextIdProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
38
+ instanceTypeName = "static-context-id-processor";
45
39
  }
46
40
  else if (instanceConfig.type === RestRouteProcessorType.RestRoute) {
47
- component = new RestRouteProcessor(instanceConfig.options);
48
- instanceType = "rest-route-processor";
41
+ createComponent = (createConfig) => new RestRouteProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
42
+ instanceTypeName = "rest-route-processor";
49
43
  }
50
44
  else if (instanceConfig.type === RestRouteProcessorType.Tenant) {
51
- initSchemaTenantProcessor();
52
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.tenantEntityStorageType, "Tenant", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
53
- ContextIdKeys.Node,
54
- ContextIdKeys.Tenant
55
- ]));
56
- component = new TenantProcessor(instanceConfig.options);
57
- instanceType = "tenant-processor";
45
+ createComponent = (createConfig) => {
46
+ initSchemaTenantProcessor();
47
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.tenantEntityStorageType, "Tenant", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
48
+ ContextIdKeys.Node,
49
+ ContextIdKeys.Tenant
50
+ ]));
51
+ return new TenantProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
52
+ };
53
+ instanceTypeName = "tenant-processor";
58
54
  }
59
55
  return {
60
- component,
61
- instanceType,
56
+ createComponent: createComponent,
57
+ instanceTypeName,
62
58
  factory: RestRouteProcessorFactory
63
59
  };
64
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restRouteProcessor.js","sourceRoot":"","sources":["../../../src/components/restRouteProcessor.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,yBAAyB,EAA4B,MAAM,sBAAsB,CAAC;AAC3F,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,kBAAkB,EAClB,wBAAwB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,UAAU,IAAI,yBAAyB,EAEvC,eAAe,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEnF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qCAAqC,CAC1D,UAA4C,EAC5C,OAAgD,EAChD,cAAwC;IAMxC,IAAI,SAA0C,CAAC;IAC/C,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,UAAU,EAAE,CAAC;QAC/D,SAAS,GAAG,IAAI,mBAAmB,CAAC;YACnC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YAC1E,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM;aACjC;SACD,CAAC,CAAC;QACH,YAAY,0BAAuC,CAAC;IACrD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,OAAO,EAAE,CAAC;QACnE,SAAS,GAAG,IAAI,gBAAgB,CAAC;YAChC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;YAC9E,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM;aACjC;SACD,CAAC,CAAC;QACH,YAAY,sBAAoC,CAAC;IAClD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACrE,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,YAAY,yBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,eAAe,EAAE,CAAC;QAC3E,SAAS,GAAG,IAAI,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjE,YAAY,gCAA4C,CAAC;IAC1D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,SAAS,EAAE,CAAC;QACrE,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,YAAY,yBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,sBAAsB,CAAC,MAAM,EAAE,CAAC;QAClE,yBAAyB,EAAE,CAAC;QAC5B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,uBAAuB,YAE/C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;YACpE,aAAa,CAAC,IAAI;YAClB,aAAa,CAAC,MAAM;SACpB,CAAC,CACF,CAAC;QAEF,SAAS,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,YAAY,qBAAmC,CAAC;IACjD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,yBAAyB;KAClC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuthHeaderProcessor } from \"@twin.org/api-auth-entity-storage-service\";\nimport { RestRouteProcessorFactory, type IBaseRouteProcessor } from \"@twin.org/api-models\";\nimport {\n\tLoggingProcessor,\n\tContextIdProcessor,\n\tRestRouteProcessor,\n\tStaticContextIdProcessor\n} from \"@twin.org/api-processors\";\nimport {\n\tinitSchema as initSchemaTenantProcessor,\n\ttype Tenant,\n\tTenantProcessor\n} from \"@twin.org/api-tenant-processor\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { RestRouteProcessorConfig } from \"../models/config/restRouteProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { RestRouteProcessorType } from \"../models/types/restRouteProcessorType.js\";\n\n/**\n * Initialise the rest route processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseRestRouteProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: RestRouteProcessorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof RestRouteProcessorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IBaseRouteProcessor | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === RestRouteProcessorType.AuthHeader) {\n\t\tcomponent = new AuthHeaderProcessor({\n\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options?.config\n\t\t\t}\n\t\t});\n\t\tinstanceType = nameofKebabCase(AuthHeaderProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.Logging) {\n\t\tcomponent = new LoggingProcessor({\n\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options?.config\n\t\t\t}\n\t\t});\n\t\tinstanceType = nameofKebabCase(LoggingProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.ContextId) {\n\t\tcomponent = new ContextIdProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(ContextIdProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.StaticContextId) {\n\t\tcomponent = new StaticContextIdProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(StaticContextIdProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.RestRoute) {\n\t\tcomponent = new RestRouteProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(RestRouteProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.Tenant) {\n\t\tinitSchemaTenantProcessor();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.tenantEntityStorageType,\n\t\t\tnameof<Tenant>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\tContextIdKeys.Node,\n\t\t\t\tContextIdKeys.Tenant\n\t\t\t])\n\t\t);\n\n\t\tcomponent = new TenantProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(TenantProcessor);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: RestRouteProcessorFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"restRouteProcessor.js","sourceRoot":"","sources":["../../../src/components/restRouteProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuthHeaderProcessor } from \"@twin.org/api-auth-entity-storage-service\";\nimport { RestRouteProcessorFactory } from \"@twin.org/api-models\";\nimport {\n\tLoggingProcessor,\n\tContextIdProcessor,\n\tRestRouteProcessor,\n\tStaticContextIdProcessor\n} from \"@twin.org/api-processors\";\nimport {\n\tinitSchema as initSchemaTenantProcessor,\n\ttype Tenant,\n\tTenantProcessor\n} from \"@twin.org/api-tenant-processor\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { RestRouteProcessorConfig } from \"../models/config/restRouteProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { RestRouteProcessorType } from \"../models/types/restRouteProcessorType.js\";\n\n/**\n * Initialise the rest route processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseRestRouteProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: RestRouteProcessorConfig\n): EngineTypeInitialiserReturn<RestRouteProcessorConfig, typeof RestRouteProcessorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === RestRouteProcessorType.AuthHeader) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AuthHeaderProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AuthHeaderProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.Logging) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew LoggingProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(LoggingProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.ContextId) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew ContextIdProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(ContextIdProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.StaticContextId) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew StaticContextIdProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(StaticContextIdProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.RestRoute) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew RestRouteProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(RestRouteProcessor);\n\t} else if (instanceConfig.type === RestRouteProcessorType.Tenant) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaTenantProcessor();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.tenantEntityStorageType,\n\t\t\t\tnameof<Tenant>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\t\t\tContextIdKeys.Node,\n\t\t\t\t\tContextIdKeys.Tenant\n\t\t\t\t])\n\t\t\t);\n\t\t\treturn new TenantProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(TenantProcessor);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: RestRouteProcessorFactory\n\t};\n}\n"]}
@@ -5,7 +5,7 @@ import { SocketRouteProcessorFactory } from "@twin.org/api-models";
5
5
  import { LoggingProcessor, ContextIdProcessor, SocketRouteProcessor, StaticContextIdProcessor } from "@twin.org/api-processors";
6
6
  import { initSchema as initSchemaTenantProcessor, TenantProcessor } from "@twin.org/api-tenant-processor";
7
7
  import { ContextIdHelper, ContextIdKeys } from "@twin.org/context";
8
- import { initialiseEntityStorageConnector } from "@twin.org/engine-types";
8
+ import { EngineTypeHelper, initialiseEntityStorageConnector } from "@twin.org/engine-types";
9
9
  import { SocketRouteProcessorType } from "../models/types/socketRouteProcessorType.js";
10
10
  /**
11
11
  * Initialise the socket route processor.
@@ -14,48 +14,44 @@ import { SocketRouteProcessorType } from "../models/types/socketRouteProcessorTy
14
14
  * @param instanceConfig The instance config.
15
15
  * @returns The instance created and the factory for it.
16
16
  */
17
- export async function initialiseSocketRouteProcessorComponent(engineCore, context, instanceConfig) {
18
- let component;
19
- let instanceType;
17
+ export function initialiseSocketRouteProcessorComponent(engineCore, context, instanceConfig) {
18
+ let createComponent;
19
+ let instanceTypeName;
20
20
  if (instanceConfig.type === SocketRouteProcessorType.AuthHeader) {
21
- component = new AuthHeaderProcessor({
22
- vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
23
- config: {
24
- ...instanceConfig.options?.config
25
- }
26
- });
27
- instanceType = "auth-header-processor";
21
+ createComponent = (createConfig) => new AuthHeaderProcessor(EngineTypeHelper.mergeConfig({
22
+ vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector")
23
+ }, createConfig.options));
24
+ instanceTypeName = "auth-header-processor";
28
25
  }
29
26
  else if (instanceConfig.type === SocketRouteProcessorType.Logging) {
30
- component = new LoggingProcessor({
31
- loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent"),
32
- config: {
33
- ...instanceConfig.options?.config
34
- }
35
- });
36
- instanceType = "logging-processor";
27
+ createComponent = (createConfig) => new LoggingProcessor(EngineTypeHelper.mergeConfig({
28
+ loggingComponentType: engineCore.getRegisteredInstanceType("loggingComponent")
29
+ }, createConfig.options));
30
+ instanceTypeName = "logging-processor";
37
31
  }
38
32
  else if (instanceConfig.type === SocketRouteProcessorType.ContextId) {
39
- component = new ContextIdProcessor(instanceConfig.options);
40
- instanceType = "context-id-processor";
33
+ createComponent = (createConfig) => new ContextIdProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
34
+ instanceTypeName = "context-id-processor";
41
35
  }
42
36
  else if (instanceConfig.type === SocketRouteProcessorType.StaticContextId) {
43
- component = new StaticContextIdProcessor(instanceConfig.options);
44
- instanceType = "static-context-id-processor";
37
+ createComponent = (createConfig) => new StaticContextIdProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
38
+ instanceTypeName = "static-context-id-processor";
45
39
  }
46
40
  else if (instanceConfig.type === SocketRouteProcessorType.SocketRoute) {
47
- component = new SocketRouteProcessor(instanceConfig.options);
48
- instanceType = "socket-route-processor";
41
+ createComponent = (createConfig) => new SocketRouteProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
42
+ instanceTypeName = "socket-route-processor";
49
43
  }
50
44
  else if (instanceConfig.type === SocketRouteProcessorType.Tenant) {
51
- initSchemaTenantProcessor();
52
- initialiseEntityStorageConnector(engineCore, context, instanceConfig.options?.tenantEntityStorageType, "Tenant", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node]));
53
- component = new TenantProcessor(instanceConfig.options);
54
- instanceType = "tenant-processor";
45
+ createComponent = (createConfig) => {
46
+ initSchemaTenantProcessor();
47
+ initialiseEntityStorageConnector(engineCore, context, createConfig.options?.tenantEntityStorageType, "Tenant", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node]));
48
+ return new TenantProcessor(EngineTypeHelper.mergeConfig(createConfig.options));
49
+ };
50
+ instanceTypeName = "tenant-processor";
55
51
  }
56
52
  return {
57
- component,
58
- instanceType,
53
+ createComponent: createComponent,
54
+ instanceTypeName,
59
55
  factory: SocketRouteProcessorFactory
60
56
  };
61
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"socketRouteProcessor.js","sourceRoot":"","sources":["../../../src/components/socketRouteProcessor.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAChF,OAAO,EAAE,2BAA2B,EAA4B,MAAM,sBAAsB,CAAC;AAC7F,OAAO,EACN,gBAAgB,EAChB,kBAAkB,EAClB,oBAAoB,EACpB,wBAAwB,EACxB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACN,UAAU,IAAI,yBAAyB,EAEvC,eAAe,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAC;AAI1E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAEvF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,uCAAuC,CAC5D,UAA4C,EAC5C,OAAgD,EAChD,cAA0C;IAM1C,IAAI,SAA0C,CAAC;IAC/C,IAAI,YAAgC,CAAC;IAErC,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,UAAU,EAAE,CAAC;QACjE,SAAS,GAAG,IAAI,mBAAmB,CAAC;YACnC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;YAC1E,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM;aACjC;SACD,CAAC,CAAC;QACH,YAAY,0BAAuC,CAAC;IACrD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACrE,SAAS,GAAG,IAAI,gBAAgB,CAAC;YAChC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CAAC,kBAAkB,CAAC;YAC9E,MAAM,EAAE;gBACP,GAAG,cAAc,CAAC,OAAO,EAAE,MAAM;aACjC;SACD,CAAC,CAAC;QACH,YAAY,sBAAoC,CAAC;IAClD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,SAAS,EAAE,CAAC;QACvE,SAAS,GAAG,IAAI,kBAAkB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC3D,YAAY,yBAAsC,CAAC;IACpD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,eAAe,EAAE,CAAC;QAC7E,SAAS,GAAG,IAAI,wBAAwB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACjE,YAAY,gCAA4C,CAAC;IAC1D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,WAAW,EAAE,CAAC;QACzE,SAAS,GAAG,IAAI,oBAAoB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC7D,YAAY,2BAAwC,CAAC;IACtD,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,wBAAwB,CAAC,MAAM,EAAE,CAAC;QACpE,yBAAyB,EAAE,CAAC;QAC5B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,cAAc,CAAC,OAAO,EAAE,uBAAuB,YAE/C,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAC1F,CAAC;QAEF,SAAS,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACxD,YAAY,qBAAmC,CAAC;IACjD,CAAC;IAED,OAAO;QACN,SAAS;QACT,YAAY;QACZ,OAAO,EAAE,2BAA2B;KACpC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuthHeaderProcessor } from \"@twin.org/api-auth-entity-storage-service\";\nimport { SocketRouteProcessorFactory, type IBaseRouteProcessor } from \"@twin.org/api-models\";\nimport {\n\tLoggingProcessor,\n\tContextIdProcessor,\n\tSocketRouteProcessor,\n\tStaticContextIdProcessor\n} from \"@twin.org/api-processors\";\nimport {\n\tinitSchema as initSchemaTenantProcessor,\n\ttype Tenant,\n\tTenantProcessor\n} from \"@twin.org/api-tenant-processor\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type { IEngineCore, IEngineCoreContext } from \"@twin.org/engine-models\";\nimport { initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { SocketRouteProcessorConfig } from \"../models/config/socketRouteProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { SocketRouteProcessorType } from \"../models/types/socketRouteProcessorType.js\";\n\n/**\n * Initialise the socket route processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport async function initialiseSocketRouteProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: SocketRouteProcessorConfig\n): Promise<{\n\tinstanceType?: string;\n\tfactory?: typeof SocketRouteProcessorFactory;\n\tcomponent?: IComponent;\n}> {\n\tlet component: IBaseRouteProcessor | undefined;\n\tlet instanceType: string | undefined;\n\n\tif (instanceConfig.type === SocketRouteProcessorType.AuthHeader) {\n\t\tcomponent = new AuthHeaderProcessor({\n\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options?.config\n\t\t\t}\n\t\t});\n\t\tinstanceType = nameofKebabCase(AuthHeaderProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.Logging) {\n\t\tcomponent = new LoggingProcessor({\n\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\"),\n\t\t\tconfig: {\n\t\t\t\t...instanceConfig.options?.config\n\t\t\t}\n\t\t});\n\t\tinstanceType = nameofKebabCase(LoggingProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.ContextId) {\n\t\tcomponent = new ContextIdProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(ContextIdProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.StaticContextId) {\n\t\tcomponent = new StaticContextIdProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(StaticContextIdProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.SocketRoute) {\n\t\tcomponent = new SocketRouteProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(SocketRouteProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.Tenant) {\n\t\tinitSchemaTenantProcessor();\n\t\tinitialiseEntityStorageConnector(\n\t\t\tengineCore,\n\t\t\tcontext,\n\t\t\tinstanceConfig.options?.tenantEntityStorageType,\n\t\t\tnameof<Tenant>(),\n\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node])\n\t\t);\n\n\t\tcomponent = new TenantProcessor(instanceConfig.options);\n\t\tinstanceType = nameofKebabCase(TenantProcessor);\n\t}\n\n\treturn {\n\t\tcomponent,\n\t\tinstanceType,\n\t\tfactory: SocketRouteProcessorFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"socketRouteProcessor.js","sourceRoot":"","sources":["../../../src/components/socketRouteProcessor.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\nimport { AuthHeaderProcessor } from \"@twin.org/api-auth-entity-storage-service\";\nimport { SocketRouteProcessorFactory } from \"@twin.org/api-models\";\nimport {\n\tLoggingProcessor,\n\tContextIdProcessor,\n\tSocketRouteProcessor,\n\tStaticContextIdProcessor\n} from \"@twin.org/api-processors\";\nimport {\n\tinitSchema as initSchemaTenantProcessor,\n\ttype Tenant,\n\tTenantProcessor\n} from \"@twin.org/api-tenant-processor\";\nimport { ContextIdHelper, ContextIdKeys } from \"@twin.org/context\";\nimport type { IComponent } from \"@twin.org/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@twin.org/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@twin.org/engine-types\";\nimport { nameof, nameofKebabCase } from \"@twin.org/nameof\";\nimport type { SocketRouteProcessorConfig } from \"../models/config/socketRouteProcessorConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { SocketRouteProcessorType } from \"../models/types/socketRouteProcessorType.js\";\n\n/**\n * Initialise the socket route processor.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param instanceConfig The instance config.\n * @returns The instance created and the factory for it.\n */\nexport function initialiseSocketRouteProcessorComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: SocketRouteProcessorConfig\n): EngineTypeInitialiserReturn<SocketRouteProcessorConfig, typeof SocketRouteProcessorFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === SocketRouteProcessorType.AuthHeader) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew AuthHeaderProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(AuthHeaderProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.Logging) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew LoggingProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredInstanceType(\"loggingComponent\")\n\t\t\t\t\t},\n\t\t\t\t\tcreateConfig.options\n\t\t\t\t)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(LoggingProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.ContextId) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew ContextIdProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(ContextIdProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.StaticContextId) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew StaticContextIdProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(StaticContextIdProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.SocketRoute) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew SocketRouteProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = nameofKebabCase(SocketRouteProcessor);\n\t} else if (instanceConfig.type === SocketRouteProcessorType.Tenant) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitSchemaTenantProcessor();\n\t\t\tinitialiseEntityStorageConnector(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.tenantEntityStorageType,\n\t\t\t\tnameof<Tenant>(),\n\t\t\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [ContextIdKeys.Node])\n\t\t\t);\n\t\t\treturn new TenantProcessor(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = nameofKebabCase(TenantProcessor);\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: SocketRouteProcessorFactory\n\t};\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { ComponentFactory, type IComponent } from "@twin.org/core";
2
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
1
+ import { ComponentFactory } from "@twin.org/core";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
3
3
  import type { AuthenticationComponentConfig } from "../models/config/authenticationComponentConfig.js";
4
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
5
5
  /**
@@ -9,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
9
9
  * @param instanceConfig The instance config.
10
10
  * @returns The instance created and the factory for it.
11
11
  */
12
- export declare function initialiseAuthenticationComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: AuthenticationComponentConfig): Promise<{
13
- instanceType?: string;
14
- factory?: typeof ComponentFactory;
15
- component?: IComponent;
16
- }>;
12
+ export declare function initialiseAuthenticationComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: AuthenticationComponentConfig): EngineTypeInitialiserReturn<AuthenticationComponentConfig, typeof ComponentFactory>;
@@ -1,5 +1,5 @@
1
- import { ComponentFactory, type IComponent } from "@twin.org/core";
2
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
1
+ import { ComponentFactory } from "@twin.org/core";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
3
3
  import type { AuthenticationAdminComponentConfig } from "../models/config/authenticationAdminComponentConfig.js";
4
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
5
5
  /**
@@ -9,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
9
9
  * @param instanceConfig The instance config.
10
10
  * @returns The instance created and the factory for it.
11
11
  */
12
- export declare function initialiseAuthenticationAdminComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: AuthenticationAdminComponentConfig): Promise<{
13
- instanceType?: string;
14
- factory?: typeof ComponentFactory;
15
- component?: IComponent;
16
- }>;
12
+ export declare function initialiseAuthenticationAdminComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: AuthenticationAdminComponentConfig): EngineTypeInitialiserReturn<AuthenticationAdminComponentConfig, typeof ComponentFactory>;
@@ -1,5 +1,5 @@
1
- import { ComponentFactory, type IComponent } from "@twin.org/core";
2
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
1
+ import { ComponentFactory } from "@twin.org/core";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
3
3
  import type { HostingComponentConfig } from "../models/config/hostingComponentConfig.js";
4
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
5
5
  /**
@@ -9,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
9
9
  * @param instanceConfig The instance config.
10
10
  * @returns The instance created and the factory for it.
11
11
  */
12
- export declare function initialiseHostingComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: HostingComponentConfig): Promise<{
13
- instanceType?: string;
14
- factory?: typeof ComponentFactory;
15
- component?: IComponent;
16
- }>;
12
+ export declare function initialiseHostingComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: HostingComponentConfig): EngineTypeInitialiserReturn<HostingComponentConfig, typeof ComponentFactory>;
@@ -1,5 +1,5 @@
1
- import { ComponentFactory, type IComponent } from "@twin.org/core";
2
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
1
+ import { ComponentFactory } from "@twin.org/core";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
3
3
  import type { InformationComponentConfig } from "../models/config/informationComponentConfig.js";
4
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
5
5
  /**
@@ -9,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
9
9
  * @param instanceConfig The instance config.
10
10
  * @returns The instance created and the factory for it.
11
11
  */
12
- export declare function initialiseInformationComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: InformationComponentConfig): Promise<{
13
- instanceType?: string;
14
- factory?: typeof ComponentFactory;
15
- component?: IComponent;
16
- }>;
12
+ export declare function initialiseInformationComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: InformationComponentConfig): EngineTypeInitialiserReturn<InformationComponentConfig, typeof ComponentFactory>;
@@ -1,6 +1,5 @@
1
1
  import { MimeTypeProcessorFactory } from "@twin.org/api-models";
2
- import type { IComponent } from "@twin.org/core";
3
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
4
3
  import type { MimeTypeProcessorConfig } from "../models/config/mimeTypeProcessorConfig.js";
5
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
6
5
  /**
@@ -10,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
10
9
  * @param instanceConfig The instance config.
11
10
  * @returns The instance created and the factory for it.
12
11
  */
13
- export declare function initialiseMimeTypeProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: MimeTypeProcessorConfig): Promise<{
14
- instanceType?: string;
15
- factory?: typeof MimeTypeProcessorFactory;
16
- component?: IComponent;
17
- }>;
12
+ export declare function initialiseMimeTypeProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: MimeTypeProcessorConfig): EngineTypeInitialiserReturn<MimeTypeProcessorConfig, typeof MimeTypeProcessorFactory>;
@@ -1,6 +1,5 @@
1
1
  import { RestRouteProcessorFactory } from "@twin.org/api-models";
2
- import type { IComponent } from "@twin.org/core";
3
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
4
3
  import type { RestRouteProcessorConfig } from "../models/config/restRouteProcessorConfig.js";
5
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
6
5
  /**
@@ -10,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
10
9
  * @param instanceConfig The instance config.
11
10
  * @returns The instance created and the factory for it.
12
11
  */
13
- export declare function initialiseRestRouteProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: RestRouteProcessorConfig): Promise<{
14
- instanceType?: string;
15
- factory?: typeof RestRouteProcessorFactory;
16
- component?: IComponent;
17
- }>;
12
+ export declare function initialiseRestRouteProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: RestRouteProcessorConfig): EngineTypeInitialiserReturn<RestRouteProcessorConfig, typeof RestRouteProcessorFactory>;
@@ -1,6 +1,5 @@
1
1
  import { SocketRouteProcessorFactory } from "@twin.org/api-models";
2
- import type { IComponent } from "@twin.org/core";
3
- import type { IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@twin.org/engine-models";
4
3
  import type { SocketRouteProcessorConfig } from "../models/config/socketRouteProcessorConfig.js";
5
4
  import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
6
5
  /**
@@ -10,8 +9,4 @@ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
10
9
  * @param instanceConfig The instance config.
11
10
  * @returns The instance created and the factory for it.
12
11
  */
13
- export declare function initialiseSocketRouteProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: SocketRouteProcessorConfig): Promise<{
14
- instanceType?: string;
15
- factory?: typeof SocketRouteProcessorFactory;
16
- component?: IComponent;
17
- }>;
12
+ export declare function initialiseSocketRouteProcessorComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: SocketRouteProcessorConfig): EngineTypeInitialiserReturn<SocketRouteProcessorConfig, typeof SocketRouteProcessorFactory>;
package/docs/changelog.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # @twin.org/engine-server-types - Changelog
2
2
 
3
+ ## [0.0.3-next.21](https://github.com/twinfoundation/engine/compare/engine-server-types-v0.0.3-next.20...engine-server-types-v0.0.3-next.21) (2026-02-13)
4
+
5
+
6
+ ### Features
7
+
8
+ * multi instance component support ([#83](https://github.com/twinfoundation/engine/issues/83)) ([6012b50](https://github.com/twinfoundation/engine/commit/6012b50959df5af893f05516d42eea2e0800b31a))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @twin.org/engine-models bumped from 0.0.3-next.20 to 0.0.3-next.21
16
+ * @twin.org/engine-types bumped from 0.0.3-next.20 to 0.0.3-next.21
17
+
3
18
  ## [0.0.3-next.20](https://github.com/twinfoundation/engine/compare/engine-server-types-v0.0.3-next.19...engine-server-types-v0.0.3-next.20) (2026-02-06)
4
19
 
5
20
 
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseAuthenticationAdminComponent()
2
2
 
3
- > **initialiseAuthenticationAdminComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseAuthenticationAdminComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`AuthenticationAdminComponentConfig`](../type-aliases/AuthenticationAdminComponentConfig.md), `Factory`\<`IComponent`\>\>
4
4
 
5
5
  Initialise the authentication admin.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`AuthenticationAdminComponentConfig`](../type-aliases/AuthenticationAdminComponentConfig.md), `Factory`\<`IComponent`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseAuthenticationComponent()
2
2
 
3
- > **initialiseAuthenticationComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseAuthenticationComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`AuthenticationComponentConfig`](../type-aliases/AuthenticationComponentConfig.md), `Factory`\<`IComponent`\>\>
4
4
 
5
5
  Initialise the authentication.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`AuthenticationComponentConfig`](../type-aliases/AuthenticationComponentConfig.md), `Factory`\<`IComponent`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseHostingComponent()
2
2
 
3
- > **initialiseHostingComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseHostingComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`HostingComponentConfig`](../type-aliases/HostingComponentConfig.md), `Factory`\<`IComponent`\>\>
4
4
 
5
5
  Initialise the hosting component.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`HostingComponentConfig`](../type-aliases/HostingComponentConfig.md), `Factory`\<`IComponent`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseInformationComponent()
2
2
 
3
- > **initialiseInformationComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseInformationComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`InformationComponentConfig`](../type-aliases/InformationComponentConfig.md), `Factory`\<`IComponent`\>\>
4
4
 
5
5
  Initialise the information component.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IComponent`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`InformationComponentConfig`](../type-aliases/InformationComponentConfig.md), `Factory`\<`IComponent`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseMimeTypeProcessorComponent()
2
2
 
3
- > **initialiseMimeTypeProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IMimeTypeProcessor`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseMimeTypeProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`MimeTypeProcessorConfig`](../type-aliases/MimeTypeProcessorConfig.md), `Factory`\<`IMimeTypeProcessor`\>\>
4
4
 
5
5
  Initialise the mime type processor.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IMimeTypeProcessor`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`MimeTypeProcessorConfig`](../type-aliases/MimeTypeProcessorConfig.md), `Factory`\<`IMimeTypeProcessor`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseRestRouteProcessorComponent()
2
2
 
3
- > **initialiseRestRouteProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IRestRouteProcessor`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseRestRouteProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`RestRouteProcessorConfig`](../type-aliases/RestRouteProcessorConfig.md), `Factory`\<`IRestRouteProcessor`\>\>
4
4
 
5
5
  Initialise the rest route processor.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`IRestRouteProcessor`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`RestRouteProcessorConfig`](../type-aliases/RestRouteProcessorConfig.md), `Factory`\<`IRestRouteProcessor`\>\>
30
30
 
31
31
  The instance created and the factory for it.
@@ -1,6 +1,6 @@
1
1
  # Function: initialiseSocketRouteProcessorComponent()
2
2
 
3
- > **initialiseSocketRouteProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`ISocketRouteProcessor`\>; `component?`: `IComponent`; \}\>
3
+ > **initialiseSocketRouteProcessorComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`SocketRouteProcessorConfig`](../type-aliases/SocketRouteProcessorConfig.md), `Factory`\<`ISocketRouteProcessor`\>\>
4
4
 
5
5
  Initialise the socket route processor.
6
6
 
@@ -26,6 +26,6 @@ The instance config.
26
26
 
27
27
  ## Returns
28
28
 
29
- `Promise`\<\{ `instanceType?`: `string`; `factory?`: `Factory`\<`ISocketRouteProcessor`\>; `component?`: `IComponent`; \}\>
29
+ `EngineTypeInitialiserReturn`\<[`SocketRouteProcessorConfig`](../type-aliases/SocketRouteProcessorConfig.md), `Factory`\<`ISocketRouteProcessor`\>\>
30
30
 
31
31
  The instance created and the factory for it.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twin.org/engine-server-types",
3
- "version": "0.0.3-next.20",
3
+ "version": "0.0.3-next.21",
4
4
  "description": "Server types to use in an engine server.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,8 +25,8 @@
25
25
  "@twin.org/api-tenant-processor": "next",
26
26
  "@twin.org/context": "next",
27
27
  "@twin.org/core": "next",
28
- "@twin.org/engine-models": "0.0.3-next.20",
29
- "@twin.org/engine-types": "0.0.3-next.20",
28
+ "@twin.org/engine-models": "0.0.3-next.21",
29
+ "@twin.org/engine-types": "0.0.3-next.21",
30
30
  "@twin.org/entity": "next",
31
31
  "@twin.org/nameof": "next"
32
32
  },