@3sixty/engine-server-types 0.20.0-next.5 → 0.20.0-next.7

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 (31) hide show
  1. package/dist/es/components/authenticationAccount.js +2 -1
  2. package/dist/es/components/authenticationAccount.js.map +1 -1
  3. package/dist/es/components/authenticationAccountAdmin.js +2 -1
  4. package/dist/es/components/authenticationAccountAdmin.js.map +1 -1
  5. package/dist/es/components/authenticationProvider.js +6 -2
  6. package/dist/es/components/authenticationProvider.js.map +1 -1
  7. package/dist/es/components/feature.js +34 -0
  8. package/dist/es/components/feature.js.map +1 -0
  9. package/dist/es/components/organization.js +2 -1
  10. package/dist/es/components/organization.js.map +1 -1
  11. package/dist/es/index.js +3 -0
  12. package/dist/es/index.js.map +1 -1
  13. package/dist/es/models/IEngineServerConfig.js.map +1 -1
  14. package/dist/es/models/config/featureComponentConfig.js +2 -0
  15. package/dist/es/models/config/featureComponentConfig.js.map +1 -0
  16. package/dist/es/models/types/featureComponentType.js +17 -0
  17. package/dist/es/models/types/featureComponentType.js.map +1 -0
  18. package/dist/types/components/feature.d.ts +12 -0
  19. package/dist/types/index.d.ts +3 -0
  20. package/dist/types/models/IEngineServerConfig.d.ts +5 -0
  21. package/dist/types/models/config/featureComponentConfig.d.ts +13 -0
  22. package/dist/types/models/types/featureComponentType.d.ts +17 -0
  23. package/docs/changelog.md +30 -0
  24. package/docs/examples.md +24 -0
  25. package/docs/reference/functions/initialiseFeatureComponent.md +31 -0
  26. package/docs/reference/index.md +4 -0
  27. package/docs/reference/interfaces/IEngineServerConfig.md +6 -0
  28. package/docs/reference/type-aliases/FeatureComponentConfig.md +5 -0
  29. package/docs/reference/type-aliases/FeatureComponentType.md +5 -0
  30. package/docs/reference/variables/FeatureComponentType.md +19 -0
  31. package/package.json +4 -3
@@ -67,7 +67,8 @@ export function initialiseAuthenticationAccountComponent(engineCore, context, in
67
67
  return new EntityStorageAuthenticationAccountService(EngineTypeHelper.mergeConfig({
68
68
  authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
69
69
  identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
70
- authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
70
+ authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent"),
71
+ loggingComponentType: engineCore.getRegisteredSilencedType("logging", "EntityStorageAuthenticationAccountService")
71
72
  }, createConfig.options));
72
73
  };
73
74
  instanceTypeName = "entity-storage-authentication-account-service";
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAccount.js","sources":["../../../src/components/authenticationAccount.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport {\n\ttype AccountData,\n\tEntityStorageAuthenticationAccountService,\n\tinitSchema as initSchemaAuthAccount,\n\ttype Organization,\n\ttype OrganizationRequest\n} from \"@3sixty/api-auth-account-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@3sixty/context\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@3sixty/engine-types\";\n\nimport type { AuthenticationAccountComponentConfig } from \"../models/config/authenticationAccountComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountComponentType } from \"../models/types/authenticationAccountComponentType.js\";\n\n/**\n * Initialise the entity storage of the account data, shared by every component that uses it so the\n * schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAccountDataEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AccountData\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the requests to join an organization, shared by every component\n * that uses it so the schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationRequestEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"OrganizationRequest\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the registered organizations, inside the tenant partition like\n * the accounts that join them. Every component that checks an organization is registered\n * initialises it, so the check never runs against missing storage.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"Organization\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the authentication account 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 initialiseAuthenticationAccountComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\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 = \"entity-storage-authentication-account-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-rest-client\";\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
+ {"version":3,"file":"authenticationAccount.js","sources":["../../../src/components/authenticationAccount.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport {\n\ttype AccountData,\n\tEntityStorageAuthenticationAccountService,\n\tinitSchema as initSchemaAuthAccount,\n\ttype Organization,\n\ttype OrganizationRequest\n} from \"@3sixty/api-auth-account-service\";\nimport { ContextIdHelper, ContextIdKeys } from \"@3sixty/context\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper, initialiseEntityStorageConnector } from \"@3sixty/engine-types\";\n\nimport type { AuthenticationAccountComponentConfig } from \"../models/config/authenticationAccountComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountComponentType } from \"../models/types/authenticationAccountComponentType.js\";\n\n/**\n * Initialise the entity storage of the account data, shared by every component that uses it so the\n * schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAccountDataEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AccountData\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the requests to join an organization, shared by every component\n * that uses it so the schema and partitions match.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationRequestEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"OrganizationRequest\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the entity storage of the registered organizations, inside the tenant partition like\n * the accounts that join them. Every component that checks an organization is registered\n * initialises it, so the check never runs against missing storage.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseOrganizationEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthAccount();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"Organization\",\n\t\tContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [\n\t\t\tContextIdKeys.Node,\n\t\t\tContextIdKeys.Tenant\n\t\t])\n\t);\n}\n\n/**\n * Initialise the authentication account 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 initialiseAuthenticationAccountComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"EntityStorageAuthenticationAccountService\"\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 = \"entity-storage-authentication-account-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-rest-client\";\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"]}
@@ -28,7 +28,8 @@ export function initialiseAuthenticationAccountAdminComponent(engineCore, contex
28
28
  return new EntityStorageAuthenticationAccountAdminService(EngineTypeHelper.mergeConfig({
29
29
  authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
30
30
  identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
31
- authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
31
+ authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent"),
32
+ loggingComponentType: engineCore.getRegisteredSilencedType("logging", "EntityStorageAuthenticationAccountAdminService")
32
33
  }, createConfig.options));
33
34
  };
