index.js@@@
require('cross-fetch/polyfill')
const ApolloClient = require('apollo-boost').ApolloClient;
const InMemoryCache = require('apollo-cache-inmemory').InMemoryCache;
const createHttpLink = require('apollo-link-http').createHttpLink;
const gql = require('graphql-tag')

const defaultOptions = {
  watchQuery: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'ignore',
  },
  query: {
    fetchPolicy: 'no-cache',
    errorPolicy: 'ignore',
  },
}

let client


class iMessageClient {

  async getMessages (chatId, page) {

    console.log(`get messages for chat ID: ${chatId}`)

    let result = await client.query({
      query: gql`query getMessages {
          getMessages(chatId: "${chatId}", page: "${page}") {
              chatter
              text
          }
      }`
    })

    let messages = result.data.getMessages
    let messageOutput = ``
    const maxPerLine = 20000
    console.log(`return messages from get messages:`)
    console.log(messages)

    let firstMessage = true

    if (!messages) {

      return ``
    }

    for (const message of messages) {

      if (firstMessage) {

        messageOutput = `${message.chatter}: ${message.text}`
      } else {

        messageOutput = `${messageOutput}ENDLASTMESSAGE${message.chatter}: ${message.text}`
      }

      firstMessage = false
    }

    return messageOutput
  }


  async sendMessage (chatId, message) {

    console.log(`send messages for chat ID: ${chatId} ${message}`)

    let result = await client.query({
      query: gql`query sendMessage {
          sendMessage(chatId: "${chatId}", message: "${message}") {
              chatter
              text
          }
      }`
    })

    let messages = result.data.sendMessage
    let messageOutput = ``
    const maxPerLine = 20000

    let firstMessage = true

    if (!messages) {

      return ``
    }

    for (const message of messages) {

      if (firstMessage) {

        messageOutput = `${message.chatter}: ${message.text}`
      } else {

        messageOutput = `${messageOutput}ENDLASTMESSAGE${message.chatter}: ${message.text}`
      }

      firstMessage = false
    }

    return messageOutput
  }

  async getChats () {

    let result = await client.query({
      query: gql`query getChats {
          getChats {
              name
              friendlyName
          }
      }`
    })

    let chats = result.data.getChats
    let friendlyNameStrings = ``

    if (!chats) {

      return ``
    }

    for (let chat of chats) {

      friendlyNameStrings = `${friendlyNameStrings},${chat.friendlyName.replace(/,/g, '')}`
    }

    friendlyNameStrings = friendlyNameStrings.substring(1, friendlyNameStrings.length)

    return friendlyNameStrings
  }

  setIPAddress (IPAddress) {

    try {

      client = new ApolloClient({
        uri: `${IPAddress}:4000/`,
        cache: new InMemoryCache(),
        link: new createHttpLink({
          uri: `${IPAddress}:4000/`
        }),
        defaultOptions
      });
    } catch (err) {
      console.log(`error instantiating the ApolloClient`)
      console.log(err)

      return `failure`
    }

    return `success`
  }
}

module.exports = iMessageClient

