@camstack/addon-export-hap 1.2.70 → 1.2.72

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.
@@ -13348,7 +13348,26 @@ var DiscoveryCandidateSchema = object({
13348
13348
  * identity ahead of adoption. Rendering metadata (unit, precision)
13349
13349
  * flows live through the cap STATUS SLICE after adoption.
13350
13350
  */
13351
- sourceInfo: SourceInfoSchema.optional()
13351
+ sourceInfo: SourceInfoSchema.optional(),
13352
+ /**
13353
+ * Set when this candidate is a device the provider ALREADY owns.
13354
+ *
13355
+ * A scan cannot generally produce the identity a device was onboarded under
13356
+ * (Reolink keys on `mac-<mac>`, learned at adopt time), so a stableId
13357
+ * comparison never matches and an owned device looks addable. Re-adopting one
13358
+ * overwrites its config with scan-derived values — that is how a Home Hub's
13359
+ * Baichuan port was overwritten with its ONVIF port, taking the hub and its
13360
+ * three child cameras offline for four hours.
13361
+ *
13362
+ * A provider that can recognise its own devices says so here. Absent means
13363
+ * "not recognised", which is not the same as "known to be new" — a provider
13364
+ * that cannot tell simply never sets it.
13365
+ */
13366
+ alreadyOnboarded: boolean().optional(),
13367
+ /** Numeric id of the device this candidate was matched to. Set with `alreadyOnboarded`. */
13368
+ onboardedDeviceId: number().optional(),
13369
+ /** Operator-facing name of the matched device, so the UI can say WHICH one it is. */
13370
+ onboardedName: string().optional()
13352
13371
  });
13353
13372
  /**
13354
13373
  * Flat device summary returned by `createDevice` / `adoptDiscoveredDevice`.
@@ -13395,7 +13414,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
13395
13414
  id: string(),
13396
13415
  name: string(),
13397
13416
  type: string()
13398
- }))), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
13417
+ }))), method(object({ stableId: string() }), object({ deviceId: number() }), {
13418
+ kind: "mutation",
13419
+ timeoutMs: 3 * 6e4
13420
+ }), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
13399
13421
  kind: "mutation",
13400
13422
  auth: "admin"
13401
13423
  }), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
@@ -13676,7 +13698,8 @@ method(object({
13676
13698
  targetId: number()
13677
13699
  }), MigrateDeviceResultSchema, {
13678
13700
  kind: "mutation",
13679
- auth: "admin"
13701
+ auth: "admin",
13702
+ timeoutMs: 12 * 6e4
13680
13703
  }), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
13681
13704
  deviceId: number(),
13682
13705
  name: string()
@@ -31608,6 +31631,12 @@ Object.freeze({
31608
31631
  addonId: null,
31609
31632
  access: "view"
31610
31633
  },
31634
+ "deviceProvider.reloadDevice": {
31635
+ capName: "device-provider",
31636
+ capScope: "system",
31637
+ addonId: null,
31638
+ access: "create"
31639
+ },
31611
31640
  "deviceProvider.start": {
31612
31641
  capName: "device-provider",
31613
31642
  capScope: "system",
@@ -13336,7 +13336,26 @@ var DiscoveryCandidateSchema = object({
13336
13336
  * identity ahead of adoption. Rendering metadata (unit, precision)
13337
13337
  * flows live through the cap STATUS SLICE after adoption.
13338
13338
  */
13339
- sourceInfo: SourceInfoSchema.optional()
13339
+ sourceInfo: SourceInfoSchema.optional(),
13340
+ /**
13341
+ * Set when this candidate is a device the provider ALREADY owns.
13342
+ *
13343
+ * A scan cannot generally produce the identity a device was onboarded under
13344
+ * (Reolink keys on `mac-<mac>`, learned at adopt time), so a stableId
13345
+ * comparison never matches and an owned device looks addable. Re-adopting one
13346
+ * overwrites its config with scan-derived values — that is how a Home Hub's
13347
+ * Baichuan port was overwritten with its ONVIF port, taking the hub and its
13348
+ * three child cameras offline for four hours.
13349
+ *
13350
+ * A provider that can recognise its own devices says so here. Absent means
13351
+ * "not recognised", which is not the same as "known to be new" — a provider
13352
+ * that cannot tell simply never sets it.
13353
+ */
13354
+ alreadyOnboarded: boolean().optional(),
13355
+ /** Numeric id of the device this candidate was matched to. Set with `alreadyOnboarded`. */
13356
+ onboardedDeviceId: number().optional(),
13357
+ /** Operator-facing name of the matched device, so the UI can say WHICH one it is. */
13358
+ onboardedName: string().optional()
13340
13359
  });
13341
13360
  /**
13342
13361
  * Flat device summary returned by `createDevice` / `adoptDiscoveredDevice`.
@@ -13383,7 +13402,10 @@ method(_void(), _void(), { kind: "mutation" }), method(_void(), _void(), { kind:
13383
13402
  id: string(),
13384
13403
  name: string(),
13385
13404
  type: string()
13386
- }))), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
13405
+ }))), method(object({ stableId: string() }), object({ deviceId: number() }), {
13406
+ kind: "mutation",
13407
+ timeoutMs: 3 * 6e4
13408
+ }), method(object({}), boolean()), method(object({ params: record(string(), unknown()).optional() }), array(DiscoveryCandidateSchema), {
13387
13409
  kind: "mutation",
13388
13410
  auth: "admin"
13389
13411
  }), method(object({}), CreationSchemaOutputSchema), method(object({}), object({ deviceType: _enum(DeviceType).nullable() })), method(object({ candidate: DiscoveryCandidateSchema }), DeviceSummarySchema, {
@@ -13664,7 +13686,8 @@ method(object({
13664
13686
  targetId: number()
13665
13687
  }), MigrateDeviceResultSchema, {
13666
13688
  kind: "mutation",
13667
- auth: "admin"
13689
+ auth: "admin",
13690
+ timeoutMs: 12 * 6e4
13668
13691
  }), method(DeviceRegisterPayloadSchema, _void(), { kind: "mutation" }), method(DeviceRemovePayloadSchema, _void(), { kind: "mutation" }), method(DevicePersistConfigPayloadSchema, _void(), { kind: "mutation" }), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), record(string(), unknown())), method(object({ deviceId: number() }), DeviceMetaSchema.nullable()), method(object({
13669
13692
  deviceId: number(),
13670
13693
  name: string()
@@ -31596,6 +31619,12 @@ Object.freeze({
31596
31619
  addonId: null,
31597
31620
  access: "view"
31598
31621
  },
31622
+ "deviceProvider.reloadDevice": {
31623
+ capName: "device-provider",
31624
+ capScope: "system",
31625
+ addonId: null,
31626
+ access: "create"
31627
+ },
31599
31628
  "deviceProvider.start": {
31600
31629
  capName: "device-provider",
31601
31630
  capScope: "system",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-export-hap",
3
- "version": "1.2.70",
3
+ "version": "1.2.72",
4
4
  "description": "HomeKit (HAP) exporter for CamStack devices. Publishes each exposed device as its own HomeKit accessory: cameras and doorbells with SRTP streaming, HomeKit Secure Video, motion, two-way audio, PTZ and battery; switches, lights, locks and sensors through a capability→service table.",
5
5
  "keywords": [
6
6
  "camstack",