@praxisui/core 9.0.4-rc.31 → 9.0.4-rc.32
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-05T09:56:10.324Z",
|
|
4
4
|
"packageName": "@praxisui/core",
|
|
5
|
-
"packageVersion": "9.0.4-rc.
|
|
5
|
+
"packageVersion": "9.0.4-rc.32",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 4,
|
|
@@ -18282,6 +18282,32 @@ const PRAXIS_DEFAULT_OBSERVABILITY_ALERT_RULES = [
|
|
|
18282
18282
|
},
|
|
18283
18283
|
throttleMs: 5 * MINUTE,
|
|
18284
18284
|
},
|
|
18285
|
+
{
|
|
18286
|
+
id: 'surface-session-navigation-rejected-by-action',
|
|
18287
|
+
name: 'Surface session navigation rejection by action',
|
|
18288
|
+
severity: 'error',
|
|
18289
|
+
level: 'warn',
|
|
18290
|
+
threshold: 3,
|
|
18291
|
+
windowMs: 5 * MINUTE,
|
|
18292
|
+
groupBy: 'actionId',
|
|
18293
|
+
matchData: {
|
|
18294
|
+
code: 'SURFACE_SESSION_NAVIGATION_REJECTED',
|
|
18295
|
+
},
|
|
18296
|
+
throttleMs: 5 * MINUTE,
|
|
18297
|
+
},
|
|
18298
|
+
{
|
|
18299
|
+
id: 'surface-session-navigation-rejected-by-component',
|
|
18300
|
+
name: 'Surface session navigation rejection by component',
|
|
18301
|
+
severity: 'error',
|
|
18302
|
+
level: 'warn',
|
|
18303
|
+
threshold: 3,
|
|
18304
|
+
windowMs: 5 * MINUTE,
|
|
18305
|
+
groupBy: 'component',
|
|
18306
|
+
matchData: {
|
|
18307
|
+
code: 'SURFACE_SESSION_NAVIGATION_REJECTED',
|
|
18308
|
+
},
|
|
18309
|
+
throttleMs: 5 * MINUTE,
|
|
18310
|
+
},
|
|
18285
18311
|
];
|
|
18286
18312
|
function createCorporateObservabilityOptions() {
|
|
18287
18313
|
return {
|
|
@@ -18304,9 +18330,13 @@ function resolveObservabilityOptions(options = {}) {
|
|
|
18304
18330
|
telemetryEventNames: options.telemetryEventNames?.length
|
|
18305
18331
|
? [...options.telemetryEventNames]
|
|
18306
18332
|
: [...defaults.telemetryEventNames],
|
|
18307
|
-
alertRules: options.alertRules?.length
|
|
18308
|
-
? options.alertRules
|
|
18309
|
-
: defaults.alertRules.map((rule) => ({
|
|
18333
|
+
alertRules: (options.alertRules?.length
|
|
18334
|
+
? options.alertRules
|
|
18335
|
+
: defaults.alertRules).map((rule) => ({
|
|
18336
|
+
...rule,
|
|
18337
|
+
...(rule.matchContext ? { matchContext: { ...rule.matchContext } } : {}),
|
|
18338
|
+
...(rule.matchData ? { matchData: { ...rule.matchData } } : {}),
|
|
18339
|
+
})),
|
|
18310
18340
|
};
|
|
18311
18341
|
}
|
|
18312
18342
|
|
|
@@ -18400,7 +18430,8 @@ class ObservabilityDashboardService {
|
|
|
18400
18430
|
const windowStart = nowMs - rule.windowMs;
|
|
18401
18431
|
const matching = this.records.filter((record) => record.timestampMs >= windowStart
|
|
18402
18432
|
&& record.level === rule.level
|
|
18403
|
-
&& this.matchesRuleContext(record, rule)
|
|
18433
|
+
&& this.matchesRuleContext(record, rule)
|
|
18434
|
+
&& this.matchesRuleData(record, rule));
|
|
18404
18435
|
const grouped = this.groupRecordsByRule(matching, rule.groupBy);
|
|
18405
18436
|
for (const [groupKey, groupRecords] of grouped.entries()) {
|
|
18406
18437
|
if (groupRecords.length < rule.threshold) {
|
|
@@ -18446,6 +18477,18 @@ class ObservabilityDashboardService {
|
|
|
18446
18477
|
&& (!match.component || record.context.component === match.component)
|
|
18447
18478
|
&& (!match.actionId || record.context.actionId === match.actionId);
|
|
18448
18479
|
}
|
|
18480
|
+
matchesRuleData(record, rule) {
|
|
18481
|
+
const match = rule.matchData;
|
|
18482
|
+
if (!match?.code) {
|
|
18483
|
+
return true;
|
|
18484
|
+
}
|
|
18485
|
+
if (!record.data ||
|
|
18486
|
+
typeof record.data !== 'object' ||
|
|
18487
|
+
Array.isArray(record.data)) {
|
|
18488
|
+
return false;
|
|
18489
|
+
}
|
|
18490
|
+
return record.data['code'] === match.code;
|
|
18491
|
+
}
|
|
18449
18492
|
buildAlertContext(groupBy, groupKey, latest) {
|
|
18450
18493
|
if (groupBy === 'global') {
|
|
18451
18494
|
return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@praxisui/core",
|
|
3
|
-
"version": "9.0.4-rc.
|
|
3
|
+
"version": "9.0.4-rc.32",
|
|
4
4
|
"description": "Core library for Praxis UI Workspace: types, tokens, services and utilities shared across @praxisui/* packages.",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "^21.0.0",
|
package/types/praxisui-core.d.ts
CHANGED
|
@@ -10879,6 +10879,9 @@ interface ObservabilityAlertRule {
|
|
|
10879
10879
|
component?: string;
|
|
10880
10880
|
actionId?: string;
|
|
10881
10881
|
};
|
|
10882
|
+
matchData?: {
|
|
10883
|
+
code?: string;
|
|
10884
|
+
};
|
|
10882
10885
|
throttleMs?: number;
|
|
10883
10886
|
}
|
|
10884
10887
|
interface ObservabilityCountBucket {
|
|
@@ -10970,6 +10973,7 @@ declare class ObservabilityDashboardService {
|
|
|
10970
10973
|
clear(): void;
|
|
10971
10974
|
private evaluateAlerts;
|
|
10972
10975
|
private matchesRuleContext;
|
|
10976
|
+
private matchesRuleData;
|
|
10973
10977
|
private buildAlertContext;
|
|
10974
10978
|
private groupRecordsByRule;
|
|
10975
10979
|
private trimRecords;
|