{"_id":"@apigrate/ms-graph-api","_rev":"7-b2eda40fb20514b2c32936859a461c44","name":"@apigrate/ms-graph-api","dist-tags":{"latest":"1.0.5"},"versions":{"1.0.0":{"name":"@apigrate/ms-graph-api","version":"1.0.0","keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","_id":"@apigrate/ms-graph-api@1.0.0","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"homepage":"https://github.com/apigrate/ms-graph-api#readme","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"dist":{"shasum":"964dffb8aaf55ef921844e26c36bd8de44ad7993","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.0.tgz","fileCount":4,"integrity":"sha512-+tKaW+PPrBcy3KmePr/QFjBsE6+/DzJ9GzwTIs5fJupKX0z8daJ7Qp7lb6LELaJWTJF4kz/jrzLj++lhYd7vqw==","signatures":[{"sig":"MEUCIQCPLbonze8jZgFuGHIqNJYz6EBH9xzFeCtprb346IdKIQIgGzO1dKDIGFTfeFzltilJCV8psUupximY6QLlSnxUqms=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17332,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin3YNACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpe9w/9EVEc9acdhlS2hvU1nJPdvjxkyeiuIiy0b/LNsYbCThco/heu\r\nXRrJ5OB+GGqXqZx5481qXmmLRhBZK7jus8A9Mvrdlg4Di6h65rDrVpTv78TQ\r\nPunqGf+ODPDTRj2UDgvJeHPv+M7/b78E/RMGwK4Wajk6vhJ9AkxZs8JBIK5L\r\nzRKLThNwYX8cwNvmqLNGPbe82wTO322SLOcoLiLq2iu3htfXECFsW8paQ8Y2\r\nKkOxIcB9+MEJkrMohc7J/U10RZMbSclHltS4nCDbuFlFX2xwaIenysrzEHW2\r\n2rbIbAulB9AY0wApuWCnI6jLGiEgRQJb2RejE/xdLW+eSQ4SzhL36cwbGSg6\r\nq/fRXVWIueb8JmRxwJ3SU8R7z1ly3frCr0x5TvWqd7R0CYvD47pS1TpWDHN8\r\ndvGZOUk9hs6WDJc4KmZP53A0sr3b5A6O5B+nOe4wAbhNKD95BiP5Eeqdso6i\r\n6LFosVzDhg+5QIHDdG87KPpsSDZQZKRZuLzjFC/NRs+qINB1MPHZpNUr8p46\r\nHCpqCfBzLKa+9ZJUioHYw9O3UjNoxV39m9YAeYO0A62N9AW/+j5h7C8fTkxx\r\nEjjrfuBMkLRyJPTz6B34gFYjuPZHYfGuT2e49UEbgpNHLLgUrxg9nsqlbYoT\r\ngtEQsBkqqijpUSsoZGIVeR+C43euWvB9yds=\r\n=ZtdY\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"254d0b218e9474b0a4c2770e5d23e66ee049c17f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"repository":{"url":"git+https://github.com/apigrate/ms-graph-api.git","type":"git"},"_npmVersion":"8.1.3","description":"Template for creating NodeJS API SDKs/Connectors","directories":{},"_nodeVersion":"14.17.6","dependencies":{"debug":"^4.1.1","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^8.2.0","@apigrate/aws-storage":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ms-graph-api_1.0.0_1654617612835_0.8446159160685915","host":"s3://npm-registry-packages"}},"1.0.1":{"name":"@apigrate/ms-graph-api","version":"1.0.1","keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","_id":"@apigrate/ms-graph-api@1.0.1","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"homepage":"https://github.com/apigrate/ms-graph-api#readme","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"dist":{"shasum":"5ba80fcd9c950c55c1eb58b092554d9f314a044e","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.1.tgz","fileCount":4,"integrity":"sha512-n6ZK0vWo1sBmA5OcGK/J+fGUKcKh8NDcBKNUAPeQ9HWRWNdQnNUqg58Vp83DQ695DTh1mttJkKcGWEeEgqJ9bw==","signatures":[{"sig":"MEUCIAu3LI9MmX+PKfpsRh0cSyBU52p9sc1IWekS4tukqPGFAiEArg/VjMlmDxFaD3K6gjqsVqTs5JRkKIEfdqthBfEGBUI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17362,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin3u9ACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmoDdg//Ymf3qjDl2UkNs/zYvmxLolS1FkzUtFT101iuHAhtz7cUo0Gn\r\nuvWualGiWfMF5HHw/VZGQpu9STqGO+JncZzMr6JwihtsnsiylkiU4fAic926\r\nfDiour0o98wBIADbT9IhLt05rlk6jWEzBRp9/+hj+BARcJaomMpLCk6t/UxL\r\nenn8jf0q9PLiBPVLURuL77N9J9ET7GkgbFRbfW71Jd6hhP3njn1qk79X8Sny\r\ntTk4DMppr46pCJp/pMhq2Q2532X0z8cH+3b2Lhl5ucD6PMuGJOvLTssbtLS6\r\nFG0x06MKO0Kossk85EkWPzFcBJlZfTOcxe3BpKr3IcTOPkDQ56YtqPCvPesf\r\nXYpwRsMUsn05JAgvG30Dqc8P5NdLm1mNhDBtnotJsemZ3PRkIICzyrpIJEqc\r\n9IeHEEoQwkb/s3aG7qxQFqfzJjzFmNK18UlyMtWi65g5qrR4X5uoU6ypoh4B\r\nb2CaUGwR1Th0c+AvW9PcbuKna+SLjVaqdLFyJ9LrLlcdLx5JcXUmoHIF7/6l\r\n3BDKjH9a3cc5ldRRMsWuu8KrJGyliXEbUqrfVN2JX5EC8IMSYx7v28r+r9mU\r\nBHYbw4Y15dCRrrFMu2xmioG+ipbEYsO9L7zY4iN1S1cmj08EAVKjXd5i6bS+\r\ncCzQaYhcbOqLBm21dfkRnAp2D/NvX/+RFl4=\r\n=3kbD\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"254d0b218e9474b0a4c2770e5d23e66ee049c17f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"repository":{"url":"git+https://github.com/apigrate/ms-graph-api.git","type":"git"},"_npmVersion":"8.1.3","description":"Template for creating NodeJS API SDKs/Connectors","directories":{},"_nodeVersion":"14.17.6","dependencies":{"debug":"^4.1.1","query-string":"^7.1.1","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^8.2.0","@apigrate/aws-storage":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ms-graph-api_1.0.1_1654619069533_0.3834603443810636","host":"s3://npm-registry-packages"}},"1.0.2":{"name":"@apigrate/ms-graph-api","version":"1.0.2","keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","_id":"@apigrate/ms-graph-api@1.0.2","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"homepage":"https://github.com/apigrate/ms-graph-api#readme","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"dist":{"shasum":"51f5cbaaabd2f67bca8a8540c4c116ef7e6ffc8e","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.2.tgz","fileCount":4,"integrity":"sha512-J9CYgWadw6QGmsI1reCUFgbXWWUJgo87cd4XNnw+tO33WDbBzpb2kx1J/SyiRasocayEQihLJKi3IX2JoxVCYA==","signatures":[{"sig":"MEQCICNEFNGOjSisMmuZhmQ89h9XMnIUtiKS0iOPFIJfi43NAiAf9nDVufm50xblC1siBRnH1d1nOgAOd0RT1SVGSGPZjg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17544,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin5VBACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqN5g//bT+Yb7bVl7FvkDsQd87h+cyWcY8rrVtMSBFJD753hIopc4pn\r\nrvwU/oadRqBMQrmB8Z1D/O20hCHFSL28PI8bfLJ1Qq4aIZ5WTIhzd4krA16Z\r\n85FpZwVR6O62UBAbLvPGJCgBH54kps0MdQw7ohZdtDX1SVaDumST/QBPol7B\r\nKGk4Aa7qOjQtV4Y0+erQzVBebXbEUt5zaIbp2jBhvzKOiaHt803E5L94X5iU\r\nTR1jN5npCHAEBckRKVrxrMyKCQXuFIXQMUEvAU+ocQunAL+iYCKv5xL75qO7\r\nPsCR6G1Y36S/U3jHC/k4uXKZvAPlDP1hyYPo/ZyIgix7EnPJIly6dexDwXEA\r\nekpQt7Gaik5atknFHS7M/iXR/6VYxIlEdKXj2pBtQ/jTlphjc8/jrmqBE/JN\r\nkde87KTnIos475jdE1qGypHs9Pg0KiTWIycLvCLQrhjFy7NYYV6tDXsKeJ92\r\nL9p3yPlpWOfDkDa21kbnzvI4RIP/ff/VxY/4LD9ZC9zJH7N71k4KIh58Tivg\r\nLIqm8C8r56vO3kecuCMELHeHy6ih6NdI4AUrW3S6qa94StEx2rj7gQYU4Ufn\r\nHixiX/Xrh6TFqRMtd8T878+IGGPGha/TlUJlPEvVijjgRCMRtqlivT3SC6Yu\r\nxRKKRQHAGn7BYglra5LdU5AvC0XHHoSL8gg=\r\n=cAqI\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"254d0b218e9474b0a4c2770e5d23e66ee049c17f","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"repository":{"url":"git+https://github.com/apigrate/ms-graph-api.git","type":"git"},"_npmVersion":"8.1.3","description":"Template for creating NodeJS API SDKs/Connectors","directories":{},"_nodeVersion":"14.17.6","dependencies":{"debug":"^4.1.1","query-string":"^7.1.1","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^8.2.0","@apigrate/aws-storage":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ms-graph-api_1.0.2_1654625601190_0.37159445397655655","host":"s3://npm-registry-packages"}},"1.0.3":{"name":"@apigrate/ms-graph-api","version":"1.0.3","keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","_id":"@apigrate/ms-graph-api@1.0.3","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"homepage":"https://github.com/apigrate/ms-graph-api#readme","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"dist":{"shasum":"c3bd233e7efb3476ae95836d126b210c92065e71","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.3.tgz","fileCount":4,"integrity":"sha512-H4hTdOGA8FIu1Hggg+q++W1PbEpT8N4sK469IObpIDxRMSPNbLb4T0SwpvjFFZ+xYQCmSkuBtFW6U6gxtfiUhQ==","signatures":[{"sig":"MEYCIQClXs/q6tb6dWxspxWzSyk9VpA7Lp1QlK3duU9BgGoLjgIhAIQNPzHl4A03FOPB07fngeFJd1SPObLZzD/HYUzphfJC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17620,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin5hLACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmpK4xAAlu4nQEYbKsnfCaqfHPq861KTXTuhlOdETAZb7WLI4TLSAbX+\r\n7/oRD5O2wvkOOjuUOSVhYbLPDSocA/dDgp1KmjxCUfoX0qRgdpuGX6RLGa6i\r\nEpuGPxyGd2C2g62BMImiMJhH+DNORzku6Lf24z7DlnAX7/hFXt5nTCiMa99r\r\nBz3XCcTPNyzg0USFo/0AoPAOV6pwu+WXPGmaUMOhPZlNw42BLcZtzGNpvMsN\r\nyZvMz2vGc/araDVKlupImvyrR69o0LPO/fS5F6lEbO6LMwAZwl13RrwZ7CDw\r\nNvmE29Ts66+83bi41KG5CeKEC4eGRCSrXwKKBpWP+bGrhwxgirJRUn304qKw\r\n2Ke/YP/CWT9UT0SvRcHR65wGGOfmengAFCTDXcRHI2Ef/RaEwkt2iqK5c7rI\r\n7XwFCS0lZcgBEvFFq/b0LlpQKmsTRf92fANDcvMqu3HK+oQFWoBtsDG9sVDB\r\nToVofcBrsuP+aIY9LLjx8Wv26tHFepFubhknBIE62VuiaWPVmZqFkrgyd0aK\r\n5PJ/6F5QdR0DtPgNVFGYENQPZjM6XR/DJISL5hjwDhtDmwOpjz+ACtbi/i/K\r\nWsk2y1VJeX04vxDLxwKVmKVE+gv2rCiA7YmCATb3tHzO0DNpFUpvAiCaweOb\r\nqLfVVJp6W1I6sCBYoyiPJC3OLLkEdu0N2uE=\r\n=Ujx9\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"2f812223f21f97d48179c8f468295ddcc9bc8747","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"repository":{"url":"git+https://github.com/apigrate/ms-graph-api.git","type":"git"},"_npmVersion":"8.1.3","description":"Template for creating NodeJS API SDKs/Connectors","directories":{},"_nodeVersion":"14.17.6","dependencies":{"debug":"^4.1.1","query-string":"^7.1.1","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^8.2.0","@apigrate/aws-storage":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ms-graph-api_1.0.3_1654626378859_0.38141158900998495","host":"s3://npm-registry-packages"}},"1.0.4":{"name":"@apigrate/ms-graph-api","version":"1.0.4","keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","_id":"@apigrate/ms-graph-api@1.0.4","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"homepage":"https://github.com/apigrate/ms-graph-api#readme","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"dist":{"shasum":"75cd434cd984d663236e738bbca42fc152377920","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.4.tgz","fileCount":4,"integrity":"sha512-s1wmm/73PQUmknViswSBZwKLhB28XrdMsQsjSjxrBD20/vWDmb5p0+aFqAthJVZUksh/CXso/PPwC9xELJLI+g==","signatures":[{"sig":"MEUCIEdHHFTqnYUfCUQyRuyrHRH8tkoO/XFfGoYWnimGp/JnAiEAkzJGKXdEO2XxZG+T8+exZDwus2IbniHDTMjVOgcbrds=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":17884,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJin5vhACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2VmqRuw//Rh7kamQDy0JLcI76N4n8IEasglBi+GGi4VSFoIgOAUMFKFZd\r\nJIE3jGSY841KHk4fFTwFPQC/Yg86VwIsJiUrexYBFAR0dzw+2MhcLXPoUf52\r\niD1LkMGJcNjd0Y4MM/FpQyc7FmZxF2pINehZo05d59TxXa8cJk50YCwQJtdF\r\nV/86+yRuMfxWSZ+HbzBAJnLwy11muptUoN9R9XjlVFQLPeHyYC+c+hoaV+5q\r\nmQHC0J+VhKRonj6MXaSKZKIdpi0RHO0JNTF16Ug5Wdw3tCYaybnZmyDuVD8u\r\niNKK8KOs6vwhRc5j8JcAx+vgg7Sc9ndsvK5Aqm9X9eLvFuRWa3GNI9+BECwx\r\nbFug35GJc1xMrY7nm2A8mzMzqi6exD1JdZKXBPhKrmdZ2ZG0eCjw2pyoFUcn\r\nqalHy8O865+vfeQqmavSqc045uU9dWxOJr3h4Hhb6zZIrUJzeNJbbbTLIVmu\r\nTBAHqBqBFM/tNYyn+IfmV50RpPfV7zZ/RBthBnmtBuyotCiFI1gjc1Dy4Y3e\r\nIxVJFwg5daIrBRX+XMZJUJiePLb/JrQpeEhSvj0q1t2OmVy66MPyPRE2S8+L\r\nujPZl+lr4c7dyaDEb3b6aKpMbWINpIC4oCjuwDs2e2JehX+27qOArqai5xSU\r\nxWKAYtyc6nIevbPH4wdzXqKIjKxWRekvyCk=\r\n=y2E4\r\n-----END PGP SIGNATURE-----\r\n"},"main":"index.js","gitHead":"dfbf2351f565f8fc89e48387eb504ac047dea5a3","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"repository":{"url":"git+https://github.com/apigrate/ms-graph-api.git","type":"git"},"_npmVersion":"8.1.3","description":"Template for creating NodeJS API SDKs/Connectors","directories":{},"_nodeVersion":"14.17.6","dependencies":{"debug":"^4.1.1","query-string":"^7.1.1","isomorphic-fetch":"^3.0.0"},"_hasShrinkwrap":false,"devDependencies":{"dotenv":"^8.2.0","@apigrate/aws-storage":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ms-graph-api_1.0.4_1654627297603_0.21354306873313345","host":"s3://npm-registry-packages"}},"1.0.5":{"name":"@apigrate/ms-graph-api","version":"1.0.5","description":"Template for creating NodeJS API SDKs/Connectors","main":"index.js","scripts":{"test":"echo \"Error: no test specified\" && exit 1"},"repository":{"type":"git","url":"git+https://github.com/apigrate/ms-graph-api.git"},"keywords":["API"],"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"homepage":"https://github.com/apigrate/ms-graph-api#readme","devDependencies":{"@apigrate/aws-storage":"^2.1.0","dotenv":"^8.2.0"},"dependencies":{"debug":"^4.1.1","isomorphic-fetch":"^3.0.0","query-string":"^7.1.1"},"_id":"@apigrate/ms-graph-api@1.0.5","gitHead":"22a9516c2a5089d85f45f346ba68db231fdcd6fd","_nodeVersion":"22.17.0","_npmVersion":"10.9.2","dist":{"integrity":"sha512-dqhxW7WrRo/Ul03LpK0RkBqxTiaigASubHgHnZf+vZd/vOr3X6PgC7j4UYrkVKMfRGs4TAxb4rghO8CRA9iD7Q==","shasum":"dc483a3c9c807207cc098b1a97dabb92dfe6ab36","tarball":"https://registry.npmjs.org/@apigrate/ms-graph-api/-/ms-graph-api-1.0.5.tgz","fileCount":3,"unpackedSize":15622,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEHzc9hF8Fu6XfAoK7hJgWHXQG0HyXg7yh9nI0MnT2ysAiEAn8Fqdomqd9J923KcoRxRPDcoKSSJyTz42ZRS+wHQxwU="}]},"_npmUser":{"name":"apigratedev","email":"derek@apigrate.com"},"directories":{},"maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ms-graph-api_1.0.5_1772816990705_0.7918553062259215"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-07T16:00:12.835Z","modified":"2026-03-06T17:09:50.994Z","1.0.0":"2022-06-07T16:00:12.987Z","1.0.1":"2022-06-07T16:24:29.703Z","1.0.2":"2022-06-07T18:13:21.330Z","1.0.3":"2022-06-07T18:26:19.058Z","1.0.4":"2022-06-07T18:41:37.787Z","1.0.5":"2026-03-06T17:09:50.847Z"},"bugs":{"url":"https://github.com/apigrate/ms-graph-api/issues"},"author":{"name":"Derek R. Gau"},"license":"UNLICENSED","homepage":"https://github.com/apigrate/ms-graph-api#readme","keywords":["API"],"repository":{"type":"git","url":"git+https://github.com/apigrate/ms-graph-api.git"},"description":"Template for creating NodeJS API SDKs/Connectors","maintainers":[{"name":"apigratedev","email":"derek@apigrate.com"}],"readme":"# Apigrate MS Graph API Connector\n\nThis is a simple NodeJS API connector supporting basic capabilities for working with the [Microsoft Graph API](https://docs.microsoft.com/en-us/graph/api/overview?view=graph-rest-1.0).\n\n## Getting Started\n\nPlease note this connector makes use of [isomorphic fetch](https://www.npmjs.com/package/isomorphic-fetch) polyfill to ensure consistency with the Fetch API. Make sure it is installed as a peer dependency.\n\nInstantiate the connector like this:\n\n```javascript\n\nconst { MSGraphConnector } = require('@apigrate/ms-graph-api');\nconst client = new MSGraphConnector({\n  client_id:     process.env.MSGRAPH_CLIENT_ID, \n  client_secret: process.env.MSGRAPH_CLIENT_SECRET, \n  redirect_uri:  process.env.MSGRAPH_AUTH_REDIRECT_URI, \n  tenant:        process.env.MSGRAPH_TENANT_TYPE, \n  credentialHandler\n});\n\n```\n\nSee [Microsoft's documentation](https://docs.microsoft.com/en-us/graph/auth/auth-concepts?context=graph%2Fapi%2F1.0&view=graph-rest-1.0) for more information about the client_id, client_secret, redirect_id and tenant values.\n\n### The Credential Handler\nThe **credentialHandler** is an object responsible for getting and setting Oauth credentials to/from persistent storage; you must implement it yourself. It does not directly call any Microsoft APIs, but its methods will be invoked when the connector detects changes to access or refresh tokens. Implement it by following this signature:\n\n```javascript\n\nlet credentialHandler = {\n  /** Invoked when the client needs credentials for an API call. */\n  getCredentials: async ()=>{\n    return await myCredentialStorageImplementation.get();\n  },\n  \n  /** Invoked when the client has received an update to the credentials. Save the credentials in persistent storage here. */\n  putCredentials: async (credentials)=>{\n    try{\n      debug('Storing updated credentials...');\n      await myCredentialStorageImplementation.set(credentials);\n      debug('...success.');\n    }catch(ex){\n      debug('Error Storing credentials. '+ ex.message)\n      console.error(ex);\n    }\n  }\n};\n\n\n```\n\n\n## OAuth Support \n\nYou can use the connector to assist in the OAuth authorization process. To assemble a URL for beginning an OAuth dialog, use the connector like this:\n\n```javascript\n\nconst { getAuthorizationUrl } = require('@apigrate/ms-graph-api');\n\nlet scope = \"offline_access user.read files.read\";\nlet state = \"persistentStateToCheckOnCallback\";\n\nlet url = getAuthorizationUrl(\n  process.env.MSGRAPH_CLIENT_ID,\n  process.env.MSGRAPH_AUTH_REDIRECT_URI, \n  process.env.MSGRAPH_TENANT_TYPE, \n  scope, \n  state);\n\n// redirect to this url to begin OAuth prompts...\n\n```\n\n### Obtaining an Access Token for a code\n\nInstantiate a client as in Getting Started above. Then...\n\n```javascript\n\n// code = the code received from the MSGraph OAuth callback (typically on an HTTP request).\n\nlet credentials = await client.getAccessToken(code);\n\n// ... the credentialHandler will automatically store the credentials into persistent storage if the code is successfully exchanged for an access token. \n\n```\n\n\n## Calling the Graph API\n\nTo call the Microsoft Graph API, instantiate the connector and use the graph API URL:\n\n```javascript\n\nawait client.api({ method: \"GET\", url: `/me` );\n\n```\n\nKeep in mind the `api()` method is really just a wrapper around the fetch API. Using this method automatically handles access token and refresh token activity for you (again, make sure you are using a credentialHandler to store/retrieve this data). \n\nFor different API calls, use the following properties of the parameter.\n\n* method: string GET, PUT, POST, or DELETE\n* url: string Graph API Url beginning with a '/' (relative to the base Micrsoft Graph URL) \n* query: object containing any query parameters\n* payload: object containing the payload for a POST or PUT request\n* options: object, including headers property hash if you need to send specific headers\n\n\n\n\n","readmeFilename":"README.md"}