@camstack/types 0.1.39 → 0.1.40

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 (83) hide show
  1. package/dist/addon/base-addon.d.ts +2 -2
  2. package/dist/addon/base-addon.d.ts.map +1 -1
  3. package/dist/capabilities/addon-settings.cap.d.ts +1 -0
  4. package/dist/capabilities/addon-settings.cap.d.ts.map +1 -1
  5. package/dist/capabilities/addons.cap.d.ts +187 -1
  6. package/dist/capabilities/addons.cap.d.ts.map +1 -1
  7. package/dist/capabilities/alerts.cap.d.ts +5 -5
  8. package/dist/capabilities/audio-analyzer.cap.d.ts +2 -2
  9. package/dist/capabilities/camera-pipeline-config.cap.d.ts +43 -0
  10. package/dist/capabilities/camera-pipeline-config.cap.d.ts.map +1 -0
  11. package/dist/capabilities/index.d.ts +11 -4
  12. package/dist/capabilities/index.d.ts.map +1 -1
  13. package/dist/capabilities/local-network.cap.d.ts +1 -1
  14. package/dist/capabilities/mask-shape.d.ts +99 -0
  15. package/dist/capabilities/mask-shape.d.ts.map +1 -0
  16. package/dist/capabilities/mesh-network.cap.d.ts +3 -3
  17. package/dist/capabilities/motion-zones.cap.d.ts +94 -13
  18. package/dist/capabilities/motion-zones.cap.d.ts.map +1 -1
  19. package/dist/capabilities/mqtt-broker.cap.d.ts +3 -3
  20. package/dist/capabilities/native-object-detection.cap.d.ts +73 -3
  21. package/dist/capabilities/native-object-detection.cap.d.ts.map +1 -1
  22. package/dist/capabilities/network-access.cap.d.ts +7 -7
  23. package/dist/capabilities/oauth-integration.cap.d.ts +4 -2
  24. package/dist/capabilities/oauth-integration.cap.d.ts.map +1 -1
  25. package/dist/capabilities/pipeline-runner.cap.d.ts +2 -0
  26. package/dist/capabilities/pipeline-runner.cap.d.ts.map +1 -1
  27. package/dist/capabilities/privacy-mask.cap.d.ts +206 -0
  28. package/dist/capabilities/privacy-mask.cap.d.ts.map +1 -0
  29. package/dist/capabilities/schemas/detection-shared.d.ts +14 -1
  30. package/dist/capabilities/schemas/detection-shared.d.ts.map +1 -1
  31. package/dist/capabilities/sso-bridge.cap.d.ts +3 -3
  32. package/dist/capabilities/stream-catalog.cap.d.ts +82 -0
  33. package/dist/capabilities/stream-catalog.cap.d.ts.map +1 -0
  34. package/dist/capabilities/user-management.cap.d.ts +20 -20
  35. package/dist/capabilities/webrtc-session.cap.d.ts +34 -0
  36. package/dist/capabilities/webrtc-session.cap.d.ts.map +1 -1
  37. package/dist/enums/event-category.d.ts +28 -1
  38. package/dist/enums/event-category.d.ts.map +1 -1
  39. package/dist/generated/addon-api.d.ts +1250 -670
  40. package/dist/generated/addon-api.d.ts.map +1 -1
  41. package/dist/generated/cap-status-types.d.ts +3 -1
  42. package/dist/generated/cap-status-types.d.ts.map +1 -1
  43. package/dist/generated/capability-router-map.d.ts +11 -2
  44. package/dist/generated/capability-router-map.d.ts.map +1 -1
  45. package/dist/generated/device-local-state.d.ts +6 -0
  46. package/dist/generated/device-local-state.d.ts.map +1 -1
  47. package/dist/generated/device-proxy.d.ts +8 -0
  48. package/dist/generated/device-proxy.d.ts.map +1 -1
  49. package/dist/generated/method-access-map.d.ts +1 -1
  50. package/dist/generated/method-access-map.d.ts.map +1 -1
  51. package/dist/generated/system-proxy.d.ts +1 -1
  52. package/dist/generated/system-proxy.d.ts.map +1 -1
  53. package/dist/health/wiring-health.d.ts +136 -0
  54. package/dist/health/wiring-health.d.ts.map +1 -0
  55. package/dist/{index-QRlzao1I.mjs → index-C2zzIDdX.mjs} +829 -420
  56. package/dist/index-C2zzIDdX.mjs.map +1 -0
  57. package/dist/{index-CMM1Y9W6.js → index-DnpdVFKv.js} +458 -49
  58. package/dist/index-DnpdVFKv.js.map +1 -0
  59. package/dist/index.d.ts +2 -0
  60. package/dist/index.d.ts.map +1 -1
  61. package/dist/index.js +176 -4
  62. package/dist/index.js.map +1 -1
  63. package/dist/index.mjs +487 -315
  64. package/dist/index.mjs.map +1 -1
  65. package/dist/interfaces/addon.d.ts +1 -1
  66. package/dist/interfaces/addon.d.ts.map +1 -1
  67. package/dist/interfaces/capability.d.ts +17 -0
  68. package/dist/interfaces/capability.d.ts.map +1 -1
  69. package/dist/interfaces/event-bus.d.ts +56 -1
  70. package/dist/interfaces/event-bus.d.ts.map +1 -1
  71. package/dist/interfaces/stream-broker.d.ts +21 -1
  72. package/dist/interfaces/stream-broker.d.ts.map +1 -1
  73. package/dist/node.js +1 -1
  74. package/dist/node.mjs +1 -1
  75. package/dist/readiness/readiness-registry.d.ts.map +1 -1
  76. package/dist/schemas/auth-records.d.ts +4 -4
  77. package/dist/types/io.d.ts +13 -1
  78. package/dist/types/io.d.ts.map +1 -1
  79. package/dist/utils/privacy-grid-raster.d.ts +48 -0
  80. package/dist/utils/privacy-grid-raster.d.ts.map +1 -0
  81. package/package.json +1 -1
  82. package/dist/index-CMM1Y9W6.js.map +0 -1
  83. package/dist/index-QRlzao1I.mjs.map +0 -1
@@ -1,4 +1,35 @@
1
1
  import { z } from "zod";
2
+ const wiringProbeKindSchema = z.enum(["singleton", "device", "widget"]);
3
+ const wiringProbeResultSchema = z.object({
4
+ capName: z.string(),
5
+ kind: wiringProbeKindSchema,
6
+ deviceId: z.number().optional(),
7
+ reachable: z.boolean(),
8
+ latencyMs: z.number(),
9
+ error: z.string().optional()
10
+ });
11
+ const wiringAddonHealthSchema = z.object({
12
+ addonId: z.string(),
13
+ caps: z.array(wiringProbeResultSchema).readonly(),
14
+ widgets: z.array(wiringProbeResultSchema).readonly()
15
+ });
16
+ const wiringNodeHealthSchema = z.object({
17
+ nodeId: z.string(),
18
+ addons: z.array(wiringAddonHealthSchema).readonly()
19
+ });
20
+ const wiringHealthSnapshotSchema = z.object({
21
+ /** True only when every probed target is reachable. */
22
+ ok: z.boolean(),
23
+ /** True when at least one target is unreachable. */
24
+ degraded: z.boolean(),
25
+ checkedAt: z.string(),
26
+ nodes: z.array(wiringNodeHealthSchema).readonly(),
27
+ summary: z.object({
28
+ total: z.number(),
29
+ reachable: z.number(),
30
+ unreachable: z.number()
31
+ })
32
+ });
2
33
  const MODEL_FORMATS = ["onnx", "coreml", "openvino", "tflite", "pt"];
