@kusinta/iot-schema 0.2.0-beta.11 → 0.2.0-beta.12

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kusinta/iot-schema",
3
- "version": "0.2.0-beta.11",
3
+ "version": "0.2.0-beta.12",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "files": ["src"],
@@ -192,6 +192,22 @@ export enum PairingError {
192
192
  * @generated from enum value: PAIRING_ERROR_INTERNAL = 7;
193
193
  */
194
194
  INTERNAL = 7,
195
+
196
+ /**
197
+ * The request named no connector. Pairing always targets exactly one connector,
198
+ * chosen from the connector enumeration; an untargeted "pair anything" is refused
199
+ * rather than fanned out across every hub. Permanent for the request as sent —
200
+ * naming a connector and asking again is the fix, retrying identically is not —
201
+ * which is why this is not CONNECTOR_UNAVAILABLE, whose retry is reasonable.
202
+ *
203
+ * The gateway is the enforcer: connector_id is a message field, so proto cannot
204
+ * mark it required, and the check lives where the fan-out used to. A client whose
205
+ * schema predates this reads it as UNSPECIFIED and offers a retry, which is
206
+ * harmless — an app built against the enumeration always names a connector anyway.
207
+ *
208
+ * @generated from enum value: PAIRING_ERROR_CONNECTOR_REQUIRED = 8;
209
+ */
210
+ CONNECTOR_REQUIRED = 8,
195
211
  }
196
212
 
197
213
  /**
@@ -8,7 +8,7 @@ import { enumDesc, fileDesc, messageDesc, tsEnum } from "@bufbuild/protobuf/code
8
8
  * Describes the file kusinta/iot/common/v1/pairing.proto.
9
9
  */
10
10
  export const file_kusinta_iot_common_v1_pairing = /*@__PURE__*/
11
- fileDesc("CiNrdXNpbnRhL2lvdC9jb21tb24vdjEvcGFpcmluZy5wcm90bxIVa3VzaW50YS5pb3QuY29tbW9uLnYxIlgKElBhaXJpbmdFcnJvckRldGFpbBIxCgRjb2RlGAEgASgOMiMua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvchIPCgdtZXNzYWdlGAIgASgJIoIBCg1QYWlyaW5nV2luZG93Eh0KEGR1cmF0aW9uX3NlY29uZHMYASABKA1IAIgBARITCgtkZXZpY2VfaGludBgCIAEoCRIYCgttYXhfZGV2aWNlcxgDIAEoDUgBiAEBQhMKEV9kdXJhdGlvbl9zZWNvbmRzQg4KDF9tYXhfZGV2aWNlcyqiAgoMUGFpcmluZ0Vycm9yEh0KGVBBSVJJTkdfRVJST1JfVU5TUEVDSUZJRUQQABIeChpQQUlSSU5HX0VSUk9SX05PVF9FTlRJVExFRBABEiUKIVBBSVJJTkdfRVJST1JfQUxSRUFEWV9JTl9QUk9HUkVTUxACEicKI1BBSVJJTkdfRVJST1JfQ09OTkVDVE9SX1VOQVZBSUxBQkxFEAMSJAogUEFJUklOR19FUlJPUl9OT19ERVZJQ0VfQVBQRUFSRUQQBBIhCh1QQUlSSU5HX0VSUk9SX0RFVklDRV9VTlVTQUJMRRAFEh4KGlBBSVJJTkdfRVJST1JfV1JPTkdfREVWSUNFEAYSGgoWUEFJUklOR19FUlJPUl9JTlRFUk5BTBAHQgJIAWIGcHJvdG8z");
11
+ fileDesc("CiNrdXNpbnRhL2lvdC9jb21tb24vdjEvcGFpcmluZy5wcm90bxIVa3VzaW50YS5pb3QuY29tbW9uLnYxIlgKElBhaXJpbmdFcnJvckRldGFpbBIxCgRjb2RlGAEgASgOMiMua3VzaW50YS5pb3QuY29tbW9uLnYxLlBhaXJpbmdFcnJvchIPCgdtZXNzYWdlGAIgASgJIoIBCg1QYWlyaW5nV2luZG93Eh0KEGR1cmF0aW9uX3NlY29uZHMYASABKA1IAIgBARITCgtkZXZpY2VfaGludBgCIAEoCRIYCgttYXhfZGV2aWNlcxgDIAEoDUgBiAEBQhMKEV9kdXJhdGlvbl9zZWNvbmRzQg4KDF9tYXhfZGV2aWNlcyrIAgoMUGFpcmluZ0Vycm9yEh0KGVBBSVJJTkdfRVJST1JfVU5TUEVDSUZJRUQQABIeChpQQUlSSU5HX0VSUk9SX05PVF9FTlRJVExFRBABEiUKIVBBSVJJTkdfRVJST1JfQUxSRUFEWV9JTl9QUk9HUkVTUxACEicKI1BBSVJJTkdfRVJST1JfQ09OTkVDVE9SX1VOQVZBSUxBQkxFEAMSJAogUEFJUklOR19FUlJPUl9OT19ERVZJQ0VfQVBQRUFSRUQQBBIhCh1QQUlSSU5HX0VSUk9SX0RFVklDRV9VTlVTQUJMRRAFEh4KGlBBSVJJTkdfRVJST1JfV1JPTkdfREVWSUNFEAYSGgoWUEFJUklOR19FUlJPUl9JTlRFUk5BTBAHEiQKIFBBSVJJTkdfRVJST1JfQ09OTkVDVE9SX1JFUVVJUkVEEAhCAkgBYgZwcm90bzM");
12
12
 
