@openmeshtak/sdk 0.2.1 → 0.2.2

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
@@ -1,5 +1,7 @@
1
1
  # OpenMeshTak SDK
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/@openmeshtak/sdk)](https://www.npmjs.com/package/@openmeshtak/sdk) [![License](https://img.shields.io/github/license/OpenMeshTAK/openmeshtak-sdk)](LICENSE) [![CI](https://github.com/OpenMeshTAK/openmeshtak-sdk/actions/workflows/ci.yml/badge.svg)](https://github.com/OpenMeshTAK/openmeshtak-sdk/actions/workflows/ci.yml)
4
+
3
5
  The official TypeScript and JavaScript client for the OpenMeshTak REST API.
4
6
 
5
7
  The SDK is generated from the released OpenAPI contract and adds a small handwritten layer for
@@ -2731,17 +2731,12 @@ export interface components {
2731
2731
  message: string;
2732
2732
  };
2733
2733
  /**
2734
- * @description - `none`: OpenMeshTak gives no TAK connection guidance.
2735
- * - `meshtastic-local-server`: each participant enables the Meshtastic app's local TAK server and
2736
- * connects ATAK/iTAK on the same phone to it. The app creates its own certificates, so
2737
- * OpenMeshTak provides guidance and settings, not a ready-made connection package.
2738
- * - `built-in-server`: participants enroll ATAK/iTAK with the built-in OpenMeshTak TAK server.
2739
- * @enum {string}
2734
+ * @description TAK settings of a Meshtastic event. Every event sends TAK clients to the built-in TAK server;
2735
+ * Meshtastic events (`meshtasticEnabled` on the event) also connect them to the Meshtastic app's
2736
+ * local TAK server, which carries CoT over this channel.
2740
2737
  */
2741
- TakConnectionMode: "none" | "meshtastic-local-server" | "built-in-server";
2742
2738
  TakConfigurationDto: {
2743
2739
  eventId: components["schemas"]["Uuid"];
2744
- mode: components["schemas"]["TakConnectionMode"];
2745
2740
  /** @description Channel for the app's "TAK Mesh Channel"; `null` uses the primary channel. */
2746
2741
  meshChannelId: components["schemas"]["Uuid"] | null;
2747
2742
  /**
@@ -2758,7 +2753,6 @@ export interface components {
2758
2753
  * @description Version the client last read.
2759
2754
  */
2760
2755
  version: number;
2761
- mode: components["schemas"]["TakConnectionMode"];
2762
2756
  meshChannelId: components["schemas"]["Uuid"] | null;
2763
2757
  };
2764
2758
  SetupStatusResponse: {
@@ -2881,29 +2875,25 @@ export interface components {
2881
2875
  * @enum {string}
2882
2876
  */
2883
2877
  TakRole: "Team Member" | "Team Lead" | "HQ" | "Sniper" | "Medic" | "Forward Observer" | "RTO" | "K9";
2878
+ /** @description The built-in TAK server participants enroll with from the dashboard. */
2879
+ ProfileTakServer: {
2880
+ /** @description `null` while the TAK server is not enabled. */
2881
+ hostName: string | null;
2882
+ /** Format: double */
2883
+ streamingPort: number;
2884
+ };
2884
2885
  /**
2885
- * @description Connection through the Meshtastic app's local TAK server. `meshChannel` is the value for the
2886
- * app's "TAK Mesh Channel": the channel's slot on this member's device, or `null` while that
2887
- * channel has not reached the device yet (then the primary channel is used).
2886
+ * @description The Meshtastic app's local TAK server, which carries CoT over the mesh when there is no network.
2887
+ * `meshChannel` is the value for the app's "TAK Mesh Channel": the channel's slot on this member's
2888
+ * device, or `null` while that channel has not reached the device yet (then the primary channel
2889
+ * is used).
2888
2890
  */
2889
- ProfileTakConnection: {
2891
+ ProfileMeshtasticTakServer: {
2890
2892
  meshChannel: {
2891
2893
  /** Format: double */
2892
2894
  slot: number;
2893
2895
  name: string;
2894
2896
  } | null;
2895
- /** @enum {string} */
2896
- mode: "meshtastic-local-server";
2897
- } | {
2898
- /** Format: double */
2899
- streamingPort: number;
2900
- /** @description `null` while the TAK server is not enabled. */
2901
- hostName: string | null;
2902
- /**
2903
- * @description Enroll with the built-in TAK server from the dashboard.
2904
- * @enum {string}
2905
- */
2906
- mode: "built-in-server";
2907
2897
  };
2908
2898
  /**
2909
2899
  * @description A channel the member receives. `included` channels come with the member's channel set;
@@ -2960,14 +2950,17 @@ export interface components {
2960
2950
  eventRole: components["schemas"]["ProfileAssignment"];
2961
2951
  group: components["schemas"]["ProfileAssignment"];
2962
2952
  tak: {
2963
- /** @description How this member connects ATAK/iTAK; `null` when the event gives no guidance. */
2964
- connection: components["schemas"]["ProfileTakConnection"] | null;
2953
+ /** @description Meshtastic events also connect ATAK/iTAK to the Meshtastic app; `null` otherwise. */
2954
+ meshtasticLocalServer: components["schemas"]["ProfileMeshtasticTakServer"] | null;
2955
+ /** @description Every member enrolls with the built-in TAK server for Data Packages and CoT over the network. */
2956
+ server: components["schemas"]["ProfileTakServer"];
2965
2957
  /** @description The group's TAK server groups for an external TAK server; the built-in server ignores them. */
2966
2958
  serverGroups: string[];
2967
2959
  role: components["schemas"]["TakRole"];
2968
2960
  team: components["schemas"]["TakTeam"];
2969
2961
  callsign: string;
2970
2962
  };
2963
+ /** @description `null` when the event does not use Meshtastic. */
2971
2964
  meshtastic: {
2972
2965
  /** @description `null` for configurations published before events had a firmware version. */
2973
2966
  firmware: components["schemas"]["ProfileFirmware"] | null;
@@ -2976,7 +2969,7 @@ export interface components {
2976
2969
  /** @description `null` only in previews while the group has no short-name prefix. */
2977
2970
  shortName: string | null;
2978
2971
  longName: string;
2979
- };
2972
+ } | null;
2980
2973
  };
2981
2974
  MyEventMembershipDto: {
2982
2975
  eventId: components["schemas"]["Uuid"];
@@ -3366,6 +3359,10 @@ export interface components {
3366
3359
  revision: number;
3367
3360
  /** Format: date-time */
3368
3361
  publishedAt: string;
3362
+ /** @description The built-in TAK server installs it in the app right after the app enrolls. */
3363
+ installOnEnrollment: boolean;
3364
+ /** @description The built-in TAK server installs it, and every new revision, whenever the app connects. */
3365
+ installOnConnection: boolean;
3369
3366
  };
3370
3367
  /** @enum {string} */
3371
3368
  MemberClaimStatus: "open" | "consumed" | "revoked" | "expired";
@@ -3509,6 +3506,12 @@ export interface components {
3509
3506
  * of event accounts that are deleted when the event is archived.
3510
3507
  */
3511
3508
  permanentAccounts: boolean;
3509
+ /**
3510
+ * @description The event provisions Meshtastic radios. When off, profiles carry no Meshtastic part, radio
3511
+ * downloads are unavailable and channels and radio settings stay stored but unused. Like other
3512
+ * configuration it reaches participants of an active event with the next published revision.
3513
+ */
3514
+ meshtasticEnabled: boolean;
3512
3515
  /** Format: date-time */
3513
3516
  createdAt: string;
3514
3517
  /** Format: date-time */
@@ -3547,6 +3550,12 @@ export interface components {
3547
3550
  * of event accounts that are deleted when the event is archived.
3548
3551
  */
3549
3552
  permanentAccounts: boolean;
3553
+ /**
3554
+ * @description The event provisions Meshtastic radios. When off, profiles carry no Meshtastic part, radio
3555
+ * downloads are unavailable and channels and radio settings stay stored but unused. Like other
3556
+ * configuration it reaches participants of an active event with the next published revision.
3557
+ */
3558
+ meshtasticEnabled: boolean;
3550
3559
  /** Format: date-time */
3551
3560
  createdAt: string;
3552
3561
  /** Format: date-time */
@@ -3579,6 +3588,8 @@ export interface components {
3579
3588
  * of event accounts that are deleted when the event is archived. Defaults to `false`.
3580
3589
  */
3581
3590
  permanentAccounts?: boolean;
3591
+ /** @description The event provisions Meshtastic radios. Defaults to `false`, a TAK-only event. */
3592
+ meshtasticEnabled?: boolean;
3582
3593
  };
3583
3594
  UpdateEventRequest: {
3584
3595
  /**
@@ -3605,6 +3616,8 @@ export interface components {
3605
3616
  * of event accounts that are deleted when the event is archived. Omitted keeps the current value.
3606
3617
  */
3607
3618
  permanentAccounts?: boolean;
3619
+ /** @description The event provisions Meshtastic radios. Omitted keeps the current value. */
3620
+ meshtasticEnabled?: boolean;
3608
3621
  };
3609
3622
  EventTransitionRequest: {
3610
3623
  /**
@@ -3719,6 +3732,12 @@ export interface components {
3719
3732
  shortName: string | null;
3720
3733
  eventRole: components["schemas"]["EventAssignmentSummary"];
3721
3734
  eventGroup: components["schemas"]["EventAssignmentSummary"];
3735
+ /**
3736
+ * Format: double
3737
+ * @description TAK apps the member's user has enrolled with the built-in TAK server and that may still
3738
+ * connect (valid client certificates). Certificates belong to the user, not to one event.
3739
+ */
3740
+ enrolledTakApps: number;
3722
3741
  /** Format: double */
3723
3742
  version: number;
3724
3743
  /** Format: date-time */
@@ -3929,19 +3948,27 @@ export interface components {
3929
3948
  settings: components["schemas"]["FirmwareSettingsDocument"];
3930
3949
  };
3931
3950
  CurrentTakConfiguration: {
3932
- mode: components["schemas"]["TakConnectionMode"];
3933
3951
  meshChannelId: string | null;
3934
3952
  };
3935
- /** @description How TAK clients connect; `null` in revisions created before version 4. */
3953
+ /**
3954
+ * @description The Meshtastic app's TAK mesh channel; `null` in revisions created before version 4. Revisions
3955
+ * before version 6 also stored a connection mode, which the switch `meshtasticEnabled` replaced.
3956
+ */
3936
3957
  SnapshotTak: components["schemas"]["CurrentTakConfiguration"];
3937
3958
  /**
3938
3959
  * @description Bump `schemaVersion` whenever the snapshot shape changes; old revisions are never rewritten.
3939
3960
  * Version 2 added `channels` in device order, the first being the primary channel; version 3
3940
- * added `meshtastic`; version 4 added `tak`.
3961
+ * added `meshtastic`; version 4 added `tak`; version 5 added role TAK overrides; version 6 added
3962
+ * `meshtasticEnabled`.
3941
3963
  */
3942
3964
  ConfigurationSnapshot: {
3943
3965
  /** @enum {number} */
3944
- schemaVersion: 1 | 2 | 3 | 4 | 5;
3966
+ schemaVersion: 1 | 2 | 3 | 4 | 5 | 6;
3967
+ /**
3968
+ * @description Whether the event provisions Meshtastic radios; `true` in revisions before version 6. When
3969
+ * `false`, `channels` is empty and `meshtastic` is `null`.
3970
+ */
3971
+ meshtasticEnabled: boolean;
3945
3972
  roles: components["schemas"]["SnapshotRole"][];
3946
3973
  groups: components["schemas"]["SnapshotGroup"][];
3947
3974
  channels: components["schemas"]["SnapshotChannel"][];
@@ -8468,7 +8495,7 @@ export interface operations {
8468
8495
  "application/json": components["schemas"]["ProblemDetails"];
8469
8496
  };
8470
8497
  };
8471
- /** @description Meshtastic configuration not published */
8498
+ /** @description Meshtastic configuration not published or event without Meshtastic */
8472
8499
  409: {
8473
8500
  headers: {
8474
8501
  [name: string]: unknown;