@acorex-platform/module-system-insight-client 0.0.32 → 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 (91) hide show
  1. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-alert-rule.mjs +163 -0
  2. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-alert-rule.mjs.map +1 -0
  3. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-audit-log.mjs +741 -0
  4. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-audit-log.mjs.map +1 -0
  5. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-dashboard-widget-config.mjs +161 -0
  6. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-dashboard-widget-config.mjs.map +1 -0
  7. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-error-event.mjs +365 -0
  8. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-error-event.mjs.map +1 -0
  9. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-http-request-log.mjs +439 -0
  10. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-http-request-log.mjs.map +1 -0
  11. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-job-execution-log.mjs +445 -0
  12. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-job-execution-log.mjs.map +1 -0
  13. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-log-entry.mjs +730 -0
  14. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-log-entry.mjs.map +1 -0
  15. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-metric-point.mjs +290 -0
  16. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-metric-point.mjs.map +1 -0
  17. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-observability-data-source.mjs +161 -0
  18. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-observability-data-source.mjs.map +1 -0
  19. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-retention-policy.mjs +182 -0
  20. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-retention-policy.mjs.map +1 -0
  21. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-saved-view.mjs +162 -0
  22. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-saved-view.mjs.map +1 -0
  23. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-slow-request.mjs +312 -0
  24. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-slow-request.mjs.map +1 -0
  25. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-trace-entry.mjs +539 -0
  26. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-trace-entry.mjs.map +1 -0
  27. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-trace-span.mjs +304 -0
  28. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entities-trace-span.mjs.map +1 -0
  29. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-acorex-platform-module-system-insight-client-contracts-entity-catalog-L_KQ_ZRS.mjs +135 -0
  30. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-acorex-platform-module-system-insight-client-contracts-entity-catalog-L_KQ_ZRS.mjs.map +1 -0
  31. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-alert-rule.entity-CVQ8zi2n.mjs +43 -0
  32. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-alert-rule.entity-CVQ8zi2n.mjs.map +1 -0
  33. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-audit-log.entity-DUUbh-K4.mjs +638 -0
  34. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-audit-log.entity-DUUbh-K4.mjs.map +1 -0
  35. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-commands.keys-yv865ABJ.mjs +20 -0
  36. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-commands.keys-yv865ABJ.mjs.map +1 -0
  37. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-dashboard-widget-config.entity-CQPGHj3-.mjs +58 -0
  38. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-dashboard-widget-config.entity-CQPGHj3-.mjs.map +1 -0
  39. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-error-event.entity-41bQET9n.mjs +203 -0
  40. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-error-event.entity-41bQET9n.mjs.map +1 -0
  41. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-http-request-log.entity-DuUG39be.mjs +277 -0
  42. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-http-request-log.entity-DuUG39be.mjs.map +1 -0
  43. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-job-execution-log.entity-DjScVny4.mjs +283 -0
  44. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-job-execution-log.entity-DjScVny4.mjs.map +1 -0
  45. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-log-entry.entity-KhwOnohn.mjs +533 -0
  46. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-log-entry.entity-KhwOnohn.mjs.map +1 -0
  47. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-metric-point.entity-kfxxSxvp.mjs +128 -0
  48. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-metric-point.entity-kfxxSxvp.mjs.map +1 -0
  49. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-observability-data-source.entity-BM0wTN3C.mjs +58 -0
  50. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-observability-data-source.entity-BM0wTN3C.mjs.map +1 -0
  51. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-queries.keys-C768fZe1.mjs +45 -0
  52. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-queries.keys-C768fZe1.mjs.map +1 -0
  53. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-retention-policy.entity-BU_FXy6_.mjs +79 -0
  54. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-retention-policy.entity-BU_FXy6_.mjs.map +1 -0
  55. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-saved-view.entity-BhhIVSRT.mjs +59 -0
  56. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-saved-view.entity-BhhIVSRT.mjs.map +1 -0
  57. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-settings.keys-CI-iHRBX.mjs +38 -0
  58. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-settings.keys-CI-iHRBX.mjs.map +1 -0
  59. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-slow-request.entity-CdQongZo.mjs +150 -0
  60. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-slow-request.entity-CdQongZo.mjs.map +1 -0
  61. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-entry.entity-B_B8zT6c.mjs +342 -0
  62. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-entry.entity-B_B8zT6c.mjs.map +1 -0
  63. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-span.entity-BJGn3-6F.mjs +142 -0
  64. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-span.entity-BJGn3-6F.mjs.map +1 -0
  65. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog.mjs +2 -0
  66. package/fesm2022/acorex-platform-module-system-insight-client-contracts-entity-catalog.mjs.map +1 -0
  67. package/fesm2022/acorex-platform-module-system-insight-client-contracts.mjs.map +1 -1
  68. package/fesm2022/{acorex-platform-module-system-insight-client-index-D-Sy2f4K.mjs → acorex-platform-module-system-insight-client-index-CeO40uWE.mjs} +2 -2
  69. package/fesm2022/{acorex-platform-module-system-insight-client-index-D-Sy2f4K.mjs.map → acorex-platform-module-system-insight-client-index-CeO40uWE.mjs.map} +1 -1
  70. package/fesm2022/acorex-platform-module-system-insight-client-local-entities.mjs +42 -0
  71. package/fesm2022/acorex-platform-module-system-insight-client-local-entities.mjs.map +1 -0
  72. package/fesm2022/acorex-platform-module-system-insight-client-open-trace-timeline.command-DPbr-AYZ.mjs.map +1 -1
  73. package/fesm2022/acorex-platform-module-system-insight-client.mjs +2 -2
  74. package/fesm2022/acorex-platform-module-system-insight-client.mjs.map +1 -1
  75. package/package.json +65 -1
  76. package/types/acorex-platform-module-system-insight-client-contracts-entities-alert-rule.d.ts +5 -0
  77. package/types/acorex-platform-module-system-insight-client-contracts-entities-audit-log.d.ts +5 -0
  78. package/types/acorex-platform-module-system-insight-client-contracts-entities-dashboard-widget-config.d.ts +5 -0
  79. package/types/acorex-platform-module-system-insight-client-contracts-entities-error-event.d.ts +5 -0
  80. package/types/acorex-platform-module-system-insight-client-contracts-entities-http-request-log.d.ts +5 -0
  81. package/types/acorex-platform-module-system-insight-client-contracts-entities-job-execution-log.d.ts +5 -0
  82. package/types/acorex-platform-module-system-insight-client-contracts-entities-log-entry.d.ts +5 -0
  83. package/types/acorex-platform-module-system-insight-client-contracts-entities-metric-point.d.ts +5 -0
  84. package/types/acorex-platform-module-system-insight-client-contracts-entities-observability-data-source.d.ts +5 -0
  85. package/types/acorex-platform-module-system-insight-client-contracts-entities-retention-policy.d.ts +5 -0
  86. package/types/acorex-platform-module-system-insight-client-contracts-entities-saved-view.d.ts +5 -0
  87. package/types/acorex-platform-module-system-insight-client-contracts-entities-slow-request.d.ts +5 -0
  88. package/types/acorex-platform-module-system-insight-client-contracts-entities-trace-entry.d.ts +5 -0
  89. package/types/acorex-platform-module-system-insight-client-contracts-entities-trace-span.d.ts +5 -0
  90. package/types/acorex-platform-module-system-insight-client-contracts-entity-catalog.d.ts +10 -0
  91. package/types/acorex-platform-module-system-insight-client-local-entities.d.ts +12 -0
