@acorex-platform/module-activity-insight-client 0.0.33 → 0.0.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (21) hide show
  1. package/fesm2022/acorex-platform-module-activity-insight-client-activity-dashboard-page.component-CAcsbq4I.mjs.map +1 -1
  2. package/fesm2022/acorex-platform-module-activity-insight-client-activity-timeline-page.component-DULl2SRF.mjs.map +1 -1
  3. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-activity-data-source.mjs.map +1 -1
  4. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-activity-event.mjs.map +1 -1
  5. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-activity-saved-view.mjs.map +1 -1
  6. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-masking-policy.mjs.map +1 -1
  7. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-retention-policy.mjs.map +1 -1
  8. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-sampling-policy.mjs.map +1 -1
  9. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entities-tracking-rule.mjs.map +1 -1
  10. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-acorex-platform-module-activity-insight-client-contracts-entity-catalog-DKOEPUGX.mjs.map +1 -1
  11. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-activity-data-source.entity-DIZMV16f.mjs.map +1 -1
  12. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-activity-event.entity-CERoGcZn.mjs.map +1 -1
  13. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-activity-saved-view.entity-Ch3bWS9X.mjs.map +1 -1
  14. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-masking-policy.entity-DzJ1RsQz.mjs.map +1 -1
  15. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-retention-policy.entity-CLANdFVA.mjs.map +1 -1
  16. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-sampling-policy.entity-CBYQWubG.mjs.map +1 -1
  17. package/fesm2022/acorex-platform-module-activity-insight-client-contracts-entity-catalog-tracking-rule.entity-D7xdHB-C.mjs.map +1 -1
  18. package/fesm2022/acorex-platform-module-activity-insight-client-contracts.mjs.map +1 -1
  19. package/fesm2022/acorex-platform-module-activity-insight-client-local-entities.mjs.map +1 -1
  20. package/fesm2022/acorex-platform-module-activity-insight-client.mjs.map +1 -1
  21. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-activity-insight-client.mjs","sources":["../../../../libs/modules/activity-insight/client/src/lib/manifest.ts","../../../../libs/modules/activity-insight/client/src/lib/menu.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/settings.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/search-command.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/features/activity-insight.routes.ts","../../../../libs/modules/activity-insight/client/src/lib/plugins/activity-tracking.entity-plugin.ts","../../../../libs/modules/activity-insight/client/src/lib/modifiers/activity-tracking-defaults.modifier.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-buffer.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-policy.service.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-transport.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/journey.service.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/tracker.service.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/page-view.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/command.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/query.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/entity.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/error.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/activity-insight.module.ts","../../../../libs/modules/activity-insight/client/src/lib/providers/tracking-rule.provider.token.ts","../../../../libs/modules/activity-insight/client/src/acorex-platform-module-activity-insight-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-activity-insight-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\nexport const ActivityInsightManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n dependencies: [],\n};\n\n//#endregion\n","//#region ---- Imports ----\n\n\n\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { inject } from '@angular/core';\n\nimport {\n\n AXMActivityInsightMenuKeys,\n\n RootConfig,\n\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\n\n\nconst ADMINISTRATION_MENU_KEY = 'Common:Menu:Administration';\n\n\n\n//#endregion\n\n\n\nexport class AXMActivityInsightMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly sessionService = inject(AXPSessionService);\n\n private featurePath(segment: string): string {\n const app = this.sessionService.application?.name ?? 'app';\n return `/${app}/m/${RootConfig.module.name}/${segment}`;\n }\n\n\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n\n const module = RootConfig.module;\n\n const entityPath = (entityName: string) => this.entityService.createPath(module.name, entityName);\n\n\n\n context.find(ADMINISTRATION_MENU_KEY).addItems([\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Root,\n\n priority: 4,\n\n text: module.title,\n\n icon: module.icon,\n\n type: 'menu',\n\n policy: { features: [module.name] },\n\n children: [\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Events,\n\n text: RootConfig.entities.activityEvent.titlePlural,\n\n path: entityPath(RootConfig.entities.activityEvent.name),\n\n icon: RootConfig.entities.activityEvent.icon,\n\n priority: 1,\n\n },\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Timelines,\n\n text: '@activity-insight:module.menus.timelines.title',\n\n path: this.featurePath('timelines'),\n\n icon: 'fa-light fa-timeline',\n\n priority: 2,\n\n },\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Policies,\n\n text: '@activity-insight:module.menus.policies.title',\n\n type: 'menu',\n\n icon: 'fa-light fa-sliders',\n\n priority: 3,\n\n children: [\n\n {\n\n name: 'ActivityInsight:Menu:TrackingRules',\n\n text: RootConfig.entities.trackingRule.titlePlural,\n\n path: entityPath(RootConfig.entities.trackingRule.name),\n\n icon: RootConfig.entities.trackingRule.icon,\n\n priority: 1,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:RetentionPolicies',\n\n text: RootConfig.entities.retentionPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.retentionPolicy.name),\n\n icon: RootConfig.entities.retentionPolicy.icon,\n\n priority: 2,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:MaskingPolicies',\n\n text: RootConfig.entities.maskingPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.maskingPolicy.name),\n\n icon: RootConfig.entities.maskingPolicy.icon,\n\n priority: 3,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:SamplingPolicies',\n\n text: RootConfig.entities.samplingPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.samplingPolicy.name),\n\n icon: RootConfig.entities.samplingPolicy.icon,\n\n priority: 4,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:DataSources',\n\n text: RootConfig.entities.activityDataSource.titlePlural,\n\n path: entityPath(RootConfig.entities.activityDataSource.name),\n\n icon: RootConfig.entities.activityDataSource.icon,\n\n priority: 5,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:SavedViews',\n\n text: RootConfig.entities.activitySavedView.titlePlural,\n\n path: entityPath(RootConfig.entities.activitySavedView.name),\n\n icon: RootConfig.entities.activitySavedView.icon,\n\n priority: 6,\n\n },\n\n ],\n\n },\n\n ],\n\n },\n\n ]);\n\n }\n\n}\n\n","import {\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPActivityInsightSettings,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport class AXPActivityInsightSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const trackingVisibility = `{{ context.eval('${AXPActivityInsightSettings.Enabled}') }}`;\n const defaults = AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG;\n\n context\n .addGroup(\n 'activity-insight',\n '@activity-insight:settings.group.title',\n '@activity-insight:settings.group.description',\n 'fa-light fa-chart-network',\n undefined,\n 910,\n )\n .addSection(\n 'tracking',\n '@activity-insight:settings.tracking.title',\n '@activity-insight:settings.tracking.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.Enabled,\n title: '@activity-insight:settings.tracking.items.enabled.title',\n description: '@activity-insight:settings.tracking.items.enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .endSection()\n .addSection(\n 'buffer',\n '@activity-insight:settings.buffer.title',\n '@activity-insight:settings.buffer.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.FlushIntervalMs,\n title: '@activity-insight:settings.buffer.items.flush-interval.title',\n description: '@activity-insight:settings.buffer.items.flush-interval.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.flushIntervalMs,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1000, maxValue: 60000, step: 1000, suffix: 'ms', visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxBatchSize,\n title: '@activity-insight:settings.buffer.items.max-batch-size.title',\n description: '@activity-insight:settings.buffer.items.max-batch-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxBatchSize,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 500, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxPayloadBytes,\n title: '@activity-insight:settings.buffer.items.max-payload-bytes.title',\n description: '@activity-insight:settings.buffer.items.max-payload-bytes.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxPayloadBytes,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 4096, maxValue: 65536, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxQueueSize,\n title: '@activity-insight:settings.buffer.items.max-queue-size.title',\n description: '@activity-insight:settings.buffer.items.max-queue-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxQueueSize,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 100, maxValue: 10000, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.FlushOnVisibilityHidden,\n title: '@activity-insight:settings.buffer.items.flush-on-hidden.title',\n description: '@activity-insight:settings.buffer.items.flush-on-hidden.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.flushOnVisibilityHidden,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.UseBeaconForFinalFlush,\n title: '@activity-insight:settings.buffer.items.use-beacon.title',\n description: '@activity-insight:settings.buffer.items.use-beacon.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.useBeaconForFinalFlush,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .endSection()\n .addSection(\n 'privacy',\n '@activity-insight:settings.privacy.title',\n '@activity-insight:settings.privacy.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.MaskingEnabled,\n title: '@activity-insight:settings.privacy.items.masking-enabled.title',\n description: '@activity-insight:settings.privacy.items.masking-enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.SamplingEnabled,\n title: '@activity-insight:settings.privacy.items.sampling-enabled.title',\n description: '@activity-insight:settings.privacy.items.sampling-enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.TrackAiContent,\n title: '@activity-insight:settings.privacy.items.track-ai-content.title',\n description: '@activity-insight:settings.privacy.items.track-ai-content.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: false,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .endSection()\n .endGroup();\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMActivityInsightSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [];\n}\n","//#region ----- Imports -----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPInsightsReportingPermissionKeys\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ----- Permission Definition Provider -----\n\n/**\n * Registers activity-insight capabilities into the shared Insights & Reporting group.\n */\n@Injectable()\nexport class AXMActivityInsightPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPInsightsReportingPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:insights-reporting.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.InsightsReporting.Root, `${G}.insights-reporting.title`, `${G}.insights-reporting.description`, { order: 100 });\n\n context\n .addGroup(\n groups.InsightsReporting.ActivityInsight,\n `${G}.insights-reporting-activity-insight.title`,\n `${G}.insights-reporting-activity-insight.description`,\n { parent: groups.InsightsReporting.Root, order: 20 },\n )\n .addPermission(\n keys.ViewActivityInsight,\n `${P}.view-activity-insight.title`,\n `${P}.view-activity-insight.description`,\n )\n .endPermission()\n .addPermission(\n keys.ManageActivityInsight,\n `${P}.manage-activity-insight.title`,\n `${P}.manage-activity-insight.description`,\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { Routes } from '@angular/router';\n\nimport { RootConfig } from '@acorex-platform/module-activity-insight-client/contracts';\n\n\n\nexport const activityInsightFeatureRoutes: Routes = [\n\n {\n\n path: `:app/m/${RootConfig.module.name}`,\n\n children: [\n\n {\n\n path: '',\n\n redirectTo: `${RootConfig.entities.activityEvent.name}/list`,\n\n pathMatch: 'full',\n\n },\n\n {\n\n path: 'timelines',\n\n loadComponent: () =>\n\n import('./timeline/activity-timeline-page.component').then((m) => m.AXMActivityInsightTimelinePageComponent),\n\n },\n\n {\n\n path: 'dashboard',\n\n loadComponent: () =>\n\n import('./dashboard/activity-dashboard-page.component').then((m) => m.AXMActivityInsightDashboardPageComponent),\n\n },\n\n ],\n\n },\n\n];\n\n","import { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXMActivityTrackingPolicy } from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport const ACTIVITY_TRACKING_PLUGIN_NAME = 'tracking';\n\nexport type AXMActivityTrackingPluginOptions = AXMActivityTrackingPolicy;\n\nexport function normalizeActivityTrackingPluginOptions(\n options?: AXMActivityTrackingPluginOptions,\n): AXMActivityTrackingPluginOptions {\n const opts = options ?? {};\n return {\n enabled: opts.enabled ?? true,\n list: {\n open: opts.list?.open ?? true,\n filterApply: opts.list?.filterApply ?? true,\n search: opts.list?.search ?? true,\n sort: opts.list?.sort ?? false,\n export: opts.list?.export ?? false,\n },\n detail: {\n open: opts.detail?.open ?? true,\n tabChange: opts.detail?.tabChange ?? false,\n },\n form: {\n createStart: opts.form?.createStart ?? false,\n updateStart: opts.form?.updateStart ?? false,\n submit: opts.form?.submit ?? true,\n validationError: opts.form?.validationError ?? true,\n fieldChange: {\n enabled: opts.form?.fieldChange?.enabled ?? false,\n include: opts.form?.fieldChange?.include ?? [],\n exclude: opts.form?.fieldChange?.exclude ?? [],\n },\n },\n commands: opts.commands ?? { '*': true },\n queries: opts.queries ?? { list: true, byKey: false, lookup: false },\n masking: opts.masking ?? { fields: [] },\n sampling: opts.sampling ?? {},\n };\n}\n\nexport function isActivityTrackingEnabled(options?: AXMActivityTrackingPluginOptions): boolean {\n return normalizeActivityTrackingPluginOptions(options).enabled !== false;\n}\n\nexport const activityTrackingPlugin: AXPEntityActionPlugin = {\n name: ACTIVITY_TRACKING_PLUGIN_NAME,\n order: 1,\n apply: (ctx, options?: AXMActivityTrackingPluginOptions) => {\n const normalized = normalizeActivityTrackingPluginOptions(options);\n const existing = ctx.plugins.find(ACTIVITY_TRACKING_PLUGIN_NAME).get();\n if (existing) {\n ctx.plugins.find(ACTIVITY_TRACKING_PLUGIN_NAME).update((p) => ({ ...p, options: normalized }));\n } else {\n ctx.plugins.add({ name: ACTIVITY_TRACKING_PLUGIN_NAME, options: normalized });\n }\n },\n};\n","import { AXPEntityModifierProvider } from '@acorex-platform/framework-client/layout/entity';\nimport {\n ACTIVITY_TRACKING_PLUGIN_NAME,\n normalizeActivityTrackingPluginOptions,\n} from '../plugins/activity-tracking.entity-plugin';\n\nexport const activityTrackingDefaultsModifier: AXPEntityModifierProvider = {\n entityName: '*',\n order: 5,\n modifier: (ctx) => {\n const plugins = ctx.plugins.list();\n if (plugins.some((p) => p.name === ACTIVITY_TRACKING_PLUGIN_NAME)) {\n return;\n }\n ctx.plugins.add({\n name: ACTIVITY_TRACKING_PLUGIN_NAME,\n options: normalizeActivityTrackingPluginOptions({ enabled: true }),\n });\n },\n};\n","import type {\n AXMActivityEvent,\n AXMActivityEventPriority,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\ntype QueuedEvent = AXMActivityEvent & { priority: AXMActivityEventPriority };\n\nconst PRIORITY_ORDER: AXMActivityEventPriority[] = ['high', 'normal', 'low'];\n\nconst COALESCE_KEYS = new Set([\n 'entity.filter.applied',\n 'entity.search.applied',\n 'entity.sort.applied',\n 'form.field.changed',\n]);\n\nconst DEFAULT_DEBOUNCE_MS: Record<string, number> = {\n 'entity.search.applied': 800,\n 'entity.sort.applied': 300,\n 'entity.filter.applied': 300,\n 'form.field.changed': 500,\n 'query.executed': 1500,\n};\n\nexport interface AXMActivityBufferConfig {\n maxQueueSize: number;\n debounceMs?: Record<string, number>;\n}\n\nexport class AXMActivityBuffer {\n private readonly lanes: Record<AXMActivityEventPriority, QueuedEvent[]> = {\n high: [],\n normal: [],\n low: [],\n };\n\n private readonly debounceTimers = new Map<string, ReturnType<typeof setTimeout>>();\n private readonly debounceMs: Record<string, number>;\n private droppedCount = 0;\n\n constructor(private readonly config: AXMActivityBufferConfig) {\n this.debounceMs = { ...DEFAULT_DEBOUNCE_MS, ...(config.debounceMs ?? {}) };\n }\n\n enqueue(event: AXMActivityEvent): void {\n const priority = event.priority ?? 'normal';\n const queued: QueuedEvent = { ...event, priority };\n\n const debounceKey = this.debounceMs[event.name];\n if (debounceKey != null) {\n this.scheduleDebounced(event.name, queued, debounceKey);\n return;\n }\n\n this.push(queued);\n }\n\n drain(maxCount?: number): AXMActivityEvent[] {\n const out: AXMActivityEvent[] = [];\n for (const lane of PRIORITY_ORDER) {\n while (this.lanes[lane].length && (maxCount == null || out.length < maxCount)) {\n const next = this.lanes[lane].shift();\n if (next) {\n out.push(next);\n }\n }\n }\n return out;\n }\n\n peekCount(): number {\n return PRIORITY_ORDER.reduce((sum, lane) => sum + this.lanes[lane].length, 0);\n }\n\n get dropped(): number {\n return this.droppedCount;\n }\n\n clear(): void {\n for (const lane of PRIORITY_ORDER) {\n this.lanes[lane].length = 0;\n }\n for (const timer of this.debounceTimers.values()) {\n clearTimeout(timer);\n }\n this.debounceTimers.clear();\n }\n\n requeueFront(events: AXMActivityEvent[]): void {\n for (let i = events.length - 1; i >= 0; i--) {\n const event = events[i];\n const priority = event.priority ?? 'normal';\n this.lanes[priority].unshift({ ...event, priority });\n }\n }\n\n private scheduleDebounced(name: string, event: QueuedEvent, delayMs: number): void {\n const key = `${name}:${event.entityName ?? ''}:${event.route ?? ''}`;\n const existing = this.debounceTimers.get(key);\n if (existing) {\n clearTimeout(existing);\n }\n const timer = setTimeout(() => {\n this.debounceTimers.delete(key);\n this.push(event);\n }, delayMs);\n this.debounceTimers.set(key, timer);\n }\n\n private push(event: QueuedEvent): void {\n if (COALESCE_KEYS.has(event.name)) {\n this.coalesce(event);\n }\n\n const priority = event.priority ?? 'normal';\n this.lanes[priority].push(event);\n this.enforceCapacity();\n }\n\n private coalesce(event: QueuedEvent): void {\n const lane = this.lanes[event.priority ?? 'normal'];\n const index = lane.findIndex(\n (e) =>\n e.name === event.name &&\n e.entityName === event.entityName &&\n e.route === event.route &&\n e.viewId === event.viewId,\n );\n if (index >= 0) {\n lane.splice(index, 1);\n }\n }\n\n private enforceCapacity(): void {\n while (this.size() > this.config.maxQueueSize) {\n if (this.lanes.low.length) {\n this.lanes.low.shift();\n this.droppedCount++;\n continue;\n }\n if (this.coalesceOverflow()) {\n continue;\n }\n if (this.lanes.normal.length) {\n this.lanes.normal.shift();\n this.droppedCount++;\n continue;\n }\n break;\n }\n }\n\n private coalesceOverflow(): boolean {\n let merged = false;\n for (const name of COALESCE_KEYS) {\n for (const lane of PRIORITY_ORDER) {\n const duplicates = this.lanes[lane].filter((e) => e.name === name);\n if (duplicates.length > 1) {\n const keep = duplicates[duplicates.length - 1];\n this.lanes[lane] = this.lanes[lane].filter((e) => e.name !== name || e === keep);\n merged = true;\n }\n }\n }\n return merged;\n }\n\n private size(): number {\n return PRIORITY_ORDER.reduce((sum, lane) => sum + this.lanes[lane].length, 0);\n }\n}\n","import { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXPActivityInsightSettings,\n AXMActivityEventNames,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n maskActivityProperties,\n truncateActivityProperties,\n type AXMActivityEvent,\n type AXMActivityMaskingPolicy,\n type AXMActivityTrackingPolicy,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nconst DEFAULT_QUERY_SAMPLING_RATE = 0.25;\n\nconst NOISE_BLOCKED_NAMES = new Set<string>([\n 'form.field.changed',\n 'ui.hover',\n 'ui.keypress',\n 'ui.scroll',\n]);\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightActivityPolicyService {\n private readonly settingsService = inject(AXPSettingsService);\n\n private enabledOverride: boolean | null = null;\n private entityPolicy: AXMActivityTrackingPolicy | null = null;\n\n setEntityPolicy(policy: AXMActivityTrackingPolicy | null): void {\n this.entityPolicy = policy;\n }\n\n enable(): void {\n this.enabledOverride = true;\n }\n\n disable(): void {\n this.enabledOverride = false;\n }\n\n async isEnabled(): Promise<boolean> {\n if (this.enabledOverride != null) {\n return this.enabledOverride;\n }\n try {\n const setting = await this.settingsService.get<boolean>(AXPActivityInsightSettings.Enabled);\n if (setting === false) {\n return false;\n }\n } catch {\n // settings unavailable — default to enabled\n }\n return this.entityPolicy?.enabled !== false;\n }\n\n async shouldTrack(event: AXMActivityEvent): Promise<boolean> {\n if (!(await this.isEnabled())) {\n return false;\n }\n if (NOISE_BLOCKED_NAMES.has(event.name)) {\n return false;\n }\n if (this.entityPolicy?.enabled === false) {\n return false;\n }\n if (!(await this.passesSampling(event))) {\n return false;\n }\n return true;\n }\n\n async applyMasking(event: AXMActivityEvent): Promise<AXMActivityEvent> {\n const maskingEnabled = await this.isMaskingEnabled();\n if (!maskingEnabled) {\n return event;\n }\n const policy: AXMActivityMaskingPolicy = {\n enabled: true,\n denylist: this.entityPolicy?.masking?.fields,\n maxPropertyBytes: AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxPropertyBytes,\n };\n const properties = event.properties\n ? (maskActivityProperties(event.properties, policy) as Record<string, unknown>)\n : undefined;\n const metadata = event.metadata\n ? (maskActivityProperties(event.metadata, policy) as Record<string, unknown>)\n : undefined;\n return {\n ...event,\n properties: truncateActivityProperties(properties, policy.maxPropertyBytes ?? 4000),\n metadata: truncateActivityProperties(metadata, policy.maxPropertyBytes ?? 4000),\n };\n }\n\n defaultPriorityFor(eventName: string): AXMActivityEvent['priority'] {\n if (eventName === AXMActivityEventNames.Query.Executed) {\n return 'low';\n }\n if (eventName === AXMActivityEventNames.Error.Seen) {\n return 'high';\n }\n return 'normal';\n }\n\n private async isMaskingEnabled(): Promise<boolean> {\n try {\n return (await this.settingsService.get<boolean>(AXPActivityInsightSettings.MaskingEnabled)) !== false;\n } catch {\n return true;\n }\n }\n\n private async passesSampling(event: AXMActivityEvent): Promise<boolean> {\n try {\n const samplingEnabled = await this.settingsService.get<boolean>(AXPActivityInsightSettings.SamplingEnabled);\n if (samplingEnabled === false) {\n return true;\n }\n } catch {\n // default sampling on\n }\n\n const entityRate = this.entityPolicy?.sampling?.[event.name];\n const rate =\n entityRate ??\n (event.name === AXMActivityEventNames.Query.Executed ? DEFAULT_QUERY_SAMPLING_RATE : 1);\n\n if (rate >= 1) {\n return true;\n }\n if (rate <= 0) {\n return false;\n }\n return Math.random() < rate;\n }\n}\n","import { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { AXPRuntimeTransportService } from '@acorex-platform/framework-client/runtime';\nimport { AXMActivityInsightTransportKeys } from '@acorex-platform/module-activity-insight-client/contracts';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n type AXMActivityBatch,\n type AXMActivityEvent,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport type AXMActivityTransportFlushReason = 'interval' | 'batch-size' | 'manual' | 'visibility' | 'final';\n\nexport interface AXMActivityTransportSendOptions {\n final?: boolean;\n maxPayloadBytes?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightActivityTransport {\n private readonly transportService = inject(AXPRuntimeTransportService);\n\n private retryAttempt = 0;\n\n async send(\n events: AXMActivityEvent[],\n options: AXMActivityTransportSendOptions = {},\n ): Promise<boolean> {\n if (!events.length) {\n return true;\n }\n\n const maxBytes =\n options.maxPayloadBytes ??\n (options.final\n ? AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.finalFlushMaxBytes\n : AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxPayloadBytes);\n\n const batch = this.buildBatch(this.trimToPayload(events, maxBytes));\n\n try {\n const result = await this.transportService.execute<\n { batch: AXMActivityBatch; final?: boolean; useBeacon?: boolean },\n { accepted: boolean }\n >(AXMActivityInsightTransportKeys.Event.BulkIngest, {\n batch,\n final: options.final,\n useBeacon: Boolean(options.final && AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.useBeaconForFinalFlush),\n });\n\n if (result.accepted) {\n this.retryAttempt = 0;\n return true;\n }\n return false;\n } catch (err) {\n console.debug('[ActivityInsight] transport failed', err);\n return false;\n }\n }\n\n nextRetryDelayMs(): number {\n const { retryBackoffMs, retryLimit } = AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG;\n if (this.retryAttempt >= retryLimit) {\n return -1;\n }\n const delay = retryBackoffMs * 2 ** this.retryAttempt;\n this.retryAttempt++;\n return delay;\n }\n\n resetRetry(): void {\n this.retryAttempt = 0;\n }\n\n private buildBatch(events: AXMActivityEvent[]): AXMActivityBatch {\n return {\n batchId: createRandomUuid(),\n sentAt: new Date().toISOString(),\n events,\n };\n }\n\n private trimToPayload(events: AXMActivityEvent[], maxBytes: number): AXMActivityEvent[] {\n const sorted = [...events].sort((a, b) => {\n const rank = (p?: string) => (p === 'high' ? 0 : p === 'normal' ? 1 : 2);\n return rank(a.priority) - rank(b.priority);\n });\n const out: AXMActivityEvent[] = [];\n for (const event of sorted) {\n const candidate = [...out, event];\n if (JSON.stringify(this.buildBatch(candidate)).length <= maxBytes) {\n out.push(event);\n }\n }\n return out.length ? out : sorted.slice(0, 1);\n }\n}\n","import { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { Injectable } from '@angular/core';\nimport type {\n AXMActivityEvent,\n AXMActivityEventStatus,\n AXMActivityJourney,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\ninterface ActiveActivity {\n id: string;\n name: string;\n startedAt: string;\n parentActivityId?: string;\n journeyId?: string;\n properties?: Record<string, unknown>;\n}\n\ninterface ActiveJourney {\n id: string;\n name: string;\n sessionId: string;\n startedAt: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightJourneyService {\n private readonly activities = new Map<string, ActiveActivity>();\n private readonly journeys = new Map<string, ActiveJourney>();\n\n startJourney(name: string, sessionId: string): AXMActivityJourney {\n const journey: ActiveJourney = {\n id: createRandomUuid(),\n name,\n sessionId,\n startedAt: new Date().toISOString(),\n };\n this.journeys.set(journey.id, journey);\n return { ...journey, status: 'started' };\n }\n\n endJourney(\n journeyId: string,\n status: AXMActivityEventStatus = 'completed',\n result?: Record<string, unknown>,\n ): AXMActivityJourney | null {\n const journey = this.journeys.get(journeyId);\n if (!journey) {\n return null;\n }\n this.journeys.delete(journeyId);\n return {\n ...journey,\n endedAt: new Date().toISOString(),\n status,\n result,\n };\n }\n\n getActiveJourney(journeyId: string): ActiveJourney | undefined {\n return this.journeys.get(journeyId);\n }\n\n startActivity(\n name: string,\n options?: { parentActivityId?: string; journeyId?: string; properties?: Record<string, unknown> },\n ): ActiveActivity {\n const activity: ActiveActivity = {\n id: createRandomUuid(),\n name,\n startedAt: new Date().toISOString(),\n parentActivityId: options?.parentActivityId,\n journeyId: options?.journeyId,\n properties: options?.properties,\n };\n this.activities.set(activity.id, activity);\n return activity;\n }\n\n endActivity(\n activityId: string,\n status: AXMActivityEventStatus = 'completed',\n properties?: Record<string, unknown>,\n ): (ActiveActivity & { endedAt: string; status: AXMActivityEventStatus; durationMs: number }) | null {\n const activity = this.activities.get(activityId);\n if (!activity) {\n return null;\n }\n this.activities.delete(activityId);\n const endedAt = new Date().toISOString();\n const durationMs = Date.parse(endedAt) - Date.parse(activity.startedAt);\n return {\n ...activity,\n endedAt,\n status,\n durationMs,\n properties: { ...activity.properties, ...properties },\n };\n }\n\n buildActivityStartedEvent(\n activity: ActiveActivity,\n enrich: Partial<AXMActivityEvent>,\n ): Partial<AXMActivityEvent> {\n return {\n id: activity.id,\n name: activity.name,\n status: 'started',\n timestamp: activity.startedAt,\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties: activity.properties,\n ...enrich,\n };\n }\n\n buildActivityEndedEvent(\n activity: ActiveActivity & { endedAt: string; status: AXMActivityEventStatus; durationMs: number },\n enrich: Partial<AXMActivityEvent>,\n ): Partial<AXMActivityEvent> {\n return {\n id: activity.id,\n name: activity.name,\n status: activity.status,\n timestamp: activity.endedAt,\n durationMs: activity.durationMs,\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties: activity.properties,\n ...enrich,\n };\n }\n}\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPHookService } from '@acorex-platform/framework-client/core';\nimport { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged } from 'rxjs';\nimport {\n AXPActivityInsightSettings,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n AXMActivityEventNames,\n type AXMActivityEvent,\n type AXMActivityEventStatus,\n type AXMActivityEventType,\n type AXMActivityCategory,\n type AXMActivityJourney,\n} from '@acorex-platform/module-activity-insight-client/contracts';\nimport { AXMActivityBuffer } from './activity-buffer';\nimport { AXMActivityInsightActivityPolicyService } from './activity-policy.service';\nimport { AXMActivityInsightActivityTransport } from './activity-transport';\nimport { AXMActivityInsightJourneyService } from './journey.service';\nexport const ACTIVITY_TRACK_HOOK_KEY = 'activity:track';\nexport const ACTIVITY_BEFORE_SEND_HOOK_KEY = 'activity-insight.before-send';\n\nexport interface AXMActivityTrackPayload extends Partial<AXMActivityEvent> {\n name: string;\n}\n\nconst SESSION_STORAGE_KEY = 'axm-activity-session-id';\nconst MIN_FLUSH_INTERVAL_MS = 1_000;\nconst MAX_FLUSH_INTERVAL_MS = 60_000;\nconst MIN_BATCH_SIZE = 1;\nconst MAX_BATCH_SIZE = 500;\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightTrackerService {\n private readonly sessionService = inject(AXPSessionService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly hooks = inject(AXPHookService);\n private readonly policy = inject(AXMActivityInsightActivityPolicyService);\n private readonly transport = inject(AXMActivityInsightActivityTransport);\n private readonly journeyService = inject(AXMActivityInsightJourneyService);\n private readonly router = inject(Router);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly buffer = new AXMActivityBuffer({\n maxQueueSize: AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxQueueSize,\n });\n\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private flushTimerStarting = false;\n private flushChain: Promise<void> = Promise.resolve();\n private pendingRetry: ReturnType<typeof setTimeout> | null = null;\n private initialized = false;\n private visibilityHandlersRegistered = false;\n private currentJourneyId: string | null = null;\n\n init(): void {\n if (this.initialized || typeof window === 'undefined') {\n return;\n }\n this.initialized = true;\n\n this.sessionService.isReadyForAppScopedApi$\n .pipe(distinctUntilChanged())\n .subscribe((ready) => {\n if (ready) {\n this.onSessionActive();\n } else {\n this.onSessionInactive();\n }\n });\n\n if (!this.visibilityHandlersRegistered) {\n this.registerVisibilityFlush();\n this.visibilityHandlersRegistered = true;\n }\n\n this.destroyRef.onDestroy(() => {\n void this.flush('final');\n this.onSessionInactive();\n });\n }\n\n async track(name: string, payload: Partial<AXMActivityEvent> = {}): Promise<void> {\n await this.trackMany([{ name, ...payload }]);\n }\n\n async trackMany(events: AXMActivityTrackPayload[]): Promise<void> {\n if (!this.canTrack()) {\n return;\n }\n for (const partial of events) {\n try {\n const built = await this.buildEvent(partial);\n if (!(await this.policy.shouldTrack(built))) {\n continue;\n }\n const masked = await this.policy.applyMasking(built);\n const finalEvent = await this.hooks.runAsync(ACTIVITY_BEFORE_SEND_HOOK_KEY, masked);\n if (!finalEvent) {\n continue;\n }\n this.buffer.enqueue(finalEvent);\n } catch (err) {\n console.debug('[ActivityInsight] track skipped', err);\n }\n }\n await this.flushIfNeeded();\n }\n\n startJourney(name: string): AXMActivityJourney {\n const journey = this.journeyService.startJourney(name, this.ensureSessionId());\n this.currentJourneyId = journey.id;\n void this.track(name, {\n type: 'system',\n category: 'custom',\n journeyId: journey.id,\n status: 'started',\n });\n return journey;\n }\n\n endJourney(\n journeyId?: string,\n status: AXMActivityEventStatus = 'completed',\n result?: Record<string, unknown>,\n ): void {\n const id = journeyId ?? this.currentJourneyId;\n if (!id) {\n return;\n }\n const journey = this.journeyService.endJourney(id, status, result);\n if (!journey) {\n return;\n }\n if (this.currentJourneyId === id) {\n this.currentJourneyId = null;\n }\n void this.track(journey.name, {\n type: 'system',\n category: 'custom',\n journeyId: journey.id,\n status,\n properties: result,\n });\n void this.flush('manual');\n }\n\n startActivity(name: string, properties?: Record<string, unknown>): string {\n const activity = this.journeyService.startActivity(name, {\n journeyId: this.currentJourneyId ?? undefined,\n properties,\n });\n void this.track(name, {\n id: activity.id,\n type: 'action',\n category: 'custom',\n status: 'started',\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties,\n });\n return activity.id;\n }\n\n endActivity(\n activityId: string,\n status: AXMActivityEventStatus = 'completed',\n properties?: Record<string, unknown>,\n ): void {\n const ended = this.journeyService.endActivity(activityId, status, properties);\n if (!ended) {\n return;\n }\n void this.track(ended.name, {\n id: ended.id,\n type: 'action',\n category: 'custom',\n status: ended.status,\n durationMs: ended.durationMs,\n parentActivityId: ended.parentActivityId,\n journeyId: ended.journeyId,\n properties: ended.properties,\n });\n }\n\n trackPageView(route?: string): void {\n void this.track(AXMActivityEventNames.Page.Viewed, {\n type: 'view',\n category: 'navigation',\n route: route ?? this.router.url,\n });\n }\n\n trackClick(name: string, properties?: Record<string, unknown>): void {\n void this.track(name, { type: 'action', category: 'custom', properties });\n }\n\n trackEntityListOpen(module: string, entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.ListOpened, {\n type: 'view',\n category: 'entity',\n module,\n entityName,\n properties,\n });\n }\n\n trackEntityDetailOpen(\n module: string,\n entityName: string,\n entityId?: string,\n properties?: Record<string, unknown>,\n ): void {\n void this.track(AXMActivityEventNames.Entity.DetailOpened, {\n type: 'view',\n category: 'entity',\n module,\n entityName,\n entityId,\n properties,\n });\n }\n\n trackFilterApply(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.FilterApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackSearch(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.SearchApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackSort(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.SortApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackCommandExecution(\n commandName: string,\n options?: { success?: boolean; durationMs?: number; properties?: Record<string, unknown> },\n ): void {\n void this.track(AXMActivityEventNames.Command.Executed, {\n type: 'action',\n category: 'command',\n commandName,\n status: options?.success === false ? 'failed' : 'completed',\n durationMs: options?.durationMs,\n properties: options?.properties,\n });\n }\n\n trackQueryExecution(\n queryName: string,\n options?: { success?: boolean; durationMs?: number; properties?: Record<string, unknown> },\n ): void {\n void this.track(AXMActivityEventNames.Query.Executed, {\n type: 'system',\n category: 'query',\n queryName,\n status: options?.success === false ? 'failed' : 'completed',\n durationMs: options?.durationMs,\n properties: options?.properties,\n priority: 'low',\n });\n }\n\n trackFormSubmit(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Form.Submitted, {\n type: 'action',\n category: 'form',\n entityName,\n properties,\n });\n }\n\n trackValidationError(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Form.ValidationFailed, {\n type: 'error',\n category: 'form',\n entityName,\n properties,\n severity: 'normal',\n });\n }\n\n trackAiInteraction(name: string, properties?: Record<string, unknown>): void {\n void this.track(name, { type: 'action', category: 'ai', properties });\n }\n\n trackError(error: unknown, properties?: Record<string, unknown>): void {\n const message = error instanceof Error ? error.message : String(error);\n void this.track(AXMActivityEventNames.Error.Seen, {\n type: 'error',\n category: 'error',\n severity: 'high',\n priority: 'high',\n properties: { message, ...properties },\n });\n }\n\n async flush(reason: 'interval' | 'batch-size' | 'manual' | 'visibility' | 'final' = 'manual'): Promise<void> {\n if (!this.canTrack()) {\n return;\n }\n\n this.flushChain = this.flushChain.then(async () => {\n const events = this.buffer.drain();\n if (!events.length) {\n return;\n }\n const sent = await this.transport.send(events, { final: reason === 'final' });\n if (!sent) {\n this.buffer.requeueFront(events);\n this.scheduleRetry();\n return;\n }\n this.transport.resetRetry();\n });\n\n await this.flushChain;\n }\n\n enable(): void {\n this.policy.enable();\n }\n\n disable(): void {\n this.policy.disable();\n }\n\n getSessionId(): string {\n return this.ensureSessionId();\n }\n\n private canTrack(): boolean {\n return Boolean(this.sessionService.getToken());\n }\n\n private onSessionActive(): void {\n this.ensureSessionId();\n this.startFlushTimer();\n }\n\n private onSessionInactive(): void {\n this.stopFlushTimer();\n this.cancelPendingRetry();\n this.buffer.clear();\n this.transport.resetRetry();\n this.currentJourneyId = null;\n }\n\n private cancelPendingRetry(): void {\n if (this.pendingRetry) {\n clearTimeout(this.pendingRetry);\n this.pendingRetry = null;\n }\n }\n\n private async buildEvent(partial: AXMActivityTrackPayload): Promise<AXMActivityEvent> {\n const session = this.sessionService;\n const priority = partial.priority ?? this.policy.defaultPriorityFor(partial.name);\n return {\n id: partial.id ?? createRandomUuid(),\n name: partial.name,\n type: partial.type ?? this.inferType(partial.name),\n category: partial.category ?? this.inferCategory(partial.name),\n timestamp: partial.timestamp ?? new Date().toISOString(),\n sessionId: partial.sessionId ?? this.ensureSessionId(),\n journeyId: partial.journeyId ?? this.currentJourneyId ?? undefined,\n parentActivityId: partial.parentActivityId,\n userId: partial.userId ?? session.user?.id,\n username: partial.username ?? session.user?.name,\n tenantId: partial.tenantId ?? session.tenant?.id,\n applicationId: partial.applicationId ?? session.application?.id,\n source: partial.source ?? 'frontend',\n route: partial.route ?? this.router.url,\n module: partial.module,\n entityName: partial.entityName,\n entityId: partial.entityId,\n viewId: partial.viewId,\n widgetId: partial.widgetId,\n commandName: partial.commandName,\n queryName: partial.queryName,\n workflowId: partial.workflowId,\n aiConversationId: partial.aiConversationId,\n status: partial.status,\n durationMs: partial.durationMs,\n severity: partial.severity,\n priority,\n properties: partial.properties,\n metadata: partial.metadata ?? { sdkVersion: '1.0.0' },\n };\n }\n\n private inferType(name: string): AXMActivityEventType {\n if (name.startsWith('error.') || name.includes('validation')) {\n return 'error';\n }\n if (name.startsWith('page.') || name.includes('.opened')) {\n return 'view';\n }\n if (name.startsWith('query.')) {\n return 'system';\n }\n return 'action';\n }\n\n private inferCategory(name: string): AXMActivityCategory {\n if (name.startsWith('page.')) return 'navigation';\n if (name.startsWith('entity.')) return 'entity';\n if (name.startsWith('command.')) return 'command';\n if (name.startsWith('query.')) return 'query';\n if (name.startsWith('form.')) return 'form';\n if (name.startsWith('ai.')) return 'ai';\n if (name.startsWith('workflow.')) return 'workflow';\n if (name.startsWith('security.')) return 'security';\n if (name.startsWith('error.')) return 'error';\n return 'custom';\n }\n\n private ensureSessionId(): string {\n try {\n let id = sessionStorage.getItem(SESSION_STORAGE_KEY);\n if (!id) {\n id = createRandomUuid();\n sessionStorage.setItem(SESSION_STORAGE_KEY, id);\n }\n return id;\n } catch {\n return createRandomUuid();\n }\n }\n\n private async flushIfNeeded(): Promise<void> {\n const maxBatchSize = await this.getBufferSetting(\n AXPActivityInsightSettings.MaxBatchSize,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxBatchSize,\n MIN_BATCH_SIZE,\n MAX_BATCH_SIZE,\n );\n if (this.buffer.peekCount() >= maxBatchSize) {\n await this.flush('batch-size');\n }\n }\n\n private startFlushTimer(): void {\n if (this.flushTimer || this.flushTimerStarting) {\n return;\n }\n this.flushTimerStarting = true;\n\n void this.getBufferSetting(\n AXPActivityInsightSettings.FlushIntervalMs,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.flushIntervalMs,\n MIN_FLUSH_INTERVAL_MS,\n MAX_FLUSH_INTERVAL_MS,\n )\n .then((ms) => {\n if (this.flushTimer) {\n return;\n }\n this.flushTimer = setInterval(() => void this.flush('interval'), ms);\n })\n .finally(() => {\n this.flushTimerStarting = false;\n });\n }\n\n private stopFlushTimer(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n this.flushTimerStarting = false;\n }\n\n private registerVisibilityFlush(): void {\n if (typeof document === 'undefined') {\n return;\n }\n const handler = () => {\n if (document.visibilityState === 'hidden') {\n void this.flush('visibility');\n }\n };\n document.addEventListener('visibilitychange', handler);\n window.addEventListener('pagehide', () => void this.flush('final'));\n this.destroyRef.onDestroy(() => {\n document.removeEventListener('visibilitychange', handler);\n });\n }\n\n private scheduleRetry(): void {\n const delay = this.transport.nextRetryDelayMs();\n if (delay < 0 || this.pendingRetry) {\n return;\n }\n this.pendingRetry = setTimeout(() => {\n this.pendingRetry = null;\n void this.flush('manual');\n }, delay);\n }\n\n private async getSetting<T>(key: string, fallback: T): Promise<T> {\n try {\n const value = await this.settingsService.get<T>(key);\n return value ?? fallback;\n } catch {\n return fallback;\n }\n }\n\n private async getBufferSetting(\n key: string,\n fallback: number,\n min: number,\n max: number,\n ): Promise<number> {\n try {\n const value = await this.settingsService.get<number>(key);\n return this.clampBufferNumber(value, fallback, min, max);\n } catch {\n return fallback;\n }\n }\n\n private clampBufferNumber(value: unknown, fallback: number, min: number, max: number): number {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return fallback;\n }\n return Math.min(max, Math.max(min, Math.round(value)));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightPageViewInstrumentation {\n private readonly router = inject(Router);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n init(): void {\n this.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd)).subscribe((event) => {\n this.tracker.trackPageView(event.urlAfterRedirects);\n });\n }\n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport {\n AXPCommandEventsService,\n type AXPCommandExecutionEvent,\n} from '@acorex-platform/framework-client/runtime';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightCommandInstrumentation {\n private readonly commandEvents = inject(AXPCommandEventsService);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n private readonly destroyRef = inject(DestroyRef);\n\n init(): void {\n const unsubscribe = this.commandEvents.listen((event) => this.handle(event));\n this.destroyRef.onDestroy(unsubscribe);\n }\n\n private handle(event: AXPCommandExecutionEvent & { executionId?: string; durationMs?: number }): void {\n if (event.stage !== 'after') {\n return;\n }\n this.tracker.trackCommandExecution(event.key, {\n success: event.success,\n durationMs: event.durationMs,\n properties: {\n executionId: event.executionId,\n input: event.input,\n error: event.error,\n },\n });\n }\n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\nconst QUERY_EXECUTION_EVENT_KEY = '@queries:execution';\n\ninterface QueryExecutionEvent {\n executionId?: string;\n stage: 'before' | 'after';\n key: string;\n input?: unknown;\n success?: boolean;\n result?: unknown;\n error?: unknown;\n durationMs?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightQueryInstrumentation {\n private readonly broadcast = inject(AXPBroadcastEventService);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n private readonly destroyRef = inject(DestroyRef);\n\n init(): void {\n const subscription = this.broadcast\n .listen<QueryExecutionEvent>(QUERY_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => this.handle(data));\n this.destroyRef.onDestroy(() => subscription.unsubscribe());\n }\n\n private handle(event: QueryExecutionEvent): void {\n if (event.stage !== 'after') {\n return;\n }\n this.tracker.trackQueryExecution(event.key, {\n success: event.success,\n durationMs: event.durationMs,\n properties: {\n executionId: event.executionId,\n input: event.input,\n error: event.error,\n },\n });\n }\n}\n","import {\n AXPDistributedEventListenerProvider,\n type AXPDistributedEventListenerProvider as Provider,\n} from '@acorex-platform/framework-client/core';\nimport { inject, Injectable } from '@angular/core';\nimport { AXMActivityEventNames } from '@acorex-platform/module-activity-insight-client/contracts';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\nconst EntityLifecycleHookKeys = {\n ListOpened: 'entity.list.opened',\n ListCriteriaApplied: 'entity.list.criteria-applied',\n DetailOpened: 'entity.detail.opened',\n FormSubmitted: 'entity.form.submitted',\n FormValidationFailed: 'entity.form.validation-failed',\n} as const;\n\ntype EntityHookPayload = Record<string, unknown> & {\n module?: string;\n entityName?: string;\n entityId?: string;\n entity?: string;\n operation?: string;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightEntityInstrumentation {\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n init(): void {\n // Hook providers are registered via module; this ensures tracker is ready.\n }\n\n handleListOpened(data: EntityHookPayload): void {\n const module = String(data['module'] ?? data['moduleName'] ?? '');\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackEntityListOpen(module, entityName, data);\n }\n\n handleDetailOpened(data: EntityHookPayload): void {\n const module = String(data['module'] ?? data['moduleName'] ?? '');\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n const entityId = data['entityId'] != null ? String(data['entityId']) : undefined;\n this.tracker.trackEntityDetailOpen(module, entityName, entityId, data);\n }\n\n handleCriteriaApplied(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n const kind = String(data['kind'] ?? data['deltaType'] ?? 'filter');\n if (kind === 'search') {\n this.tracker.trackSearch(entityName, data);\n return;\n }\n if (kind === 'sort') {\n this.tracker.trackSort(entityName, data);\n return;\n }\n this.tracker.trackFilterApply(entityName, data);\n }\n\n handleFormSubmitted(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackFormSubmit(entityName, data);\n }\n\n handleValidationFailed(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackValidationError(entityName, data);\n }\n\n handleEntityCrud(data: EntityHookPayload): void {\n const operation = String(data['operation'] ?? '');\n const entityName = String(data['entityName'] ?? '');\n const nameMap: Record<string, string> = {\n inserted: AXMActivityEventNames.Entity.Created,\n updated: AXMActivityEventNames.Entity.Updated,\n deleted: AXMActivityEventNames.Entity.Deleted,\n };\n const name = nameMap[operation];\n if (!name) {\n return;\n }\n void this.tracker.track(name, {\n type: 'action',\n category: 'entity',\n entityName,\n entityId: data['entityId'] != null ? String(data['entityId']) : undefined,\n properties: data,\n });\n }\n}\n\nfunction createHookProvider(\n key: string,\n handler: (svc: AXMActivityInsightEntityInstrumentation, data: EntityHookPayload) => void,\n): Provider<EntityHookPayload> {\n return {\n key,\n priority: 50,\n execute: (data) => {\n const svc = inject(AXMActivityInsightEntityInstrumentation);\n handler(svc, data);\n },\n };\n}\n\nexport const AXMActivityInsightEntityHookProviders: AXPDistributedEventListenerProvider<EntityHookPayload>[] = [\n createHookProvider(EntityLifecycleHookKeys.ListOpened, (svc, data) => svc.handleListOpened(data)),\n createHookProvider(EntityLifecycleHookKeys.DetailOpened, (svc, data) => svc.handleDetailOpened(data)),\n createHookProvider(EntityLifecycleHookKeys.ListCriteriaApplied, (svc, data) => svc.handleCriteriaApplied(data)),\n createHookProvider(EntityLifecycleHookKeys.FormSubmitted, (svc, data) => svc.handleFormSubmitted(data)),\n createHookProvider(EntityLifecycleHookKeys.FormValidationFailed, (svc, data) => svc.handleValidationFailed(data)),\n createHookProvider('entity.inserted', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'inserted' })),\n createHookProvider('entity.updated', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'updated' })),\n createHookProvider('entity.deleted', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'deleted' })),\n];\n","import { AXPErrorHandler } from '@acorex-platform/framework-client/common';\nimport { inject, Injectable } from '@angular/core';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable()\nexport class AXMActivityInsightErrorHandler implements AXPErrorHandler {\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n handleError(error: Error, next: (error: Error) => void): void {\n try {\n this.tracker.trackError(error);\n } catch {\n // tracking must never break error handling\n }\n next(error);\n }\n}\n","import {\n AXP_APP_STARTUP_PRIORITY,\n AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n AXP_MODULE_MANIFEST_PROVIDER,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_ENTITY_MODIFIER, AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPRuntimeModule } from '@acorex-platform/framework-client/runtime';\nimport { inject, NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport {\n AXP_MENU_PROVIDER,\n AXP_SEARCH_PROVIDER,\n AXP_SETTING_DEFINITION_PROVIDER,\n AXPCommonModule,\n} from '@acorex-platform/framework-client/common';\nimport { ActivityInsightManifest } from './manifest';\nimport { AXMActivityInsightMenuProvider } from './menu.provider';\n\nimport { AXPActivityInsightSettingProvider } from './settings.provider';\nimport { AXMActivityInsightSearchCommandProvider } from './search-command.provider';\nimport { AXMActivityInsightPermissionDefinitionProvider } from './permission-definition.provider';\nimport { activityInsightFeatureRoutes } from './features/activity-insight.routes';\nimport { activityTrackingPlugin } from './plugins/activity-tracking.entity-plugin';\nimport { activityTrackingDefaultsModifier } from './modifiers/activity-tracking-defaults.modifier';\nimport { AXMActivityInsightTrackerService, ACTIVITY_TRACK_HOOK_KEY, type AXMActivityTrackPayload } from './sdk/tracker.service';\nimport { AXMActivityInsightPageViewInstrumentation } from './instrumentation/page-view.instrumentation';\nimport { AXMActivityInsightCommandInstrumentation } from './instrumentation/command.instrumentation';\nimport { AXMActivityInsightQueryInstrumentation } from './instrumentation/query.instrumentation';\nimport {\n AXMActivityInsightEntityHookProviders,\n AXMActivityInsightEntityInstrumentation,\n} from './instrumentation/entity.instrumentation';\nimport { AXMActivityInsightErrorHandler } from './instrumentation/error.instrumentation';\n\n@NgModule({\n imports: [\n AXPRuntimeModule,\n AXPCommonModule.forChild({ errorHandlers: [AXMActivityInsightErrorHandler] }),\n ],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => activityInsightFeatureRoutes,\n },\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: ActivityInsightManifest, multi: true },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMActivityInsightPermissionDefinitionProvider,\n multi: true,\n },\n { provide: AXP_MENU_PROVIDER, useClass: AXMActivityInsightMenuProvider, multi: true },\n \n { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXPActivityInsightSettingProvider, multi: true },\n { provide: AXP_SEARCH_PROVIDER, useClass: AXMActivityInsightSearchCommandProvider, multi: true },\n { provide: AXP_ENTITY_ACTION_PLUGIN, useValue: activityTrackingPlugin, multi: true },\n { provide: AXP_ENTITY_MODIFIER, useValue: activityTrackingDefaultsModifier, multi: true },\n ...AXMActivityInsightEntityHookProviders.map((provider) => ({\n provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n useValue: provider,\n multi: true,\n })),\n {\n provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n multi: true,\n useFactory: () => ({\n key: ACTIVITY_TRACK_HOOK_KEY,\n priority: 0,\n execute: (data: AXMActivityTrackPayload) => {\n const tracker = inject(AXMActivityInsightTrackerService);\n if (data?.name) {\n void tracker.trackMany([data]);\n }\n },\n }),\n },\n provideAppStartUpTask(() => {\n const tracker = inject(AXMActivityInsightTrackerService);\n const pageView = inject(AXMActivityInsightPageViewInstrumentation);\n const command = inject(AXMActivityInsightCommandInstrumentation);\n const query = inject(AXMActivityInsightQueryInstrumentation);\n const entity = inject(AXMActivityInsightEntityInstrumentation);\n\n return {\n name: 'activity-insight-instrumentation',\n priority: AXP_APP_STARTUP_PRIORITY.activityInsight,\n run: async () => {\n tracker.init();\n pageView.init();\n command.init();\n query.init();\n entity.init();\n },\n };\n }),\n ],\n})\nexport class AXMActivityInsightModule {}\n","import { InjectionToken } from '@angular/core';\nimport type { AXMActivityTrackingRule } from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport interface AXMActivityTrackingRuleProvider {\n module: string;\n rules: AXMActivityTrackingRule[];\n}\n\nexport const AXM_ACTIVITY_TRACKING_RULE_PROVIDER = new InjectionToken<AXMActivityTrackingRuleProvider[]>(\n 'AXM_ACTIVITY_TRACKING_RULE_PROVIDER',\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-activity-insight-client.mjs","sources":["../../../../libs/modules/activity-insight/client/src/lib/manifest.ts","../../../../libs/modules/activity-insight/client/src/lib/menu.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/settings.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/search-command.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/permission-definition.provider.ts","../../../../libs/modules/activity-insight/client/src/lib/features/activity-insight.routes.ts","../../../../libs/modules/activity-insight/client/src/lib/plugins/activity-tracking.entity-plugin.ts","../../../../libs/modules/activity-insight/client/src/lib/modifiers/activity-tracking-defaults.modifier.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-buffer.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-policy.service.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/activity-transport.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/journey.service.ts","../../../../libs/modules/activity-insight/client/src/lib/sdk/tracker.service.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/page-view.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/command.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/query.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/entity.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/instrumentation/error.instrumentation.ts","../../../../libs/modules/activity-insight/client/src/lib/activity-insight.module.ts","../../../../libs/modules/activity-insight/client/src/lib/providers/tracking-rule.provider.token.ts","../../../../libs/modules/activity-insight/client/src/acorex-platform-module-activity-insight-client.ts"],"sourcesContent":["//#region ---- Imports ----\n\nimport { AXPModuleManifest } from '@acorex-platform/framework-client/core';\nimport { RootConfig } from '@acorex-platform/module-activity-insight-client/contracts';\n\n//#endregion\n\n//#region ---- Manifest Definition ----\n\nexport const ActivityInsightManifest: AXPModuleManifest = {\n name: RootConfig.module.name,\n version: '1.0.0',\n title: RootConfig.module.title,\n icon: RootConfig.module.icon,\n i18n: RootConfig.config.i18n,\n type: 'platform',\n domain: 'platform',\n dependencies: [],\n};\n\n//#endregion\n","//#region ---- Imports ----\n\n\n\nimport { AXPMenuProvider, AXPMenuProviderContext } from '@acorex-platform/framework-client/common';\n\nimport { AXPEntityService } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { inject } from '@angular/core';\n\nimport {\n\n AXMActivityInsightMenuKeys,\n\n RootConfig,\n\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\n\n\nconst ADMINISTRATION_MENU_KEY = 'Common:Menu:Administration';\n\n\n\n//#endregion\n\n\n\nexport class AXMActivityInsightMenuProvider implements AXPMenuProvider {\n private readonly entityService = inject(AXPEntityService);\n private readonly sessionService = inject(AXPSessionService);\n\n private featurePath(segment: string): string {\n const app = this.sessionService.application?.name ?? 'app';\n return `/${app}/m/${RootConfig.module.name}/${segment}`;\n }\n\n\n\n async provide(context: AXPMenuProviderContext): Promise<void> {\n\n const module = RootConfig.module;\n\n const entityPath = (entityName: string) => this.entityService.createPath(module.name, entityName);\n\n\n\n context.find(ADMINISTRATION_MENU_KEY).addItems([\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Root,\n\n priority: 4,\n\n text: module.title,\n\n icon: module.icon,\n\n type: 'menu',\n\n policy: { features: [module.name] },\n\n children: [\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Events,\n\n text: RootConfig.entities.activityEvent.titlePlural,\n\n path: entityPath(RootConfig.entities.activityEvent.name),\n\n icon: RootConfig.entities.activityEvent.icon,\n\n priority: 1,\n\n },\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Timelines,\n\n text: '@activity-insight:module.menus.timelines.title',\n\n path: this.featurePath('timelines'),\n\n icon: 'fa-light fa-timeline',\n\n priority: 2,\n\n },\n\n {\n\n name: AXMActivityInsightMenuKeys.ActivityInsight.Policies,\n\n text: '@activity-insight:module.menus.policies.title',\n\n type: 'menu',\n\n icon: 'fa-light fa-sliders',\n\n priority: 3,\n\n children: [\n\n {\n\n name: 'ActivityInsight:Menu:TrackingRules',\n\n text: RootConfig.entities.trackingRule.titlePlural,\n\n path: entityPath(RootConfig.entities.trackingRule.name),\n\n icon: RootConfig.entities.trackingRule.icon,\n\n priority: 1,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:RetentionPolicies',\n\n text: RootConfig.entities.retentionPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.retentionPolicy.name),\n\n icon: RootConfig.entities.retentionPolicy.icon,\n\n priority: 2,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:MaskingPolicies',\n\n text: RootConfig.entities.maskingPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.maskingPolicy.name),\n\n icon: RootConfig.entities.maskingPolicy.icon,\n\n priority: 3,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:SamplingPolicies',\n\n text: RootConfig.entities.samplingPolicy.titlePlural,\n\n path: entityPath(RootConfig.entities.samplingPolicy.name),\n\n icon: RootConfig.entities.samplingPolicy.icon,\n\n priority: 4,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:DataSources',\n\n text: RootConfig.entities.activityDataSource.titlePlural,\n\n path: entityPath(RootConfig.entities.activityDataSource.name),\n\n icon: RootConfig.entities.activityDataSource.icon,\n\n priority: 5,\n\n },\n\n {\n\n name: 'ActivityInsight:Menu:SavedViews',\n\n text: RootConfig.entities.activitySavedView.titlePlural,\n\n path: entityPath(RootConfig.entities.activitySavedView.name),\n\n icon: RootConfig.entities.activitySavedView.icon,\n\n priority: 6,\n\n },\n\n ],\n\n },\n\n ],\n\n },\n\n ]);\n\n }\n\n}\n\n","import {\n AXPSettingDefinitionProvider,\n AXPSettingDefinitionProviderContext,\n} from '@acorex-platform/framework-client/common';\nimport { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPActivityInsightSettings,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport class AXPActivityInsightSettingProvider implements AXPSettingDefinitionProvider {\n async provide(context: AXPSettingDefinitionProviderContext): Promise<void> {\n const trackingVisibility = `{{ context.eval('${AXPActivityInsightSettings.Enabled}') }}`;\n const defaults = AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG;\n\n context\n .addGroup(\n 'activity-insight',\n '@activity-insight:settings.group.title',\n '@activity-insight:settings.group.description',\n 'fa-light fa-chart-network',\n undefined,\n 910,\n )\n .addSection(\n 'tracking',\n '@activity-insight:settings.tracking.title',\n '@activity-insight:settings.tracking.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.Enabled,\n title: '@activity-insight:settings.tracking.items.enabled.title',\n description: '@activity-insight:settings.tracking.items.enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: { type: AXPWidgetsList.Editors.ToggleSwitch },\n })\n .endSection()\n .addSection(\n 'buffer',\n '@activity-insight:settings.buffer.title',\n '@activity-insight:settings.buffer.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.FlushIntervalMs,\n title: '@activity-insight:settings.buffer.items.flush-interval.title',\n description: '@activity-insight:settings.buffer.items.flush-interval.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.flushIntervalMs,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1000, maxValue: 60000, step: 1000, suffix: 'ms', visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxBatchSize,\n title: '@activity-insight:settings.buffer.items.max-batch-size.title',\n description: '@activity-insight:settings.buffer.items.max-batch-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxBatchSize,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 1, maxValue: 500, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxPayloadBytes,\n title: '@activity-insight:settings.buffer.items.max-payload-bytes.title',\n description: '@activity-insight:settings.buffer.items.max-payload-bytes.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxPayloadBytes,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 4096, maxValue: 65536, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.MaxQueueSize,\n title: '@activity-insight:settings.buffer.items.max-queue-size.title',\n description: '@activity-insight:settings.buffer.items.max-queue-size.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.maxQueueSize,\n widget: {\n type: AXPWidgetsList.Editors.NumberBox,\n options: { minValue: 100, maxValue: 10000, visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.FlushOnVisibilityHidden,\n title: '@activity-insight:settings.buffer.items.flush-on-hidden.title',\n description: '@activity-insight:settings.buffer.items.flush-on-hidden.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.flushOnVisibilityHidden,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.UseBeaconForFinalFlush,\n title: '@activity-insight:settings.buffer.items.use-beacon.title',\n description: '@activity-insight:settings.buffer.items.use-beacon.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: defaults.useBeaconForFinalFlush,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .endSection()\n .addSection(\n 'privacy',\n '@activity-insight:settings.privacy.title',\n '@activity-insight:settings.privacy.description',\n )\n .addSetting({\n key: AXPActivityInsightSettings.MaskingEnabled,\n title: '@activity-insight:settings.privacy.items.masking-enabled.title',\n description: '@activity-insight:settings.privacy.items.masking-enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.SamplingEnabled,\n title: '@activity-insight:settings.privacy.items.sampling-enabled.title',\n description: '@activity-insight:settings.privacy.items.sampling-enabled.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: true,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .addSetting({\n key: AXPActivityInsightSettings.TrackAiContent,\n title: '@activity-insight:settings.privacy.items.track-ai-content.title',\n description: '@activity-insight:settings.privacy.items.track-ai-content.description',\n scope: 'P',\n overridableAt: [],\n isInherited: false,\n defaultValue: false,\n widget: {\n type: AXPWidgetsList.Editors.ToggleSwitch,\n options: { visibility: trackingVisibility },\n },\n })\n .endSection()\n .endGroup();\n }\n}\n","import { AXPSearchCommandProvider, AXPSearchResult } from '@acorex-platform/framework-client/common';\n\nexport class AXMActivityInsightSearchCommandProvider extends AXPSearchCommandProvider {\n commands: AXPSearchResult[] = [];\n}\n","//#region ----- Imports -----\n\nimport {\n AXPPermissionDefinitionProvider,\n AXPPermissionDefinitionProviderContext,\n} from '@acorex-platform/framework-client/auth';\nimport {\n AXPCommonPermissionGroupKeys\n} from '@acorex-platform/module-common-client/contracts';\nimport {\n AXPInsightsReportingPermissionKeys\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nimport { Injectable } from '@angular/core';\n\n//#endregion\n\n//#region ----- Permission Definition Provider -----\n\n/**\n * Registers activity-insight capabilities into the shared Insights & Reporting group.\n */\n@Injectable()\nexport class AXMActivityInsightPermissionDefinitionProvider implements AXPPermissionDefinitionProvider {\n async define(context: AXPPermissionDefinitionProviderContext): Promise<void> {\n const keys = AXPInsightsReportingPermissionKeys;\n const groups = AXPCommonPermissionGroupKeys;\n const P = '@common:insights-reporting.permissions';\n const G = '@common:permission-groups';\n\n context.addGroup(groups.InsightsReporting.Root, `${G}.insights-reporting.title`, `${G}.insights-reporting.description`, { order: 100 });\n\n context\n .addGroup(\n groups.InsightsReporting.ActivityInsight,\n `${G}.insights-reporting-activity-insight.title`,\n `${G}.insights-reporting-activity-insight.description`,\n { parent: groups.InsightsReporting.Root, order: 20 },\n )\n .addPermission(\n keys.ViewActivityInsight,\n `${P}.view-activity-insight.title`,\n `${P}.view-activity-insight.description`,\n )\n .endPermission()\n .addPermission(\n keys.ManageActivityInsight,\n `${P}.manage-activity-insight.title`,\n `${P}.manage-activity-insight.description`,\n )\n .endPermission()\n .endGroup();\n }\n}\n\n//#endregion\n","import { Routes } from '@angular/router';\n\nimport { RootConfig } from '@acorex-platform/module-activity-insight-client/contracts';\n\n\n\nexport const activityInsightFeatureRoutes: Routes = [\n\n {\n\n path: `:app/m/${RootConfig.module.name}`,\n\n children: [\n\n {\n\n path: '',\n\n redirectTo: `${RootConfig.entities.activityEvent.name}/list`,\n\n pathMatch: 'full',\n\n },\n\n {\n\n path: 'timelines',\n\n loadComponent: () =>\n\n import('./timeline/activity-timeline-page.component').then((m) => m.AXMActivityInsightTimelinePageComponent),\n\n },\n\n {\n\n path: 'dashboard',\n\n loadComponent: () =>\n\n import('./dashboard/activity-dashboard-page.component').then((m) => m.AXMActivityInsightDashboardPageComponent),\n\n },\n\n ],\n\n },\n\n];\n\n","import { AXPEntityActionPlugin } from '@acorex-platform/framework-client/layout/entity';\nimport type { AXMActivityTrackingPolicy } from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport const ACTIVITY_TRACKING_PLUGIN_NAME = 'tracking';\n\nexport type AXMActivityTrackingPluginOptions = AXMActivityTrackingPolicy;\n\nexport function normalizeActivityTrackingPluginOptions(\n options?: AXMActivityTrackingPluginOptions,\n): AXMActivityTrackingPluginOptions {\n const opts = options ?? {};\n return {\n enabled: opts.enabled ?? true,\n list: {\n open: opts.list?.open ?? true,\n filterApply: opts.list?.filterApply ?? true,\n search: opts.list?.search ?? true,\n sort: opts.list?.sort ?? false,\n export: opts.list?.export ?? false,\n },\n detail: {\n open: opts.detail?.open ?? true,\n tabChange: opts.detail?.tabChange ?? false,\n },\n form: {\n createStart: opts.form?.createStart ?? false,\n updateStart: opts.form?.updateStart ?? false,\n submit: opts.form?.submit ?? true,\n validationError: opts.form?.validationError ?? true,\n fieldChange: {\n enabled: opts.form?.fieldChange?.enabled ?? false,\n include: opts.form?.fieldChange?.include ?? [],\n exclude: opts.form?.fieldChange?.exclude ?? [],\n },\n },\n commands: opts.commands ?? { '*': true },\n queries: opts.queries ?? { list: true, byKey: false, lookup: false },\n masking: opts.masking ?? { fields: [] },\n sampling: opts.sampling ?? {},\n };\n}\n\nexport function isActivityTrackingEnabled(options?: AXMActivityTrackingPluginOptions): boolean {\n return normalizeActivityTrackingPluginOptions(options).enabled !== false;\n}\n\nexport const activityTrackingPlugin: AXPEntityActionPlugin = {\n name: ACTIVITY_TRACKING_PLUGIN_NAME,\n order: 1,\n apply: (ctx, options?: AXMActivityTrackingPluginOptions) => {\n const normalized = normalizeActivityTrackingPluginOptions(options);\n const existing = ctx.plugins.find(ACTIVITY_TRACKING_PLUGIN_NAME).get();\n if (existing) {\n ctx.plugins.find(ACTIVITY_TRACKING_PLUGIN_NAME).update((p) => ({ ...p, options: normalized }));\n } else {\n ctx.plugins.add({ name: ACTIVITY_TRACKING_PLUGIN_NAME, options: normalized });\n }\n },\n};\n","import { AXPEntityModifierProvider } from '@acorex-platform/framework-client/layout/entity';\nimport {\n ACTIVITY_TRACKING_PLUGIN_NAME,\n normalizeActivityTrackingPluginOptions,\n} from '../plugins/activity-tracking.entity-plugin';\n\nexport const activityTrackingDefaultsModifier: AXPEntityModifierProvider = {\n entityName: '*',\n order: 5,\n modifier: (ctx) => {\n const plugins = ctx.plugins.list();\n if (plugins.some((p) => p.name === ACTIVITY_TRACKING_PLUGIN_NAME)) {\n return;\n }\n ctx.plugins.add({\n name: ACTIVITY_TRACKING_PLUGIN_NAME,\n options: normalizeActivityTrackingPluginOptions({ enabled: true }),\n });\n },\n};\n","import type {\n AXMActivityEvent,\n AXMActivityEventPriority,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\ntype QueuedEvent = AXMActivityEvent & { priority: AXMActivityEventPriority };\n\nconst PRIORITY_ORDER: AXMActivityEventPriority[] = ['high', 'normal', 'low'];\n\nconst COALESCE_KEYS = new Set([\n 'entity.filter.applied',\n 'entity.search.applied',\n 'entity.sort.applied',\n 'form.field.changed',\n]);\n\nconst DEFAULT_DEBOUNCE_MS: Record<string, number> = {\n 'entity.search.applied': 800,\n 'entity.sort.applied': 300,\n 'entity.filter.applied': 300,\n 'form.field.changed': 500,\n 'query.executed': 1500,\n};\n\nexport interface AXMActivityBufferConfig {\n maxQueueSize: number;\n debounceMs?: Record<string, number>;\n}\n\nexport class AXMActivityBuffer {\n private readonly lanes: Record<AXMActivityEventPriority, QueuedEvent[]> = {\n high: [],\n normal: [],\n low: [],\n };\n\n private readonly debounceTimers = new Map<string, ReturnType<typeof setTimeout>>();\n private readonly debounceMs: Record<string, number>;\n private droppedCount = 0;\n\n constructor(private readonly config: AXMActivityBufferConfig) {\n this.debounceMs = { ...DEFAULT_DEBOUNCE_MS, ...(config.debounceMs ?? {}) };\n }\n\n enqueue(event: AXMActivityEvent): void {\n const priority = event.priority ?? 'normal';\n const queued: QueuedEvent = { ...event, priority };\n\n const debounceKey = this.debounceMs[event.name];\n if (debounceKey != null) {\n this.scheduleDebounced(event.name, queued, debounceKey);\n return;\n }\n\n this.push(queued);\n }\n\n drain(maxCount?: number): AXMActivityEvent[] {\n const out: AXMActivityEvent[] = [];\n for (const lane of PRIORITY_ORDER) {\n while (this.lanes[lane].length && (maxCount == null || out.length < maxCount)) {\n const next = this.lanes[lane].shift();\n if (next) {\n out.push(next);\n }\n }\n }\n return out;\n }\n\n peekCount(): number {\n return PRIORITY_ORDER.reduce((sum, lane) => sum + this.lanes[lane].length, 0);\n }\n\n get dropped(): number {\n return this.droppedCount;\n }\n\n clear(): void {\n for (const lane of PRIORITY_ORDER) {\n this.lanes[lane].length = 0;\n }\n for (const timer of this.debounceTimers.values()) {\n clearTimeout(timer);\n }\n this.debounceTimers.clear();\n }\n\n requeueFront(events: AXMActivityEvent[]): void {\n for (let i = events.length - 1; i >= 0; i--) {\n const event = events[i];\n const priority = event.priority ?? 'normal';\n this.lanes[priority].unshift({ ...event, priority });\n }\n }\n\n private scheduleDebounced(name: string, event: QueuedEvent, delayMs: number): void {\n const key = `${name}:${event.entityName ?? ''}:${event.route ?? ''}`;\n const existing = this.debounceTimers.get(key);\n if (existing) {\n clearTimeout(existing);\n }\n const timer = setTimeout(() => {\n this.debounceTimers.delete(key);\n this.push(event);\n }, delayMs);\n this.debounceTimers.set(key, timer);\n }\n\n private push(event: QueuedEvent): void {\n if (COALESCE_KEYS.has(event.name)) {\n this.coalesce(event);\n }\n\n const priority = event.priority ?? 'normal';\n this.lanes[priority].push(event);\n this.enforceCapacity();\n }\n\n private coalesce(event: QueuedEvent): void {\n const lane = this.lanes[event.priority ?? 'normal'];\n const index = lane.findIndex(\n (e) =>\n e.name === event.name &&\n e.entityName === event.entityName &&\n e.route === event.route &&\n e.viewId === event.viewId,\n );\n if (index >= 0) {\n lane.splice(index, 1);\n }\n }\n\n private enforceCapacity(): void {\n while (this.size() > this.config.maxQueueSize) {\n if (this.lanes.low.length) {\n this.lanes.low.shift();\n this.droppedCount++;\n continue;\n }\n if (this.coalesceOverflow()) {\n continue;\n }\n if (this.lanes.normal.length) {\n this.lanes.normal.shift();\n this.droppedCount++;\n continue;\n }\n break;\n }\n }\n\n private coalesceOverflow(): boolean {\n let merged = false;\n for (const name of COALESCE_KEYS) {\n for (const lane of PRIORITY_ORDER) {\n const duplicates = this.lanes[lane].filter((e) => e.name === name);\n if (duplicates.length > 1) {\n const keep = duplicates[duplicates.length - 1];\n this.lanes[lane] = this.lanes[lane].filter((e) => e.name !== name || e === keep);\n merged = true;\n }\n }\n }\n return merged;\n }\n\n private size(): number {\n return PRIORITY_ORDER.reduce((sum, lane) => sum + this.lanes[lane].length, 0);\n }\n}\n","import { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXPActivityInsightSettings,\n AXMActivityEventNames,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n maskActivityProperties,\n truncateActivityProperties,\n type AXMActivityEvent,\n type AXMActivityMaskingPolicy,\n type AXMActivityTrackingPolicy,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nconst DEFAULT_QUERY_SAMPLING_RATE = 0.25;\n\nconst NOISE_BLOCKED_NAMES = new Set<string>([\n 'form.field.changed',\n 'ui.hover',\n 'ui.keypress',\n 'ui.scroll',\n]);\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightActivityPolicyService {\n private readonly settingsService = inject(AXPSettingsService);\n\n private enabledOverride: boolean | null = null;\n private entityPolicy: AXMActivityTrackingPolicy | null = null;\n\n setEntityPolicy(policy: AXMActivityTrackingPolicy | null): void {\n this.entityPolicy = policy;\n }\n\n enable(): void {\n this.enabledOverride = true;\n }\n\n disable(): void {\n this.enabledOverride = false;\n }\n\n async isEnabled(): Promise<boolean> {\n if (this.enabledOverride != null) {\n return this.enabledOverride;\n }\n try {\n const setting = await this.settingsService.get<boolean>(AXPActivityInsightSettings.Enabled);\n if (setting === false) {\n return false;\n }\n } catch {\n // settings unavailable — default to enabled\n }\n return this.entityPolicy?.enabled !== false;\n }\n\n async shouldTrack(event: AXMActivityEvent): Promise<boolean> {\n if (!(await this.isEnabled())) {\n return false;\n }\n if (NOISE_BLOCKED_NAMES.has(event.name)) {\n return false;\n }\n if (this.entityPolicy?.enabled === false) {\n return false;\n }\n if (!(await this.passesSampling(event))) {\n return false;\n }\n return true;\n }\n\n async applyMasking(event: AXMActivityEvent): Promise<AXMActivityEvent> {\n const maskingEnabled = await this.isMaskingEnabled();\n if (!maskingEnabled) {\n return event;\n }\n const policy: AXMActivityMaskingPolicy = {\n enabled: true,\n denylist: this.entityPolicy?.masking?.fields,\n maxPropertyBytes: AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxPropertyBytes,\n };\n const properties = event.properties\n ? (maskActivityProperties(event.properties, policy) as Record<string, unknown>)\n : undefined;\n const metadata = event.metadata\n ? (maskActivityProperties(event.metadata, policy) as Record<string, unknown>)\n : undefined;\n return {\n ...event,\n properties: truncateActivityProperties(properties, policy.maxPropertyBytes ?? 4000),\n metadata: truncateActivityProperties(metadata, policy.maxPropertyBytes ?? 4000),\n };\n }\n\n defaultPriorityFor(eventName: string): AXMActivityEvent['priority'] {\n if (eventName === AXMActivityEventNames.Query.Executed) {\n return 'low';\n }\n if (eventName === AXMActivityEventNames.Error.Seen) {\n return 'high';\n }\n return 'normal';\n }\n\n private async isMaskingEnabled(): Promise<boolean> {\n try {\n return (await this.settingsService.get<boolean>(AXPActivityInsightSettings.MaskingEnabled)) !== false;\n } catch {\n return true;\n }\n }\n\n private async passesSampling(event: AXMActivityEvent): Promise<boolean> {\n try {\n const samplingEnabled = await this.settingsService.get<boolean>(AXPActivityInsightSettings.SamplingEnabled);\n if (samplingEnabled === false) {\n return true;\n }\n } catch {\n // default sampling on\n }\n\n const entityRate = this.entityPolicy?.sampling?.[event.name];\n const rate =\n entityRate ??\n (event.name === AXMActivityEventNames.Query.Executed ? DEFAULT_QUERY_SAMPLING_RATE : 1);\n\n if (rate >= 1) {\n return true;\n }\n if (rate <= 0) {\n return false;\n }\n return Math.random() < rate;\n }\n}\n","import { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { AXPRuntimeTransportService } from '@acorex-platform/framework-client/runtime';\nimport { AXMActivityInsightTransportKeys } from '@acorex-platform/module-activity-insight-client/contracts';\nimport { inject, Injectable } from '@angular/core';\nimport {\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n type AXMActivityBatch,\n type AXMActivityEvent,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport type AXMActivityTransportFlushReason = 'interval' | 'batch-size' | 'manual' | 'visibility' | 'final';\n\nexport interface AXMActivityTransportSendOptions {\n final?: boolean;\n maxPayloadBytes?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightActivityTransport {\n private readonly transportService = inject(AXPRuntimeTransportService);\n\n private retryAttempt = 0;\n\n async send(\n events: AXMActivityEvent[],\n options: AXMActivityTransportSendOptions = {},\n ): Promise<boolean> {\n if (!events.length) {\n return true;\n }\n\n const maxBytes =\n options.maxPayloadBytes ??\n (options.final\n ? AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.finalFlushMaxBytes\n : AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxPayloadBytes);\n\n const batch = this.buildBatch(this.trimToPayload(events, maxBytes));\n\n try {\n const result = await this.transportService.execute<\n { batch: AXMActivityBatch; final?: boolean; useBeacon?: boolean },\n { accepted: boolean }\n >(AXMActivityInsightTransportKeys.Event.BulkIngest, {\n batch,\n final: options.final,\n useBeacon: Boolean(options.final && AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.useBeaconForFinalFlush),\n });\n\n if (result.accepted) {\n this.retryAttempt = 0;\n return true;\n }\n return false;\n } catch (err) {\n console.debug('[ActivityInsight] transport failed', err);\n return false;\n }\n }\n\n nextRetryDelayMs(): number {\n const { retryBackoffMs, retryLimit } = AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG;\n if (this.retryAttempt >= retryLimit) {\n return -1;\n }\n const delay = retryBackoffMs * 2 ** this.retryAttempt;\n this.retryAttempt++;\n return delay;\n }\n\n resetRetry(): void {\n this.retryAttempt = 0;\n }\n\n private buildBatch(events: AXMActivityEvent[]): AXMActivityBatch {\n return {\n batchId: createRandomUuid(),\n sentAt: new Date().toISOString(),\n events,\n };\n }\n\n private trimToPayload(events: AXMActivityEvent[], maxBytes: number): AXMActivityEvent[] {\n const sorted = [...events].sort((a, b) => {\n const rank = (p?: string) => (p === 'high' ? 0 : p === 'normal' ? 1 : 2);\n return rank(a.priority) - rank(b.priority);\n });\n const out: AXMActivityEvent[] = [];\n for (const event of sorted) {\n const candidate = [...out, event];\n if (JSON.stringify(this.buildBatch(candidate)).length <= maxBytes) {\n out.push(event);\n }\n }\n return out.length ? out : sorted.slice(0, 1);\n }\n}\n","import { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { Injectable } from '@angular/core';\nimport type {\n AXMActivityEvent,\n AXMActivityEventStatus,\n AXMActivityJourney,\n} from '@acorex-platform/module-activity-insight-client/contracts';\n\ninterface ActiveActivity {\n id: string;\n name: string;\n startedAt: string;\n parentActivityId?: string;\n journeyId?: string;\n properties?: Record<string, unknown>;\n}\n\ninterface ActiveJourney {\n id: string;\n name: string;\n sessionId: string;\n startedAt: string;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightJourneyService {\n private readonly activities = new Map<string, ActiveActivity>();\n private readonly journeys = new Map<string, ActiveJourney>();\n\n startJourney(name: string, sessionId: string): AXMActivityJourney {\n const journey: ActiveJourney = {\n id: createRandomUuid(),\n name,\n sessionId,\n startedAt: new Date().toISOString(),\n };\n this.journeys.set(journey.id, journey);\n return { ...journey, status: 'started' };\n }\n\n endJourney(\n journeyId: string,\n status: AXMActivityEventStatus = 'completed',\n result?: Record<string, unknown>,\n ): AXMActivityJourney | null {\n const journey = this.journeys.get(journeyId);\n if (!journey) {\n return null;\n }\n this.journeys.delete(journeyId);\n return {\n ...journey,\n endedAt: new Date().toISOString(),\n status,\n result,\n };\n }\n\n getActiveJourney(journeyId: string): ActiveJourney | undefined {\n return this.journeys.get(journeyId);\n }\n\n startActivity(\n name: string,\n options?: { parentActivityId?: string; journeyId?: string; properties?: Record<string, unknown> },\n ): ActiveActivity {\n const activity: ActiveActivity = {\n id: createRandomUuid(),\n name,\n startedAt: new Date().toISOString(),\n parentActivityId: options?.parentActivityId,\n journeyId: options?.journeyId,\n properties: options?.properties,\n };\n this.activities.set(activity.id, activity);\n return activity;\n }\n\n endActivity(\n activityId: string,\n status: AXMActivityEventStatus = 'completed',\n properties?: Record<string, unknown>,\n ): (ActiveActivity & { endedAt: string; status: AXMActivityEventStatus; durationMs: number }) | null {\n const activity = this.activities.get(activityId);\n if (!activity) {\n return null;\n }\n this.activities.delete(activityId);\n const endedAt = new Date().toISOString();\n const durationMs = Date.parse(endedAt) - Date.parse(activity.startedAt);\n return {\n ...activity,\n endedAt,\n status,\n durationMs,\n properties: { ...activity.properties, ...properties },\n };\n }\n\n buildActivityStartedEvent(\n activity: ActiveActivity,\n enrich: Partial<AXMActivityEvent>,\n ): Partial<AXMActivityEvent> {\n return {\n id: activity.id,\n name: activity.name,\n status: 'started',\n timestamp: activity.startedAt,\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties: activity.properties,\n ...enrich,\n };\n }\n\n buildActivityEndedEvent(\n activity: ActiveActivity & { endedAt: string; status: AXMActivityEventStatus; durationMs: number },\n enrich: Partial<AXMActivityEvent>,\n ): Partial<AXMActivityEvent> {\n return {\n id: activity.id,\n name: activity.name,\n status: activity.status,\n timestamp: activity.endedAt,\n durationMs: activity.durationMs,\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties: activity.properties,\n ...enrich,\n };\n }\n}\n","import { AXPSessionService } from '@acorex-platform/framework-client/auth';\nimport { AXPSettingsService } from '@acorex-platform/framework-client/common';\nimport { AXPHookService } from '@acorex-platform/framework-client/core';\nimport { createRandomUuid } from '@acorex-platform/framework-shared/core';\nimport { DestroyRef, inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { distinctUntilChanged } from 'rxjs';\nimport {\n AXPActivityInsightSettings,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG,\n AXMActivityEventNames,\n type AXMActivityEvent,\n type AXMActivityEventStatus,\n type AXMActivityEventType,\n type AXMActivityCategory,\n type AXMActivityJourney,\n} from '@acorex-platform/module-activity-insight-client/contracts';\nimport { AXMActivityBuffer } from './activity-buffer';\nimport { AXMActivityInsightActivityPolicyService } from './activity-policy.service';\nimport { AXMActivityInsightActivityTransport } from './activity-transport';\nimport { AXMActivityInsightJourneyService } from './journey.service';\nexport const ACTIVITY_TRACK_HOOK_KEY = 'activity:track';\nexport const ACTIVITY_BEFORE_SEND_HOOK_KEY = 'activity-insight.before-send';\n\nexport interface AXMActivityTrackPayload extends Partial<AXMActivityEvent> {\n name: string;\n}\n\nconst SESSION_STORAGE_KEY = 'axm-activity-session-id';\nconst MIN_FLUSH_INTERVAL_MS = 1_000;\nconst MAX_FLUSH_INTERVAL_MS = 60_000;\nconst MIN_BATCH_SIZE = 1;\nconst MAX_BATCH_SIZE = 500;\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightTrackerService {\n private readonly sessionService = inject(AXPSessionService);\n private readonly settingsService = inject(AXPSettingsService);\n private readonly hooks = inject(AXPHookService);\n private readonly policy = inject(AXMActivityInsightActivityPolicyService);\n private readonly transport = inject(AXMActivityInsightActivityTransport);\n private readonly journeyService = inject(AXMActivityInsightJourneyService);\n private readonly router = inject(Router);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly buffer = new AXMActivityBuffer({\n maxQueueSize: AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxQueueSize,\n });\n\n private flushTimer: ReturnType<typeof setInterval> | null = null;\n private flushTimerStarting = false;\n private flushChain: Promise<void> = Promise.resolve();\n private pendingRetry: ReturnType<typeof setTimeout> | null = null;\n private initialized = false;\n private visibilityHandlersRegistered = false;\n private currentJourneyId: string | null = null;\n\n init(): void {\n if (this.initialized || typeof window === 'undefined') {\n return;\n }\n this.initialized = true;\n\n this.sessionService.isReadyForAppScopedApi$\n .pipe(distinctUntilChanged())\n .subscribe((ready) => {\n if (ready) {\n this.onSessionActive();\n } else {\n this.onSessionInactive();\n }\n });\n\n if (!this.visibilityHandlersRegistered) {\n this.registerVisibilityFlush();\n this.visibilityHandlersRegistered = true;\n }\n\n this.destroyRef.onDestroy(() => {\n void this.flush('final');\n this.onSessionInactive();\n });\n }\n\n async track(name: string, payload: Partial<AXMActivityEvent> = {}): Promise<void> {\n await this.trackMany([{ name, ...payload }]);\n }\n\n async trackMany(events: AXMActivityTrackPayload[]): Promise<void> {\n if (!this.canTrack()) {\n return;\n }\n for (const partial of events) {\n try {\n const built = await this.buildEvent(partial);\n if (!(await this.policy.shouldTrack(built))) {\n continue;\n }\n const masked = await this.policy.applyMasking(built);\n const finalEvent = await this.hooks.runAsync(ACTIVITY_BEFORE_SEND_HOOK_KEY, masked);\n if (!finalEvent) {\n continue;\n }\n this.buffer.enqueue(finalEvent);\n } catch (err) {\n console.debug('[ActivityInsight] track skipped', err);\n }\n }\n await this.flushIfNeeded();\n }\n\n startJourney(name: string): AXMActivityJourney {\n const journey = this.journeyService.startJourney(name, this.ensureSessionId());\n this.currentJourneyId = journey.id;\n void this.track(name, {\n type: 'system',\n category: 'custom',\n journeyId: journey.id,\n status: 'started',\n });\n return journey;\n }\n\n endJourney(\n journeyId?: string,\n status: AXMActivityEventStatus = 'completed',\n result?: Record<string, unknown>,\n ): void {\n const id = journeyId ?? this.currentJourneyId;\n if (!id) {\n return;\n }\n const journey = this.journeyService.endJourney(id, status, result);\n if (!journey) {\n return;\n }\n if (this.currentJourneyId === id) {\n this.currentJourneyId = null;\n }\n void this.track(journey.name, {\n type: 'system',\n category: 'custom',\n journeyId: journey.id,\n status,\n properties: result,\n });\n void this.flush('manual');\n }\n\n startActivity(name: string, properties?: Record<string, unknown>): string {\n const activity = this.journeyService.startActivity(name, {\n journeyId: this.currentJourneyId ?? undefined,\n properties,\n });\n void this.track(name, {\n id: activity.id,\n type: 'action',\n category: 'custom',\n status: 'started',\n parentActivityId: activity.parentActivityId,\n journeyId: activity.journeyId,\n properties,\n });\n return activity.id;\n }\n\n endActivity(\n activityId: string,\n status: AXMActivityEventStatus = 'completed',\n properties?: Record<string, unknown>,\n ): void {\n const ended = this.journeyService.endActivity(activityId, status, properties);\n if (!ended) {\n return;\n }\n void this.track(ended.name, {\n id: ended.id,\n type: 'action',\n category: 'custom',\n status: ended.status,\n durationMs: ended.durationMs,\n parentActivityId: ended.parentActivityId,\n journeyId: ended.journeyId,\n properties: ended.properties,\n });\n }\n\n trackPageView(route?: string): void {\n void this.track(AXMActivityEventNames.Page.Viewed, {\n type: 'view',\n category: 'navigation',\n route: route ?? this.router.url,\n });\n }\n\n trackClick(name: string, properties?: Record<string, unknown>): void {\n void this.track(name, { type: 'action', category: 'custom', properties });\n }\n\n trackEntityListOpen(module: string, entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.ListOpened, {\n type: 'view',\n category: 'entity',\n module,\n entityName,\n properties,\n });\n }\n\n trackEntityDetailOpen(\n module: string,\n entityName: string,\n entityId?: string,\n properties?: Record<string, unknown>,\n ): void {\n void this.track(AXMActivityEventNames.Entity.DetailOpened, {\n type: 'view',\n category: 'entity',\n module,\n entityName,\n entityId,\n properties,\n });\n }\n\n trackFilterApply(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.FilterApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackSearch(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.SearchApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackSort(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Entity.SortApplied, {\n type: 'action',\n category: 'entity',\n entityName,\n properties,\n priority: 'low',\n });\n }\n\n trackCommandExecution(\n commandName: string,\n options?: { success?: boolean; durationMs?: number; properties?: Record<string, unknown> },\n ): void {\n void this.track(AXMActivityEventNames.Command.Executed, {\n type: 'action',\n category: 'command',\n commandName,\n status: options?.success === false ? 'failed' : 'completed',\n durationMs: options?.durationMs,\n properties: options?.properties,\n });\n }\n\n trackQueryExecution(\n queryName: string,\n options?: { success?: boolean; durationMs?: number; properties?: Record<string, unknown> },\n ): void {\n void this.track(AXMActivityEventNames.Query.Executed, {\n type: 'system',\n category: 'query',\n queryName,\n status: options?.success === false ? 'failed' : 'completed',\n durationMs: options?.durationMs,\n properties: options?.properties,\n priority: 'low',\n });\n }\n\n trackFormSubmit(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Form.Submitted, {\n type: 'action',\n category: 'form',\n entityName,\n properties,\n });\n }\n\n trackValidationError(entityName: string, properties?: Record<string, unknown>): void {\n void this.track(AXMActivityEventNames.Form.ValidationFailed, {\n type: 'error',\n category: 'form',\n entityName,\n properties,\n severity: 'normal',\n });\n }\n\n trackAiInteraction(name: string, properties?: Record<string, unknown>): void {\n void this.track(name, { type: 'action', category: 'ai', properties });\n }\n\n trackError(error: unknown, properties?: Record<string, unknown>): void {\n const message = error instanceof Error ? error.message : String(error);\n void this.track(AXMActivityEventNames.Error.Seen, {\n type: 'error',\n category: 'error',\n severity: 'high',\n priority: 'high',\n properties: { message, ...properties },\n });\n }\n\n async flush(reason: 'interval' | 'batch-size' | 'manual' | 'visibility' | 'final' = 'manual'): Promise<void> {\n if (!this.canTrack()) {\n return;\n }\n\n this.flushChain = this.flushChain.then(async () => {\n const events = this.buffer.drain();\n if (!events.length) {\n return;\n }\n const sent = await this.transport.send(events, { final: reason === 'final' });\n if (!sent) {\n this.buffer.requeueFront(events);\n this.scheduleRetry();\n return;\n }\n this.transport.resetRetry();\n });\n\n await this.flushChain;\n }\n\n enable(): void {\n this.policy.enable();\n }\n\n disable(): void {\n this.policy.disable();\n }\n\n getSessionId(): string {\n return this.ensureSessionId();\n }\n\n private canTrack(): boolean {\n return Boolean(this.sessionService.getToken());\n }\n\n private onSessionActive(): void {\n this.ensureSessionId();\n this.startFlushTimer();\n }\n\n private onSessionInactive(): void {\n this.stopFlushTimer();\n this.cancelPendingRetry();\n this.buffer.clear();\n this.transport.resetRetry();\n this.currentJourneyId = null;\n }\n\n private cancelPendingRetry(): void {\n if (this.pendingRetry) {\n clearTimeout(this.pendingRetry);\n this.pendingRetry = null;\n }\n }\n\n private async buildEvent(partial: AXMActivityTrackPayload): Promise<AXMActivityEvent> {\n const session = this.sessionService;\n const priority = partial.priority ?? this.policy.defaultPriorityFor(partial.name);\n return {\n id: partial.id ?? createRandomUuid(),\n name: partial.name,\n type: partial.type ?? this.inferType(partial.name),\n category: partial.category ?? this.inferCategory(partial.name),\n timestamp: partial.timestamp ?? new Date().toISOString(),\n sessionId: partial.sessionId ?? this.ensureSessionId(),\n journeyId: partial.journeyId ?? this.currentJourneyId ?? undefined,\n parentActivityId: partial.parentActivityId,\n userId: partial.userId ?? session.user?.id,\n username: partial.username ?? session.user?.name,\n tenantId: partial.tenantId ?? session.tenant?.id,\n applicationId: partial.applicationId ?? session.application?.id,\n source: partial.source ?? 'frontend',\n route: partial.route ?? this.router.url,\n module: partial.module,\n entityName: partial.entityName,\n entityId: partial.entityId,\n viewId: partial.viewId,\n widgetId: partial.widgetId,\n commandName: partial.commandName,\n queryName: partial.queryName,\n workflowId: partial.workflowId,\n aiConversationId: partial.aiConversationId,\n status: partial.status,\n durationMs: partial.durationMs,\n severity: partial.severity,\n priority,\n properties: partial.properties,\n metadata: partial.metadata ?? { sdkVersion: '1.0.0' },\n };\n }\n\n private inferType(name: string): AXMActivityEventType {\n if (name.startsWith('error.') || name.includes('validation')) {\n return 'error';\n }\n if (name.startsWith('page.') || name.includes('.opened')) {\n return 'view';\n }\n if (name.startsWith('query.')) {\n return 'system';\n }\n return 'action';\n }\n\n private inferCategory(name: string): AXMActivityCategory {\n if (name.startsWith('page.')) return 'navigation';\n if (name.startsWith('entity.')) return 'entity';\n if (name.startsWith('command.')) return 'command';\n if (name.startsWith('query.')) return 'query';\n if (name.startsWith('form.')) return 'form';\n if (name.startsWith('ai.')) return 'ai';\n if (name.startsWith('workflow.')) return 'workflow';\n if (name.startsWith('security.')) return 'security';\n if (name.startsWith('error.')) return 'error';\n return 'custom';\n }\n\n private ensureSessionId(): string {\n try {\n let id = sessionStorage.getItem(SESSION_STORAGE_KEY);\n if (!id) {\n id = createRandomUuid();\n sessionStorage.setItem(SESSION_STORAGE_KEY, id);\n }\n return id;\n } catch {\n return createRandomUuid();\n }\n }\n\n private async flushIfNeeded(): Promise<void> {\n const maxBatchSize = await this.getBufferSetting(\n AXPActivityInsightSettings.MaxBatchSize,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.maxBatchSize,\n MIN_BATCH_SIZE,\n MAX_BATCH_SIZE,\n );\n if (this.buffer.peekCount() >= maxBatchSize) {\n await this.flush('batch-size');\n }\n }\n\n private startFlushTimer(): void {\n if (this.flushTimer || this.flushTimerStarting) {\n return;\n }\n this.flushTimerStarting = true;\n\n void this.getBufferSetting(\n AXPActivityInsightSettings.FlushIntervalMs,\n AXM_DEFAULT_ACTIVITY_BUFFER_CONFIG.flushIntervalMs,\n MIN_FLUSH_INTERVAL_MS,\n MAX_FLUSH_INTERVAL_MS,\n )\n .then((ms) => {\n if (this.flushTimer) {\n return;\n }\n this.flushTimer = setInterval(() => void this.flush('interval'), ms);\n })\n .finally(() => {\n this.flushTimerStarting = false;\n });\n }\n\n private stopFlushTimer(): void {\n if (this.flushTimer) {\n clearInterval(this.flushTimer);\n this.flushTimer = null;\n }\n this.flushTimerStarting = false;\n }\n\n private registerVisibilityFlush(): void {\n if (typeof document === 'undefined') {\n return;\n }\n const handler = () => {\n if (document.visibilityState === 'hidden') {\n void this.flush('visibility');\n }\n };\n document.addEventListener('visibilitychange', handler);\n window.addEventListener('pagehide', () => void this.flush('final'));\n this.destroyRef.onDestroy(() => {\n document.removeEventListener('visibilitychange', handler);\n });\n }\n\n private scheduleRetry(): void {\n const delay = this.transport.nextRetryDelayMs();\n if (delay < 0 || this.pendingRetry) {\n return;\n }\n this.pendingRetry = setTimeout(() => {\n this.pendingRetry = null;\n void this.flush('manual');\n }, delay);\n }\n\n private async getSetting<T>(key: string, fallback: T): Promise<T> {\n try {\n const value = await this.settingsService.get<T>(key);\n return value ?? fallback;\n } catch {\n return fallback;\n }\n }\n\n private async getBufferSetting(\n key: string,\n fallback: number,\n min: number,\n max: number,\n ): Promise<number> {\n try {\n const value = await this.settingsService.get<number>(key);\n return this.clampBufferNumber(value, fallback, min, max);\n } catch {\n return fallback;\n }\n }\n\n private clampBufferNumber(value: unknown, fallback: number, min: number, max: number): number {\n if (typeof value !== 'number' || !Number.isFinite(value)) {\n return fallback;\n }\n return Math.min(max, Math.max(min, Math.round(value)));\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightPageViewInstrumentation {\n private readonly router = inject(Router);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n init(): void {\n this.router.events.pipe(filter((e): e is NavigationEnd => e instanceof NavigationEnd)).subscribe((event) => {\n this.tracker.trackPageView(event.urlAfterRedirects);\n });\n }\n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport {\n AXPCommandEventsService,\n type AXPCommandExecutionEvent,\n} from '@acorex-platform/framework-client/runtime';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightCommandInstrumentation {\n private readonly commandEvents = inject(AXPCommandEventsService);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n private readonly destroyRef = inject(DestroyRef);\n\n init(): void {\n const unsubscribe = this.commandEvents.listen((event) => this.handle(event));\n this.destroyRef.onDestroy(unsubscribe);\n }\n\n private handle(event: AXPCommandExecutionEvent & { executionId?: string; durationMs?: number }): void {\n if (event.stage !== 'after') {\n return;\n }\n this.tracker.trackCommandExecution(event.key, {\n success: event.success,\n durationMs: event.durationMs,\n properties: {\n executionId: event.executionId,\n input: event.input,\n error: event.error,\n },\n });\n }\n}\n","import { DestroyRef, inject, Injectable } from '@angular/core';\nimport { AXPBroadcastEventService } from '@acorex-platform/framework-client/core';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\nconst QUERY_EXECUTION_EVENT_KEY = '@queries:execution';\n\ninterface QueryExecutionEvent {\n executionId?: string;\n stage: 'before' | 'after';\n key: string;\n input?: unknown;\n success?: boolean;\n result?: unknown;\n error?: unknown;\n durationMs?: number;\n}\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightQueryInstrumentation {\n private readonly broadcast = inject(AXPBroadcastEventService);\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n private readonly destroyRef = inject(DestroyRef);\n\n init(): void {\n const subscription = this.broadcast\n .listen<QueryExecutionEvent>(QUERY_EXECUTION_EVENT_KEY)\n .subscribe(({ data }) => this.handle(data));\n this.destroyRef.onDestroy(() => subscription.unsubscribe());\n }\n\n private handle(event: QueryExecutionEvent): void {\n if (event.stage !== 'after') {\n return;\n }\n this.tracker.trackQueryExecution(event.key, {\n success: event.success,\n durationMs: event.durationMs,\n properties: {\n executionId: event.executionId,\n input: event.input,\n error: event.error,\n },\n });\n }\n}\n","import {\n AXPDistributedEventListenerProvider,\n type AXPDistributedEventListenerProvider as Provider,\n} from '@acorex-platform/framework-client/core';\nimport { inject, Injectable } from '@angular/core';\nimport { AXMActivityEventNames } from '@acorex-platform/module-activity-insight-client/contracts';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\nconst EntityLifecycleHookKeys = {\n ListOpened: 'entity.list.opened',\n ListCriteriaApplied: 'entity.list.criteria-applied',\n DetailOpened: 'entity.detail.opened',\n FormSubmitted: 'entity.form.submitted',\n FormValidationFailed: 'entity.form.validation-failed',\n} as const;\n\ntype EntityHookPayload = Record<string, unknown> & {\n module?: string;\n entityName?: string;\n entityId?: string;\n entity?: string;\n operation?: string;\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AXMActivityInsightEntityInstrumentation {\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n init(): void {\n // Hook providers are registered via module; this ensures tracker is ready.\n }\n\n handleListOpened(data: EntityHookPayload): void {\n const module = String(data['module'] ?? data['moduleName'] ?? '');\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackEntityListOpen(module, entityName, data);\n }\n\n handleDetailOpened(data: EntityHookPayload): void {\n const module = String(data['module'] ?? data['moduleName'] ?? '');\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n const entityId = data['entityId'] != null ? String(data['entityId']) : undefined;\n this.tracker.trackEntityDetailOpen(module, entityName, entityId, data);\n }\n\n handleCriteriaApplied(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n const kind = String(data['kind'] ?? data['deltaType'] ?? 'filter');\n if (kind === 'search') {\n this.tracker.trackSearch(entityName, data);\n return;\n }\n if (kind === 'sort') {\n this.tracker.trackSort(entityName, data);\n return;\n }\n this.tracker.trackFilterApply(entityName, data);\n }\n\n handleFormSubmitted(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackFormSubmit(entityName, data);\n }\n\n handleValidationFailed(data: EntityHookPayload): void {\n const entityName = String(data['entityName'] ?? data['entity'] ?? '');\n this.tracker.trackValidationError(entityName, data);\n }\n\n handleEntityCrud(data: EntityHookPayload): void {\n const operation = String(data['operation'] ?? '');\n const entityName = String(data['entityName'] ?? '');\n const nameMap: Record<string, string> = {\n inserted: AXMActivityEventNames.Entity.Created,\n updated: AXMActivityEventNames.Entity.Updated,\n deleted: AXMActivityEventNames.Entity.Deleted,\n };\n const name = nameMap[operation];\n if (!name) {\n return;\n }\n void this.tracker.track(name, {\n type: 'action',\n category: 'entity',\n entityName,\n entityId: data['entityId'] != null ? String(data['entityId']) : undefined,\n properties: data,\n });\n }\n}\n\nfunction createHookProvider(\n key: string,\n handler: (svc: AXMActivityInsightEntityInstrumentation, data: EntityHookPayload) => void,\n): Provider<EntityHookPayload> {\n return {\n key,\n priority: 50,\n execute: (data) => {\n const svc = inject(AXMActivityInsightEntityInstrumentation);\n handler(svc, data);\n },\n };\n}\n\nexport const AXMActivityInsightEntityHookProviders: AXPDistributedEventListenerProvider<EntityHookPayload>[] = [\n createHookProvider(EntityLifecycleHookKeys.ListOpened, (svc, data) => svc.handleListOpened(data)),\n createHookProvider(EntityLifecycleHookKeys.DetailOpened, (svc, data) => svc.handleDetailOpened(data)),\n createHookProvider(EntityLifecycleHookKeys.ListCriteriaApplied, (svc, data) => svc.handleCriteriaApplied(data)),\n createHookProvider(EntityLifecycleHookKeys.FormSubmitted, (svc, data) => svc.handleFormSubmitted(data)),\n createHookProvider(EntityLifecycleHookKeys.FormValidationFailed, (svc, data) => svc.handleValidationFailed(data)),\n createHookProvider('entity.inserted', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'inserted' })),\n createHookProvider('entity.updated', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'updated' })),\n createHookProvider('entity.deleted', (svc, data) => svc.handleEntityCrud({ ...data, operation: 'deleted' })),\n];\n","import { AXPErrorHandler } from '@acorex-platform/framework-client/common';\nimport { inject, Injectable } from '@angular/core';\nimport { AXMActivityInsightTrackerService } from '../sdk/tracker.service';\n\n@Injectable()\nexport class AXMActivityInsightErrorHandler implements AXPErrorHandler {\n private readonly tracker = inject(AXMActivityInsightTrackerService);\n\n handleError(error: Error, next: (error: Error) => void): void {\n try {\n this.tracker.trackError(error);\n } catch {\n // tracking must never break error handling\n }\n next(error);\n }\n}\n","import {\n AXP_APP_STARTUP_PRIORITY,\n AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n AXP_MODULE_MANIFEST_PROVIDER,\n provideAppStartUpTask,\n} from '@acorex-platform/framework-client/core';\nimport { AXP_PERMISSION_DEFINITION_PROVIDER } from '@acorex-platform/framework-client/auth';\nimport { AXP_ENTITY_MODIFIER, AXP_ENTITY_ACTION_PLUGIN } from '@acorex-platform/framework-client/layout/entity';\nimport { AXPRuntimeModule } from '@acorex-platform/framework-client/runtime';\nimport { inject, NgModule } from '@angular/core';\nimport { ROUTES } from '@angular/router';\nimport {\n AXP_MENU_PROVIDER,\n AXP_SEARCH_PROVIDER,\n AXP_SETTING_DEFINITION_PROVIDER,\n AXPCommonModule,\n} from '@acorex-platform/framework-client/common';\nimport { ActivityInsightManifest } from './manifest';\nimport { AXMActivityInsightMenuProvider } from './menu.provider';\n\nimport { AXPActivityInsightSettingProvider } from './settings.provider';\nimport { AXMActivityInsightSearchCommandProvider } from './search-command.provider';\nimport { AXMActivityInsightPermissionDefinitionProvider } from './permission-definition.provider';\nimport { activityInsightFeatureRoutes } from './features/activity-insight.routes';\nimport { activityTrackingPlugin } from './plugins/activity-tracking.entity-plugin';\nimport { activityTrackingDefaultsModifier } from './modifiers/activity-tracking-defaults.modifier';\nimport { AXMActivityInsightTrackerService, ACTIVITY_TRACK_HOOK_KEY, type AXMActivityTrackPayload } from './sdk/tracker.service';\nimport { AXMActivityInsightPageViewInstrumentation } from './instrumentation/page-view.instrumentation';\nimport { AXMActivityInsightCommandInstrumentation } from './instrumentation/command.instrumentation';\nimport { AXMActivityInsightQueryInstrumentation } from './instrumentation/query.instrumentation';\nimport {\n AXMActivityInsightEntityHookProviders,\n AXMActivityInsightEntityInstrumentation,\n} from './instrumentation/entity.instrumentation';\nimport { AXMActivityInsightErrorHandler } from './instrumentation/error.instrumentation';\n\n@NgModule({\n imports: [\n AXPRuntimeModule,\n AXPCommonModule.forChild({ errorHandlers: [AXMActivityInsightErrorHandler] }),\n ],\n providers: [\n {\n provide: ROUTES,\n multi: true,\n useFactory: () => activityInsightFeatureRoutes,\n },\n { provide: AXP_MODULE_MANIFEST_PROVIDER, useValue: ActivityInsightManifest, multi: true },\n {\n provide: AXP_PERMISSION_DEFINITION_PROVIDER,\n useClass: AXMActivityInsightPermissionDefinitionProvider,\n multi: true,\n },\n { provide: AXP_MENU_PROVIDER, useClass: AXMActivityInsightMenuProvider, multi: true },\n \n { provide: AXP_SETTING_DEFINITION_PROVIDER, useClass: AXPActivityInsightSettingProvider, multi: true },\n { provide: AXP_SEARCH_PROVIDER, useClass: AXMActivityInsightSearchCommandProvider, multi: true },\n { provide: AXP_ENTITY_ACTION_PLUGIN, useValue: activityTrackingPlugin, multi: true },\n { provide: AXP_ENTITY_MODIFIER, useValue: activityTrackingDefaultsModifier, multi: true },\n ...AXMActivityInsightEntityHookProviders.map((provider) => ({\n provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n useValue: provider,\n multi: true,\n })),\n {\n provide: AXP_DISTRIBUTED_EVENT_LISTENER_PROVIDER,\n multi: true,\n useFactory: () => ({\n key: ACTIVITY_TRACK_HOOK_KEY,\n priority: 0,\n execute: (data: AXMActivityTrackPayload) => {\n const tracker = inject(AXMActivityInsightTrackerService);\n if (data?.name) {\n void tracker.trackMany([data]);\n }\n },\n }),\n },\n provideAppStartUpTask(() => {\n const tracker = inject(AXMActivityInsightTrackerService);\n const pageView = inject(AXMActivityInsightPageViewInstrumentation);\n const command = inject(AXMActivityInsightCommandInstrumentation);\n const query = inject(AXMActivityInsightQueryInstrumentation);\n const entity = inject(AXMActivityInsightEntityInstrumentation);\n\n return {\n name: 'activity-insight-instrumentation',\n priority: AXP_APP_STARTUP_PRIORITY.activityInsight,\n run: async () => {\n tracker.init();\n pageView.init();\n command.init();\n query.init();\n entity.init();\n },\n };\n }),\n ],\n})\nexport class AXMActivityInsightModule {}\n","import { InjectionToken } from '@angular/core';\nimport type { AXMActivityTrackingRule } from '@acorex-platform/module-activity-insight-client/contracts';\n\nexport interface AXMActivityTrackingRuleProvider {\n module: string;\n rules: AXMActivityTrackingRule[];\n}\n\nexport const AXM_ACTIVITY_TRACKING_RULE_PROVIDER = new InjectionToken<AXMActivityTrackingRuleProvider[]>(\n 'AXM_ACTIVITY_TRACKING_RULE_PROVIDER',\n);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@acorex-platform/module-activity-insight-client",
3
- "version": "0.0.33",
3
+ "version": "0.0.37",
4
4
  "sideEffects": false,
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0 || ^22.0.0",