34
35
  instanceTypeName = "entity-storage-authentication-account-admin-service";
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAccountAdmin.js","sources":["../../../src/components/authenticationAccountAdmin.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,iDAAiD,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,8CAA8C,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uCAAuC,EAAE,MAAM,4DAA4D,CAAC;AAErH;;;;;;GAMG;AACH,MAAM,UAAU,6CAA6C,CAC5D,UAA4C,EAC5C,OAAgD,EAChD,cAAyD;IAEzD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,aAAa,EAAE,CAAC;QACnF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,4FAA4F;YAC5F,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,6EAA6E;YAC7E,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,8CAA8C,CACxD,gBAAgB,CAAC,WAAW,CAC3B;gBACC,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qDAAqD,CAAC;IAC1E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,UAAU,EAAE,CAAC;QACvF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,iDAAiD,CACpD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,yDAAyD,CAAC;IAC9E,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountAdminRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageAuthenticationAccountAdminService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { AuthenticationAccountAdminComponentConfig } from \"../models/config/authenticationAccountAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountAdminComponentType } from \"../models/types/authenticationAccountAdminComponentType.js\";\n\n/**\n * Initialise the authentication account admin 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 initialiseAuthenticationAccountAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountAdminComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\t// Removing an identity removes its pending requests, and an identity import completes them.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\t// The accounts are looked up to check one exists before its data is changed.\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\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 = \"entity-storage-authentication-account-admin-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountAdminComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountAdminRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-admin-rest-client\";\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
+ {"version":3,"file":"authenticationAccountAdmin.js","sources":["../../../src/components/authenticationAccountAdmin.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,iDAAiD,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,8CAA8C,EAAE,MAAM,kCAAkC,CAAC;AAClG,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,uCAAuC,EAAE,MAAM,4DAA4D,CAAC;AAErH;;;;;;GAMG;AACH,MAAM,UAAU,6CAA6C,CAC5D,UAA4C,EAC5C,OAAgD,EAChD,cAAyD;IAEzD,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,aAAa,EAAE,CAAC;QACnF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,4FAA4F;YAC5F,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,6EAA6E;YAC7E,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,8CAA8C,CACxD,gBAAgB,CAAC,WAAW,CAC3B;gBACC,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;gBACD,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,gDAAgD,CAChD;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qDAAqD,CAAC;IAC1E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,uCAAuC,CAAC,UAAU,EAAE,CAAC;QACvF,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,iDAAiD,CACpD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,yDAAyD,CAAC;IAC9E,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationAccountAdminRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageAuthenticationAccountAdminService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { AuthenticationAccountAdminComponentConfig } from \"../models/config/authenticationAccountAdminComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationAccountAdminComponentType } from \"../models/types/authenticationAccountAdminComponentType.js\";\n\n/**\n * Initialise the authentication account admin 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 initialiseAuthenticationAccountAdminComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationAccountAdminComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationAccountAdminComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationAccountAdminComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\t// Removing an identity removes its pending requests, and an identity import completes them.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\t// The accounts are looked up to check one exists before its data is changed.\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationAccountAdminService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"EntityStorageAuthenticationAccountAdminService\"\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 = \"entity-storage-authentication-account-admin-service\";\n\t} else if (instanceConfig.type === AuthenticationAccountAdminComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationAccountAdminRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-account-admin-rest-client\";\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"]}
@@ -25,11 +25,15 @@ export function initialiseAuthenticationProvider(engineCore, context, instanceCo
25
25
  instanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;
26
26
  }
27
27
  else if (instanceConfig.type === AuthenticationProviderType.Google) {
28
- createComponent = (createConfig) => new GoogleOAuthProviderConnector(createConfig.options);
28
+ createComponent = (createConfig) => new GoogleOAuthProviderConnector(EngineTypeHelper.mergeConfig({
29
+ loggingComponentType: engineCore.getRegisteredSilencedType("logging", "GoogleOAuthProviderConnector")
30
+ }, createConfig.options));
29
31
  instanceTypeName = GoogleOAuthProviderConnector.NAMESPACE;
30
32
  }
31
33
  else if (instanceConfig.type === AuthenticationProviderType.Microsoft) {
32
- createComponent = (createConfig) => new MicrosoftOAuthProviderConnector(createConfig.options);
34
+ createComponent = (createConfig) => new MicrosoftOAuthProviderConnector(EngineTypeHelper.mergeConfig({
35
+ loggingComponentType: engineCore.getRegisteredSilencedType("logging", "MicrosoftOAuthProviderConnector")
36
+ }, createConfig.options));
33
37
  instanceTypeName = MicrosoftOAuthProviderConnector.NAMESPACE;
34
38
  }
35
39
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationProvider.js","sources":["../../../src/components/authenticationProvider.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,4CAA4C,EAAE,MAAM,2CAA2C,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAO7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC/C,UAA4C,EAC5C,OAAgD,EAChD,cAA4C;IAE5C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,aAAa,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,4CAA4C,CACtD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,4CAA4C,CAAC,SAAS,CAAC;IAC3E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,MAAM,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,4BAA4B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACxD,gBAAgB,GAAG,4BAA4B,CAAC,SAAS,CAAC;IAC3D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,SAAS,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,+BAA+B,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAC3D,gBAAgB,GAAG,+BAA+B,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,6BAA6B;KACtC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationProviderConnector } from \"@3sixty/api-auth-connector-entity-storage\";\nimport { AuthenticationProviderFactory } from \"@3sixty/api-auth-models\";\nimport { GoogleOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-google\";\nimport { MicrosoftOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-microsoft\";\nimport type { IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport type { AuthenticationProviderConfig } from \"../models/config/authenticationProviderConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationProviderType } from \"../models/types/authenticationProviderType.js\";\n\n/**\n * Initialise an authentication provider, registered under its authentication provider id.\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 initialiseAuthenticationProvider(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationProviderConfig\n): EngineTypeInitialiserReturn<AuthenticationProviderConfig, typeof AuthenticationProviderFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationProviderType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Google) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew GoogleOAuthProviderConnector(createConfig.options);\n\t\tinstanceTypeName = GoogleOAuthProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Microsoft) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew MicrosoftOAuthProviderConnector(createConfig.options);\n\t\tinstanceTypeName = MicrosoftOAuthProviderConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: AuthenticationProviderFactory\n\t};\n}\n"]}
1
+ {"version":3,"file":"authenticationProvider.js","sources":["../../../src/components/authenticationProvider.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,4CAA4C,EAAE,MAAM,2CAA2C,CAAC;AACzG,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,4BAA4B,EAAE,MAAM,yCAAyC,CAAC;AACvF,OAAO,EAAE,+BAA+B,EAAE,MAAM,4CAA4C,CAAC;AAO7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EAAE,yCAAyC,EAAE,MAAM,qBAAqB,CAAC;AAGhF,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;AAE3F;;;;;;GAMG;AACH,MAAM,UAAU,gCAAgC,CAC/C,UAA4C,EAC5C,OAAgD,EAChD,cAA4C;IAE5C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,aAAa,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,OAAO,IAAI,4CAA4C,CACtD,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,4CAA4C,CAAC,SAAS,CAAC;IAC3E,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,MAAM,EAAE,CAAC;QACtE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,4BAA4B,CAC/B,gBAAgB,CAAC,WAAW,CAC3B;YACC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,8BAA8B,CAC9B;SACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,GAAG,4BAA4B,CAAC,SAAS,CAAC;IAC3D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,0BAA0B,CAAC,SAAS,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,+BAA+B,CAClC,gBAAgB,CAAC,WAAW,CAC3B;YACC,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,iCAAiC,CACjC;SACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,GAAG,+BAA+B,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,6BAA6B;KACtC,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationProviderConnector } from \"@3sixty/api-auth-connector-entity-storage\";\nimport { AuthenticationProviderFactory } from \"@3sixty/api-auth-models\";\nimport { GoogleOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-google\";\nimport { MicrosoftOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-microsoft\";\nimport type { IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport { initialiseAuthenticationUserEntityStorage } from \"./authentication.js\";\nimport type { AuthenticationProviderConfig } from \"../models/config/authenticationProviderConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationProviderType } from \"../models/types/authenticationProviderType.js\";\n\n/**\n * Initialise an authentication provider, registered under its authentication provider id.\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 initialiseAuthenticationProvider(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationProviderConfig\n): EngineTypeInitialiserReturn<AuthenticationProviderConfig, typeof AuthenticationProviderFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationProviderType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseAuthenticationUserEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.userEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Google) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew GoogleOAuthProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"GoogleOAuthProviderConnector\"\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\tinstanceTypeName = GoogleOAuthProviderConnector.NAMESPACE;\n\t} else if (instanceConfig.type === AuthenticationProviderType.Microsoft) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew MicrosoftOAuthProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"MicrosoftOAuthProviderConnector\"\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\tinstanceTypeName = MicrosoftOAuthProviderConnector.NAMESPACE;\n\t}\n\n\treturn {\n\t\tcreateComponent: createComponent as (createConfig: typeof instanceConfig) => IComponent,\n\t\tinstanceTypeName,\n\t\tfactory: AuthenticationProviderFactory\n\t};\n}\n"]}
@@ -0,0 +1,34 @@
1
+ // Copyright 2026 3Sixty Trade Ltd.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ import { FeatureRestClient } from "@3sixty/api-auth-rest-client";
4
+ import { FeatureService } from "@3sixty/api-auth-service";
5
+ import { ComponentFactory } from "@3sixty/core";
6
+ import { EngineTypeHelper } from "@3sixty/engine-types";
7
+ import { FeatureComponentType } from "../models/types/featureComponentType.js";
8
+ /**
9
+ * Initialise the feature component.
10
+ * @param engineCore The engine core.
11
+ * @param context The context for the engine.
12
+ * @param instanceConfig The instance config.
13
+ * @returns The instance created and the factory for it.
14
+ */
15
+ export function initialiseFeatureComponent(engineCore, context, instanceConfig) {
16
+ let createComponent;
17
+ let instanceTypeName;
18
+ if (instanceConfig.type === FeatureComponentType.Service) {
19
+ createComponent = (createConfig) => new FeatureService(EngineTypeHelper.mergeConfig({
20
+ authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent")
21
+ }, createConfig.options));
22
+ instanceTypeName = "feature-service";
23
+ }
24
+ else if (instanceConfig.type === FeatureComponentType.RestClient) {
25
+ createComponent = (createConfig) => new FeatureRestClient(EngineTypeHelper.mergeConfig(createConfig.options));
26
+ instanceTypeName = "feature-rest-client";
27
+ }
28
+ return {
29
+ createComponent: createComponent,
30
+ instanceTypeName,
31
+ factory: ComponentFactory
32
+ };
33
+ }
34
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"feature.js","sources":["../../../src/components/feature.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAIxD,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,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;SAC/D,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,gBAAgB,GAAG,iBAAiB,CAAC;IACtC,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,oBAAoB,CAAC,UAAU,EAAE,CAAC;QACpE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,iBAAiB,CACpB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,qBAAqB,CAAC;IAC1C,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { FeatureRestClient } from \"@3sixty/api-auth-rest-client\";\nimport { FeatureService } from \"@3sixty/api-auth-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport type { FeatureComponentConfig } from \"../models/config/featureComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { FeatureComponentType } from \"../models/types/featureComponentType.js\";\n\n/**\n * Initialise the feature 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 initialiseFeatureComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: FeatureComponentConfig\n): EngineTypeInitialiserReturn<FeatureComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === FeatureComponentType.Service) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew FeatureService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\")\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 = \"feature-service\";\n\t} else if (instanceConfig.type === FeatureComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew FeatureRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"feature-rest-client\";\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"]}
@@ -25,7 +25,8 @@ export function initialiseOrganizationComponent(engineCore, context, instanceCon
25
25
  return new EntityStorageOrganizationService(EngineTypeHelper.mergeConfig({
26
26
  identityComponentType: engineCore.getRegisteredInstanceType("identityComponent"),
27
27
  authorizationComponentType: engineCore.getRegisteredInstanceType("authorizationComponent"),
28
- authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent")
28
+ authenticationRateServiceType: engineCore.getRegisteredInstanceType("authenticationRateComponent"),
29
+ loggingComponentType: engineCore.getRegisteredSilencedType("logging", "EntityStorageOrganizationService")
29
30
  }, createConfig.options));
30
31
  };
