@camstack/addon-static-turn 1.2.23 → 1.2.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- //#region ../types/dist/event-category-XfKNtfCc.mjs
2
+ //#region ../types/dist/event-category-CIa_iT6b.mjs
3
3
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
4
4
  EventCategory["SystemBoot"] = "system.boot";
5
5
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -15,6 +15,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
15
15
  */
16
16
  EventCategory["SystemRestartCompleted"] = "system.restart-completed";
17
17
  /**
18
+ * The hub reissued its own TLS certificate at boot (`ensureTlsCert`).
19
+ * Emitted only when the material on disk actually changed, so an
20
+ * operator who trusted the old certificate by hand is told rather than
21
+ * discovering it as a browser error. Payload `TlsCertChangedPayload`.
22
+ *
23
+ * Rule: docs/decisions/adr-0227-*.md
24
+ */
25
+ EventCategory["SystemTlsCertChanged"] = "system.tls-cert-changed";
26
+ /**
18
27
  * A newer addon or server-root package version was found by the
19
28
  * authoritative registry check. Emitted once when any observed
20
29
  * `latestVersion` changes (or a package/node first appears behind);
@@ -18623,6 +18632,12 @@ var CameraStatusSchema = object({
18623
18632
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
18624
18633
  fetchedAt: number()
18625
18634
  });
18635
+ var InferenceDeviceExclusionReasonSchema = _enum([
18636
+ "disabled",
18637
+ "unavailable",
18638
+ "cannot-host-camera-root",
18639
+ "accelerator-preferred"
18640
+ ]);
18626
18641
  var NodeInferenceDeviceSchema = object({
18627
18642
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
18628
18643
  key: string(),
@@ -18653,7 +18668,17 @@ var NodeInferenceDeviceSchema = object({
18653
18668
  * available per format; this is the stored selection that becomes the
18654
18669
  * default for EVERY camera landing on this accelerator.
18655
18670
  */
18656
- steps: record(string(), DeviceStepConfigSchema).optional()
18671
+ steps: record(string(), DeviceStepConfigSchema).optional(),
18672
+ /**
18673
+ * `null` when the device IS a camera-root candidate on this node; otherwise
18674
+ * the reason the dispatcher drops it. Computed by the SAME
18675
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
18676
+ * never disagree with the election — deriving it in the UI from
18677
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
18678
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
18679
+ * "an accelerator is serving" predicate).
18680
+ */
18681
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
18657
18682
  });
18658
18683
  var NodeInferenceDevicesSchema = object({
18659
18684
  nodeId: string(),
@@ -22434,7 +22459,12 @@ var ListResultSchema = object({
22434
22459
  probedAt: number()
22435
22460
  });
22436
22461
  var PreferredSchema = LocalInterfaceSchema.nullable();
22437
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22462
+ /**
22463
+ * Candidate base URL for the SDK to race on connect. Order matters —
22464
+ * the SDK should attempt these top-to-bottom with a short per-candidate
22465
+ * timeout (e.g. 1500ms) and cache the winner for the session.
22466
+ */
22467
+ var ConnectionEndpointSchema = object({
22438
22468
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
22439
22469
  label: string(),
22440
22470
  /** Fully-formed base URL with scheme + host + port. */
@@ -22477,7 +22507,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22477
22507
  * ordering between polls.
22478
22508
  */
22479
22509
  priority: number()
22480
- })).readonly() });
22510
+ });
22511
+ /**
22512
+ * Where the advertised local port came from. Ordered most → least
22513
+ * authoritative, and the whole point of returning it: a client must be able to
22514
+ * tell a FACT about the hub's socket from an echo of its own guess.
22515
+ */
22516
+ var LocalPortSourceEnum = _enum([
22517
+ "server-config",
22518
+ "server-env",
22519
+ "caller-hint",
22520
+ "default"
22521
+ ]);
22522
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
22523
+ var AdvertisedLocalPortSchema = object({
22524
+ port: number().int().min(1).max(65535),
22525
+ source: LocalPortSourceEnum
22526
+ });
22527
+ var GetConnectionEndpointsResultSchema = object({
22528
+ endpoints: array(ConnectionEndpointSchema).readonly(),
22529
+ /**
22530
+ * The port the hub built the LAN/loopback URLs with, and where that number
22531
+ * came from.
22532
+ *
22533
+ * Returned rather than merely applied, because "the URL is right" and "the
22534
+ * client can KNOW the URL is right" are different properties. A client that
22535
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
22536
+ * a hub that echoed the port the client sent, so it cannot decide whether to
22537
+ * race the candidate or discard it. With `source` it can: anything but
22538
+ * `caller-hint` is the hub's own socket.
22539
+ *
22540
+ * Absent on hubs predating this field — a client that finds it missing is
22541
+ * talking to an echoing hub and must degrade exactly as it does for
22542
+ * `caller-hint`.
22543
+ */
22544
+ localPort: AdvertisedLocalPortSchema
22545
+ });
22481
22546
  /**
22482
22547
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
22483
22548
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -22498,8 +22563,13 @@ var AllowedAddressesSchema = object({
22498
22563
  */
