@bikefinder/sdk 0.1.6 → 0.1.8

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/README.md CHANGED
@@ -50,9 +50,9 @@ The application owns subscription sharing, retained data and account scope. Subs
50
50
 
51
51
  The application's Auth0 SDK supplies tokens and handles refresh. Create a new client for a new account session. `dispose()` aborts HTTP requests and stops both connections. Requests use bearer authentication, omit cookies and reject redirects. Network/validation failures reject; HTTP Problem Details are available as `result.error` by default. Writes are never automatically retried; a `503 operation_unconfirmed` may already have committed.
52
52
 
53
- REST calls return response JSON unchanged with generated static types. The API validates and converts stored data before responding; `readIssues` identifies unusable stored fields. Response validation is opt-in for both REST and SignalR: import `zTrackerDocument` from `@bikefinder/sdk/schemas` and call `.parse(value)` when the caller requires a runtime boundary check. Both transports reference the same generated payload types. Firestore responses come from the actual C# DTOs in `Firestore/TrackerData.cs` and `Firestore/ResourceData.cs`. Additional metadata remains in explicit JSON extension fields. Server-serialized response fixtures are validated by both API and generated-client tests. IDs are exact Firestore IDs.
53
+ REST calls automatically validate response structure without transforming response JSON. The API validates and converts stored data before responding; `readIssues` identifies unusable stored fields. Stream values use the native SignalR decoder; import `zTrackerDocument` from `@bikefinder/sdk/schemas` and call `.parse(value)` for the same runtime boundary check on a stream message. Both transports reference the same generated payload types. Firestore responses come from the actual C# DTOs in `Firestore/TrackerData.cs` and `Firestore/ResourceData.cs`. Additional metadata remains in explicit JSON extension fields. Server-serialized response fixtures are validated by both API and generated-client tests. IDs are exact Firestore IDs.
54
54
 
55
- Other native resources expose their known fields through resource-specific document types. Their C# contracts expose only interpreted fields; unrelated stored fields stay inside the API. Tracker reports and statistics have concrete models, and access-code storage is omitted from responses. Observation values are generated unions: after `observation.definitionId === 5`, `observation.value.percent` is a number. Current readings expose the same discriminator; check `observationId !== null` before using a present reading. Device settings, the built-in workflow descriptor and command argument tuples are generated from the canonical protocol JSON contracts. Bike and preference patches expose supported properties and distinguish omission from explicit null. Optional response validators preserve additional API fields while checking known values and required properties. Workflow diagnostic states are extensible strings, including `idle` and `rest`; display or preserve unfamiliar states. Request models retain their declared constraints and closed objects reject unknown write fields. Shared payloads have generated read variants so a tolerant response never weakens a request schema.
55
+ Other native resources expose their known fields through resource-specific document types. Their C# contracts expose only interpreted fields; unrelated stored fields stay inside the API. Tracker reports and statistics have concrete models, and access-code storage is omitted from responses. Observation values are generated unions: after `observation.definitionId === 5`, `observation.value.percent` is a number. Current readings expose the same discriminator; check `observationId !== null` before using a present reading. Device settings, the built-in workflow descriptor and command argument tuples are generated from the canonical protocol JSON contracts. Bike and preference patches expose supported properties and distinguish omission from explicit null. Response validators preserve additional API fields while checking known values and required properties. Workflow diagnostic states are extensible strings, including `idle` and `rest`; display or preserve unfamiliar states. Request models retain their declared constraints and closed objects reject unknown write fields. Shared payloads have generated read variants so a tolerant response never weakens a request schema.
56
56
 
57
57
  The handwritten entry point only configures clients, authentication and disposal. Hub methods, wire names and streaming signatures are generated. A generated type-only bridge reuses OpenAPI payload definitions instead of publishing a second set of models. There is no RxJS or MQTT dependency.
58
58
 
@@ -117,9 +117,10 @@ Command reads validate stored identity, catalog arguments, artifacts, and execut
117
117
 
