@camstack/types 1.2.383 → 1.2.385

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 (33) hide show
  1. package/dist/addon.js +67 -3
  2. package/dist/addon.mjs +67 -3
  3. package/dist/capabilities/alerts.cap.d.ts +20 -0
  4. package/dist/capabilities/device-adoption.cap.d.ts +6 -2
  5. package/dist/capabilities/device-manager.cap.d.ts +1 -1
  6. package/dist/capabilities/dishwasher.cap.d.ts +368 -18
  7. package/dist/capabilities/index.d.ts +1 -1
  8. package/dist/capabilities/notification-rules.cap.d.ts +69 -0
  9. package/dist/capabilities/osd-manager.cap.d.ts +18 -0
  10. package/dist/capabilities/storage-migration.cap.d.ts +14 -0
  11. package/dist/client.js +88 -10
  12. package/dist/client.mjs +88 -10
  13. package/dist/enums/event-category.d.ts +10 -1
  14. package/dist/enums.js +1 -1
  15. package/dist/enums.mjs +1 -1
  16. package/dist/{event-category-BvOFi6PY.mjs → event-category-DOl51-Ij.mjs} +10 -1
  17. package/dist/{event-category-Hoe-mqbd.js → event-category-eSqkye-K.js} +10 -1
  18. package/dist/generated/addon-api.d.ts +49 -0
  19. package/dist/generated/addon-cap-facts.d.ts +1 -1
  20. package/dist/generated/capability-router-map.d.ts +4 -4
  21. package/dist/generated/method-access-map.d.ts +1 -1
  22. package/dist/generated/method-device-selectors.d.ts +1 -1
  23. package/dist/generated/system-proxy.d.ts +1 -1
  24. package/dist/index.d.ts +2 -0
  25. package/dist/index.js +598 -39
  26. package/dist/index.mjs +578 -40
  27. package/dist/interfaces/event-bus.d.ts +2 -0
  28. package/dist/interfaces/relocate.d.ts +25 -0
  29. package/dist/notification/alert-episode.d.ts +62 -0
  30. package/dist/{sleep--L6qY125.js → sleep-BE7_6UnC.js} +15 -4
  31. package/dist/{sleep-BOjuyoPC.mjs → sleep-BxjU_fJM.mjs} +15 -4
  32. package/dist/utils/oauth-landing.d.ts +38 -0
  33. package/package.json +1 -1
