@acorex-platform/module-integration-management-client 0.0.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/fesm2022/acorex-platform-module-integration-management-client-connect-with-credentials.command-DO_zqjHV.mjs +102 -0
  2. package/fesm2022/acorex-platform-module-integration-management-client-connect-with-credentials.command-DO_zqjHV.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-integration-management-client-contracts.mjs +163 -0
  4. package/fesm2022/acorex-platform-module-integration-management-client-contracts.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-integration-management-client-delete-connection.command-DQ_kn8dH.mjs +53 -0
  6. package/fesm2022/acorex-platform-module-integration-management-client-delete-connection.command-DQ_kn8dH.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-integration-management-client-disconnect-connection.command-B4HeDA1n.mjs +60 -0
  8. package/fesm2022/acorex-platform-module-integration-management-client-disconnect-connection.command-B4HeDA1n.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-integration-management-client-get-provider.query-Ds10RwnU.mjs +30 -0
  10. package/fesm2022/acorex-platform-module-integration-management-client-get-provider.query-Ds10RwnU.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-integration-management-client-integration-connection-lifecycle.dispatcher-DRWR9ysx.mjs +45 -0
  12. package/fesm2022/acorex-platform-module-integration-management-client-integration-connection-lifecycle.dispatcher-DRWR9ysx.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-integration-management-client-integration-oauth-callback-page.component-XhloXUsZ.mjs +176 -0
  14. package/fesm2022/acorex-platform-module-integration-management-client-integration-oauth-callback-page.component-XhloXUsZ.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-integration-management-client-integrations-page.component-Q-SHidYA.mjs +406 -0
  16. package/fesm2022/acorex-platform-module-integration-management-client-integrations-page.component-Q-SHidYA.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-integration-management-client-list-domains.query--GGD6J46.mjs +52 -0
  18. package/fesm2022/acorex-platform-module-integration-management-client-list-domains.query--GGD6J46.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-integration-management-client-list-my-connections.query-CmHu1qFm.mjs +27 -0
  20. package/fesm2022/acorex-platform-module-integration-management-client-list-my-connections.query-CmHu1qFm.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-integration-management-client-list-providers.query-ODKJ_UhI.mjs +65 -0
  22. package/fesm2022/acorex-platform-module-integration-management-client-list-providers.query-ODKJ_UhI.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-integration-management-client-update-connection.command-BNMR-t12.mjs +42 -0
  24. package/fesm2022/acorex-platform-module-integration-management-client-update-connection.command-BNMR-t12.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-integration-management-client-validate-connection.command-CGtb_GPX.mjs +83 -0
  26. package/fesm2022/acorex-platform-module-integration-management-client-validate-connection.command-CGtb_GPX.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-integration-management-client.mjs +776 -0
  28. package/fesm2022/acorex-platform-module-integration-management-client.mjs.map +1 -0
  29. package/package.json +28 -0
  30. package/types/acorex-platform-module-integration-management-client-contracts.d.ts +191 -0
  31. package/types/acorex-platform-module-integration-management-client.d.ts +74 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-integration-management-client.mjs","sources":["../../../../libs/modules/integration-management/client/src/lib/features/connect/connect.command.types.ts","../../../../libs/modules/integration-management/client/src/lib/features/shared/integration-connection.manager.ts","../../../../libs/modules/integration-management/client/src/lib/manifest.ts","../../../../libs/modules/integration-management/client/src/lib/menu.provider.ts","../../../../libs/modules/integration-management/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/integration-management/client/src/lib/settings.provider.ts","../../../../libs/modules/integration-management/client/src/lib/features/domains/integration-legacy-domain.provider.ts","../../../../libs/modules/integration-management/client/src/lib/features/shared/integration-runtime.service.impl.ts","../../../../libs/modules/integration-management/client/src/lib/features/shared/integration-connection-status.util.ts","../../../../libs/modules/integration-management/client/src/lib/features/shared/integration-evaluator-scope.provider.ts","../../../../libs/modules/integration-management/client/src/lib/features/integrations-page/integrations-page.routes.ts","../../../../libs/modules/integration-management/client/src/lib/features/oauth-callback/integration-oauth-callback.routes.ts","../../../../libs/modules/integration-management/client/src/lib/integration-management.module.ts","../../../../libs/modules/integration-management/client/src/acorex-platform-module-integration-management-client.ts"],"sourcesContent":["import type { AXPIntegrationAuthMethodType, AXPIntegrationConnectionScope, AXPSafeIntegrationConnectionDto } from '@acorex-platform/framework-shared/core';\n\n//#region ---- Connect command types ----\n\nexport interface ConnectCommandInput {\n providerId: string;\n connectionScope?: AXPIntegrationConnectionScope;\n /** When set, skips auth-method picker and uses this method directly. */\n authMethodType?: AXPIntegrationAuthMethodType;\n}\n\nexport type ConnectCommandResult =\n | { outcome: 'cancelled' }\n | { outcome: 'connected'; connection: AXPSafeIntegrationConnectionDto }\n | { outcome: 'redirect'; redirectUrl: string };\n\n//#endregion\n","import {\n AXP_INTEGRATION_CONNECTION_SCOPE,\n AXP_INTEGRATION_CONNECTION_STATUS,\n type AXPSafeIntegrationConnectionDto,\n} from '@acorex-platform/framework-shared/core';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, isEmpty, trim } from 'lodash';\nimport { RootConfig } from '@acorex-platform/module-integration-management-client/contracts';\nimport type { AXMIntegrationManagementIntegrationConnectionEntityModel } from '@acorex-platform/module-integration-management-client/contracts';\n\n//#region ---- Credential helpers ----\n\nexport const AXP_INTEGRATION_CREDENTIAL_MASK = '••••••••';\n\nfunction hasConfigCredential(config: Record<string, unknown>): boolean {\n return (\n !isEmpty(trim(String(config['apiKey'] ?? ''))) ||\n !isEmpty(trim(String(config['accessToken'] ?? ''))) ||\n !isEmpty(trim(String(config['refreshToken'] ?? ''))) ||\n !isEmpty(trim(String(config['clientSecret'] ?? ''))) ||\n !isEmpty(trim(String(config['botToken'] ?? '')))\n );\n}\n\nexport function isMaskedIntegrationCredential(value: string | null | undefined): boolean {\n const normalized = trim(value ?? '');\n return !normalized || normalized === AXP_INTEGRATION_CREDENTIAL_MASK;\n}\n\n/** Clears runtime OAuth/token fields while keeping reconnect-friendly client settings. */\nexport function scrubDisconnectedConnectionConfig(\n config: Record<string, unknown> | null | undefined,\n): Record<string, unknown> | null {\n if (!config) {\n return null;\n }\n\n const next = { ...config };\n delete next['accessToken'];\n delete next['refreshToken'];\n delete next['tokenExpiresAt'];\n delete next['oauthTokenJson'];\n delete next['authorizationUrl'];\n delete next['token'];\n delete next['password'];\n delete next['apiToken'];\n delete next['apiKey'];\n delete next['botToken'];\n return next;\n}\n\nexport function hasConfiguredIntegrationCredentials(\n connection: AXMIntegrationManagementIntegrationConnectionEntityModel | null | undefined,\n): boolean {\n if (!connection || connection.status !== AXP_INTEGRATION_CONNECTION_STATUS.Connected) {\n return false;\n }\n if (connection.isRevoked || connection.isDisabled) {\n return false;\n }\n if (!isEmpty(trim(defaultTo(connection.secretRef, '')))) {\n return true;\n }\n const config = (connection.config ?? {}) as Record<string, unknown>;\n return hasConfigCredential(config);\n}\n\n//#endregion\n\n//#region ---- Safe mapper ----\n\nexport function toSafeIntegrationConnectionDto(\n connection: AXMIntegrationManagementIntegrationConnectionEntityModel,\n): AXPSafeIntegrationConnectionDto {\n const secretRef = defaultTo(connection.secretRef, '');\n const config = (connection.config ?? {}) as Record<string, unknown>;\n const hasConfigSecret = hasConfigCredential(config);\n const hasSecret = !isEmpty(trim(secretRef)) || hasConfigSecret;\n\n return {\n id: connection.id,\n providerId: connection.providerId,\n connectionScope: connection.connectionScope,\n connectionKey: connection.connectionKey,\n displayName: connection.displayName,\n authMethodType: connection.authMethodType,\n status: connection.status,\n instanceUrl: connection.instanceUrl,\n externalAccountId: connection.externalAccountId,\n externalAccountName: connection.externalAccountName,\n grantedScopes: connection.grantedScopes,\n expiresAt: connection.expiresAt,\n lastConnectedAt: connection.lastConnectedAt,\n lastValidatedAt: connection.lastValidatedAt,\n lastSyncAt: connection.lastSyncAt,\n lastErrorCode: connection.lastErrorCode,\n lastErrorMessage: connection.lastErrorMessage,\n isRevoked: connection.isRevoked,\n isDisabled: connection.isDisabled,\n config: connection.config,\n hasSecret,\n secretPreview: hasSecret ? '••••••••' : null,\n };\n}\n\n//#endregion\n\n//#region ---- Connection manager ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMIntegrationConnectionManager {\n //#region ---- Services & Dependencies ----\n\n private readonly entityService = inject(AXPEntityService);\n private readonly sessionService = inject(AXPSessionService);\n\n //#endregion\n\n //#region ---- Accessors ----\n\n private connectionAccessor() {\n return this.entityService\n .withEntity(RootConfig.module.name, RootConfig.entities.integrationConnection.name)\n .data<string, AXMIntegrationManagementIntegrationConnectionEntityModel>();\n }\n\n getSessionContext(): { tenantId: string; applicationId: string; userId: string } {\n const tenantId = this.sessionService.tenant?.id;\n const applicationId = this.sessionService.application?.id;\n const userId = this.sessionService.user?.id;\n if (!tenantId || !applicationId || !userId) {\n throw new Error(\n 'Integration operations require an authenticated user, tenant, and application context.',\n );\n }\n return { tenantId, applicationId, userId };\n }\n\n private ownershipFilters(\n tenantId: string,\n applicationId: string,\n userId?: string,\n ): Array<Record<string, unknown>> {\n const filters: Array<Record<string, unknown>> = [\n { field: 'scopeInfo.tenantId', operator: { type: 'equal' }, value: tenantId },\n { field: 'scopeInfo.applicationId', operator: { type: 'equal' }, value: applicationId },\n ];\n if (userId) {\n filters.push({ field: 'scopeInfo.userId', operator: { type: 'equal' }, value: userId });\n }\n return filters;\n }\n\n private buildOwnershipInfo(\n tenantId: string,\n applicationId: string,\n connectionScope: 'user' | 'tenant',\n userId: string,\n ) {\n return {\n tenantId,\n applicationId,\n ...(connectionScope === AXP_INTEGRATION_CONNECTION_SCOPE.User ? { userId } : {}),\n };\n }\n\n //#endregion\n\n //#region ---- Queries ----\n\n async listForCurrentUser(\n connectionScope?: 'user' | 'tenant',\n ): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel[]> {\n const { tenantId, applicationId, userId } = this.getSessionContext();\n const result = await this.connectionAccessor().query({\n skip: 0,\n take: 1000,\n filter: {\n logic: 'and',\n filters: [\n ...this.ownershipFilters(tenantId, applicationId),\n ...(connectionScope\n ? [{ field: 'connectionScope', operator: { type: 'equal' as const }, value: connectionScope }]\n : []),\n {\n logic: 'or',\n filters: [\n {\n field: 'connectionScope',\n operator: { type: 'equal' },\n value: AXP_INTEGRATION_CONNECTION_SCOPE.Tenant,\n },\n {\n logic: 'and',\n filters: [\n {\n field: 'connectionScope',\n operator: { type: 'equal' },\n value: AXP_INTEGRATION_CONNECTION_SCOPE.User,\n },\n { field: 'scopeInfo.userId', operator: { type: 'equal' }, value: userId },\n ],\n },\n ],\n },\n ],\n },\n });\n\n return (result.items ?? []).filter((item) => {\n if (item.connectionScope === AXP_INTEGRATION_CONNECTION_SCOPE.Tenant) {\n return true;\n }\n return item.scopeInfo?.userId === userId;\n });\n }\n\n async findByUniqueKey(input: {\n providerId: string;\n connectionScope: 'user' | 'tenant';\n connectionKey: string;\n userId?: string;\n tenantId?: string;\n applicationId?: string;\n }): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel | null> {\n const ctx = this.getSessionContext();\n const tenantId = input.tenantId ?? ctx.tenantId;\n const applicationId = input.applicationId ?? ctx.applicationId;\n const userId = input.userId ?? ctx.userId;\n\n const filters: Array<Record<string, unknown>> = [\n ...this.ownershipFilters(\n tenantId,\n applicationId,\n input.connectionScope === AXP_INTEGRATION_CONNECTION_SCOPE.User ? userId : undefined,\n ),\n { field: 'providerId', operator: { type: 'equal' }, value: input.providerId },\n { field: 'connectionScope', operator: { type: 'equal' }, value: input.connectionScope },\n { field: 'connectionKey', operator: { type: 'equal' }, value: input.connectionKey },\n ];\n\n const result = await this.connectionAccessor().query({\n skip: 0,\n take: 1,\n filter: { logic: 'and', filters },\n });\n\n return result.items?.[0] ?? null;\n }\n\n async getByIdForCurrentUser(\n connectionId: string,\n ): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel | null> {\n const connection = await this.connectionAccessor().byKey(connectionId);\n if (!connection) {\n return null;\n }\n return this.assertOwnership(connection) ? connection : null;\n }\n\n //#endregion\n\n //#region ---- Mutations ----\n\n async upsertConnection(\n data: Partial<AXMIntegrationManagementIntegrationConnectionEntityModel> & {\n providerId: string;\n connectionScope: 'user' | 'tenant';\n connectionKey: string;\n displayName: string;\n authMethodType: AXMIntegrationManagementIntegrationConnectionEntityModel['authMethodType'];\n },\n ): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel> {\n const { tenantId, applicationId, userId } = this.getSessionContext();\n const existing = await this.findByUniqueKey({\n providerId: data.providerId,\n connectionScope: data.connectionScope,\n connectionKey: data.connectionKey,\n tenantId,\n applicationId,\n userId: data.connectionScope === AXP_INTEGRATION_CONNECTION_SCOPE.User ? userId : undefined,\n });\n\n const scopeInfo = this.buildOwnershipInfo(\n tenantId,\n applicationId,\n data.connectionScope,\n userId,\n );\n\n const payload: Partial<AXMIntegrationManagementIntegrationConnectionEntityModel> = {\n ...data,\n scopeInfo,\n isRevoked: defaultTo(data.isRevoked, false),\n isDisabled: defaultTo(data.isDisabled, false),\n status: data.status ?? AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n lastConnectedAt: data.lastConnectedAt ?? new Date().toISOString(),\n };\n\n if (existing) {\n await this.connectionAccessor().update(existing.id, payload);\n const updated = await this.connectionAccessor().byKey(existing.id);\n if (!updated) {\n throw new Error('Connection not found after update.');\n }\n return updated;\n }\n\n const createPayload: Omit<AXMIntegrationManagementIntegrationConnectionEntityModel, 'id'> = {\n providerId: data.providerId,\n connectionScope: data.connectionScope,\n connectionKey: data.connectionKey,\n displayName: data.displayName,\n authMethodType: data.authMethodType,\n scopeInfo,\n isRevoked: defaultTo(data.isRevoked, false),\n isDisabled: defaultTo(data.isDisabled, false),\n status: data.status ?? AXP_INTEGRATION_CONNECTION_STATUS.Connected,\n lastConnectedAt: data.lastConnectedAt ?? new Date().toISOString(),\n instanceUrl: data.instanceUrl ?? null,\n externalAccountId: data.externalAccountId ?? null,\n externalAccountName: data.externalAccountName ?? null,\n grantedScopes: data.grantedScopes ?? null,\n secretRef: data.secretRef ?? null,\n expiresAt: data.expiresAt ?? null,\n lastValidatedAt: data.lastValidatedAt ?? null,\n lastSyncAt: data.lastSyncAt ?? null,\n lastErrorCode: data.lastErrorCode ?? null,\n lastErrorMessage: data.lastErrorMessage ?? null,\n config: data.config ?? null,\n };\n\n const id = await this.connectionAccessor().create(createPayload);\n const created = await this.connectionAccessor().byKey(id);\n if (!created) {\n throw new Error('Connection not found after create.');\n }\n return created;\n }\n\n async updateConnection(\n connectionId: string,\n patch: Partial<AXMIntegrationManagementIntegrationConnectionEntityModel>,\n ): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel> {\n const existing = await this.getByIdForCurrentUser(connectionId);\n if (!existing) {\n throw new Error('Connection not found or access denied.');\n }\n await this.connectionAccessor().update(connectionId, patch);\n const updated = await this.connectionAccessor().byKey(connectionId);\n if (!updated) {\n throw new Error('Connection not found after update.');\n }\n return updated;\n }\n\n async deleteConnection(connectionId: string): Promise<void> {\n const existing = await this.getByIdForCurrentUser(connectionId);\n if (!existing) {\n throw new Error('Connection not found or access denied.');\n }\n await this.connectionAccessor().delete(connectionId);\n }\n\n //#endregion\n\n //#region ---- Authorization ----\n\n assertOwnership(connection: AXMIntegrationManagementIntegrationConnectionEntityModel): boolean {\n const { tenantId, applicationId, userId } = this.getSessionContext();\n if (connection.scopeInfo?.tenantId !== tenantId) {\n return false;\n }\n if (connection.scopeInfo?.applicationId !== applicationId) {\n return false;\n }\n if (connection.connectionScope === AXP_INTEGRATION_CONNECTION_SCOPE.Tenant) {\n return true;\n }\n return connection.scopeInfo?.userId === userId;\n }\n\n //#endregion\n}\n\n//#endregion\n","import { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-integration-management-client/contracts';\n\nexport const IntegrationManagementManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n required: false,\n};\n","//#region ----- Imports -----\n\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\nimport { AXPCommonMenuKeys } from '@acorex-platform/module-common-client/contracts';\nimport { inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport {\n AXMIntegrationManagementMenuKeys,\n AXPAdministrationPermissionKeys,\n RootConfig,\n} from '@acorex-platform/module-integration-management-client/contracts';\n\n//#endregion\n\n//#region ----- Menu Provider -----\n\nexport class AXMIntegrationManagementMenuProvider implements AXPMenuProvider {\n private readonly sessionService = inject(AXPSessionService);\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n const isAuthorized = await firstValueFrom(this.sessionService.isAuthorized$);\n if (!isAuthorized) {\n return;\n }\n\n const appName = this.sessionService.application?.name;\n\n context.find(AXPCommonMenuKeys.Administration).addItems([\n {\n name: AXMIntegrationManagementMenuKeys.Integrations,\n priority: 1000,\n text: '@integration-management:pages.integrations.title',\n type: 'menu',\n icon: 'fa-light fa-plug',\n path: `/${appName}/admin/integrations`,\n policy: {\n features: [RootConfig.module.name],\n permissions: [AXPAdministrationPermissionKeys.MaintainConnections],\n },\n },\n ]);\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport { AXPCommonPermissionGroupKeys } from '@acorex-platform/module-common-client/contracts';\nimport { AXPAdministrationPermissionKeys } from '@acorex-platform/module-integration-management-client/contracts';\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ---- Permission Definition Provider ----\n\n/**\n * Registers Integrations section capabilities under Administration.\n */\n@Injectable()\nexport class AXMIntegrationManagementPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPAdministrationPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:administration.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.Administration.Root, `${G}.administration.title`, `${G}.administration.description`, { order: 120 });\n\n context\n .addGroup(\n groups.Administration.Integrations,\n `${G}.administration-integrations.title`,\n `${G}.administration-integrations.description`,\n { parent: groups.Administration.Root, order: 20 },\n )\n .addPermission(keys.ViewIntegrations, `${P}.view-integrations.title`, `${P}.view-integrations.description`)\n .endPermission()\n .addPermission(\n keys.MaintainConnections,\n `${P}.maintain-connections.title`,\n `${P}.maintain-connections.description`,\n )\n .endPermission()\n .addPermission(\n keys.ManageIntegrationActions,\n `${P}.manage-integration-actions.title`,\n `${P}.manage-integration-actions.description`,\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport {\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { RootConfig } from '@acorex-platform/module-integration-management-client/contracts';\n\n//#endregion\n\n//#region ---- Settings Provider ----\n\nconst I18N = '@integration-management:settings';\n\nexport class AXMIntegrationManagementSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n if (context.hasGroup('integrations')) {\n return;\n }\n\n context\n .addGroup(\n 'integrations',\n `${I18N}.group.nav-title`,\n `${I18N}.group.description`,\n 'fa-light fa-plug',\n `${I18N}.group.title`,\n 45,\n )\n .endGroup();\n }\n}\n\n//#endregion\n","import { AXP_INTEGRATION_CATEGORY } from '@acorex-platform/framework-shared/core';\nimport {\n type AXPIntegrationDomainProvider,\n AXPIntegrationDomainProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable } from '@angular/core';\nimport { RootConfig } from '@acorex-platform/module-integration-management-client/contracts';\n\nconst I18N = '@integration-management:settings.domains.other';\n\n/** Fallback domain for connectors not yet assigned to a first-class integration domain. */\n@Injectable()\nexport class AXMIntegrationLegacyDomainProvider implements AXPIntegrationDomainProvider {\n async provide(context: AXPIntegrationDomainProviderContext): Promise<void> {\n context.register({\n id: 'other',\n module: RootConfig.module.name,\n displayName: `${I18N}.title`,\n description: `${I18N}.description`,\n icon: 'fa-light fa-plug',\n category: AXP_INTEGRATION_CATEGORY.Other,\n capabilities: [],\n sortOrder: 999,\n });\n }\n}\n","import { AXP_INTEGRATION_CONNECTION_STATUS, AXPIntegrationExpiredError, AXPIntegrationMissingScopeError, AXPIntegrationNotConnectedError, type AXPIntegrationProviderDefinition, type AXPIntegrationRuntimeContext, type AXPSafeIntegrationConnectionDto } from '@acorex-platform/framework-shared/core';\nimport {\n AXP_INTEGRATION_RUNTIME_PROVIDER,\n AXP_INTEGRATION_SECRET_STORE,\n AXPIntegrationProviderRegistryService,\n AXPIntegrationRuntimeService,\n type AXPIntegrationWithClientOptions,\n} from '@acorex-platform/framework-client/common';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo, isEmpty } from 'lodash';\nimport { AXMIntegrationConnectionManager, toSafeIntegrationConnectionDto } from './integration-connection.manager';\n\n//#region ---- Runtime service implementation ----\n\n@Injectable({ providedIn: 'root' })\nexport class AXMIntegrationRuntimeServiceImpl extends AXPIntegrationRuntimeService {\n private readonly registry = inject(AXPIntegrationProviderRegistryService);\n private readonly connectionManager = inject(AXMIntegrationConnectionManager);\n private readonly secretStore = inject(AXP_INTEGRATION_SECRET_STORE, { optional: true });\n private readonly runtimeProviders = inject(AXP_INTEGRATION_RUNTIME_PROVIDER, { optional: true });\n\n async getProvider(id: string): Promise<AXPIntegrationProviderDefinition> {\n return this.registry.getOrThrow(id);\n }\n\n async listProviders(): Promise<AXPIntegrationProviderDefinition[]> {\n return this.registry.list();\n }\n\n async getConnection(options: AXPIntegrationWithClientOptions): Promise<AXPSafeIntegrationConnectionDto> {\n const connection = await this.resolveConnection(options);\n return toSafeIntegrationConnectionDto(connection);\n }\n\n async withClient<T>(\n options: AXPIntegrationWithClientOptions,\n fn: (client: unknown, ctx: AXPIntegrationRuntimeContext) => Promise<T>,\n ): Promise<T> {\n const connection = await this.resolveConnection(options);\n if (!connection.secretRef) {\n throw new AXPIntegrationNotConnectedError(options.providerId);\n }\n\n const ctx = await this.buildRuntimeContext({\n ...toSafeIntegrationConnectionDto(connection),\n secretRef: connection.secretRef,\n });\n\n const hooks = await this.resolveRuntimeHooks(options.providerId);\n if (!hooks?.createClient) {\n throw new Error(`Integration provider '${options.providerId}' does not expose a runtime client.`);\n }\n\n const client = await hooks.createClient(ctx);\n return fn(client, ctx);\n }\n\n async buildRuntimeContext(\n connection: AXPSafeIntegrationConnectionDto & { secretRef: string },\n ): Promise<AXPIntegrationRuntimeContext> {\n const { tenantId, applicationId, userId } = this.connectionManager.getSessionContext();\n return {\n tenantId,\n applicationId,\n userId,\n connectionId: connection.id,\n providerId: connection.providerId,\n connectionScope: connection.connectionScope,\n connectionKey: connection.connectionKey,\n authMethodType: connection.authMethodType,\n instanceUrl: connection.instanceUrl,\n config: connection.config,\n secretRef: connection.secretRef,\n };\n }\n\n private async resolveConnection(options: AXPIntegrationWithClientOptions) {\n const provider = await this.registry.getOrThrow(options.providerId);\n const connectionScope = options.connectionScope ?? 'user';\n const connectionKey = defaultTo(options.connectionKey, provider.defaultConnectionKey ?? 'default');\n\n if (options.requiredCapabilities?.length) {\n const missing = options.requiredCapabilities.filter((c) => !provider.capabilities.includes(c as never));\n if (missing.length) {\n throw new Error(`Provider '${provider.id}' is missing capabilities: ${missing.join(', ')}`);\n }\n }\n\n const connection = await this.connectionManager.findByUniqueKey({\n providerId: options.providerId,\n connectionScope,\n connectionKey,\n });\n\n if (!connection || connection.status !== AXP_INTEGRATION_CONNECTION_STATUS.Connected) {\n throw new AXPIntegrationNotConnectedError(options.providerId);\n }\n\n if (connection.expiresAt && new Date(connection.expiresAt).getTime() < Date.now()) {\n throw new AXPIntegrationExpiredError(options.providerId, connection.id);\n }\n\n if (options.requiredScopes?.length && connection.grantedScopes) {\n const missingScopes = options.requiredScopes.filter((s) => !connection.grantedScopes!.includes(s));\n if (!isEmpty(missingScopes)) {\n throw new AXPIntegrationMissingScopeError(options.providerId, missingScopes);\n }\n }\n\n return connection;\n }\n\n private async resolveRuntimeHooks(providerId: string) {\n const providers = this.runtimeProviders ?? [];\n for (const provider of providers) {\n const resolved = provider instanceof Promise ? await provider : provider;\n if (resolved.providerId === providerId) {\n return resolved.getHooks();\n }\n }\n return null;\n }\n}\n\n//#endregion\n","import {\n AXP_INTEGRATION_CONNECTION_STATUS,\n} from '@acorex-platform/framework-shared/core';\nimport type { AXMIntegrationManagementIntegrationConnectionEntityModel } from '@acorex-platform/module-integration-management-client/contracts';\n\n//#region ---- Integration connection status ----\n\n/** Matches integration-connections-panel `isProviderConnected` semantics. */\nexport function isActiveIntegrationConnection(\n connection: AXMIntegrationManagementIntegrationConnectionEntityModel | null | undefined,\n): boolean {\n if (!connection) {\n return false;\n }\n\n return (\n connection.status === AXP_INTEGRATION_CONNECTION_STATUS.Connected &&\n !connection.isRevoked &&\n !connection.isDisabled\n );\n}\n\n//#endregion\n","import { AXPExpressionEvaluatorScopeProvider, AXPExpressionEvaluatorScopeProviderContext } from '@acorex-platform/framework-shared/core';\nimport { Injectable, inject } from '@angular/core';\nimport { defaultTo } from 'lodash';\nimport {\n AXP_INTEGRATION_CONNECTION_SCOPE,\n} from '@acorex-platform/framework-shared/core';\nimport { AXMIntegrationConnectionManager } from './integration-connection.manager';\nimport { isActiveIntegrationConnection } from './integration-connection-status.util';\n\n//#region ---- Integration expression scope ----\n\n/**\n * Exposes integration connection checks in expression strings, e.g.\n * `{{ integration.isUserConnected('telegram') }}`.\n */\n@Injectable()\nexport class AXMIntegrationEvaluatorScopeProvider implements AXPExpressionEvaluatorScopeProvider {\n private readonly connectionManager = inject(AXMIntegrationConnectionManager);\n\n async provide(context: AXPExpressionEvaluatorScopeProviderContext): Promise<void> {\n context.addScope('integration', {\n isUserConnected: (providerId: string, connectionKey?: string) =>\n this.isConnected(providerId, AXP_INTEGRATION_CONNECTION_SCOPE.User, connectionKey),\n isTenantConfigured: (providerId: string, connectionKey?: string) =>\n this.isConnected(providerId, AXP_INTEGRATION_CONNECTION_SCOPE.Tenant, connectionKey),\n });\n }\n\n private async isConnected(\n providerId: string,\n scope: typeof AXP_INTEGRATION_CONNECTION_SCOPE.User | typeof AXP_INTEGRATION_CONNECTION_SCOPE.Tenant,\n connectionKey?: string,\n ): Promise<boolean> {\n const normalizedProviderId = String(providerId ?? '').trim();\n if (!normalizedProviderId) {\n return false;\n }\n\n const connection = await this.connectionManager.findByUniqueKey({\n providerId: normalizedProviderId,\n connectionScope: scope,\n connectionKey: defaultTo(connectionKey, 'default'),\n });\n\n return isActiveIntegrationConnection(connection);\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXP_PROTECTED_ROUTE_GUARDS } from '@acorex-platform/framework-client/common';\nimport { AXPRootLayoutComponent } from '@acorex-platform/framework-client/themes/default';\nimport { Routes } from '@angular/router';\n\n//#endregion\n\n//#region ----- Routes -----\n\nexport function integrationManagementRoutesFactory(): Routes {\n return [\n {\n path: ':app/admin/integrations',\n canActivate: [...AXP_PROTECTED_ROUTE_GUARDS],\n data: { tab: true, rootLayout: true },\n loadComponent: () => AXPRootLayoutComponent,\n children: [\n {\n path: '',\n loadComponent: () =>\n import('./integrations-page.component').then((c) => c.AXMIntegrationsPageComponent),\n data: { reuse: true },\n },\n ],\n },\n ];\n}\n\n//#endregion\n","import { Routes } from '@angular/router';\n\nexport const integrationOAuthCallbackRoutes: Routes = [\n // App-agnostic callback first — must win over `:appName/...` (else appName=\"integrations\").\n {\n path: 'integrations/oauth/callback/:providerId',\n loadComponent: () =>\n import('./integration-oauth-callback-page.component').then((c) => c.AXMIntegrationOAuthCallbackPageComponent),\n },\n // Legacy app-prefixed callback (older provider redirect URI configs).\n {\n path: ':appName/integrations/oauth/callback/:providerId',\n loadComponent: () =>\n import('./integration-oauth-callback-page.component').then((c) => c.AXMIntegrationOAuthCallbackPageComponent),\n },\n];\n","//#region ---- Imports ----\n\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport {\n AXP_MENU_PROVIDER,\n AXP_SETTING_DEFINITION_PROVIDER,\n AXPIntegrationRuntimeService,\n AXP_INTEGRATION_DOMAIN_PROVIDER,\n} from '@acorex-platform/framework-client/common';\nimport { AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER, AXP_MODULE_MANIFEST_PROVIDER } from '@acorex-platform/framework-client/core';\nimport { AXPRuntimeModule, provideCommandSetups, provideQuerySetups } from '@acorex-platform/framework-client/runtime';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport {\n AXMIntegrationManagementCommandKeys,\n AXMIntegrationManagementQueryKeys,\n} from '@acorex-platform/module-integration-management-client/contracts';\n\nimport { IntegrationManagementManifest } from './manifest';\nimport { AXMIntegrationManagementMenuProvider } from './menu.provider';\nimport { AXMIntegrationManagementPermissionDefinitionProvider } from './permission-definition.provider';\nimport { AXMIntegrationManagementSettingProvider } from './settings.provider';\nimport { AXMIntegrationLegacyDomainProvider } from './features/domains/integration-legacy-domain.provider';\nimport { AXMIntegrationRuntimeServiceImpl } from './features/shared/integration-runtime.service.impl';\nimport { AXMIntegrationEvaluatorScopeProvider } from './features/shared/integration-evaluator-scope.provider';\nimport { integrationManagementRoutesFactory } from './features/integrations-page/integrations-page.routes';\nimport { integrationOAuthCallbackRoutes } from './features/oauth-callback/integration-oauth-callback.routes';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [CommonModule, AXPRuntimeModule],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => [...integrationManagementRoutesFactory(), ...integrationOAuthCallbackRoutes],\n },\n {\n provide: AXP_MODULE_MANIFEST_PROVIDER,\n useValue: IntegrationManagementManifest,\n multi: true,\n },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMIntegrationManagementPermissionDefinitionProvider,\n multi: true,\n },\n \n {\n provide: AXP_MENU_PROVIDER,\n useClass: AXMIntegrationManagementMenuProvider,\n multi: true,\n },\n {\n provide: AXP_SETTING_DEFINITION_PROVIDER,\n useClass: AXMIntegrationManagementSettingProvider,\n multi: true,\n },\n {\n provide: AXP_INTEGRATION_DOMAIN_PROVIDER,\n useClass: AXMIntegrationLegacyDomainProvider,\n multi: true,\n },\n {\n provide: AXPIntegrationRuntimeService,\n useClass: AXMIntegrationRuntimeServiceImpl,\n },\n {\n provide: AXP_EXPRESSION_EVALUATOR_SCOPE_PROVIDER,\n useClass: AXMIntegrationEvaluatorScopeProvider,\n multi: true,\n },\n provideCommandSetups([\n {\n key: AXMIntegrationManagementCommandKeys.ConnectionConnectWithCredentials,\n command: () =>\n import('./features/commands/connect-with-credentials.command').then((c) => c.ConnectWithCredentialsCommand),\n },\n {\n key: AXMIntegrationManagementCommandKeys.ConnectionDisconnect,\n command: () =>\n import('./features/commands/disconnect-connection.command').then((c) => c.DisconnectConnectionCommand),\n },\n {\n key: AXMIntegrationManagementCommandKeys.ConnectionDelete,\n command: () =>\n import('./features/commands/delete-connection.command').then((c) => c.DeleteConnectionCommand),\n },\n {\n key: AXMIntegrationManagementCommandKeys.ConnectionUpdate,\n command: () =>\n import('./features/commands/update-connection.command').then((c) => c.UpdateConnectionCommand),\n },\n {\n key: AXMIntegrationManagementCommandKeys.ConnectionValidate,\n command: () =>\n import('./features/commands/validate-connection.command').then((c) => c.ValidateConnectionCommand),\n },\n ]),\n provideQuerySetups([\n {\n key: AXMIntegrationManagementQueryKeys.DomainList,\n loader: () => import('./features/queries/list-domains.query').then((c) => c.ListDomainsQuery),\n },\n {\n key: AXMIntegrationManagementQueryKeys.ProviderList,\n loader: () => import('./features/queries/list-providers.query').then((c) => c.ListProvidersQuery),\n },\n {\n key: AXMIntegrationManagementQueryKeys.ProviderGet,\n loader: () => import('./features/queries/get-provider.query').then((c) => c.GetProviderQuery),\n },\n {\n key: AXMIntegrationManagementQueryKeys.ConnectionListMine,\n loader: () => import('./features/queries/list-my-connections.query').then((c) => c.ListMyConnectionsQuery),\n },\n ]),\n ],\n})\nexport class AXMIntegrationManagementModule {}\n\n//#endregion\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["I18N"],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "@acorex-platform/module-integration-management-client",
