{"_id":"@eliperelman/graphql-yoga","_rev":"4-9a3202dbdb699bc0df44c4b8315a6685","name":"@eliperelman/graphql-yoga","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@eliperelman/graphql-yoga","version":"1.0.0","main":"dist/src/index.js","typings":"./dist/src/index.d.ts","files":["dist"],"repository":{"type":"git","url":"git+https://github.com/eliperelman/graphql-yoga.git"},"keywords":["graphql","server","api","graphql-server","apollo"],"author":{"name":"Eli Perelman","email":"eli@eliperelman.com"},"license":"MIT","bugs":{"url":"https://github.com/graphcool/graphql-yoga/issues"},"homepage":"https://github.com/graphcool/graphql-yoga","scripts":{"prepublish":"npm run build","build":"rm -rf dist && tsc -d","lint":"tslint --project tsconfig.json {src,test}/**/*.ts","test":"npm run lint && npm run build"},"release":{"branch":"master"},"dependencies":{"@types/cors":"^2.8.3","@types/express":"^4.0.39","@types/graphql":"^0.12.0","@types/zen-observable":"^0.5.3","apollo-server-express":"^1.3.2","apollo-server-lambda":"1.3.2","apollo-upload-server":"^4.0.0-alpha.1","aws-lambda":"^0.1.2","body-parser-graphql":"1.0.0","cors":"^2.8.4","express":"^4.16.2","graphql":"^0.11.0 || ^0.12.0 || ^0.13.0","graphql-import":"^0.4.4","graphql-playground-middleware-express":"1.5.7","graphql-playground-middleware-lambda":"1.4.3","graphql-subscriptions":"^0.5.8","graphql-tools":"^2.18.0","subscriptions-transport-ws":"^0.9.6"},"devDependencies":{"@types/aws-lambda":"0.0.32","tslint":"5.9.1","tslint-config-prettier":"1.9.0","tslint-config-standard":"7.0.0","typescript":"2.7.2"},"gitHead":"7d028b0e476cd86f0534a642dc2019569e64f48d","description":"<p align=\"center\"><img src=\"https://imgur.com/Sv6j0B6.png\" width=\"100\" /></p>","_id":"@eliperelman/graphql-yoga@1.0.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"eliperelman","email":"eli@eliperelman.com"},"dist":{"integrity":"sha512-Wtt/vRCHmn5bRnh+aUjBwM2YfqWtInfnIA0boTh6T38VMGVvAa3IH88Bp9BR8/tXdDF2ii7zBYyXv2qDajBcnA==","shasum":"ba18bc10e73ca851029d3c856c5909a9a06b4e89","tarball":"https://registry.npmjs.org/@eliperelman/graphql-yoga/-/graphql-yoga-1.0.0.tgz","fileCount":15,"unpackedSize":59834,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDRfvvNoLzXSAsdwpWsXCp8FzbgSKrDaythKxUP8MQ5hgIgID2U6nNi08RmRoEQqYYzjfe3iOFuqghWC8bOKlIPnYg="}]},"maintainers":[{"name":"eliperelman","email":"eli@eliperelman.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-yoga_1.0.0_1520385556143_0.7411700881028096"},"_hasShrinkwrap":false},"1.1.0":{"name":"@eliperelman/graphql-yoga","version":"1.1.0","main":"dist/src/index.js","typings":"./dist/src/index.d.ts","files":["dist"],"repository":{"type":"git","url":"git+https://github.com/eliperelman/graphql-yoga.git"},"keywords":["graphql","server","api","graphql-server","apollo"],"author":{"name":"Eli Perelman","email":"eli@eliperelman.com"},"license":"MIT","bugs":{"url":"https://github.com/graphcool/graphql-yoga/issues"},"homepage":"https://github.com/graphcool/graphql-yoga","scripts":{"prepublish":"npm run build","build":"rm -rf dist && tsc -d","lint":"tslint --project tsconfig.json {src,test}/**/*.ts","test":"npm run lint && npm run build"},"release":{"branch":"master"},"dependencies":{"@types/connect":"^3.4.31","@types/cors":"^2.8.3","@types/express":"^4.0.39","@types/graphql":"^0.12.0","@types/koa":"^2.0.44","@types/koa-bodyparser":"^4.2.0","@types/koa-router":"^7.0.27","@types/zen-observable":"^0.5.3","apollo-engine":"^1.0.1","apollo-server-express":"^1.3.2","apollo-server-lambda":"1.3.2","apollo-upload-server":"^4.0.0-alpha.1","aws-lambda":"^0.1.2","body-parser-graphql":"1.0.0","cors":"^2.8.4","express":"^4.16.2","graphql":"^0.11.0 || ^0.12.0 || ^0.13.0","graphql-import":"^0.4.4","graphql-playground-middleware-express":"1.5.7","graphql-playground-middleware-lambda":"1.4.3","graphql-subscriptions":"^0.5.8","graphql-tools":"^2.18.0","restify":"^6.3.4","subscriptions-transport-ws":"^0.9.6"},"devDependencies":{"@types/aws-lambda":"0.0.32","tslint":"5.9.1","tslint-config-prettier":"1.9.0","tslint-config-standard":"7.0.0","typescript":"2.7.2"},"gitHead":"d82102fb6aa0e2311cd65e183add5fc2bf163476","description":"<p align=\"center\"><img src=\"https://imgur.com/Sv6j0B6.png\" width=\"100\" /></p>","_id":"@eliperelman/graphql-yoga@1.1.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"eliperelman","email":"eli@eliperelman.com"},"dist":{"integrity":"sha512-nxDUTYkjxa6wpgoO0Ttc2jDalMu5k5S2bllKcrJCDzdAzkn575wNRMWdLLz+hwLOhb4ZxqaztNPYzMR5xKX51A==","shasum":"c8aefb1632bf155b6c48c4f9df29a1cd03c03e36","tarball":"https://registry.npmjs.org/@eliperelman/graphql-yoga/-/graphql-yoga-1.1.0.tgz","fileCount":15,"unpackedSize":62227,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDIGpTmADqtpMBMwiNerHRwS5PEzv7Pd/IJC5HTovtMrwIhAPPWlRMv1MMlEMSU5x2RPCcfxZb+1lmsfepbhMQrkepj"}]},"maintainers":[{"name":"eliperelman","email":"eli@eliperelman.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-yoga_1.1.0_1520472453777_0.30677365286300473"},"_hasShrinkwrap":false},"1.2.0":{"name":"@eliperelman/graphql-yoga","version":"1.2.0","main":"dist/src/index.js","typings":"./dist/src/index.d.ts","files":["dist"],"repository":{"type":"git","url":"git+https://github.com/graphcool/graphql-yoga.git"},"keywords":["graphql","server","api","graphql-server","apollo"],"author":{"name":"Johannes Schickling","email":"johannes@graph.cool"},"license":"MIT","bugs":{"url":"https://github.com/graphcool/graphql-yoga/issues"},"homepage":"https://github.com/graphcool/graphql-yoga","scripts":{"prepublish":"npm run build","build":"rm -rf dist && tsc -d","lint":"tslint --project tsconfig.json {src,test}/**/*.ts","test":"npm run lint && npm run build"},"release":{"branch":"master"},"dependencies":{"@types/connect":"^3.4.31","@types/cors":"^2.8.3","@types/express":"^4.0.39","@types/graphql":"^0.12.0","@types/koa":"^2.0.44","@types/koa-bodyparser":"^4.2.0","@types/koa-router":"^7.0.27","@types/restify":"^5.0.7","@types/zen-observable":"^0.5.3","apollo-engine":"^1.0.1","apollo-server-express":"^1.3.2","apollo-server-lambda":"1.3.2","apollo-upload-server":"^4.0.0-alpha.1","aws-lambda":"^0.1.2","body-parser-graphql":"1.0.0","cors":"^2.8.4","express":"^4.16.2","graphql":"^0.11.0 || ^0.12.0 || ^0.13.0","graphql-import":"^0.4.4","graphql-playground-middleware-express":"1.5.7","graphql-playground-middleware-lambda":"1.4.3","graphql-subscriptions":"^0.5.8","graphql-tools":"^2.18.0","subscriptions-transport-ws":"^0.9.6"},"devDependencies":{"@types/aws-lambda":"0.0.33","tslint":"5.9.1","tslint-config-prettier":"1.9.0","tslint-config-standard":"7.0.0","typescript":"2.7.2"},"gitHead":"0cf632d28e4ca1d7f8de0efb8c4d2046fc5c9fa3","description":"<p align=\"center\"><img src=\"https://imgur.com/Sv6j0B6.png\" width=\"100\" /></p>","_id":"@eliperelman/graphql-yoga@1.2.0","_npmVersion":"5.6.0","_nodeVersion":"9.5.0","_npmUser":{"name":"eliperelman","email":"eli@eliperelman.com"},"dist":{"integrity":"sha512-KQrQqbzEC1ZI3Y9pESd1cHvlZ18Gskq6+ax7QrVw3DdU+lSm8GivzLqpJ0rJWqxT87QkzUOykmuuRt8SDl+/Sg==","shasum":"6c748de79287c936f741f675c8487d8355637399","tarball":"https://registry.npmjs.org/@eliperelman/graphql-yoga/-/graphql-yoga-1.2.0.tgz","fileCount":15,"unpackedSize":58233,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHkPpK0eewLiTU7pdpNzcPHIyMXptRItJ3T1RCfL2VkrAiAjCDDqo3HTOBqWVDI5WP8jYRpvP+NFDE9SDR8JI+s5mg=="}]},"maintainers":[{"name":"eliperelman","email":"eli@eliperelman.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/graphql-yoga_1.2.0_1521513740794_0.40346143724152306"},"_hasShrinkwrap":false}},"time":{"created":"2018-03-07T01:19:16.064Z","1.0.0":"2018-03-07T01:19:16.240Z","modified":"2022-04-05T07:12:07.745Z","1.1.0":"2018-03-08T01:27:33.841Z","1.2.0":"2018-03-20T02:42:20.892Z"},"maintainers":[{"name":"eliperelman","email":"eli@eliperelman.com"}],"description":"<p align=\"center\"><img src=\"https://imgur.com/Sv6j0B6.png\" width=\"100\" /></p>","homepage":"https://github.com/graphcool/graphql-yoga","keywords":["graphql","server","api","graphql-server","apollo"],"repository":{"type":"git","url":"git+https://github.com/graphcool/graphql-yoga.git"},"author":{"name":"Johannes Schickling","email":"johannes@graph.cool"},"bugs":{"url":"https://github.com/graphcool/graphql-yoga/issues"},"license":"MIT","readme":"<p align=\"center\"><img src=\"https://imgur.com/Sv6j0B6.png\" width=\"100\" /></p>\n\n# graphql-yoga\n\n[![CircleCI](https://circleci.com/gh/graphcool/graphql-yoga.svg?style=shield)](https://circleci.com/gh/graphcool/graphql-yoga) [![npm version](https://badge.fury.io/js/graphql-yoga.svg)](https://badge.fury.io/js/graphql-yoga)\n\nFully-featured GraphQL Server with focus on easy setup, performance & great developer experience\n\n## Overview\n\n* **Easiest way to run a GraphQL server:** Sensible defaults & includes everything you need with minimal setup.\n* **Includes Subscriptions:** Built-in support for GraphQL subscriptions using WebSockets.\n* **Compatible:** Works with all GraphQL clients (Apollo, Relay...) and fits seamless in your GraphQL workflow.\n\n`graphql-yoga` is based on the following libraries & tools:\n\n  * [`express`](https://github.com/expressjs/express)/[`apollo-server`](https://github.com/apollographql/apollo-server): Performant, extensible web server framework\n  * [`graphql-subscriptions`](https://github.com/apollographql/graphql-subscriptions)/[`subscriptions-transport-ws`](https://github.com/apollographql/subscriptions-transport-ws): GraphQL subscriptions server\n  * [`graphql.js`](https://github.com/graphql/graphql-js)/[`graphql-tools`](https://github.com/apollographql/graphql-tools): GraphQL engine & schema helpers\n  * [`graphql-playground`](https://github.com/graphcool/graphql-playground): Interactive GraphQL IDE\n  * [`apollo-engine`](https://github.com/apollographql/apollo-engine-js): Delivers essential capabilities like query caching, error tracking, automatic persisted queries, and execution tracing.\n\n## Features\n\n* GraphQL spec-compliant\n* File upload\n* GraphQL Subscriptions\n* TypeScript typings\n* GraphQL Playground\n* Extensible via Express middlewares\n* Apollo Tracing\n* Apollo Engine integration\n* Accepts both `application/json` and `application/graphql` content-type\n* Runs everywhere: Can be deployed via `now`, `up`, AWS Lambda, Heroku etc\n\n## Install\n\n```sh\nyarn add graphql-yoga\n```\n\n## Usage\n\n### Quickstart ([Hosted demo](https://hello-world-myitqprcqm.now.sh))\n\n```ts\nimport { GraphQLServer } from 'graphql-yoga'\n// ... or using `require()`\n// const { GraphQLServer } = require('graphql-yoga')\n\nconst typeDefs = `\n  type Query {\n    hello(name: String): String!\n  }\n`\n\nconst resolvers = {\n  Query: {\n    hello: (_, { name }) => `Hello ${name || 'World'}`,\n  },\n}\n\nconst server = new GraphQLServer({ typeDefs, resolvers })\nserver.start(() => console.log('Server is running on localhost:4000'))\n```\n\n> To get started with `graphql-yoga`, follow the instructions in the READMEs of the [examples](./examples). \n\n### API\n\n#### `GraphQLServer`\n\n##### `constructor(props: Props): GraphQLServer`\n\nThe `props` argument accepts the following fields:\n\n| Key | Type | Default | Note |\n| ---  | --- | --- | --- |\n| `typeDefs` | String  |  `null` | Contains GraphQL type definitions in [SDL](https://blog.graph.cool/graphql-sdl-schema-definition-language-6755bcb9ce51) or file path to type definitions (required if `schema` is not provided \\*)  |\n| `resolvers`  | Object  |  `null`  | Contains resolvers for the fields specified in `typeDefs` (required if `schema` is not provided \\*) |\n| `schema`  | Object |  `null`  | An instance of [`GraphQLSchema`](http://graphql.org/graphql-js/type/#graphqlschema) (required if `typeDefs` and `resolvers` are not provided \\*) |\n| `context`  | Object or Function  |  `{}`  | Contains custom data being passed through your resolver chain. This can be passed in as an object, or as a Function with the signature `(req: ContextParameters) => any` \\*\\* |\n\n> (*) There are two major ways of providing the [schema](https://blog.graph.cool/graphql-server-basics-the-schema-ac5e2950214e) information to the `constructor`:\n> \n> 1. Provide `typeDefs` and `resolvers` and omit the `schema`, in this case `graphql-yoga` will construct the `GraphQLSchema` instance using [`makeExecutableSchema`](https://www.apollographql.com/docs/graphql-tools/generate-schema.html#makeExecutableSchema) from [`graphql-tools`](https://github.com/apollographql/graphql-tools).\n> 2. Provide the `schema` directly and omit `typeDefs` and `resolvers`.\n\n> (\\*\\*) Notice that the `req` argument is an object of the shape `{ request, connection }` which either carries a `request: Request` property (in case it's a `Query`/`Mutation` resolver) or a `connection: SubscriptionOptions` property (in case it's a `Subscription` resolver). [`Request`](http://expressjs.com/en/api.html#req) is imported from Express.js. `SubscriptionOptions` is from the [`graphql-subscriptions`](https://github.com/apollographql/graphql-subscriptions) package. `SubscriptionOptions` are getting the connectionParams automatically injected under `SubscriptionOptions.context.[CONNECTION_PARAMETER_NAME]`\n\nHere is example of creating a new server:\n\n```js\nconst typeDefs = `\n  type Query {\n    hello(name: String): String!\n  }\n`\n\nconst resolvers = {\n  Query: {\n    hello: (_, { name }) => `Hello ${name || 'World'}`,\n  },\n}\n\nconst server = new GraphQLServer({ typeDefs, resolvers })\n```\n\n#### `start(options: Options, callback: ((options: Options) => void) = (() => null)): Promise<void>`\n\nOnce your `GraphQLServer` is instantiated, you can call the `start` method on it. It takes two arguments: `options`, the options object defined above, and `callback`, a function that's invoked right before the server is started. As an example, the `callback` can be used to print information that the server was now started.\n\nThe `options` object has the following fields:\n\n| Key | Type | Default | Note |\n| ---  | --- | --- | --- |\n| `cors` | Object |  `null` | Contains [configuration options](https://github.com/expressjs/cors#configuration-options) for [cors](https://github.com/expressjs/cors) |\n| `tracing`  | Boolean or String  |  `'http-header'`  | Indicates whether [Apollo Tracing](https://github.com/apollographql/apollo-tracing) should be en- or disabled for your server (if a string is provided, accepted values are: `'enabled'`, `'disabled'`, `'http-header'`) |\n| `port`  | Number |  `4000`  | Determines the port your server will be listening on (note that you can also specify the port by setting the `PORT` environment variable) |\n| `endpoint`  | String  |  `'/'`  | Defines the HTTP endpoint of your server |\n| `subscriptions` | Object or String or `false`  |  `'/'`  | Defines the subscriptions (websocket) endpoint for your server; accepts an object with [subscription server options](https://github.com/apollographql/subscriptions-transport-ws#constructoroptions-socketoptions) `path`, `keepAlive`, `onConnect` and `onDisconnect`; setting to `false` disables subscriptions completely |\n| `playground` | String or `false` |  `'/'`  | Defines the endpoint where you can invoke the [Playground](https://github.com/graphcool/graphql-playground); setting to `false` disables the playground endpoint |\n| `uploads` | [UploadOptions](/src/types.ts#L39-L43) or `false` or `undefined`  | `null`  | Provides information about upload limits; the object can have any combination of the following three keys: `maxFieldSize`, `maxFileSize`, `maxFiles`; each of these have values of type Number; setting to `false` disables file uploading |\n| `apolloEngine` | `string` or `object` | `null` | A string API key for Apollo Engine, or an object of Apollo Engine options, including `apiKey`, for proxying through Apollo Engine. You should also set `tracing` and `cacheControl` options accordingly. |\n\nAdditionally, the `options` object exposes these `apollo-server` options:\n\n| Key | Type | Note |\n| ---  | --- | --- |\n| `cacheControl`  | Boolean  | Enable extension that returns Cache Control data in the response |\n| `formatError`  | Number | A function to apply to every error before sending the response to clients |\n| `logFunction`  | LogFunction  | A function called for logging events such as execution times |\n| `rootValue` | any  | RootValue passed to GraphQL execution |\n| `validationRules` | Array of functions | DAdditional GraphQL validation rules to be applied to client-specified queries |\n| `fieldResolver` | GraphQLFieldResolver  | Specifify a custom default field resolver function\n| `formatParams` | Function  | A function applied for each query in a batch to format parameters before execution |\n| `formatResponse` | Function | A function applied to each response after execution |\n| `debug` | boolean  | Print additional debug logging if execution errors occur |\n\n```js\nconst options = {\n  port: 8000,\n  endpoint: '/graphql',\n  subscriptions: '/subscriptions',\n  playground: '/playground',\n}\n\nserver.start(options, ({ port }) => console.log(`Server started, listening on port ${port} for incoming requests.`))\n```\n\n#### `PubSub`\n\nSee the original documentation in [`graphql-subscriptions`](https://github.com/apollographql/graphql-subscriptions).\n\n### Endpoints\n\n## Examples\n\nThere are four examples demonstrating how to quickly get started with `graphql-yoga`:\n\n- [hello-world](./examples/hello-world): Basic setup for building a schema and allowing for a `hello` query.\n- [subscriptions](./examples/subscriptions): Basic setup for using subscriptions with a counter that increments every 2 seconds and triggers a subscriptions.\n- [fullstack](./examples/fullstack): Fullstack example based on [`create-react-app`](https://github.com/facebookincubator/create-react-app) demonstrating how to query data from `graphql-yoga` with [Apollo Client 2.0](https://www.apollographql.com/client/).\n- [apollo-engine](./examples/apollo-engine): Basic setup for integrating with Apollo Engine.\n\n## Workflow\n\nOnce your `graphql-yoga` server is running, you can use [GraphQL Playground](https://github.com/graphcool/graphql-playground) out of the box – typically running on `localhost:4000`. (Read [here](https://blog.graph.cool/introducing-graphql-playground-f1e0a018f05d) for more information.)\n\n[![](https://imgur.com/6IC6Huj.png)](https://www.graphqlbin.com/RVIn)\n\n## Deployment\n\n### `now`\n\nTo deploy your `graphql-yoga` server with [`now`](https://zeit.co/now), follow these instructions:\n\n1. Download [**Now Desktop**](https://zeit.co/download) \n2. Navigate to the root directory of your `graphql-yoga` server\n3. Run `now` in your terminal\n\n### Heroku\n\nTo deploy your `graphql-yoga` server with [Heroku](https://heroku.com), follow these instructions:\n\n1. Download and install the [Heroku Command Line Interface](https://devcenter.heroku.com/articles/heroku-cli#download-and-install) (previously Heroku Toolbelt)\n2. Log In to the Heroku CLI with `heroku login`\n3. Navigate to the root directory of your `graphql-yoga` server\n4. Create the Heroku instance by executing `heroku create`\n5. Deploy your GraphQL server by executing `git push heroku master`\n\n### `up` (Coming soon 🔜 )\n\n### AWS Lambda (Coming soon 🔜 )\n\n## FAQ\n\n### How does `graphql-yoga` compare to `apollo-server` and other tools?\n\nAs mentioned above, `graphql-yoga` is built on top of a variety of other packages, such as `graphql.js`, `express` and  `apollo-server`. Each of these provide a certain piece of functionality required for building a GraphQL server.\n\nUsing these packages individually incurs overhead in the setup process and requires you to write a lot of boilerplate. `graphql-yoga` abstracts away the initial complexity and required boilerplate and let's you get started quickly with a set of sensible defaults for your server configuration.\n\n`graphql-yoga` is like [`create-react-app`](https://github.com/facebookincubator/create-react-app) for building GraphQL servers.\n\n### Can't I just setup my own GraphQL server using `express` and `graphql.js`?\n\n`graphql-yoga` is all about convenience and a great \"Getting Started\"-experience by abstracting away the complexity that comes when you're building your own GraphQL from scratch. It's a pragmatic approach to bootstrap a GraphQL server, much like [`create-react-app`](https://github.com/facebookincubator/create-react-app) removes friction when first starting out with React.\n\nWhenever the defaults of `graphql-yoga` are too tight of a corset for you, you can simply _eject_ from it and use the tooling it's build upon - there's no lock-in or any other kind of magic going on preventing you from this.\n\n### How to eject from the standard `express` setup?\n\nThe core value of `graphql-yoga` is that you don't have to write the boilerplate required to configure your [express.js](https://github.com/expressjs/) application. However, once you need to add more customized behaviour to your server, the default configuration provided by `graphql-yoga` might not suit your use case any more. For example, it might be the case that you want to add more custom _middleware_ to your server, like for logging or error reporting.\n\nFor these cases, `GraphQLServer` exposes the `express.Application` directly via its [`express`](./src/index.ts#L17) property:\n```js\nserver.express.use(myMiddleware())\n```\nMiddlewares can also be added specifically to the GraphQL endpoint route, by using:\n```js\nserver.express.post(server.options.endpoint, myMiddleware())\n```\nAny middlewares you add to that route, will be added right before the `apollo-server-express` middleware.\n\n## Help & Community [![Slack Status](https://slack.graph.cool/badge.svg)](https://slack.graph.cool)\n\nJoin our [Slack community](http://slack.graph.cool/) if you run into issues or have questions. We love talking to you!\n\n[![](http://i.imgur.com/5RHR6Ku.png)](https://www.graph.cool/)\n\n","readmeFilename":"README.md"}