@texturehq/edges 2.5.0 → 2.5.2

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.
@@ -2199,8 +2199,20 @@ type SerializableFieldFormat = Exclude<FieldFormat, {
2199
2199
  * (e.g. transformer loading: SUM of downstream meter `kwh_usage`
2200
2200
  * ÷ PF ÷ `ratedKva`, a 0–1 ratio the cell scales ×100). Consumers
2201
2201
  * MUST treat this as async/loading and never block the card on it.
2202
+ * - `scada` — a live SCADA telemetry reading resolved from the element's
2203
+ * `TelemetrySource` (`externalId = '{'+elementGuid+'}'`). `points`
2204
+ * are the TelemetryPoint names to read, `reduce` collapses them
2205
+ * (`maxAbs` for three-phase current), `unit` is passed through,
2206
+ * and `sla` (ms) is the freshness window past which the reading
2207
+ * reads "as of {rel}", not live. Optional `ignore` lists numeric
2208
+ * sentinel values (e.g. `32767` on a tap-position phase) that are
2209
+ * treated as absent — skipped before the reduce and before the
2210
+ * freshness check, exactly as a `null` reading would be. Added in
2211
+ * MR-EN4; paired with the grid capability resolver. The gate is a
2212
+ * fresh point, not `ScadaGridNode` existence; a stale point never
2213
+ * blocks the card.
2202
2214
  *
2203
- * No grid row uses `metadata`/`derived` yet — the design's grid metric proposal
2215
+ * No grid row uses `metadata`/`derived`/`scada` yet — the design's grid metric proposal
2204
2216
  * is still "For review" (see MR-07). The type is extended now so those rows can
2205
2217
  * be authored honestly once design signs off; only `state` rows exist today.
2206
2218
  */
@@ -2214,6 +2226,13 @@ type MetricSource = {
2214
2226
  kind: "derived";
2215
2227
  rollup: "transformer-loading";
2216
2228
  window: "15m" | "1h" | "1d";
2229
+ } | {
2230
+ kind: "scada";
2231
+ points: string[];
2232
+ reduce: "maxAbs" | "sum" | "first";
2233
+ unit: string;
2234
+ sla: number;
2235
+ ignore?: number[];
2217
2236
  };
2218
2237
  /**
2219
2238
  * One headline metric shown by `entity.now`. A serializable declaration only —
@@ -2283,7 +2302,11 @@ interface GridStatFieldFormat {
2283
2302
  * the live block. See MR-07 "'has data' ≠ 'belongs in entity.now'".
2284
2303
  */
2285
2304
  interface GridStatField {
2286
- /** JSONB key in `GridElement.elementData`. */
2305
+ /**
2306
+ * Key in the element's resolved data. Usually a `GridElement.elementData`
2307
+ * JSONB key; may also be a decoded top-level field the host merges in (e.g.
2308
+ * `capacityKva`, the decoded transformer kVA rating).
2309
+ */
2287
2310
  key: string;
2288
2311
  /** Display label (translation key or plain text). */
2289
2312
  label: string;
@@ -2447,45 +2470,21 @@ declare const ABSENT_GRID_FIELDS: readonly ["energized", "customerName", "gs_max
2447
2470
  */
2448
2471
  declare const GRID_STAT_LIST: {
2449
2472
  readonly TRANSFORMER: [{
2450
- readonly key: "primaryRatedVoltage";
2451
- readonly label: "Primary Voltage";
2473
+ readonly key: "capacityKva";
2474
+ readonly label: "kVA Rating";
2452
2475
  readonly format: {
2453
- readonly type: "voltage";
2454
- readonly unit: "V";
2476
+ readonly type: "power";
2477
+ readonly unit: "kVA";
2455
2478
  readonly decimals: 0;
2456
2479
  };
2457
2480
  }, {
2458
- readonly key: "ratedOutputVoltage";
2459
- readonly label: "Output Voltage";
2481
+ readonly key: "primaryRatedVoltage";
2482
+ readonly label: "Primary Voltage";
2460
2483
  readonly format: {
2461
2484
  readonly type: "voltage";
2462
2485
  readonly unit: "V";
2463
2486
  readonly decimals: 0;
2464
2487
  };
2465
- }, {
2466
- readonly key: "tranKvaA";
2467
- readonly label: "Rating Phase A";
2468
- readonly format: {
2469
- readonly type: "power";
2470
- readonly unit: "kVA";
2471
- readonly decimals: 1;
2472
- };
2473
- }, {
2474
- readonly key: "tranKvaB";
2475
- readonly label: "Rating Phase B";
2476
- readonly format: {
2477
- readonly type: "power";
2478
- readonly unit: "kVA";
2479
- readonly decimals: 1;
2480
- };
2481
- }, {
2482
- readonly key: "tranKvaC";
2483
- readonly label: "Rating Phase C";
2484
- readonly format: {
2485
- readonly type: "power";
2486
- readonly unit: "kVA";
2487
- readonly decimals: 1;
2488
- };
2489
2488
  }];
2490
2489
  readonly CONSUMER: [{
2491
2490
  readonly key: "meterNumber";
@@ -3075,45 +3074,21 @@ declare const ENTITY_CONFIG: {
3075
3074
  readonly detailPage: true;
3076
3075
  readonly properties: {
3077
3076
  readonly statList: [{
3078
- readonly key: "primaryRatedVoltage";
3079
- readonly label: "Primary Voltage";
3077
+ readonly key: "capacityKva";
3078
+ readonly label: "kVA Rating";
3080
3079
  readonly format: {
3081
- readonly type: "voltage";
3082
- readonly unit: "V";
3080
+ readonly type: "power";
3081
+ readonly unit: "kVA";
3083
3082
  readonly decimals: 0;
3084
3083
  };
3085
3084
  }, {
3086
- readonly key: "ratedOutputVoltage";
3087
- readonly label: "Output Voltage";
3085
+ readonly key: "primaryRatedVoltage";
3086
+ readonly label: "Primary Voltage";
3088
3087
  readonly format: {
3089
3088
  readonly type: "voltage";
3090
3089
  readonly unit: "V";
3091
3090
  readonly decimals: 0;
3092
3091
  };
3093
- }, {
3094
- readonly key: "tranKvaA";
3095
- readonly label: "Rating Phase A";
3096
- readonly format: {
3097
- readonly type: "power";
3098
- readonly unit: "kVA";
3099
- readonly decimals: 1;
3100
- };
3101
- }, {
3102
- readonly key: "tranKvaB";
3103
- readonly label: "Rating Phase B";
3104
- readonly format: {
3105
- readonly type: "power";
3106
- readonly unit: "kVA";
3107
- readonly decimals: 1;
3108
- };
3109
- }, {
3110
- readonly key: "tranKvaC";
3111
- readonly label: "Rating Phase C";
3112
- readonly format: {
3113
- readonly type: "power";
3114
- readonly unit: "kVA";
3115
- readonly decimals: 1;
3116
- };
3117
3092
  }];
3118
3093
  };
3119
3094
  readonly label: {
@@ -2199,8 +2199,20 @@ type SerializableFieldFormat = Exclude<FieldFormat, {
2199
2199
  * (e.g. transformer loading: SUM of downstream meter `kwh_usage`
2200
2200
  * ÷ PF ÷ `ratedKva`, a 0–1 ratio the cell scales ×100). Consumers
2201
2201
  * MUST treat this as async/loading and never block the card on it.
2202
+ * - `scada` — a live SCADA telemetry reading resolved from the element's
2203
+ * `TelemetrySource` (`externalId = '{'+elementGuid+'}'`). `points`
2204
+ * are the TelemetryPoint names to read, `reduce` collapses them
2205
+ * (`maxAbs` for three-phase current), `unit` is passed through,
2206
+ * and `sla` (ms) is the freshness window past which the reading
2207
+ * reads "as of {rel}", not live. Optional `ignore` lists numeric
2208
+ * sentinel values (e.g. `32767` on a tap-position phase) that are
2209
+ * treated as absent — skipped before the reduce and before the
2210
+ * freshness check, exactly as a `null` reading would be. Added in
2211
+ * MR-EN4; paired with the grid capability resolver. The gate is a
2212
+ * fresh point, not `ScadaGridNode` existence; a stale point never
2213
+ * blocks the card.
2202
2214
  *
2203
- * No grid row uses `metadata`/`derived` yet — the design's grid metric proposal
2215
+ * No grid row uses `metadata`/`derived`/`scada` yet — the design's grid metric proposal
2204
2216
  * is still "For review" (see MR-07). The type is extended now so those rows can
2205
2217
  * be authored honestly once design signs off; only `state` rows exist today.
2206
2218
  */
@@ -2214,6 +2226,13 @@ type MetricSource = {
2214
2226
  kind: "derived";
2215
2227
  rollup: "transformer-loading";
2216
2228
  window: "15m" | "1h" | "1d";
2229
+ } | {
2230
+ kind: "scada";
2231
+ points: string[];
2232
+ reduce: "maxAbs" | "sum" | "first";
2233
+ unit: string;
2234
+ sla: number;
2235
+ ignore?: number[];
2217
2236
  };
2218
2237
  /**
2219
2238
  * One headline metric shown by `entity.now`. A serializable declaration only —
@@ -2283,7 +2302,11 @@ interface GridStatFieldFormat {
2283
2302
  * the live block. See MR-07 "'has data' ≠ 'belongs in entity.now'".
2284
2303
  */
2285
2304
  interface GridStatField {
2286
- /** JSONB key in `GridElement.elementData`. */
2305
+ /**
2306
+ * Key in the element's resolved data. Usually a `GridElement.elementData`
2307
+ * JSONB key; may also be a decoded top-level field the host merges in (e.g.
2308
+ * `capacityKva`, the decoded transformer kVA rating).
2309
+ */
2287
2310
  key: string;
2288
2311
  /** Display label (translation key or plain text). */
2289
2312
  label: string;
@@ -2447,45 +2470,21 @@ declare const ABSENT_GRID_FIELDS: readonly ["energized", "customerName", "gs_max
2447
2470
  */
2448
2471
  declare const GRID_STAT_LIST: {
2449
2472
  readonly TRANSFORMER: [{
2450
- readonly key: "primaryRatedVoltage";
2451
- readonly label: "Primary Voltage";
2473
+ readonly key: "capacityKva";
2474
+ readonly label: "kVA Rating";
2452
2475
  readonly format: {
2453
- readonly type: "voltage";
2454
- readonly unit: "V";
2476
+ readonly type: "power";
2477
+ readonly unit: "kVA";
2455
2478
  readonly decimals: 0;
2456
2479
  };
2457
2480
  }, {
2458
- readonly key: "ratedOutputVoltage";
2459
- readonly label: "Output Voltage";
2481
+ readonly key: "primaryRatedVoltage";
2482
+ readonly label: "Primary Voltage";
2460
2483
  readonly format: {
2461
2484
  readonly type: "voltage";
2462
2485
  readonly unit: "V";
2463
2486
  readonly decimals: 0;
2464
2487
  };
2465
- }, {
2466
- readonly key: "tranKvaA";
2467
- readonly label: "Rating Phase A";
2468
- readonly format: {
2469
- readonly type: "power";
2470
- readonly unit: "kVA";
2471
- readonly decimals: 1;
2472
- };
2473
- }, {
2474
- readonly key: "tranKvaB";
2475
- readonly label: "Rating Phase B";
2476
- readonly format: {
2477
- readonly type: "power";
2478
- readonly unit: "kVA";
2479
- readonly decimals: 1;
2480
- };
2481
- }, {
2482
- readonly key: "tranKvaC";
2483
- readonly label: "Rating Phase C";
2484
- readonly format: {
2485
- readonly type: "power";
2486
- readonly unit: "kVA";
2487
- readonly decimals: 1;
2488
- };
2489
2488
  }];
2490
2489
  readonly CONSUMER: [{
2491
2490
  readonly key: "meterNumber";
@@ -3075,45 +3074,21 @@ declare const ENTITY_CONFIG: {
3075
3074
  readonly detailPage: true;
3076
3075
  readonly properties: {
3077
3076
  readonly statList: [{
3078
- readonly key: "primaryRatedVoltage";
3079
- readonly label: "Primary Voltage";
3077
+ readonly key: "capacityKva";
3078
+ readonly label: "kVA Rating";
3080
3079
  readonly format: {
3081
- readonly type: "voltage";
3082
- readonly unit: "V";
3080
+ readonly type: "power";
3081
+ readonly unit: "kVA";
3083
3082
  readonly decimals: 0;
3084
3083
  };
3085
3084
  }, {
3086
- readonly key: "ratedOutputVoltage";
3087
- readonly label: "Output Voltage";
3085
+ readonly key: "primaryRatedVoltage";
3086
+ readonly label: "Primary Voltage";
3088
3087
  readonly format: {
3089
3088
  readonly type: "voltage";
3090
3089
  readonly unit: "V";
3091
3090
  readonly decimals: 0;
3092
3091
  };
3093
- }, {
3094
- readonly key: "tranKvaA";
3095
- readonly label: "Rating Phase A";
3096
- readonly format: {
3097
- readonly type: "power";
3098
- readonly unit: "kVA";
3099
- readonly decimals: 1;
3100
- };
3101
- }, {
3102
- readonly key: "tranKvaB";
3103
- readonly label: "Rating Phase B";
3104
- readonly format: {
3105
- readonly type: "power";
3106
- readonly unit: "kVA";
3107
- readonly decimals: 1;
3108
- };
3109
- }, {
3110
- readonly key: "tranKvaC";
3111
- readonly label: "Rating Phase C";
3112
- readonly format: {
3113
- readonly type: "power";
3114
- readonly unit: "kVA";
3115
- readonly decimals: 1;
3116
- };
3117
3092
  }];
3118
3093
  };
3119
3094
  readonly label: {