@acorex-platform/module-integration-management-client 0.0.54 → 0.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/{acorex-platform-module-integration-management-client-delete-connection.command-DQ_kn8dH.mjs → acorex-platform-module-integration-management-client-delete-connection.command-CCMZwP4W.mjs} +5 -2
- package/fesm2022/{acorex-platform-module-integration-management-client-delete-connection.command-DQ_kn8dH.mjs.map → acorex-platform-module-integration-management-client-delete-connection.command-CCMZwP4W.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-integration-management-client-disconnect-connection.command-B4HeDA1n.mjs → acorex-platform-module-integration-management-client-disconnect-connection.command-DpVoXBdW.mjs} +5 -2
- package/fesm2022/{acorex-platform-module-integration-management-client-disconnect-connection.command-B4HeDA1n.mjs.map → acorex-platform-module-integration-management-client-disconnect-connection.command-DpVoXBdW.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-integration-management-client-integrations-page.component-BIDqAXx3.mjs → acorex-platform-module-integration-management-client-integrations-page.component-Bmb24K5W.mjs} +2 -2
- package/fesm2022/{acorex-platform-module-integration-management-client-integrations-page.component-BIDqAXx3.mjs.map → acorex-platform-module-integration-management-client-integrations-page.component-Bmb24K5W.mjs.map} +1 -1
- package/fesm2022/{acorex-platform-module-integration-management-client-update-connection.command-BNMR-t12.mjs → acorex-platform-module-integration-management-client-update-connection.command-Kqir73pA.mjs} +9 -3
- package/fesm2022/acorex-platform-module-integration-management-client-update-connection.command-Kqir73pA.mjs.map +1 -0
- package/fesm2022/{acorex-platform-module-integration-management-client-validate-connection.command-CGtb_GPX.mjs → acorex-platform-module-integration-management-client-validate-connection.command-D4RZ6WPP.mjs} +5 -2
- package/fesm2022/acorex-platform-module-integration-management-client-validate-connection.command-D4RZ6WPP.mjs.map +1 -0
- package/fesm2022/acorex-platform-module-integration-management-client.mjs +12 -11
- package/fesm2022/acorex-platform-module-integration-management-client.mjs.map +1 -1
- package/i18n/en-AU/integration-management.json +224 -0
- package/i18n/en-US/integration-management.json +224 -0
- package/i18n/fa-IR/integration-management.json +161 -0
- package/package.json +1 -1
- package/fesm2022/acorex-platform-module-integration-management-client-update-connection.command-BNMR-t12.mjs.map +0 -1
- package/fesm2022/acorex-platform-module-integration-management-client-validate-connection.command-CGtb_GPX.mjs.map +0 -1
|
@@ -1 +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/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/features/widgets/integration-ref/integration-ref-page.constants.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-filter.widget.config.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref.widget.config.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.apply.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.fallback-modifier.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.plugin.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref-plugin.module.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-page-component.provider.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-widget.provider.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","//#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","export const AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY = 'integration-management.integration-ref-page';\n","//#region ----- Imports -----\n\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_NAME_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\nimport { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ----- Constants -----\n\nexport const AXM_INTEGRATION_REF_FILTER_WIDGET_NAME = 'integration-ref-filter';\n\n//#endregion\n\n//#region ----- Widget config -----\n\nexport const AXMIntegrationRefFilterWidget: AXPWidgetConfig = {\n name: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n title: 'Integration Source Filter',\n description: 'Select-box filter for integrationRef.source provider ids.',\n type: 'filter',\n icon: 'fa-light fa-plug',\n /**\n * `path` is required so AXPValueWidgetComponent treats this as a value widget\n * and setValue/getValue bind into the filter context (otherwise Apply writes empty).\n */\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n edit: {\n component: () =>\n import('./integration-ref-filter-widget-edit.component').then(\n (c) => c.AXMIntegrationRefFilterWidgetEditComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\nimport { AXM_INTEGRATION_REF_FILTER_WIDGET_NAME } from './integration-ref-filter.widget.config';\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Widget name used on entity `integrationRef` fields (`schema.interface.type`). */\nexport const AXM_INTEGRATION_REF_WIDGET_NAME = 'integration-ref';\n\n//#endregion\n\n//#region ----- Widget config -----\n\nexport const AXMIntegrationRefWidget: AXPWidgetConfig = {\n name: AXM_INTEGRATION_REF_WIDGET_NAME,\n title: 'Integration Provider',\n description: 'Shows the integration provider logo for records linked via integrationRef.',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-plug',\n defaultFilterWidgetName: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n properties: [],\n components: {\n column: {\n component: () =>\n import('./integration-ref-widget-column.component').then(\n (c) => c.AXMIntegrationRefWidgetColumnComponent,\n ),\n },\n view: {\n component: () =>\n import('./integration-ref-widget-view.component').then(\n (c) => c.AXMIntegrationRefWidgetViewComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModifierContext } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY } from '../../widgets/integration-ref/integration-ref-page.constants';\nimport { AXM_INTEGRATION_REF_FILTER_WIDGET_NAME } from '../../widgets/integration-ref/integration-ref-filter.widget.config';\nimport { AXM_INTEGRATION_REF_WIDGET_NAME } from '../../widgets/integration-ref/integration-ref.widget.config';\nimport type { AXMIntegrationRefPluginOptions } from './integration-ref.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nexport const AXM_INTEGRATION_REF_PLUGIN_NAME = 'integration-ref';\n\nconst DEFAULT_FIELD = 'integrationRef';\nconst DEFAULT_COLUMN_TITLE = '@integration-management:widgets.integration-ref.column-title';\nconst DEFAULT_PAGE_TITLE = '@integration-management:widgets.integration-ref.page.title';\nconst DEFAULT_PAGE_ORDER = 20;\nconst DEFAULT_COLUMN_WIDTH = '140px';\n\n//#endregion\n\n//#region ----- Helpers -----\n\n/** List columns that represent entity status (`status`, `statusId`, `projectStatusId`, …). */\nfunction isStatusColumnName(name: string): boolean {\n const normalized = name.trim().toLowerCase();\n return (\n normalized === 'status' ||\n normalized === 'statusid' ||\n normalized.endsWith('statusid') ||\n (normalized.endsWith('status') && !normalized.includes('http'))\n );\n}\n\n//#endregion\n\n//#region ----- Apply -----\n\n/**\n * Ensures Source list column + Integration Info tab for an entity that carries `integrationRef`.\n */\nexport function applyIntegrationRefEnhancements(\n ctx: AXPEntityModifierContext,\n options: AXMIntegrationRefPluginOptions = {},\n): void {\n const field = String(options.field ?? DEFAULT_FIELD).trim() || DEFAULT_FIELD;\n const columnTitle = options.title ?? DEFAULT_COLUMN_TITLE;\n const pageTitle = options.pageTitle ?? DEFAULT_PAGE_TITLE;\n const pageIcon = options.pageIcon ?? 'fa-light fa-plug';\n const pageOrder = options.pageOrder ?? DEFAULT_PAGE_ORDER;\n const columnWidth = options.columnWidth ?? DEFAULT_COLUMN_WIDTH;\n /** Default off; still choosable in the column picker. */\n const columnVisible = options.columnVisible === true;\n const showListColumn = options.showListColumn !== false;\n const showPage = options.showPage !== false;\n const groupId = options.groupId ?? 'basic-info';\n\n if (!ctx.properties.find(field).get()) {\n ctx.properties.add({\n name: field,\n title: columnTitle,\n groupId,\n schema: {\n dataType: 'object',\n visible: false,\n nullable: true,\n readonly: true,\n },\n } as any);\n }\n\n ctx.properties.find(field).update((prop) => ({\n ...prop,\n title: prop.title ?? columnTitle,\n options: {\n ...prop.options,\n filter: {\n ...(prop.options?.filter ?? {}),\n advance: {\n ...(prop.options?.filter?.advance ?? {}),\n enabled: true,\n widgetType: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n },\n inline: {\n ...(prop.options?.filter?.inline ?? {}),\n enabled: true,\n },\n },\n },\n schema: {\n ...prop.schema,\n dataType: prop.schema?.dataType ?? 'object',\n // Keep off the overview form; Integration Info page owns the UI.\n visible: false,\n nullable: prop.schema?.nullable ?? true,\n readonly: true,\n interface: {\n ...(prop.schema.interface ?? {}),\n type: AXM_INTEGRATION_REF_WIDGET_NAME,\n options: {\n ...(prop.schema.interface?.options ?? {}),\n textField: 'source',\n expose: [\n {\n source: 'source',\n target: `${field}.source`,\n },\n ],\n },\n },\n },\n }));\n\n if (showListColumn) {\n if (!ctx.columns.find(field).get()) {\n ctx.columns.add({\n name: field,\n title: columnTitle,\n options: { width: columnWidth, visible: columnVisible },\n });\n } else {\n ctx.columns.find(field).update((col) => ({\n ...col,\n title: col.title ?? columnTitle,\n options: {\n ...(col.options ?? {}),\n width: columnWidth,\n visible: columnVisible,\n },\n }));\n }\n\n const columns = ctx.columns.list();\n if (columns?.length) {\n const index = columns.findIndex((col) => col.name === field);\n if (index >= 0) {\n const [column] = columns.splice(index, 1);\n const statusIndex = columns.findIndex((col) => isStatusColumnName(String(col.name ?? '')));\n if (statusIndex >= 0) {\n columns.splice(statusIndex, 0, column);\n } else {\n columns.push(column);\n }\n }\n }\n }\n\n if (showPage) {\n ctx.entity.pages ??= [];\n const page = {\n componentKey: AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n title: pageTitle,\n icon: pageIcon,\n layout: { order: pageOrder, position: 'after' as const },\n /**\n * Update/edit form wizard only. Details view always includes entity.pages.\n * Do not set create — empty Integration Info as a create wizard step remounts the dialog.\n */\n appearOn: { update: true },\n };\n const existingIndex = ctx.entity.pages.findIndex(\n (entry) => entry.componentKey === AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n );\n if (existingIndex >= 0) {\n ctx.entity.pages[existingIndex] = page;\n } else {\n ctx.entity.pages.push(page);\n }\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModifierProvider } from '@acorex-platform/framework-client/layout/entity';\n\nimport {\n applyIntegrationRefEnhancements,\n AXM_INTEGRATION_REF_PLUGIN_NAME,\n} from './integration-ref.apply';\n\n//#endregion\n\n//#region ----- Fallback modifier -----\n\n/**\n * Applies Source column + Integration Info when the entity already declares `integrationRef`\n * but the seeded layout has not yet listed the `integration-ref` plugin (stale definitions).\n * Skips when the action plugin is declared so options (`groupId`, …) win.\n */\nexport const AXMIntegrationRefFallbackModifier: AXPEntityModifierProvider = {\n entityName: '*',\n /** Just after the action plugin (80) so declared plugins win when both could apply. */\n order: 81,\n modifier: (ctx) => {\n const hasPlugin = (ctx.entity.plugins ?? []).some((entry) => entry.name === AXM_INTEGRATION_REF_PLUGIN_NAME);\n if (hasPlugin) {\n return;\n }\n if (!ctx.properties.find('integrationRef').get()) {\n return;\n }\n applyIntegrationRefEnhancements(ctx, {});\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\n\nimport {\n applyIntegrationRefEnhancements,\n AXM_INTEGRATION_REF_PLUGIN_NAME,\n} from './integration-ref.apply';\nimport type { AXMIntegrationRefPluginOptions } from './integration-ref.types';\n\n//#endregion\n\n//#region ----- Plugin -----\n\n/**\n * Opt-in plugin for entities linked from integration connections.\n * - Ensures `integrationRef` property + Source list column (off by default, toggable)\n * - Places Source last before Status when present\n * - Adds readonly Integration Info tab on update/detail (not create)\n */\nexport const integrationRefPlugin: AXPEntityActionPlugin = {\n name: AXM_INTEGRATION_REF_PLUGIN_NAME,\n /** After status (70) / attachments (50) so Source can sit before Status. */\n order: 80,\n apply: (ctx, options: AXMIntegrationRefPluginOptions = {}) => {\n applyIntegrationRefEnhancements(ctx, options);\n },\n};\n\nexport { AXM_INTEGRATION_REF_PLUGIN_NAME };\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_ENTITY_ACTION_PLUGIN,\n AXP_ENTITY_MODIFIER,\n configureEntityListColumnsSettingsMigrateDrop,\n configureEntityListColumnsSettingsVersion,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\n\nimport { AXMIntegrationRefFallbackModifier } from './integration-ref.fallback-modifier';\nimport { integrationRefPlugin } from './integration-ref.plugin';\n\n//#endregion\n\n//#region ----- Boot configure (once) -----\n\n/**\n * Clear stale Source column prefs from when the column was first-pinned.\n * Framework migrate-drop registry stays empty until this module loads.\n */\nconfigureEntityListColumnsSettingsMigrateDrop(['integrationRef']);\nconfigureEntityListColumnsSettingsVersion(3);\n\n//#endregion\n\n//#region ----- Module -----\n\n@NgModule({\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n multi: true,\n useValue: integrationRefPlugin,\n },\n {\n provide: AXP_ENTITY_MODIFIER,\n multi: true,\n useValue: AXMIntegrationRefFallbackModifier,\n },\n ],\n})\nexport class AXMIntegrationRefPluginModule {}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPPageComponentDefinition, AXPPageComponentProvider } from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\n\nimport { AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY } from './integration-ref-page.constants';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXMIntegrationRefPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./integration-ref-page.component').then((m) => m.AXMIntegrationRefPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMIntegrationRefFilterWidget } from './integration-ref-filter.widget.config';\nimport { AXMIntegrationRefWidget } from './integration-ref.widget.config';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXMIntegrationRefWidgetProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMIntegrationRefWidget, AXMIntegrationRefFilterWidget];\n }\n}\n\n//#endregion\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 } from '@acorex-platform/framework-client/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-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 { 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';\nimport { AXMIntegrationRefPluginModule } from './features/plugins/integration-ref/integration-ref-plugin.module';\nimport { AXMIntegrationRefPageComponentProvider } from './features/widgets/integration-ref/integration-ref-page-component.provider';\nimport { AXMIntegrationRefWidgetProvider } from './features/widgets/integration-ref/integration-ref-widget.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [CommonModule, AXPRuntimeModule, AXMIntegrationRefPluginModule],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => [...integrationManagementRoutesFactory(), ...integrationOAuthCallbackRoutes],\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 {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMIntegrationRefWidgetProvider,\n multi: true,\n },\n {\n provide: AXP_PAGE_COMPONENT_PROVIDER,\n useClass: AXMIntegrationRefPageComponentProvider,\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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"}
|
|
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/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/features/widgets/integration-ref/integration-ref-page.constants.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-filter.widget.config.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref.widget.config.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.apply.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.fallback-modifier.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref.plugin.ts","../../../../libs/modules/integration-management/client/src/lib/features/plugins/integration-ref/integration-ref-plugin.module.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-page-component.provider.ts","../../../../libs/modules/integration-management/client/src/lib/features/widgets/integration-ref/integration-ref-widget.provider.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","//#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","export const AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY = 'integration-management.integration-ref-page';\n","//#region ----- Imports -----\n\nimport {\n AXP_DATA_PATH_PROPERTY,\n AXP_DISABLED_PROPERTY,\n AXP_NAME_PROPERTY,\n} from '@acorex-platform/framework-client/layout/widgets';\nimport { AXPWidgetConfig } from '@acorex-platform/framework-shared/widget-core';\n\n//#endregion\n\n//#region ----- Constants -----\n\nexport const AXM_INTEGRATION_REF_FILTER_WIDGET_NAME = 'integration-ref-filter';\n\n//#endregion\n\n//#region ----- Widget config -----\n\nexport const AXMIntegrationRefFilterWidget: AXPWidgetConfig = {\n name: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n title: '@integration-management:widgets.integration-ref.filter.title',\n description: 'Select-box filter for integrationRef.source provider ids.',\n type: 'filter',\n defaultFilterOperator: 'equal',\n icon: 'fa-light fa-plug',\n /**\n * `path` is required so AXPValueWidgetComponent treats this as a value widget\n * and setValue/getValue bind into the filter context (otherwise Apply writes empty).\n */\n properties: [AXP_NAME_PROPERTY, AXP_DATA_PATH_PROPERTY, AXP_DISABLED_PROPERTY],\n components: {\n edit: {\n component: () =>\n import('./integration-ref-filter-widget-edit.component').then(\n (c) => c.AXMIntegrationRefFilterWidgetEditComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetConfig, AXPWidgetGroupEnum } from '@acorex-platform/framework-shared/widget-core';\n\nimport { AXM_INTEGRATION_REF_FILTER_WIDGET_NAME } from './integration-ref-filter.widget.config';\n\n//#endregion\n\n//#region ----- Constants -----\n\n/** Widget name used on entity `integrationRef` fields (`schema.interface.type`). */\nexport const AXM_INTEGRATION_REF_WIDGET_NAME = 'integration-ref';\n\n//#endregion\n\n//#region ----- Widget config -----\n\nexport const AXMIntegrationRefWidget: AXPWidgetConfig = {\n name: AXM_INTEGRATION_REF_WIDGET_NAME,\n title: '@integration-management:widgets.integration-ref.page.title',\n description: 'Shows the integration provider logo for records linked via integrationRef.',\n type: 'view',\n categories: [],\n groups: [AXPWidgetGroupEnum.EntityWidget],\n icon: 'fa-light fa-plug',\n defaultFilterWidgetName: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n properties: [],\n components: {\n column: {\n component: () =>\n import('./integration-ref-widget-column.component').then(\n (c) => c.AXMIntegrationRefWidgetColumnComponent,\n ),\n },\n view: {\n component: () =>\n import('./integration-ref-widget-view.component').then(\n (c) => c.AXMIntegrationRefWidgetViewComponent,\n ),\n },\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModifierContext } from '@acorex-platform/framework-client/layout/entity';\n\nimport { AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY } from '../../widgets/integration-ref/integration-ref-page.constants';\nimport { AXM_INTEGRATION_REF_FILTER_WIDGET_NAME } from '../../widgets/integration-ref/integration-ref-filter.widget.config';\nimport { AXM_INTEGRATION_REF_WIDGET_NAME } from '../../widgets/integration-ref/integration-ref.widget.config';\nimport type { AXMIntegrationRefPluginOptions } from './integration-ref.types';\n\n//#endregion\n\n//#region ----- Constants -----\n\nexport const AXM_INTEGRATION_REF_PLUGIN_NAME = 'integration-ref';\n\nconst DEFAULT_FIELD = 'integrationRef';\nconst DEFAULT_COLUMN_TITLE = '@integration-management:widgets.integration-ref.column-title';\nconst DEFAULT_PAGE_TITLE = '@integration-management:widgets.integration-ref.page.title';\nconst DEFAULT_PAGE_ORDER = 20;\nconst DEFAULT_COLUMN_WIDTH = '140px';\n\n//#endregion\n\n//#region ----- Helpers -----\n\n/** List columns that represent entity status (`status`, `statusId`, `projectStatusId`, …). */\nfunction isStatusColumnName(name: string): boolean {\n const normalized = name.trim().toLowerCase();\n return (\n normalized === 'status' ||\n normalized === 'statusid' ||\n normalized.endsWith('statusid') ||\n (normalized.endsWith('status') && !normalized.includes('http'))\n );\n}\n\n//#endregion\n\n//#region ----- Apply -----\n\n/**\n * Ensures Source list column + Integration Info tab for an entity that carries `integrationRef`.\n */\nexport function applyIntegrationRefEnhancements(\n ctx: AXPEntityModifierContext,\n options: AXMIntegrationRefPluginOptions = {},\n): void {\n const field = String(options.field ?? DEFAULT_FIELD).trim() || DEFAULT_FIELD;\n const columnTitle = options.title ?? DEFAULT_COLUMN_TITLE;\n const pageTitle = options.pageTitle ?? DEFAULT_PAGE_TITLE;\n const pageIcon = options.pageIcon ?? 'fa-light fa-plug';\n const pageOrder = options.pageOrder ?? DEFAULT_PAGE_ORDER;\n const columnWidth = options.columnWidth ?? DEFAULT_COLUMN_WIDTH;\n /** Default off; still choosable in the column picker. */\n const columnVisible = options.columnVisible === true;\n const showListColumn = options.showListColumn !== false;\n const showPage = options.showPage !== false;\n const groupId = options.groupId ?? 'basic-info';\n\n if (!ctx.properties.find(field).get()) {\n ctx.properties.add({\n name: field,\n title: columnTitle,\n groupId,\n schema: {\n dataType: 'object',\n visible: false,\n nullable: true,\n readonly: true,\n },\n } as any);\n }\n\n ctx.properties.find(field).update((prop) => ({\n ...prop,\n title: prop.title ?? columnTitle,\n options: {\n ...prop.options,\n filter: {\n ...(prop.options?.filter ?? {}),\n advance: {\n ...(prop.options?.filter?.advance ?? {}),\n enabled: true,\n widgetType: AXM_INTEGRATION_REF_FILTER_WIDGET_NAME,\n },\n inline: {\n ...(prop.options?.filter?.inline ?? {}),\n enabled: true,\n },\n },\n },\n schema: {\n ...prop.schema,\n dataType: prop.schema?.dataType ?? 'object',\n // Keep off the overview form; Integration Info page owns the UI.\n visible: false,\n nullable: prop.schema?.nullable ?? true,\n readonly: true,\n interface: {\n ...(prop.schema.interface ?? {}),\n type: AXM_INTEGRATION_REF_WIDGET_NAME,\n options: {\n ...(prop.schema.interface?.options ?? {}),\n textField: 'source',\n expose: [\n {\n source: 'source',\n target: `${field}.source`,\n },\n ],\n },\n },\n },\n }));\n\n if (showListColumn) {\n if (!ctx.columns.find(field).get()) {\n ctx.columns.add({\n name: field,\n title: columnTitle,\n options: { width: columnWidth, visible: columnVisible },\n });\n } else {\n ctx.columns.find(field).update((col) => ({\n ...col,\n title: col.title ?? columnTitle,\n options: {\n ...(col.options ?? {}),\n width: columnWidth,\n visible: columnVisible,\n },\n }));\n }\n\n const columns = ctx.columns.list();\n if (columns?.length) {\n const index = columns.findIndex((col) => col.name === field);\n if (index >= 0) {\n const [column] = columns.splice(index, 1);\n const statusIndex = columns.findIndex((col) => isStatusColumnName(String(col.name ?? '')));\n if (statusIndex >= 0) {\n columns.splice(statusIndex, 0, column);\n } else {\n columns.push(column);\n }\n }\n }\n }\n\n if (showPage) {\n ctx.entity.pages ??= [];\n const page = {\n componentKey: AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n title: pageTitle,\n icon: pageIcon,\n layout: { order: pageOrder, position: 'after' as const },\n /**\n * Update/edit form wizard only. Details view always includes entity.pages.\n * Do not set create — empty Integration Info as a create wizard step remounts the dialog.\n */\n appearOn: { update: true },\n };\n const existingIndex = ctx.entity.pages.findIndex(\n (entry) => entry.componentKey === AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n );\n if (existingIndex >= 0) {\n ctx.entity.pages[existingIndex] = page;\n } else {\n ctx.entity.pages.push(page);\n }\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityModifierProvider } from '@acorex-platform/framework-client/layout/entity';\n\nimport {\n applyIntegrationRefEnhancements,\n AXM_INTEGRATION_REF_PLUGIN_NAME,\n} from './integration-ref.apply';\n\n//#endregion\n\n//#region ----- Fallback modifier -----\n\n/**\n * Applies Source column + Integration Info when the entity already declares `integrationRef`\n * but the seeded layout has not yet listed the `integration-ref` plugin (stale definitions).\n * Skips when the action plugin is declared so options (`groupId`, …) win.\n */\nexport const AXMIntegrationRefFallbackModifier: AXPEntityModifierProvider = {\n entityName: '*',\n /** Just after the action plugin (80) so declared plugins win when both could apply. */\n order: 81,\n modifier: (ctx) => {\n const hasPlugin = (ctx.entity.plugins ?? []).some((entry) => entry.name === AXM_INTEGRATION_REF_PLUGIN_NAME);\n if (hasPlugin) {\n return;\n }\n if (!ctx.properties.find('integrationRef').get()) {\n return;\n }\n applyIntegrationRefEnhancements(ctx, {});\n },\n};\n\n//#endregion\n","//#region ----- Imports -----\n\nimport type { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\n\nimport {\n applyIntegrationRefEnhancements,\n AXM_INTEGRATION_REF_PLUGIN_NAME,\n} from './integration-ref.apply';\nimport type { AXMIntegrationRefPluginOptions } from './integration-ref.types';\n\n//#endregion\n\n//#region ----- Plugin -----\n\n/**\n * Opt-in plugin for entities linked from integration connections.\n * - Ensures `integrationRef` property + Source list column (off by default, toggable)\n * - Places Source last before Status when present\n * - Adds readonly Integration Info tab on update/detail (not create)\n */\nexport const integrationRefPlugin: AXPEntityActionPlugin = {\n name: AXM_INTEGRATION_REF_PLUGIN_NAME,\n /** After status (70) / attachments (50) so Source can sit before Status. */\n order: 80,\n apply: (ctx, options: AXMIntegrationRefPluginOptions = {}) => {\n applyIntegrationRefEnhancements(ctx, options);\n },\n};\n\nexport { AXM_INTEGRATION_REF_PLUGIN_NAME };\n\n//#endregion\n","//#region ----- Imports -----\n\nimport {\n AXP_ENTITY_ACTION_PLUGIN,\n AXP_ENTITY_MODIFIER,\n configureEntityListColumnsSettingsMigrateDrop,\n configureEntityListColumnsSettingsVersion,\n} from '@acorex-platform/framework-client/layout/entity';\nimport { NgModule } from '@angular/core';\n\nimport { AXMIntegrationRefFallbackModifier } from './integration-ref.fallback-modifier';\nimport { integrationRefPlugin } from './integration-ref.plugin';\n\n//#endregion\n\n//#region ----- Boot configure (once) -----\n\n/**\n * Clear stale Source column prefs from when the column was first-pinned.\n * Framework migrate-drop registry stays empty until this module loads.\n */\nconfigureEntityListColumnsSettingsMigrateDrop(['integrationRef']);\nconfigureEntityListColumnsSettingsVersion(3);\n\n//#endregion\n\n//#region ----- Module -----\n\n@NgModule({\n providers: [\n {\n provide: AXP_ENTITY_ACTION_PLUGIN,\n multi: true,\n useValue: integrationRefPlugin,\n },\n {\n provide: AXP_ENTITY_MODIFIER,\n multi: true,\n useValue: AXMIntegrationRefFallbackModifier,\n },\n ],\n})\nexport class AXMIntegrationRefPluginModule {}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPPageComponentDefinition, AXPPageComponentProvider } from '@acorex-platform/framework-client/layout/components';\nimport { Injectable } from '@angular/core';\n\nimport { AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY } from './integration-ref-page.constants';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXMIntegrationRefPageComponentProvider implements AXPPageComponentProvider {\n async components(): Promise<AXPPageComponentDefinition[]> {\n return [\n {\n key: AXM_INTEGRATION_REF_PAGE_COMPONENT_KEY,\n loader: () =>\n import('./integration-ref-page.component').then((m) => m.AXMIntegrationRefPageComponent),\n },\n ];\n }\n}\n\n//#endregion\n","//#region ----- Imports -----\n\nimport { AXPWidgetDefinitionProvider } from '@acorex-platform/framework-client/layout/widget-core';\nimport { Injectable } from '@angular/core';\n\nimport { AXMIntegrationRefFilterWidget } from './integration-ref-filter.widget.config';\nimport { AXMIntegrationRefWidget } from './integration-ref.widget.config';\n\n//#endregion\n\n//#region ----- Provider -----\n\n@Injectable()\nexport class AXMIntegrationRefWidgetProvider implements AXPWidgetDefinitionProvider {\n getWidgets() {\n return [AXMIntegrationRefWidget, AXMIntegrationRefFilterWidget];\n }\n}\n\n//#endregion\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 } from '@acorex-platform/framework-client/core';\nimport { AXP_PAGE_COMPONENT_PROVIDER } from '@acorex-platform/framework-client/layout/components';\nimport { AXP_WIDGET_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/layout/widget-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 { 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';\nimport { AXMIntegrationRefPluginModule } from './features/plugins/integration-ref/integration-ref-plugin.module';\nimport { AXMIntegrationRefPageComponentProvider } from './features/widgets/integration-ref/integration-ref-page-component.provider';\nimport { AXMIntegrationRefWidgetProvider } from './features/widgets/integration-ref/integration-ref-widget.provider';\n\n//#endregion\n\n//#region ---- Module ----\n\n@NgModule({\n imports: [CommonModule, AXPRuntimeModule, AXMIntegrationRefPluginModule],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => [...integrationManagementRoutesFactory(), ...integrationOAuthCallbackRoutes],\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 {\n provide: AXP_WIDGET_DEFINITION_PROVIDER,\n useClass: AXMIntegrationRefWidgetProvider,\n multi: true,\n },\n {\n provide: AXP_PAGE_COMPONENT_PROVIDER,\n useClass: AXMIntegrationRefPageComponentProvider,\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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"}
|