22499
22564
  addresses: array(string()).readonly() });
22500
22565
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
22501
- /** Local hub HTTP port to use in base URLs. */
22502
- port: number().int().min(1).max(65535),
22566
+ /**
22567
+ * LEGACY HINT — do not send from new code. Kept optional so clients
22568
+ * written against the echoing contract keep working; the hub uses it
22569
+ * only when it cannot read its own port, and says so via
22570
+ * `localPort.source === 'caller-hint'`.
22571
+ */
22572
+ port: number().int().min(1).max(65535).optional(),
22503
22573
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
22504
22574
  * candidate. Default `true`. */
22505
22575
  includeLoopback: boolean().optional(),
@@ -1,4 +1,4 @@
1
- //#region ../types/dist/event-category-XfKNtfCc.mjs
1
+ //#region ../types/dist/event-category-CIa_iT6b.mjs
2
2
  var EventCategory = /* @__PURE__ */ function(EventCategory) {
3
3
  EventCategory["SystemBoot"] = "system.boot";
4
4
  EventCategory["SystemAddonsReady"] = "system.addons-ready";
@@ -14,6 +14,15 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
14
14
  */
15
15
  EventCategory["SystemRestartCompleted"] = "system.restart-completed";
16
16
  /**
17
+ * The hub reissued its own TLS certificate at boot (`ensureTlsCert`).
18
+ * Emitted only when the material on disk actually changed, so an
19
+ * operator who trusted the old certificate by hand is told rather than
20
+ * discovering it as a browser error. Payload `TlsCertChangedPayload`.
21
+ *
22
+ * Rule: docs/decisions/adr-0227-*.md
23
+ */
24
+ EventCategory["SystemTlsCertChanged"] = "system.tls-cert-changed";
25
+ /**
17
26
  * A newer addon or server-root package version was found by the
18
27
  * authoritative registry check. Emitted once when any observed
19
28
  * `latestVersion` changes (or a package/node first appears behind);
@@ -18622,6 +18631,12 @@ var CameraStatusSchema = object({
18622
18631
  /** Unix timestamp (ms) when this snapshot was composed server-side. */
18623
18632
  fetchedAt: number()
18624
18633
  });
