@3sixty/engine-server-types 0.20.0-next.6 → 0.20.0-next.8

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 (64) hide show
  1. package/dist/es/components/authentication.js +15 -0
  2. package/dist/es/components/authentication.js.map +1 -1
  3. package/dist/es/components/authenticationProvider.js +11 -2
  4. package/dist/es/components/authenticationProvider.js.map +1 -1
  5. package/dist/es/components/feature.js +34 -0
  6. package/dist/es/components/feature.js.map +1 -0
  7. package/dist/es/index.js +3 -0
  8. package/dist/es/index.js.map +1 -1
  9. package/dist/es/models/IEngineServerConfig.js.map +1 -1
  10. package/dist/es/models/config/authenticationProviderConfig.js.map +1 -1
  11. package/dist/es/models/config/featureComponentConfig.js +2 -0
  12. package/dist/es/models/config/featureComponentConfig.js.map +1 -0
  13. package/dist/es/models/types/authenticationAccountAdminComponentType.js +0 -1
  14. package/dist/es/models/types/authenticationAccountAdminComponentType.js.map +1 -1
  15. package/dist/es/models/types/authenticationAccountComponentType.js +0 -1
  16. package/dist/es/models/types/authenticationAccountComponentType.js.map +1 -1
  17. package/dist/es/models/types/authenticationAdminComponentType.js +0 -1
  18. package/dist/es/models/types/authenticationAdminComponentType.js.map +1 -1
  19. package/dist/es/models/types/authenticationAuditComponentType.js +0 -1
  20. package/dist/es/models/types/authenticationAuditComponentType.js.map +1 -1
  21. package/dist/es/models/types/authenticationComponentType.js +0 -1
  22. package/dist/es/models/types/authenticationComponentType.js.map +1 -1
  23. package/dist/es/models/types/authenticationProviderType.js +5 -2
  24. package/dist/es/models/types/authenticationProviderType.js.map +1 -1
  25. package/dist/es/models/types/authenticationRateComponentType.js +0 -1
  26. package/dist/es/models/types/authenticationRateComponentType.js.map +1 -1
  27. package/dist/es/models/types/featureComponentType.js +16 -0
  28. package/dist/es/models/types/featureComponentType.js.map +1 -0
  29. package/dist/es/models/types/informationComponentType.js +0 -1
  30. package/dist/es/models/types/informationComponentType.js.map +1 -1
  31. package/dist/es/models/types/mimeTypeProcessorType.js +0 -1
  32. package/dist/es/models/types/mimeTypeProcessorType.js.map +1 -1
  33. package/dist/es/models/types/oauthComponentType.js +0 -1
  34. package/dist/es/models/types/oauthComponentType.js.map +1 -1
  35. package/dist/es/models/types/organizationComponentType.js +0 -1
  36. package/dist/es/models/types/organizationComponentType.js.map +1 -1
  37. package/dist/es/models/types/organizationRequestAdminComponentType.js +0 -1
  38. package/dist/es/models/types/organizationRequestAdminComponentType.js.map +1 -1
  39. package/dist/es/models/types/restRouteProcessorType.js +0 -1
  40. package/dist/es/models/types/restRouteProcessorType.js.map +1 -1
  41. package/dist/es/models/types/socketRouteProcessorType.js +0 -1
  42. package/dist/es/models/types/socketRouteProcessorType.js.map +1 -1
  43. package/dist/es/models/types/webServerType.js +0 -1
  44. package/dist/es/models/types/webServerType.js.map +1 -1
  45. package/dist/types/components/authentication.d.ts +8 -0
  46. package/dist/types/components/feature.d.ts +12 -0
  47. package/dist/types/index.d.ts +3 -0
  48. package/dist/types/models/IEngineServerConfig.d.ts +5 -0
  49. package/dist/types/models/config/authenticationProviderConfig.d.ts +5 -1
  50. package/dist/types/models/config/featureComponentConfig.d.ts +13 -0
  51. package/dist/types/models/types/authenticationProviderType.d.ts +5 -1
  52. package/dist/types/models/types/featureComponentType.d.ts +17 -0
  53. package/docs/changelog.md +30 -0
  54. package/docs/examples.md +30 -2
  55. package/docs/reference/functions/initialiseAuthenticationAuthorizationCodeEntityStorage.md +30 -0
  56. package/docs/reference/functions/initialiseFeatureComponent.md +31 -0
  57. package/docs/reference/index.md +5 -0
  58. package/docs/reference/interfaces/IEngineServerConfig.md +6 -0
  59. package/docs/reference/type-aliases/AuthenticationProviderConfig.md +1 -1
  60. package/docs/reference/type-aliases/FeatureComponentConfig.md +5 -0
  61. package/docs/reference/type-aliases/FeatureComponentType.md +5 -0
  62. package/docs/reference/variables/AuthenticationProviderType.md +8 -2
  63. package/docs/reference/variables/FeatureComponentType.md +19 -0
  64. package/package.json +6 -3
@@ -35,6 +35,20 @@ export function initialiseAuthenticationPasswordResetEntityStorage(engineCore, c
35
35
  ContextIdKeys.Tenant
36
36
  ]));
37
37
  }
