{"_id":"@blueeast/loopback-graphql-relay","_rev":"5-7b9fc928937e0022bd37a8cc2b024be3","name":"@blueeast/loopback-graphql-relay","description":"Add Relay based Apollo Server or GraphQL queries on your Loopback server","dist-tags":{"latest":"2.0.0-beta.1"},"versions":{"1.0.0":{"name":"@blueeast/loopback-graphql-relay","version":"1.0.0","description":"Add Relay based Apollo Server or GraphQL queries on your Loopback server","main":"src/boot.js","directories":{"test":"test"},"scripts":{"commit":"git-cz","eslint":"eslint .","lint":"npm run eslint","data":"cpx ./data.json ./data/","pretest":"npm run eslint && npm run data","test":"mocha --reporter spec --timeout 10000","start":"node server/server.js","nodemon":"nodemon server/server.js","debug":"nodemon server/server.js --debug-brk=5858","mocha:coverage":"istanbul cover --root . --include-all-sources --dir ./coverage --report text --report text-summary --report lcov --print none  _mocha -- test/**/*.spec.js --reporter spec --timeout 10000","test:watch":"mocha -R nyan -w --timeout 10000","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","release":"standard-version","publish:patch":"npm run test && npm version patch && npm run changelog"},"repository":{"url":"git+https://github.com/BlueEastCode/loopback-graphql-relay.git","type":"git"},"keywords":["Loopback","GraphQL","Apollo","Express","Javascript","REST","APIs"],"author":{"name":"Abdul Rehman Talat","email":"rehman.talat@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/BlueEastCode/loopback-graphql-relay/issues"},"homepage":"https://github.com/BlueEastCode/loopback-graphql-relay#readme","dependencies":{"apollo-cache-inmemory":"^1.1.4","apollo-engine":"0.5.4","apollo-link-http":"^1.3.2","apollo-server-express":"^1.3.2","async":"2.6.0","body-parser":"1.18.2","chai-as-promised":"^7.1.1","event-stream":"3.3.4","express-graphql":"^0.6.11","graphql":"0.11.7","graphql-date":"1.0.3","graphql-loopback-subscriptions":"^0.1.0","graphql-relay":"git+https://github.com/BlueEastCode/graphql-relay-js.git","graphql-subscriptions":"^0.5.6","graphql-type-json":"0.1.4","lodash":"4.17.4","loopback-filters":"0.1.3","promisify-node":"0.4.0","sinon-chai":"^2.14.0","subscriptions-transport-ws":"^0.9.4"},"devDependencies":{"apollo-client":"2.0.3","babel-eslint":"8.0.2","bluebird":"3.5.1","chai":"^4.1.2","chai-http":"3.0.0","commitizen":"2.9.6","compression":"1.7.1","conventional-changelog":"1.1.7","conventional-changelog-cli":"1.3.5","cors":"2.8.4","cpx":"1.5.0","cpy-cli":"1.0.1","cz-conventional-changelog":"2.1.0","eslint":"4.11.0","eslint-config-blueeast":"0.3.0","eslint-config-loopback":"8.0.0","eslint-plugin-import":"2.8.0","eslint-plugin-jsx-a11y":"6.0.2","eslint-plugin-nodeca":"1.0.3","eslint-plugin-react":"7.5.1","ghooks":"2.0.0","graphql-tag":"2.5.0","helmet":"3.9.0","istanbul":"0.4.5","loopback":"3.16.2","loopback-boot":"2.27.0","loopback-component-explorer":"5.2.0","loopback-datasource-juggler":"3.13.0","mocha":"^3.3.0","nodemon":"1.12.1","nsp":"3.1.0","serve-favicon":"2.4.5","sinon":"4.1.2","standard-version":"4.2.0","strong-error-handler":"2.3.0","validate-commit-msg":"^2.14.0"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"gitHead":"6cc204d17d619310581ededc0cad84e435db17c1","_id":"@blueeast/loopback-graphql-relay@1.0.0","_npmVersion":"5.5.1","_nodeVersion":"6.12.2","_npmUser":{"name":"bjavaid","email":"javaidbabar@gmail.com"},"dist":{"integrity":"sha512-sWFZAVdOsaPPaX1Tsfc8SKAzOOm5zGgnqqshxAEK128kjawXzET+aPTsLEbQiPBBVpgkJabTT+dvfze+SJLnOw==","shasum":"f3e5514d047c1fcb029d480cb25294e59af58b97","tarball":"https://registry.npmjs.org/@blueeast/loopback-graphql-relay/-/loopback-graphql-relay-1.0.0.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDh0Dc4cAXv3ZsilLeNdwl863kH3Yh2FpPJBwsccfP0EAIhAJBZk5UFmr63ZH4UfIzyriRkwfTUQyyzioFAZqhzbKii"}]},"maintainers":[{"name":"bjavaid","email":"javaidbabar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loopback-graphql-relay-1.0.0.tgz_1516873383274_0.6434414936229587"}},"2.0.0-beta.1":{"name":"@blueeast/loopback-graphql-relay","description":"Add Relay based Apollo Server or GraphQL queries on your Loopback server","version":"2.0.0-beta.1","main":"src/index.js","directories":{"test":"test"},"scripts":{"commit":"git-cz","eslint":"eslint .","lint":"npm run eslint","data":"cpx ./data.json ./data/","pretest":"npm run eslint && npm run data","test":"mocha --reporter spec --timeout 10000 --exit","start":"node server/server.js","nodemon":"nodemon server/server.js","debug":"nodemon server/server.js --debug-brk=5858","mocha:coverage":"istanbul cover --root . --include-all-sources --dir ./coverage --report text --report text-summary --report lcov --print none  _mocha -- test/**/*.spec.js --reporter spec --timeout 10000","test:watch":"mocha -R nyan -w --timeout 10000","changelog":"conventional-changelog -p angular -i CHANGELOG.md -s","release":"standard-version","publish:patch":"npm run test && npm version patch && npm run changelog"},"repository":{"url":"git+https://github.com/BlueEastCode/loopback-graphql-relay.git","type":"git"},"keywords":["Loopback","GraphQL","Apollo","Express","Javascript","REST","APIs"],"author":{"name":"BlueEast Code"},"license":"MIT","bugs":{"url":"https://github.com/BlueEastCode/loopback-graphql-relay/issues"},"homepage":"https://github.com/BlueEastCode/loopback-graphql-relay#readme","dependencies":{"@blueeast/graphql-mqtt-subscriptions":"^2.1.3","apollo-cache-inmemory":"^1.1.4","apollo-engine":"0.8.10","apollo-link-http":"^1.3.2","apollo-server-express":"^1.3.6","async":"2.6.0","body-parser":"1.18.2","event-stream":"3.3.4","express-graphql":"^0.6.11","graphql":"^0.13.0","graphql-date":"1.0.3","graphql-loopback-subscriptions":"2.0.1","graphql-relay":"git+https://github.com/BlueEastCode/graphql-relay-js.git","graphql-subscriptions":"^0.5.6","graphql-type-json":"0.1.4","lodash":"4.17.5","loopback":"^3.18.2","loopback-filters":"1.0.0","promisify-node":"0.4.0","subscriptions-transport-ws":"^0.9.4"},"devDependencies":{"apollo-client":"2.2.5","babel-eslint":"8.2.1","bluebird":"3.5.1","chai":"^4.1.2","chai-as-promised":"^7.1.1","chai-http":"3.0.0","commitizen":"2.9.6","compression":"1.7.1","conventional-changelog":"1.1.15","conventional-changelog-cli":"1.3.13","cors":"2.8.4","cpx":"1.5.0","cpy-cli":"1.0.1","cz-conventional-changelog":"2.1.0","eslint":"4.17.0","eslint-config-blueeast":"0.3.2","eslint-config-loopback":"10.0.0","eslint-plugin-import":"2.8.0","eslint-plugin-jsx-a11y":"6.0.3","eslint-plugin-nodeca":"1.0.3","eslint-plugin-react":"7.6.1","ghooks":"2.0.2","graphql-tag":"2.7.3","helmet":"3.11.0","istanbul":"0.4.5","loopback":"3.18.2","loopback-boot":"2.27.0","loopback-component-explorer":"5.2.0","loopback-datasource-juggler":"3.15.4","mocha":"^5.0.1","nodemon":"1.14.12","nsp":"3.1.0","serve-favicon":"2.4.5","sinon":"4.3.0","sinon-chai":"^2.14.0","standard-version":"4.3.0","strong-error-handler":"2.3.1","validate-commit-msg":"^2.14.0"},"config":{"commitizen":{"path":"node_modules/cz-conventional-changelog"}},"gitHead":"4107e312ac320a933ac6a4ad6baf810ff6730c32","_id":"@blueeast/loopback-graphql-relay@2.0.0-beta.1","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"bjavaid","email":"javaidbabar@gmail.com"},"dist":{"integrity":"sha512-xOO0ip4/8MP/XScX0g+hqJu8ejKdhC0EeV0HQ5z5B+ceIC78r2Itf1fferKPRYdKCu/pos4BExRFIMV465J7eQ==","shasum":"50d6e071b4781c3ad2e46253b2d719bc6108d027","tarball":"https://registry.npmjs.org/@blueeast/loopback-graphql-relay/-/loopback-graphql-relay-2.0.0-beta.1.tgz","fileCount":38,"unpackedSize":289326,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbQaFPCRA9TVsSAnZWagAAsYAP/3o2XTwMwZGc/I/yBLch\nmNEBDFpiKNRuuHGv5PRbpPziMh3KZmSV+4yCW5qgtAzoEfKWGUUOSB6UWUEz\nlOq1w1jK+fP2q60dnfUocpO5UWswlc8BH1si42NA7JU/oywUWb0Uz0f/J4kN\ns4qok5DeRwnkE76QBU9VcuT90w7xhccegfy7vCVXpxrfqz30x0RjKHHHNzZe\nRJZSYtytuoH/j3S5ry1F9ckox7/7zzpPmA76Q2dpl9jVCAbtsrv2dfb39iZ/\nXrpSLXait52SFcNB5bu/a8VGV/14QodpQX2dCs+Q8djI/LhfE+SSXzSMzyuG\nXurG0PurndKpbplTZHl0vO1gUDkNq6jZbYRkX7UeKz861yiJyUqFBwtg9fAT\nFz3k4nW9m8rvtXKUyAaEJDzrRqK0MFcoPvovkVcAed1wNQy42x4nVFZqssIk\nNsKdLiHX1+CdkjM+HaT/yBPHE6l46pB5QM0PaBscUKnmX93SqemK+Tz52C9G\nPKs4h24FjqW88a4hFRXU+NpgROykvMF3AyeBiz3sJRIwRZyI2kGEibMbBdZ1\nQ8TgMIPRkCfB8oMdqNQRzLoklOouUJOGsbwP04SqDTNyNNRwuo3Rv3Bko1gU\nbZNUM748Yg5IHbrFdG09oheMFw1lrhRh1oVHTOE26bb6EhDkP/NkPbFHkMY1\n7TmH\r\n=xkg7\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBq9vSBpZBZRzfdVcGS4zhauTR++XQ01YnGGnZ3hk00cAiA7TiAFb9b7Sq+9C3GeseOGMfc8/5G+zSD03A6v7Y+scw=="}]},"maintainers":[{"name":"artalat","email":"rehman.talat@gmail.com"},{"name":"bjavaid","email":"javaidbabar@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/loopback-graphql-relay_2.0.0-beta.1_1531027791660_0.20347806571218285"},"_hasShrinkwrap":false}},"readme":"\n### Status 🎊\n[![npm version](https://badge.fury.io/js/loopback-graphql-relay.svg)](https://badge.fury.io/js/loopback-graphql-relay) [![Build Status](https://travis-ci.org/BlueEastCode/loopback-graphql-relay.svg?branch=master)](https://travis-ci.org/BlueEastCode/loopback-graphql-relay) [![bitHound Overall Score](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/badges/score.svg)](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay) [![bitHound Dependencies](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/badges/dependencies.svg)](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/develop/dependencies/npm) [![bitHound Dev Dependencies](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/badges/devDependencies.svg)](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/develop/dependencies/npm) [![bitHound Code](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay/badges/code.svg)](https://www.bithound.io/github/BlueEastCode/loopback-graphql-relay) [![Known Vulnerabilities](https://snyk.io/test/npm/loopback-graphql-relay/badge.svg)](https://snyk.io/test/npm/loopback-graphql-relay)\n\n# Relay GraphQL Server for Loopback (Apollo Server)\n\nCombine the powers of [ApolloStack](http://www.apollostack.com/) GraphQL with the backend of Loopback to automatically generate GraphQL endpoints based on Loopback Schema.\n\n![Loopback Graphql](./resources/loopback-graphql.png?raw=true \"LoopBack Apollo Architecture\") \n\n## Caution ⚠️\nThis is a work in progress. Until version 1.0 endpoint API may change.\n\n## Queries 💥\n- Relay Specification: `node` query to fetch single entity by ID\n- `viewer` query to fetch all models for a viewer\n- Filter support for `where` and `order` filters on queries\n- Support for relations and querying related data\n- Relay Connections support for listed data\n- Relay Pagination (`first`, `last`, `before`, `after`)\n- Remote methods integration\n\n## Mutations 🚀\n- Nested and clean schema structure\n- Maps all `post`, `put`, `patch` and `delete` methods to mutations\n- Remote methods integration\n\n## Subscriptions ⚡️\n- `create`, `update` and `remove` events of all shared models.\n\n## Other Features 🎉\n### Loopback Types\n- [x] Any\n- [x] Array\n- [x] Boolean\n- [ ] Buffer\n- [x] Date\n- [x] GeoPoint\n- [x] Null\n- [x] Number\n- [x] Object\n- [x] String\n\n### Loopback Relations\n- [x] BelongsTo\n- [x] HasOne\n- [x] HasMany\n- [ ] HasManyThrough\n- [x] HasAndBelongsToMany\n- [ ] Polymorphic\n- [x] EmbedsOne\n- [x] EmbedsMany\n- [x] ReferencesMany\n\n### Misc\n- Accepts AccessToken for authenticated API calls\n\n### Todo\n- [ ] File uploads\n\n\n## Usage 💻\n\n```sh\nnpm install loopback-graphql-relay\n```\nAdd the loopback-graphql-relay component to the `server/component-config.json`: \n\n```\n\"loopback-graphql-relay\": {\n    \"path\": \"/graphql\",\n    \"graphiqlPath\": \"/graphiql\",\n    \"subscriptionServer\": {\n      \"disable\": false,\n      \"port\": 5000,\n      \"options\": {},\n      \"socketOptions\": {}\n    },\n    \"viewer\": {\n      \"AccessTokenModel\": \"CustomAccessToken\",\n      \"relation\": \"user\",\n      \"UserModel\": \"Account\"\n    }\n  }\n```\n\nRequests will be posted to `path` path. (Default: `/graphql`);\n\nGraphiql is available on `graphiqlPath` path. (Default: `/graphiql`);\n\nApollo's Subscription Server can be customised by passing `subscriptionServer` configuration. More information can be found at [SubscriptionServer Docs](https://github.com/apollographql/subscriptions-transport-ws#subscriptionserver).\n\n## Inspiration 🙌\nThis repository originally started as a fork of the [loopback-graphql](https://github.com/Tallyb/loopback-graphql) project by [Tallyb](https://github.com/Tallyb). But due to considerable change in the way query end points are created, this repository is maitained as an independant project.\n\n## Roadmap 🛣\n[See here the Github project](https://github.com/BlueEastCode/loopback-graphql-relay/projects)\n","maintainers":[{"email":"bluebase-release-bot@blueeast.com","name":"bluebase-release-bot"},{"email":"abubakar.mani1@gmail.com","name":"abubakarsaddique"},{"email":"rehman.talat@gmail.com","name":"artalat"}],"time":{"modified":"2022-04-04T19:47:22.352Z","created":"2018-01-25T09:43:04.286Z","1.0.0":"2018-01-25T09:43:04.286Z","2.0.0-beta.1":"2018-07-08T05:29:51.724Z"},"homepage":"https://github.com/BlueEastCode/loopback-graphql-relay#readme","keywords":["Loopback","GraphQL","Apollo","Express","Javascript","REST","APIs"],"repository":{"url":"git+https://github.com/BlueEastCode/loopback-graphql-relay.git","type":"git"},"author":{"name":"BlueEast Code"},"bugs":{"url":"https://github.com/BlueEastCode/loopback-graphql-relay/issues"},"license":"MIT","readmeFilename":"README.md"}