31
32
  instanceTypeName = "entity-storage-organization-service";
@@ -1 +1 @@
1
- {"version":3,"file":"organization.js","sources":["../../../src/components/organization.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC9C,UAA4C,EAC5C,OAAgD,EAChD,cAA2C;IAE3C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,aAAa,EAAE,CAAC;QACrE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,gFAAgF;YAChF,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,OAAO,IAAI,gCAAgC,CAC1C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qCAAqC,CAAC;IAC1D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,UAAU,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,sBAAsB,CACzB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,0BAA0B,CAAC;IAC/C,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { OrganizationRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageOrganizationService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { OrganizationComponentConfig } from \"../models/config/organizationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { OrganizationComponentType } from \"../models/types/organizationComponentType.js\";\n\n/**\n * Initialise the organization 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 initialiseOrganizationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: OrganizationComponentConfig\n): EngineTypeInitialiserReturn<OrganizationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === OrganizationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\t// The pending requests to join an organization are rejected when it is removed.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageOrganizationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\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 = \"entity-storage-organization-service\";\n\t} else if (instanceConfig.type === OrganizationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew OrganizationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"organization-rest-client\";\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
+ {"version":3,"file":"organization.js","sources":["../../../src/components/organization.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,gCAAgC,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,OAAO,EACN,kCAAkC,EAClC,mCAAmC,EACnC,0CAA0C,EAC1C,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AAEzF;;;;;;GAMG;AACH,MAAM,UAAU,+BAA+B,CAC9C,UAA4C,EAC5C,OAAgD,EAChD,cAA2C;IAE3C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,aAAa,EAAE,CAAC;QACrE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,mCAAmC,CAClC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,6BAA6B,CACnD,CAAC;YACF,kCAAkC,CACjC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,4BAA4B,CAClD,CAAC;YACF,gFAAgF;YAChF,0CAA0C,CACzC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,oCAAoC,CAC1D,CAAC;YACF,OAAO,IAAI,gCAAgC,CAC1C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;gBAChF,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;gBACD,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,kCAAkC,CAClC;aACD,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,qCAAqC,CAAC;IAC1D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,yBAAyB,CAAC,UAAU,EAAE,CAAC;QACzE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,sBAAsB,CACzB,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,0BAA0B,CAAC;IAC/C,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { OrganizationRestClient } from \"@3sixty/api-auth-account-rest-client\";\nimport { EntityStorageOrganizationService } from \"@3sixty/api-auth-account-service\";\nimport { ComponentFactory, type IComponent } from \"@3sixty/core\";\nimport type {\n\tEngineTypeInitialiserReturn,\n\tIEngineCore,\n\tIEngineCoreContext\n} from \"@3sixty/engine-models\";\nimport { EngineTypeHelper } from \"@3sixty/engine-types\";\n\nimport {\n\tinitialiseAccountDataEntityStorage,\n\tinitialiseOrganizationEntityStorage,\n\tinitialiseOrganizationRequestEntityStorage\n} from \"./authenticationAccount.js\";\nimport type { OrganizationComponentConfig } from \"../models/config/organizationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { OrganizationComponentType } from \"../models/types/organizationComponentType.js\";\n\n/**\n * Initialise the organization 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 initialiseOrganizationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: OrganizationComponentConfig\n): EngineTypeInitialiserReturn<OrganizationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === OrganizationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\tinitialiseOrganizationEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationEntityStorageType\n\t\t\t);\n\t\t\tinitialiseAccountDataEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.accountDataEntityStorageType\n\t\t\t);\n\t\t\t// The pending requests to join an organization are rejected when it is removed.\n\t\t\tinitialiseOrganizationRequestEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.organizationRequestEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageOrganizationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tidentityComponentType: engineCore.getRegisteredInstanceType(\"identityComponent\"),\n\t\t\t\t\t\tauthorizationComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"authorizationComponent\"),\n\t\t\t\t\t\tauthenticationRateServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationRateComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tloggingComponentType: engineCore.getRegisteredSilencedType(\n\t\t\t\t\t\t\t\"logging\",\n\t\t\t\t\t\t\t\"EntityStorageOrganizationService\"\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 = \"entity-storage-organization-service\";\n\t} else if (instanceConfig.type === OrganizationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew OrganizationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"organization-rest-client\";\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"]}
package/dist/es/index.js CHANGED
@@ -8,6 +8,7 @@ export * from "./components/authenticationAdmin.js";
8
8
  export * from "./components/authenticationAudit.js";
9
9
  export * from "./components/authenticationProvider.js";
10
10
  export * from "./components/authenticationRate.js";
11
+ export * from "./components/feature.js";
11
12
  export * from "./components/information.js";
12
13
  export * from "./components/mimeTypeProcessor.js";
13
14
  export * from "./components/oauth.js";
@@ -22,6 +23,7 @@ export * from "./models/config/authenticationAuditComponentConfig.js";
22
23
  export * from "./models/config/authenticationComponentConfig.js";
23
24
  export * from "./models/config/authenticationProviderConfig.js";
24
25
  export * from "./models/config/authenticationRateComponentConfig.js";
26
+ export * from "./models/config/featureComponentConfig.js";
25
27
  export * from "./models/config/informationComponentConfig.js";
26
28
  export * from "./models/config/mimeTypeProcessorConfig.js";
27
29
  export * from "./models/config/oauthComponentConfig.js";
@@ -37,6 +39,7 @@ export * from "./models/types/authenticationAuditComponentType.js";
37
39
  export * from "./models/types/authenticationComponentType.js";
38
40
  export * from "./models/types/authenticationProviderType.js";
39
41
  export * from "./models/types/authenticationRateComponentType.js";
42
+ export * from "./models/types/featureComponentType.js";
40
43
  export * from "./models/types/informationComponentType.js";
41
44
  export * from "./models/types/mimeTypeProcessorType.js";
42
45
  export * from "./models/types/oauthComponentType.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iDAAiD,CAAC;AAChE,cAAc,sDAAsD,CAAC;AACrE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mDAAmD,CAAC;AAClE,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./components/authentication.js\";\nexport * from \"./components/authenticationAccount.js\";\nexport * from \"./components/authenticationAccountAdmin.js\";\nexport * from \"./components/authenticationAdmin.js\";\nexport * from \"./components/authenticationAudit.js\";\nexport * from \"./components/authenticationProvider.js\";\nexport * from \"./components/authenticationRate.js\";\nexport * from \"./components/information.js\";\nexport * from \"./components/mimeTypeProcessor.js\";\nexport * from \"./components/oauth.js\";\nexport * from \"./components/organization.js\";\nexport * from \"./components/organizationRequestAdmin.js\";\nexport * from \"./components/restRouteProcessor.js\";\nexport * from \"./components/socketRouteProcessor.js\";\nexport * from \"./models/config/authenticationAccountAdminComponentConfig.js\";\nexport * from \"./models/config/authenticationAccountComponentConfig.js\";\nexport * from \"./models/config/authenticationAdminComponentConfig.js\";\nexport * from \"./models/config/authenticationAuditComponentConfig.js\";\nexport * from \"./models/config/authenticationComponentConfig.js\";\nexport * from \"./models/config/authenticationProviderConfig.js\";\nexport * from \"./models/config/authenticationRateComponentConfig.js\";\nexport * from \"./models/config/informationComponentConfig.js\";\nexport * from \"./models/config/mimeTypeProcessorConfig.js\";\nexport * from \"./models/config/oauthComponentConfig.js\";\nexport * from \"./models/config/organizationComponentConfig.js\";\nexport * from \"./models/config/organizationRequestAdminComponentConfig.js\";\nexport * from \"./models/config/restRouteProcessorConfig.js\";\nexport * from \"./models/config/socketRouteProcessorConfig.js\";\nexport * from \"./models/IEngineServerConfig.js\";\nexport * from \"./models/types/authenticationAccountAdminComponentType.js\";\nexport * from \"./models/types/authenticationAccountComponentType.js\";\nexport * from \"./models/types/authenticationAdminComponentType.js\";\nexport * from \"./models/types/authenticationAuditComponentType.js\";\nexport * from \"./models/types/authenticationComponentType.js\";\nexport * from \"./models/types/authenticationProviderType.js\";\nexport * from \"./models/types/authenticationRateComponentType.js\";\nexport * from \"./models/types/informationComponentType.js\";\nexport * from \"./models/types/mimeTypeProcessorType.js\";\nexport * from \"./models/types/oauthComponentType.js\";\nexport * from \"./models/types/organizationComponentType.js\";\nexport * from \"./models/types/organizationRequestAdminComponentType.js\";\nexport * from \"./models/types/restRouteProcessorType.js\";\nexport * from \"./models/types/socketRouteProcessorType.js\";\nexport * from \"./models/types/webServerType.js\";\n"]}