@@ -0,0 +1,142 @@
1
+ import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';
2
+ import { AXPEntityCommandScope, AXPEntityQueryType, createAllQueryView } from '@acorex-platform/framework-shared/entity';
3
+ import { A as AXMSystemInsightCommandKeys } from './acorex-platform-module-system-insight-client-contracts-entity-catalog-commands.keys-yv865ABJ.mjs';
4
+ import { A as AXMSystemInsightQueryKeys } from './acorex-platform-module-system-insight-client-contracts-entity-catalog-queries.keys-C768fZe1.mjs';
5
+ import { R as RootConfig } from './acorex-platform-module-system-insight-client-contracts-entity-catalog-acorex-platform-module-system-insight-client-contracts-entity-catalog-L_KQ_ZRS.mjs';
6
+
7
+ const listFieldOptions = {
8
+ filter: { inline: { enabled: true }, advance: { enabled: true } },
9
+ sort: { enabled: true },
10
+ };
11
+ const readOnlyCrud = async () => {
12
+ throw new Error('Observability data is read-only');
13
+ };
14
+ async function traceSpanEntityFactory() {
15
+ const i18n = RootConfig.config.i18n;
16
+ const properties = [
17
+ {
18
+ name: 'spanId',
19
+ title: '@system-insight:fields.span-id',
20
+ groupId: 'general',
21
+ schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
22
+ options: listFieldOptions,
23
+ },
24
+ {
25
+ name: 'traceId',
26
+ title: '@system-insight:fields.trace-id',
27
+ groupId: 'general',
28
+ schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
29
+ options: listFieldOptions,
30
+ },
31
+ {
32
+ name: 'operationName',
33
+ title: '@system-insight:fields.operation',
34
+ groupId: 'general',
35
+ schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
36
+ options: listFieldOptions,
37
+ },
38
+ {
39
+ name: 'serviceName',
40
+ title: '@system-insight:fields.service-name',
41
+ groupId: 'general',
42
+ schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
43
+ options: listFieldOptions,
44
+ },
45
+ {
46
+ name: 'startTime',
47
+ title: '@system-insight:fields.start-time',
48
+ groupId: 'general',
49
+ schema: { dataType: 'date', interface: { type: AXPWidgetsList.Editors.DateTimeBox } },
50
+ options: listFieldOptions,
51
+ },
52
+ {
53
+ name: 'duration',
54
+ title: '@system-insight:fields.duration',
55
+ groupId: 'general',
56
+ schema: { dataType: 'number', interface: { type: AXPWidgetsList.Editors.NumberBox } },
57
+ options: listFieldOptions,
58
+ },
59
+ {
60
+ name: 'status',
61
+ title: '@system-insight:fields.status',
62
+ groupId: 'general',
63
+ schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },
64
+ options: listFieldOptions,
65
+ },
66
+ ];
67
+ return {
68
+ module: RootConfig.module.name,
69
+ name: RootConfig.entities.traceSpan.name,
70
+ title: RootConfig.entities.traceSpan.title,
71
+ icon: RootConfig.entities.traceSpan.icon,
72
+ formats: {
73
+ individual: RootConfig.entities.traceSpan.title,
74
+ plural: RootConfig.entities.traceSpan.titlePlural,
75
+ searchResult: {
76
+ title: '{{ operationName }}',
77
+ description: RootConfig.entities.traceSpan.title,
78
+ },
79
+ },
80
+ groups: [{ id: 'general', title: `@${i18n}:groups.general` }],
81
+ properties,
82
+ columns: [
83
+ { name: 'startTime' },
84
+ { name: 'operationName' },
85
+ { name: 'serviceName' },
86
+ { name: 'duration' },
87
+ { name: 'status' },
88
+ ],
89
+ queries: {
90
+ list: { execute: AXMSystemInsightQueryKeys.TraceSpan.List, type: AXPEntityQueryType.List },
91
+ byKey: { execute: AXMSystemInsightQueryKeys.TraceSpan.GetOne, type: AXPEntityQueryType.Single },
92
+ },
93
+ commands: {
94
+ create: { execute: readOnlyCrud },
95
+ update: { execute: readOnlyCrud },
96
+ delete: { execute: readOnlyCrud },
97
+ },
98
+ interfaces: {
99
+ master: {
100
+ list: {
101
+ actions: [
102
+ {
103
+ title: '@general:actions.detail.title',
104
+ icon: 'fa-light fa-eye',
105
+ command: 'Entity:View',
106
+ priority: 'primary',
107
+ type: 'view',
108
+ scope: AXPEntityCommandScope.Individual,
109
+ default: true,
110
+ },
111
+ ],
112
+ views: [
113
+ createAllQueryView({
114
+ sorts: [{ name: 'startTime', dir: 'desc' }],
115
+ }),
116
+ ],
117
+ },
118
+ single: {
119
+ title: '{{ operationName }}',
120
+ sections: [{ id: 'general' }],
121
+ properties: properties.map((property) => ({
122
+ name: property.name,
123
+ layout: { positions: { lg: { colSpan: 6 } } },
124
+ })),
125
+ actions: [
126
+ {
127
+ title: `@${i18n}:actions.view-trace.title`,
128
+ command: AXMSystemInsightCommandKeys.Trace.OpenTimeline,
129
+ priority: 'secondary',
130
+ type: 'view',
131
+ scope: AXPEntityCommandScope.Individual,
132
+ hidden: `{{ !context.eval("traceId") }}`,
133
+ },
134
+ ],
135
+ },
136
+ },
137
+ },
138
+ };
139
+ }
140
+
141
+ export { traceSpanEntityFactory };
142
+ //# sourceMappingURL=acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-span.entity-BJGn3-6F.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-system-insight-client-contracts-entity-catalog-trace-span.entity-BJGn3-6F.mjs","sources":["../../../../libs/modules/system-insight/contracts/src/entities/trace-span/trace-span.entity.ts"],"sourcesContent":["import { AXPWidgetsList } from '@acorex-platform/framework-shared/core';\nimport {\n AXPEntity,\n AXPEntityCommandScope,\n AXPEntityQueryType,\n createAllQueryView,\n} from '@acorex-platform/framework-shared/entity';\nimport { AXMSystemInsightCommandKeys } from '../../commands.keys';\nimport { AXMSystemInsightQueryKeys } from '../../queries.keys';\nimport { RootConfig } from '../../root-config';\n\nconst listFieldOptions = {\n filter: { inline: { enabled: true }, advance: { enabled: true } },\n sort: { enabled: true },\n};\n\nconst readOnlyCrud = async () => {\n throw new Error('Observability data is read-only');\n};\n\nexport async function traceSpanEntityFactory(): Promise<AXPEntity> {\n const i18n = RootConfig.config.i18n;\n\n const properties: AXPEntity['properties'] = [\n {\n name: 'spanId',\n title: '@system-insight:fields.span-id',\n groupId: 'general',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n options: listFieldOptions,\n },\n {\n name: 'traceId',\n title: '@system-insight:fields.trace-id',\n groupId: 'general',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n options: listFieldOptions,\n },\n {\n name: 'operationName',\n title: '@system-insight:fields.operation',\n groupId: 'general',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n options: listFieldOptions,\n },\n {\n name: 'serviceName',\n title: '@system-insight:fields.service-name',\n groupId: 'general',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n options: listFieldOptions,\n },\n {\n name: 'startTime',\n title: '@system-insight:fields.start-time',\n groupId: 'general',\n schema: { dataType: 'date', interface: { type: AXPWidgetsList.Editors.DateTimeBox } },\n options: listFieldOptions,\n },\n {\n name: 'duration',\n title: '@system-insight:fields.duration',\n groupId: 'general',\n schema: { dataType: 'number', interface: { type: AXPWidgetsList.Editors.NumberBox } },\n options: listFieldOptions,\n },\n {\n name: 'status',\n title: '@system-insight:fields.status',\n groupId: 'general',\n schema: { dataType: 'string', interface: { type: AXPWidgetsList.Editors.TextBox } },\n options: listFieldOptions,\n },\n ];\n\n return {\n module: RootConfig.module.name,\n name: RootConfig.entities.traceSpan.name,\n title: RootConfig.entities.traceSpan.title,\n icon: RootConfig.entities.traceSpan.icon,\n formats: {\n individual: RootConfig.entities.traceSpan.title,\n plural: RootConfig.entities.traceSpan.titlePlural,\n searchResult: {\n title: '{{ operationName }}',\n description: RootConfig.entities.traceSpan.title,\n },\n },\n groups: [{ id: 'general', title: `@${i18n}:groups.general` }],\n properties,\n columns: [\n { name: 'startTime' },\n { name: 'operationName' },\n { name: 'serviceName' },\n { name: 'duration' },\n { name: 'status' },\n ],\n queries: {\n list: { execute: AXMSystemInsightQueryKeys.TraceSpan.List, type: AXPEntityQueryType.List },\n byKey: { execute: AXMSystemInsightQueryKeys.TraceSpan.GetOne, type: AXPEntityQueryType.Single },\n },\n commands: {\n create: { execute: readOnlyCrud },\n update: { execute: readOnlyCrud },\n delete: { execute: readOnlyCrud },\n },\n interfaces: {\n master: {\n list: {\n actions: [\n {\n title: '@general:actions.detail.title',\n icon: 'fa-light fa-eye',\n command: 'Entity:View',\n priority: 'primary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n default: true,\n },\n ],\n views: [\n createAllQueryView({\n sorts: [{ name: 'startTime', dir: 'desc' }],\n }),\n ],\n },\n single: {\n title: '{{ operationName }}',\n sections: [{ id: 'general' }],\n properties: properties.map((property) => ({\n name: property.name,\n layout: { positions: { lg: { colSpan: 6 } } },\n })),\n actions: [\n {\n title: `@${i18n}:actions.view-trace.title`,\n command: AXMSystemInsightCommandKeys.Trace.OpenTimeline,\n priority: 'secondary',\n type: 'view',\n scope: AXPEntityCommandScope.Individual,\n hidden: `{{ !context.eval(\"traceId\") }}`,\n },\n ],\n },\n },\n },\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { s as systemInsightLocalEntityCatalog } from './acorex-platform-module-system-insight-client-contracts-entity-catalog-acorex-platform-module-system-insight-client-contracts-entity-catalog-L_KQ_ZRS.mjs';
2
+ //# sourceMappingURL=acorex-platform-module-system-insight-client-contracts-entity-catalog.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acorex-platform-module-system-insight-client-contracts-entity-catalog.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-system-insight-client-contracts.mjs","sources":["../../../../libs/modules/system-insight/contracts/src/menu.keys.ts","../../../../libs/modules/system-insight/contracts/src/permission.keys.ts","../../../../libs/modules/system-insight/contracts/src/settings.keys.ts","../../../../libs/modules/system-insight/contracts/src/server-commands.ts","../../../../libs/modules/system-insight/contracts/src/queries.keys.ts","../../../../libs/modules/system-insight/contracts/src/commands.keys.ts","../../../../libs/modules/system-insight/contracts/src/dto/scope-context.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/system-insight-paged.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/log-entry.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/trace.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/metric.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/error-event.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/saved-view.dto.ts","../../../../libs/modules/system-insight/contracts/src/root-config.ts","../../../../libs/modules/system-insight/contracts/src/trace-timeline-page.component-key.ts","../../../../libs/modules/system-insight/contracts/src/index.ts","../../../../libs/modules/system-insight/contracts/src/acorex-platform-module-system-insight-client-contracts.ts"],"sourcesContent":["export const AXMSystemInsightMenuKeys = {\n Root: 'SystemInsight:Menu',\n Logs: 'SystemInsight:Menu:Logs',\n Traces: 'SystemInsight:Menu:Traces',\n Errors: 'SystemInsight:Menu:Errors',\n SlowRequests: 'SystemInsight:Menu:SlowRequests',\n Metrics: 'SystemInsight:Menu:Metrics',\n AlertRules: 'SystemInsight:Menu:AlertRules',\n SavedViews: 'SystemInsight:Menu:SavedViews',\n DataSources: 'SystemInsight:Menu:DataSources',\n RetentionPolicies: 'SystemInsight:Menu:RetentionPolicies',\n AuditLog: 'SystemInsight:Menu:AuditLog',\n} as const;\n","/**\n * Administration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMSystemInsightPermissionKeys = {\n SystemInsight: {\n Logs: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Traces: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Metrics: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Errors: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Alerts: { Manage: AXPAdministrationPermissionKeys.MaintainObservability },\n SavedViews: { Manage: AXPAdministrationPermissionKeys.MaintainObservability },\n Admin: AXPAdministrationPermissionKeys.MaintainObservability,\n Management: AXPAdministrationPermissionKeys.MaintainObservability,\n AuditLog: {\n Management: AXPAdministrationPermissionKeys.MaintainObservability,\n },\n },\n} as const;\n","export enum AXPSystemInsightSettings {\n //#region ---- Retention Settings ----\n\n RetentionEnabled = 'SystemInsight:Setting:Retention.Enabled',\n RetentionPeriod = 'SystemInsight:Setting:Retention.Period',\n RetentionBatchSize = 'SystemInsight:Setting:Retention.BatchSize',\n RetentionPurgeCron = 'SystemInsight:Setting:Retention.PurgeCron',\n\n //#endregion\n\n //#region ---- Critical Error File Fallback ----\n\n StorageLocation = 'SystemInsight:Setting:Storage.Location',\n CriticalErrorFileEnabled = 'SystemInsight:Setting:Storage.CriticalErrorFileEnabled',\n\n //#endregion\n\n //#region ---- Log Level Settings ----\n\n DefaultLogLevel = 'SystemInsight:Setting:Level.Default',\n\n //#endregion\n\n //#region ---- Performance Settings ----\n\n AsyncLogging = 'SystemInsight:Setting:Performance.AsyncEnabled',\n BatchSize = 'SystemInsight:Setting:Performance.BatchSize',\n FlushInterval = 'SystemInsight:Setting:Performance.FlushInterval',\n SlowRequestThresholdMs = 'SystemInsight:Setting:Performance.SlowRequestThresholdMs',\n\n //#endregion\n}\n\nexport const AXP_SYSTEM_INSIGHT_SETTING_DEFAULTS = {\n [AXPSystemInsightSettings.RetentionEnabled]: true,\n [AXPSystemInsightSettings.RetentionPeriod]: 30,\n [AXPSystemInsightSettings.RetentionBatchSize]: 500,\n [AXPSystemInsightSettings.RetentionPurgeCron]: '0 4 * * *',\n [AXPSystemInsightSettings.StorageLocation]: './logs/acorex',\n [AXPSystemInsightSettings.CriticalErrorFileEnabled]: true,\n [AXPSystemInsightSettings.DefaultLogLevel]: 'info',\n [AXPSystemInsightSettings.AsyncLogging]: true,\n [AXPSystemInsightSettings.BatchSize]: 100,\n [AXPSystemInsightSettings.FlushInterval]: 5000,\n [AXPSystemInsightSettings.SlowRequestThresholdMs]: 500,\n} as const;\n","//#region ---- System Insight server commands ----\n\nexport const AXPSystemInsightServerCommands = {\n RetentionPurge: 'system-insight.retention.purge',\n} as const;\n\n/** Stable scope key for the platform log retention purge schedule. */\nexport const AXP_SYSTEM_INSIGHT_RETENTION_PURGE_COMMAND_KEY = AXPSystemInsightServerCommands.RetentionPurge;\n\n//#endregion\n","//#region ---- Query Keys ----\n\nexport const AXMSystemInsightQueryKeys = {\n LogEntry: {\n List: 'SystemInsight:LogEntry:List',\n GetOne: 'SystemInsight:LogEntry:GetOne',\n Aggregate: 'SystemInsight:LogEntry:Aggregate',\n },\n HttpRequestLog: {\n List: 'SystemInsight:HttpRequestLog:List',\n GetOne: 'SystemInsight:HttpRequestLog:GetOne',\n },\n JobExecutionLog: {\n List: 'SystemInsight:JobExecutionLog:List',\n GetOne: 'SystemInsight:JobExecutionLog:GetOne',\n },\n TraceEntry: {\n List: 'SystemInsight:TraceEntry:List',\n GetOne: 'SystemInsight:TraceEntry:GetOne',\n },\n TraceSpan: {\n List: 'SystemInsight:TraceSpan:List',\n GetOne: 'SystemInsight:TraceSpan:GetOne',\n },\n TraceTimeline: {\n Get: 'SystemInsight:TraceTimeline:Get',\n },\n ErrorEvent: {\n List: 'SystemInsight:ErrorEvent:List',\n GetOne: 'SystemInsight:ErrorEvent:GetOne',\n Aggregate: 'SystemInsight:ErrorEvent:Aggregate',\n },\n SlowRequest: {\n List: 'SystemInsight:SlowRequest:List',\n GetOne: 'SystemInsight:SlowRequest:GetOne',\n },\n MetricPoint: {\n List: 'SystemInsight:MetricPoint:List',\n GetOne: 'SystemInsight:MetricPoint:GetOne',\n Range: 'SystemInsight:MetricPoint:Range',\n },\n} as const;\n\n//#endregion\n","//#region ---- Command Keys ----\n\nexport const AXMSystemInsightCommandKeys = {\n LogEntry: {\n Export: 'SystemInsight:LogEntry:Export',\n Clear: 'SystemInsight:LogEntry:Clear',\n },\n AlertRule: {\n CreateFromFilter: 'SystemInsight:AlertRule:CreateFromFilter',\n },\n Notification: {\n SendAlert: 'SystemInsight:Notification:SendAlert',\n },\n Trace: {\n OpenTimeline: 'SystemInsight:Trace:OpenTimeline',\n },\n} as const;\n\n//#endregion\n","//#region ---- Scope context ----\n\nexport interface SystemInsightScopeContext {\n tenantId?: string;\n applicationId?: string;\n userId?: string;\n}\n\n//#endregion\n","//#region ---- Paged results ----\n\nexport interface SystemInsightPagedResult<T> {\n items: T[];\n total: number;\n cursor?: string;\n}\n\nexport interface SystemInsightAggregateBucket {\n key: string;\n count: number;\n}\n\nexport interface SystemInsightAggregateResult {\n buckets: SystemInsightAggregateBucket[];\n total: number;\n}\n\nexport interface SystemInsightExportResult {\n downloadUrl?: string;\n contentType: string;\n fileName: string;\n data?: string;\n}\n\nexport interface SystemInsightClearResult {\n deleted: number;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Log DTOs ----\n\nexport interface LogEntryDto {\n id: string;\n /** Event time (OTel Timestamp). */\n timestamp: string;\n /** Severity text (OTel SeverityText). */\n level: string;\n /** OTel SeverityNumber (TRACE=1 … FATAL=21). */\n severityNumber?: number;\n /** Log body (OTel Body). */\n message: string;\n serviceName?: string;\n requestId?: string;\n traceId?: string;\n spanId?: string;\n userId?: string;\n tenantId?: string;\n applicationId?: string;\n module?: string;\n entity?: string;\n operation?: string;\n method?: string;\n url?: string;\n statusCode?: number;\n duration?: number;\n /** Additional attributes (OTel Attributes). */\n properties?: Record<string, unknown>;\n source?: string;\n}\n\nexport interface HttpRequestLogDto extends LogEntryDto {\n method?: string;\n url?: string;\n statusCode?: number;\n duration?: number;\n userAgent?: string;\n clientIp?: string;\n}\n\nexport interface JobExecutionLogDto extends LogEntryDto {\n jobId?: string;\n jobName?: string;\n status?: string;\n startedAt?: string;\n finishedAt?: string;\n duration?: number;\n error?: string;\n}\n\nexport interface SystemInsightLogQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n cursor?: string;\n levels?: string[];\n serviceName?: string;\n requestId?: string;\n traceId?: string;\n spanId?: string;\n module?: string;\n entity?: string;\n operation?: string;\n quickSearch?: string;\n hasHttpAccess?: boolean;\n minDuration?: number;\n filter?: unknown;\n sort?: unknown;\n /** Entity-list operators keyed by field (`contains`, `equal`, …). */\n fieldOperators?: Record<string, string>;\n}\n\nexport interface SystemInsightAggregateQueryDto extends SystemInsightLogQueryDto {\n groupBy: string;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\r\n\r\n//#region ---- Trace DTOs ----\r\n\r\nexport type TraceKind = 'command' | 'query' | 'entity' | 'http' | 'custom';\r\n\r\nexport type TraceSpanKind = 'op' | 'middleware' | 'backend' | 'handler';\r\n\r\nexport interface TraceEntryDto {\r\n id: string;\r\n traceId: string;\r\n kind?: TraceKind;\r\n operation?: string;\r\n /** @deprecated Prefer operation — kept for older Jaeger-mapped rows. */\r\n rootOperation?: string;\r\n rootServiceName?: string;\r\n serviceName?: string;\r\n module?: string;\r\n entityName?: string;\r\n startTime: string;\r\n duration: number;\r\n status?: string;\r\n spanCount?: number;\r\n hasError?: boolean;\r\n requestId?: string;\r\n tenantId?: string;\r\n applicationId?: string;\r\n userId?: string;\r\n hasAi?: boolean;\r\n aiModel?: string;\r\n aiInputTokens?: number;\r\n aiOutputTokens?: number;\r\n}\r\n\r\nexport interface TraceSpanDto {\r\n id: string;\r\n spanId: string;\r\n traceId: string;\r\n parentSpanId?: string;\r\n operationName: string;\r\n serviceName?: string;\r\n spanKind?: TraceSpanKind;\r\n startTime: string;\r\n duration: number;\r\n status?: string;\r\n middlewareName?: string;\r\n order?: number;\r\n nextMiddleware?: string;\r\n input?: unknown;\r\n output?: unknown;\r\n error?: string;\r\n tags?: Record<string, unknown>;\r\n logs?: Array<Record<string, unknown>>;\r\n}\r\n\r\nexport interface TraceTimelineDto {\r\n traceId: string;\r\n kind?: TraceKind;\r\n operation?: string;\r\n spans: TraceSpanDto[];\r\n startTime: string;\r\n duration: number;\r\n services: string[];\r\n hasError?: boolean;\r\n module?: string;\r\n entityName?: string;\r\n requestId?: string;\r\n tenantId?: string;\r\n applicationId?: string;\r\n hasAi?: boolean;\r\n aiModel?: string;\r\n aiInputTokens?: number;\r\n aiOutputTokens?: number;\r\n}\r\n\r\nexport interface SystemInsightTraceQueryDto extends SystemInsightScopeContext {\r\n from?: string;\r\n to?: string;\r\n skip?: number;\r\n take?: number;\r\n serviceName?: string;\r\n traceId?: string;\r\n kind?: TraceKind | TraceKind[];\r\n operation?: string;\r\n module?: string;\r\n entityName?: string;\r\n hasError?: boolean;\r\n /** Minimum root trace duration in milliseconds (slow traces). */\r\n minDuration?: number;\r\n quickSearch?: string;\r\n requestId?: string;\r\n /** Entity-list operators keyed by field (`contains`, `equal`, …). */\r\n fieldOperators?: Record<string, string>;\r\n}\r\n\r\n//#endregion\r\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Metric DTOs ----\n\nexport type SystemInsightMetricType = 'counter' | 'gauge' | 'histogram';\n\nexport interface MetricPointDto {\n id: string;\n name: string;\n labels?: Record<string, string>;\n timestamp: string;\n value: number;\n type: SystemInsightMetricType;\n}\n\nexport interface SystemInsightMetricQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n names?: string[];\n serviceName?: string;\n step?: string;\n}\n\nexport interface SystemInsightMetricRangeResult {\n series: Array<{\n name: string;\n labels?: Record<string, string>;\n points: Array<{ timestamp: string; value: number }>;\n }>;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Error / slow request DTOs ----\n\nexport interface ErrorEventDto {\n id: string;\n timestamp: string;\n errorType?: string;\n message: string;\n stackTrace?: string;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n userId?: string;\n tenantId?: string;\n fingerprint?: string;\n}\n\nexport interface SlowRequestDto {\n id: string;\n timestamp: string;\n method?: string;\n url?: string;\n duration: number;\n thresholdMs?: number;\n statusCode?: number;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n}\n\nexport interface SystemInsightErrorQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n quickSearch?: string;\n}\n\nexport interface SystemInsightSlowRequestQueryDto extends SystemInsightErrorQueryDto {\n thresholdMs?: number;\n}\n\n//#endregion\n","//#region ---- Config entity DTOs ----\n\nexport interface SavedViewDto {\n id: string;\n title: string;\n description?: string;\n entityFullName: string;\n filter?: unknown;\n sorts?: unknown;\n columns?: unknown;\n timeRange?: { from?: string; to?: string };\n isDefault?: boolean;\n isShared?: boolean;\n ownerUserId?: string;\n tenantId?: string;\n}\n\nexport interface AlertRuleDto {\n id: string;\n name: string;\n enabled: boolean;\n entityFullName: string;\n condition?: unknown;\n threshold?: number;\n windowMinutes?: number;\n severity?: string;\n notificationChannels?: string[];\n lastTriggeredAt?: string;\n tenantId?: string;\n}\n\nexport interface ObservabilityDataSourceDto {\n id: string;\n name: string;\n type: 'logs' | 'traces' | 'metrics';\n provider: 'elasticsearch' | 'jaeger' | 'prometheus' | 'fake';\n connectionConfig?: Record<string, unknown>;\n isDefault?: boolean;\n tenantId?: string;\n}\n\nexport interface RetentionPolicyDto {\n id: string;\n dataType: 'logs' | 'traces' | 'metrics' | 'audit';\n retentionDays: number;\n enabled: boolean;\n tenantId?: string;\n applicationId?: string;\n}\n\nexport interface DashboardWidgetConfigDto {\n id: string;\n title: string;\n widgetType: string;\n query?: unknown;\n layout?: unknown;\n order?: number;\n dashboardKey: string;\n tenantId?: string;\n}\n\nexport interface CreateAlertFromFilterInput {\n name: string;\n entityFullName: string;\n filter?: unknown;\n threshold?: number;\n windowMinutes?: number;\n severity?: string;\n notificationChannels?: string[];\n}\n\n//#endregion\n","const config = {\n i18n: 'system-insight',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'system-insight',\n module: 'system-insight',\n name: 'SystemInsight',\n title: '@system-insight:module.title',\n icon: 'fa-light fa-monitor-waveform',\n },\n entities: {\n auditLog: {\n name: 'AuditLog',\n title: '@system-insight:logs.entities.audit-log.title',\n titlePlural: '@system-insight:logs.entities.audit-log.plural',\n icon: 'fa-light fa-file-code',\n },\n logEntry: {\n name: 'LogEntry',\n title: '@system-insight:entities.log-entry.title',\n titlePlural: '@system-insight:entities.log-entry.plural',\n icon: 'fa-light fa-file-lines',\n },\n httpRequestLog: {\n name: 'HttpRequestLog',\n title: '@system-insight:entities.http-request-log.title',\n titlePlural: '@system-insight:entities.http-request-log.plural',\n icon: 'fa-light fa-globe',\n },\n jobExecutionLog: {\n name: 'JobExecutionLog',\n title: '@system-insight:entities.job-execution-log.title',\n titlePlural: '@system-insight:entities.job-execution-log.plural',\n icon: 'fa-light fa-clock',\n },\n traceEntry: {\n name: 'TraceEntry',\n title: '@system-insight:entities.trace-entry.title',\n titlePlural: '@system-insight:entities.trace-entry.plural',\n icon: 'fa-light fa-route',\n },\n traceSpan: {\n name: 'TraceSpan',\n title: '@system-insight:entities.trace-span.title',\n titlePlural: '@system-insight:entities.trace-span.plural',\n icon: 'fa-light fa-diagram-project',\n },\n errorEvent: {\n name: 'ErrorEvent',\n title: '@system-insight:entities.error-event.title',\n titlePlural: '@system-insight:entities.error-event.plural',\n icon: 'fa-light fa-circle-exclamation',\n },\n slowRequest: {\n name: 'SlowRequest',\n title: '@system-insight:entities.slow-request.title',\n titlePlural: '@system-insight:entities.slow-request.plural',\n icon: 'fa-light fa-hourglass-half',\n },\n metricPoint: {\n name: 'MetricPoint',\n title: '@system-insight:entities.metric-point.title',\n titlePlural: '@system-insight:entities.metric-point.plural',\n icon: 'fa-light fa-chart-line',\n },\n savedView: {\n name: 'SavedView',\n title: '@system-insight:entities.saved-view.title',\n titlePlural: '@system-insight:entities.saved-view.plural',\n icon: 'fa-light fa-bookmark',\n },\n alertRule: {\n name: 'AlertRule',\n title: '@system-insight:entities.alert-rule.title',\n titlePlural: '@system-insight:entities.alert-rule.plural',\n icon: 'fa-light fa-bell',\n },\n observabilityDataSource: {\n name: 'ObservabilityDataSource',\n title: '@system-insight:entities.observability-data-source.title',\n titlePlural: '@system-insight:entities.observability-data-source.plural',\n icon: 'fa-light fa-database',\n },\n retentionPolicy: {\n name: 'RetentionPolicy',\n title: '@system-insight:entities.retention-policy.title',\n titlePlural: '@system-insight:entities.retention-policy.plural',\n icon: 'fa-light fa-calendar-clock',\n },\n dashboardWidgetConfig: {\n name: 'DashboardWidgetConfig',\n title: '@system-insight:entities.dashboard-widget-config.title',\n titlePlural: '@system-insight:entities.dashboard-widget-config.plural',\n icon: 'fa-light fa-grid-2',\n },\n },\n} as const;\n","/** Registry key for Trace Timeline custom entity page (tab on TraceEntry). */\r\nexport const TRACE_TIMELINE_PAGE_COMPONENT_KEY = 'trace-timeline-page';\r\n\r\n/** Registry key for Trace Flow chart custom entity page (tab on TraceEntry). */\r\nexport const TRACE_FLOW_PAGE_COMPONENT_KEY = 'trace-flow-page';\r\n","//#region ---- Contracts barrel ----\r\n\r\nexport * from './menu.keys';\r\nexport * from './permission.keys';\r\nexport * from './settings.keys';\r\nexport * from './server-commands';\r\nexport * from './queries.keys';\r\nexport * from './commands.keys';\r\nexport * from './dto';\r\n\r\nexport * from './root-config';\r\nexport * from './trace-timeline-page.component-key';\r\n\r\n//#endregion\r\n\r\nexport * from './entities';\r\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-system-insight-client-contracts.mjs","sources":["../../../../libs/modules/system-insight/contracts/src/menu.keys.ts","../../../../libs/modules/system-insight/contracts/src/permission.keys.ts","../../../../libs/modules/system-insight/contracts/src/settings.keys.ts","../../../../libs/modules/system-insight/contracts/src/server-commands.ts","../../../../libs/modules/system-insight/contracts/src/queries.keys.ts","../../../../libs/modules/system-insight/contracts/src/commands.keys.ts","../../../../libs/modules/system-insight/contracts/src/dto/scope-context.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/system-insight-paged.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/log-entry.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/trace.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/metric.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/error-event.dto.ts","../../../../libs/modules/system-insight/contracts/src/dto/saved-view.dto.ts","../../../../libs/modules/system-insight/contracts/src/root-config.ts","../../../../libs/modules/system-insight/contracts/src/trace-timeline-page.component-key.ts","../../../../libs/modules/system-insight/contracts/src/index.ts","../../../../libs/modules/system-insight/contracts/src/acorex-platform-module-system-insight-client-contracts.ts"],"sourcesContent":["export const AXMSystemInsightMenuKeys = {\n Root: 'SystemInsight:Menu',\n Logs: 'SystemInsight:Menu:Logs',\n Traces: 'SystemInsight:Menu:Traces',\n Errors: 'SystemInsight:Menu:Errors',\n SlowRequests: 'SystemInsight:Menu:SlowRequests',\n Metrics: 'SystemInsight:Menu:Metrics',\n AlertRules: 'SystemInsight:Menu:AlertRules',\n SavedViews: 'SystemInsight:Menu:SavedViews',\n DataSources: 'SystemInsight:Menu:DataSources',\n RetentionPolicies: 'SystemInsight:Menu:RetentionPolicies',\n AuditLog: 'SystemInsight:Menu:AuditLog',\n} as const;\n","/**\n * Administration capabilities used by this module.\n * Domain capability keys for this module. Root groups live in `AXPCommonPermissionGroupKeys` (common contracts).\n */\nexport const AXPAdministrationPermissionKeys = {\n Access: 'Administration:Permission:Access',\n MaintainUsersAndRoles: 'Administration:Permission:MaintainUsersAndRoles',\n ManageSessions: 'Administration:Permission:ManageSessions',\n MaintainPolicies: 'Administration:Permission:MaintainPolicies',\n ViewIntegrations: 'Administration:Permission:ViewIntegrations',\n MaintainConnections: 'Administration:Permission:MaintainConnections',\n MaintainWorkflows: 'Administration:Permission:MaintainWorkflows',\n ManageWorkflowActions: 'Administration:Permission:ManageWorkflowActions',\n ViewRules: 'Administration:Permission:ViewRules',\n MaintainRules: 'Administration:Permission:MaintainRules',\n ManageRuleActions: 'Administration:Permission:ManageRuleActions',\n MaintainAi: 'Administration:Permission:MaintainAi',\n UseAiAssist: 'Administration:Permission:UseAiAssist',\n MaintainDashboards: 'Administration:Permission:MaintainDashboards',\n ViewJobs: 'Administration:Permission:ViewJobs',\n ManageJobActions: 'Administration:Permission:ManageJobActions',\n ViewObservability: 'Administration:Permission:ViewObservability',\n MaintainObservability: 'Administration:Permission:MaintainObservability',\n} as const;\n\n/**\n * @deprecated Prefer {@link AXPAdministrationPermissionKeys}.\n * Legacy nested shape kept so existing imports compile during migration.\n */\nexport const AXMSystemInsightPermissionKeys = {\n SystemInsight: {\n Logs: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Traces: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Metrics: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Errors: { View: AXPAdministrationPermissionKeys.ViewObservability },\n Alerts: { Manage: AXPAdministrationPermissionKeys.MaintainObservability },\n SavedViews: { Manage: AXPAdministrationPermissionKeys.MaintainObservability },\n Admin: AXPAdministrationPermissionKeys.MaintainObservability,\n Management: AXPAdministrationPermissionKeys.MaintainObservability,\n AuditLog: {\n Management: AXPAdministrationPermissionKeys.MaintainObservability,\n },\n },\n} as const;\n","export enum AXPSystemInsightSettings {\n //#region ---- Retention Settings ----\n\n RetentionEnabled = 'SystemInsight:Setting:Retention.Enabled',\n RetentionPeriod = 'SystemInsight:Setting:Retention.Period',\n RetentionBatchSize = 'SystemInsight:Setting:Retention.BatchSize',\n RetentionPurgeCron = 'SystemInsight:Setting:Retention.PurgeCron',\n\n //#endregion\n\n //#region ---- Critical Error File Fallback ----\n\n StorageLocation = 'SystemInsight:Setting:Storage.Location',\n CriticalErrorFileEnabled = 'SystemInsight:Setting:Storage.CriticalErrorFileEnabled',\n\n //#endregion\n\n //#region ---- Log Level Settings ----\n\n DefaultLogLevel = 'SystemInsight:Setting:Level.Default',\n\n //#endregion\n\n //#region ---- Performance Settings ----\n\n AsyncLogging = 'SystemInsight:Setting:Performance.AsyncEnabled',\n BatchSize = 'SystemInsight:Setting:Performance.BatchSize',\n FlushInterval = 'SystemInsight:Setting:Performance.FlushInterval',\n SlowRequestThresholdMs = 'SystemInsight:Setting:Performance.SlowRequestThresholdMs',\n\n //#endregion\n}\n\nexport const AXP_SYSTEM_INSIGHT_SETTING_DEFAULTS = {\n [AXPSystemInsightSettings.RetentionEnabled]: true,\n [AXPSystemInsightSettings.RetentionPeriod]: 30,\n [AXPSystemInsightSettings.RetentionBatchSize]: 500,\n [AXPSystemInsightSettings.RetentionPurgeCron]: '0 4 * * *',\n [AXPSystemInsightSettings.StorageLocation]: './logs/acorex',\n [AXPSystemInsightSettings.CriticalErrorFileEnabled]: true,\n [AXPSystemInsightSettings.DefaultLogLevel]: 'info',\n [AXPSystemInsightSettings.AsyncLogging]: true,\n [AXPSystemInsightSettings.BatchSize]: 100,\n [AXPSystemInsightSettings.FlushInterval]: 5000,\n [AXPSystemInsightSettings.SlowRequestThresholdMs]: 500,\n} as const;\n","//#region ---- System Insight server commands ----\n\nexport const AXPSystemInsightServerCommands = {\n RetentionPurge: 'system-insight.retention.purge',\n} as const;\n\n/** Stable scope key for the platform log retention purge schedule. */\nexport const AXP_SYSTEM_INSIGHT_RETENTION_PURGE_COMMAND_KEY = AXPSystemInsightServerCommands.RetentionPurge;\n\n//#endregion\n","//#region ---- Query Keys ----\n\nexport const AXMSystemInsightQueryKeys = {\n LogEntry: {\n List: 'SystemInsight:LogEntry:List',\n GetOne: 'SystemInsight:LogEntry:GetOne',\n Aggregate: 'SystemInsight:LogEntry:Aggregate',\n },\n HttpRequestLog: {\n List: 'SystemInsight:HttpRequestLog:List',\n GetOne: 'SystemInsight:HttpRequestLog:GetOne',\n },\n JobExecutionLog: {\n List: 'SystemInsight:JobExecutionLog:List',\n GetOne: 'SystemInsight:JobExecutionLog:GetOne',\n },\n TraceEntry: {\n List: 'SystemInsight:TraceEntry:List',\n GetOne: 'SystemInsight:TraceEntry:GetOne',\n },\n TraceSpan: {\n List: 'SystemInsight:TraceSpan:List',\n GetOne: 'SystemInsight:TraceSpan:GetOne',\n },\n TraceTimeline: {\n Get: 'SystemInsight:TraceTimeline:Get',\n },\n ErrorEvent: {\n List: 'SystemInsight:ErrorEvent:List',\n GetOne: 'SystemInsight:ErrorEvent:GetOne',\n Aggregate: 'SystemInsight:ErrorEvent:Aggregate',\n },\n SlowRequest: {\n List: 'SystemInsight:SlowRequest:List',\n GetOne: 'SystemInsight:SlowRequest:GetOne',\n },\n MetricPoint: {\n List: 'SystemInsight:MetricPoint:List',\n GetOne: 'SystemInsight:MetricPoint:GetOne',\n Range: 'SystemInsight:MetricPoint:Range',\n },\n} as const;\n\n//#endregion\n","//#region ---- Command Keys ----\n\nexport const AXMSystemInsightCommandKeys = {\n LogEntry: {\n Export: 'SystemInsight:LogEntry:Export',\n Clear: 'SystemInsight:LogEntry:Clear',\n },\n AlertRule: {\n CreateFromFilter: 'SystemInsight:AlertRule:CreateFromFilter',\n },\n Notification: {\n SendAlert: 'SystemInsight:Notification:SendAlert',\n },\n Trace: {\n OpenTimeline: 'SystemInsight:Trace:OpenTimeline',\n },\n} as const;\n\n//#endregion\n","//#region ---- Scope context ----\n\nexport interface SystemInsightScopeContext {\n tenantId?: string;\n applicationId?: string;\n userId?: string;\n}\n\n//#endregion\n","//#region ---- Paged results ----\n\nexport interface SystemInsightPagedResult<T> {\n items: T[];\n total: number;\n cursor?: string;\n}\n\nexport interface SystemInsightAggregateBucket {\n key: string;\n count: number;\n}\n\nexport interface SystemInsightAggregateResult {\n buckets: SystemInsightAggregateBucket[];\n total: number;\n}\n\nexport interface SystemInsightExportResult {\n downloadUrl?: string;\n contentType: string;\n fileName: string;\n data?: string;\n}\n\nexport interface SystemInsightClearResult {\n deleted: number;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Log DTOs ----\n\nexport interface LogEntryDto {\n id: string;\n /** Event time (OTel Timestamp). */\n timestamp: string;\n /** Severity text (OTel SeverityText). */\n level: string;\n /** OTel SeverityNumber (TRACE=1 … FATAL=21). */\n severityNumber?: number;\n /** Log body (OTel Body). */\n message: string;\n serviceName?: string;\n requestId?: string;\n traceId?: string;\n spanId?: string;\n userId?: string;\n tenantId?: string;\n applicationId?: string;\n module?: string;\n entity?: string;\n operation?: string;\n method?: string;\n url?: string;\n statusCode?: number;\n duration?: number;\n /** Additional attributes (OTel Attributes). */\n properties?: Record<string, unknown>;\n source?: string;\n}\n\nexport interface HttpRequestLogDto extends LogEntryDto {\n method?: string;\n url?: string;\n statusCode?: number;\n duration?: number;\n userAgent?: string;\n clientIp?: string;\n}\n\nexport interface JobExecutionLogDto extends LogEntryDto {\n jobId?: string;\n jobName?: string;\n status?: string;\n startedAt?: string;\n finishedAt?: string;\n duration?: number;\n error?: string;\n}\n\nexport interface SystemInsightLogQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n cursor?: string;\n levels?: string[];\n serviceName?: string;\n requestId?: string;\n traceId?: string;\n spanId?: string;\n module?: string;\n entity?: string;\n operation?: string;\n quickSearch?: string;\n hasHttpAccess?: boolean;\n minDuration?: number;\n filter?: unknown;\n sort?: unknown;\n /** Entity-list operators keyed by field (`contains`, `equal`, …). */\n fieldOperators?: Record<string, string>;\n}\n\nexport interface SystemInsightAggregateQueryDto extends SystemInsightLogQueryDto {\n groupBy: string;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\r\n\r\n//#region ---- Trace DTOs ----\r\n\r\nexport type TraceKind = 'command' | 'query' | 'entity' | 'http' | 'custom';\r\n\r\nexport type TraceSpanKind = 'op' | 'middleware' | 'backend' | 'handler';\r\n\r\nexport interface TraceEntryDto {\r\n id: string;\r\n traceId: string;\r\n kind?: TraceKind;\r\n operation?: string;\r\n /** @deprecated Prefer operation — kept for older Jaeger-mapped rows. */\r\n rootOperation?: string;\r\n rootServiceName?: string;\r\n serviceName?: string;\r\n module?: string;\r\n entityName?: string;\r\n startTime: string;\r\n duration: number;\r\n status?: string;\r\n spanCount?: number;\r\n hasError?: boolean;\r\n requestId?: string;\r\n tenantId?: string;\r\n applicationId?: string;\r\n userId?: string;\r\n hasAi?: boolean;\r\n aiModel?: string;\r\n aiInputTokens?: number;\r\n aiOutputTokens?: number;\r\n}\r\n\r\nexport interface TraceSpanDto {\r\n id: string;\r\n spanId: string;\r\n traceId: string;\r\n parentSpanId?: string;\r\n operationName: string;\r\n serviceName?: string;\r\n spanKind?: TraceSpanKind;\r\n startTime: string;\r\n duration: number;\r\n status?: string;\r\n middlewareName?: string;\r\n order?: number;\r\n nextMiddleware?: string;\r\n input?: unknown;\r\n output?: unknown;\r\n error?: string;\r\n tags?: Record<string, unknown>;\r\n logs?: Array<Record<string, unknown>>;\r\n}\r\n\r\nexport interface TraceTimelineDto {\r\n traceId: string;\r\n kind?: TraceKind;\r\n operation?: string;\r\n spans: TraceSpanDto[];\r\n startTime: string;\r\n duration: number;\r\n services: string[];\r\n hasError?: boolean;\r\n module?: string;\r\n entityName?: string;\r\n requestId?: string;\r\n tenantId?: string;\r\n applicationId?: string;\r\n hasAi?: boolean;\r\n aiModel?: string;\r\n aiInputTokens?: number;\r\n aiOutputTokens?: number;\r\n}\r\n\r\nexport interface SystemInsightTraceQueryDto extends SystemInsightScopeContext {\r\n from?: string;\r\n to?: string;\r\n skip?: number;\r\n take?: number;\r\n serviceName?: string;\r\n traceId?: string;\r\n kind?: TraceKind | TraceKind[];\r\n operation?: string;\r\n module?: string;\r\n entityName?: string;\r\n hasError?: boolean;\r\n /** Minimum root trace duration in milliseconds (slow traces). */\r\n minDuration?: number;\r\n quickSearch?: string;\r\n requestId?: string;\r\n /** Entity-list operators keyed by field (`contains`, `equal`, …). */\r\n fieldOperators?: Record<string, string>;\r\n}\r\n\r\n//#endregion\r\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Metric DTOs ----\n\nexport type SystemInsightMetricType = 'counter' | 'gauge' | 'histogram';\n\nexport interface MetricPointDto {\n id: string;\n name: string;\n labels?: Record<string, string>;\n timestamp: string;\n value: number;\n type: SystemInsightMetricType;\n}\n\nexport interface SystemInsightMetricQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n names?: string[];\n serviceName?: string;\n step?: string;\n}\n\nexport interface SystemInsightMetricRangeResult {\n series: Array<{\n name: string;\n labels?: Record<string, string>;\n points: Array<{ timestamp: string; value: number }>;\n }>;\n}\n\n//#endregion\n","import type { SystemInsightScopeContext } from './scope-context.dto';\n\n//#region ---- Error / slow request DTOs ----\n\nexport interface ErrorEventDto {\n id: string;\n timestamp: string;\n errorType?: string;\n message: string;\n stackTrace?: string;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n userId?: string;\n tenantId?: string;\n fingerprint?: string;\n}\n\nexport interface SlowRequestDto {\n id: string;\n timestamp: string;\n method?: string;\n url?: string;\n duration: number;\n thresholdMs?: number;\n statusCode?: number;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n}\n\nexport interface SystemInsightErrorQueryDto extends SystemInsightScopeContext {\n from?: string;\n to?: string;\n skip?: number;\n take?: number;\n serviceName?: string;\n traceId?: string;\n requestId?: string;\n quickSearch?: string;\n}\n\nexport interface SystemInsightSlowRequestQueryDto extends SystemInsightErrorQueryDto {\n thresholdMs?: number;\n}\n\n//#endregion\n","//#region ---- Config entity DTOs ----\n\nexport interface SavedViewDto {\n id: string;\n title: string;\n description?: string;\n entityFullName: string;\n filter?: unknown;\n sorts?: unknown;\n columns?: unknown;\n timeRange?: { from?: string; to?: string };\n isDefault?: boolean;\n isShared?: boolean;\n ownerUserId?: string;\n tenantId?: string;\n}\n\nexport interface AlertRuleDto {\n id: string;\n name: string;\n enabled: boolean;\n entityFullName: string;\n condition?: unknown;\n threshold?: number;\n windowMinutes?: number;\n severity?: string;\n notificationChannels?: string[];\n lastTriggeredAt?: string;\n tenantId?: string;\n}\n\nexport interface ObservabilityDataSourceDto {\n id: string;\n name: string;\n type: 'logs' | 'traces' | 'metrics';\n provider: 'elasticsearch' | 'jaeger' | 'prometheus' | 'fake';\n connectionConfig?: Record<string, unknown>;\n isDefault?: boolean;\n tenantId?: string;\n}\n\nexport interface RetentionPolicyDto {\n id: string;\n dataType: 'logs' | 'traces' | 'metrics' | 'audit';\n retentionDays: number;\n enabled: boolean;\n tenantId?: string;\n applicationId?: string;\n}\n\nexport interface DashboardWidgetConfigDto {\n id: string;\n title: string;\n widgetType: string;\n query?: unknown;\n layout?: unknown;\n order?: number;\n dashboardKey: string;\n tenantId?: string;\n}\n\nexport interface CreateAlertFromFilterInput {\n name: string;\n entityFullName: string;\n filter?: unknown;\n threshold?: number;\n windowMinutes?: number;\n severity?: string;\n notificationChannels?: string[];\n}\n\n//#endregion\n","const config = {\n i18n: 'system-insight',\n};\n\nexport const RootConfig = {\n config,\n module: {\n route: 'system-insight',\n module: 'system-insight',\n name: 'SystemInsight',\n title: '@system-insight:module.title',\n icon: 'fa-light fa-monitor-waveform',\n },\n entities: {\n auditLog: {\n name: 'AuditLog',\n title: '@system-insight:logs.entities.audit-log.title',\n titlePlural: '@system-insight:logs.entities.audit-log.plural',\n icon: 'fa-light fa-file-code',\n },\n logEntry: {\n name: 'LogEntry',\n title: '@system-insight:entities.log-entry.title',\n titlePlural: '@system-insight:entities.log-entry.plural',\n icon: 'fa-light fa-file-lines',\n },\n httpRequestLog: {\n name: 'HttpRequestLog',\n title: '@system-insight:entities.http-request-log.title',\n titlePlural: '@system-insight:entities.http-request-log.plural',\n icon: 'fa-light fa-globe',\n },\n jobExecutionLog: {\n name: 'JobExecutionLog',\n title: '@system-insight:entities.job-execution-log.title',\n titlePlural: '@system-insight:entities.job-execution-log.plural',\n icon: 'fa-light fa-clock',\n },\n traceEntry: {\n name: 'TraceEntry',\n title: '@system-insight:entities.trace-entry.title',\n titlePlural: '@system-insight:entities.trace-entry.plural',\n icon: 'fa-light fa-route',\n },\n traceSpan: {\n name: 'TraceSpan',\n title: '@system-insight:entities.trace-span.title',\n titlePlural: '@system-insight:entities.trace-span.plural',\n icon: 'fa-light fa-diagram-project',\n },\n errorEvent: {\n name: 'ErrorEvent',\n title: '@system-insight:entities.error-event.title',\n titlePlural: '@system-insight:entities.error-event.plural',\n icon: 'fa-light fa-circle-exclamation',\n },\n slowRequest: {\n name: 'SlowRequest',\n title: '@system-insight:entities.slow-request.title',\n titlePlural: '@system-insight:entities.slow-request.plural',\n icon: 'fa-light fa-hourglass-half',\n },\n metricPoint: {\n name: 'MetricPoint',\n title: '@system-insight:entities.metric-point.title',\n titlePlural: '@system-insight:entities.metric-point.plural',\n icon: 'fa-light fa-chart-line',\n },\n savedView: {\n name: 'SavedView',\n title: '@system-insight:entities.saved-view.title',\n titlePlural: '@system-insight:entities.saved-view.plural',\n icon: 'fa-light fa-bookmark',\n },\n alertRule: {\n name: 'AlertRule',\n title: '@system-insight:entities.alert-rule.title',\n titlePlural: '@system-insight:entities.alert-rule.plural',\n icon: 'fa-light fa-bell',\n },\n observabilityDataSource: {\n name: 'ObservabilityDataSource',\n title: '@system-insight:entities.observability-data-source.title',\n titlePlural: '@system-insight:entities.observability-data-source.plural',\n icon: 'fa-light fa-database',\n },\n retentionPolicy: {\n name: 'RetentionPolicy',\n title: '@system-insight:entities.retention-policy.title',\n titlePlural: '@system-insight:entities.retention-policy.plural',\n icon: 'fa-light fa-calendar-clock',\n },\n dashboardWidgetConfig: {\n name: 'DashboardWidgetConfig',\n title: '@system-insight:entities.dashboard-widget-config.title',\n titlePlural: '@system-insight:entities.dashboard-widget-config.plural',\n icon: 'fa-light fa-grid-2',\n },\n },\n} as const;\n","/** Registry key for Trace Timeline custom entity page (tab on TraceEntry). */\r\nexport const TRACE_TIMELINE_PAGE_COMPONENT_KEY = 'trace-timeline-page';\r\n\r\n/** Registry key for Trace Flow chart custom entity page (tab on TraceEntry). */\r\nexport const TRACE_FLOW_PAGE_COMPONENT_KEY = 'trace-flow-page';\r\n","//#region ---- Contracts barrel ----\r\n\r\nexport * from './menu.keys';\r\nexport * from './permission.keys';\r\nexport * from './settings.keys';\r\nexport * from './server-commands';\r\nexport * from './queries.keys';\r\nexport * from './commands.keys';\r\nexport * from './dto';\r\n\r\nexport * from './root-config';\r\nexport * from './trace-timeline-page.component-key';\r\n\r\n//#endregion\r\n\r\nexport * from './entities';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -258,7 +258,7 @@ class AXMTraceTimelinePageComponent extends AXPPageLayoutBaseComponent {
258
258
  </div>