118
118
  ## Supported API consumers
119
119
 
120
- `@bikefinder/sdk@0.1.6` is the supported baseline for the 2026-11-07 minimum-rest
121
- and optional response-validation release. Earlier SDKs have closed workflow-state
122
- validators and should upgrade for the extensible diagnostic response contract.
120
+ `@bikefinder/sdk@0.1.7` is the supported baseline for the 2026-11-07 minimum-rest
121
+ release with automatic response validation and extensible diagnostic strings.
122
+ Older closed-state readers should upgrade for the extensible diagnostic contract.
123
+ SDK 0.1.6 disables automatic response validation; upgrade to 0.1.7 to retain it.
123
124
  The preceding prelaunch cutover retired experimental `@bikefinder/api-client`
124
125
  releases and their older AWS contracts. The `/v1` route version is unchanged.
125
126
  Future breaking changes still require an explicit retirement decision or a
@@ -144,7 +145,7 @@ version for breaking changes and retain the supported v1 routes. Raising the
144
145
  oldest supported SDK version is an explicit retirement decision, not a routine
145
146
  way to pass CI. Dev deployment and production promotion both require this job.
146
147
 
147
- Explicit runtime validation still rejects malformed known data. Callers choosing
148
- it should retain last valid stream messages and isolate failures per resource. When patching
148
+ Runtime validation rejects malformed known data. Stream consumers should retain
149
+ last valid messages and isolate failures per resource. When patching
149
150
  settings, send only changed supported fields; preserve unfamiliar response fields
150
151
  and do not copy a full response into a write payload.
@@ -595,7 +595,7 @@ export declare const observationValueSchema: {
595
595
  readonly required: readonly ["pci", "earfcn", "rsrp", "rsrq"];
596
596
  readonly additionalProperties: false;
597
597
  };