1
+ {"version":3,"file":"index.js","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,uCAAuC,CAAC;AACtD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,wCAAwC,CAAC;AACvD,cAAc,oCAAoC,CAAC;AACnD,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,uBAAuB,CAAC;AACtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,sCAAsC,CAAC;AACrD,cAAc,8DAA8D,CAAC;AAC7E,cAAc,yDAAyD,CAAC;AACxE,cAAc,uDAAuD,CAAC;AACtE,cAAc,uDAAuD,CAAC;AACtE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iDAAiD,CAAC;AAChE,cAAc,sDAAsD,CAAC;AACrE,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4DAA4D,CAAC;AAC3E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,iCAAiC,CAAC;AAChD,cAAc,2DAA2D,CAAC;AAC1E,cAAc,sDAAsD,CAAC;AACrE,cAAc,oDAAoD,CAAC;AACnE,cAAc,oDAAoD,CAAC;AACnE,cAAc,+CAA+C,CAAC;AAC9D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,mDAAmD,CAAC;AAClE,cAAc,wCAAwC,CAAC;AACvD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,yCAAyC,CAAC;AACxD,cAAc,sCAAsC,CAAC;AACrD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,yDAAyD,CAAC;AACxE,cAAc,0CAA0C,CAAC;AACzD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,iCAAiC,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nexport * from \"./components/authentication.js\";\nexport * from \"./components/authenticationAccount.js\";\nexport * from \"./components/authenticationAccountAdmin.js\";\nexport * from \"./components/authenticationAdmin.js\";\nexport * from \"./components/authenticationAudit.js\";\nexport * from \"./components/authenticationProvider.js\";\nexport * from \"./components/authenticationRate.js\";\nexport * from \"./components/feature.js\";\nexport * from \"./components/information.js\";\nexport * from \"./components/mimeTypeProcessor.js\";\nexport * from \"./components/oauth.js\";\nexport * from \"./components/organization.js\";\nexport * from \"./components/organizationRequestAdmin.js\";\nexport * from \"./components/restRouteProcessor.js\";\nexport * from \"./components/socketRouteProcessor.js\";\nexport * from \"./models/config/authenticationAccountAdminComponentConfig.js\";\nexport * from \"./models/config/authenticationAccountComponentConfig.js\";\nexport * from \"./models/config/authenticationAdminComponentConfig.js\";\nexport * from \"./models/config/authenticationAuditComponentConfig.js\";\nexport * from \"./models/config/authenticationComponentConfig.js\";\nexport * from \"./models/config/authenticationProviderConfig.js\";\nexport * from \"./models/config/authenticationRateComponentConfig.js\";\nexport * from \"./models/config/featureComponentConfig.js\";\nexport * from \"./models/config/informationComponentConfig.js\";\nexport * from \"./models/config/mimeTypeProcessorConfig.js\";\nexport * from \"./models/config/oauthComponentConfig.js\";\nexport * from \"./models/config/organizationComponentConfig.js\";\nexport * from \"./models/config/organizationRequestAdminComponentConfig.js\";\nexport * from \"./models/config/restRouteProcessorConfig.js\";\nexport * from \"./models/config/socketRouteProcessorConfig.js\";\nexport * from \"./models/IEngineServerConfig.js\";\nexport * from \"./models/types/authenticationAccountAdminComponentType.js\";\nexport * from \"./models/types/authenticationAccountComponentType.js\";\nexport * from \"./models/types/authenticationAdminComponentType.js\";\nexport * from \"./models/types/authenticationAuditComponentType.js\";\nexport * from \"./models/types/authenticationComponentType.js\";\nexport * from \"./models/types/authenticationProviderType.js\";\nexport * from \"./models/types/authenticationRateComponentType.js\";\nexport * from \"./models/types/featureComponentType.js\";\nexport * from \"./models/types/informationComponentType.js\";\nexport * from \"./models/types/mimeTypeProcessorType.js\";\nexport * from \"./models/types/oauthComponentType.js\";\nexport * from \"./models/types/organizationComponentType.js\";\nexport * from \"./models/types/organizationRequestAdminComponentType.js\";\nexport * from \"./models/types/restRouteProcessorType.js\";\nexport * from \"./models/types/socketRouteProcessorType.js\";\nexport * from \"./models/types/webServerType.js\";\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"IEngineServerConfig.js","sources":["../../../src/models/IEngineServerConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IWebServerOptions } from \"@3sixty/api-models\";\nimport type { IEngineCoreTypeConfig } from \"@3sixty/engine-models\";\nimport type { IEngineConfig } from \"@3sixty/engine-types\";\nimport type { AuthenticationAccountAdminComponentConfig } from \"./config/authenticationAccountAdminComponentConfig.js\";\nimport type { AuthenticationAccountComponentConfig } from \"./config/authenticationAccountComponentConfig.js\";\nimport type { AuthenticationAdminComponentConfig } from \"./config/authenticationAdminComponentConfig.js\";\nimport type { AuthenticationAuditComponentConfig } from \"./config/authenticationAuditComponentConfig.js\";\nimport type { AuthenticationComponentConfig } from \"./config/authenticationComponentConfig.js\";\nimport type { AuthenticationProviderConfig } from \"./config/authenticationProviderConfig.js\";\nimport type { AuthenticationRateComponentConfig } from \"./config/authenticationRateComponentConfig.js\";\nimport type { InformationComponentConfig } from \"./config/informationComponentConfig.js\";\nimport type { MimeTypeProcessorConfig } from \"./config/mimeTypeProcessorConfig.js\";\nimport type { OAuthComponentConfig } from \"./config/oauthComponentConfig.js\";\nimport type { OrganizationComponentConfig } from \"./config/organizationComponentConfig.js\";\nimport type { OrganizationRequestAdminComponentConfig } from \"./config/organizationRequestAdminComponentConfig.js\";\nimport type { RestRouteProcessorConfig } from \"./config/restRouteProcessorConfig.js\";\nimport type { SocketRouteProcessorConfig } from \"./config/socketRouteProcessorConfig.js\";\nimport type { WebServerType } from \"./types/webServerType.js\";\n\n/**\n * Extended engine server config with known types.\n */\nexport interface IEngineServerConfig extends IEngineConfig {\n\t/**\n\t * The type of web server to use.\n\t * @default fastify\n\t */\n\twebServerType?: WebServerType;\n\n\t/**\n\t * Configuration for the web server.\n\t */\n\tweb?: IWebServerOptions;\n\n\t/**\n\t * The types to initialise in the engine.\n\t */\n\ttypes: IEngineConfig[\"types\"] & {\n\t\t[type: string]: IEngineCoreTypeConfig[] | undefined;\n\n\t\t/**\n\t\t * Information component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tinformationComponent?: IEngineCoreTypeConfig<InformationComponentConfig>[];\n\n\t\t/**\n\t\t * REST route processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\trestRouteProcessor?: IEngineCoreTypeConfig<RestRouteProcessorConfig>[];\n\n\t\t/**\n\t\t * Socket route processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tsocketRouteProcessor?: IEngineCoreTypeConfig<SocketRouteProcessorConfig>[];\n\n\t\t/**\n\t\t * Mime type processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tmimeTypeProcessor?: IEngineCoreTypeConfig<MimeTypeProcessorConfig>[];\n\n\t\t/**\n\t\t * Authentication audit component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationAuditComponent?: IEngineCoreTypeConfig<AuthenticationAuditComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication rate component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationRateComponent?: IEngineCoreTypeConfig<AuthenticationRateComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationComponent?: IEngineCoreTypeConfig<AuthenticationComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication admin component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationAdminComponent?: IEngineCoreTypeConfig<AuthenticationAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication providers, each registered under its authentication provider id.\n\t\t */\n\t\tauthenticationProvider?: IEngineCoreTypeConfig<AuthenticationProviderConfig>[];\n\n\t\t/**\n\t\t * Authentication account component options, for the data stored against the signed in account.\n\t\t */\n\t\tauthenticationAccountComponent?: IEngineCoreTypeConfig<AuthenticationAccountComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication account admin component options, for the data stored against any account.\n\t\t */\n\t\tauthenticationAccountAdminComponent?: IEngineCoreTypeConfig<AuthenticationAccountAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Organization request admin component options, for reviewing the requests to join an organization.\n\t\t */\n\t\torganizationRequestAdminComponent?: IEngineCoreTypeConfig<OrganizationRequestAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Organization component options, for the organizations registered on the node and their profiles.\n\t\t */\n\t\torganizationComponent?: IEngineCoreTypeConfig<OrganizationComponentConfig>[];\n\n\t\t/**\n\t\t * OAuth sign in component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\toauthComponent?: IEngineCoreTypeConfig<OAuthComponentConfig>[];\n\t};\n}\n"]}
1
+ {"version":3,"file":"IEngineServerConfig.js","sources":["../../../src/models/IEngineServerConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IWebServerOptions } from \"@3sixty/api-models\";\nimport type { IEngineCoreTypeConfig } from \"@3sixty/engine-models\";\nimport type { IEngineConfig } from \"@3sixty/engine-types\";\nimport type { AuthenticationAccountAdminComponentConfig } from \"./config/authenticationAccountAdminComponentConfig.js\";\nimport type { AuthenticationAccountComponentConfig } from \"./config/authenticationAccountComponentConfig.js\";\nimport type { AuthenticationAdminComponentConfig } from \"./config/authenticationAdminComponentConfig.js\";\nimport type { AuthenticationAuditComponentConfig } from \"./config/authenticationAuditComponentConfig.js\";\nimport type { AuthenticationComponentConfig } from \"./config/authenticationComponentConfig.js\";\nimport type { AuthenticationProviderConfig } from \"./config/authenticationProviderConfig.js\";\nimport type { AuthenticationRateComponentConfig } from \"./config/authenticationRateComponentConfig.js\";\nimport type { FeatureComponentConfig } from \"./config/featureComponentConfig.js\";\nimport type { InformationComponentConfig } from \"./config/informationComponentConfig.js\";\nimport type { MimeTypeProcessorConfig } from \"./config/mimeTypeProcessorConfig.js\";\nimport type { OAuthComponentConfig } from \"./config/oauthComponentConfig.js\";\nimport type { OrganizationComponentConfig } from \"./config/organizationComponentConfig.js\";\nimport type { OrganizationRequestAdminComponentConfig } from \"./config/organizationRequestAdminComponentConfig.js\";\nimport type { RestRouteProcessorConfig } from \"./config/restRouteProcessorConfig.js\";\nimport type { SocketRouteProcessorConfig } from \"./config/socketRouteProcessorConfig.js\";\nimport type { WebServerType } from \"./types/webServerType.js\";\n\n/**\n * Extended engine server config with known types.\n */\nexport interface IEngineServerConfig extends IEngineConfig {\n\t/**\n\t * The type of web server to use.\n\t * @default fastify\n\t */\n\twebServerType?: WebServerType;\n\n\t/**\n\t * Configuration for the web server.\n\t */\n\tweb?: IWebServerOptions;\n\n\t/**\n\t * The types to initialise in the engine.\n\t */\n\ttypes: IEngineConfig[\"types\"] & {\n\t\t[type: string]: IEngineCoreTypeConfig[] | undefined;\n\n\t\t/**\n\t\t * Information component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tinformationComponent?: IEngineCoreTypeConfig<InformationComponentConfig>[];\n\n\t\t/**\n\t\t * REST route processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\trestRouteProcessor?: IEngineCoreTypeConfig<RestRouteProcessorConfig>[];\n\n\t\t/**\n\t\t * Socket route processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tsocketRouteProcessor?: IEngineCoreTypeConfig<SocketRouteProcessorConfig>[];\n\n\t\t/**\n\t\t * Mime type processors options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tmimeTypeProcessor?: IEngineCoreTypeConfig<MimeTypeProcessorConfig>[];\n\n\t\t/**\n\t\t * Authentication audit component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationAuditComponent?: IEngineCoreTypeConfig<AuthenticationAuditComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication rate component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationRateComponent?: IEngineCoreTypeConfig<AuthenticationRateComponentConfig>[];\n\n\t\t/**\n\t\t * Feature component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tfeatureComponent?: IEngineCoreTypeConfig<FeatureComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationComponent?: IEngineCoreTypeConfig<AuthenticationComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication admin component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\tauthenticationAdminComponent?: IEngineCoreTypeConfig<AuthenticationAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication providers, each registered under its authentication provider id.\n\t\t */\n\t\tauthenticationProvider?: IEngineCoreTypeConfig<AuthenticationProviderConfig>[];\n\n\t\t/**\n\t\t * Authentication account component options, for the data stored against the signed in account.\n\t\t */\n\t\tauthenticationAccountComponent?: IEngineCoreTypeConfig<AuthenticationAccountComponentConfig>[];\n\n\t\t/**\n\t\t * Authentication account admin component options, for the data stored against any account.\n\t\t */\n\t\tauthenticationAccountAdminComponent?: IEngineCoreTypeConfig<AuthenticationAccountAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Organization request admin component options, for reviewing the requests to join an organization.\n\t\t */\n\t\torganizationRequestAdminComponent?: IEngineCoreTypeConfig<OrganizationRequestAdminComponentConfig>[];\n\n\t\t/**\n\t\t * Organization component options, for the organizations registered on the node and their profiles.\n\t\t */\n\t\torganizationComponent?: IEngineCoreTypeConfig<OrganizationComponentConfig>[];\n\n\t\t/**\n\t\t * OAuth sign in component options which can be overridden by individual components by specifying types other than default.\n\t\t */\n\t\toauthComponent?: IEngineCoreTypeConfig<OAuthComponentConfig>[];\n\t};\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=featureComponentConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featureComponentConfig.js","sources":["../../../../src/models/config/featureComponentConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IFeatureServiceConstructorOptions } from \"@3sixty/api-auth-service\";\nimport type { IBaseRestClientConfig } from \"@3sixty/api-models\";\nimport type { FeatureComponentType } from \"../types/featureComponentType.js\";\n\n/**\n * Feature component config types.\n */\nexport type FeatureComponentConfig =\n\t| {\n\t\t\ttype: typeof FeatureComponentType.Service;\n\t\t\toptions?: IFeatureServiceConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof FeatureComponentType.RestClient;\n\t\t\toptions: IBaseRestClientConfig;\n\t };\n"]}
@@ -0,0 +1,17 @@
1
+ // Copyright 2026 3Sixty Trade Ltd.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ /**
4
+ * Feature component types.
5
+ */
6
+ // eslint-disable-next-line @typescript-eslint/naming-convention
7
+ export const FeatureComponentType = {
8
+ /**
9
+ * Service.
10
+ */
11
+ Service: "service",
12
+ /**
13
+ * REST client.
14
+ */
15
+ RestClient: "rest-client"
16
+ };
17
+ //# sourceMappingURL=featureComponentType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"featureComponentType.js","sources":["../../../../src/models/types/featureComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,oBAAoB,GAAG;IACnC;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Feature component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const FeatureComponentType = {\n\t/**\n\t * Service.\n\t */\n\tService: \"service\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Feature component types.\n */\nexport type FeatureComponentType = (typeof FeatureComponentType)[keyof typeof FeatureComponentType];\n"]}
@@ -0,0 +1,12 @@
1
+ import { ComponentFactory } from "@3sixty/core";
2
+ import type { EngineTypeInitialiserReturn, IEngineCore, IEngineCoreContext } from "@3sixty/engine-models";
3
+ import type { FeatureComponentConfig } from "../models/config/featureComponentConfig.js";
4
+ import type { IEngineServerConfig } from "../models/IEngineServerConfig.js";
5
+ /**
6
+ * Initialise the feature component.
7
+ * @param engineCore The engine core.
8
+ * @param context The context for the engine.
9
+ * @param instanceConfig The instance config.
10
+ * @returns The instance created and the factory for it.
11
+ */
12
+ export declare function initialiseFeatureComponent(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, instanceConfig: FeatureComponentConfig): EngineTypeInitialiserReturn<FeatureComponentConfig, typeof ComponentFactory>;
@@ -5,6 +5,7 @@ export * from "./components/authenticationAdmin.js";
5
5
  export * from "./components/authenticationAudit.js";
6
6
  export * from "./components/authenticationProvider.js";
7
7
  export * from "./components/authenticationRate.js";
8
+ export * from "./components/feature.js";
8
9
  export * from "./components/information.js";
9
10
  export * from "./components/mimeTypeProcessor.js";
10
11
  export * from "./components/oauth.js";
@@ -19,6 +20,7 @@ export * from "./models/config/authenticationAuditComponentConfig.js";
19
20
  export * from "./models/config/authenticationComponentConfig.js";
20
21
  export * from "./models/config/authenticationProviderConfig.js";
21
22
  export * from "./models/config/authenticationRateComponentConfig.js";
23
+ export * from "./models/config/featureComponentConfig.js";
22
24
  export * from "./models/config/informationComponentConfig.js";
23
25
  export * from "./models/config/mimeTypeProcessorConfig.js";
24
26
  export * from "./models/config/oauthComponentConfig.js";
@@ -34,6 +36,7 @@ export * from "./models/types/authenticationAuditComponentType.js";
34
36
  export * from "./models/types/authenticationComponentType.js";
35
37
  export * from "./models/types/authenticationProviderType.js";
36
38
  export * from "./models/types/authenticationRateComponentType.js";
39
+ export * from "./models/types/featureComponentType.js";
37
40
  export * from "./models/types/informationComponentType.js";
38
41
  export * from "./models/types/mimeTypeProcessorType.js";
39
42
  export * from "./models/types/oauthComponentType.js";
@@ -8,6 +8,7 @@ import type { AuthenticationAuditComponentConfig } from "./config/authentication
8
8
  import type { AuthenticationComponentConfig } from "./config/authenticationComponentConfig.js";
9
9
  import type { AuthenticationProviderConfig } from "./config/authenticationProviderConfig.js";
10
10
  import type { AuthenticationRateComponentConfig } from "./config/authenticationRateComponentConfig.js";
11
+ import type { FeatureComponentConfig } from "./config/featureComponentConfig.js";
11
12
  import type { InformationComponentConfig } from "./config/informationComponentConfig.js";
12
13
  import type { MimeTypeProcessorConfig } from "./config/mimeTypeProcessorConfig.js";
13
14
  import type { OAuthComponentConfig } from "./config/oauthComponentConfig.js";
@@ -58,6 +59,10 @@ export interface IEngineServerConfig extends IEngineConfig {
58
59
  * Authentication rate component options which can be overridden by individual components by specifying types other than default.
59
60
  */
60
61
  authenticationRateComponent?: IEngineCoreTypeConfig<AuthenticationRateComponentConfig>[];
62
+ /**
63
+ * Feature component options which can be overridden by individual components by specifying types other than default.
64
+ */
65
+ featureComponent?: IEngineCoreTypeConfig<FeatureComponentConfig>[];
61
66
  /**
62
67
  * Authentication component options which can be overridden by individual components by specifying types other than default.
63
68
  */
@@ -0,0 +1,13 @@
1
+ import type { IFeatureServiceConstructorOptions } from "@3sixty/api-auth-service";
2
+ import type { IBaseRestClientConfig } from "@3sixty/api-models";
3
+ import type { FeatureComponentType } from "../types/featureComponentType.js";
4
+ /**
5
+ * Feature component config types.
6
+ */
7
+ export type FeatureComponentConfig = {
8
+ type: typeof FeatureComponentType.Service;
9
+ options?: IFeatureServiceConstructorOptions;
10
+ } | {
11
+ type: typeof FeatureComponentType.RestClient;
12
+ options: IBaseRestClientConfig;
13
+ };
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Feature component types.
3
+ */
4
+ export declare const FeatureComponentType: {
5
+ /**
6
+ * Service.
7
+ */
8
+ readonly Service: "service";
9
+ /**
10
+ * REST client.
11
+ */
12
+ readonly RestClient: "rest-client";
13
+ };
14
+ /**
15
+ * Feature component types.
16
+ */
17
+ export type FeatureComponentType = (typeof FeatureComponentType)[keyof typeof FeatureComponentType];
package/docs/changelog.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.20.0-next.7](https://github.com/3sixtyglobal/engine/compare/engine-server-types-v0.20.0-next.6...engine-server-types-v0.20.0-next.7) (2026-11-04)
4
+
5
+
6
+ ### Features
7
+
8
+ * add the feature component ([#38](https://github.com/3sixtyglobal/engine/issues/38)) ([6f00f60](https://github.com/3sixtyglobal/engine/commit/6f00f6053cfcf76a82c3b41aa065c2b8d5158d73))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @3sixty/engine-models bumped from 0.20.0-next.6 to 0.20.0-next.7
16
+ * @3sixty/engine-types bumped from 0.20.0-next.6 to 0.20.0-next.7
17
+
18
+ ## [0.20.0-next.6](https://github.com/3sixtyglobal/engine/compare/engine-server-types-v0.20.0-next.5...engine-server-types-v0.20.0-next.6) (2026-11-03)
19
+
20
+
21
+ ### Bug Fixes
22
+
23
+ * pass every resolved dependency type to the component initialisers ([#36](https://github.com/3sixtyglobal/engine/issues/36)) ([71f28ba](https://github.com/3sixtyglobal/engine/commit/71f28baa32ed123ca416ec8ceceb9ccd02bf1361))
24
+
25
+
26
+ ### Dependencies
27
+
28
+ * The following workspace dependencies were updated
29
+ * dependencies
30
+ * @3sixty/engine-models bumped from 0.20.0-next.5 to 0.20.0-next.6
31
+ * @3sixty/engine-types bumped from 0.20.0-next.5 to 0.20.0-next.6
32
+
3
33
  ## [0.20.0-next.5](https://github.com/3sixtyglobal/engine/compare/engine-server-types-v0.20.0-next.4...engine-server-types-v0.20.0-next.5) (2026-11-02)
4
34
 
5
35
 
package/docs/examples.md CHANGED
@@ -153,3 +153,27 @@ const types: Partial<IEngineServerConfig['types']> = {
153
153
 
154
154
  console.log(types.organizationComponent?.length); // 1
155
155
  ```
156
+
157
+ ## Features
158
+
159
+ The feature component lists the features registered with `FeatureFactory` that the signed in account can use, at `GET /features`. A node runs the service, and a node or client that reaches another node uses the REST client.
160
+
161
+ ```typescript
162
+ import type { IEngineServerConfig } from '@3sixty/engine-server-types';
163
+ import { FeatureComponentType } from '@3sixty/engine-server-types';
164
+
165
+ const types: IEngineServerConfig['types'] = {
166
+ featureComponent: [
167
+ { type: FeatureComponentType.Service, options: { config: { authorizationModelId: 'system' } } }
168
+ ]
169
+ };
170
+
171
+ const remoteTypes: IEngineServerConfig['types'] = {
172
+ featureComponent: [
173
+ { type: FeatureComponentType.RestClient, options: { endpoint: 'https://node.example.org' } }
174
+ ]
175
+ };
176
+
177
+ console.log(types.featureComponent?.[0].type); // "service"
178
+ console.log(remoteTypes.featureComponent?.[0].type); // "rest-client"
179
+ ```
@@ -0,0 +1,31 @@
1
+ # Function: initialiseFeatureComponent()
2
+
3
+ > **initialiseFeatureComponent**(`engineCore`, `context`, `instanceConfig`): `EngineTypeInitialiserReturn`\<[`FeatureComponentConfig`](../type-aliases/FeatureComponentConfig.md), `Factory`\<`IComponent`\>\>
4
+
5
+ Initialise the feature component.
6
+
7
+ ## Parameters
8
+
9
+ ### engineCore
10
+
11
+ `IEngineCore`\<[`IEngineServerConfig`](../interfaces/IEngineServerConfig.md)\>
12
+
13
+ The engine core.
14
+
15
+ ### context
16
+
17
+ `IEngineCoreContext`\<[`IEngineServerConfig`](../interfaces/IEngineServerConfig.md)\>
18
+
19
+ The context for the engine.
20
+
21
+ ### instanceConfig
22
+
23
+ [`FeatureComponentConfig`](../type-aliases/FeatureComponentConfig.md)
24
+
25
+ The instance config.
26
+
27
+ ## Returns
28
+
29
+ `EngineTypeInitialiserReturn`\<[`FeatureComponentConfig`](../type-aliases/FeatureComponentConfig.md), `Factory`\<`IComponent`\>\>
30
+
31
+ The instance created and the factory for it.
@@ -13,6 +13,7 @@
13
13
  - [AuthenticationComponentConfig](type-aliases/AuthenticationComponentConfig.md)
14
14
  - [AuthenticationProviderConfig](type-aliases/AuthenticationProviderConfig.md)
15
15
  - [AuthenticationRateComponentConfig](type-aliases/AuthenticationRateComponentConfig.md)
16
+ - [FeatureComponentConfig](type-aliases/FeatureComponentConfig.md)
16
17
  - [InformationComponentConfig](type-aliases/InformationComponentConfig.md)
17
18
  - [MimeTypeProcessorConfig](type-aliases/MimeTypeProcessorConfig.md)
18
19
  - [OAuthComponentConfig](type-aliases/OAuthComponentConfig.md)
@@ -27,6 +28,7 @@
27
28
  - [AuthenticationComponentType](type-aliases/AuthenticationComponentType.md)
28
29
  - [AuthenticationProviderType](type-aliases/AuthenticationProviderType.md)
29
30
  - [AuthenticationRateComponentType](type-aliases/AuthenticationRateComponentType.md)
31
+ - [FeatureComponentType](type-aliases/FeatureComponentType.md)
30
32
  - [InformationComponentType](type-aliases/InformationComponentType.md)
31
33
  - [MimeTypeProcessorType](type-aliases/MimeTypeProcessorType.md)
32
34
  - [OAuthComponentType](type-aliases/OAuthComponentType.md)
@@ -45,6 +47,7 @@
45
47
  - [AuthenticationComponentType](variables/AuthenticationComponentType.md)
46
48
  - [AuthenticationProviderType](variables/AuthenticationProviderType.md)
47
49
  - [AuthenticationRateComponentType](variables/AuthenticationRateComponentType.md)
50
+ - [FeatureComponentType](variables/FeatureComponentType.md)
48
51
  - [InformationComponentType](variables/InformationComponentType.md)
49
52
  - [MimeTypeProcessorType](variables/MimeTypeProcessorType.md)
50
53
  - [OAuthComponentType](variables/OAuthComponentType.md)
@@ -68,6 +71,7 @@
68
71
  - [initialiseAuthenticationAuditComponent](functions/initialiseAuthenticationAuditComponent.md)
69
72
  - [initialiseAuthenticationProvider](functions/initialiseAuthenticationProvider.md)
70
73
  - [initialiseAuthenticationRateComponent](functions/initialiseAuthenticationRateComponent.md)
74
+ - [initialiseFeatureComponent](functions/initialiseFeatureComponent.md)
71
75
  - [initialiseInformationComponent](functions/initialiseInformationComponent.md)
72
76
  - [initialiseMimeTypeProcessorComponent](functions/initialiseMimeTypeProcessorComponent.md)
73
77
  - [initialiseOAuthComponent](functions/initialiseOAuthComponent.md)
@@ -666,6 +666,12 @@ Authentication audit component options which can be overridden by individual com
666
666
 
667
667
  Authentication rate component options which can be overridden by individual components by specifying types other than default.
668
668
 
669
+ ##### featureComponent?
670
+
671
+ > `optional` **featureComponent?**: `IEngineCoreTypeConfig`\<[`FeatureComponentConfig`](../type-aliases/FeatureComponentConfig.md)\>[]
672
+
673
+ Feature component options which can be overridden by individual components by specifying types other than default.
674
+
669
675
  ##### authenticationComponent?
670
676
 
671
677
  > `optional` **authenticationComponent?**: `IEngineCoreTypeConfig`\<[`AuthenticationComponentConfig`](../type-aliases/AuthenticationComponentConfig.md)\>[]
@@ -0,0 +1,5 @@
1
+ # Type Alias: FeatureComponentConfig
2
+
3
+ > **FeatureComponentConfig** = \{ `type`: *typeof* [`Service`](../variables/FeatureComponentType.md#service); `options?`: `IFeatureServiceConstructorOptions`; \} \| \{ `type`: *typeof* [`RestClient`](../variables/FeatureComponentType.md#restclient); `options`: `IBaseRestClientConfig`; \}
4
+
5
+ Feature component config types.
@@ -0,0 +1,5 @@
1
+ # Type Alias: FeatureComponentType
2
+
3
+ > **FeatureComponentType** = *typeof* [`FeatureComponentType`](../variables/FeatureComponentType.md)\[keyof *typeof* [`FeatureComponentType`](../variables/FeatureComponentType.md)\]
4
+
5
+ Feature component types.
@@ -0,0 +1,19 @@
1
+ # Variable: FeatureComponentType
2
+
3
+ > `const` **FeatureComponentType**: `object`
4
+
5
+ Feature component types.
6
+
7
+ ## Type Declaration
8
+
9
+ ### Service {#service}
10
+
11
+ > `readonly` **Service**: `"service"` = `"service"`
12
+
13
+ Service.
14
+
15
+ ### RestClient {#restclient}
16
+
17
+ > `readonly` **RestClient**: `"rest-client"` = `"rest-client"`
18
+
19
+ REST client.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@3sixty/engine-server-types",
3
- "version": "0.20.0-next.5",
3
+ "version": "0.20.0-next.7",
4
4
  "description": "Server-focused component types and configuration models for API routing and hosting.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,6 +24,7 @@
24
24
  "@3sixty/api-auth-oauth-connector-google": "next",
25
25
  "@3sixty/api-auth-oauth-connector-microsoft": "next",
26
26
  "@3sixty/api-auth-oauth-service": "next",
27
+ "@3sixty/api-auth-rest-client": "next",
27
28
  "@3sixty/api-auth-service": "next",
28
29
  "@3sixty/api-models": "next",
29
30
  "@3sixty/api-processors": "next",
@@ -33,8 +34,8 @@
33
34
  "@3sixty/authorization-service": "next",
34
35
  "@3sixty/context": "next",
35
36
  "@3sixty/core": "next",
36
- "@3sixty/engine-models": "0.20.0-next.5",
37
- "@3sixty/engine-types": "0.20.0-next.5",
37
+ "@3sixty/engine-models": "0.20.0-next.7",
38
+ "@3sixty/engine-types": "0.20.0-next.7",
38
39
  "@3sixty/nameof": "next",
39
40
  "@3sixty/telemetry-processors": "next",
40
41
  "@3sixty/tracing-processors": "next"