13
13
  /**
14
14
  * Describes the message kusinta.iot.common.v1.PairingErrorDetail.
@@ -342,8 +342,9 @@ export declare const ManagementResultSchema: GenMessage<ManagementResult>;
342
342
  *
343
343
  * A payload case of its own rather than a ManagementRequest. Those are gated on a target —
344
344
  * a space, a device — and that is the justification for keeping them behind one wrapper.
345
- * This one names no target: connector_id is optional, and unset means every connector, so
346
- * it is authorized against the caller's role and nothing else.
345
+ * A connector is not a target the caller must reach the way a space is, so this is
346
+ * authorized against the caller's role and nothing else — but it must still name the
347
+ * connector to open (see connector_id), never every connector at once.
347
348
  *
348
349
  * Answered twice, and the two answers say different things at different times.
349
350
  * PairingStarted reports whether the window opened; PairingFinished reports what came of
@@ -354,13 +355,13 @@ export declare const ManagementResultSchema: GenMessage<ManagementResult>;
354
355
  */
355
356
  export declare type StartPairing = Message<"kusinta.iot.webrtc.v1.StartPairing"> & {
356
357
  /**
357
- * Which connector to open. Unset means every connector the gateway holds, which is the
358
- * sensible default: a device picks its hub by radio range, and asking a user to choose is
359
- * asking them to guess at something they cannot observe.
360
- *
361
- * Name one where the answer is not a guess — a device that will be linked to devices on a
362
- * particular hub has to join that hub, because links are held by the hub that brokered
363
- * them.
358
+ * Which connector to open. Required: pairing always targets exactly one connector,
359
+ * picked from the connector enumeration (see ConnectorsAnnounced and
360
+ * ConnectorInfo.supports_pairing). An untargeted request is refused with
361
+ * PairingError.CONNECTOR_REQUIRED, never fanned out across every hub — so that no
362
+ * client can open every radio at once, and so a device is paired onto the specific hub
363
+ * that will broker its links. The field is a message, so proto cannot mark it required;
364
+ * the gateway enforces it.
364
365
  *
365
366
  * @generated from field: kusinta.iot.identity.v1.ConnectorId connector_id = 1;
366
367
  */