18634
+ var InferenceDeviceExclusionReasonSchema = _enum([
18635
+ "disabled",
18636
+ "unavailable",
18637
+ "cannot-host-camera-root",
18638
+ "accelerator-preferred"
18639
+ ]);
18625
18640
  var NodeInferenceDeviceSchema = object({
18626
18641
  /** Stable per-node device key, e.g. `openvino:npu`, `edgetpu:usb`, `cpu`. */
18627
18642
  key: string(),
@@ -18652,7 +18667,17 @@ var NodeInferenceDeviceSchema = object({
18652
18667
  * available per format; this is the stored selection that becomes the
18653
18668
  * default for EVERY camera landing on this accelerator.
18654
18669
  */
18655
- steps: record(string(), DeviceStepConfigSchema).optional()
18670
+ steps: record(string(), DeviceStepConfigSchema).optional(),
18671
+ /**
18672
+ * `null` when the device IS a camera-root candidate on this node; otherwise
18673
+ * the reason the dispatcher drops it. Computed by the SAME
18674
+ * `resolveInferenceDeviceEligibility` the dispatcher runs, so this view can
18675
+ * never disagree with the election — deriving it in the UI from
18676
+ * `enabled`/`available` would silently miss `cannot-host-camera-root` (needs
18677
+ * the node's model catalog) and `accelerator-preferred` (needs the node-wide
18678
+ * "an accelerator is serving" predicate).
18679
+ */
18680
+ exclusion: InferenceDeviceExclusionReasonSchema.nullable()
18656
18681
  });
18657
18682
  var NodeInferenceDevicesSchema = object({
18658
18683
  nodeId: string(),
@@ -22433,7 +22458,12 @@ var ListResultSchema = object({
22433
22458
  probedAt: number()
22434
22459
  });
22435
22460
  var PreferredSchema = LocalInterfaceSchema.nullable();
22436
- var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22461
+ /**
22462
+ * Candidate base URL for the SDK to race on connect. Order matters —
22463
+ * the SDK should attempt these top-to-bottom with a short per-candidate
22464
+ * timeout (e.g. 1500ms) and cache the winner for the session.
22465
+ */
22466
+ var ConnectionEndpointSchema = object({
22437
22467
  /** Operator-facing label (e.g. "LAN — en0", "Public tunnel"). */
22438
22468
  label: string(),
22439
22469
  /** Fully-formed base URL with scheme + host + port. */
@@ -22476,7 +22506,42 @@ var GetConnectionEndpointsResultSchema = object({ endpoints: array(object({
22476
22506
  * ordering between polls.
22477
22507
  */
22478
22508
  priority: number()
22479
- })).readonly() });
22509
+ });
22510
+ /**
22511
+ * Where the advertised local port came from. Ordered most → least
22512
+ * authoritative, and the whole point of returning it: a client must be able to
22513
+ * tell a FACT about the hub's socket from an echo of its own guess.
22514
+ */
22515
+ var LocalPortSourceEnum = _enum([
22516
+ "server-config",
22517
+ "server-env",
22518
+ "caller-hint",
22519
+ "default"
22520
+ ]);
22521
+ /** The port every LAN/loopback `baseUrl` in the same result was built with. */
22522
+ var AdvertisedLocalPortSchema = object({
22523
+ port: number().int().min(1).max(65535),
22524
+ source: LocalPortSourceEnum
22525
+ });
22526
+ var GetConnectionEndpointsResultSchema = object({
22527
+ endpoints: array(ConnectionEndpointSchema).readonly(),
22528
+ /**
22529
+ * The port the hub built the LAN/loopback URLs with, and where that number
22530
+ * came from.
22531
+ *
22532
+ * Returned rather than merely applied, because "the URL is right" and "the
22533
+ * client can KNOW the URL is right" are different properties. A client that
22534
+ * only sees a corrected URL cannot distinguish a hub that fixed the port from
22535
+ * a hub that echoed the port the client sent, so it cannot decide whether to
22536
+ * race the candidate or discard it. With `source` it can: anything but
22537
+ * `caller-hint` is the hub's own socket.
22538
+ *
22539
+ * Absent on hubs predating this field — a client that finds it missing is
22540
+ * talking to an echoing hub and must degrade exactly as it does for
22541
+ * `caller-hint`.
22542
+ */
22543
+ localPort: AdvertisedLocalPortSchema
22544
+ });
22480
22545
  /**
22481
22546
  * The chosen outbound endpoint for notification artifacts. `baseUrl: null` =
22482
22547
  * AUTO (resolved from the candidate ranking at send time); `resolved` reports
@@ -22497,8 +22562,13 @@ var AllowedAddressesSchema = object({
22497
22562
  */
22498
22563
  addresses: array(string()).readonly() });
22499
22564
  method(_void(), ListResultSchema), method(_void(), PreferredSchema), method(object({
22500
- /** Local hub HTTP port to use in base URLs. */
22501
- port: number().int().min(1).max(65535),
22565
+ /**
22566
+ * LEGACY HINT — do not send from new code. Kept optional so clients
22567
+ * written against the echoing contract keep working; the hub uses it
22568
+ * only when it cannot read its own port, and says so via
22569
+ * `localPort.source === 'caller-hint'`.
22570
+ */
22571
+ port: number().int().min(1).max(65535).optional(),
22502
22572
  /** Include `http(s)://127.0.0.1:<port>` as the lowest-priority
22503
22573
  * candidate. Default `true`. */
22504
22574
  includeLoopback: boolean().optional(),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camstack/addon-static-turn",
3
- "version": "1.2.23",
3
+ "version": "1.2.25",
4
4
  "description": "Static / self-hosted (coturn) TURN provider for CamStack",
5
5
  "keywords": [
6
6
  "camstack",