@tak-ps/node-cot
    Preparing search index...

    Class CoTParser

    Convert to and from an XML CoT message

    A string/buffer containing the XML representation or the xml-js object tree

    Index

    Constructors

    Methods

    • Return an CoT Message given a GeoJSON Feature

      Parameters

      • feature: {
            geometry:
                | { coordinates: number[][][]; type: "Polygon" }
                | { coordinates: number[]; type: "Point" }
                | { coordinates: number[][]; type: "LineString" };
            id?: string;
            path?: string;
            properties: {
                ackrequest?: { ackrequested: boolean; tag: string; uid: string };
                archived?: boolean;
                attachments?: string[];
                bearing?: number;
                callsign?: string;
                center?: number[];
                chat?: {
                    chatgrp: any;
                    chatroom: string;
                    groupOwner?: string;
                    id: string;
                    messageId?: string;
                    parent?: string;
                    senderCallsign: string;
                };
                contact?: {
                    callsign?: string;
                    endpoint?: string;
                    name?: string;
                    phone?: string;
                };
                course?: number;
                creator?: { callsign: string; time: string; type: string; uid: string };
                dest?:
                    | {
                        after?: string;
                        callsign?: string;
                        group?: string;
                        mission?: string;
                        "mission-guid"?: string;
                        path?: string;
                        uid?: string;
                    }
                    | {
                        after?: string;
                        callsign?: string;
                        group?: string;
                        mission?: string;
                        "mission-guid"?: string;
                        path?: string;
                        uid?: string;
                    }[];
                droid?: string;
                fileshare?: {
                    filename: string;
                    name: string;
                    senderCallsign: string;
                    senderUid: string;
                    senderUrl: string;
                    sha256: string;
                    sizeInBytes: number;
                };
                fill?: string;
                "fill-opacity"?: number;
                flow?: { [key: string]: string };
                geofence?: {
                    boundingSphere?: number;
                    elevationMonitored?: string;
                    maxElevation?: string;
                    minElevation?: string;
                    monitor?: string;
                    tracking?: string;
                    trigger?: string;
                };
                group?: { name: string; role: string };
                how?: string;
                icon?: string;
                labels?: boolean;
                links?: {
                    callsign?: string;
                    mime?: string;
                    parent_callsign?: string;
                    point?: string;
                    production_time?: string;
                    relation?: string;
                    remarks?: string;
                    type?: string;
                    uid?: string;
                    url?: string;
                }[];
                "marker-color"?: string;
                "marker-opacity"?: number;
                metadata?: { [key: string]: unknown };
                milsym?: { id: string };
                mission?: {
                    authorUid?: string;
                    guid?: string;
                    missionChanges?: {
                        contentUid: string;
                        creatorUid: string;
                        details: {
                            callsign: string;
                            color: string;
                            lat: string;
                            lon: string;
                            type: string;
                        };
                        isFederatedChange: string;
                        missionName: string;
                        timestamp: string;
                        type: string;
                    }[];
                    missionLayer?: {
                        name?: string;
                        parentUid?: string;
                        type?: string;
                        uid?: string;
                    };
                    name?: string;
                    tool?: string;
                    type?: string;
                };
                precisionlocation?: { altsrc?: string; geopointsrc?: string };
                range?: number;
                remarks?: string;
                sensor?: {
                    azimuth?: number;
                    displayMagneticReference?: number;
                    elevation?: number;
                    fov?: number;
                    fovAlpha?: number;
                    fovBlue?: number;
                    fovGreen?: number;
                    fovRed?: number;
                    hideFov?: boolean;
                    model?: string;
                    north?: number;
                    range?: number;
                    rangeLines?: number;
                    rangeLineStrokeColor?: number;
                    rangeLineStrokeWeight?: number;
                    roll?: number;
                    strokeColor?: number;
                    strokeWeight?: number;
                    type?: string;
                    version?: string;
                    vfov?: number;
                };
                shape?: { ellipse?: { angle: number; major: number; minor: number } };
                slope?: number;
                speed?: number;
                stale?: string | number;
                start?: string;
                status?: { battery?: string; readiness?: string };
                stroke?: string;
                "stroke-opacity"?: number;
                "stroke-style"?: string;
                "stroke-width"?: number;
                takv?: {
                    device?: string;
                    os?: string;
                    platform?: string;
                    version?: string;
                };
                time?: string;
                track?: {
                    course?: string;
                    eCourse?: string;
                    eSlope?: string;
                    eSpeed?: string;
                    slope?: string;
                    speed?: string;
                };
                type?: string;
                video?: {
                    connection?: {
                        address: string;
                        alias?: string;
                        bufferTime?: number;
                        ignoreEmbeddedKLV?: boolean;
                        networkTimeout?: number;
                        path?: string;
                        port?: number;
                        protocol?: string;
                        roverPort?: number;
                        rtspReliable?: number;
                        uid: string;
                    };
                    sensor?: string;
                    spi?: string;
                    uid?: string;
                    url?: string;
                };
            };
            type: "Feature";
        }

        GeoJSON Point Feature

      • opts: CoTOptions = {}

      Returns Promise<default>

    • Parse an ATAK compliant Protobuf to a JS Object

      Parameters

      • raw: Uint8Array
      • version: number = 1
      • opts: CoTOptions = {}

      Returns Promise<default>

    • Parameters

      • raw: string | Buffer<ArrayBufferLike>
      • opts: CoTOptions = {}

      Returns default

    • Detect difference between CoT messages Note: This diffs based on GeoJSON Representation of message So if unknown properties are present they will be excluded from the diff

      Parameters

      • aCoT: default
      • bCoT: default
      • opts: {
            diffDest: boolean;
            diffFlow: boolean;
            diffMetadata: boolean;
            diffStaleStartTime: boolean;
        } = ...

      Returns Promise<boolean>

    • Parameters

      • feature: {
            geometry:
                | { coordinates: number[]; type: "Point" }
                | { coordinates: number[][]; type: "LineString" }
                | { coordinates: number[][][]; type: "Polygon" };
            id?: string;
            properties: { [key: string]: unknown };
            type: "Feature";
        }

      Returns Promise<
          {
              geometry: | { coordinates: number[][][]; type: "Polygon" }
              | { coordinates: number[]; type: "Point" }
              | { coordinates: number[][]; type: "LineString" };
              id: string;
              path?: string;
              properties: {
                  ackrequest?: { ackrequested: boolean; tag: string; uid: string };
                  archived?: boolean;
                  attachments?: string[];
                  bearing?: number;
                  callsign: string;
                  center: number[];
                  chat?: {
                      chatgrp: any;
                      chatroom: string;
                      groupOwner?: string;
                      id: string;
                      messageId?: string;
                      parent?: string;
                      senderCallsign: string;
                  };
                  contact?: {
                      callsign?: string;
                      endpoint?: string;
                      name?: string;
                      phone?: string;
                  };
                  course?: number;
                  creator?: { callsign: string; time: string; type: string; uid: string };
                  dest?:
                      | {
                          after?: string;
                          callsign?: string;
                          group?: string;
                          mission?: string;
                          "mission-guid"?: string;
                          path?: string;
                          uid?: string;
                      }
                      | {
                          after?: string;
                          callsign?: string;
                          group?: string;
                          mission?: string;
                          "mission-guid"?: string;
                          path?: string;
                          uid?: string;
                      }[];
                  droid?: string;
                  fileshare?: {
                      filename: string;
                      name: string;
                      senderCallsign: string;
                      senderUid: string;
                      senderUrl: string;
                      sha256: string;
                      sizeInBytes: number;
                  };
                  fill?: string;
                  "fill-opacity"?: number;
                  flow?: { [key: string]: string };
                  geofence?: {
                      boundingSphere?: number;
                      elevationMonitored?: string;
                      maxElevation?: string;
                      minElevation?: string;
                      monitor?: string;
                      tracking?: string;
                      trigger?: string;
                  };
                  group?: { name: string; role: string };
                  how: string;
                  icon?: string;
                  labels?: boolean;
                  links?: {
                      callsign?: string;
                      mime?: string;
                      parent_callsign?: string;
                      point?: string;
                      production_time?: string;
                      relation?: string;
                      remarks?: string;
                      type?: string;
                      uid?: string;
                      url?: string;
                  }[];
                  "marker-color"?: string;
                  "marker-opacity"?: number;
                  metadata?: { [key: string]: unknown };
                  milsym?: { id: string };
                  mission?: {
                      authorUid?: string;
                      guid?: string;
                      missionChanges?: {
                          contentUid: string;
                          creatorUid: string;
                          details: {
                              callsign: string;
                              color: string;
                              lat: string;
                              lon: string;
                              type: string;
                          };
                          isFederatedChange: string;
                          missionName: string;
                          timestamp: string;
                          type: string;
                      }[];
                      missionLayer?: {
                          name?: string;
                          parentUid?: string;
                          type?: string;
                          uid?: string;
                      };
                      name?: string;
                      tool?: string;
                      type?: string;
                  };
                  precisionlocation?: { altsrc?: string; geopointsrc?: string };
                  range?: number;
                  remarks?: string;
                  sensor?: {
                      azimuth?: number;
                      displayMagneticReference?: number;
                      elevation?: number;
                      fov?: number;
                      fovAlpha?: number;
                      fovBlue?: number;
                      fovGreen?: number;
                      fovRed?: number;
                      hideFov?: boolean;
                      model?: string;
                      north?: number;
                      range?: number;
                      rangeLines?: number;
                      rangeLineStrokeColor?: number;
                      rangeLineStrokeWeight?: number;
                      roll?: number;
                      strokeColor?: number;
                      strokeWeight?: number;
                      type?: string;
                      version?: string;
                      vfov?: number;
                  };
                  shape?: { ellipse?: { angle: number; major: number; minor: number } };
                  slope?: number;
                  speed?: number;
                  stale: string;
                  start: string;
                  status?: { battery?: string; readiness?: string };
                  stroke?: string;
                  "stroke-opacity"?: number;
                  "stroke-style"?: string;
                  "stroke-width"?: number;
                  takv?: {
                      device?: string;
                      os?: string;
                      platform?: string;
                      version?: string;
                  };
                  time: string;
                  track?: {
                      course?: string;
                      eCourse?: string;
                      eSlope?: string;
                      eSpeed?: string;
                      slope?: string;
                      speed?: string;
                  };
                  type: string;
                  video?: {
                      connection?: {
                          address: string;
                          alias?: string;
                          bufferTime?: number;
                          ignoreEmbeddedKLV?: boolean;
                          networkTimeout?: number;
                          path?: string;
                          port?: number;
                          protocol?: string;
                          roverPort?: number;
                          rtspReliable?: number;
                          uid: string;
                      };
                      sensor?: string;
                      spi?: string;
                      uid?: string;
                      url?: string;
                  };
              };
              type: "Feature";
          },
      >

    • Return a GeoJSON Feature from an XML CoT message

      Parameters

      Returns Promise<
          {
              geometry: | { coordinates: number[][][]; type: "Polygon" }
              | { coordinates: number[]; type: "Point" }
              | { coordinates: number[][]; type: "LineString" };
              id: string;
              path?: string;
              properties: {
                  ackrequest?: { ackrequested: boolean; tag: string; uid: string };
                  archived?: boolean;
                  attachments?: string[];
                  bearing?: number;
                  callsign: string;
                  center: number[];
                  chat?: {
                      chatgrp: any;
                      chatroom: string;
                      groupOwner?: string;
                      id: string;
                      messageId?: string;
                      parent?: string;
                      senderCallsign: string;
                  };
                  contact?: {
                      callsign?: string;
                      endpoint?: string;
                      name?: string;
                      phone?: string;
                  };
                  course?: number;
                  creator?: { callsign: string; time: string; type: string; uid: string };
                  dest?:
                      | {
                          after?: string;
                          callsign?: string;
                          group?: string;
                          mission?: string;
                          "mission-guid"?: string;
                          path?: string;
                          uid?: string;
                      }
                      | {
                          after?: string;
                          callsign?: string;
                          group?: string;
                          mission?: string;
                          "mission-guid"?: string;
                          path?: string;
                          uid?: string;
                      }[];
                  droid?: string;
                  fileshare?: {
                      filename: string;
                      name: string;
                      senderCallsign: string;
                      senderUid: string;
                      senderUrl: string;
                      sha256: string;
                      sizeInBytes: number;
                  };
                  fill?: string;
                  "fill-opacity"?: number;
                  flow?: { [key: string]: string };
                  geofence?: {
                      boundingSphere?: number;
                      elevationMonitored?: string;
                      maxElevation?: string;
                      minElevation?: string;
                      monitor?: string;
                      tracking?: string;
                      trigger?: string;
                  };
                  group?: { name: string; role: string };
                  how: string;
                  icon?: string;
                  labels?: boolean;
                  links?: {
                      callsign?: string;
                      mime?: string;
                      parent_callsign?: string;
                      point?: string;
                      production_time?: string;
                      relation?: string;
                      remarks?: string;
                      type?: string;
                      uid?: string;
                      url?: string;
                  }[];
                  "marker-color"?: string;
                  "marker-opacity"?: number;
                  metadata?: { [key: string]: unknown };
                  milsym?: { id: string };
                  mission?: {
                      authorUid?: string;
                      guid?: string;
                      missionChanges?: {
                          contentUid: string;
                          creatorUid: string;
                          details: {
                              callsign: string;
                              color: string;
                              lat: string;
                              lon: string;
                              type: string;
                          };
                          isFederatedChange: string;
                          missionName: string;
                          timestamp: string;
                          type: string;
                      }[];
                      missionLayer?: {
                          name?: string;
                          parentUid?: string;
                          type?: string;
                          uid?: string;
                      };
                      name?: string;
                      tool?: string;
                      type?: string;
                  };
                  precisionlocation?: { altsrc?: string; geopointsrc?: string };
                  range?: number;
                  remarks?: string;
                  sensor?: {
                      azimuth?: number;
                      displayMagneticReference?: number;
                      elevation?: number;
                      fov?: number;
                      fovAlpha?: number;
                      fovBlue?: number;
                      fovGreen?: number;
                      fovRed?: number;
                      hideFov?: boolean;
                      model?: string;
                      north?: number;
                      range?: number;
                      rangeLines?: number;
                      rangeLineStrokeColor?: number;
                      rangeLineStrokeWeight?: number;
                      roll?: number;
                      strokeColor?: number;
                      strokeWeight?: number;
                      type?: string;
                      version?: string;
                      vfov?: number;
                  };
                  shape?: { ellipse?: { angle: number; major: number; minor: number } };
                  slope?: number;
                  speed?: number;
                  stale: string;
                  start: string;
                  status?: { battery?: string; readiness?: string };
                  stroke?: string;
                  "stroke-opacity"?: number;
                  "stroke-style"?: string;
                  "stroke-width"?: number;
                  takv?: {
                      device?: string;
                      os?: string;
                      platform?: string;
                      version?: string;
                  };
                  time: string;
                  track?: {
                      course?: string;
                      eCourse?: string;
                      eSlope?: string;
                      eSpeed?: string;
                      slope?: string;
                      speed?: string;
                  };
                  type: string;
                  video?: {
                      connection?: {
                          address: string;
                          alias?: string;
                          bufferTime?: number;
                          ignoreEmbeddedKLV?: boolean;
                          networkTimeout?: number;
                          path?: string;
                          port?: number;
                          protocol?: string;
                          roverPort?: number;
                          rtspReliable?: number;
                          uid: string;
                      };
                      sensor?: string;
                      spi?: string;
                      uid?: string;
                      url?: string;
                  };
              };
              type: "Feature";
          },
      >

    • Return an ATAK Compliant Protobuf

      Parameters

      Returns Promise<Uint8Array<ArrayBufferLike>>