259
259
  </div>
260
260
  </ng-template>
261
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i3.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i3.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "hasTitle", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXProgressBarModule }, { kind: "component", type: i5.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
261
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXBadgeModule }, { kind: "component", type: i1.AXBadgeComponent, selector: "ax-badge", inputs: ["color", "look", "text"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "ngmodule", type: AXDataTableModule }, { kind: "component", type: i3.AXDataTableComponent, selector: "ax-data-table", inputs: ["dataSource", "selectedRows", "parentField", "hasChildrenField", "rowDetailsTemplate", "rowCssClass", "cellCssClass", "highlightText", "look", "rowTemplate", "emptyTemplate", "noDataTemplate", "alternative", "showHeader", "fixedHeader", "showFooter", "fixedFooter", "itemHeight", "allowReordering", "paging", "fetchDataMode", "loading", "focusedRow"], outputs: ["selectedRowsChange", "focusedRowChange", "onRowClick", "onRowDbClick", "onColumnsOrderChanged", "onColumnSizeChanged", "onPageChanged"] }, { kind: "component", type: i3.AXDataTableTextColumnComponent, selector: "ax-text-column", inputs: ["width", "caption", "allowSorting", "allowResizing", "fixed", "hasTitle", "customExpandIcon", "customCollapseIcon", "dataField", "expandHandler", "wrapText", "translate", "cellTemplate", "footerTemplate", "headerTemplate", "format", "formatOptions"] }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXProgressBarModule }, { kind: "component", type: i5.AXProgressBarComponent, selector: "ax-progress-bar", inputs: ["color", "mode", "progress", "height"], outputs: ["ValueChange", "sizeChange"] }, { kind: "ngmodule", type: AXTranslationModule }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
262
262
  }