38
+ /**
39
+ * Initialise the entity storage of the OAuth 2.0 authorization codes of password accounts,
40
+ * partitioned like the accounts they belong to.
41
+ * @param engineCore The engine core.
42
+ * @param context The context for the engine.
43
+ * @param storageType The configured storage type.
44
+ */
45
+ export function initialiseAuthenticationAuthorizationCodeEntityStorage(engineCore, context, storageType) {
46
+ initSchemaAuthEntityStorage();
47
+ initialiseEntityStorageConnector(engineCore, context, storageType, "AuthenticationAuthorizationCode", ContextIdHelper.pickKeysFromAvailable(engineCore.getContextIdKeys(), [
48
+ ContextIdKeys.Node,
49
+ ContextIdKeys.Tenant
50
+ ]));
51
+ }
38
52
  /**
39
53
  * Initialise the authentication component.
40
54
  * @param engineCore The engine core.
@@ -49,6 +63,7 @@ export function initialiseAuthenticationComponent(engineCore, context, instanceC
49
63
  createComponent = (createConfig) => {
50
64
  initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
51
65
  initialiseAuthenticationPasswordResetEntityStorage(engineCore, context, createConfig.options?.passwordResetEntityStorageType);
66
+ initialiseAuthenticationAuthorizationCodeEntityStorage(engineCore, context, createConfig.options?.authorizationCodeEntityStorageType);
52
67
  return new EntityStorageAuthenticationService(EngineTypeHelper.mergeConfig({
53
68
  vaultConnectorType: engineCore.getRegisteredInstanceType("vaultConnector"),
54
69
  tenantAdminComponentType: engineCore.getRegisteredInstanceTypeOptional("tenantAdminComponent"),
@@ -1 +1 @@
1
- {"version":3,"file":"authentication.js","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EACN,kCAAkC,EAClC,UAAU,IAAI,2BAA2B,EAGzC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAI1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,UAAU,yCAAyC,CACxD,UAA4C,EAC5C,OAAgD,EAChD,WAA+B;IAE/B,2BAA2B,EAAE,CAAC;IAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;QACpE,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;KACpB,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kDAAkD,CACjE,UAA4C,EAC5C,OAAgD,EAChD,WAA+B;IAE/B,2BAA2B,EAAE,CAAC;IAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,WAAW,EACX,6BAA6B,EAC7B,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;QACpE,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;KACpB,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,UAA4C,EAC5C,OAAgD,EAChD,cAA6C;IAE7C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,aAAa,EAAE,CAAC;QACvE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,kDAAkD,CACjD,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,8BAA8B,CACpD,CAAC;YACF,OAAO,IAAI,kCAAkC,CAC5C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBAC1E,wBAAwB,EACvB,UAAU,CAAC,iCAAiC,CAAC,sBAAsB,CAAC;gBACrE,8BAA8B,EAAE,UAAU,CAAC,yBAAyB,CACnE,8BAA8B,CAC9B;gBACD,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;gBACD,uCAAuC,EAAE,UAAU,CAAC,yBAAyB,CAC5E,qCAAqC,CACrC;gBACD,kCAAkC,EAAE,UAAU,CAAC,yBAAyB,CACvE,gCAAgC,CAChC;gBACD,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qCAAqC,EAAE,UAAU,CAAC,yBAAyB,CAC1E,mCAAmC,CACnC;gBACD,sBAAsB,EAAE,UAAU,CAAC,yBAAyB,CAAC,oBAAoB,CAAC;gBAClF,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,oCAAoC,CACpC;gBACD,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;aAChF,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,uCAAuC,CAAC;IAC5D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,UAAU,EAAE,CAAC;QAC3E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,qCAAqC,CACxC,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,2CAA2C,CAAC;IAChE,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationRestClient } from \"@3sixty/api-auth-entity-storage-rest-client\";\nimport {\n\tEntityStorageAuthenticationService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationPasswordReset,\n\ttype AuthenticationUser\n} from \"@3sixty/api-auth-entity-storage-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 { AuthenticationComponentConfig } from \"../models/config/authenticationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationComponentType } from \"../models/types/authenticationComponentType.js\";\n\n/**\n * Initialise the entity storage of the authentication users, shared by every component that uses\n * 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 initialiseAuthenticationUserEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationUser\",\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 password reset and sign up verification tokens, partitioned\n * like the accounts they belong to.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAuthenticationPasswordResetEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationPasswordReset\",\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 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 initialiseAuthenticationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\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\tinitialiseAuthenticationPasswordResetEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.passwordResetEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t\t\t\ttenantAdminComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceTypeOptional(\"tenantAdminComponent\"),\n\t\t\t\t\t\tauthenticationAuditServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAuditComponent\"\n\t\t\t\t\t\t),\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\tauthenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationAccountComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountComponent\"\n\t\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\torganizationRequestAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"organizationRequestAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmessagingComponentType: engineCore.getRegisteredInstanceType(\"messagingComponent\"),\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\"EntityStorageAuthenticationService\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttaskSchedulerComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"taskSchedulerComponent\"),\n\t\t\t\t\t\tplatformComponentType: engineCore.getRegisteredInstanceType(\"platformComponent\")\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-service\";\n\t} else if (instanceConfig.type === AuthenticationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-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":"authentication.js","sources":["../../../src/components/authentication.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AACvC,OAAO,EAAE,qCAAqC,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EACN,kCAAkC,EAClC,UAAU,IAAI,2BAA2B,EAIzC,MAAM,yCAAyC,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACjE,OAAO,EAAE,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAMjE,OAAO,EAAE,gBAAgB,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAC;AAI1F,OAAO,EAAE,2BAA2B,EAAE,MAAM,gDAAgD,CAAC;AAE7F;;;;;;GAMG;AACH,MAAM,UAAU,yCAAyC,CACxD,UAA4C,EAC5C,OAAgD,EAChD,WAA+B;IAE/B,2BAA2B,EAAE,CAAC;IAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,WAAW,EACX,oBAAoB,EACpB,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;QACpE,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;KACpB,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kDAAkD,CACjE,UAA4C,EAC5C,OAAgD,EAChD,WAA+B;IAE/B,2BAA2B,EAAE,CAAC;IAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,WAAW,EACX,6BAA6B,EAC7B,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;QACpE,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;KACpB,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sDAAsD,CACrE,UAA4C,EAC5C,OAAgD,EAChD,WAA+B;IAE/B,2BAA2B,EAAE,CAAC;IAC9B,gCAAgC,CAC/B,UAAU,EACV,OAAO,EACP,WAAW,EACX,iCAAiC,EACjC,eAAe,CAAC,qBAAqB,CAAC,UAAU,CAAC,gBAAgB,EAAE,EAAE;QACpE,aAAa,CAAC,IAAI;QAClB,aAAa,CAAC,MAAM;KACpB,CAAC,CACF,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iCAAiC,CAChD,UAA4C,EAC5C,OAAgD,EAChD,cAA6C;IAE7C,IAAI,eAAe,CAAC;IACpB,IAAI,gBAAgB,CAAC;IAErB,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,aAAa,EAAE,CAAC;QACvE,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,kDAAkD,CACjD,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,8BAA8B,CACpD,CAAC;YACF,sDAAsD,CACrD,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,kCAAkC,CACxD,CAAC;YACF,OAAO,IAAI,kCAAkC,CAC5C,gBAAgB,CAAC,WAAW,CAC3B;gBACC,kBAAkB,EAAE,UAAU,CAAC,yBAAyB,CAAC,gBAAgB,CAAC;gBAC1E,wBAAwB,EACvB,UAAU,CAAC,iCAAiC,CAAC,sBAAsB,CAAC;gBACrE,8BAA8B,EAAE,UAAU,CAAC,yBAAyB,CACnE,8BAA8B,CAC9B;gBACD,6BAA6B,EAAE,UAAU,CAAC,yBAAyB,CAClE,6BAA6B,CAC7B;gBACD,uCAAuC,EAAE,UAAU,CAAC,yBAAyB,CAC5E,qCAAqC,CACrC;gBACD,kCAAkC,EAAE,UAAU,CAAC,yBAAyB,CACvE,gCAAgC,CAChC;gBACD,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qCAAqC,EAAE,UAAU,CAAC,yBAAyB,CAC1E,mCAAmC,CACnC;gBACD,sBAAsB,EAAE,UAAU,CAAC,yBAAyB,CAAC,oBAAoB,CAAC;gBAClF,oBAAoB,EAAE,UAAU,CAAC,yBAAyB,CACzD,SAAS,EACT,oCAAoC,CACpC;gBACD,0BAA0B,EACzB,UAAU,CAAC,yBAAyB,CAAC,wBAAwB,CAAC;gBAC/D,qBAAqB,EAAE,UAAU,CAAC,yBAAyB,CAAC,mBAAmB,CAAC;aAChF,EACD,YAAY,CAAC,OAAO,CACpB,CACD,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,uCAAuC,CAAC;IAC5D,CAAC;SAAM,IAAI,cAAc,CAAC,IAAI,KAAK,2BAA2B,CAAC,UAAU,EAAE,CAAC;QAC3E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE,CACzD,IAAI,qCAAqC,CACxC,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,gBAAgB,GAAG,2CAA2C,CAAC;IAChE,CAAC;IAED,OAAO;QACN,eAAe,EAAE,eAAsE;QACvF,gBAAgB;QAChB,OAAO,EAAE,gBAAgB;KACzB,CAAC;AACH,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport { EntityStorageAuthenticationRestClient } from \"@3sixty/api-auth-entity-storage-rest-client\";\nimport {\n\tEntityStorageAuthenticationService,\n\tinitSchema as initSchemaAuthEntityStorage,\n\ttype AuthenticationAuthorizationCode,\n\ttype AuthenticationPasswordReset,\n\ttype AuthenticationUser\n} from \"@3sixty/api-auth-entity-storage-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 { AuthenticationComponentConfig } from \"../models/config/authenticationComponentConfig.js\";\nimport type { IEngineServerConfig } from \"../models/IEngineServerConfig.js\";\nimport { AuthenticationComponentType } from \"../models/types/authenticationComponentType.js\";\n\n/**\n * Initialise the entity storage of the authentication users, shared by every component that uses\n * 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 initialiseAuthenticationUserEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationUser\",\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 password reset and sign up verification tokens, partitioned\n * like the accounts they belong to.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAuthenticationPasswordResetEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationPasswordReset\",\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 OAuth 2.0 authorization codes of password accounts,\n * partitioned like the accounts they belong to.\n * @param engineCore The engine core.\n * @param context The context for the engine.\n * @param storageType The configured storage type.\n */\nexport function initialiseAuthenticationAuthorizationCodeEntityStorage(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tstorageType: string | undefined\n): void {\n\tinitSchemaAuthEntityStorage();\n\tinitialiseEntityStorageConnector(\n\t\tengineCore,\n\t\tcontext,\n\t\tstorageType,\n\t\t\"AuthenticationAuthorizationCode\",\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 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 initialiseAuthenticationComponent(\n\tengineCore: IEngineCore<IEngineServerConfig>,\n\tcontext: IEngineCoreContext<IEngineServerConfig>,\n\tinstanceConfig: AuthenticationComponentConfig\n): EngineTypeInitialiserReturn<AuthenticationComponentConfig, typeof ComponentFactory> {\n\tlet createComponent;\n\tlet instanceTypeName;\n\n\tif (instanceConfig.type === AuthenticationComponentType.EntityStorage) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) => {\n\t\t\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\tinitialiseAuthenticationPasswordResetEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.passwordResetEntityStorageType\n\t\t\t);\n\t\t\tinitialiseAuthenticationAuthorizationCodeEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.authorizationCodeEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageAuthenticationService(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(\n\t\t\t\t\t{\n\t\t\t\t\t\tvaultConnectorType: engineCore.getRegisteredInstanceType(\"vaultConnector\"),\n\t\t\t\t\t\ttenantAdminComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceTypeOptional(\"tenantAdminComponent\"),\n\t\t\t\t\t\tauthenticationAuditServiceType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAuditComponent\"\n\t\t\t\t\t\t),\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\tauthenticationAccountAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tauthenticationAccountComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"authenticationAccountComponent\"\n\t\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\torganizationRequestAdminComponentType: engineCore.getRegisteredInstanceType(\n\t\t\t\t\t\t\t\"organizationRequestAdminComponent\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\tmessagingComponentType: engineCore.getRegisteredInstanceType(\"messagingComponent\"),\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\"EntityStorageAuthenticationService\"\n\t\t\t\t\t\t),\n\t\t\t\t\t\ttaskSchedulerComponentType:\n\t\t\t\t\t\t\tengineCore.getRegisteredInstanceType(\"taskSchedulerComponent\"),\n\t\t\t\t\t\tplatformComponentType: engineCore.getRegisteredInstanceType(\"platformComponent\")\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-service\";\n\t} else if (instanceConfig.type === AuthenticationComponentType.RestClient) {\n\t\tcreateComponent = (createConfig: typeof instanceConfig) =>\n\t\t\tnew EntityStorageAuthenticationRestClient(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\tinstanceTypeName = \"entity-storage-authentication-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"]}
@@ -2,10 +2,11 @@
2
2
  // SPDX-License-Identifier: Apache-2.0.