package/dist/client.mjs CHANGED
@@ -22287,6 +22287,9 @@ var NcSystemEventKindSchema = z.enum([
22287
22287
  "server-updated",
22288
22288
  "export-completed",
22289
22289
  "backup-completed",
22290
+ "alert-critical",
22291
+ "alert-error",
22292
+ "alert-critical-resolved",
22290
22293
  "camera-online",
22291
22294
  "camera-offline",
22292
22295
  "camera-disabled",
@@ -25905,14 +25908,19 @@ function addonSliceHandleApi(api) {
25905
25908
  }
25906
25909
  //#endregion
25907
25910
  //#region src/helpers/trpc-leaf.ts
25911
+ function isCapRecord(value) {
25912
+ if (value === null || Array.isArray(value)) return false;
25913
+ const kind = typeof value;
25914
+ return kind === "object" || kind === "function";
25915
+ }
25908
25916
  function isTrpcProcedureLeaf(value) {
25909
- if (typeof value !== "object" || value === null) return false;
25917
+ if (!isCapRecord(value)) return false;
25910
25918
  const record = value;
25911
- return (typeof record.query === "function" || typeof record.mutate === "function" || typeof record.subscribe === "function") && !Array.isArray(value);
25919
+ return typeof record.query === "function" || typeof record.mutate === "function" || typeof record.subscribe === "function";
25912
25920
  }
25913
25921
  function readCapRecord(api, capProp) {
25914
25922
  const cap = Reflect.get(api, capProp);
25915
- if (typeof cap !== "object" || cap === null || Array.isArray(cap)) return void 0;
25923
+ if (!isCapRecord(cap)) return void 0;
25916
25924
  return cap;
25917
25925
  }
25918
25926
  function readTrpcLeaf(api, capProp, method) {
@@ -26131,12 +26139,18 @@ function createDeviceProxy(api, binding, opts) {
26131
26139
  const dishwasherInterface = {
26132
26140
  start: (input) => dispatch("dishwasher", "dishwasher", "start", "mutation", input),
26133
26141
  pause: (input) => dispatch("dishwasher", "dishwasher", "pause", "mutation", input),
26142
+ resume: (input) => dispatch("dishwasher", "dishwasher", "resume", "mutation", input),
26134
26143
  stop: (input) => dispatch("dishwasher", "dishwasher", "stop", "mutation", input),
26135
26144
  setProgram: (input) => dispatch("dishwasher", "dishwasher", "setProgram", "mutation", input),
26136
26145
  setPower: (input) => dispatch("dishwasher", "dishwasher", "setPower", "mutation", input),
26137
26146
  setHalfLoad: (input) => dispatch("dishwasher", "dishwasher", "setHalfLoad", "mutation", input),
26138
26147
  setHygienePlus: (input) => dispatch("dishwasher", "dishwasher", "setHygienePlus", "mutation", input),
26148
+ setExtraDry: (input) => dispatch("dishwasher", "dishwasher", "setExtraDry", "mutation", input),
26149
+ setIntensiveZone: (input) => dispatch("dishwasher", "dishwasher", "setIntensiveZone", "mutation", input),
26150
+ setVarioSpeedPlus: (input) => dispatch("dishwasher", "dishwasher", "setVarioSpeedPlus", "mutation", input),
26151
+ setChildLock: (input) => dispatch("dishwasher", "dishwasher", "setChildLock", "mutation", input),
26139
26152
  setOption: (input) => dispatch("dishwasher", "dishwasher", "setOption", "mutation", input),
26153
+ getOptions: (input) => dispatch("dishwasher", "dishwasher", "getOptions", "query", input),
26140
26154
  getStatus: (input) => dispatch("dishwasher", "dishwasher", "getStatus", "query", input)
26141
26155
  };
26142
26156
  const doorbellInterface = { getStatus: (input) => dispatch("doorbell", "doorbell", "getStatus", "query", input) };
@@ -28205,6 +28219,7 @@ function createSystemProxy(api) {
28205
28219
  status: (input) => dispatch("storageMigration", "status", "query", input),
28206
28220
  cancel: (input) => dispatch("storageMigration", "cancel", "mutation", input),
28207
28221
  movers: (input) => dispatch("storageMigration", "movers", "query", input),
28222
+ moverClearance: (input) => dispatch("storageMigration", "moverClearance", "query", input),
28208
28223
  residue: (input) => dispatch("storageMigration", "residue", "query", input),
28209
28224
  drain: (input) => dispatch("storageMigration", "drain", "mutation", input),
28210
28225
  cleanupStart: (input) => dispatch("storageMigration", "cleanupStart", "mutation", input),
@@ -28653,7 +28668,7 @@ function systemEventFilterApplies(kind, filter) {
28653
28668
  switch (filter) {
28654
28669
  case "deviceIds": return kind.startsWith("device-") || kind.startsWith("stream-") || kind === "detection-blind" || kind.startsWith("recording-") || kind === "alarm-triggered";
28655
28670
  case "deviceTypes": return kind.startsWith("device-") || kind === "detection-blind";
28656
- case "nodeIds": return kind.startsWith("node-") || kind === "addon-crash-loop" || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "wrapper-update-available" || kind === "server-updated" || kind.startsWith("storage-location-");
28671
+ case "nodeIds": return kind.startsWith("node-") || kind === "addon-crash-loop" || kind === "addon-update-available" || kind === "addon-updated" || kind === "server-update-available" || kind === "wrapper-update-available" || kind === "server-updated" || kind.startsWith("storage-location-") || kind.startsWith("alert-");
28657
28672
  case "packageNames": return kind.endsWith("update-available") || kind === "addon-updated" || kind === "node-updating" || kind === "server-updated";
28658
28673
  case "consumableLowPercent": return NC_CONSUMABLE_SYSTEM_EVENT_KINDS.includes(kind);
28659
28674
  }
@@ -28726,6 +28741,9 @@ var FAMILY_BY_NAME = new Map(Object.entries({
28726
28741
  "wrapper-update-available": "system",
28727
28742
  "backup-completed": "system",
28728
28743
  "export-completed": "system",
28744
+ "alert-critical": "system",
28745
+ "alert-error": "system",
28746
+ "alert-critical-resolved": "system",
28729
28747
  "storage-location-low": "system",
28730
28748
  "storage-location-critical": "system",
28731
28749
  "storage-location-ok": "system",
@@ -28866,6 +28884,16 @@ var NC_SYSTEM_EVENT_KIND_GROUP_SPECS = [
28866
28884
  "storage-location-ok"
28867
28885
  ]
28868
28886
  },
28887
+ {
28888
+ id: "alerts",
28889
+ family: "system",
28890
+ label: "Alerts",
28891
+ kinds: [
28892
+ "alert-critical",
28893
+ "alert-error",
28894
+ "alert-critical-resolved"
28895
+ ]
28896
+ },
28869
28897
  {
28870
28898
  id: "alarm",
28871
28899
  family: "alarm",
@@ -29574,6 +29602,11 @@ var TANK = [
29574
29602
  "device-tank-full",
29575
29603
  "device-tank-normal"
29576
29604
  ];
29605
+ var ALERT_EPISODE = [
29606
+ "alert-critical",
29607
+ "alert-error",
29608
+ "alert-critical-resolved"
29609
+ ];
29577
29610
  var UPDATES = [
29578
29611
  "addon-update-available",
29579
29612
  "server-update-available",
@@ -30098,7 +30131,8 @@ var NC_TEMPLATE_VARS = [
30098
30131
  "server-updated",
30099
30132
  "storage-location-low",
30100
30133
  "storage-location-critical",
30101
- "storage-location-ok"
30134
+ "storage-location-ok",
30135
+ ...ALERT_EPISODE
30102
30136
  ]
30103
30137
  },
30104
30138
  {
@@ -30120,7 +30154,8 @@ var NC_TEMPLATE_VARS = [
30120
30154
  "server-updated",
30121
30155
  "storage-location-low",
30122
30156
  "storage-location-critical",
30123
- "storage-location-ok"
30157
+ "storage-location-ok",
30158
+ ...ALERT_EPISODE
30124
30159
  ]
30125
30160
  },
30126
30161
  {
@@ -30187,7 +30222,7 @@ var NC_TEMPLATE_VARS = [
30187
30222
  families: ["rule"],
30188
30223
  fields: [...RULE_TEXT],
30189
30224
  kinds: ["system"],
30190
- systemEventKinds: ["recording-degraded"]
30225
+ systemEventKinds: ["recording-degraded", ...ALERT_EPISODE]
30191
30226
  },
30192
30227
  {
30193
30228
  name: "locationName",
@@ -30384,13 +30419,53 @@ var NC_TEMPLATE_VARS = [
30384
30419
  },
30385
30420
  {
30386
30421
  name: "title",
30387
- label: "Export title",
30422
+ label: "Export or alert title",
30388
30423
  example: "Ingresso 08:00",
30389
30424
  group: "system",
30390
30425
  families: ["rule"],
30391
30426
  fields: [...RULE_TEXT],
30392
30427
  kinds: ["system"],
30393
- systemEventKinds: ["export-completed"]
30428
+ systemEventKinds: ["export-completed", ...ALERT_EPISODE]
30429
+ },
30430
+ {
30431
+ name: "severity",
30432
+ label: "Alert severity",
30433
+ example: "critical",
30434
+ group: "system",
30435
+ families: ["rule"],
30436
+ fields: [...RULE_TEXT],
30437
+ kinds: ["system"],
30438
+ systemEventKinds: [...ALERT_EPISODE]
30439
+ },
30440
+ {
30441
+ name: "category",
30442
+ label: "Alert category",
30443
+ example: "addon.runner-failed",
30444
+ group: "system",
30445
+ families: ["rule"],
30446
+ fields: [...RULE_TEXT],
30447
+ kinds: ["system"],
30448
+ systemEventKinds: [...ALERT_EPISODE]
30449
+ },
30450
+ {
30451
+ name: "source",
30452
+ label: "Alert source (addon, node or runner)",
30453
+ example: "recorder",
30454
+ group: "system",
30455
+ families: ["rule"],
30456
+ fields: [...RULE_TEXT],
30457
+ kinds: ["system"],
30458
+ systemEventKinds: [...ALERT_EPISODE]
30459
+ },
30460
+ {
30461
+ name: "actionUrl",
30462
+ label: "Alert action link",
30463
+ example: "/system/addons",
30464
+ group: "system",
30465
+ families: ["rule"],
30466
+ fields: [...RULE_TEXT],
30467
+ kinds: ["system"],
30468
+ systemEventKinds: [...ALERT_EPISODE]
30394
30469
  },
30395
30470
  {
30396
30471
  name: "exportId",
@@ -30601,7 +30676,10 @@ var NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS = [
30601
30676
  "device-tank-full",
30602
30677
  "device-tank-normal",
30603
30678
  "node-restarting",
30604
- "node-updating"
30679
+ "node-updating",
30680
+ "alert-critical",
30681
+ "alert-error",
30682
+ "alert-critical-resolved"
30605
30683
  ];
30606
30684
  /**
30607
30685
  * Is this descriptor held back from the SERVED catalog as a whole (D647)?
@@ -76,9 +76,18 @@ export declare enum EventCategory {
76
76
  /**
77
77
  * The node's one-shot runner boot check (D877): planned runners against the
78
78
  * process service, `degraded` when any is failed, refused or missing. The
79
- * alert centre turns it into one alert and a direct critical push.
79
+ * alert centre turns it into one critical alert.
80
80
  */
81
81
  SystemRunnerCheck = "system.runner-check",
82
+ /**
83
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
84
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
85
+ * centre sends no notification of its own: Notification Center turns this
86
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
87
+ * system-event kinds, and reconciles from the alerts store because a bus
88
+ * event may be dropped (D8, D11).
89
+ */
90
+ AlertEpisode = "alert.episode",
82
91
  AddonError = "addon.error",
83
92
  AddonPageReady = "addon.page-ready",
84
93
  AddonWidgetReady = "addon.widget-ready",
package/dist/enums.js CHANGED
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_event_category = require("./event-category-Hoe-mqbd.js");
2
+ const require_event_category = require("./event-category-eSqkye-K.js");
3
3
  //#region src/enums/event-source-type.ts
4
4
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
5
5
  EventSourceType["Addon"] = "addon";
package/dist/enums.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { t as EventCategory } from "./event-category-BvOFi6PY.mjs";
1
+ import { t as EventCategory } from "./event-category-DOl51-Ij.mjs";
2
2
  //#region src/enums/event-source-type.ts
3
3
  var EventSourceType = /* @__PURE__ */ function(EventSourceType) {
4
4
  EventSourceType["Addon"] = "addon";
@@ -77,9 +77,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  /**
78
78
  * The node's one-shot runner boot check (D877): planned runners against the
79
79
  * process service, `degraded` when any is failed, refused or missing. The
80
- * alert centre turns it into one alert and a direct critical push.
80
+ * alert centre turns it into one critical alert.
81
81
  */
82
82
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
83
+ /**
84
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
85
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
86
+ * centre sends no notification of its own: Notification Center turns this
87
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
88
+ * system-event kinds, and reconciles from the alerts store because a bus
89
+ * event may be dropped (D8, D11).
90
+ */
91
+ EventCategory["AlertEpisode"] = "alert.episode";
83
92
  EventCategory["AddonError"] = "addon.error";
84
93
  EventCategory["AddonPageReady"] = "addon.page-ready";
85
94
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -77,9 +77,18 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
77
77
  /**
78
78
  * The node's one-shot runner boot check (D877): planned runners against the
79
79
  * process service, `degraded` when any is failed, refused or missing. The
80
- * alert centre turns it into one alert and a direct critical push.
80
+ * alert centre turns it into one critical alert.
81
81
  */
82
82
  EventCategory["SystemRunnerCheck"] = "system.runner-check";
83
+ /**
84
+ * An alert EPISODE opened or closed, emitted by the alert centre for alerts
85
+ * of severity `critical` or `error` (`AlertEpisodePayload`). The alert
86
+ * centre sends no notification of its own: Notification Center turns this
87
+ * into the `alert-critical` / `alert-error` / `alert-critical-resolved`
88
+ * system-event kinds, and reconciles from the alerts store because a bus
89
+ * event may be dropped (D8, D11).
90
+ */
91
+ EventCategory["AlertEpisode"] = "alert.episode";
83
92
  EventCategory["AddonError"] = "addon.error";
84
93
  EventCategory["AddonPageReady"] = "addon.page-ready";
85
94
  EventCategory["AddonWidgetReady"] = "addon.widget-ready";
@@ -3392,6 +3392,13 @@ export type AppRouter = TrpcCoreRouter<{
3392
3392
  output: z.infer<typeof dishwasherCapability.methods.pause.output>;
3393
3393
  meta: object;
3394
3394
  }>;
3395
+ resume: TRPCMutationProcedure<{
3396
+ input: {
3397
+ [x: string]: unknown;
3398
+ } & z.input<typeof dishwasherCapability.methods.resume.input>;
3399
+ output: z.infer<typeof dishwasherCapability.methods.resume.output>;
3400
+ meta: object;
3401
+ }>;
3395
3402
  stop: TRPCMutationProcedure<{
3396
3403
  input: {
3397
3404
  [x: string]: unknown;
@@ -3427,6 +3434,34 @@ export type AppRouter = TrpcCoreRouter<{
3427
3434
  output: z.infer<typeof dishwasherCapability.methods.setHygienePlus.output>;
3428
3435
  meta: object;
3429
3436
  }>;
3437
+ setExtraDry: TRPCMutationProcedure<{
3438
+ input: {
3439
+ [x: string]: unknown;
3440
+ } & z.input<typeof dishwasherCapability.methods.setExtraDry.input>;
3441
+ output: z.infer<typeof dishwasherCapability.methods.setExtraDry.output>;
3442
+ meta: object;
3443
+ }>;
3444
+ setIntensiveZone: TRPCMutationProcedure<{
3445
+ input: {
3446
+ [x: string]: unknown;
3447
+ } & z.input<typeof dishwasherCapability.methods.setIntensiveZone.input>;
3448
+ output: z.infer<typeof dishwasherCapability.methods.setIntensiveZone.output>;
3449
+ meta: object;
3450
+ }>;
3451
+ setVarioSpeedPlus: TRPCMutationProcedure<{
3452
+ input: {
3453
+ [x: string]: unknown;
3454
+ } & z.input<typeof dishwasherCapability.methods.setVarioSpeedPlus.input>;
3455
+ output: z.infer<typeof dishwasherCapability.methods.setVarioSpeedPlus.output>;
3456
+ meta: object;
3457
+ }>;
3458
+ setChildLock: TRPCMutationProcedure<{
3459
+ input: {
3460
+ [x: string]: unknown;
3461
+ } & z.input<typeof dishwasherCapability.methods.setChildLock.input>;
3462
+ output: z.infer<typeof dishwasherCapability.methods.setChildLock.output>;
3463
+ meta: object;
3464
+ }>;
3430
3465
  setOption: TRPCMutationProcedure<{
3431
3466
  input: {
3432
3467
  [x: string]: unknown;
@@ -3434,6 +3469,13 @@ export type AppRouter = TrpcCoreRouter<{
3434
3469
  output: z.infer<typeof dishwasherCapability.methods.setOption.output>;
3435
3470
  meta: object;
3436
3471
  }>;
3472
+ getOptions: TRPCQueryProcedure<{
3473
+ input: {
3474
+ [x: string]: unknown;
3475
+ } & z.input<typeof dishwasherCapability.methods.getOptions.input>;
3476
+ output: z.infer<typeof dishwasherCapability.methods.getOptions.output>;
3477
+ meta: object;
3478
+ }>;
3437
3479
  }>>;
3438
3480
  doorbell: TRPCBuiltRouter<{
3439
3481
  ctx: TrpcContext;
@@ -9193,6 +9235,13 @@ export type AppRouter = TrpcCoreRouter<{
9193
9235
  output: z.infer<typeof storageMigrationCapability.methods.movers.output>;
9194
9236
  meta: object;
9195
9237
  }>;
9238
+ moverClearance: TRPCQueryProcedure<{
9239
+ input: {
9240
+ [x: string]: unknown;
9241
+ } & z.input<typeof storageMigrationCapability.methods.moverClearance.input>;
9242
+ output: z.infer<typeof storageMigrationCapability.methods.moverClearance.output>;
9243
+ meta: object;
9244
+ }>;
9196
9245
  residue: TRPCQueryProcedure<{
9197
9246
  input: {
9198
9247
  [x: string]: unknown;
@@ -5,7 +5,7 @@
5
5
  * `ALL_CAPABILITY_DEFINITIONS` (the whole Zod schema graph, ~+100 MB heap per
6
6
  * runner). See docs/decisions/adr-0028.md.
7
7
  *
8
- * Coverage: 1 advance-derived caps, 73 caps with 358 state leaves.
8
+ * Coverage: 1 advance-derived caps, 73 caps with 370 state leaves.
9
9
  */
10
10
  /** A bindable scalar in a capability's runtime state. */
11
11
  export interface CapStateLeaf {
@@ -551,12 +551,12 @@ export interface CapabilityRouterMap<TRouter = unknown> {
551
551
  readonly zoneRules: TRouter;
552
552
  readonly zones: TRouter;
553
553
  }
554
- /** Capability names whose mode is `singleton` (145 caps). */
555
- export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'addon-pages', 'addon-settings', 'addon-widgets', 'addons', 'admin-ui', 'air-quality-sensor', 'alarm-panel', 'alerts', 'ambient-light-sensor', 'audio-analysis', 'audio-analyzer', 'audio-codec', 'audio-metrics', 'automation-control', 'backup', 'battery', 'binary', 'brightness', 'button', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-adoption', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', 'osd', 'osd-manager', 'pet-feeder', 'pipeline-analytics', 'pipeline-executor', 'pipeline-orchestrator', 'pipeline-runner', 'plate-gallery', 'platform-probe', 'power-meter', 'presence', 'pressure-sensor', 'privacy-mask', 'ptz', 'ptz-autotrack', 'reboot', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
554
+ /** Capability names whose mode is `singleton` (144 caps). */
555
+ export declare const SINGLETON_CAPABILITY_NAMES: readonly ['accessories', 'addon-pages', 'addon-settings', 'addon-widgets', 'addons', 'admin-ui', 'air-quality-sensor', 'alarm-panel', 'alerts', 'ambient-light-sensor', 'audio-analysis', 'audio-analyzer', 'audio-codec', 'audio-metrics', 'automation-control', 'backup', 'battery', 'binary', 'brightness', 'button', 'calendars', 'camera-credentials', 'camera-grid-layout', 'camera-pipeline-config', 'camera-streams', 'carbon-monoxide', 'climate-control', 'color', 'composer', 'connectivity', 'consumables', 'contact', 'control', 'core-blocks', 'cover', 'database-snapshot', 'day-night', 'decoder', 'detection-pipeline', 'device-admin-link', 'device-credentials', 'device-discovery', 'device-history', 'device-manager', 'device-ops', 'device-state', 'device-status', 'dishwasher', 'doorbell', 'enum-sensor', 'event-emitter', 'face-gallery', 'fan-control', 'feature-probe', 'filesystem-browse', 'flood', 'gas', 'heating-valve', 'humidifier', 'humidity-sensor', 'image', 'image-settings', 'integrations', 'intercom', 'keychain', 'keychain-admin', 'lawn-mower-control', 'llm-runtime', 'local-network', 'lock-control', 'media-player', 'metrics-provider', 'model-convert', 'model-distributor', 'motion', 'motion-detection', 'motion-trigger', 'motion-zones', 'native-object-detection', 'navigation', 'network-link', 'network-quality', 'node-certificates', 'nodes', 'notification-rules', 'notifier', 'numeric-sensor', 'oidc-connections', 'osd', 'osd-manager', 'pet-feeder', 'pipeline-analytics', 'pipeline-executor', 'pipeline-orchestrator', 'pipeline-runner', 'plate-gallery', 'platform-probe', 'power-meter', 'presence', 'pressure-sensor', 'privacy-mask', 'ptz', 'ptz-autotrack', 'reboot', 'record-entries', 'recording-archive', 'recording-export', 'recording-onboard', 'recording-signal', 'records', 'scene-monitor', 'script-runner', 'server-management', 'settings-store', 'smoke', 'snapshot', 'sso-bridge', 'storage', 'storage-admin', 'storage-migration', 'stream-broker', 'stream-catalog', 'stream-params', 'stream-signals', 'switch', 'system', 'tamper', 'temperature-sensor', 'terminal-session', 'toast', 'training', 'update', 'user-management', 'vacuum-control', 'valve', 'vector-store', 'vibration', 'viewer-ui', 'water-heater', 'weather', 'webrtc-session', 'zone-analytics', 'zone-rules', 'zones'];
556
556
  /** Union of singleton capability names (literal string union). */
557
557
  export type SingletonCapabilityName = typeof SINGLETON_CAPABILITY_NAMES[number];
558
- /** Capability names whose mode is `collection` (34 caps). */
559
- export declare const COLLECTION_CAPABILITY_NAMES: readonly ['addon-pages-source', 'addon-routes', 'addon-widgets-source', 'auth-provider', 'broker', 'calendar-source', 'connection-test', 'custom-model-registry', 'data-store-provider', 'device-export', 'device-extension', 'device-provider', 'device-removal-hook', 'embedding-encoder', 'failure-contribution', 'llm', 'load-contribution', 'log-channels', 'log-destination', 'login-method', 'mesh-network', 'mqtt-broker', 'network-access', 'notification-output', 'oauth-integration', 'recording', 'smtp-provider', 'storage-evictable', 'storage-occupancy', 'storage-provider', 'training-provider', 'turn-provider', 'user-passkeys', 'videoclips'];
558
+ /** Capability names whose mode is `collection` (35 caps). */
559
+ export declare const COLLECTION_CAPABILITY_NAMES: readonly ['addon-pages-source', 'addon-routes', 'addon-widgets-source', 'auth-provider', 'broker', 'calendar-source', 'connection-test', 'custom-model-registry', 'data-store-provider', 'device-adoption', 'device-export', 'device-extension', 'device-provider', 'device-removal-hook', 'embedding-encoder', 'failure-contribution', 'llm', 'load-contribution', 'log-channels', 'log-destination', 'login-method', 'mesh-network', 'mqtt-broker', 'network-access', 'notification-output', 'oauth-integration', 'recording', 'smtp-provider', 'storage-evictable', 'storage-occupancy', 'storage-provider', 'training-provider', 'turn-provider', 'user-passkeys', 'videoclips'];
560
560
  /** Union of collection capability names (literal string union). */
561
561
  export type CollectionCapabilityName = typeof COLLECTION_CAPABILITY_NAMES[number];
562
562
  /** Capability mode lookup at runtime — mirrors the `.cap.ts` definitions. */
@@ -6,7 +6,7 @@
6
6
  * scope+access check inside `protectedProcedure` (see
7
7
  * `server/backend/src/api/trpc/trpc.middleware.ts`).
8
8
  *
9
- * Coverage: 1379 method paths across 179 capabilities.
9
+ * Coverage: 1386 method paths across 179 capabilities.
10
10
  */
11
11
  import type { CapabilityMethodAccess } from '../capabilities/capability-definition.js';
12
12
  export interface MethodAccessRecord {
@@ -6,7 +6,7 @@
6
6
  * system-scope cap that takes a deviceId was previously never device-filtered
7
7
  * — see the generator header).
8
8
  *
9
- * Coverage: 544 methods carry a device reference, of which
9
+ * Coverage: 550 methods carry a device reference, of which
10
10
  * 179 are on SYSTEM-scope caps.
11
11
  *
12
12
  * Top-level fields, number arrays, and one-level arrays of objects carrying
@@ -107,7 +107,7 @@ export interface SystemProxy {
107
107
  readonly serverManagement: Pick<InferProvider<typeof serverManagementCapability>, 'getServerPackageStatus' | 'checkServerUpdate' | 'applyServerUpdate' | 'rollbackServerUpdate' | 'restartServer'>;
108
108
  readonly settingsStore: Pick<InferProvider<typeof settingsStoreCapability>, 'get' | 'set' | 'query' | 'upsert' | 'upsertMany' | 'insert' | 'insertMany' | 'transact' | 'update' | 'delete' | 'deleteWhere' | 'updateWhere' | 'count' | 'aggregate' | 'histogram' | 'isEmpty' | 'declareCollection'>;
109
109
  readonly storage: Pick<InferProvider<typeof storageCapability>, 'resolve' | 'write' | 'read' | 'exists' | 'list' | 'delete' | 'getAvailableSpace' | 'beginUpload' | 'writeChunk' | 'finalizeUpload' | 'abortUpload' | 'beginDownload' | 'readChunk' | 'endDownload' | 'listLocations' | 'listLocationDeclarations' | 'upsertLocation' | 'deleteLocation' | 'listDrainProgress' | 'testLocation' | 'listProviders' | 'testConfig'>;
110
- readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
110
+ readonly storageMigration: Pick<InferProvider<typeof storageMigrationCapability>, 'plan' | 'start' | 'status' | 'cancel' | 'movers' | 'moverClearance' | 'residue' | 'drain' | 'cleanupStart' | 'cleanupStatus' | 'cleanupCancel' | 'history'>;
111
111
  readonly streamBroker: Pick<InferProvider<typeof streamBrokerCapability>, 'fetchEventMedia' | 'listAllCameraStreams' | 'listAllProfileSlots' | 'getBrokerStats' | 'probeStream' | 'listClients' | 'getLiveViewerCounts' | 'killClient' | 'getStreamUrl' | 'getStreamWithCodec' | 'releaseStreamWithCodec' | 'acquireEgressTranscode' | 'releaseEgressTranscode' | 'subscribeAudioChunks' | 'pullAudioChunks' | 'unsubscribeAudioChunks' | 'setPreBufferDuration' | 'getPreBufferInfo' | 'getRtspPort' | 'getAllRtspEntries' | 'getRtspEntry' | 'regenerateRtspToken' | 'setRtspEnabled' | 'isRtspEnabled'>;
112
112
  readonly system: Pick<InferProvider<typeof systemCapability>, 'info' | 'health' | 'featureFlags' | 'networkAddresses' | 'getRetentionConfig' | 'setRetentionConfig' | 'forceRetentionCleanup' | 'getSiteLocation' | 'setSiteLocation' | 'detectSiteLocation' | 'getRequestCensus' | 'getLoadContributions' | 'getFailureContributions' | 'getLoggingSettings' | 'setLoggingSettings'>;
113
113
  readonly terminalSession: Pick<InferProvider<typeof terminalSessionCapability>, 'listProfiles' | 'listInstances' | 'createInstance' | 'updateInstance' | 'deleteInstance' | 'setInstanceEnabled' | 'listLegacyCameras' | 'adoptLegacyMonitor' | 'listSessions' | 'openSession' | 'resize' | 'pullOutput' | 'writeInput' | 'close'>;
package/dist/index.d.ts CHANGED
@@ -265,6 +265,7 @@ export { alarmDeviceBlocksArming, alarmDeviceSecureOnArm, type AlarmDeviceBlocks
265
265
  export { alarmPatchLanded, applyBlockingEdit, applyModeDelaysEdits, applyModeDeviceListEdit, applyNonBlockingEdit, applySecureOnArmEdit, derivePostTriggeredAction, NC_ALARM_DEFAULT_TRIGGERED_DURATION_SEC, NC_ALARM_DELAY_FIELDS, NC_ALARM_NOTIFY_FIELDS, type NcAlarmDelayField, type NcAlarmDelaySettings, type NcAlarmDelaySource, type NcAlarmModeDeviceListEditResult, type NcAlarmModeNotifyPolicy, type NcAlarmNonBlockingEditResult, type NcAlarmNotifyField, type NcAlarmResolvedDelays, resolveModeDelays, resolveModeNotifyPolicy, } from './notification/alarm-settings.js';
266
266
  export { activateAlarmProfile, alarmProfileById, cloneAlarmSettings, createAlarmProfile, deleteAlarmProfile, ensureAlarmProfiles, isDefaultAlarmProfileId, NC_ALARM_DEFAULT_PROFILE_ID, NC_ALARM_DEFAULT_PROFILE_NAME, NC_ALARM_SYSTEM_DEFAULT_DELAYS, ncAlarmSystemDefaultSettings, type NcAlarmProfileCreateSource, type NcAlarmProfileRecord, type NcAlarmProfilesMutationResult, type NcAlarmProfilesRefuseReason, type NcAlarmProfilesState, renameAlarmProfile, syncActiveAlarmProfileSettings, } from './notification/alarm-profiles.js';
267
267
  export { NC_SENSOR_RAISED_FIELD_BY_KIND, NC_SENSOR_TRANSITION_KINDS, NC_SENSOR_TRANSITION_UNSUPPORTED_REASON, sensorRaisedOf, sensorTransitionOffered, } from './notification/sensor-raised.js';
268
+ export { alertEpisodeId, alertEpisodeKind, alertEpisodePayload, alertNodeId, isAlertEpisodeOpen, isAlertEpisodeSeverity, parseAlertEpisodePayload, AlertEpisodePayloadSchema, type AlertEpisodePayload, type AlertEpisodePhase, } from './notification/alert-episode.js';
268
269
  export { NC_TEMPLATE_HELD_BACK_SYSTEM_EVENT_KINDS, NC_TEMPLATE_VARS, isHeldBackTemplateVar, isKnownTemplateVar, servedTemplateVars, templateVarDeliveryApplies, templateVarKindApplies, templateVarSystemEventApplies, templateVarsFor, } from './notification/template-vars.js';
269
270
  export { NC_SYSTEM_EVENT_FILTER_KEYS, type NcSystemEventFilterKey, systemEventFilterApplies, systemEventFilterAppliesToAnyKind, } from './notification/system-event-filters.js';
270
271
  export { describeSystemEventFamilyProblem, isSystemEventFamily, NC_SYSTEM_EVENT_CONDITION_FILTER_KEYS, NC_SYSTEM_EVENT_FAMILIES, NC_SYSTEM_EVENT_FAMILY, NC_SYSTEM_EVENT_FAMILY_FILTERS, NC_SYSTEM_EVENT_KIND_GROUP_SPECS, type NcSystemEventConditionFilterKey, type NcSystemEventFamily, type NcSystemEventFamilyProblem, type NcSystemEventFamilyVerdict, type NcSystemEventKindGroupSpec, systemEventFamilyOf, systemEventFamilyProblems, systemEventKindNamesOf, systemEventKindsOfFamily, } from './notification/system-event-families.js';
@@ -312,6 +313,7 @@ export { errMsg } from './utils/err-msg.js';
312
313
  export { hfModelUrl } from './utils/hf-url.js';
313
314
  export { asBoolean, asJsonArray, asJsonObject, asNumber, asString, parseJsonArray, parseJsonObject, parseJsonUnknown, } from './utils/json-safe.js';
314
315
  export { maskUrlCredentials } from './utils/mask-url.js';
316
+ export { OAUTH_LANDING_PATH, OAUTH_LANDING_REASONS, isOauthLandingReason, oauthLandingUrl, parseOauthLandingFragment, type OauthLandingOutcome, type OauthLandingReason, } from './utils/oauth-landing.js';
315
317
  export { commitWatchdogRestart, DEFAULT_POOL_MEMORY_POLICY, evaluatePoolMemory, initialPoolMemoryState, type PoolMemoryAction, type PoolMemoryPolicy, type PoolMemoryState, type PoolMemoryTelemetry, type PoolMemoryVerdict, PoolMemoryWatchdog, type PoolMemoryWatchdogOptions, type ProcMemory, parseProcStatus, pickRestartCandidate, poolMemoryThreshold, type RestartCandidate, resetPoolBaseline, resolvePoolMemoryPolicy, } from './utils/pool-memory-watchdog.js';
316
318
  export { cellsToRects, type NormRect, rectsToCells } from './utils/privacy-grid-raster.js';
317
319
  export { RingBuffer } from './utils/ring-buffer.js';