@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-05T03:38:59.493Z",
3
+ "generatedAt": "2026-08-05T09:56:10.324Z",
4
4
  "packageName": "@praxisui/core",
5
- "packageVersion": "9.0.4-rc.31",
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.map((rule) => ({ ...rule }))
18309
- : defaults.alertRules.map((rule) => ({ ...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.31",
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",
@@ -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;