3
34
  const WELL_KNOWN_TABS = [
4
35
  { id: "overview", label: "Overview", icon: "layout-dashboard", order: -10 },
@@ -1738,7 +1769,7 @@ const SpatialDetectionSchema = z.object({
1738
1769
  bbox: BoundingBoxSchema
1739
1770
  });
1740
1771
  const AudioChunkInputSchema = z.object({
1741
- data: z.instanceof(Float32Array),
1772
+ data: z.instanceof(Uint8Array),
1742
1773
  sampleRate: z.number(),
1743
1774
  channels: z.number(),
1744
1775
  timestamp: z.number(),
@@ -2421,7 +2452,23 @@ const RunnerCameraConfigSchema = z.object({
2421
2452
  * whenever its `zones` device-state slice changes, so the runner's
2422
2453
  * copy stays in sync. Empty array → no zone filtering.
2423
2454
  */
2424
- zones: z.array(ZoneSchema).readonly().default([])
2455
+ zones: z.array(ZoneSchema).readonly().default([]),
2456
+ /**
2457
+ * When true (default) and the camera's `motionSources` contains only
2458
+ * `'onboard'`, the runner dynamically opens the same WASM frame-diff
2459
+ * motion-frames subscription on each `MotionOnMotionChanged
2460
+ * source:'onboard'` event and tears it down after `motionCooldownMs`.
2461
+ * This causes `runMotionAnalysis` to emit `MotionZonesRaw` /
2462
+ * `MotionAnalysis` during active-motion windows without the
2463
+ * substream being held open continuously.
2464
+ *
2465
+ * Set to `false` to disable the dynamic analyzer for this camera
2466
+ * (e.g. very low-bandwidth links where the extra substream is
2467
+ * undesirable). Has no effect when `motionSources` already includes
2468
+ * `'analyzer'` — the analyzer runs continuously in that case and
2469
+ * this gate is bypassed.
2470
+ */
2471
+ onboardMotionDrivesAnalyzer: z.boolean().default(true)
2425
2472
  });
2426
2473
  const RunnerCameraDeviceUIFields = [
2427
2474
  {
@@ -2481,6 +2528,16 @@ const RunnerCameraDeviceUIFields = [
2481
2528
  showValue: true,
2482
2529
  unit: "s",
2483
2530
  displayScale: 1e3
2531
+ },
2532
+ // Only meaningful for onboard-only cameras — when `motionSources`
2533
+ // contains `'analyzer'` the analyzer runs continuously already.
2534
+ {
2535
+ key: "onboardMotionDrivesAnalyzer",
2536
+ type: "boolean",
2537
+ label: "Run motion analyzer on onboard motion",
2538
+ description: "When onboard motion is detected, temporarily start the frame-diff analyzer to emit zone results. Stops after the motion cooldown window.",
2539
+ default: true,
2540
+ showWhen: { field: "motionSources", includes: "onboard" }
2484
2541
  }
2485
2542
  ];
2486
2543
  const RunnerLocalLoadSchema = z.object({
@@ -2659,22 +2716,68 @@ const motionTriggerCapability = {
2659
2716
  },
2660
2717
  runtimeState: MotionTriggerRuntimeStateSchema
2661
2718
  };
2719
+ const MaskPointSchema = z.object({
2720
+ x: z.number(),
2721
+ y: z.number()
2722
+ });
2723
+ const MaskRectShapeSchema = z.object({
2724
+ kind: z.literal("rect"),
2725
+ x: z.number(),
2726
+ y: z.number(),
2727
+ width: z.number(),
2728
+ height: z.number()
2729
+ });
2730
+ const MaskPolygonShapeSchema = z.object({
2731
+ kind: z.literal("polygon"),
2732
+ points: z.array(MaskPointSchema)
2733
+ });
2734
+ const MaskGridShapeSchema = z.object({
2735
+ kind: z.literal("grid"),
2736
+ gridWidth: z.number(),
2737
+ gridHeight: z.number(),
2738
+ cells: z.array(z.boolean())
2739
+ });
2740
+ const MaskLineShapeSchema = z.object({
2741
+ kind: z.literal("line"),
2742
+ points: z.array(MaskPointSchema)
2743
+ });
2744
+ const MaskShapeSchema = z.discriminatedUnion("kind", [
2745
+ MaskRectShapeSchema,
2746
+ MaskPolygonShapeSchema,
2747
+ MaskGridShapeSchema,
2748
+ MaskLineShapeSchema
2749
+ ]);
2750
+ const MaskShapeKindSchema = z.enum(["rect", "polygon", "grid", "line"]);
2751
+ const MaskPolygonVerticesSchema = z.object({
2752
+ min: z.number(),
2753
+ max: z.number()
2754
+ });
2755
+ const MaskGridDimsSchema = z.object({
2756
+ width: z.number(),
2757
+ height: z.number()
2758
+ });
2759
+ const MotionZoneRegionSchema = z.object({
2760
+ id: z.number(),
2761
+ enabled: z.boolean(),
2762
+ shape: MaskGridShapeSchema
2763
+ });
2662
2764
  const MotionZoneStatusSchema = z.object({
2663
2765
  enabled: z.boolean(),
2664
2766
  sensitivity: z.number(),
2665
- /** Row-major active-cell grid. Length = gridWidth*gridHeight (see getOptions). */
2666
- cells: z.array(z.boolean()),
2767
+ /** Grid region(s). Today exactly one `grid` shape. */
2768
+ regions: z.array(MotionZoneRegionSchema),
2667
2769
  lastFetchedAt: z.number()
2668
2770
  });
2669
2771
  const MotionZoneOptionsSchema = z.object({
2670
- gridWidth: z.number(),
2671
- gridHeight: z.number(),
2772
+ maxRegions: z.number(),
2773
+ supportedShapes: z.array(MaskShapeKindSchema),
2774
+ grid: MaskGridDimsSchema,
2672
2775
  sensitivity: z.object({ min: z.number(), max: z.number(), step: z.number() })
2673
2776
  });
2674
2777
  const MotionZonePatchSchema = z.object({
2675
2778
  enabled: z.boolean().optional(),
2676
2779
  sensitivity: z.number().optional(),
2677
- cells: z.array(z.boolean()).optional()
2780
+ regions: z.array(MotionZoneRegionSchema).optional()
2678
2781
  });
2679
2782
  const motionZonesCapability = {
2680
2783
  name: "motion-zones",
@@ -2695,6 +2798,118 @@ const motionZonesCapability = {
2695
2798
  status: { schema: MotionZoneStatusSchema, kind: "poll" },
2696
2799
  runtimeState: MotionZoneStatusSchema
2697
2800
  };
2801
+ const NativeObjectClassEnum = z.enum([
2802
+ "person",
2803
+ "vehicle",
2804
+ "animal",
2805
+ "face",
2806
+ "package",
2807
+ "other"
2808
+ ]);
2809
+ const NativeDetectionSchema = z.object({
2810
+ class: NativeObjectClassEnum,
2811
+ timestamp: z.number(),
2812
+ /** Firmware-provided confidence [0..1]. Reolink pushes don't carry it → undefined. */
2813
+ confidence: z.number().min(0).max(1).optional()
2814
+ });
2815
+ const NativeObjectDetectionStatusSchema = z.object({
2816
+ /**
2817
+ * Last observed instance per class. Missing entries mean the class
2818
+ * is supported but nothing has been seen since the provider started.
2819
+ *
2820
+ * MUST be a partial record: providers seed an empty `{}` on cold-start
2821
+ * and write one class at a time as detections arrive. In Zod 4
2822
+ * `z.record(enum, …)` is EXHAUSTIVE (requires every enum key), so a
2823
+ * partial write throws "expected object, received undefined" for every
2824
+ * unseen class. `z.partialRecord` keeps the enum-key narrowing while
2825
+ * allowing the sparse shape the providers actually write.
2826
+ */
2827
+ lastByClass: z.partialRecord(NativeObjectClassEnum, NativeDetectionSchema.nullable()),
2828
+ /** Classes the firmware is capable of detecting — enumerated at device register. */
2829
+ supportedClasses: z.array(NativeObjectClassEnum).readonly(),
2830
+ /**
2831
+ * Whether forwarding of onboard AI detections is enabled for this device.
2832
+ * Default true (on cold-start) — detections flow unconditionally before
2833
+ * the toggle is saved, so defaulting true preserves existing behaviour.
2834
+ */
2835
+ enabled: z.boolean()
2836
+ });
2837
+ const NativeObjectDetectionRuntimeStateSchema = NativeObjectDetectionStatusSchema.extend({
2838
+ /** Required by createRuntimeStateBridge — epoch ms of last refresh. */
2839
+ lastFetchedAt: z.number()
2840
+ });
2841
+ const nativeObjectDetectionCapability = {
2842
+ name: "native-object-detection",
2843
+ scope: "device",
2844
+ mode: "singleton",
2845
+ deviceTypes: [DeviceType.Camera],
2846
+ methods: {
2847
+ setEnabled: method(
2848
+ z.object({ deviceId: z.number(), enabled: z.boolean() }),
2849
+ z.void(),
2850
+ { kind: "mutation", auth: "admin" }
2851
+ )
2852
+ },
2853
+ events: {
2854
+ onDetected: { data: z.object({
2855
+ deviceId: z.number(),
2856
+ detection: NativeDetectionSchema
2857
+ }) }
2858
+ },
2859
+ status: {
2860
+ schema: NativeObjectDetectionStatusSchema,
2861
+ kind: "push"
2862
+ },
2863
+ runtimeState: NativeObjectDetectionRuntimeStateSchema
2864
+ };
2865
+ const PrivacyMaskShapeSchema = z.discriminatedUnion("kind", [
2866
+ MaskRectShapeSchema,
2867
+ MaskPolygonShapeSchema
2868
+ ]);
2869
+ const PrivacyMaskRegionSchema = z.object({
2870
+ /** Slot id, 0-based. Stable across read/write. */
2871
+ id: z.number(),
2872
+ /** Whether this zone is active (blanked out by the camera). */
2873
+ enabled: z.boolean(),
2874
+ shape: PrivacyMaskShapeSchema
2875
+ });
2876
+ const PrivacyMaskStatusSchema = z.object({
2877
+ enabled: z.boolean(),
2878
+ /** Active zones (normalized 0..1). Length ≤ maxRegions. */
2879
+ regions: z.array(PrivacyMaskRegionSchema),
2880
+ lastFetchedAt: z.number()
2881
+ });
2882
+ const PrivacyMaskOptionsSchema = z.object({
2883
+ /** Maximum number of supported zones. */
2884
+ maxRegions: z.number(),
2885
+ /** Shape kinds this camera accepts — Reolink: ['rect']; Hikvision: ['rect','polygon']. */
2886
+ supportedShapes: z.array(MaskShapeKindSchema),
2887
+ /** Polygon vertex bounds when 'polygon' is supported (Hikvision: {min:4,max:4}). */
2888
+ polygonVertices: MaskPolygonVerticesSchema.optional()
2889
+ });
2890
+ const PrivacyMaskPatchSchema = z.object({
2891
+ enabled: z.boolean().optional(),
2892
+ regions: z.array(PrivacyMaskRegionSchema).optional()
2893
+ });
2894
+ const privacyMaskCapability = {
2895
+ name: "privacy-mask",
2896
+ scope: "device",
2897
+ mode: "singleton",
2898
+ deviceTypes: [DeviceType.Camera],
2899
+ deviceConfig: {
2900
+ ui: { kind: "widget", widgetId: "host/privacy-mask-grid", tab: "image", label: "Privacy Mask" }
2901
+ },
2902
+ methods: {
2903
+ getOptions: method(z.object({ deviceId: z.number() }), PrivacyMaskOptionsSchema),
2904
+ setMask: method(
2905
+ z.object({ deviceId: z.number(), patch: PrivacyMaskPatchSchema }),
2906
+ z.void(),
2907
+ { kind: "mutation", auth: "admin" }
2908
+ )
2909
+ },
2910
+ status: { schema: PrivacyMaskStatusSchema, kind: "poll" },
2911
+ runtimeState: PrivacyMaskStatusSchema
2912
+ };
2698
2913
  const AutotrackTargetTypeSchema = z.string().describe("Vendor target string (people/vehicle/pet); empty = camera default");
2699
2914
  const PtzAutotrackSettingsSchema = z.object({
2700
2915
  targetType: AutotrackTargetTypeSchema,
@@ -3286,7 +3501,8 @@ const addonSettingsCapability = {
3286
3501
  z.object({
3287
3502
  addonId: z.string(),
3288
3503
  nodeId: z.string().optional(),
3289
- overlay: z.record(z.string(), z.unknown()).optional()
3504
+ overlay: z.record(z.string(), z.unknown()).optional(),
3505
+ cap: z.string().optional()
3290
3506
  }),
3291
3507
  SettingsSchemaWithValuesSchema.nullable()
3292
3508
  ),
@@ -4045,7 +4261,14 @@ const OauthIntegrationDescriptorSchema = z.object({
4045
4261
  /** Allowed redirect_uri prefixes. /api/oauth2/authorize rejects any
4046
4262
  * redirect_uri that does not start with one of these. Required —
4047
4263
  * an empty list means the integration can never complete linking. */
4048
- allowedRedirectPrefixes: z.array(z.string()).min(1)
4264
+ allowedRedirectPrefixes: z.array(z.string()).min(1),
4265
+ /** Optional public origin (no trailing slash) that this integration's
4266
+ * issued codes/tokens should carry as the `hubUrl` claim — typically the
4267
+ * operator-selected external-access endpoint resolved by the addon. When
4268
+ * present, /api/oauth2/authorize bakes THIS into the code instead of the
4269
+ * hub-global `publicHubUrl()`, so a forked exporter addon (which can't set
4270
+ * the hub's env) drives the claim that its cloud Lambda routes back on. */
4271
+ hubUrl: z.string().optional()
4049
4272
  });
4050
4273
  const oauthIntegrationCapability = {
4051
4274
  name: "oauth-integration",
@@ -4749,7 +4972,20 @@ const webrtcSessionCapability = {
4749
4972
  z.object({
4750
4973
  deviceId: z.number().int().nonnegative(),
4751
4974
  target: WebrtcStreamTargetSchema,
4752
- hints: webrtcClientHintsSchema.optional()
4975
+ hints: webrtcClientHintsSchema.optional(),
4976
+ /**
4977
+ * SERVER-INJECTED — NOT a client hint. The hub layer that holds
4978
+ * the tRPC request context (and therefore the client IP) sets
4979
+ * this to `true` when the viewer's source IP is non-LAN
4980
+ * (4G/CGNAT/internet). The broker then forces TURN-relay-only
4981
+ * ICE for the session so a CGNAT client (which can only offer a
4982
+ * relay candidate) gets a clean relay↔relay media path instead
4983
+ * of werift nominating a dead host/hairpin-srflx pair. LAN
4984
+ * clients leave this absent/false and keep the low-latency
4985
+ * direct (host/srflx) path. Clients MUST NOT send this — the
4986
+ * server overwrites it from the request context.
4987
+ */
4988
+ relayOnly: z.boolean().optional()
4753
4989
  }),
4754
4990
  z.object({ sessionId: z.string(), sdpOffer: z.string() }),
4755
4991
  { kind: "mutation" }
@@ -4772,7 +5008,22 @@ const webrtcSessionCapability = {
4772
5008
  deviceId: z.number().int().nonnegative(),
4773
5009
  target: WebrtcStreamTargetSchema.optional(),
4774
5010
  sdpOffer: z.string(),
4775
- sessionId: z.string().optional()
5011
+ sessionId: z.string().optional(),
5012
+ /**
5013
+ * Force TURN-relay-only ICE for this session. Two kinds of caller
5014
+ * set it:
5015
+ * - A cloud peer like Alexa's RTCSessionController (reachable
5016
+ * only via TURN, never our host/srflx behind NAT) passes
5017
+ * `true` from its own trusted addon context.
5018
+ * - The hub injects it for browser client-offer viewers from the
5019
+ * request's source IP (non-LAN ⇒ true), exactly as it does for
5020
+ * `createSession`.
5021
+ * A LAN/Tailscale browser doing client-offer passthrough leaves it
5022
+ * absent/false so a direct host pair carries full native quality.
5023
+ * Untrusted browser clients MUST NOT send it — the hub overwrites
5024
+ * it from the request context.
5025
+ */
5026
+ relayOnly: z.boolean().optional()
4776
5027
  }),
4777
5028
  z.object({ sessionId: z.string(), sdpAnswer: z.string() }),
4778
5029
  { kind: "mutation" }
@@ -4786,6 +5037,46 @@ const webrtcSessionCapability = {
4786
5037
  z.void(),
4787
5038
  { kind: "mutation" }
4788
5039
  ),
5040
+ /**
5041
+ * Trickle ICE — add a remote (client) ICE candidate to a live session.
5042
+ * Lets the client send its SDP offer/answer IMMEDIATELY (before ICE
5043
+ * gathering finishes) and deliver candidates as they arrive, so the
5044
+ * connection establishes in ~0s instead of waiting for full gathering.
5045
+ * The dual of `getIceCandidates`. Mirrors Scrypted's signaling.
5046
+ */
5047
+ addIceCandidate: method(
5048
+ z.object({
5049
+ deviceId: z.number().int().nonnegative(),
5050
+ sessionId: z.string(),
5051
+ candidate: z.string(),
5052
+ sdpMid: z.string().nullable().optional(),
5053
+ sdpMLineIndex: z.number().int().nullable().optional()
5054
+ }),
5055
+ z.void(),
5056
+ { kind: "mutation" }
5057
+ ),
5058
+ /**
5059
+ * Trickle ICE — poll the server's gathered ICE candidates for a session.
5060
+ * The server answers immediately (no gathering wait) and the client polls
5061
+ * this to receive host/srflx/relay candidates as werift gathers them,
5062
+ * adding each to its PeerConnection. Returns all candidates gathered so
5063
+ * far; the client dedupes. `done` flips true once gathering completes.
5064
+ */
5065
+ getIceCandidates: method(
5066
+ z.object({
5067
+ deviceId: z.number().int().nonnegative(),
5068
+ sessionId: z.string()
5069
+ }),
5070
+ z.object({
5071
+ candidates: z.array(z.object({
5072
+ candidate: z.string(),
5073
+ sdpMid: z.string().nullable(),
5074
+ sdpMLineIndex: z.number().int().nullable()
5075
+ })),
5076
+ done: z.boolean()
5077
+ }),
5078
+ { kind: "query" }
5079
+ ),
4789
5080
  closeSession: method(
4790
5081
  z.object({
4791
5082
  deviceId: z.number().int().nonnegative(),
@@ -6538,6 +6829,16 @@ const detectionPipelineCapability = {
6538
6829
  exposesDeviceSettings: true,
6539
6830
  methods: {}
6540
6831
  };
6832
+ const cameraPipelineConfigCapability = {
6833
+ name: "camera-pipeline-config",
6834
+ scope: "device",
6835
+ mode: "singleton",
6836
+ kind: "wrapper",
6837
+ defaultActive: true,
6838
+ deviceTypes: [DeviceType.Camera],
6839
+ exposesDeviceSettings: true,
6840
+ methods: {}
6841
+ };
6541
6842
  const TrackStateSchema = z.enum(["new", "entered", "left", "moving", "idle"]);
6542
6843
  const EventKindSchema = z.enum(["motion", "object", "audio"]);
6543
6844
  const TrackPositionSchema = z.object({
@@ -7454,44 +7755,31 @@ const intercomCapability = {
7454
7755
  kind: "command-driven"
7455
7756
  }
7456
7757
  };
7457
- const NativeObjectClassEnum = z.enum([
7458
- "person",
7459
- "vehicle",
7460
- "animal",
7461
- "face",
7462
- "package",
7463
- "other"
7464
- ]);
7465
- const NativeDetectionSchema = z.object({
7466
- class: NativeObjectClassEnum,
7467
- timestamp: z.number(),
7468
- /** Firmware-provided confidence [0..1]. Reolink pushes don't carry it → undefined. */
7469
- confidence: z.number().min(0).max(1).optional()
7470
- });
7471
- const NativeObjectDetectionStatusSchema = z.object({
7472
- /**
7473
- * Last observed instance per class. Undefined entries mean the class
7474
- * is supported but nothing has been seen since the provider started.
7475
- */
7476
- lastByClass: z.record(NativeObjectClassEnum, NativeDetectionSchema.nullable()),
7477
- /** Classes the firmware is capable of detecting — enumerated at device register. */
7478
- supportedClasses: z.array(NativeObjectClassEnum).readonly()
7758
+ const CamStreamDescriptorSchema = z.object({
7759
+ camStreamId: z.string().min(1),
7760
+ kind: CamStreamKindSchema,
7761
+ url: z.string().optional(),
7762
+ codec: z.string().optional(),
7763
+ resolution: CamStreamResolutionSchema.optional(),
7764
+ fps: z.number().positive().optional(),
7765
+ label: z.string().optional(),
7766
+ /** Device-level features (e.g. `battery-operated`) — drives broker policy. */
7767
+ deviceFeatures: z.array(z.string()).optional(),
7768
+ /** Eligible for automatic profile assignment. Absent = `true`. */
7769
+ autoEligible: z.boolean().optional(),
7770
+ /** Transport-specific opaque metadata (e.g. rfc4571 SDP). */
7771
+ metadata: z.record(z.string(), z.unknown()).optional()
7479
7772
  });
7480
- const nativeObjectDetectionCapability = {
7481
- name: "native-object-detection",
7773
+ const streamCatalogCapability = {
7774
+ name: "stream-catalog",
7482
7775
  scope: "device",
7483
7776
  mode: "singleton",
7484
7777
  deviceTypes: [DeviceType.Camera],
7485
- methods: {},
7486
- events: {
7487
- onDetected: { data: z.object({
7488
- deviceId: z.number(),
7489
- detection: NativeDetectionSchema
7490
- }) }
7491
- },
7492
- status: {
7493
- schema: NativeObjectDetectionStatusSchema,
7494
- kind: "push"
7778
+ methods: {
7779
+ getCatalog: method(
7780
+ z.object({ deviceId: z.number().int().nonnegative() }),
7781
+ z.array(CamStreamDescriptorSchema).readonly()
7782
+ )
7495
7783
  }
7496
7784
  };
7497
7785
  const ModelFormatSchema = z.enum(MODEL_FORMATS);
@@ -8728,7 +9016,8 @@ const PackageUpdateSchema = z.object({
8728
9016
  currentVersion: z.string(),
8729
9017
  latestVersion: z.string(),
8730
9018
  category: z.enum(["addon", "core"]),
8731
- requiresRestart: z.boolean()
9019
+ requiresRestart: z.boolean(),
9020
+ isSystem: z.boolean()
8732
9021
  });
8733
9022
  const PackageVersionInfoSchema = z.object({
8734
9023
  version: z.string(),
@@ -8761,6 +9050,42 @@ const UpdateFrameworkPackageResultSchema = z.object({
8761
9050
  /** Ms-epoch the server scheduled its self-restart. */
8762
9051
  restartingAt: z.number()
8763
9052
  });
9053
+ const BulkUpdateItemStatusSchema = z.enum([
9054
+ "queued",
9055
+ "updating",
9056
+ "done",
9057
+ "done-pending-restart",
9058
+ "failed"
9059
+ ]);
9060
+ const BulkUpdateItemSchema = z.object({
9061
+ name: z.string(),
9062
+ isSystem: z.boolean(),
9063
+ fromVersion: z.string(),
9064
+ toVersion: z.string(),
9065
+ status: BulkUpdateItemStatusSchema,
9066
+ error: z.string().optional(),
9067
+ startedAtMs: z.number().optional(),
9068
+ completedAtMs: z.number().optional()
9069
+ });
9070
+ const BulkUpdatePhaseSchema = z.enum([
9071
+ "regular",
9072
+ "system",
9073
+ "restarting",
9074
+ "finalizing"
9075
+ ]);
9076
+ const BulkUpdateStateSchema = z.object({
9077
+ id: z.string(),
9078
+ nodeId: z.string(),
9079
+ startedAtMs: z.number(),
9080
+ completedAtMs: z.number().optional(),
9081
+ total: z.number(),
9082
+ completed: z.number(),
9083
+ failed: z.number(),
9084
+ current: z.string().nullable(),
9085
+ phase: BulkUpdatePhaseSchema,
9086
+ cancelled: z.boolean(),
9087
+ items: z.array(BulkUpdateItemSchema).readonly()
9088
+ });
8764
9089
  const FrameworkPackageStatusSchema = z.object({
8765
9090
  packageName: z.string(),
8766
9091
  currentVersion: z.string(),
@@ -8902,7 +9227,7 @@ const addonsCapability = {
8902
9227
  getLastRestart: method(
8903
9228
  z.void(),
8904
9229
  z.object({
8905
- kind: z.enum(["framework-update", "manual", "system"]),
9230
+ kind: z.enum(["framework-update", "manual", "system", "framework-bulk-update"]),
8906
9231
  packageName: z.string().optional(),
8907
9232
  fromVersion: z.string().optional(),
8908
9233
  toVersion: z.string().optional(),
@@ -8992,11 +9317,70 @@ const addonsCapability = {
8992
9317
  updateFrameworkPackage: method(
8993
9318
  z.object({
8994
9319
  packageName: z.string().min(1),
8995
- version: z.string().optional()
9320
+ version: z.string().optional(),
9321
+ deferRestart: z.boolean().optional()
8996
9322
  }),
8997
9323
  UpdateFrameworkPackageResultSchema,
8998
9324
  { kind: "mutation", auth: "admin" }
8999
9325
  ),
9326
+ /**
9327
+ * Kicks off a server-side bulk update operation and returns the bulk
9328
+ * id immediately. The operation runs asynchronously; observe progress
9329
+ * via the `AddonsBulkUpdateProgress` event or `getBulkUpdateState`.
9330
+ * Items with `isSystem: true` use `deferRestart` — the hub restarts
9331
+ * ONCE at the end of the system phase, after all system packages are
9332
+ * installed.
9333
+ *
9334
+ * `items[].version` is REQUIRED — callers must pass the resolved
9335
+ * version from `listUpdates`. There is no `'latest'` default here
9336
+ * (unlike `updatePackage`) to guarantee deterministic bulk rolls.
9337
+ */
9338
+ startBulkUpdate: method(
9339
+ z.object({
9340
+ nodeId: z.string(),
9341
+ items: z.array(z.object({
9342
+ name: z.string(),
9343
+ version: z.string(),
9344
+ isSystem: z.boolean()
9345
+ })).readonly()
9346
+ }),
9347
+ z.object({ id: z.string() }),
9348
+ { kind: "mutation", auth: "admin" }
9349
+ ),
9350
+ /**
9351
+ * Returns the current state of a bulk update by id.
9352
+ * Returns `null` if the id is unknown or has been auto-cleaned
9353
+ * (5 minutes after `completedAt` the record is evicted from memory).
9354
+ */
9355
+ getBulkUpdateState: method(
9356
+ z.object({ id: z.string() }),
9357
+ BulkUpdateStateSchema.nullable(),
9358
+ { auth: "admin" }
9359
+ ),
9360
+ /**
9361
+ * Cancels an in-flight bulk update. The update loop exits after the
9362
+ * currently-processing item completes — cancellation is not
9363
+ * instantaneous. Has no effect once the `restarting` phase has been
9364
+ * entered (the hub is already shutting down at that point).
9365
+ * Returns `{ cancelled: false }` if the id is unknown, the operation
9366
+ * has already completed, or the `restarting` phase is active.
9367
+ */
9368
+ cancelBulkUpdate: method(
9369
+ z.object({ id: z.string() }),
9370
+ z.object({ cancelled: z.boolean() }),
9371
+ { kind: "mutation", auth: "admin" }
9372
+ ),
9373
+ /**
9374
+ * Lists all currently active (non-completed) bulk updates.
9375
+ * If `nodeId` is provided, filters to only bulk updates targeting
9376
+ * that node. Useful for restoring an in-progress banner on a fresh
9377
+ * page load when the UI reconnects mid-operation.
9378
+ */
9379
+ listActiveBulkUpdates: method(
9380
+ z.object({ nodeId: z.string().optional() }),
9381
+ z.array(BulkUpdateStateSchema).readonly(),
9382
+ { auth: "admin" }
9383
+ ),
9000
9384
  getVersions: method(
9001
9385
  z.object({ name: z.string() }),
9002
9386
  z.array(PackageVersionInfoSchema).readonly()
@@ -9077,385 +9461,410 @@ const PIPELINE_OWNER_CAPABILITY_NAMES = [
9077
9461
  "pipeline-runner"
9078
9462
  ];
9079
9463
  export {
9080
- nativeObjectDetectionCapability as $,
9081
- addonWidgetsSourceCapability as A,
9082
- addonsCapability as B,
9083
- adminUiCapability as C,
9084
- advancedNotifierCapability as D,
9085
- alertsCapability as E,
9086
- audioAnalysisCapability as F,
9087
- audioAnalyzerCapability as G,
9088
- audioCodecCapability as H,
9089
- authProviderCapability as I,
9090
- backupCapability as J,
9091
- cameraCredentialsCapability as K,
9092
- decoderCapability as L,
9093
- detectionPipelineCapability as M,
9094
- deviceExportCapability as N,
9095
- deviceManagerCapability as O,
9096
- deviceOpsCapability as P,
9097
- deviceStateCapability as Q,
9098
- embeddingEncoderCapability as R,
9099
- eventsCapability as S,
9100
- integrationsCapability as T,
9101
- intercomCapability as U,
9102
- localNetworkCapability as V,
9103
- logDestinationCapability as W,
9104
- meshNetworkCapability as X,
9105
- metricsProviderCapability as Y,
9106
- motionDetectionCapability as Z,
9107
- mqttBrokerCapability as _,
9464
+ metricsProviderCapability as $,
9465
+ addonSettingsCapability as A,
9466
+ addonWidgetsCapability as B,
9467
+ addonWidgetsSourceCapability as C,
9468
+ addonsCapability as D,
9469
+ adminUiCapability as E,
9470
+ advancedNotifierCapability as F,
9471
+ alertsCapability as G,
9472
+ audioAnalysisCapability as H,
9473
+ audioAnalyzerCapability as I,
9474
+ audioCodecCapability as J,
9475
+ authProviderCapability as K,
9476
+ backupCapability as L,
9477
+ cameraCredentialsCapability as M,
9478
+ cameraPipelineConfigCapability as N,
9479
+ decoderCapability as O,
9480
+ detectionPipelineCapability as P,
9481
+ deviceExportCapability as Q,
9482
+ deviceManagerCapability as R,
9483
+ deviceOpsCapability as S,
9484
+ deviceStateCapability as T,
9485
+ embeddingEncoderCapability as U,
9486
+ eventsCapability as V,
9487
+ integrationsCapability as W,
9488
+ intercomCapability as X,
9489
+ localNetworkCapability as Y,
9490
+ logDestinationCapability as Z,
9491
+ meshNetworkCapability as _,
9108
9492
  zoneRulesCapability as a,
9109
- AudioLevelSchema as a$,
9110
- networkAccessCapability as a0,
9111
- networkQualityCapability as a1,
9112
- nodesCapability as a2,
9113
- notificationOutputCapability as a3,
9114
- oauthIntegrationCapability as a4,
9115
- osdCapability as a5,
9116
- pipelineAnalyticsCapability as a6,
9117
- pipelineExecutorCapability as a7,
9118
- pipelineOrchestratorCapability as a8,
9119
- pipelineRunnerCapability as a9,
9120
- AccessoriesStatusSchema as aA,
9121
- AccessoryKind as aB,
9122
- AddBrokerInputSchema as aC,
9123
- AddonAutoUpdateSchema as aD,
9124
- AddonListItemSchema as aE,
9125
- AddonPageDeclarationSchema as aF,
9126
- AddonPageInfoSchema as aG,
9127
- AgentLoadSummarySchema as aH,
9128
- AlertSchema as aI,
9129
- AlertSeveritySchema as aJ,
9130
- AlertSourceSchema as aK,
9131
- AlertStatusSchema as aL,
9132
- ApiKeyRecordSchema as aM,
9133
- ApiKeySummarySchema as aN,
9134
- ArchiveEntrySchema as aO,
9135
- ArchiveManifestSchema as aP,
9136
- AudioAnalysisResultSchema as aQ,
9137
- AudioAnalysisSettingsSchema as aR,
9138
- AudioChunkInputSchema as aS,
9139
- AudioClassSummarySchema as aT,
9140
- AudioClassificationLabelSchema as aU,
9141
- AudioClassificationResultSchema as aV,
9142
- AudioCodecInfoSchema as aW,
9143
- AudioDecodeSessionConfigSchema as aX,
9144
- AudioEncodeSessionConfigSchema as aY,
9145
- AudioEncodedChunkSchema as aZ,
9146
- AudioEventSchema as a_,
9147
- platformProbeCapability as aa,
9148
- ptzCapability as ab,
9149
- rebootCapability as ac,
9150
- recordingCapability as ad,
9151
- recordingEngineCapability as ae,
9152
- restreamerCapability as af,
9153
- settingsStoreCapability as ag,
9154
- smtpProviderCapability as ah,
9155
- snapshotCapability as ai,
9156
- snapshotProviderCapability as aj,
9157
- ssoBridgeCapability as ak,
9158
- storageCapability as al,
9159
- storageProviderCapability as am,
9160
- streamBrokerCapability as an,
9161
- streamingEngineCapability as ao,
9162
- systemCapability as ap,
9163
- toastCapability as aq,
9164
- turnProviderCapability as ar,
9165
- userManagementCapability as as,
9166
- userPasskeysCapability as at,
9167
- webrtcCapability as au,
9168
- webrtcSessionCapability as av,
9169
- ACCESSORY_LABEL as aw,
9170
- APPLE_SA_TO_MACRO as ax,
9171
- AUDIO_BACKEND_CHOICES as ay,
9172
- AUDIO_MACRO_LABELS as az,
9493
+ AudioEncodeSessionConfigSchema as a$,
9494
+ motionDetectionCapability as a0,
9495
+ mqttBrokerCapability as a1,
9496
+ networkAccessCapability as a2,
9497
+ networkQualityCapability as a3,
9498
+ nodesCapability as a4,
9499
+ notificationOutputCapability as a5,
9500
+ oauthIntegrationCapability as a6,
9501
+ osdCapability as a7,
9502
+ pipelineAnalyticsCapability as a8,
9503
+ pipelineExecutorCapability as a9,
9504
+ APPLE_SA_TO_MACRO as aA,
9505
+ AUDIO_BACKEND_CHOICES as aB,
9506
+ AUDIO_MACRO_LABELS as aC,
9507
+ AccessoriesStatusSchema as aD,
9508
+ AccessoryKind as aE,
9509
+ AddBrokerInputSchema as aF,
9510
+ AddonAutoUpdateSchema as aG,
9511
+ AddonListItemSchema as aH,
9512
+ AddonPageDeclarationSchema as aI,
9513
+ AddonPageInfoSchema as aJ,
9514
+ AgentLoadSummarySchema as aK,
9515
+ AlertSchema as aL,
9516
+ AlertSeveritySchema as aM,
9517
+ AlertSourceSchema as aN,
9518
+ AlertStatusSchema as aO,
9519
+ ApiKeyRecordSchema as aP,
9520
+ ApiKeySummarySchema as aQ,
9521
+ ArchiveEntrySchema as aR,
9522
+ ArchiveManifestSchema as aS,
9523
+ AudioAnalysisResultSchema as aT,
9524
+ AudioAnalysisSettingsSchema as aU,
9525
+ AudioChunkInputSchema as aV,
9526
+ AudioClassSummarySchema as aW,
9527
+ AudioClassificationLabelSchema as aX,
9528
+ AudioClassificationResultSchema as aY,
9529
+ AudioCodecInfoSchema as aZ,
9530
+ AudioDecodeSessionConfigSchema as a_,
9531
+ pipelineOrchestratorCapability as aa,
9532
+ pipelineRunnerCapability as ab,
9533
+ platformProbeCapability as ac,
9534
+ ptzCapability as ad,
9535
+ rebootCapability as ae,
9536
+ recordingCapability as af,
9537
+ recordingEngineCapability as ag,
9538
+ restreamerCapability as ah,
9539
+ settingsStoreCapability as ai,
9540
+ smtpProviderCapability as aj,
9541
+ snapshotCapability as ak,
9542
+ snapshotProviderCapability as al,
9543
+ ssoBridgeCapability as am,
9544
+ storageCapability as an,
9545
+ storageProviderCapability as ao,
9546
+ streamBrokerCapability as ap,
9547
+ streamCatalogCapability as aq,
9548
+ streamingEngineCapability as ar,
9549
+ systemCapability as as,
9550
+ toastCapability as at,
9551
+ turnProviderCapability as au,
9552
+ userManagementCapability as av,
9553
+ userPasskeysCapability as aw,
9554
+ webrtcCapability as ax,
9555
+ webrtcSessionCapability as ay,
9556
+ ACCESSORY_LABEL as az,
9173
9557
  zoneAnalyticsCapability as b,
9174
- UnexposeInputSchema as b$,
9175
- AudioMetricsHistoryPointSchema as b0,
9176
- AudioMetricsHistorySchema as b1,
9177
- AudioMetricsSnapshotSchema as b2,
9178
- AudioPcmChunkSchema as b3,
9179
- AuthResultSchema as b4,
9180
- AutoUpdateSettingsSchema as b5,
9181
- AvailableIntegrationTypeSchema as b6,
9182
- BATTERY_DEVICE_PROFILE as b7,
9183
- BackupDestinationInfoSchema as b8,
9184
- BackupEntrySchema as b9,
9185
- CollectionColumnSchema as bA,
9186
- CollectionIndexSchema as bB,
9187
- ConfigEntrySchema$1 as bC,
9188
- ConfigSectionWithValuesSchema as bD,
9189
- ConfigTabDeclarationSchema as bE,
9190
- CreateApiKeyInputSchema as bF,
9191
- CreateApiKeyResultSchema as bG,
9192
- CreateIntegrationInputSchema as bH,
9193
- CreateScopedTokenInputSchema as bI,
9194
- CreateScopedTokenResultSchema as bJ,
9195
- CreateUserInputSchema as bK,
9196
- CustomActionInputSchema as bL,
9197
- DEFAULT_AUDIO_ANALYZER_CONFIG as bM,
9198
- DEFAULT_DECODER_HWACCEL_CONFIG as bN,
9199
- DEVICE_PROFILES as bO,
9200
- DEVICE_SETTINGS_CONTRIBUTION_METHODS as bP,
9201
- DEVICE_STATUS_METHOD as bQ,
9202
- DecodedAudioChunkSchema as bR,
9203
- DecodedFrameSchema as bS,
9204
- DecoderAssignmentSchema as bT,
9205
- DecoderSessionConfigSchema as bU,
9206
- DecoderStatsSchema as bV,
9207
- DeleteIntegrationResultSchema as bW,
9208
- DetectorOutputSchema as bX,
9209
- DeviceDiscoveryStatusSchema as bY,
9210
- ExposeInputSchema as bZ,
9211
- DeviceExportStatusSchema as b_,
9212
- BatteryStatusSchema as ba,
9213
- BoundingBoxSchema as bb,
9214
- BrightnessStatusSchema as bc,
9215
- BrokerAudioClientSchema as bd,
9216
- BrokerClientsSchema as be,
9217
- BrokerConnectionDetailsSchema as bf,
9218
- BrokerDecodedClientSchema as bg,
9219
- BrokerInfoSchema as bh,
9220
- BrokerRtspClientSchema as bi,
9221
- BrokerStatsSchema as bj,
9222
- BrokerStatusSchema$1 as bk,
9223
- CAM_PROFILE_ORDER as bl,
9224
- CamProfileSchema as bm,
9225
- CamStreamKindSchema as bn,
9226
- CamStreamResolutionSchema as bo,
9227
- CameraCredentialsSchema as bp,
9228
- CameraCredentialsStatusSchema as bq,
9229
- CameraMetricsSchema as br,
9230
- CameraMetricsWithDeviceIdSchema as bs,
9231
- CameraStreamSchema as bt,
9232
- CapScopeSchema as bu,
9233
- CapabilityBindingsSchema as bv,
9234
- ChargingStatus as bw,
9235
- ClientNetworkStatsSchema as bx,
9236
- ClusterAddonNodeDeploymentSchema as by,
9237
- ClusterAddonStatusEntrySchema as bz,
9558
+ DetectorOutputSchema as b$,
9559
+ AudioEncodedChunkSchema as b0,
9560
+ AudioEventSchema as b1,
9561
+ AudioLevelSchema as b2,
9562
+ AudioMetricsHistoryPointSchema as b3,
9563
+ AudioMetricsHistorySchema as b4,
9564
+ AudioMetricsSnapshotSchema as b5,
9565
+ AudioPcmChunkSchema as b6,
9566
+ AuthResultSchema as b7,
9567
+ AutoUpdateSettingsSchema as b8,
9568
+ AvailableIntegrationTypeSchema as b9,
9569
+ ChargingStatus as bA,
9570
+ ClientNetworkStatsSchema as bB,
9571
+ ClusterAddonNodeDeploymentSchema as bC,
9572
+ ClusterAddonStatusEntrySchema as bD,
9573
+ CollectionColumnSchema as bE,
9574
+ CollectionIndexSchema as bF,
9575
+ ConfigEntrySchema$1 as bG,
9576
+ ConfigSectionWithValuesSchema as bH,
9577
+ ConfigTabDeclarationSchema as bI,
9578
+ CreateApiKeyInputSchema as bJ,
9579
+ CreateApiKeyResultSchema as bK,
9580
+ CreateIntegrationInputSchema as bL,
9581
+ CreateScopedTokenInputSchema as bM,
9582
+ CreateScopedTokenResultSchema as bN,
9583
+ CreateUserInputSchema as bO,
9584
+ CustomActionInputSchema as bP,
9585
+ DEFAULT_AUDIO_ANALYZER_CONFIG as bQ,
9586
+ DEFAULT_DECODER_HWACCEL_CONFIG as bR,
9587
+ DEVICE_PROFILES as bS,
9588
+ DEVICE_SETTINGS_CONTRIBUTION_METHODS as bT,
9589
+ DEVICE_STATUS_METHOD as bU,
9590
+ DecodedAudioChunkSchema as bV,
9591
+ DecodedFrameSchema as bW,
9592
+ DecoderAssignmentSchema as bX,
9593
+ DecoderSessionConfigSchema as bY,
9594
+ DecoderStatsSchema as bZ,
9595
+ DeleteIntegrationResultSchema as b_,
9596
+ BATTERY_DEVICE_PROFILE as ba,
9597
+ BackupDestinationInfoSchema as bb,
9598
+ BackupEntrySchema as bc,
9599
+ BatteryStatusSchema as bd,
9600
+ BoundingBoxSchema as be,
9601
+ BrightnessStatusSchema as bf,
9602
+ BrokerAudioClientSchema as bg,
9603
+ BrokerClientsSchema as bh,
9604
+ BrokerConnectionDetailsSchema as bi,
9605
+ BrokerDecodedClientSchema as bj,
9606
+ BrokerInfoSchema as bk,
9607
+ BrokerRtspClientSchema as bl,
9608
+ BrokerStatsSchema as bm,
9609
+ BrokerStatusSchema$1 as bn,
9610
+ CAM_PROFILE_ORDER as bo,
9611
+ CamProfileSchema as bp,
9612
+ CamStreamDescriptorSchema as bq,
9613
+ CamStreamKindSchema as br,
9614
+ CamStreamResolutionSchema as bs,
9615
+ CameraCredentialsSchema as bt,
9616
+ CameraCredentialsStatusSchema as bu,
9617
+ CameraMetricsSchema as bv,
9618
+ CameraMetricsWithDeviceIdSchema as bw,
9619
+ CameraStreamSchema as bx,
9620
+ CapScopeSchema as by,
9621
+ CapabilityBindingsSchema as bz,
9238
9622
  streamParamsCapability as c,
9239
- NetworkAddressSchema as c$,
9240
- DeviceFeature as c0,
9241
- DeviceInfoSchema as c1,
9242
- DeviceNetworkStatsSchema as c2,
9243
- DeviceRole as c3,
9244
- DeviceStatusSchema as c4,
9245
- DeviceType as c5,
9246
- DiscoveredChildDeviceSchema as c6,
9247
- DiscoveredChildStatusSchema as c7,
9248
- DiscoveredDeviceSchema as c8,
9249
- DoorbellPressEventSchema as c9,
9250
- IntercomStatusSchema as cA,
9251
- LocationStatSchema as cB,
9252
- LogEntrySchema as cC,
9253
- LogLevelSchema$1 as cD,
9254
- LogStreamEntrySchema as cE,
9255
- MODEL_FORMATS as cF,
9256
- MediaFileSchema as cG,
9257
- MeshPeerSchema as cH,
9258
- MeshStatusSchema as cI,
9259
- MethodAccessSchema as cJ,
9260
- MotionAnalysisResultSchema as cK,
9261
- MotionEventSchema as cL,
9262
- MotionOnMotionChangedDataSchema as cM,
9263
- MotionRegionSchema as cN,
9264
- MotionSourceEnum as cO,
9265
- MotionSourcesSchema as cP,
9266
- MotionStatusSchema as cQ,
9267
- MotionTriggerRuntimeStateSchema as cR,
9268
- MotionTriggerStatusSchema as cS,
9269
- MotionZoneOptionsSchema as cT,
9270
- MotionZonePatchSchema as cU,
9271
- MotionZoneStatusSchema as cV,
9272
- StatusSchema as cW,
9273
- NativeDetectionSchema as cX,
9274
- NativeObjectClassEnum as cY,
9275
- NativeObjectDetectionStatusSchema as cZ,
9276
- NetworkAccessStatusSchema as c_,
9277
- DoorbellStatusSchema as ca,
9278
- EmbeddingInfoSchema as cb,
9279
- EmbeddingResultSchema as cc,
9280
- EncodedPacketSchema as cd,
9281
- EnrichedWidgetMetadataSchema as ce,
9282
- EventItemSchema as cf,
9283
- EventKindSchema as cg,
9284
- ExportSetupFieldSchema as ch,
9285
- ExportSetupSchema as ci,
9286
- ExposedDeviceSchema as cj,
9287
- ExposedResourceSchema as ck,
9288
- FeatureManifestSchema as cl,
9289
- FeatureProbeStatusSchema as cm,
9290
- FrameHandleFormatSchema as cn,
9291
- FrameHandleSchema as co,
9292
- FrameInputSchema as cp,
9293
- GetStreamWithCodecInputSchema as cq,
9294
- GlobalMetricsSchema as cr,
9295
- HWACCEL_OPTIONS as cs,
9296
- HealthStatusSchema as ct,
9297
- HistoryPointSchema as cu,
9298
- HistoryResolutionEnum as cv,
9299
- InstalledPackageSchema as cw,
9300
- IntegrationLiteSchema as cx,
9301
- IntegrationWithStateSchema as cy,
9302
- IntercomAbilitySchema as cz,
9303
- motionTriggerCapability as d,
9304
- StartEmbeddedInputSchema as d$,
9305
- NetworkEndpointSchema as d0,
9306
- NotificationHistoryEntrySchema as d1,
9307
- NotificationRuleSchema as d2,
9308
- NotificationSchema as d3,
9309
- OauthIntegrationDescriptorSchema as d4,
9310
- ObjectEventSchema as d5,
9311
- OrchestratorMetricsSchema as d6,
9312
- OsdOverlayKindEnum as d7,
9313
- OsdOverlayPatchSchema as d8,
9314
- OsdOverlaySchema as d9,
9315
- PtzPresetSchema as dA,
9316
- PtzStatusSchema as dB,
9317
- QueryFilterSchema as dC,
9318
- RegisteredStreamSchema as dD,
9319
- ReportMotionInputSchema as dE,
9320
- RtpSourceSchema as dF,
9321
- RtspRestreamEntrySchema as dG,
9322
- RunnerCameraConfigSchema as dH,
9323
- RunnerCameraDeviceUIFields as dI,
9324
- RunnerLocalLoadSchema as dJ,
9325
- RunnerLocalMetricsSchema as dK,
9326
- STORAGE_LOCATION_CARDINALITY as dL,
9327
- ScopedTokenSchema as dM,
9328
- ScopedTokenSummarySchema as dN,
9329
- SearchResultSchema as dO,
9330
- SegmentSchema as dP,
9331
- SendEmailInputSchema as dQ,
9332
- SendEmailResultSchema as dR,
9333
- SettingsPatchSchema as dS,
9334
- SettingsRecordSchema as dT,
9335
- SettingsSchemaWithValuesSchema as dU,
9336
- SettingsUpdateResultSchema as dV,
9337
- ShmRingStatsSchema as dW,
9338
- SmtpStatusSchema as dX,
9339
- SnapshotImageSchema as dY,
9340
- SpatialDetectionSchema as dZ,
9341
- SsoBridgeClaimsSchema as d_,
9342
- OsdPositionEnum as da,
9343
- OsdStatusSchema as db,
9344
- PIPELINE_FLOW_CAPABILITY_NAMES as dc,
9345
- PIPELINE_OWNER_CAPABILITY_NAMES as dd,
9346
- PackageUpdateSchema as de,
9347
- PackageVersionInfoSchema as df,
9348
- PasskeySummarySchema as dg,
9349
- PcmSampleFormatSchema as dh,
9350
- PerScopeBreakdownSchema as di,
9351
- PipelineAssignmentSchema as dj,
9352
- PipelineDefaultStepSchema as dk,
9353
- PipelineEngineChoiceSchema as dl,
9354
- PipelineRunResultBridge as dm,
9355
- PipelineStepInputSchema as dn,
9356
- PlaceholderReasonSchema as dp,
9357
- PolygonPointSchema as dq,
9358
- ProfileSlotSchema as dr,
9359
- ProfileSlotStatusSchema as ds,
9360
- ProviderStatusSchema as dt,
9361
- PtzAutotrackRuntimeStateSchema as du,
9362
- PtzAutotrackSettingsSchema as dv,
9363
- PtzAutotrackStatusSchema as dw,
9364
- PtzAutotrackTargetOptionSchema as dx,
9365
- PtzMoveCommandSchema as dy,
9366
- PtzPositionSchema as dz,
9623
+ MotionSourceEnum as c$,
9624
+ DeviceDiscoveryStatusSchema as c0,
9625
+ ExposeInputSchema as c1,
9626
+ DeviceExportStatusSchema as c2,
9627
+ UnexposeInputSchema as c3,
9628
+ DeviceFeature as c4,
9629
+ DeviceInfoSchema as c5,
9630
+ DeviceNetworkStatsSchema as c6,
9631
+ DeviceRole as c7,
9632
+ DeviceStatusSchema as c8,
9633
+ DeviceType as c9,
9634
+ InstalledPackageSchema as cA,
9635
+ IntegrationLiteSchema as cB,
9636
+ IntegrationWithStateSchema as cC,
9637
+ IntercomAbilitySchema as cD,
9638
+ IntercomStatusSchema as cE,
9639
+ LocationStatSchema as cF,
9640
+ LogEntrySchema as cG,
9641
+ LogLevelSchema$1 as cH,
9642
+ LogStreamEntrySchema as cI,
9643
+ MODEL_FORMATS as cJ,
9644
+ MaskGridDimsSchema as cK,
9645
+ MaskGridShapeSchema as cL,
9646
+ MaskLineShapeSchema as cM,
9647
+ MaskPointSchema as cN,
9648
+ MaskPolygonShapeSchema as cO,
9649
+ MaskPolygonVerticesSchema as cP,
9650
+ MaskRectShapeSchema as cQ,
9651
+ MaskShapeKindSchema as cR,
9652
+ MaskShapeSchema as cS,
9653
+ MediaFileSchema as cT,
9654
+ MeshPeerSchema as cU,
9655
+ MeshStatusSchema as cV,
9656
+ MethodAccessSchema as cW,
9657
+ MotionAnalysisResultSchema as cX,
9658
+ MotionEventSchema as cY,
9659
+ MotionOnMotionChangedDataSchema as cZ,
9660
+ MotionRegionSchema as c_,
9661
+ DiscoveredChildDeviceSchema as ca,
9662
+ DiscoveredChildStatusSchema as cb,
9663
+ DiscoveredDeviceSchema as cc,
9664
+ DoorbellPressEventSchema as cd,
9665
+ DoorbellStatusSchema as ce,
9666
+ EmbeddingInfoSchema as cf,
9667
+ EmbeddingResultSchema as cg,
9668
+ EncodedPacketSchema as ch,
9669
+ EnrichedWidgetMetadataSchema as ci,
9670
+ EventItemSchema as cj,
9671
+ EventKindSchema as ck,
9672
+ ExportSetupFieldSchema as cl,
9673
+ ExportSetupSchema as cm,
9674
+ ExposedDeviceSchema as cn,
9675
+ ExposedResourceSchema as co,
9676
+ FeatureManifestSchema as cp,
9677
+ FeatureProbeStatusSchema as cq,
9678
+ FrameHandleFormatSchema as cr,
9679
+ FrameHandleSchema as cs,
9680
+ FrameInputSchema as ct,
9681
+ GetStreamWithCodecInputSchema as cu,
9682
+ GlobalMetricsSchema as cv,
9683
+ HWACCEL_OPTIONS as cw,
9684
+ HealthStatusSchema as cx,
9685
+ HistoryPointSchema as cy,
9686
+ HistoryResolutionEnum as cz,
9687
+ privacyMaskCapability as d,
9688
+ RunnerCameraConfigSchema as d$,
9689
+ MotionSourcesSchema as d0,
9690
+ MotionStatusSchema as d1,
9691
+ MotionTriggerRuntimeStateSchema as d2,
9692
+ MotionTriggerStatusSchema as d3,
9693
+ MotionZoneOptionsSchema as d4,
9694
+ MotionZonePatchSchema as d5,
9695
+ MotionZoneRegionSchema as d6,
9696
+ MotionZoneStatusSchema as d7,
9697
+ StatusSchema as d8,
9698
+ NativeDetectionSchema as d9,
9699
+ PipelineDefaultStepSchema as dA,
9700
+ PipelineEngineChoiceSchema as dB,
9701
+ PipelineRunResultBridge as dC,
9702
+ PipelineStepInputSchema as dD,
9703
+ PlaceholderReasonSchema as dE,
9704
+ PolygonPointSchema as dF,
9705
+ PrivacyMaskOptionsSchema as dG,
9706
+ PrivacyMaskPatchSchema as dH,
9707
+ PrivacyMaskRegionSchema as dI,
9708
+ PrivacyMaskShapeSchema as dJ,
9709
+ PrivacyMaskStatusSchema as dK,
9710
+ ProfileSlotSchema as dL,
9711
+ ProfileSlotStatusSchema as dM,
9712
+ ProviderStatusSchema as dN,
9713
+ PtzAutotrackRuntimeStateSchema as dO,
9714
+ PtzAutotrackSettingsSchema as dP,
9715
+ PtzAutotrackStatusSchema as dQ,
9716
+ PtzAutotrackTargetOptionSchema as dR,
9717
+ PtzMoveCommandSchema as dS,
9718
+ PtzPositionSchema as dT,
9719
+ PtzPresetSchema as dU,
9720
+ PtzStatusSchema as dV,
9721
+ QueryFilterSchema as dW,
9722
+ RegisteredStreamSchema as dX,
9723
+ ReportMotionInputSchema as dY,
9724
+ RtpSourceSchema as dZ,
9725
+ RtspRestreamEntrySchema as d_,
9726
+ NativeObjectClassEnum as da,
9727
+ NativeObjectDetectionRuntimeStateSchema as db,
9728
+ NativeObjectDetectionStatusSchema as dc,
9729
+ NetworkAccessStatusSchema as dd,
9730
+ NetworkAddressSchema as de,
9731
+ NetworkEndpointSchema as df,
9732
+ NotificationHistoryEntrySchema as dg,
9733
+ NotificationRuleSchema as dh,
9734
+ NotificationSchema as di,
9735
+ OauthIntegrationDescriptorSchema as dj,
9736
+ ObjectEventSchema as dk,
9737
+ OrchestratorMetricsSchema as dl,
9738
+ OsdOverlayKindEnum as dm,
9739
+ OsdOverlayPatchSchema as dn,
9740
+ OsdOverlaySchema as dp,
9741
+ OsdPositionEnum as dq,
9742
+ OsdStatusSchema as dr,
9743
+ PIPELINE_FLOW_CAPABILITY_NAMES as ds,
9744
+ PIPELINE_OWNER_CAPABILITY_NAMES as dt,
9745
+ PackageUpdateSchema as du,
9746
+ PackageVersionInfoSchema as dv,
9747
+ PasskeySummarySchema as dw,
9748
+ PcmSampleFormatSchema as dx,
9749
+ PerScopeBreakdownSchema as dy,
9750
+ PipelineAssignmentSchema as dz,
9367
9751
  errMsg as e,
9368
- event as e$,
9369
- AbortUploadInputSchema as e0,
9370
- BeginDownloadInputSchema as e1,
9371
- BeginDownloadResultSchema as e2,
9372
- BeginUploadInputSchema as e3,
9373
- BeginUploadResultSchema as e4,
9374
- EndDownloadInputSchema as e5,
9375
- FinalizeUploadInputSchema as e6,
9376
- StorageLocationRefSchema as e7,
9377
- StorageLocationSchema as e8,
9378
- StorageLocationTypeSchema as e9,
9379
- TopologyServiceSchema as eA,
9380
- TrackSchema as eB,
9381
- TrackStateSchema as eC,
9382
- TrackedDetectionSchema as eD,
9383
- TurnServerSchema as eE,
9384
- UpdateIntegrationInputSchema as eF,
9385
- UpdateUserInputSchema as eG,
9386
- UserRecordSchema as eH,
9387
- UserSummarySchema as eI,
9388
- WELL_KNOWN_TABS as eJ,
9389
- WELL_KNOWN_TAB_MAP as eK,
9390
- WebrtcStreamChoiceSchema as eL,
9391
- WebrtcStreamTargetSchema as eM,
9392
- WidgetHostEnum as eN,
9393
- WidgetMetadataSchema as eO,
9394
- WidgetRemoteSchema as eP,
9395
- WidgetSizeEnum as eQ,
9396
- YAMNET_TO_MACRO as eR,
9397
- ZoneKindEnum as eS,
9398
- ZoneRuleModeEnum as eT,
9399
- ZoneRuleSchema as eU,
9400
- ZoneRuleStageEnum as eV,
9401
- ZoneRulesArraySchema as eW,
9402
- ZoneSchema as eX,
9403
- ZoneScopeBreakdownSchema as eY,
9404
- accessoryStableId as eZ,
9405
- deviceMatchesProfile as e_,
9406
- ProviderInfoSchema as ea,
9407
- ReadChunkInputSchema as eb,
9408
- TestLocationResultSchema as ec,
9409
- WriteChunkInputSchema as ed,
9410
- StreamFormatSchema as ee,
9411
- StreamInfoSchema as ef,
9412
- StreamNetworkStatsSchema as eg,
9413
- StreamParamsOptionsSchema as eh,
9414
- StreamParamsStatusSchema as ei,
9415
- StreamProfileConfigSchema as ej,
9416
- StreamProfileOptionsSchema as ek,
9417
- StreamProfilePatchSchema as el,
9418
- StreamProfileSchema as em,
9419
- StreamSourceEntrySchema$1 as en,
9420
- StreamSourceSchema as eo,
9421
- SubscribeAudioChunksInputSchema as ep,
9422
- SubscribeAudioChunksResultSchema as eq,
9423
- SubscribeFramesInputSchema as er,
9424
- SubscribeFramesResultSchema as es,
9425
- SwitchStatusSchema as et,
9426
- SystemMetricsSchema as eu,
9427
- TestConnectionResultSchema as ev,
9428
- ToastSchema as ew,
9429
- TokenScopeSchema as ex,
9430
- TopologyNodeSchema as ey,
9431
- TopologyProcessSchema as ez,
9432
- motionCapability as f,
9433
- expandCapMethods as f0,
9434
- getAudioMacroClassIds as f1,
9435
- isDeviceConfigCap as f2,
9436
- mapAudioLabelToMacro as f3,
9437
- method as f4,
9438
- resolveDeviceProfile as f5,
9439
- webrtcClientHintsSchema as f6,
9440
- featureProbeCapability as g,
9752
+ UserRecordSchema as e$,
9753
+ RunnerCameraDeviceUIFields as e0,
9754
+ RunnerLocalLoadSchema as e1,
9755
+ RunnerLocalMetricsSchema as e2,
9756
+ STORAGE_LOCATION_CARDINALITY as e3,
9757
+ ScopedTokenSchema as e4,
9758
+ ScopedTokenSummarySchema as e5,
9759
+ SearchResultSchema as e6,
9760
+ SegmentSchema as e7,
9761
+ SendEmailInputSchema as e8,
9762
+ SendEmailResultSchema as e9,
9763
+ StreamNetworkStatsSchema as eA,
9764
+ StreamParamsOptionsSchema as eB,
9765
+ StreamParamsStatusSchema as eC,
9766
+ StreamProfileConfigSchema as eD,
9767
+ StreamProfileOptionsSchema as eE,
9768
+ StreamProfilePatchSchema as eF,
9769
+ StreamProfileSchema as eG,
9770
+ StreamSourceEntrySchema$1 as eH,
9771
+ StreamSourceSchema as eI,
9772
+ SubscribeAudioChunksInputSchema as eJ,
9773
+ SubscribeAudioChunksResultSchema as eK,
9774
+ SubscribeFramesInputSchema as eL,
9775
+ SubscribeFramesResultSchema as eM,
9776
+ SwitchStatusSchema as eN,
9777
+ SystemMetricsSchema as eO,
9778
+ TestConnectionResultSchema as eP,
9779
+ ToastSchema as eQ,
9780
+ TokenScopeSchema as eR,
9781
+ TopologyNodeSchema as eS,
9782
+ TopologyProcessSchema as eT,
9783
+ TopologyServiceSchema as eU,
9784
+ TrackSchema as eV,
9785
+ TrackStateSchema as eW,
9786
+ TrackedDetectionSchema as eX,
9787
+ TurnServerSchema as eY,
9788
+ UpdateIntegrationInputSchema as eZ,
9789
+ UpdateUserInputSchema as e_,
9790
+ SettingsPatchSchema as ea,
9791
+ SettingsRecordSchema as eb,
9792
+ SettingsSchemaWithValuesSchema as ec,
9793
+ SettingsUpdateResultSchema as ed,
9794
+ ShmRingStatsSchema as ee,
9795
+ SmtpStatusSchema as ef,
9796
+ SnapshotImageSchema as eg,
9797
+ SpatialDetectionSchema as eh,
9798
+ SsoBridgeClaimsSchema as ei,
9799
+ StartEmbeddedInputSchema as ej,
9800
+ AbortUploadInputSchema as ek,
9801
+ BeginDownloadInputSchema as el,
9802
+ BeginDownloadResultSchema as em,
9803
+ BeginUploadInputSchema as en,
9804
+ BeginUploadResultSchema as eo,
9805
+ EndDownloadInputSchema as ep,
9806
+ FinalizeUploadInputSchema as eq,
9807
+ StorageLocationRefSchema as er,
9808
+ StorageLocationSchema as es,
9809
+ StorageLocationTypeSchema as et,
9810
+ ProviderInfoSchema as eu,
9811
+ ReadChunkInputSchema as ev,
9812
+ TestLocationResultSchema as ew,
9813
+ WriteChunkInputSchema as ex,
9814
+ StreamFormatSchema as ey,
9815
+ StreamInfoSchema as ez,
9816
+ motionTriggerCapability as f,
9817
+ UserSummarySchema as f0,
9818
+ WELL_KNOWN_TABS as f1,
9819
+ WELL_KNOWN_TAB_MAP as f2,
9820
+ WebrtcStreamChoiceSchema as f3,
9821
+ WebrtcStreamTargetSchema as f4,
9822
+ WidgetHostEnum as f5,
9823
+ WidgetMetadataSchema as f6,
9824
+ WidgetRemoteSchema as f7,
9825
+ WidgetSizeEnum as f8,
9826
+ YAMNET_TO_MACRO as f9,
9827
+ ZoneKindEnum as fa,
9828
+ ZoneRuleModeEnum as fb,
9829
+ ZoneRuleSchema as fc,
9830
+ ZoneRuleStageEnum as fd,
9831
+ ZoneRulesArraySchema as fe,
9832
+ ZoneSchema as ff,
9833
+ ZoneScopeBreakdownSchema as fg,
9834
+ accessoryStableId as fh,
9835
+ deviceMatchesProfile as fi,
9836
+ event as fj,
9837
+ expandCapMethods as fk,
9838
+ getAudioMacroClassIds as fl,
9839
+ isDeviceConfigCap as fm,
9840
+ mapAudioLabelToMacro as fn,
9841
+ method as fo,
9842
+ resolveDeviceProfile as fp,
9843
+ webrtcClientHintsSchema as fq,
9844
+ wiringAddonHealthSchema as fr,
9845
+ wiringHealthSnapshotSchema as fs,
9846
+ wiringNodeHealthSchema as ft,
9847
+ wiringProbeKindSchema as fu,
9848
+ wiringProbeResultSchema as fv,
9849
+ motionCapability as g,
9441
9850
  hydrateSchema as h,
9442
- doorbellCapability as i,
9443
- deviceStatusCapability as j,
9444
- deviceDiscoveryCapability as k,
9445
- cameraStreamsCapability as l,
9851
+ featureProbeCapability as i,
9852
+ doorbellCapability as j,
9853
+ deviceStatusCapability as k,
9854
+ deviceDiscoveryCapability as l,
9446
9855
  motionZonesCapability as m,
9447
- brightnessCapability as n,
9448
- batteryCapability as o,
9856
+ nativeObjectDetectionCapability as n,
9857
+ cameraStreamsCapability as o,
9449
9858
  ptzAutotrackCapability as p,
9450
- audioMetricsCapability as q,
9451
- deviceProviderCapability as r,
9859
+ brightnessCapability as q,
9860
+ batteryCapability as r,
9452
9861
  switchCapability as s,
9453
- accessoriesCapability as t,
9454
- addonPagesCapability as u,
9455
- addonPagesSourceCapability as v,
9456
- addonRoutesCapability as w,
9457
- addonSettingsCapability as x,
9458
- addonWidgetsCapability as y,
9862
+ audioMetricsCapability as t,
9863
+ deviceProviderCapability as u,
9864
+ accessoriesCapability as v,
9865
+ addonPagesCapability as w,
9866
+ addonPagesSourceCapability as x,
9867
+ addonRoutesCapability as y,
9459
9868
  zonesCapability as z
9460
9869
  };
9461
- //# sourceMappingURL=index-QRlzao1I.mjs.map
9870
+ //# sourceMappingURL=index-C2zzIDdX.mjs.map