3
3
  import { EntityStorageAuthenticationProviderConnector } from "@3sixty/api-auth-connector-entity-storage";
4
4
  import { AuthenticationProviderFactory } from "@3sixty/api-auth-models";
5
+ import { EntityStorageOAuthProviderConnector } from "@3sixty/api-auth-oauth-connector-entity-storage";
5
6
  import { GoogleOAuthProviderConnector } from "@3sixty/api-auth-oauth-connector-google";
6
7
  import { MicrosoftOAuthProviderConnector } from "@3sixty/api-auth-oauth-connector-microsoft";
7
8
  import { EngineTypeHelper } from "@3sixty/engine-types";
8
- import { initialiseAuthenticationUserEntityStorage } from "./authentication.js";
9
+ import { initialiseAuthenticationAuthorizationCodeEntityStorage, initialiseAuthenticationUserEntityStorage } from "./authentication.js";
9
10
  import { AuthenticationProviderType } from "../models/types/authenticationProviderType.js";
10
11
  /**
11
12
  * Initialise an authentication provider, registered under its authentication provider id.
@@ -17,13 +18,21 @@ import { AuthenticationProviderType } from "../models/types/authenticationProvid
17
18
  export function initialiseAuthenticationProvider(engineCore, context, instanceConfig) {
18
19
  let createComponent;
19
20
  let instanceTypeName;
20
- if (instanceConfig.type === AuthenticationProviderType.EntityStorage) {
21
+ if (instanceConfig.type === AuthenticationProviderType.ThreeSixty) {
21
22
  createComponent = (createConfig) => {
22
23
  initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
23
24
  return new EntityStorageAuthenticationProviderConnector(EngineTypeHelper.mergeConfig(createConfig.options));
24
25
  };
25
26
  instanceTypeName = EntityStorageAuthenticationProviderConnector.NAMESPACE;
26
27
  }
28
+ else if (instanceConfig.type === AuthenticationProviderType.ThreeSixtyOAuth) {
29
+ createComponent = (createConfig) => {
30
+ initialiseAuthenticationUserEntityStorage(engineCore, context, createConfig.options?.userEntityStorageType);
31
+ initialiseAuthenticationAuthorizationCodeEntityStorage(engineCore, context, createConfig.options?.authorizationCodeEntityStorageType);
32
+ return new EntityStorageOAuthProviderConnector(EngineTypeHelper.mergeConfig(createConfig.options));
33
+ };
34
+ instanceTypeName = EntityStorageOAuthProviderConnector.NAMESPACE;
35
+ }
27
36
  else if (instanceConfig.type === AuthenticationProviderType.Google) {
28
37
  createComponent = (createConfig) => new GoogleOAuthProviderConnector(EngineTypeHelper.mergeConfig({
29
38
  loggingComponentType: engineCore.getRegisteredSilencedType("logging", "GoogleOAuthProviderConnector")
@@ -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;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"]}
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,mCAAmC,EAAE,MAAM,iDAAiD,CAAC;AACtG,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,EACN,sDAAsD,EACtD,yCAAyC,EACzC,MAAM,qBAAqB,CAAC;AAG7B,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,UAAU,EAAE,CAAC;QACnE,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,eAAe,EAAE,CAAC;QAC/E,eAAe,GAAG,CAAC,YAAmC,EAAE,EAAE;YACzD,yCAAyC,CACxC,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAC3C,CAAC;YACF,sDAAsD,CACrD,UAAU,EACV,OAAO,EACP,YAAY,CAAC,OAAO,EAAE,kCAAkC,CACxD,CAAC;YACF,OAAO,IAAI,mCAAmC,CAC7C,gBAAgB,CAAC,WAAW,CAAqC,YAAY,CAAC,OAAO,CAAC,CACtF,CAAC;QACH,CAAC,CAAC;QACF,gBAAgB,GAAG,mCAAmC,CAAC,SAAS,CAAC;IAClE,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 { EntityStorageOAuthProviderConnector } from \"@3sixty/api-auth-oauth-connector-entity-storage\";\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 {\n\tinitialiseAuthenticationAuthorizationCodeEntityStorage,\n\tinitialiseAuthenticationUserEntityStorage\n} 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.ThreeSixty) {\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.ThreeSixtyOAuth) {\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\tinitialiseAuthenticationAuthorizationCodeEntityStorage(\n\t\t\t\tengineCore,\n\t\t\t\tcontext,\n\t\t\t\tcreateConfig.options?.authorizationCodeEntityStorageType\n\t\t\t);\n\t\t\treturn new EntityStorageOAuthProviderConnector(\n\t\t\t\tEngineTypeHelper.mergeConfig<(typeof instanceConfig)[\"options\"]>(createConfig.options)\n\t\t\t);\n\t\t};\n\t\tinstanceTypeName = EntityStorageOAuthProviderConnector.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"]}
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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationProviderConfig.js","sources":["../../../../src/models/config/authenticationProviderConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEntityStorageAuthenticationProviderConnectorConstructorOptions } from \"@3sixty/api-auth-connector-entity-storage\";\nimport type { IGoogleOAuthProviderConnectorConstructorOptions } from \"@3sixty/api-auth-oauth-connector-google\";\nimport type { IMicrosoftOAuthProviderConnectorConstructorOptions } from \"@3sixty/api-auth-oauth-connector-microsoft\";\nimport type { AuthenticationProviderType } from \"../types/authenticationProviderType.js\";\n\n/**\n * Authentication provider config types.\n */\nexport type AuthenticationProviderConfig =\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.EntityStorage;\n\t\t\toptions?: IEntityStorageAuthenticationProviderConnectorConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.Google;\n\t\t\toptions: IGoogleOAuthProviderConnectorConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.Microsoft;\n\t\t\toptions: IMicrosoftOAuthProviderConnectorConstructorOptions;\n\t };\n"]}
1
+ {"version":3,"file":"authenticationProviderConfig.js","sources":["../../../../src/models/config/authenticationProviderConfig.ts"],"names":[],"mappings":"","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\nimport type { IEntityStorageAuthenticationProviderConnectorConstructorOptions } from \"@3sixty/api-auth-connector-entity-storage\";\nimport type { IEntityStorageOAuthProviderConnectorConstructorOptions } from \"@3sixty/api-auth-oauth-connector-entity-storage\";\nimport type { IGoogleOAuthProviderConnectorConstructorOptions } from \"@3sixty/api-auth-oauth-connector-google\";\nimport type { IMicrosoftOAuthProviderConnectorConstructorOptions } from \"@3sixty/api-auth-oauth-connector-microsoft\";\nimport type { AuthenticationProviderType } from \"../types/authenticationProviderType.js\";\n\n/**\n * Authentication provider config types.\n */\nexport type AuthenticationProviderConfig =\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.ThreeSixty;\n\t\t\toptions?: IEntityStorageAuthenticationProviderConnectorConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.ThreeSixtyOAuth;\n\t\t\toptions: IEntityStorageOAuthProviderConnectorConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.Google;\n\t\t\toptions: IGoogleOAuthProviderConnectorConstructorOptions;\n\t }\n\t| {\n\t\t\ttype: typeof AuthenticationProviderType.Microsoft;\n\t\t\toptions: IMicrosoftOAuthProviderConnectorConstructorOptions;\n\t };\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"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication account admin component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationAccountAdminComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAccountAdminComponentType.js","sources":["../../../../src/models/types/authenticationAccountAdminComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACtD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication account admin component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationAccountAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication account admin component types.\n */\nexport type AuthenticationAccountAdminComponentType =\n\t(typeof AuthenticationAccountAdminComponentType)[keyof typeof AuthenticationAccountAdminComponentType];\n"]}
1
+ {"version":3,"file":"authenticationAccountAdminComponentType.js","sources":["../../../../src/models/types/authenticationAccountAdminComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG;IACtD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication account admin component types.\n */\nexport const AuthenticationAccountAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication account admin component types.\n */\nexport type AuthenticationAccountAdminComponentType =\n\t(typeof AuthenticationAccountAdminComponentType)[keyof typeof AuthenticationAccountAdminComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication account component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationAccountComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAccountComponentType.js","sources":["../../../../src/models/types/authenticationAccountComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,kCAAkC,GAAG;IACjD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication account component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationAccountComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication account component types.\n */\nexport type AuthenticationAccountComponentType =\n\t(typeof AuthenticationAccountComponentType)[keyof typeof AuthenticationAccountComponentType];\n"]}
1
+ {"version":3,"file":"authenticationAccountComponentType.js","sources":["../../../../src/models/types/authenticationAccountComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG;IACjD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication account component types.\n */\nexport const AuthenticationAccountComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication account component types.\n */\nexport type AuthenticationAccountComponentType =\n\t(typeof AuthenticationAccountComponentType)[keyof typeof AuthenticationAccountComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication admin component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationAdminComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAdminComponentType.js","sources":["../../../../src/models/types/authenticationAdminComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication admin component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication admin component types.\n */\nexport type AuthenticationAdminComponentType =\n\t(typeof AuthenticationAdminComponentType)[keyof typeof AuthenticationAdminComponentType];\n"]}
1
+ {"version":3,"file":"authenticationAdminComponentType.js","sources":["../../../../src/models/types/authenticationAdminComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication admin component types.\n */\nexport const AuthenticationAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication admin component types.\n */\nexport type AuthenticationAdminComponentType =\n\t(typeof AuthenticationAdminComponentType)[keyof typeof AuthenticationAdminComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication audit component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationAuditComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationAuditComponentType.js","sources":["../../../../src/models/types/authenticationAuditComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication audit component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationAuditComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication audit component types.\n */\nexport type AuthenticationAuditComponentType =\n\t(typeof AuthenticationAuditComponentType)[keyof typeof AuthenticationAuditComponentType];\n"]}
1
+ {"version":3,"file":"authenticationAuditComponentType.js","sources":["../../../../src/models/types/authenticationAuditComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC/C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication audit component types.\n */\nexport const AuthenticationAuditComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication audit component types.\n */\nexport type AuthenticationAuditComponentType =\n\t(typeof AuthenticationAuditComponentType)[keyof typeof AuthenticationAuditComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationComponentType.js","sources":["../../../../src/models/types/authenticationComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication component types.\n */\nexport type AuthenticationComponentType =\n\t(typeof AuthenticationComponentType)[keyof typeof AuthenticationComponentType];\n"]}
1
+ {"version":3,"file":"authenticationComponentType.js","sources":["../../../../src/models/types/authenticationComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG;IAC1C;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication component types.\n */\nexport const AuthenticationComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Authentication component types.\n */\nexport type AuthenticationComponentType =\n\t(typeof AuthenticationComponentType)[keyof typeof AuthenticationComponentType];\n"]}
@@ -3,12 +3,15 @@
3
3
  /**
4
4
  * Authentication provider types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationProviderType = {
8
7
  /**
9
8
  * Passwords for accounts held in entity storage.
10
9
  */
11
- EntityStorage: "entity-storage",
10
+ ThreeSixty: "3sixty",
11
+ /**
12
+ * The password accounts held in entity storage, signed in through OAuth 2.0.
13
+ */
14
+ ThreeSixtyOAuth: "3sixty-oauth",
12
15
  /**
13
16
  * Google.
14
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationProviderType.js","sources":["../../../../src/models/types/authenticationProviderType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,SAAS,EAAE,WAAW;CACb,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication provider types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationProviderType = {\n\t/**\n\t * Passwords for accounts held in entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * Google.\n\t */\n\tGoogle: \"google\",\n\n\t/**\n\t * Microsoft.\n\t */\n\tMicrosoft: \"microsoft\"\n} as const;\n\n/**\n * Authentication provider types.\n */\nexport type AuthenticationProviderType =\n\t(typeof AuthenticationProviderType)[keyof typeof AuthenticationProviderType];\n"]}
1
+ {"version":3,"file":"authenticationProviderType.js","sources":["../../../../src/models/types/authenticationProviderType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACzC;;OAEG;IACH,UAAU,EAAE,QAAQ;IAEpB;;OAEG;IACH,eAAe,EAAE,cAAc;IAE/B;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,SAAS,EAAE,WAAW;CACb,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication provider types.\n */\nexport const AuthenticationProviderType = {\n\t/**\n\t * Passwords for accounts held in entity storage.\n\t */\n\tThreeSixty: \"3sixty\",\n\n\t/**\n\t * The password accounts held in entity storage, signed in through OAuth 2.0.\n\t */\n\tThreeSixtyOAuth: \"3sixty-oauth\",\n\n\t/**\n\t * Google.\n\t */\n\tGoogle: \"google\",\n\n\t/**\n\t * Microsoft.\n\t */\n\tMicrosoft: \"microsoft\"\n} as const;\n\n/**\n * Authentication provider types.\n */\nexport type AuthenticationProviderType =\n\t(typeof AuthenticationProviderType)[keyof typeof AuthenticationProviderType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Authentication rate component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const AuthenticationRateComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"authenticationRateComponentType.js","sources":["../../../../src/models/types/authenticationRateComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication rate component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const AuthenticationRateComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication rate component types.\n */\nexport type AuthenticationRateComponentType =\n\t(typeof AuthenticationRateComponentType)[keyof typeof AuthenticationRateComponentType];\n"]}
1
+ {"version":3,"file":"authenticationRateComponentType.js","sources":["../../../../src/models/types/authenticationRateComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC9C;;OAEG;IACH,aAAa,EAAE,gBAAgB;CACtB,CAAC","sourcesContent":["// Copyright 2026 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Authentication rate component types.\n */\nexport const AuthenticationRateComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\"\n} as const;\n\n/**\n * Authentication rate component types.\n */\nexport type AuthenticationRateComponentType =\n\t(typeof AuthenticationRateComponentType)[keyof typeof AuthenticationRateComponentType];\n"]}
@@ -0,0 +1,16 @@
1
+ // Copyright 2026 3Sixty Trade Ltd.
2
+ // SPDX-License-Identifier: Apache-2.0.
3
+ /**
4
+ * Feature component types.
5
+ */
6
+ export const FeatureComponentType = {
7
+ /**
8
+ * Service.
9
+ */
10
+ Service: "service",
11
+ /**
12
+ * REST client.
13
+ */
14
+ RestClient: "rest-client"
15
+ };
16
+ //# 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,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 */\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"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Information component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const InformationComponentType = {
8
7
  /**
9
8
  * Service.
@@ -1 +1 @@
1
- {"version":3,"file":"informationComponentType.js","sources":["../../../../src/models/types/informationComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACvC;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Information component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const InformationComponentType = {\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 * Information component types.\n */\nexport type InformationComponentType =\n\t(typeof InformationComponentType)[keyof typeof InformationComponentType];\n"]}
1
+ {"version":3,"file":"informationComponentType.js","sources":["../../../../src/models/types/informationComponentType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACvC;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Information component types.\n */\nexport const InformationComponentType = {\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 * Information component types.\n */\nexport type InformationComponentType =\n\t(typeof InformationComponentType)[keyof typeof InformationComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Mime type route processor types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const MimeTypeProcessorType = {
8
7
  /**
9
8
  * Jwt.
@@ -1 +1 @@
1
- {"version":3,"file":"mimeTypeProcessorType.js","sources":["../../../../src/models/types/mimeTypeProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACpC;;OAEG;IACH,GAAG,EAAE,KAAK;CACD,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Mime type route processor types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const MimeTypeProcessorType = {\n\t/**\n\t * Jwt.\n\t */\n\tJwt: \"jwt\"\n} as const;\n\n/**\n * Mime type processor types.\n */\nexport type MimeTypeProcessorType =\n\t(typeof MimeTypeProcessorType)[keyof typeof MimeTypeProcessorType];\n"]}
1
+ {"version":3,"file":"mimeTypeProcessorType.js","sources":["../../../../src/models/types/mimeTypeProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACpC;;OAEG;IACH,GAAG,EAAE,KAAK;CACD,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Mime type route processor types.\n */\nexport const MimeTypeProcessorType = {\n\t/**\n\t * Jwt.\n\t */\n\tJwt: \"jwt\"\n} as const;\n\n/**\n * Mime type processor types.\n */\nexport type MimeTypeProcessorType =\n\t(typeof MimeTypeProcessorType)[keyof typeof MimeTypeProcessorType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * OAuth component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const OAuthComponentType = {
8
7
  /**
9
8
  * Service.
@@ -1 +1 @@
1
- {"version":3,"file":"oauthComponentType.js","sources":["../../../../src/models/types/oauthComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,SAAS;CACT,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * OAuth component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const OAuthComponentType = {\n\t/**\n\t * Service.\n\t */\n\tService: \"service\"\n} as const;\n\n/**\n * OAuth component types.\n */\nexport type OAuthComponentType = (typeof OAuthComponentType)[keyof typeof OAuthComponentType];\n"]}
1
+ {"version":3,"file":"oauthComponentType.js","sources":["../../../../src/models/types/oauthComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IACjC;;OAEG;IACH,OAAO,EAAE,SAAS;CACT,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * OAuth component types.\n */\nexport const OAuthComponentType = {\n\t/**\n\t * Service.\n\t */\n\tService: \"service\"\n} as const;\n\n/**\n * OAuth component types.\n */\nexport type OAuthComponentType = (typeof OAuthComponentType)[keyof typeof OAuthComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Organization component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const OrganizationComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"organizationComponentType.js","sources":["../../../../src/models/types/organizationComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Organization component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const OrganizationComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Organization component types.\n */\nexport type OrganizationComponentType =\n\t(typeof OrganizationComponentType)[keyof typeof OrganizationComponentType];\n"]}
1
+ {"version":3,"file":"organizationComponentType.js","sources":["../../../../src/models/types/organizationComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACxC;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Organization component types.\n */\nexport const OrganizationComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Organization component types.\n */\nexport type OrganizationComponentType =\n\t(typeof OrganizationComponentType)[keyof typeof OrganizationComponentType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Organization request admin component types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const OrganizationRequestAdminComponentType = {
8
7
  /**
9
8
  * Entity storage.
@@ -1 +1 @@
1
- {"version":3,"file":"organizationRequestAdminComponentType.js","sources":["../../../../src/models/types/organizationRequestAdminComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACpD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Organization request admin component types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const OrganizationRequestAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Organization request admin component types.\n */\nexport type OrganizationRequestAdminComponentType =\n\t(typeof OrganizationRequestAdminComponentType)[keyof typeof OrganizationRequestAdminComponentType];\n"]}
1
+ {"version":3,"file":"organizationRequestAdminComponentType.js","sources":["../../../../src/models/types/organizationRequestAdminComponentType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,qCAAqC,GAAG;IACpD;;OAEG;IACH,aAAa,EAAE,gBAAgB;IAE/B;;OAEG;IACH,UAAU,EAAE,aAAa;CAChB,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Organization request admin component types.\n */\nexport const OrganizationRequestAdminComponentType = {\n\t/**\n\t * Entity storage.\n\t */\n\tEntityStorage: \"entity-storage\",\n\n\t/**\n\t * REST client.\n\t */\n\tRestClient: \"rest-client\"\n} as const;\n\n/**\n * Organization request admin component types.\n */\nexport type OrganizationRequestAdminComponentType =\n\t(typeof OrganizationRequestAdminComponentType)[keyof typeof OrganizationRequestAdminComponentType];\n"]}
@@ -4,7 +4,6 @@
4
4
  /**
5
5
  * REST route processor types.
6
6
  */
7
- // eslint-disable-next-line @typescript-eslint/naming-convention
8
7
  export const RestRouteProcessorType = {
9
8
  /**
10
9
  * Auth header.
@@ -1 +1 @@
1
- {"version":3,"file":"restRouteProcessorType.js","sources":["../../../../src/models/types/restRouteProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC;;OAEG;IACH,UAAU,EAAE,aAAa;IAEzB;;OAEG;IACH,qBAAqB,EAAE,wBAAwB;IAE/C;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,eAAe,EAAE,mBAAmB;IAEpC;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,YAAY,EAAE,eAAe;IAE7B;;OAEG;IACH,cAAc,EAAE,iBAAiB;IAEjC;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,aAAa,EAAE,eAAe;IAE9B;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * REST route processor types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const RestRouteProcessorType = {\n\t/**\n\t * Auth header.\n\t */\n\tAuthHeader: \"auth-header\",\n\n\t/**\n\t * Authentication account, sets the identity and organization of the signed in account.\n\t */\n\tAuthenticationAccount: \"authentication-account\",\n\n\t/**\n\t * Logging.\n\t */\n\tLogging: \"logging\",\n\n\t/**\n\t * Context ID.\n\t */\n\tContextId: \"context-id\",\n\n\t/**\n\t * Static Context ID.\n\t */\n\tStaticContextId: \"static-context-id\",\n\n\t/**\n\t * Tenant.\n\t */\n\tTenant: \"tenant\",\n\n\t/**\n\t * Single Tenant.\n\t */\n\tSingleTenant: \"single-tenant\",\n\n\t/**\n\t * Tenant override.\n\t */\n\tTenantOverride: \"tenant-override\",\n\n\t/**\n\t * REST Route.\n\t */\n\tRestRoute: \"rest-route\",\n\n\t/**\n\t * Metrics.\n\t */\n\tMetrics: \"metrics\",\n\n\t/**\n\t * Tracing.\n\t */\n\tTracing: \"tracing\",\n\n\t/**\n\t * Authorization.\n\t */\n\tAuthorization: \"authorization\",\n\n\t/**\n\t * Origin check, rejects cookie authenticated state changing requests from other origins.\n\t */\n\tOriginCheck: \"origin-check\"\n} as const;\n\n/**\n * REST route processor types.\n */\nexport type RestRouteProcessorType =\n\t(typeof RestRouteProcessorType)[keyof typeof RestRouteProcessorType];\n"]}
1
+ {"version":3,"file":"restRouteProcessorType.js","sources":["../../../../src/models/types/restRouteProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACrC;;OAEG;IACH,UAAU,EAAE,aAAa;IAEzB;;OAEG;IACH,qBAAqB,EAAE,wBAAwB;IAE/C;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,eAAe,EAAE,mBAAmB;IAEpC;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,YAAY,EAAE,eAAe;IAE7B;;OAEG;IACH,cAAc,EAAE,iBAAiB;IAEjC;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,aAAa,EAAE,eAAe;IAE9B;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * REST route processor types.\n */\nexport const RestRouteProcessorType = {\n\t/**\n\t * Auth header.\n\t */\n\tAuthHeader: \"auth-header\",\n\n\t/**\n\t * Authentication account, sets the identity and organization of the signed in account.\n\t */\n\tAuthenticationAccount: \"authentication-account\",\n\n\t/**\n\t * Logging.\n\t */\n\tLogging: \"logging\",\n\n\t/**\n\t * Context ID.\n\t */\n\tContextId: \"context-id\",\n\n\t/**\n\t * Static Context ID.\n\t */\n\tStaticContextId: \"static-context-id\",\n\n\t/**\n\t * Tenant.\n\t */\n\tTenant: \"tenant\",\n\n\t/**\n\t * Single Tenant.\n\t */\n\tSingleTenant: \"single-tenant\",\n\n\t/**\n\t * Tenant override.\n\t */\n\tTenantOverride: \"tenant-override\",\n\n\t/**\n\t * REST Route.\n\t */\n\tRestRoute: \"rest-route\",\n\n\t/**\n\t * Metrics.\n\t */\n\tMetrics: \"metrics\",\n\n\t/**\n\t * Tracing.\n\t */\n\tTracing: \"tracing\",\n\n\t/**\n\t * Authorization.\n\t */\n\tAuthorization: \"authorization\",\n\n\t/**\n\t * Origin check, rejects cookie authenticated state changing requests from other origins.\n\t */\n\tOriginCheck: \"origin-check\"\n} as const;\n\n/**\n * REST route processor types.\n */\nexport type RestRouteProcessorType =\n\t(typeof RestRouteProcessorType)[keyof typeof RestRouteProcessorType];\n"]}
@@ -4,7 +4,6 @@
4
4
  /**
5
5
  * Socket route processor types.
6
6
  */
7
- // eslint-disable-next-line @typescript-eslint/naming-convention
8
7
  export const SocketRouteProcessorType = {
9
8
  /**
10
9
  * Auth header.
@@ -1 +1 @@
1
- {"version":3,"file":"socketRouteProcessorType.js","sources":["../../../../src/models/types/socketRouteProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACvC;;OAEG;IACH,UAAU,EAAE,aAAa;IAEzB;;OAEG;IACH,qBAAqB,EAAE,wBAAwB;IAE/C;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,eAAe,EAAE,mBAAmB;IAEpC;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,YAAY,EAAE,eAAe;IAE7B;;OAEG;IACH,cAAc,EAAE,iBAAiB;IAEjC;;OAEG;IACH,WAAW,EAAE,cAAc;IAE3B;;OAEG;IACH,aAAa,EAAE,eAAe;IAE9B;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Socket route processor types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const SocketRouteProcessorType = {\n\t/**\n\t * Auth header.\n\t */\n\tAuthHeader: \"auth-header\",\n\n\t/**\n\t * Authentication account, sets the identity and organization of the signed in account.\n\t */\n\tAuthenticationAccount: \"authentication-account\",\n\n\t/**\n\t * Logging.\n\t */\n\tLogging: \"logging\",\n\n\t/**\n\t * Context ID.\n\t */\n\tContextId: \"context-id\",\n\n\t/**\n\t * Static Context ID.\n\t */\n\tStaticContextId: \"static-context-id\",\n\n\t/**\n\t * Tenant.\n\t */\n\tTenant: \"tenant\",\n\n\t/**\n\t * Single Tenant.\n\t */\n\tSingleTenant: \"single-tenant\",\n\n\t/**\n\t * Tenant override.\n\t */\n\tTenantOverride: \"tenant-override\",\n\n\t/**\n\t * Socket Route.\n\t */\n\tSocketRoute: \"socket-route\",\n\n\t/**\n\t * Authorization.\n\t */\n\tAuthorization: \"authorization\",\n\n\t/**\n\t * Origin check, rejects cookie authenticated socket connections from other origins.\n\t */\n\tOriginCheck: \"origin-check\"\n} as const;\n\n/**\n * Socket route processor types.\n */\nexport type SocketRouteProcessorType =\n\t(typeof SocketRouteProcessorType)[keyof typeof SocketRouteProcessorType];\n"]}
1
+ {"version":3,"file":"socketRouteProcessorType.js","sources":["../../../../src/models/types/socketRouteProcessorType.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAChC,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACvC;;OAEG;IACH,UAAU,EAAE,aAAa;IAEzB;;OAEG;IACH,qBAAqB,EAAE,wBAAwB;IAE/C;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,SAAS,EAAE,YAAY;IAEvB;;OAEG;IACH,eAAe,EAAE,mBAAmB;IAEpC;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,YAAY,EAAE,eAAe;IAE7B;;OAEG;IACH,cAAc,EAAE,iBAAiB;IAEjC;;OAEG;IACH,WAAW,EAAE,cAAc;IAE3B;;OAEG;IACH,aAAa,EAAE,eAAe;IAE9B;;OAEG;IACH,WAAW,EAAE,cAAc;CAClB,CAAC","sourcesContent":["// Copyright 2024 IOTA Stiftung.\n// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Socket route processor types.\n */\nexport const SocketRouteProcessorType = {\n\t/**\n\t * Auth header.\n\t */\n\tAuthHeader: \"auth-header\",\n\n\t/**\n\t * Authentication account, sets the identity and organization of the signed in account.\n\t */\n\tAuthenticationAccount: \"authentication-account\",\n\n\t/**\n\t * Logging.\n\t */\n\tLogging: \"logging\",\n\n\t/**\n\t * Context ID.\n\t */\n\tContextId: \"context-id\",\n\n\t/**\n\t * Static Context ID.\n\t */\n\tStaticContextId: \"static-context-id\",\n\n\t/**\n\t * Tenant.\n\t */\n\tTenant: \"tenant\",\n\n\t/**\n\t * Single Tenant.\n\t */\n\tSingleTenant: \"single-tenant\",\n\n\t/**\n\t * Tenant override.\n\t */\n\tTenantOverride: \"tenant-override\",\n\n\t/**\n\t * Socket Route.\n\t */\n\tSocketRoute: \"socket-route\",\n\n\t/**\n\t * Authorization.\n\t */\n\tAuthorization: \"authorization\",\n\n\t/**\n\t * Origin check, rejects cookie authenticated socket connections from other origins.\n\t */\n\tOriginCheck: \"origin-check\"\n} as const;\n\n/**\n * Socket route processor types.\n */\nexport type SocketRouteProcessorType =\n\t(typeof SocketRouteProcessorType)[keyof typeof SocketRouteProcessorType];\n"]}
@@ -3,7 +3,6 @@
3
3
  /**
4
4
  * Web server types.
5
5
  */
6
- // eslint-disable-next-line @typescript-eslint/naming-convention
7
6
  export const WebServerType = {
8
7
  /**
9
8
  * Fastify.
@@ -1 +1 @@
1
- {"version":3,"file":"webServerType.js","sources":["../../../../src/models/types/webServerType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,gEAAgE;AAChE,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,MAAM,EAAE,QAAQ;CACP,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Web server types.\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const WebServerType = {\n\t/**\n\t * Fastify.\n\t */\n\tFastify: \"fastify\",\n\n\t/**\n\t * Hono.\n\t */\n\tHono: \"hono\",\n\n\t/**\n\t * Native Node.js.\n\t */\n\tNative: \"native\"\n} as const;\n\n/**\n * Web server types.\n */\nexport type WebServerType = (typeof WebServerType)[keyof typeof WebServerType];\n"]}
1
+ {"version":3,"file":"webServerType.js","sources":["../../../../src/models/types/webServerType.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,uCAAuC;AAEvC;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC5B;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,MAAM,EAAE,QAAQ;CACP,CAAC","sourcesContent":["// Copyright 2026 3Sixty Trade Ltd.\n// SPDX-License-Identifier: Apache-2.0.\n\n/**\n * Web server types.\n */\nexport const WebServerType = {\n\t/**\n\t * Fastify.\n\t */\n\tFastify: \"fastify\",\n\n\t/**\n\t * Hono.\n\t */\n\tHono: \"hono\",\n\n\t/**\n\t * Native Node.js.\n\t */\n\tNative: \"native\"\n} as const;\n\n/**\n * Web server types.\n */\nexport type WebServerType = (typeof WebServerType)[keyof typeof WebServerType];\n"]}
@@ -18,6 +18,14 @@ export declare function initialiseAuthenticationUserEntityStorage(engineCore: IE
18
18
  * @param storageType The configured storage type.
19
19
  */
20
20
  export declare function initialiseAuthenticationPasswordResetEntityStorage(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, storageType: string | undefined): void;
21
+ /**
22
+ * Initialise the entity storage of the OAuth 2.0 authorization codes of password accounts,
23
+ * partitioned like the accounts they belong to.
24
+ * @param engineCore The engine core.
25
+ * @param context The context for the engine.
26
+ * @param storageType The configured storage type.
27
+ */
28
+ export declare function initialiseAuthenticationAuthorizationCodeEntityStorage(engineCore: IEngineCore<IEngineServerConfig>, context: IEngineCoreContext<IEngineServerConfig>, storageType: string | undefined): void;
21
29
  /**
22
30
  * Initialise the authentication component.
23
31
  * @param engineCore The engine core.
@@ -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
  */
@@ -1,4 +1,5 @@
1
1
  import type { IEntityStorageAuthenticationProviderConnectorConstructorOptions } from "@3sixty/api-auth-connector-entity-storage";
2
+ import type { IEntityStorageOAuthProviderConnectorConstructorOptions } from "@3sixty/api-auth-oauth-connector-entity-storage";
2
3
  import type { IGoogleOAuthProviderConnectorConstructorOptions } from "@3sixty/api-auth-oauth-connector-google";
3
4
  import type { IMicrosoftOAuthProviderConnectorConstructorOptions } from "@3sixty/api-auth-oauth-connector-microsoft";
4
5
  import type { AuthenticationProviderType } from "../types/authenticationProviderType.js";
@@ -6,8 +7,11 @@ import type { AuthenticationProviderType } from "../types/authenticationProvider
6
7
  * Authentication provider config types.
7
8
  */
8
9
  export type AuthenticationProviderConfig = {
9
- type: typeof AuthenticationProviderType.EntityStorage;
10
+ type: typeof AuthenticationProviderType.ThreeSixty;
10
11
  options?: IEntityStorageAuthenticationProviderConnectorConstructorOptions;
12
+ } | {
13
+ type: typeof AuthenticationProviderType.ThreeSixtyOAuth;
14
+ options: IEntityStorageOAuthProviderConnectorConstructorOptions;
11
15
  } | {
12
16
  type: typeof AuthenticationProviderType.Google;
13
17
  options: IGoogleOAuthProviderConnectorConstructorOptions;
@@ -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
+ };
@@ -5,7 +5,11 @@ export declare const AuthenticationProviderType: {
5
5
  /**
6
6
  * Passwords for accounts held in entity storage.
7
7
  */
8
- readonly EntityStorage: "entity-storage";
8
+ readonly ThreeSixty: "3sixty";
9
+ /**
10
+ * The password accounts held in entity storage, signed in through OAuth 2.0.
11
+ */
12
+ readonly ThreeSixtyOAuth: "3sixty-oauth";
9
13
  /**
10
14
  * Google.
11
15
  */
@@ -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.8](https://github.com/3sixtyglobal/engine/compare/engine-server-types-v0.20.0-next.7...engine-server-types-v0.20.0-next.8) (2026-11-06)
4
+
5
+
6
+ ### Features
7
+
8
+ * name the password authentication providers 3sixty and 3sixty-oauth ([#41](https://github.com/3sixtyglobal/engine/issues/41)) ([9f797f6](https://github.com/3sixtyglobal/engine/commit/9f797f6f69dc756861654411a969a56d5be1d8c1))
9
+
10
+
11
+ ### Dependencies
12
+
13
+ * The following workspace dependencies were updated
14
+ * dependencies
15
+ * @3sixty/engine-models bumped from 0.20.0-next.7 to 0.20.0-next.8
16
+ * @3sixty/engine-types bumped from 0.20.0-next.7 to 0.20.0-next.8
17
+
18
+ ## [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)
19
+
20
+
21
+ ### Features
22
+
23
+ * add the feature component ([#38](https://github.com/3sixtyglobal/engine/issues/38)) ([6f00f60](https://github.com/3sixtyglobal/engine/commit/6f00f6053cfcf76a82c3b41aa065c2b8d5158d73))
24
+
25
+
26
+ ### Dependencies
27
+
28
+ * The following workspace dependencies were updated
29
+ * dependencies
30
+ * @3sixty/engine-models bumped from 0.20.0-next.6 to 0.20.0-next.7
31
+ * @3sixty/engine-types bumped from 0.20.0-next.6 to 0.20.0-next.7
32
+
3
33
  ## [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)
4
34
 
5
35
 
package/docs/examples.md CHANGED
@@ -65,7 +65,7 @@ console.log(serverConfig.types.restRouteProcessor?.length ?? 0); // 2
65
65
 
66
66
  ## Authentication Providers and OAuth
67
67
 
68
- Each provider is registered with the authentication provider factory under its id, so `entity-storage` handles password logins and `google` or `microsoft` handle OAuth sign in through the OAuth component.
68
+ Each provider is registered with the authentication provider factory under its id, so `3sixty` handles password logins and `google` or `microsoft` handle OAuth sign in through the OAuth component. `3sixty-oauth` signs the same password accounts in through OAuth 2.0, with the node as the authorization server, sending the browser to `loginPageUrl` for the e-mail address and password. It creates the `authentication-authorization-code` storage, which the authentication component also creates, so codes issued by the authorize endpoint can be redeemed.
69
69
 
70
70
  ```typescript
71
71
  import type { IEngineServerConfig } from '@3sixty/engine-server-types';
@@ -78,7 +78,11 @@ import {
78
78
  const types: Partial<IEngineServerConfig['types']> = {
79
79
  authenticationComponent: [{ type: AuthenticationComponentType.EntityStorage }],
80
80
  authenticationProvider: [
81
- { type: AuthenticationProviderType.EntityStorage },
81
+ { type: AuthenticationProviderType.ThreeSixty },
82
+ {
83
+ type: AuthenticationProviderType.ThreeSixtyOAuth,
84
+ options: { config: { loginPageUrl: 'https://app.example.org/login' } }
85
+ },
82
86
  {
83
87
  type: AuthenticationProviderType.Google,
84
88
  options: {
@@ -153,3 +157,27 @@ const types: Partial<IEngineServerConfig['types']> = {
153
157
 
154
158
  console.log(types.organizationComponent?.length); // 1
155
159
  ```
160
+
161
+ ## Features
162
+
163
+ 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.
164
+
165
+ ```typescript
166
+ import type { IEngineServerConfig } from '@3sixty/engine-server-types';
167
+ import { FeatureComponentType } from '@3sixty/engine-server-types';
168
+
169
+ const types: IEngineServerConfig['types'] = {
170
+ featureComponent: [
171
+ { type: FeatureComponentType.Service, options: { config: { authorizationModelId: 'system' } } }
172
+ ]
173
+ };
174
+
175
+ const remoteTypes: IEngineServerConfig['types'] = {
176
+ featureComponent: [
177
+ { type: FeatureComponentType.RestClient, options: { endpoint: 'https://node.example.org' } }
178
+ ]
179
+ };
180
+
181
+ console.log(types.featureComponent?.[0].type); // "service"
182
+ console.log(remoteTypes.featureComponent?.[0].type); // "rest-client"
183
+ ```
@@ -0,0 +1,30 @@
1
+ # Function: initialiseAuthenticationAuthorizationCodeEntityStorage()
2
+
3
+ > **initialiseAuthenticationAuthorizationCodeEntityStorage**(`engineCore`, `context`, `storageType`): `void`
4
+
5
+ Initialise the entity storage of the OAuth 2.0 authorization codes of password accounts,
6
+ partitioned like the accounts they belong to.
7
+
8
+ ## Parameters
9
+
10
+ ### engineCore
11
+
12
+ `IEngineCore`\<[`IEngineServerConfig`](../interfaces/IEngineServerConfig.md)\>
13
+
14
+ The engine core.
15
+
16
+ ### context
17
+
18
+ `IEngineCoreContext`\<[`IEngineServerConfig`](../interfaces/IEngineServerConfig.md)\>
19
+
20
+ The context for the engine.
21
+
22
+ ### storageType
23
+
24
+ `string` \| `undefined`
25
+
26
+ The configured storage type.
27
+
28
+ ## Returns
29
+
30
+ `void`
@@ -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)
@@ -58,6 +61,7 @@
58
61
 
59
62
  - [initialiseAuthenticationUserEntityStorage](functions/initialiseAuthenticationUserEntityStorage.md)
60
63
  - [initialiseAuthenticationPasswordResetEntityStorage](functions/initialiseAuthenticationPasswordResetEntityStorage.md)
64
+ - [initialiseAuthenticationAuthorizationCodeEntityStorage](functions/initialiseAuthenticationAuthorizationCodeEntityStorage.md)
61
65
  - [initialiseAuthenticationComponent](functions/initialiseAuthenticationComponent.md)
62
66
  - [initialiseAccountDataEntityStorage](functions/initialiseAccountDataEntityStorage.md)
63
67
  - [initialiseOrganizationRequestEntityStorage](functions/initialiseOrganizationRequestEntityStorage.md)
@@ -68,6 +72,7 @@
68
72
  - [initialiseAuthenticationAuditComponent](functions/initialiseAuthenticationAuditComponent.md)
69
73
  - [initialiseAuthenticationProvider](functions/initialiseAuthenticationProvider.md)
70
74
  - [initialiseAuthenticationRateComponent](functions/initialiseAuthenticationRateComponent.md)
75
+ - [initialiseFeatureComponent](functions/initialiseFeatureComponent.md)
71
76
  - [initialiseInformationComponent](functions/initialiseInformationComponent.md)
72
77
  - [initialiseMimeTypeProcessorComponent](functions/initialiseMimeTypeProcessorComponent.md)
73
78
  - [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)\>[]
@@ -1,5 +1,5 @@
1
1
  # Type Alias: AuthenticationProviderConfig
2
2
 
3
- > **AuthenticationProviderConfig** = \{ `type`: *typeof* [`EntityStorage`](../variables/AuthenticationProviderType.md#entitystorage); `options?`: `IEntityStorageAuthenticationProviderConnectorConstructorOptions`; \} \| \{ `type`: *typeof* [`Google`](../variables/AuthenticationProviderType.md#google); `options`: `IGoogleOAuthProviderConnectorConstructorOptions`; \} \| \{ `type`: *typeof* [`Microsoft`](../variables/AuthenticationProviderType.md#microsoft); `options`: `IMicrosoftOAuthProviderConnectorConstructorOptions`; \}
3
+ > **AuthenticationProviderConfig** = \{ `type`: *typeof* [`ThreeSixty`](../variables/AuthenticationProviderType.md#threesixty); `options?`: `IEntityStorageAuthenticationProviderConnectorConstructorOptions`; \} \| \{ `type`: *typeof* [`ThreeSixtyOAuth`](../variables/AuthenticationProviderType.md#threesixtyoauth); `options`: `IEntityStorageOAuthProviderConnectorConstructorOptions`; \} \| \{ `type`: *typeof* [`Google`](../variables/AuthenticationProviderType.md#google); `options`: `IGoogleOAuthProviderConnectorConstructorOptions`; \} \| \{ `type`: *typeof* [`Microsoft`](../variables/AuthenticationProviderType.md#microsoft); `options`: `IMicrosoftOAuthProviderConnectorConstructorOptions`; \}
4
4
 
5
5
  Authentication provider config types.
@@ -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.
@@ -6,12 +6,18 @@ Authentication provider types.
6
6
 
7
7
  ## Type Declaration
8
8
 
9
- ### EntityStorage {#entitystorage}
9
+ ### ThreeSixty {#threesixty}
10
10
 
11
- > `readonly` **EntityStorage**: `"entity-storage"` = `"entity-storage"`
11
+ > `readonly` **ThreeSixty**: `"3sixty"` = `"3sixty"`
12
12
 
13
13
  Passwords for accounts held in entity storage.
14
14
 
15
+ ### ThreeSixtyOAuth {#threesixtyoauth}
16
+
17
+ > `readonly` **ThreeSixtyOAuth**: `"3sixty-oauth"` = `"3sixty-oauth"`
18
+
19
+ The password accounts held in entity storage, signed in through OAuth 2.0.
20
+
15
21
  ### Google {#google}
16
22
 
17
23
  > `readonly` **Google**: `"google"` = `"google"`
@@ -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.6",
3
+ "version": "0.20.0-next.8",
4
4
  "description": "Server-focused component types and configuration models for API routing and hosting.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -10,6 +10,7 @@
10
10
  "author": "martyn.janes@iota.org",
11
11
  "license": "Apache-2.0",
12
12
  "type": "module",
13
+ "sideEffects": false,
13
14
  "engines": {
14
15
  "node": ">=24.0.0",
15
16
  "bun": ">=1.4.4"
@@ -21,9 +22,11 @@
21
22
  "@3sixty/api-auth-entity-storage-rest-client": "next",
22
23
  "@3sixty/api-auth-entity-storage-service": "next",
23
24
  "@3sixty/api-auth-models": "next",
25
+ "@3sixty/api-auth-oauth-connector-entity-storage": "next",
24
26
  "@3sixty/api-auth-oauth-connector-google": "next",
25
27
  "@3sixty/api-auth-oauth-connector-microsoft": "next",
26
28
  "@3sixty/api-auth-oauth-service": "next",
29
+ "@3sixty/api-auth-rest-client": "next",
27
30
  "@3sixty/api-auth-service": "next",
28
31
  "@3sixty/api-models": "next",
29
32
  "@3sixty/api-processors": "next",
@@ -33,8 +36,8 @@
33
36
  "@3sixty/authorization-service": "next",
34
37
  "@3sixty/context": "next",
35
38
  "@3sixty/core": "next",
36
- "@3sixty/engine-models": "0.20.0-next.6",
37
- "@3sixty/engine-types": "0.20.0-next.6",
39
+ "@3sixty/engine-models": "0.20.0-next.8",
40
+ "@3sixty/engine-types": "0.20.0-next.8",
38
41
  "@3sixty/nameof": "next",
39
42
  "@3sixty/telemetry-processors": "next",
40
43
  "@3sixty/tracing-processors": "next"