598
- readonly CellScan: {
598
+ readonly CellularEnvironment: {
599
599
  readonly type: "object";
600
600
  readonly properties: {
601
601
  readonly serving: {
@@ -5216,13 +5216,13 @@ export declare const observationValueSchema: {
5216
5216
  };
5217
5217
  };
5218
5218
  };
5219
- readonly "radio.bleScan": {
5219
+ readonly "radio.bleDevices": {
5220
5220
  readonly type: "array";
5221
5221
  readonly items: {
5222
5222
  readonly $ref: "#/$defs/BleDevice";
5223
5223
  };
5224
5224
  readonly maxItems: 20;
5225
- readonly title: "Radio ble scan";
5225
+ readonly title: "Nearby BLE devices";
5226
5226
  readonly description: "BLE scan evidence is distinct from BLE enabled/unlocked status.";
5227
5227
  readonly "x-bf": {
5228
5228
  readonly definitionId: 151;
@@ -5230,37 +5230,37 @@ export declare const observationValueSchema: {
5230
5230
  readonly subject: "device";
5231
5231
  readonly producer: "device";
5232
5232
  readonly presentation: {
5233
- readonly displayName: "Radio ble scan";
5233
+ readonly displayName: "Nearby BLE devices";
5234
5234
  readonly description: "BLE scan evidence is distinct from BLE enabled/unlocked status.";
5235
5235
  readonly hiddenByDefault: false;
5236
5236
  readonly formatter: "bleScan";
5237
5237
  };
5238
5238
  };
5239
5239
  };
5240
- readonly "radio.cellScan": {
5241
- readonly $ref: "#/$defs/CellScan";
5242
- readonly title: "Radio cell scan";
5243
- readonly description: "Cell scan and registration latency are distinct facts; distinguish passive serving-cell updates from extended scans.";
5240
+ readonly "radio.cellularEnvironment": {
5241
+ readonly $ref: "#/$defs/CellularEnvironment";
5242
+ readonly title: "Cellular environment";
5243
+ readonly description: "Coherent serving-cell identity, radio technology and signal evidence, with neighbouring or global cells when explicitly requested. Routine tracking reads serving-cell information without an extended cell search.";
5244
5244
  readonly "x-bf": {
5245
5245
  readonly definitionId: 152;
5246
5246
  readonly role: "measurement";
5247
5247
  readonly subject: "device";
5248
5248
  readonly producer: "device";
5249
5249
  readonly presentation: {
5250
- readonly displayName: "Radio cell scan";
5251
- readonly description: "Cell scan and registration latency are distinct facts; distinguish passive serving-cell updates from extended scans.";
5250
+ readonly displayName: "Cellular environment";
5251
+ readonly description: "Coherent serving-cell identity, radio technology and signal evidence, with neighbouring or global cells when explicitly requested. Routine tracking reads serving-cell information without an extended cell search.";
5252
5252
  readonly hiddenByDefault: false;
5253
5253
  readonly formatter: "cellScan";
5254
5254
  };
5255
5255
  };
5256
5256
  };
5257
- readonly "radio.wifiScan": {
5257
+ readonly "radio.wifiAccessPoints": {
5258
5258
  readonly type: "array";
5259
5259
  readonly items: {
5260
5260
  readonly $ref: "#/$defs/WifiAccessPoint";
5261
5261
  };
5262
5262
  readonly maxItems: 20;
5263
- readonly title: "Radio wifi scan";
5263
+ readonly title: "Wi-Fi access points";
5264
5264
  readonly description: "The coherent Wi-Fi scan is positioning evidence; retain an empty successful scan separately from a failed scan.";
5265
5265
  readonly "x-bf": {
5266
5266
  readonly definitionId: 153;
@@ -5268,7 +5268,7 @@ export declare const observationValueSchema: {
5268
5268
  readonly subject: "device";
5269
5269
  readonly producer: "device";
5270
5270
  readonly presentation: {
5271
- readonly displayName: "Radio wifi scan";
5271
+ readonly displayName: "Wi-Fi access points";
5272
5272
  readonly description: "The coherent Wi-Fi scan is positioning evidence; retain an empty successful scan separately from a failed scan.";
5273
5273
  readonly hiddenByDefault: false;
5274
5274
  readonly formatter: "wifiScan";
@@ -5384,7 +5384,9 @@ export declare const observationValueSchema: {
5384
5384
  readonly type: "boolean";
5385
5385
  };
5386
5386
  readonly mode: {
5387
- readonly type: "string";
5387
+ readonly type: "integer";
5388
+ readonly minimum: 0;
5389
+ readonly maximum: 2;
5388
5390
  };
5389
5391
  };
5390
5392
  readonly required: readonly ["completedCount", "trigger", "outcome", "elapsedMs", "activeMs", "activityMs", "activityEntries", "recoveries", "saturated", "mode"];
@@ -5428,11 +5430,12 @@ export declare const observationValueSchema: {
5428
5430
  readonly maximum: 65535;
5429
5431
  };
5430
5432
  readonly mode: {
5431
- readonly type: "string";
5433
+ readonly type: "integer";
5434
+ readonly minimum: 0;
5435
+ readonly maximum: 2;
5432
5436
  };
5433
5437
  readonly state: {
5434
5438
  readonly type: "string";
5435
- readonly enum: readonly ["idle", "battery", "connect", "cell", "wifi", "publish", "listen", "gps", "gpsPublish", "rest"];
5436
5439
  };
5437
5440
  readonly owner: {
5438
5441
  readonly type: "string";
@@ -5515,7 +5518,7 @@ export declare const observationValueSchema: {
5515
5518
  readonly label: "Duration";
5516
5519
  readonly format: "duration";
5517
5520
  }];
5518
- readonly extensibleEnumFields: readonly ["mode"];
5521
+ readonly extensibleEnumFields: readonly ["mode", "state"];
5519
5522
  };
5520
5523
  };
5521
5524
  };
@@ -6112,9 +6115,11 @@ export declare const settingsValueSchema: {
6112
6115
  readonly description: "Advertising interval in 0.625 millisecond units. Applied by the peripheral owner independently of LTE connection work.";
6113
6116
  };
6114
6117
  readonly mode: {
6115
- readonly type: "string";
6116
- readonly title: "Tracking mode";
6117
- readonly description: "Underlying firmware behavior. Offered tracking modes are cloud-configurable profiles.";
6118
+ readonly type: "integer";
6119
+ readonly minimum: 0;
6120
+ readonly maximum: 2;
6121
+ readonly title: "Firmware mode ID";
6122
+ readonly description: "Stable integer firmware mode ID: 0, 1 or 2. Each mode’s stages are defined in firmware. Public mode names are mapped to these IDs by the assigned tracking mode catalog.";
6118
6123
  };
6119
6124
  readonly poweredReportIntervalSeconds: {
6120
6125
  readonly type: "integer";
@@ -6123,47 +6128,47 @@ export declare const settingsValueSchema: {
6123
6128
  readonly title: "Powered report interval";
6124
6129
  readonly description: "Period between tracking reports on confirmed external power.";
6125
6130
  };
6126
- readonly standardIdleSeconds: {
6131
+ readonly mode0IdleSeconds: {
6127
6132
  readonly type: "integer";
6128
6133
  readonly minimum: 60;
6129
6134
  readonly maximum: 604800;
6130
- readonly title: "Standard idle duration";
6131
- readonly description: "Maximum battery idle duration after a standard cycle.";
6135
+ readonly title: "Mode 0 idle duration";
6136
+ readonly description: "Maximum battery idle duration after a mode 0 cycle, measured from the end of work.";
6132
6137
  };
6133
- readonly securityIdleSeconds: {
6138
+ readonly mode1IdleSeconds: {
6134
6139
  readonly type: "integer";
6135
6140
  readonly minimum: 60;
6136
6141
  readonly maximum: 604800;
6137
- readonly title: "Security idle duration";
6138
- readonly description: "Maximum battery idle duration after a security cycle.";
6142
+ readonly title: "Mode 1 idle duration";
6143
+ readonly description: "Maximum battery idle duration after a mode 1 cycle, measured from the end of work.";
6139
6144
  };
6140
- readonly trackingIdleSeconds: {
6145
+ readonly mode2IdleSeconds: {
6141
6146
  readonly type: "integer";
6142
6147
  readonly minimum: 10;
6143
6148
  readonly maximum: 86400;
6144
- readonly title: "Tracking idle duration";
6145
- readonly description: "Maximum battery idle duration after a tracking cycle.";
6149
+ readonly title: "Mode 2 idle duration";
6150
+ readonly description: "Maximum battery idle duration after a mode 2 cycle, measured from the end of work.";
6146
6151
  };
6147
- readonly standardMinimumRestSeconds: {
6152
+ readonly mode0MinimumRestSeconds: {
6148
6153
  readonly type: "integer";
6149
6154
  readonly minimum: 0;
6150
6155
  readonly maximum: 86400;
6151
- readonly title: "Standard movement rest";
6152
- readonly description: "Minimum rest before movement starts another standard cycle.";
6156
+ readonly title: "Mode 0 minimum rest";
6157
+ readonly description: "Duration after a mode 0 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.";
6153
6158
  };
6154
- readonly securityMinimumRestSeconds: {
6159
+ readonly mode1MinimumRestSeconds: {
6155
6160
  readonly type: "integer";
6156
6161
  readonly minimum: 0;
6157
6162
  readonly maximum: 86400;
6158
- readonly title: "Security movement rest";
6159
- readonly description: "Minimum rest before movement starts another security cycle.";
6163
+ readonly title: "Mode 1 minimum rest";
6164
+ readonly description: "Duration after a mode 1 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.";
6160
6165
  };
6161
- readonly trackingMinimumRestSeconds: {
6166
+ readonly mode2MinimumRestSeconds: {
6162
6167
  readonly type: "integer";
6163
6168
  readonly minimum: 0;
6164
6169
  readonly maximum: 86400;
6165
- readonly title: "Tracking movement rest";
6166
- readonly description: "Minimum rest before movement starts another tracking cycle.";
6170
+ readonly title: "Mode 2 minimum rest";
6171
+ readonly description: "Duration after a mode 2 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.";
6167
6172
  };
6168
6173
  readonly psmResidenceSeconds: {
6169
6174
  readonly type: "integer";
@@ -6363,7 +6368,7 @@ export declare const settingsValueSchema: {
6363
6368
  readonly "x-bf": {
6364
6369
  readonly domain: "settings";
6365
6370
  readonly version: 1;
6366
- readonly settingsSchemaVersion: 28;
6371
+ readonly settingsSchemaVersion: 33;
6367
6372
  };
6368
6373
  };
6369
6374
  export declare const observationDefinitions: readonly [{
@@ -8253,36 +8258,36 @@ export declare const observationDefinitions: readonly [{
8253
8258
  };
8254
8259
  }, {
8255
8260
  readonly id: 151;
8256
- readonly name: "radio.bleScan";
8261
+ readonly name: "radio.bleDevices";
8257
8262
  readonly role: "measurement";
8258
8263
  readonly subject: "device";
8259
8264
  readonly producer: "device";
8260
8265
  readonly presentation: {
8261
- readonly displayName: "Radio ble scan";
8266
+ readonly displayName: "Nearby BLE devices";
8262
8267
  readonly description: "BLE scan evidence is distinct from BLE enabled/unlocked status.";
8263
8268
  readonly hiddenByDefault: false;
8264
8269
  readonly formatter: "bleScan";
8265
8270
  };
8266
8271
  }, {
8267
8272
  readonly id: 152;
8268
- readonly name: "radio.cellScan";
8273
+ readonly name: "radio.cellularEnvironment";
8269
8274
  readonly role: "measurement";
8270
8275
  readonly subject: "device";
8271
8276
  readonly producer: "device";
8272
8277
  readonly presentation: {
8273
- readonly displayName: "Radio cell scan";
8274
- readonly description: "Cell scan and registration latency are distinct facts; distinguish passive serving-cell updates from extended scans.";
8278
+ readonly displayName: "Cellular environment";
8279
+ readonly description: "Coherent serving-cell identity, radio technology and signal evidence, with neighbouring or global cells when explicitly requested. Routine tracking reads serving-cell information without an extended cell search.";
8275
8280
  readonly hiddenByDefault: false;
8276
8281
  readonly formatter: "cellScan";
8277
8282
  };
8278
8283
  }, {
8279
8284
  readonly id: 153;
8280
- readonly name: "radio.wifiScan";
8285
+ readonly name: "radio.wifiAccessPoints";
8281
8286
  readonly role: "measurement";
8282
8287
  readonly subject: "device";
8283
8288
  readonly producer: "device";
8284
8289
  readonly presentation: {
8285
- readonly displayName: "Radio wifi scan";
8290
+ readonly displayName: "Wi-Fi access points";
8286
8291
  readonly description: "The coherent Wi-Fi scan is positioning evidence; retain an empty successful scan separately from a failed scan.";
8287
8292
  readonly hiddenByDefault: false;
8288
8293
  readonly formatter: "wifiScan";
@@ -8386,7 +8391,7 @@ export declare const observationDefinitions: readonly [{
8386
8391
  readonly label: "Duration";
8387
8392
  readonly format: "duration";
8388
8393
  }];
8389
- readonly extensibleEnumFields: readonly ["mode"];
8394
+ readonly extensibleEnumFields: readonly ["mode", "state"];
8390
8395
  };
8391
8396
  }, {
8392
8397
  readonly id: 159;
@@ -8957,13 +8962,13 @@ export type WiFiTimeoutCount = number;
8957
8962
  *
8958
8963
  * @maxItems 20
8959
8964
  */
8960
- export type RadioBleScan = BleDevice[];
8965
+ export type NearbyBLEDevices = BleDevice[];
8961
8966
  /**
8962
8967
  * The coherent Wi-Fi scan is positioning evidence; retain an empty successful scan separately from a failed scan.
8963
8968
  *
8964
8969
  * @maxItems 20
8965
8970
  */
8966
- export type RadioWifiScan = WifiAccessPoint[];
8971
+ export type WiFiAccessPoints = WifiAccessPoint[];
8967
8972
  export interface ObservationValues {
8968
8973
  "agnss.completed"?: AgnssCompleted;
8969
8974
  "agnss.transferTrace"?: AgnssTransferTrace;
@@ -9100,9 +9105,9 @@ export interface ObservationValues {
9100
9105
  "power.wifiScanEntries"?: WiFiScanningEntryCount;
9101
9106
  "power.wifiScanMs"?: WiFiScanningTotalTime;
9102
9107
  "power.wifiTimeouts"?: WiFiTimeoutCount;
9103
- "radio.bleScan"?: RadioBleScan;
9104
- "radio.cellScan"?: RadioCellScan;
9105
- "radio.wifiScan"?: RadioWifiScan;
9108
+ "radio.bleDevices"?: NearbyBLEDevices;
9109
+ "radio.cellularEnvironment"?: CellularEnvironment;
9110
+ "radio.wifiAccessPoints"?: WiFiAccessPoints;
9106
9111
  "system.booted"?: SystemBooted;
9107
9112
  "wifi.scanCompleted"?: WifiScanCompleted;
9108
9113
  "work.completed"?: WorkCompleted;
@@ -9605,9 +9610,9 @@ export interface BleDevice {
9605
9610
  companyId: number;
9606
9611
  }
9607
9612
  /**
9608
- * Cell scan and registration latency are distinct facts; distinguish passive serving-cell updates from extended scans.
9613
+ * Coherent serving-cell identity, radio technology and signal evidence, with neighbouring or global cells when explicitly requested. Routine tracking reads serving-cell information without an extended cell search.
9609
9614
  */
9610
- export interface RadioCellScan {
9615
+ export interface CellularEnvironment {
9611
9616
  serving: CellReading;
9612
9617
  rat: "lteM" | "nbIot";
9613
9618
  /**
@@ -9690,7 +9695,7 @@ export interface WorkCompleted {
9690
9695
  activityEntries: ActivityEntries;
9691
9696
  recoveries: RecoveryCounts;
9692
9697
  saturated: boolean;
9693
- mode: string;
9698
+ mode: number;
9694
9699
  }
9695
9700
  export interface ActivityDurations {
9696
9701
  rrc: number;
@@ -9723,8 +9728,8 @@ export interface RecoveryCounts {
9723
9728
  */
9724
9729
  export interface WorkflowExecution {
9725
9730
  workflowVersion: number;
9726
- mode: string;
9727
- state: "idle" | "battery" | "connect" | "cell" | "wifi" | "publish" | "listen" | "gps" | "gpsPublish" | "rest";
9731
+ mode: number;
9732
+ state: string;
9728
9733
  owner: "workflow" | "command" | "update" | "recovery" | "shutdown" | "fault" | "settings" | "charging" | "ble" | "network";
9729
9734
  phase: "entered" | "completed" | "cancelled" | "ownerChanged" | "snapshot";
9730
9735
  outcome: ("done" | "unavailable" | "failed" | "timeout" | "cancelled") | null;
@@ -9941,37 +9946,37 @@ export type BLEAdvertisingRequiresExternalPower = boolean;
9941
9946
  */
9942
9947
  export type BLEAdvertisingInterval = number;
9943
9948
  /**
9944
- * Underlying firmware behavior. Offered tracking modes are cloud-configurable profiles.
9949
+ * Stable integer firmware mode ID: 0, 1 or 2. Each mode’s stages are defined in firmware. Public mode names are mapped to these IDs by the assigned tracking mode catalog.
9945
9950
  */
9946
- export type TrackingMode = string;
9951
+ export type FirmwareModeID = number;
9947
9952
  /**
9948
9953
  * Period between tracking reports on confirmed external power.
9949
9954
  */
9950
9955
  export type PoweredReportInterval = number;
9951
9956
  /**
9952
- * Maximum battery idle duration after a standard cycle.
9957
+ * Maximum battery idle duration after a mode 0 cycle, measured from the end of work.
9953
9958
  */
9954
- export type StandardIdleDuration = number;
9959
+ export type Mode0IdleDuration = number;
9955
9960
  /**
9956
- * Maximum battery idle duration after a security cycle.
9961
+ * Maximum battery idle duration after a mode 1 cycle, measured from the end of work.
9957
9962
  */
9958
- export type SecurityIdleDuration = number;
9963
+ export type Mode1IdleDuration = number;
9959
9964
  /**
9960
- * Maximum battery idle duration after a tracking cycle.
9965
+ * Maximum battery idle duration after a mode 2 cycle, measured from the end of work.
9961
9966
  */
9962
- export type TrackingIdleDuration = number;
9967
+ export type Mode2IdleDuration = number;
9963
9968
  /**
9964
- * Minimum rest before movement starts another standard cycle.
9969
+ * Duration after a mode 0 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.
9965
9970
  */
9966
- export type StandardMovementRest = number;
9971
+ export type Mode0MinimumRest = number;
9967
9972
  /**
9968
- * Minimum rest before movement starts another security cycle.
9973
+ * Duration after a mode 1 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.
9969
9974
  */
9970
- export type SecurityMovementRest = number;
9975
+ export type Mode1MinimumRest = number;
9971
9976
  /**
9972
- * Minimum rest before movement starts another tracking cycle.
9977
+ * Duration after a mode 2 cycle with the accelerometer and its wake interrupt disabled. Firmware re-enables motion detection when this period ends.
9973
9978
  */
9974
- export type TrackingMovementRest = number;
9979
+ export type Mode2MinimumRest = number;
9975
9980
  /**
9976
9981
  * Maximum idle time in PSM before setting the modem offline; capped by the existing idle deadline.
9977
9982
  */
@@ -10116,14 +10121,14 @@ export interface DeviceSettings {
10116
10121
  bleAdvertisingEnabled?: BLEAdvertising;
10117
10122
  bleAdvertisingRequiresExternalPower?: BLEAdvertisingRequiresExternalPower;
10118
10123
  bleAdvertisingIntervalUnits?: BLEAdvertisingInterval;
10119
- mode?: TrackingMode;
10124
+ mode?: FirmwareModeID;
10120
10125
  poweredReportIntervalSeconds?: PoweredReportInterval;
10121
- standardIdleSeconds?: StandardIdleDuration;
10122
- securityIdleSeconds?: SecurityIdleDuration;
10123
- trackingIdleSeconds?: TrackingIdleDuration;
10124
- standardMinimumRestSeconds?: StandardMovementRest;
10125
- securityMinimumRestSeconds?: SecurityMovementRest;
10126
- trackingMinimumRestSeconds?: TrackingMovementRest;
10126
+ mode0IdleSeconds?: Mode0IdleDuration;
10127
+ mode1IdleSeconds?: Mode1IdleDuration;
10128
+ mode2IdleSeconds?: Mode2IdleDuration;
10129
+ mode0MinimumRestSeconds?: Mode0MinimumRest;
10130
+ mode1MinimumRestSeconds?: Mode1MinimumRest;
10131
+ mode2MinimumRestSeconds?: Mode2MinimumRest;
10127
10132
  psmResidenceSeconds?: PSMResidence;
10128
10133
  commandListenSeconds?: TrackingCommandWindow;
10129
10134
  gnssSearchTimeoutSeconds?: GNSSSearchTimeout;