263
263
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: AXMTraceTimelinePageComponent, decorators: [{
264
264
  type: Component,
@@ -705,4 +705,4 @@ var traceFlowPage_component = /*#__PURE__*/Object.freeze({
705
705
  });
706
706
 
707
707
  export { AXMTraceFlowPageComponent, AXMTraceTimelinePageComponent, AXMTraceTimelinePageComponentProvider, buildTraceFlowDiagram, normalizeTraceDisplayValue };
708
- //# sourceMappingURL=acorex-platform-module-system-insight-client-index-D-Sy2f4K.mjs.map
708
+ //# sourceMappingURL=acorex-platform-module-system-insight-client-index-CeO40uWE.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-platform-module-system-insight-client-index-D-Sy2f4K.mjs","sources":["../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-timeline-page-component.provider.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-timeline-page.component.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-diagram.utils.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-display.util.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-page.component.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-page.component.html"],"sourcesContent":["import { AXPPageComponentDefinition, AXPPageComponentProvider } from '@acorex-platform/framework-client/layout/components';\r\nimport {\r\n TRACE_FLOW_PAGE_COMPONENT_KEY,\r\n TRACE_TIMELINE_PAGE_COMPONENT_KEY,\r\n} from '@acorex-platform/module-system-insight-client/contracts';\r\nimport { Injectable } from '@angular/core';\r\n\r\n//#region ---- Trace page providers ----\r\n\r\n@Injectable()\r\nexport class AXMTraceTimelinePageComponentProvider implements AXPPageComponentProvider {\r\n async components(): Promise<AXPPageComponentDefinition[]> {\r\n return [\r\n {\r\n key: TRACE_TIMELINE_PAGE_COMPONENT_KEY,\r\n loader: () =>\r\n import('./trace-timeline-page.component').then((m) => m.AXMTraceTimelinePageComponent),\r\n },\r\n {\r\n key: TRACE_FLOW_PAGE_COMPONENT_KEY,\r\n loader: () => import('./trace-flow-page.component').then((m) => m.AXMTraceFlowPageComponent),\r\n },\r\n ];\r\n }\r\n}\r\n\r\n//#endregion\r\n","import { convertArrayToDataSource } from '@acorex/cdk/common';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataTableModule } from '@acorex/components/data-table';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXPQueryExecutor } from '@acorex-platform/framework-client/runtime';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\n//#region ---- Types ----\n\ntype TimelineSpanRow = TraceSpanDto & {\n offsetPercent: number;\n widthPercent: number;\n durationShare: number;\n};\n\n//#endregion\n\n/**\n * TraceEntry detail tab — same hosting pattern as workflow Activities / RuleSet Simulate.\n * Chrome comes from entity details; content uses ACOREX controls only.\n */\n@Component({\n selector: 'axm-trace-timeline-page',\n standalone: true,\n imports: [\n CommonModule,\n AXBadgeModule,\n AXButtonModule,\n AXDataTableModule,\n AXLoadingModule,\n AXProgressBarModule,\n AXTranslationModule,\n ],\n template: `\n <div class=\"axm-trace-timeline flex flex-col gap-4 p-4 w-full min-h-0\">\n @if (loading()) {\n <div class=\"flex justify-center py-10\">\n <ax-loading />\n </div>\n } @else if (timeline(); as data) {\n <div class=\"flex flex-wrap items-center gap-2\">\n <ax-badge [text]=\"spanCountBadge()\" color=\"primary\" size=\"sm\"></ax-badge>\n @for (service of data.services; track service) {\n <ax-badge [text]=\"service\" color=\"secondary\" size=\"sm\"></ax-badge>\n }\n <span class=\"text-sm text-muted ms-auto\">\n {{ '@system-insight:pages.trace-timeline.duration' | translate | async }}:\n {{ data.duration }} ms\n </span>\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"('@system-insight:pages.trace-timeline.view-logs' | translate | async) || ''\"\n (onClick)=\"goToRelatedLogs()\"\n ></ax-button>\n </div>\n\n <ax-data-table\n class=\"w-full border border-lightest rounded-md overflow-hidden\"\n [paging]=\"false\"\n [dataSource]=\"dataSource()\"\n >\n <ax-text-column\n dataField=\"operationName\"\n [caption]=\"'@system-insight:fields.operation' | translate | async\"\n [width]=\"'200px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"serviceName\"\n [caption]=\"'@system-insight:fields.service-name' | translate | async\"\n [width]=\"'140px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"status\"\n [caption]=\"'@system-insight:fields.status' | translate | async\"\n [width]=\"'100px'\"\n [cellTemplate]=\"statusTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"duration\"\n [caption]=\"'@system-insight:fields.duration' | translate | async\"\n [width]=\"'110px'\"\n [cellTemplate]=\"durationTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"durationShare\"\n [caption]=\"'@system-insight:pages.trace-timeline.timeline' | translate | async\"\n [width]=\"'280px'\"\n [cellTemplate]=\"timelineTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"spanId\"\n [caption]=\"'@system-insight:fields.span-id' | translate | async\"\n [width]=\"'180px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n </ax-data-table>\n } @else {\n <p class=\"text-sm text-muted p-2\">\n {{ '@system-insight:pages.trace-timeline.not-found' | translate | async }}\n </p>\n }\n </div>\n\n <ng-template #statusTpl let-item>\n <ax-badge\n [text]=\"item.data?.status || 'ok'\"\n [color]=\"item.data?.status === 'error' ? 'danger' : 'success'\"\n size=\"sm\"\n ></ax-badge>\n </ng-template>\n\n <ng-template #durationTpl let-item>{{ item.data?.duration ?? 0 }} ms</ng-template>\n\n <ng-template #timelineTpl let-item>\n <div class=\"flex w-full items-center gap-0 py-1\">\n <div class=\"shrink-0\" [style.width.%]=\"item.data?.offsetPercent ?? 0\"></div>\n <div class=\"min-w-0\" [style.width.%]=\"item.data?.widthPercent ?? 3\">\n <ax-progress-bar\n [progress]=\"100\"\n [color]=\"item.data?.status === 'error' ? 'danger' : 'primary'\"\n [style.height.px]=\"10\"\n ></ax-progress-bar>\n </div>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMTraceTimelinePageComponent,\n },\n ],\n host: { class: 'axm-trace-timeline-page block w-full min-h-0' },\n})\nexport class AXMTraceTimelinePageComponent extends AXPPageLayoutBaseComponent {\n private readonly queryExecutor = inject(AXPQueryExecutor);\n private readonly translationService = inject(AXTranslationService);\n\n /** Entity record from TraceEntry detail host. */\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n readonly loading = signal(true);\n readonly timeline = signal<TraceTimelineDto | null>(null);\n readonly spanRows = signal<TimelineSpanRow[]>([]);\n readonly spansLabel = signal('Spans');\n\n readonly spanCountBadge = computed(() => `${this.spanRows().length} ${this.spansLabel()}`);\n\n readonly dataSource = signal(convertArrayToDataSource<TimelineSpanRow>([], { key: 'id', pageSize: 100 }));\n\n readonly traceId = computed(() => {\n const ctx = this.rootContext() ?? {};\n const fromTraceId = typeof ctx['traceId'] === 'string' ? ctx['traceId'].trim() : '';\n if (fromTraceId) {\n return fromTraceId;\n }\n const fromId = typeof ctx['id'] === 'string' ? ctx['id'].trim() : '';\n return fromId;\n });\n\n #loadEffect = effect(() => {\n const id = this.traceId();\n void this.loadTimeline(id);\n });\n\n constructor() {\n super();\n void this.translationService\n .translateAsync('@system-insight:pages.trace-timeline.spans')\n .then((label) => this.spansLabel.set(label));\n }\n\n override async getPageTitle(): Promise<string> {\n return this.translationService.translateAsync('@system-insight:pages.trace-timeline.title');\n }\n\n goToRelatedLogs(): void {\n const traceId = this.timeline()?.traceId ?? this.traceId();\n if (!traceId) {\n return;\n }\n const app = this.sessionService.application?.name;\n if (!app) {\n return;\n }\n void this.router.navigate([`/${app}/m/SystemInsight/e/LogEntry/list`], {\n queryParams: { traceId },\n });\n }\n\n private async loadTimeline(traceId: string): Promise<void> {\n if (!traceId) {\n this.timeline.set(null);\n this.spanRows.set([]);\n this.dataSource.set(convertArrayToDataSource<TimelineSpanRow>([], { key: 'id', pageSize: 100 }));\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n try {\n const result = await this.queryExecutor.fetch<string, TraceTimelineDto>(\n 'SystemInsight:TraceTimeline:Get',\n traceId,\n );\n const timeline = runtimeQueryPayloadData(result) ?? null;\n const rows = this.buildSpanRows(timeline);\n this.timeline.set(timeline);\n this.spanRows.set(rows);\n this.dataSource.set(convertArrayToDataSource(rows, { key: 'id', pageSize: 100 }));\n this.recompute();\n } finally {\n this.loading.set(false);\n }\n }\n\n private buildSpanRows(timeline: TraceTimelineDto | null | undefined): TimelineSpanRow[] {\n if (!timeline?.spans?.length) {\n return [];\n }\n\n const spanStarts = timeline.spans\n .map((span) => Date.parse(span.startTime))\n .filter((value) => Number.isFinite(value));\n const rootStart = spanStarts.length ? Math.min(...spanStarts) : Date.parse(timeline.startTime) || 0;\n const maxEnd = Math.max(\n ...timeline.spans.map((span) => {\n const start = Date.parse(span.startTime);\n const startMs = Number.isFinite(start) ? start : rootStart;\n return startMs + (span.duration || 0);\n }),\n rootStart + (timeline.duration || 0),\n );\n const total = Math.max(maxEnd - rootStart, timeline.duration || 1, 1);\n\n return timeline.spans.map((span) => {\n const start = Date.parse(span.startTime);\n const offsetMs = Number.isFinite(start) ? Math.max(0, start - rootStart) : 0;\n const widthPercent = Math.max(3, Math.min(100, ((span.duration || 0) / total) * 100));\n const offsetPercent = Math.max(0, Math.min(100 - widthPercent, (offsetMs / total) * 100));\n return {\n ...span,\n offsetPercent,\n widthPercent,\n durationShare: span.duration ?? 0,\n };\n });\n }\n}\n","//#region ---- Imports ----\n\nimport {\n arrangeWorkflowDiagram,\n type AXPWorkflowDiagramModel,\n type AXPWorkflowNode,\n type AXPWorkflowSemanticColor,\n} from '@acorex-platform/module-platform-management-client';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst DEFAULT_NODE_W = 220;\nconst DEFAULT_NODE_H = 88;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction spanTitle(span: TraceSpanDto): string {\n if (span.middlewareName) {\n return span.middlewareName;\n }\n return span.operationName;\n}\n\nfunction spanSubtitle(span: TraceSpanDto): string {\n const parts: string[] = [];\n if (span.spanKind) {\n parts.push(span.spanKind);\n }\n if (span.duration != null) {\n parts.push(`${span.duration} ms`);\n }\n if (span.nextMiddleware) {\n parts.push(`→ ${span.nextMiddleware}`);\n }\n return parts.join(' · ');\n}\n\nfunction statusColors(status: string | undefined): {\n color?: AXPWorkflowSemanticColor;\n borderColor?: AXPWorkflowSemanticColor;\n} {\n if (status === 'error') {\n return { color: 'danger', borderColor: 'danger' };\n }\n if (status === 'running') {\n return { color: 'warning', borderColor: 'warning' };\n }\n return { borderColor: 'success' };\n}\n\nfunction sortSpans(spans: TraceSpanDto[]): TraceSpanDto[] {\n return [...spans].sort((a, b) => {\n const aStart = Date.parse(a.startTime) || 0;\n const bStart = Date.parse(b.startTime) || 0;\n if (aStart !== bStart) {\n return aStart - bStart;\n }\n return (a.order ?? 0) - (b.order ?? 0);\n });\n}\n\n//#endregion\n\n//#region ---- Builder ----\n\nexport function buildTraceFlowDiagram(timeline: TraceTimelineDto | null | undefined): AXPWorkflowDiagramModel | null {\n if (!timeline?.spans?.length) {\n return null;\n }\n\n const spans = sortSpans(timeline.spans);\n const nodes: AXPWorkflowNode[] = spans.map((span, index) => {\n const colors = statusColors(span.status);\n return {\n id: span.spanId,\n type: span.spanKind ?? 'span',\n title: spanTitle(span),\n icon:\n span.spanKind === 'middleware'\n ? 'fa-light fa-layer-group'\n : span.spanKind === 'backend'\n ? 'fa-light fa-database'\n : 'fa-light fa-play',\n shape: 'rounded-rectangle',\n position: { x: index * 280, y: 40 },\n size: { width: DEFAULT_NODE_W, height: DEFAULT_NODE_H },\n inboundPorts: [{ id: `${span.spanId}:in`, kind: 'inbound', side: 'left', ratio: 0.5 }],\n outboundPorts: [{ id: `${span.spanId}:out`, kind: 'outbound', side: 'right', ratio: 0.5 }],\n readonly: true,\n color: colors.color as AXPWorkflowSemanticColor | undefined,\n borderColor: colors.borderColor as AXPWorkflowSemanticColor | undefined,\n data: {\n subtitle: spanSubtitle(span),\n span,\n },\n };\n });\n\n const spanIds = new Set(spans.map((span) => span.spanId));\n const connectors = spans\n .filter((span) => span.parentSpanId && spanIds.has(span.parentSpanId))\n .map((span) => ({\n id: `${span.parentSpanId}->${span.spanId}`,\n sourceNodeId: span.parentSpanId!,\n sourcePortId: `${span.parentSpanId}:out`,\n targetNodeId: span.spanId,\n targetPortId: `${span.spanId}:in`,\n readonly: true,\n borderColor: (span.status === 'error' ? 'danger' : 'primary') as AXPWorkflowSemanticColor,\n }));\n\n // Fallback linear chain when parent links are missing\n if (!connectors.length && nodes.length > 1) {\n for (let i = 0; i < nodes.length - 1; i += 1) {\n connectors.push({\n id: `${nodes[i].id}->${nodes[i + 1].id}`,\n sourceNodeId: nodes[i].id,\n sourcePortId: `${nodes[i].id}:out`,\n targetNodeId: nodes[i + 1].id,\n targetPortId: `${nodes[i + 1].id}:in`,\n readonly: true,\n borderColor: 'primary' as AXPWorkflowSemanticColor,\n });\n }\n }\n\n return arrangeWorkflowDiagram(\n {\n nodes,\n connectors,\n data: {\n traceId: timeline.traceId,\n kind: timeline.kind,\n operation: timeline.operation,\n },\n },\n { direction: 'horizontal' },\n );\n}\n\n//#endregion\n","//#region ---- Trace flow display normalization ----\n\n/**\n * Prepares a value for the Trace Flow detail viewer:\n * - plain string → unchanged\n * - JSON string → parsed object/array (recursively)\n * - object/array → nested JSON strings expanded\n */\nexport function normalizeTraceDisplayValue(value: unknown, depth = 0): unknown {\n if (depth > 8) {\n return value;\n }\n\n if (typeof value === 'string') {\n return tryParseJsonString(value, depth);\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeTraceDisplayValue(entry, depth + 1));\n }\n\n if (value && typeof value === 'object') {\n const result: Record<string, unknown> = {};\n for (const [key, entry] of Object.entries(value as Record<string, unknown>)) {\n result[key] = normalizeTraceDisplayValue(entry, depth + 1);\n }\n return result;\n }\n\n return value;\n}\n\nfunction tryParseJsonString(value: string, depth: number): unknown {\n const trimmed = value.trim();\n if (!trimmed) {\n return value;\n }\n\n const looksLikeJson =\n (trimmed.startsWith('{') && trimmed.endsWith('}')) ||\n (trimmed.startsWith('[') && trimmed.endsWith(']')) ||\n ((trimmed.startsWith('\"') && trimmed.endsWith('\"')) && trimmed.length > 1);\n\n if (!looksLikeJson) {\n return value;\n }\n\n try {\n const parsed = JSON.parse(trimmed) as unknown;\n return normalizeTraceDisplayValue(parsed, depth + 1);\n } catch {\n return value;\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXPQueryExecutor } from '@acorex-platform/framework-client/runtime';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\nimport {\n AXPWorkflowDesignerComponent,\n type AXPWorkflowDiagramModel,\n type AXPWorkflowNode,\n} from '@acorex-platform/module-platform-management-client';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { buildTraceFlowDiagram } from './trace-flow-diagram.utils';\nimport { normalizeTraceDisplayValue } from './trace-flow-display.util';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * TraceEntry detail tab — readonly flow chart of spans (middleware chain),\n * same hosting pattern as Timeline / workflow history Visual.\n */\n@Component({\n selector: 'axm-trace-flow-page',\n standalone: true,\n imports: [\n CommonModule,\n AXBadgeModule,\n AXLoadingModule,\n AXTranslationModule,\n AXPWorkflowDesignerComponent,\n ],\n templateUrl: './trace-flow-page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMTraceFlowPageComponent,\n },\n ],\n host: { class: 'axm-trace-flow-page block w-full min-h-0' },\n})\nexport class AXMTraceFlowPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly queryExecutor = inject(AXPQueryExecutor);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Inputs ----\n\n /** Entity record from TraceEntry detail host. */\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- State Signals ----\n\n readonly loading = signal(true);\n readonly timeline = signal<TraceTimelineDto | null>(null);\n readonly selectedSpan = signal<TraceSpanDto | null>(null);\n\n readonly diagram = computed<AXPWorkflowDiagramModel | null>(() =>\n buildTraceFlowDiagram(this.timeline()),\n );\n\n readonly highlightedNodeIds = computed(() => {\n const id = this.selectedSpan()?.spanId;\n return id ? [id] : [];\n });\n\n readonly traceId = computed(() => {\n const ctx = this.rootContext() ?? {};\n const fromTraceId = typeof ctx['traceId'] === 'string' ? ctx['traceId'].trim() : '';\n if (fromTraceId) {\n return fromTraceId;\n }\n const fromId = typeof ctx['id'] === 'string' ? ctx['id'].trim() : '';\n return fromId;\n });\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n #loadEffect = effect(() => {\n const id = this.traceId();\n void this.loadTimeline(id);\n });\n\n //#endregion\n\n //#region ---- Page metadata ----\n\n override async getPageTitle(): Promise<string> {\n return this.translationService.translateAsync('@system-insight:pages.trace-flow.title');\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n onNodeClick(event: { node: AXPWorkflowNode }): void {\n const nodeId = event.node.id;\n const fromData = event.node.data?.['span'] as TraceSpanDto | undefined;\n const fromTimeline = this.timeline()?.spans?.find(\n (span) => span.spanId === nodeId || span.id === nodeId,\n );\n this.selectedSpan.set(fromData ?? fromTimeline ?? null);\n this.recompute();\n }\n\n hasValue(value: unknown): boolean {\n if (value === undefined || value === null) {\n return false;\n }\n if (typeof value === 'string') {\n return value.trim().length > 0;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object') {\n return Object.keys(value as Record<string, unknown>).length > 0;\n }\n return true;\n }\n\n /**\n * Display rules:\n * - plain string → as-is\n * - JSON string → parse, then pretty JSON\n * - object/array → pretty JSON (nested JSON strings also expanded)\n */\n formatJson(value: unknown): string {\n const normalized = normalizeTraceDisplayValue(value);\n if (typeof normalized === 'string') {\n return normalized;\n }\n try {\n return JSON.stringify(normalized, null, 2);\n } catch {\n return String(value);\n }\n }\n\n //#endregion\n\n //#region ---- Data Loading ----\n\n private async loadTimeline(traceId: string): Promise<void> {\n if (!traceId) {\n this.timeline.set(null);\n this.selectedSpan.set(null);\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n try {\n const result = await this.queryExecutor.fetch<string, TraceTimelineDto>(\n 'SystemInsight:TraceTimeline:Get',\n traceId,\n );\n const timeline = runtimeQueryPayloadData(result) ?? null;\n this.timeline.set(timeline);\n this.selectedSpan.set(timeline?.spans?.[0] ?? null);\n this.recompute();\n } finally {\n this.loading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Trace flow chart page ----- -->\n<div class=\"axm-trace-flow flex flex-col gap-4 p-4 w-full min-h-0 h-full\">\n @if (loading()) {\n <!-- ----- Loading indicator while timeline is fetched ----- -->\n <div class=\"flex justify-center py-10\">\n <ax-loading />\n </div>\n }\n <!-- ----- Empty state when timeline is missing ----- -->\n @else if (!timeline()) {\n <p class=\"typo-caption text-muted\">\n {{ '@system-insight:pages.trace-flow.not-found' | translate | async }}\n </p>\n }\n <!-- ----- Flow chart + span details ----- -->\n @else {\n <div class=\"flex flex-wrap items-center gap-2\">\n @if (timeline()?.kind; as kind) {\n <ax-badge [text]=\"kind\" color=\"primary\" size=\"sm\"></ax-badge>\n }\n @if (timeline()?.operation; as operation) {\n <span class=\"text-sm\">{{ operation }}</span>\n }\n <span class=\"text-sm text-muted ms-auto\">\n {{ '@system-insight:pages.trace-flow.duration' | translate | async }}:\n {{ timeline()?.duration }} ms\n </span>\n </div>\n\n <div class=\"axm-trace-flow__canvas border border-lightest rounded-md overflow-hidden min-h-[360px] flex-1\">\n @if (diagram(); as model) {\n <!-- ----- Readonly span flow chart ----- -->\n <axp-workflow-designer\n [model]=\"model\"\n [readonly]=\"true\"\n [showPortLabels]=\"false\"\n [highlightedNodeIds]=\"highlightedNodeIds()\"\n (nodeClick)=\"onNodeClick($event)\"\n />\n }\n <!-- ----- Empty diagram fallback ----- -->\n @else {\n <p class=\"typo-caption text-muted p-4\">\n {{ '@system-insight:pages.trace-flow.empty' | translate | async }}\n </p>\n }\n </div>\n\n @if (selectedSpan(); as span) {\n <!-- ----- Selected span details (metadata + IO) ----- -->\n <div class=\"border border-lightest rounded-md p-4 flex flex-col gap-4\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <strong class=\"text-base\">{{ span.operationName }}</strong>\n @if (span.spanKind) {\n <ax-badge [text]=\"span.spanKind\" color=\"primary\" size=\"sm\"></ax-badge>\n }\n @if (span.middlewareName) {\n <ax-badge [text]=\"span.middlewareName\" color=\"secondary\" size=\"sm\"></ax-badge>\n }\n @if (span.status) {\n <ax-badge\n [text]=\"span.status\"\n [color]=\"span.status === 'error' ? 'danger' : 'success'\"\n size=\"sm\"\n ></ax-badge>\n }\n </div>\n\n <!-- ----- Span metadata grid ----- -->\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3 text-sm\">\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.span-id' | translate | async }}\n </div>\n <div class=\"font-mono break-all\">{{ span.spanId }}</div>\n </div>\n @if (span.parentSpanId) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.parent-span-id' | translate | async }}\n </div>\n <div class=\"font-mono break-all\">{{ span.parentSpanId }}</div>\n </div>\n }\n @if (span.serviceName) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.service-name' | translate | async }}\n </div>\n <div>{{ span.serviceName }}</div>\n </div>\n }\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.duration' | translate | async }}\n </div>\n <div>{{ span.duration ?? 0 }} ms</div>\n </div>\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.start-time' | translate | async }}\n </div>\n <div>{{ span.startTime }}</div>\n </div>\n @if (span.order != null) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.order' | translate | async }}\n </div>\n <div>{{ span.order }}</div>\n </div>\n }\n @if (span.nextMiddleware) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.next-middleware' | translate | async }}\n </div>\n <div>{{ span.nextMiddleware }}</div>\n </div>\n }\n </div>\n\n @if (span.error) {\n <!-- ----- Span error ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1 text-danger\">\n {{ '@system-insight:fields.error' | translate | async }}\n </div>\n <pre class=\"text-sm whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-40\">{{\n span.error\n }}</pre>\n </div>\n }\n\n <!-- ----- Input snapshot (always visible) ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.input' | translate | async }}\n </div>\n @if (hasValue(span.input)) {\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.input)\n }}</pre>\n }\n @else {\n <p class=\"typo-caption text-muted m-0\">\n {{ '@system-insight:pages.trace-flow.no-input' | translate | async }}\n </p>\n }\n </div>\n\n <!-- ----- Output snapshot (always visible) ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.output' | translate | async }}\n </div>\n @if (hasValue(span.output)) {\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.output)\n }}</pre>\n }\n @else {\n <p class=\"typo-caption text-muted m-0\">\n {{ '@system-insight:pages.trace-flow.no-output' | translate | async }}\n </p>\n }\n </div>\n\n @if (hasValue(span.tags)) {\n <!-- ----- Span tags / attributes ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.attributes' | translate | async }}\n </div>\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.tags)\n }}</pre>\n </div>\n }\n\n @if (span.logs?.length) {\n <!-- ----- Span logs / events ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.events' | translate | async }}\n </div>\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.logs)\n }}</pre>\n </div>\n }\n </div>\n }\n }\n</div>\n"],"names":["i2","i3","i4"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-platform-module-system-insight-client-index-CeO40uWE.mjs","sources":["../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-timeline-page-component.provider.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-timeline-page.component.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-diagram.utils.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-display.util.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-page.component.ts","../../../../libs/modules/system-insight/client/src/lib/features/traces/trace-flow-page.component.html"],"sourcesContent":["import { AXPPageComponentDefinition, AXPPageComponentProvider } from '@acorex-platform/framework-client/layout/components';\r\nimport {\r\n TRACE_FLOW_PAGE_COMPONENT_KEY,\r\n TRACE_TIMELINE_PAGE_COMPONENT_KEY,\r\n} from '@acorex-platform/module-system-insight-client/contracts';\r\nimport { Injectable } from '@angular/core';\r\n\r\n//#region ---- Trace page providers ----\r\n\r\n@Injectable()\r\nexport class AXMTraceTimelinePageComponentProvider implements AXPPageComponentProvider {\r\n async components(): Promise<AXPPageComponentDefinition[]> {\r\n return [\r\n {\r\n key: TRACE_TIMELINE_PAGE_COMPONENT_KEY,\r\n loader: () =>\r\n import('./trace-timeline-page.component').then((m) => m.AXMTraceTimelinePageComponent),\r\n },\r\n {\r\n key: TRACE_FLOW_PAGE_COMPONENT_KEY,\r\n loader: () => import('./trace-flow-page.component').then((m) => m.AXMTraceFlowPageComponent),\r\n },\r\n ];\r\n }\r\n}\r\n\r\n//#endregion\r\n","import { convertArrayToDataSource } from '@acorex/cdk/common';\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXDataTableModule } from '@acorex/components/data-table';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXProgressBarModule } from '@acorex/components/progress-bar';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXPQueryExecutor } from '@acorex-platform/framework-client/runtime';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\n\n//#region ---- Types ----\n\ntype TimelineSpanRow = TraceSpanDto & {\n offsetPercent: number;\n widthPercent: number;\n durationShare: number;\n};\n\n//#endregion\n\n/**\n * TraceEntry detail tab — same hosting pattern as workflow Activities / RuleSet Simulate.\n * Chrome comes from entity details; content uses ACOREX controls only.\n */\n@Component({\n selector: 'axm-trace-timeline-page',\n standalone: true,\n imports: [\n CommonModule,\n AXBadgeModule,\n AXButtonModule,\n AXDataTableModule,\n AXLoadingModule,\n AXProgressBarModule,\n AXTranslationModule,\n ],\n template: `\n <div class=\"axm-trace-timeline flex flex-col gap-4 p-4 w-full min-h-0\">\n @if (loading()) {\n <div class=\"flex justify-center py-10\">\n <ax-loading />\n </div>\n } @else if (timeline(); as data) {\n <div class=\"flex flex-wrap items-center gap-2\">\n <ax-badge [text]=\"spanCountBadge()\" color=\"primary\" size=\"sm\"></ax-badge>\n @for (service of data.services; track service) {\n <ax-badge [text]=\"service\" color=\"secondary\" size=\"sm\"></ax-badge>\n }\n <span class=\"text-sm text-muted ms-auto\">\n {{ '@system-insight:pages.trace-timeline.duration' | translate | async }}:\n {{ data.duration }} ms\n </span>\n <ax-button\n look=\"outline\"\n color=\"primary\"\n [text]=\"('@system-insight:pages.trace-timeline.view-logs' | translate | async) || ''\"\n (onClick)=\"goToRelatedLogs()\"\n ></ax-button>\n </div>\n\n <ax-data-table\n class=\"w-full border border-lightest rounded-md overflow-hidden\"\n [paging]=\"false\"\n [dataSource]=\"dataSource()\"\n >\n <ax-text-column\n dataField=\"operationName\"\n [caption]=\"'@system-insight:fields.operation' | translate | async\"\n [width]=\"'200px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"serviceName\"\n [caption]=\"'@system-insight:fields.service-name' | translate | async\"\n [width]=\"'140px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"status\"\n [caption]=\"'@system-insight:fields.status' | translate | async\"\n [width]=\"'100px'\"\n [cellTemplate]=\"statusTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"duration\"\n [caption]=\"'@system-insight:fields.duration' | translate | async\"\n [width]=\"'110px'\"\n [cellTemplate]=\"durationTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"durationShare\"\n [caption]=\"'@system-insight:pages.trace-timeline.timeline' | translate | async\"\n [width]=\"'280px'\"\n [cellTemplate]=\"timelineTpl\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n <ax-text-column\n dataField=\"spanId\"\n [caption]=\"'@system-insight:fields.span-id' | translate | async\"\n [width]=\"'180px'\"\n [allowResizing]=\"true\"\n ></ax-text-column>\n </ax-data-table>\n } @else {\n <p class=\"text-sm text-muted p-2\">\n {{ '@system-insight:pages.trace-timeline.not-found' | translate | async }}\n </p>\n }\n </div>\n\n <ng-template #statusTpl let-item>\n <ax-badge\n [text]=\"item.data?.status || 'ok'\"\n [color]=\"item.data?.status === 'error' ? 'danger' : 'success'\"\n size=\"sm\"\n ></ax-badge>\n </ng-template>\n\n <ng-template #durationTpl let-item>{{ item.data?.duration ?? 0 }} ms</ng-template>\n\n <ng-template #timelineTpl let-item>\n <div class=\"flex w-full items-center gap-0 py-1\">\n <div class=\"shrink-0\" [style.width.%]=\"item.data?.offsetPercent ?? 0\"></div>\n <div class=\"min-w-0\" [style.width.%]=\"item.data?.widthPercent ?? 3\">\n <ax-progress-bar\n [progress]=\"100\"\n [color]=\"item.data?.status === 'error' ? 'danger' : 'primary'\"\n [style.height.px]=\"10\"\n ></ax-progress-bar>\n </div>\n </div>\n </ng-template>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMTraceTimelinePageComponent,\n },\n ],\n host: { class: 'axm-trace-timeline-page block w-full min-h-0' },\n})\nexport class AXMTraceTimelinePageComponent extends AXPPageLayoutBaseComponent {\n private readonly queryExecutor = inject(AXPQueryExecutor);\n private readonly translationService = inject(AXTranslationService);\n\n /** Entity record from TraceEntry detail host. */\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n readonly loading = signal(true);\n readonly timeline = signal<TraceTimelineDto | null>(null);\n readonly spanRows = signal<TimelineSpanRow[]>([]);\n readonly spansLabel = signal('Spans');\n\n readonly spanCountBadge = computed(() => `${this.spanRows().length} ${this.spansLabel()}`);\n\n readonly dataSource = signal(convertArrayToDataSource<TimelineSpanRow>([], { key: 'id', pageSize: 100 }));\n\n readonly traceId = computed(() => {\n const ctx = this.rootContext() ?? {};\n const fromTraceId = typeof ctx['traceId'] === 'string' ? ctx['traceId'].trim() : '';\n if (fromTraceId) {\n return fromTraceId;\n }\n const fromId = typeof ctx['id'] === 'string' ? ctx['id'].trim() : '';\n return fromId;\n });\n\n #loadEffect = effect(() => {\n const id = this.traceId();\n void this.loadTimeline(id);\n });\n\n constructor() {\n super();\n void this.translationService\n .translateAsync('@system-insight:pages.trace-timeline.spans')\n .then((label) => this.spansLabel.set(label));\n }\n\n override async getPageTitle(): Promise<string> {\n return this.translationService.translateAsync('@system-insight:pages.trace-timeline.title');\n }\n\n goToRelatedLogs(): void {\n const traceId = this.timeline()?.traceId ?? this.traceId();\n if (!traceId) {\n return;\n }\n const app = this.sessionService.application?.name;\n if (!app) {\n return;\n }\n void this.router.navigate([`/${app}/m/SystemInsight/e/LogEntry/list`], {\n queryParams: { traceId },\n });\n }\n\n private async loadTimeline(traceId: string): Promise<void> {\n if (!traceId) {\n this.timeline.set(null);\n this.spanRows.set([]);\n this.dataSource.set(convertArrayToDataSource<TimelineSpanRow>([], { key: 'id', pageSize: 100 }));\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n try {\n const result = await this.queryExecutor.fetch<string, TraceTimelineDto>(\n 'SystemInsight:TraceTimeline:Get',\n traceId,\n );\n const timeline = runtimeQueryPayloadData(result) ?? null;\n const rows = this.buildSpanRows(timeline);\n this.timeline.set(timeline);\n this.spanRows.set(rows);\n this.dataSource.set(convertArrayToDataSource(rows, { key: 'id', pageSize: 100 }));\n this.recompute();\n } finally {\n this.loading.set(false);\n }\n }\n\n private buildSpanRows(timeline: TraceTimelineDto | null | undefined): TimelineSpanRow[] {\n if (!timeline?.spans?.length) {\n return [];\n }\n\n const spanStarts = timeline.spans\n .map((span) => Date.parse(span.startTime))\n .filter((value) => Number.isFinite(value));\n const rootStart = spanStarts.length ? Math.min(...spanStarts) : Date.parse(timeline.startTime) || 0;\n const maxEnd = Math.max(\n ...timeline.spans.map((span) => {\n const start = Date.parse(span.startTime);\n const startMs = Number.isFinite(start) ? start : rootStart;\n return startMs + (span.duration || 0);\n }),\n rootStart + (timeline.duration || 0),\n );\n const total = Math.max(maxEnd - rootStart, timeline.duration || 1, 1);\n\n return timeline.spans.map((span) => {\n const start = Date.parse(span.startTime);\n const offsetMs = Number.isFinite(start) ? Math.max(0, start - rootStart) : 0;\n const widthPercent = Math.max(3, Math.min(100, ((span.duration || 0) / total) * 100));\n const offsetPercent = Math.max(0, Math.min(100 - widthPercent, (offsetMs / total) * 100));\n return {\n ...span,\n offsetPercent,\n widthPercent,\n durationShare: span.duration ?? 0,\n };\n });\n }\n}\n","//#region ---- Imports ----\n\nimport {\n arrangeWorkflowDiagram,\n type AXPWorkflowDiagramModel,\n type AXPWorkflowNode,\n type AXPWorkflowSemanticColor,\n} from '@acorex-platform/module-platform-management-client';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\n\n//#endregion\n\n//#region ---- Constants ----\n\nconst DEFAULT_NODE_W = 220;\nconst DEFAULT_NODE_H = 88;\n\n//#endregion\n\n//#region ---- Helpers ----\n\nfunction spanTitle(span: TraceSpanDto): string {\n if (span.middlewareName) {\n return span.middlewareName;\n }\n return span.operationName;\n}\n\nfunction spanSubtitle(span: TraceSpanDto): string {\n const parts: string[] = [];\n if (span.spanKind) {\n parts.push(span.spanKind);\n }\n if (span.duration != null) {\n parts.push(`${span.duration} ms`);\n }\n if (span.nextMiddleware) {\n parts.push(`→ ${span.nextMiddleware}`);\n }\n return parts.join(' · ');\n}\n\nfunction statusColors(status: string | undefined): {\n color?: AXPWorkflowSemanticColor;\n borderColor?: AXPWorkflowSemanticColor;\n} {\n if (status === 'error') {\n return { color: 'danger', borderColor: 'danger' };\n }\n if (status === 'running') {\n return { color: 'warning', borderColor: 'warning' };\n }\n return { borderColor: 'success' };\n}\n\nfunction sortSpans(spans: TraceSpanDto[]): TraceSpanDto[] {\n return [...spans].sort((a, b) => {\n const aStart = Date.parse(a.startTime) || 0;\n const bStart = Date.parse(b.startTime) || 0;\n if (aStart !== bStart) {\n return aStart - bStart;\n }\n return (a.order ?? 0) - (b.order ?? 0);\n });\n}\n\n//#endregion\n\n//#region ---- Builder ----\n\nexport function buildTraceFlowDiagram(timeline: TraceTimelineDto | null | undefined): AXPWorkflowDiagramModel | null {\n if (!timeline?.spans?.length) {\n return null;\n }\n\n const spans = sortSpans(timeline.spans);\n const nodes: AXPWorkflowNode[] = spans.map((span, index) => {\n const colors = statusColors(span.status);\n return {\n id: span.spanId,\n type: span.spanKind ?? 'span',\n title: spanTitle(span),\n icon:\n span.spanKind === 'middleware'\n ? 'fa-light fa-layer-group'\n : span.spanKind === 'backend'\n ? 'fa-light fa-database'\n : 'fa-light fa-play',\n shape: 'rounded-rectangle',\n position: { x: index * 280, y: 40 },\n size: { width: DEFAULT_NODE_W, height: DEFAULT_NODE_H },\n inboundPorts: [{ id: `${span.spanId}:in`, kind: 'inbound', side: 'left', ratio: 0.5 }],\n outboundPorts: [{ id: `${span.spanId}:out`, kind: 'outbound', side: 'right', ratio: 0.5 }],\n readonly: true,\n color: colors.color as AXPWorkflowSemanticColor | undefined,\n borderColor: colors.borderColor as AXPWorkflowSemanticColor | undefined,\n data: {\n subtitle: spanSubtitle(span),\n span,\n },\n };\n });\n\n const spanIds = new Set(spans.map((span) => span.spanId));\n const connectors = spans\n .filter((span) => span.parentSpanId && spanIds.has(span.parentSpanId))\n .map((span) => ({\n id: `${span.parentSpanId}->${span.spanId}`,\n sourceNodeId: span.parentSpanId!,\n sourcePortId: `${span.parentSpanId}:out`,\n targetNodeId: span.spanId,\n targetPortId: `${span.spanId}:in`,\n readonly: true,\n borderColor: (span.status === 'error' ? 'danger' : 'primary') as AXPWorkflowSemanticColor,\n }));\n\n // Fallback linear chain when parent links are missing\n if (!connectors.length && nodes.length > 1) {\n for (let i = 0; i < nodes.length - 1; i += 1) {\n connectors.push({\n id: `${nodes[i].id}->${nodes[i + 1].id}`,\n sourceNodeId: nodes[i].id,\n sourcePortId: `${nodes[i].id}:out`,\n targetNodeId: nodes[i + 1].id,\n targetPortId: `${nodes[i + 1].id}:in`,\n readonly: true,\n borderColor: 'primary' as AXPWorkflowSemanticColor,\n });\n }\n }\n\n return arrangeWorkflowDiagram(\n {\n nodes,\n connectors,\n data: {\n traceId: timeline.traceId,\n kind: timeline.kind,\n operation: timeline.operation,\n },\n },\n { direction: 'horizontal' },\n );\n}\n\n//#endregion\n","//#region ---- Trace flow display normalization ----\n\n/**\n * Prepares a value for the Trace Flow detail viewer:\n * - plain string → unchanged\n * - JSON string → parsed object/array (recursively)\n * - object/array → nested JSON strings expanded\n */\nexport function normalizeTraceDisplayValue(value: unknown, depth = 0): unknown {\n if (depth > 8) {\n return value;\n }\n\n if (typeof value === 'string') {\n return tryParseJsonString(value, depth);\n }\n\n if (Array.isArray(value)) {\n return value.map((entry) => normalizeTraceDisplayValue(entry, depth + 1));\n }\n\n if (value && typeof value === 'object') {\n const result: Record<string, unknown> = {};\n for (const [key, entry] of Object.entries(value as Record<string, unknown>)) {\n result[key] = normalizeTraceDisplayValue(entry, depth + 1);\n }\n return result;\n }\n\n return value;\n}\n\nfunction tryParseJsonString(value: string, depth: number): unknown {\n const trimmed = value.trim();\n if (!trimmed) {\n return value;\n }\n\n const looksLikeJson =\n (trimmed.startsWith('{') && trimmed.endsWith('}')) ||\n (trimmed.startsWith('[') && trimmed.endsWith(']')) ||\n ((trimmed.startsWith('\"') && trimmed.endsWith('\"')) && trimmed.length > 1);\n\n if (!looksLikeJson) {\n return value;\n }\n\n try {\n const parsed = JSON.parse(trimmed) as unknown;\n return normalizeTraceDisplayValue(parsed, depth + 1);\n } catch {\n return value;\n }\n}\n\n//#endregion\n","//#region ---- Imports ----\n\nimport { AXBadgeModule } from '@acorex/components/badge';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule, AXTranslationService } from '@acorex/core/translation';\nimport {\n AXPPageLayoutBase,\n AXPPageLayoutBaseComponent,\n} from '@acorex-platform/framework-client/layout/views';\nimport { AXPQueryExecutor } from '@acorex-platform/framework-client/runtime';\nimport { runtimeQueryPayloadData } from '@acorex-platform/framework-shared/core';\nimport type { TraceSpanDto, TraceTimelineDto } from '@acorex-platform/module-system-insight-client/contracts';\nimport {\n AXPWorkflowDesignerComponent,\n type AXPWorkflowDiagramModel,\n type AXPWorkflowNode,\n} from '@acorex-platform/module-platform-management-client';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n effect,\n inject,\n input,\n signal,\n} from '@angular/core';\nimport { buildTraceFlowDiagram } from './trace-flow-diagram.utils';\nimport { normalizeTraceDisplayValue } from './trace-flow-display.util';\n\n//#endregion\n\n//#region ---- Component ----\n\n/**\n * TraceEntry detail tab — readonly flow chart of spans (middleware chain),\n * same hosting pattern as Timeline / workflow history Visual.\n */\n@Component({\n selector: 'axm-trace-flow-page',\n standalone: true,\n imports: [\n CommonModule,\n AXBadgeModule,\n AXLoadingModule,\n AXTranslationModule,\n AXPWorkflowDesignerComponent,\n ],\n templateUrl: './trace-flow-page.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: AXPPageLayoutBase,\n useExisting: AXMTraceFlowPageComponent,\n },\n ],\n host: { class: 'axm-trace-flow-page block w-full min-h-0' },\n})\nexport class AXMTraceFlowPageComponent extends AXPPageLayoutBaseComponent {\n //#region ---- Services & Dependencies ----\n\n private readonly queryExecutor = inject(AXPQueryExecutor);\n private readonly translationService = inject(AXTranslationService);\n\n //#endregion\n\n //#region ---- Inputs ----\n\n /** Entity record from TraceEntry detail host. */\n rootContext = input<Record<string, unknown>>();\n pageConfig = input<Record<string, unknown>>();\n\n //#endregion\n\n //#region ---- State Signals ----\n\n readonly loading = signal(true);\n readonly timeline = signal<TraceTimelineDto | null>(null);\n readonly selectedSpan = signal<TraceSpanDto | null>(null);\n\n readonly diagram = computed<AXPWorkflowDiagramModel | null>(() =>\n buildTraceFlowDiagram(this.timeline()),\n );\n\n readonly highlightedNodeIds = computed(() => {\n const id = this.selectedSpan()?.spanId;\n return id ? [id] : [];\n });\n\n readonly traceId = computed(() => {\n const ctx = this.rootContext() ?? {};\n const fromTraceId = typeof ctx['traceId'] === 'string' ? ctx['traceId'].trim() : '';\n if (fromTraceId) {\n return fromTraceId;\n }\n const fromId = typeof ctx['id'] === 'string' ? ctx['id'].trim() : '';\n return fromId;\n });\n\n //#endregion\n\n //#region ---- Lifecycle ----\n\n #loadEffect = effect(() => {\n const id = this.traceId();\n void this.loadTimeline(id);\n });\n\n //#endregion\n\n //#region ---- Page metadata ----\n\n override async getPageTitle(): Promise<string> {\n return this.translationService.translateAsync('@system-insight:pages.trace-flow.title');\n }\n\n //#endregion\n\n //#region ---- Event Handlers ----\n\n onNodeClick(event: { node: AXPWorkflowNode }): void {\n const nodeId = event.node.id;\n const fromData = event.node.data?.['span'] as TraceSpanDto | undefined;\n const fromTimeline = this.timeline()?.spans?.find(\n (span) => span.spanId === nodeId || span.id === nodeId,\n );\n this.selectedSpan.set(fromData ?? fromTimeline ?? null);\n this.recompute();\n }\n\n hasValue(value: unknown): boolean {\n if (value === undefined || value === null) {\n return false;\n }\n if (typeof value === 'string') {\n return value.trim().length > 0;\n }\n if (Array.isArray(value)) {\n return value.length > 0;\n }\n if (typeof value === 'object') {\n return Object.keys(value as Record<string, unknown>).length > 0;\n }\n return true;\n }\n\n /**\n * Display rules:\n * - plain string → as-is\n * - JSON string → parse, then pretty JSON\n * - object/array → pretty JSON (nested JSON strings also expanded)\n */\n formatJson(value: unknown): string {\n const normalized = normalizeTraceDisplayValue(value);\n if (typeof normalized === 'string') {\n return normalized;\n }\n try {\n return JSON.stringify(normalized, null, 2);\n } catch {\n return String(value);\n }\n }\n\n //#endregion\n\n //#region ---- Data Loading ----\n\n private async loadTimeline(traceId: string): Promise<void> {\n if (!traceId) {\n this.timeline.set(null);\n this.selectedSpan.set(null);\n this.loading.set(false);\n return;\n }\n\n this.loading.set(true);\n try {\n const result = await this.queryExecutor.fetch<string, TraceTimelineDto>(\n 'SystemInsight:TraceTimeline:Get',\n traceId,\n );\n const timeline = runtimeQueryPayloadData(result) ?? null;\n this.timeline.set(timeline);\n this.selectedSpan.set(timeline?.spans?.[0] ?? null);\n this.recompute();\n } finally {\n this.loading.set(false);\n }\n }\n\n //#endregion\n}\n\n//#endregion\n","<!-- ----- Trace flow chart page ----- -->\n<div class=\"axm-trace-flow flex flex-col gap-4 p-4 w-full min-h-0 h-full\">\n @if (loading()) {\n <!-- ----- Loading indicator while timeline is fetched ----- -->\n <div class=\"flex justify-center py-10\">\n <ax-loading />\n </div>\n }\n <!-- ----- Empty state when timeline is missing ----- -->\n @else if (!timeline()) {\n <p class=\"typo-caption text-muted\">\n {{ '@system-insight:pages.trace-flow.not-found' | translate | async }}\n </p>\n }\n <!-- ----- Flow chart + span details ----- -->\n @else {\n <div class=\"flex flex-wrap items-center gap-2\">\n @if (timeline()?.kind; as kind) {\n <ax-badge [text]=\"kind\" color=\"primary\" size=\"sm\"></ax-badge>\n }\n @if (timeline()?.operation; as operation) {\n <span class=\"text-sm\">{{ operation }}</span>\n }\n <span class=\"text-sm text-muted ms-auto\">\n {{ '@system-insight:pages.trace-flow.duration' | translate | async }}:\n {{ timeline()?.duration }} ms\n </span>\n </div>\n\n <div class=\"axm-trace-flow__canvas border border-lightest rounded-md overflow-hidden min-h-[360px] flex-1\">\n @if (diagram(); as model) {\n <!-- ----- Readonly span flow chart ----- -->\n <axp-workflow-designer\n [model]=\"model\"\n [readonly]=\"true\"\n [showPortLabels]=\"false\"\n [highlightedNodeIds]=\"highlightedNodeIds()\"\n (nodeClick)=\"onNodeClick($event)\"\n />\n }\n <!-- ----- Empty diagram fallback ----- -->\n @else {\n <p class=\"typo-caption text-muted p-4\">\n {{ '@system-insight:pages.trace-flow.empty' | translate | async }}\n </p>\n }\n </div>\n\n @if (selectedSpan(); as span) {\n <!-- ----- Selected span details (metadata + IO) ----- -->\n <div class=\"border border-lightest rounded-md p-4 flex flex-col gap-4\">\n <div class=\"flex flex-wrap items-center gap-2\">\n <strong class=\"text-base\">{{ span.operationName }}</strong>\n @if (span.spanKind) {\n <ax-badge [text]=\"span.spanKind\" color=\"primary\" size=\"sm\"></ax-badge>\n }\n @if (span.middlewareName) {\n <ax-badge [text]=\"span.middlewareName\" color=\"secondary\" size=\"sm\"></ax-badge>\n }\n @if (span.status) {\n <ax-badge\n [text]=\"span.status\"\n [color]=\"span.status === 'error' ? 'danger' : 'success'\"\n size=\"sm\"\n ></ax-badge>\n }\n </div>\n\n <!-- ----- Span metadata grid ----- -->\n <div class=\"grid grid-cols-1 md:grid-cols-2 xl:grid-cols-3 gap-3 text-sm\">\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.span-id' | translate | async }}\n </div>\n <div class=\"font-mono break-all\">{{ span.spanId }}</div>\n </div>\n @if (span.parentSpanId) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.parent-span-id' | translate | async }}\n </div>\n <div class=\"font-mono break-all\">{{ span.parentSpanId }}</div>\n </div>\n }\n @if (span.serviceName) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.service-name' | translate | async }}\n </div>\n <div>{{ span.serviceName }}</div>\n </div>\n }\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.duration' | translate | async }}\n </div>\n <div>{{ span.duration ?? 0 }} ms</div>\n </div>\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.start-time' | translate | async }}\n </div>\n <div>{{ span.startTime }}</div>\n </div>\n @if (span.order != null) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:fields.order' | translate | async }}\n </div>\n <div>{{ span.order }}</div>\n </div>\n }\n @if (span.nextMiddleware) {\n <div>\n <div class=\"text-muted mb-1\">\n {{ '@system-insight:pages.trace-flow.next-middleware' | translate | async }}\n </div>\n <div>{{ span.nextMiddleware }}</div>\n </div>\n }\n </div>\n\n @if (span.error) {\n <!-- ----- Span error ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1 text-danger\">\n {{ '@system-insight:fields.error' | translate | async }}\n </div>\n <pre class=\"text-sm whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-40\">{{\n span.error\n }}</pre>\n </div>\n }\n\n <!-- ----- Input snapshot (always visible) ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.input' | translate | async }}\n </div>\n @if (hasValue(span.input)) {\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.input)\n }}</pre>\n }\n @else {\n <p class=\"typo-caption text-muted m-0\">\n {{ '@system-insight:pages.trace-flow.no-input' | translate | async }}\n </p>\n }\n </div>\n\n <!-- ----- Output snapshot (always visible) ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.output' | translate | async }}\n </div>\n @if (hasValue(span.output)) {\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.output)\n }}</pre>\n }\n @else {\n <p class=\"typo-caption text-muted m-0\">\n {{ '@system-insight:pages.trace-flow.no-output' | translate | async }}\n </p>\n }\n </div>\n\n @if (hasValue(span.tags)) {\n <!-- ----- Span tags / attributes ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.attributes' | translate | async }}\n </div>\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.tags)\n }}</pre>\n </div>\n }\n\n @if (span.logs?.length) {\n <!-- ----- Span logs / events ----- -->\n <div>\n <div class=\"text-sm font-medium mb-1\">\n {{ '@system-insight:pages.trace-flow.events' | translate | async }}\n </div>\n <pre class=\"text-xs whitespace-pre-wrap m-0 p-2 rounded-md bg-lightest overflow-auto max-h-56\">{{\n formatJson(span.logs)\n }}</pre>\n </div>\n }\n </div>\n }\n }\n</div>\n"],"names":["i2","i3","i4"],"mappings":"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"}