&&&
package.json@@@
{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": ""
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "apollo-boost": "^0.4.9",
    "apollo-cache-inmemory": "^1.6.6",
    "apollo-link-http": "^1.5.17",
    "cross-fetch": "^3.1.4",
    "graphql-tag": "^2.12.5"
  }
}
&&&
package-lock.json@@@
{
  "name": "test",
  "version": "1.0.0",
  "lockfileVersion": 2,
  "requires": true,
  "packages": {
    "": {
      "name": "test",
      "version": "1.0.0",
      "license": "ISC",
      "dependencies": {
        "apollo-boost": "^0.4.9",
        "apollo-cache-inmemory": "^1.6.6",
        "apollo-link-http": "^1.5.17",
        "cross-fetch": "^3.1.4",
        "graphql-tag": "^2.12.5"
      }
    },
    "node_modules/@types/node": {
      "version": "16.9.1",
      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
      "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
    },
    "node_modules/@types/zen-observable": {
      "version": "0.8.3",
      "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
      "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
    },
    "node_modules/@wry/context": {
      "version": "0.4.4",
      "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz",
      "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==",
      "dependencies": {
        "@types/node": ">=6",
        "tslib": "^1.9.3"
      }
    },
    "node_modules/@wry/equality": {
      "version": "0.1.11",
      "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
      "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
      "dependencies": {
        "tslib": "^1.9.3"
      }
    },
    "node_modules/apollo-boost": {
      "version": "0.4.9",
      "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.4.9.tgz",
      "integrity": "sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g==",
      "dependencies": {
        "apollo-cache": "^1.3.5",
        "apollo-cache-inmemory": "^1.6.6",
        "apollo-client": "^2.6.10",
        "apollo-link": "^1.0.6",
        "apollo-link-error": "^1.0.3",
        "apollo-link-http": "^1.3.1",
        "graphql-tag": "^2.4.2",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-cache": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz",
      "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==",
      "dependencies": {
        "apollo-utilities": "^1.3.4",
        "tslib": "^1.10.0"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-cache-inmemory": {
      "version": "1.6.6",
      "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz",
      "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==",
      "dependencies": {
        "apollo-cache": "^1.3.5",
        "apollo-utilities": "^1.3.4",
        "optimism": "^0.10.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-client": {
      "version": "2.6.10",
      "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz",
      "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==",
      "dependencies": {
        "@types/zen-observable": "^0.8.0",
        "apollo-cache": "1.3.5",
        "apollo-link": "^1.0.0",
        "apollo-utilities": "1.3.4",
        "symbol-observable": "^1.0.2",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0",
        "zen-observable": "^0.8.0"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-link": {
      "version": "1.2.14",
      "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
      "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
      "dependencies": {
        "apollo-utilities": "^1.3.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.9.3",
        "zen-observable-ts": "^0.8.21"
      },
      "peerDependencies": {
        "graphql": "^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-link-error": {
      "version": "1.1.13",
      "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.13.tgz",
      "integrity": "sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==",
      "dependencies": {
        "apollo-link": "^1.2.14",
        "apollo-link-http-common": "^0.2.16",
        "tslib": "^1.9.3"
      }
    },
    "node_modules/apollo-link-http": {
      "version": "1.5.17",
      "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz",
      "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==",
      "dependencies": {
        "apollo-link": "^1.2.14",
        "apollo-link-http-common": "^0.2.16",
        "tslib": "^1.9.3"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-link-http-common": {
      "version": "0.2.16",
      "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz",
      "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==",
      "dependencies": {
        "apollo-link": "^1.2.14",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.9.3"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/apollo-utilities": {
      "version": "1.3.4",
      "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
      "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
      "dependencies": {
        "@wry/equality": "^0.1.2",
        "fast-json-stable-stringify": "^2.0.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      },
      "peerDependencies": {
        "graphql": "^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/cross-fetch": {
      "version": "3.1.4",
      "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
      "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
      "dependencies": {
        "node-fetch": "2.6.1"
      }
    },
    "node_modules/fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
    },
    "node_modules/graphql": {
      "version": "15.5.3",
      "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz",
      "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==",
      "peer": true,
      "engines": {
        "node": ">= 10.x"
      }
    },
    "node_modules/graphql-tag": {
      "version": "2.12.5",
      "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz",
      "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==",
      "dependencies": {
        "tslib": "^2.1.0"
      },
      "engines": {
        "node": ">=10"
      },
      "peerDependencies": {
        "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0"
      }
    },
    "node_modules/graphql-tag/node_modules/tslib": {
      "version": "2.3.1",
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
      "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
    },
    "node_modules/node-fetch": {
      "version": "2.6.1",
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==",
      "engines": {
        "node": "4.x || >=6.0.0"
      }
    },
    "node_modules/optimism": {
      "version": "0.10.3",
      "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz",
      "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==",
      "dependencies": {
        "@wry/context": "^0.4.0"
      }
    },
    "node_modules/symbol-observable": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==",
      "engines": {
        "node": ">=0.10.0"
      }
    },
    "node_modules/ts-invariant": {
      "version": "0.4.4",
      "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
      "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
      "dependencies": {
        "tslib": "^1.9.3"
      }
    },
    "node_modules/tslib": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
    },
    "node_modules/zen-observable": {
      "version": "0.8.15",
      "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
      "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
    },
    "node_modules/zen-observable-ts": {
      "version": "0.8.21",
      "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
      "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
      "dependencies": {
        "tslib": "^1.9.3",
        "zen-observable": "^0.8.0"
      }
    }
  },
  "dependencies": {
    "@types/node": {
      "version": "16.9.1",
      "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
      "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g=="
    },
    "@types/zen-observable": {
      "version": "0.8.3",
      "resolved": "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.3.tgz",
      "integrity": "sha512-fbF6oTd4sGGy0xjHPKAt+eS2CrxJ3+6gQ3FGcBoIJR2TLAyCkCyI8JqZNy+FeON0AhVgNJoUumVoZQjBFUqHkw=="
    },
    "@wry/context": {
      "version": "0.4.4",
      "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.4.4.tgz",
      "integrity": "sha512-LrKVLove/zw6h2Md/KZyWxIkFM6AoyKp71OqpH9Hiip1csjPVoD3tPxlbQUNxEnHENks3UGgNpSBCAfq9KWuag==",
      "requires": {
        "@types/node": ">=6",
        "tslib": "^1.9.3"
      }
    },
    "@wry/equality": {
      "version": "0.1.11",
      "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.1.11.tgz",
      "integrity": "sha512-mwEVBDUVODlsQQ5dfuLUS5/Tf7jqUKyhKYHmVi4fPB6bDMOfWvUPJmKgS1Z7Za/sOI3vzWt4+O7yCiL/70MogA==",
      "requires": {
        "tslib": "^1.9.3"
      }
    },
    "apollo-boost": {
      "version": "0.4.9",
      "resolved": "https://registry.npmjs.org/apollo-boost/-/apollo-boost-0.4.9.tgz",
      "integrity": "sha512-05y5BKcDaa8w47f8d81UVwKqrAjn8uKLv6QM9fNdldoNzQ+rnOHgFlnrySUZRz9QIT3vPftQkEz2UEASp1Mi5g==",
      "requires": {
        "apollo-cache": "^1.3.5",
        "apollo-cache-inmemory": "^1.6.6",
        "apollo-client": "^2.6.10",
        "apollo-link": "^1.0.6",
        "apollo-link-error": "^1.0.3",
        "apollo-link-http": "^1.3.1",
        "graphql-tag": "^2.4.2",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      }
    },
    "apollo-cache": {
      "version": "1.3.5",
      "resolved": "https://registry.npmjs.org/apollo-cache/-/apollo-cache-1.3.5.tgz",
      "integrity": "sha512-1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==",
      "requires": {
        "apollo-utilities": "^1.3.4",
        "tslib": "^1.10.0"
      }
    },
    "apollo-cache-inmemory": {
      "version": "1.6.6",
      "resolved": "https://registry.npmjs.org/apollo-cache-inmemory/-/apollo-cache-inmemory-1.6.6.tgz",
      "integrity": "sha512-L8pToTW/+Xru2FFAhkZ1OA9q4V4nuvfoPecBM34DecAugUZEBhI2Hmpgnzq2hTKZ60LAMrlqiASm0aqAY6F8/A==",
      "requires": {
        "apollo-cache": "^1.3.5",
        "apollo-utilities": "^1.3.4",
        "optimism": "^0.10.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      }
    },
    "apollo-client": {
      "version": "2.6.10",
      "resolved": "https://registry.npmjs.org/apollo-client/-/apollo-client-2.6.10.tgz",
      "integrity": "sha512-jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==",
      "requires": {
        "@types/zen-observable": "^0.8.0",
        "apollo-cache": "1.3.5",
        "apollo-link": "^1.0.0",
        "apollo-utilities": "1.3.4",
        "symbol-observable": "^1.0.2",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0",
        "zen-observable": "^0.8.0"
      }
    },
    "apollo-link": {
      "version": "1.2.14",
      "resolved": "https://registry.npmjs.org/apollo-link/-/apollo-link-1.2.14.tgz",
      "integrity": "sha512-p67CMEFP7kOG1JZ0ZkYZwRDa369w5PIjtMjvrQd/HnIV8FRsHRqLqK+oAZQnFa1DDdZtOtHTi+aMIW6EatC2jg==",
      "requires": {
        "apollo-utilities": "^1.3.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.9.3",
        "zen-observable-ts": "^0.8.21"
      }
    },
    "apollo-link-error": {
      "version": "1.1.13",
      "resolved": "https://registry.npmjs.org/apollo-link-error/-/apollo-link-error-1.1.13.tgz",
      "integrity": "sha512-jAZOOahJU6bwSqb2ZyskEK1XdgUY9nkmeclCrW7Gddh1uasHVqmoYc4CKdb0/H0Y1J9lvaXKle2Wsw/Zx1AyUg==",
      "requires": {
        "apollo-link": "^1.2.14",
        "apollo-link-http-common": "^0.2.16",
        "tslib": "^1.9.3"
      }
    },
    "apollo-link-http": {
      "version": "1.5.17",
      "resolved": "https://registry.npmjs.org/apollo-link-http/-/apollo-link-http-1.5.17.tgz",
      "integrity": "sha512-uWcqAotbwDEU/9+Dm9e1/clO7hTB2kQ/94JYcGouBVLjoKmTeJTUPQKcJGpPwUjZcSqgYicbFqQSoJIW0yrFvg==",
      "requires": {
        "apollo-link": "^1.2.14",
        "apollo-link-http-common": "^0.2.16",
        "tslib": "^1.9.3"
      }
    },
    "apollo-link-http-common": {
      "version": "0.2.16",
      "resolved": "https://registry.npmjs.org/apollo-link-http-common/-/apollo-link-http-common-0.2.16.tgz",
      "integrity": "sha512-2tIhOIrnaF4UbQHf7kjeQA/EmSorB7+HyJIIrUjJOKBgnXwuexi8aMecRlqTIDWcyVXCeqLhUnztMa6bOH/jTg==",
      "requires": {
        "apollo-link": "^1.2.14",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.9.3"
      }
    },
    "apollo-utilities": {
      "version": "1.3.4",
      "resolved": "https://registry.npmjs.org/apollo-utilities/-/apollo-utilities-1.3.4.tgz",
      "integrity": "sha512-pk2hiWrCXMAy2fRPwEyhvka+mqwzeP60Jr1tRYi5xru+3ko94HI9o6lK0CT33/w4RDlxWchmdhDCrvdr+pHCig==",
      "requires": {
        "@wry/equality": "^0.1.2",
        "fast-json-stable-stringify": "^2.0.0",
        "ts-invariant": "^0.4.0",
        "tslib": "^1.10.0"
      }
    },
    "cross-fetch": {
      "version": "3.1.4",
      "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz",
      "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==",
      "requires": {
        "node-fetch": "2.6.1"
      }
    },
    "fast-json-stable-stringify": {
      "version": "2.1.0",
      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
    },
    "graphql": {
      "version": "15.5.3",
      "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.5.3.tgz",
      "integrity": "sha512-sM+jXaO5KinTui6lbK/7b7H/Knj9BpjGxZ+Ki35v7YbUJxxdBCUqNM0h3CRVU1ZF9t5lNiBzvBCSYPvIwxPOQA==",
      "peer": true
    },
    "graphql-tag": {
      "version": "2.12.5",
      "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.5.tgz",
      "integrity": "sha512-5xNhP4063d16Pz3HBtKprutsPrmHZi5IdUGOWRxA2B6VF7BIRGOHZ5WQvDmJXZuPcBg7rYwaFxvQYjqkSdR3TQ==",
      "requires": {
        "tslib": "^2.1.0"
      },
      "dependencies": {
        "tslib": {
          "version": "2.3.1",
          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
          "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
        }
      }
    },
    "node-fetch": {
      "version": "2.6.1",
      "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
      "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
    },
    "optimism": {
      "version": "0.10.3",
      "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.10.3.tgz",
      "integrity": "sha512-9A5pqGoQk49H6Vhjb9kPgAeeECfUDF6aIICbMDL23kDLStBn1MWk3YvcZ4xWF9CsSf6XEgvRLkXy4xof/56vVw==",
      "requires": {
        "@wry/context": "^0.4.0"
      }
    },
    "symbol-observable": {
      "version": "1.2.0",
      "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz",
      "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ=="
    },
    "ts-invariant": {
      "version": "0.4.4",
      "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.4.4.tgz",
      "integrity": "sha512-uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==",
      "requires": {
        "tslib": "^1.9.3"
      }
    },
    "tslib": {
      "version": "1.14.1",
      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg=="
    },
    "zen-observable": {
      "version": "0.8.15",
      "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz",
      "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ=="
    },
    "zen-observable-ts": {
      "version": "0.8.21",
      "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-0.8.21.tgz",
      "integrity": "sha512-Yj3yXweRc8LdRMrCC8nIc4kkjWecPAUVh0TI0OUrWXx6aX790vLcDlWca6I4vsyCGH3LpWxq0dJRcMOFoVqmeg==",
      "requires": {
        "tslib": "^1.9.3",
        "zen-observable": "^0.8.0"
      }
    }
  }
}
&&&
test.js@@@
let iMessageClient = new (require('./index.js'))()

const test = async () => {

	let results = await iMessageClient.getChats()
	console.log(`results`)
}

test()