3
+ "version": "0.0.21",
4
+ "sideEffects": false,
5
+ "peerDependencies": {
6
+ "@angular/common": "^21.0.0",
7
+ "@angular/core": "^21.0.0"
8
+ },
9
+ "dependencies": {
10
+ "tslib": "^2.3.0"
11
+ },
12
+ "module": "fesm2022/acorex-platform-module-integration-management-client.mjs",
13
+ "typings": "types/acorex-platform-module-integration-management-client.d.ts",
14
+ "exports": {
15
+ "./package.json": {
16
+ "default": "./package.json"
17
+ },
18
+ ".": {
19
+ "types": "./types/acorex-platform-module-integration-management-client.d.ts",
20
+ "default": "./fesm2022/acorex-platform-module-integration-management-client.mjs"
21
+ },
22
+ "./contracts": {
23
+ "types": "./types/acorex-platform-module-integration-management-client-contracts.d.ts",
24
+ "default": "./fesm2022/acorex-platform-module-integration-management-client-contracts.mjs"
25
+ }
26
+ },
27
+ "type": "module"
28
+ }
@@ -0,0 +1,191 @@
1
+ import { AXPEntityModel } from '@acorex-platform/framework-shared/entity';
2
+ import { AXPIntegrationConnectionScope, AXPIntegrationAuthMethodType, AXPIntegrationConnectionStatus } from '@acorex-platform/framework-shared/core';
3
+
4
+ declare const RootConfig: {
5
+ config: {
6
+ i18n: string;
7
+ module: string;
8
+ route: string;
9
+ };
10
+ module: {
11
+ name: string;
12
+ route: string;
13
+ title: string;
14
+ icon: string;
15
+ };
16
+ entities: {
17
+ integrationConnection: {
18
+ name: string;
19
+ source: string;
20
+ title: string;
21
+ titlePlural: string;
22
+ icon: string;
23
+ };
24
+ integrationOAuthState: {
25
+ name: string;
26
+ source: string;
27
+ title: string;
28
+ titlePlural: string;
29
+ icon: string;
30
+ };
31
+ integrationApplication: {
32
+ name: string;
33
+ source: string;
34
+ title: string;
35
+ titlePlural: string;
36
+ icon: string;
37
+ };
38
+ };
39
+ queries: {
40
+ dashboard: {
41
+ integrationsDonut: string;
42
+ };
43
+ };
44
+ };
45
+
46
+ /**
47
+ * Administration capabilities used by this module.
48
+ * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).
49
+ */
50
+ declare const AXPAdministrationPermissionKeys: {
51
+ readonly Access: "Administration:Permission:Access";
52
+ readonly MaintainUsersAndRoles: "Administration:Permission:MaintainUsersAndRoles";
53
+ readonly ManageSessions: "Administration:Permission:ManageSessions";
54
+ readonly MaintainPolicies: "Administration:Permission:MaintainPolicies";
55
+ readonly ViewIntegrations: "Administration:Permission:ViewIntegrations";
56
+ readonly MaintainConnections: "Administration:Permission:MaintainConnections";
57
+ readonly ManageIntegrationActions: "Administration:Permission:ManageIntegrationActions";
58
+ readonly MaintainWorkflows: "Administration:Permission:MaintainWorkflows";
59
+ readonly ManageWorkflowActions: "Administration:Permission:ManageWorkflowActions";
60
+ readonly ViewRules: "Administration:Permission:ViewRules";
61
+ readonly MaintainRules: "Administration:Permission:MaintainRules";
62
+ readonly ManageRuleActions: "Administration:Permission:ManageRuleActions";
63
+ readonly MaintainAi: "Administration:Permission:MaintainAi";
64
+ readonly UseAiAssist: "Administration:Permission:UseAiAssist";
65
+ readonly MaintainDashboards: "Administration:Permission:MaintainDashboards";
66
+ readonly ViewJobs: "Administration:Permission:ViewJobs";
67
+ readonly ManageJobActions: "Administration:Permission:ManageJobActions";
68
+ readonly ViewObservability: "Administration:Permission:ViewObservability";
69
+ readonly MaintainObservability: "Administration:Permission:MaintainObservability";
70
+ };
71
+ /**
72
+ * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.
73
+ * Legacy nested shape kept so existing imports compile during migration.
74
+ */
75
+ declare const AXMIntegrationManagementPermissionKeys: {
76
+ readonly Provider: {
77
+ readonly View: "Administration:Permission:ViewIntegrations";
78
+ };
79
+ readonly Connection: {
80
+ readonly View: "Administration:Permission:ViewIntegrations";
81
+ readonly Management: "Administration:Permission:MaintainConnections";
82
+ };
83
+ readonly TenantConnection: {
84
+ readonly Management: "Administration:Permission:MaintainConnections";
85
+ };
86
+ readonly Application: {
87
+ readonly Management: "Administration:Permission:MaintainConnections";
88
+ };
89
+ readonly ConnectionHealth: {
90
+ readonly View: "Administration:Permission:ViewIntegrations";
91
+ };
92
+ };
93
+
94
+ declare const AXMIntegrationManagementCommandKeys: {
95
+ readonly ConnectionConnectWithCredentials: "IntegrationManagement.Connection:ConnectWithCredentials";
96
+ readonly ConnectionRefreshAuthorization: "IntegrationManagement.Connection:RefreshAuthorization";
97
+ readonly ConnectionValidate: "IntegrationManagement.Connection:Validate";
98
+ readonly ConnectionUpdate: "IntegrationManagement.Connection:Update";
99
+ readonly ConnectionDisconnect: "IntegrationManagement.Connection:Disconnect";
100
+ readonly ConnectionRevoke: "IntegrationManagement.Connection:Revoke";
101
+ readonly ConnectionDelete: "IntegrationManagement.Connection:Delete";
102
+ readonly ApplicationUpsert: "IntegrationManagement.Application:Upsert";
103
+ };
104
+
105
+ declare const AXMIntegrationManagementQueryKeys: {
106
+ readonly DomainList: "IntegrationManagement.Domain:List";
107
+ readonly ProviderList: "IntegrationManagement.Provider:List";
108
+ readonly ProviderGet: "IntegrationManagement.Provider:Get";
109
+ readonly ConnectionListMine: "IntegrationManagement.Connection:ListMine";
110
+ readonly ConnectionGetStatus: "IntegrationManagement.Connection:GetStatus";
111
+ readonly ConnectionGetAuthMethods: "IntegrationManagement.Connection:GetAuthMethods";
112
+ };
113
+
114
+ declare const AXMIntegrationManagementMenuKeys: {
115
+ readonly Integrations: "IntegrationManagement:Menu:Integrations";
116
+ };
117
+
118
+ /** Tenant integrations admin page: `/{app}/admin/integrations`. */
119
+ declare function buildTenantIntegrationsPagePath(appName: string): string;
120
+ /**
121
+ * App-agnostic OAuth callback path.
122
+ * Prefer this for providers with a fixed registered redirect URI (e.g. Simpro).
123
+ */
124
+ declare function buildIntegrationOAuthCallbackPath(providerId: string): string;
125
+ declare function buildIntegrationOAuthCallbackUrl(origin: string, providerId: string): string;
126
+ /** Resolve the current app route slug — session first, then optional route/fallback. */
127
+ declare function resolveAppRouteName(applicationName?: string | null, ...fallbacks: Array<string | null | undefined>): string | null;
128
+
129
+ /**
130
+ * Tenant/app isolation lives on {@link AXPEntityModel.scopeInfo}
131
+ * (`tenantId`, `applicationId`).
132
+ */
133
+ interface AXMIntegrationManagementIntegrationApplicationEntityModel extends AXPEntityModel<string> {
134
+ providerId: string;
135
+ clientId: string;
136
+ clientSecretRef: string;
137
+ authorizationEndpoint?: string | null;
138
+ tokenEndpoint?: string | null;
139
+ redirectUri?: string | null;
140
+ defaultScopes?: string[] | null;
141
+ environment?: string | null;
142
+ isActive: boolean;
143
+ }
144
+
145
+ /**
146
+ * Isolation lives on {@link AXPEntityModel.scopeInfo}:
147
+ * - `tenantId` / `applicationId` always
148
+ * - `userId` only when `connectionScope` is `user`
149
+ */
150
+ interface AXMIntegrationManagementIntegrationConnectionEntityModel extends AXPEntityModel<string> {
151
+ providerId: string;
152
+ connectionScope: AXPIntegrationConnectionScope;
153
+ connectionKey: string;
154
+ displayName: string;
155
+ authMethodType: AXPIntegrationAuthMethodType;
156
+ status: AXPIntegrationConnectionStatus;
157
+ instanceUrl?: string | null;
158
+ externalAccountId?: string | null;
159
+ externalAccountName?: string | null;
160
+ grantedScopes?: string[] | null;
161
+ secretRef?: string | null;
162
+ expiresAt?: string | null;
163
+ lastConnectedAt?: string | null;
164
+ lastValidatedAt?: string | null;
165
+ lastSyncAt?: string | null;
166
+ lastErrorCode?: string | null;
167
+ lastErrorMessage?: string | null;
168
+ isRevoked: boolean;
169
+ isDisabled: boolean;
170
+ config?: Record<string, unknown> | null;
171
+ }
172
+
173
+ /**
174
+ * Isolation lives on {@link AXPEntityModel.scopeInfo}
175
+ * (`tenantId`, `applicationId`, `userId` = authorizing user).
176
+ */
177
+ interface AXMIntegrationManagementIntegrationOAuthStateEntityModel extends AXPEntityModel<string> {
178
+ state: string;
179
+ codeVerifier: string;
180
+ providerId: string;
181
+ redirectUri: string;
182
+ connectionScope: string;
183
+ connectionKey: string;
184
+ connectionId?: string | null;
185
+ authMethodType: string;
186
+ expiresAt: string;
187
+ consumedAt?: string | null;
188
+ }
189
+
190
+ export { AXMIntegrationManagementCommandKeys, AXMIntegrationManagementMenuKeys, AXMIntegrationManagementPermissionKeys, AXMIntegrationManagementQueryKeys, AXPAdministrationPermissionKeys, RootConfig, buildIntegrationOAuthCallbackPath, buildIntegrationOAuthCallbackUrl, buildTenantIntegrationsPagePath, resolveAppRouteName };
191
+ export type { AXMIntegrationManagementIntegrationApplicationEntityModel, AXMIntegrationManagementIntegrationConnectionEntityModel, AXMIntegrationManagementIntegrationOAuthStateEntityModel };
@@ -0,0 +1,74 @@
1
+ import { AXPIntegrationConnectionScope, AXPIntegrationAuthMethodType, AXPSafeIntegrationConnectionDto } from '@acorex-platform/framework-shared/core';
2
+ import { AXMIntegrationManagementIntegrationConnectionEntityModel } from '@acorex-platform/module-integration-management-client/contracts';
3
+ import * as i0 from '@angular/core';
4
+ import * as i1 from '@angular/common';
5
+ import * as i2 from '@acorex-platform/framework-client/runtime';
6
+ import { AXPModuleManifest } from '@acorex-platform/framework-client/core';
7
+
8
+ interface ConnectCommandInput {
9
+ providerId: string;
10
+ connectionScope?: AXPIntegrationConnectionScope;
11
+ /** When set, skips auth-method picker and uses this method directly. */
12
+ authMethodType?: AXPIntegrationAuthMethodType;
13
+ }
14
+ type ConnectCommandResult = {
15
+ outcome: 'cancelled';
16
+ } | {
17
+ outcome: 'connected';
18
+ connection: AXPSafeIntegrationConnectionDto;
19
+ } | {
20
+ outcome: 'redirect';
21
+ redirectUrl: string;
22
+ };
23
+
24
+ declare const AXP_INTEGRATION_CREDENTIAL_MASK = "\u2022\u2022\u2022\u2022\u2022\u2022\u2022\u2022";
25
+ declare function isMaskedIntegrationCredential(value: string | null | undefined): boolean;
26
+ /** Clears runtime OAuth/token fields while keeping reconnect-friendly client settings. */
27
+ declare function scrubDisconnectedConnectionConfig(config: Record<string, unknown> | null | undefined): Record<string, unknown> | null;
28
+ declare function hasConfiguredIntegrationCredentials(connection: AXMIntegrationManagementIntegrationConnectionEntityModel | null | undefined): boolean;
29
+ declare function toSafeIntegrationConnectionDto(connection: AXMIntegrationManagementIntegrationConnectionEntityModel): AXPSafeIntegrationConnectionDto;
30
+ declare class AXMIntegrationConnectionManager {
31
+ private readonly entityService;
32
+ private readonly sessionService;
33
+ private connectionAccessor;
34
+ getSessionContext(): {
35
+ tenantId: string;
36
+ applicationId: string;
37
+ userId: string;
38
+ };
39
+ private ownershipFilters;
40
+ private buildOwnershipInfo;
41
+ listForCurrentUser(connectionScope?: 'user' | 'tenant'): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel[]>;
42
+ findByUniqueKey(input: {
43
+ providerId: string;
44
+ connectionScope: 'user' | 'tenant';
45
+ connectionKey: string;
46
+ userId?: string;
47
+ tenantId?: string;
48
+ applicationId?: string;
49
+ }): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel | null>;
50
+ getByIdForCurrentUser(connectionId: string): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel | null>;
51
+ upsertConnection(data: Partial<AXMIntegrationManagementIntegrationConnectionEntityModel> & {
52
+ providerId: string;
53
+ connectionScope: 'user' | 'tenant';
54
+ connectionKey: string;
55
+ displayName: string;
56
+ authMethodType: AXMIntegrationManagementIntegrationConnectionEntityModel['authMethodType'];
57
+ }): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel>;
58
+ updateConnection(connectionId: string, patch: Partial<AXMIntegrationManagementIntegrationConnectionEntityModel>): Promise<AXMIntegrationManagementIntegrationConnectionEntityModel>;
59
+ deleteConnection(connectionId: string): Promise<void>;
60
+ assertOwnership(connection: AXMIntegrationManagementIntegrationConnectionEntityModel): boolean;
61
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMIntegrationConnectionManager, never>;
62
+ static ɵprov: i0.ɵɵInjectableDeclaration<AXMIntegrationConnectionManager>;
63
+ }
64
+
65
+ declare class AXMIntegrationManagementModule {
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<AXMIntegrationManagementModule, never>;
67
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AXMIntegrationManagementModule, never, [typeof i1.CommonModule, typeof i2.AXPRuntimeModule], never>;
68
+ static ɵinj: i0.ɵɵInjectorDeclaration<AXMIntegrationManagementModule>;
69
+ }
70
+
71
+ declare const IntegrationManagementManifest: AXPModuleManifest;
72
+
73
+ export { AXMIntegrationConnectionManager, AXMIntegrationManagementModule, AXP_INTEGRATION_CREDENTIAL_MASK, IntegrationManagementManifest, hasConfiguredIntegrationCredentials, isMaskedIntegrationCredential, scrubDisconnectedConnectionConfig, toSafeIntegrationConnectionDto };
74
+ export type { ConnectCommandInput, ConnectCommandResult };