{"action":"created","comment":{"url":"https://api.github.com/repos/babel/website/pulls/comments/197636124","pull_request_review_id":131417391,"id":197636124,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NzYzNjEyNA==","diff_hunk":"@@ -0,0 +1,218 @@\n+---\n+layout: post\n+title:  \"On Consuming (and Publishing) ES6+ Packages\"\n+author: Henry Zhu\n+authorURL: https://twitter.com/left_pad\n+date:   2018-06-25 12:00:00\n+categories: announcements\n+share_text: \"On Consuming (and Publishing) ES6+ Packages\"\n+---\n+\n+How can we make compiling dependencies not just possible, but normal?\n+\n+<!--truncate-->\n+\n+This post is inspired by [Dan's tweet](https://twitter.com/dan_abramov/status/1009179550134296577) about how we can conflate shipping source code, ES6+, ESM\n+\n+This is a pretty enabling feature request for the whole ecosystem, so I'm glad we've tried to make this easier in Babel v7 (I just realized this whole post is a good pitch for using it). Hopefully it can be made more standard moving forward (if we're collectively able to figure out some things I outline below).\n+\n+## Why\n+\n+Why is compiling your dependencies desirable in the first place (vs. just your own code)?\n+\n+We can ship less code to users, since JavaScript has a [cost](https://medium.com/dev-channel/the-cost-of-javascript-84009f51e99e).\n+\n+## Assumptions\n+\n+- You can ship to modern browsers (don't have to support IE) or are able to send multiple types of bundles (one way being [checking for script`type=module`](https://philipwalton.com/articles/deploying-es2015-code-in-production-today/)).\n+- And/or the dependencies actually publish ES6+ instead of ES5/ES3.\n+\n+## Backing up a Bit: Talking About `preset-env`\n+\n+If you think about it, the argument for why this would be helpful is the same for why we eventually introduced `@babel/preset-env`.\n+\n+Babel used to be `6to5`, since it only converted from ES6 to ES5. Back then, the browser support for ES6 was almost non-existent so the idea of a JS compiler was an amazing contribution to our ecosystem.\n+\n+I went through with implementing the preset even though there was so much complexity since it seemed to solve multiple issues for us. I didn't realize how much it would move us forward now that it's finally [surpassed `preset-es2015`](https://npm-stat.com/charts.html?package=babel-preset-es2015&package=babel-preset-env&from=2016-11-01&to=2018-06-22) which is a nice accomplishment.\n+\n+When I think about Babel's role not just in moving the language itself forward but helping us develop websites better, I saw that we would eventually want to move past only compiling to ES5. Creating `preset-env` helps us align with the browsers since if we only compiled to ES5, no one would ever run native code in the browsers.\n+\n+The real difference is realizing that there will _always_ be a sliding window of support: whether it's the JavaScript language that continues to move forward with new syntax, the browsers catching up with the standard, or the companies/projects themselves.\n+\n+- You (your supported environments)\n+- Browsers (Chrome, Firefox, Edge, Safari)\n+- TC39/ECMAScript Proposals (and Babel implementations)\n+\n+Thus the need isn't just for `6to5` to be renamed to Babel because it compiles to `7to5`, but for Babel to change the implicit assumption it only targets ES5. With `@babel/preset-env`, you are able to write the latest JavaScript and target whichever browser (environment) you want!\n+\n+But assuming people even know it exists or have starting using it at all, it's mainly for your **application** code.\n+\n+## Your Code\n+\n+You have control over your own code to be able to take advantage of preset-env: write in ES6+ and target ES6+ browsers.\n+\n+However, this isn't necessarily the case for your dependencies (though you _should_ take ownership of them).\n+\n+## What Then?\n+\n+The next step is to start thinking \"how do we actually make this happen\"?\n+\n+Is it as straightforward as just running Babel over `node_modules` with the same configuration for your application?\n+\n+## Caveats\n+\n+### Using Non-Standard Syntax\n+\n+This is what Dan was warning about. There are many issues with *shipping* uncompiled proposal syntax.\n+\n+#### Using Proposals\n+\n+<blockquote class=\"twitter-tweet\" data-lang=\"en\"><p lang=\"und\" dir=\"ltr\"><a href=\"https://t.co/femUb4vgxh\">pic.twitter.com/femUb4vgxh</a></p>&mdash; Rach Smith 🌈 (@rachsmithtweets) <a href=\"https://twitter.com/rachsmithtweets/status/892478598765887488?ref_src=twsrc%5Etfw\">August 1, 2017</a></blockquote>\n+\n+We already recommend that people should be careful when using proposals lower than Stage 3, let alone publishing them.\n+\n+But telling people not to use Stage X goes against the whole purpose of Babel in the first place. A big reason why proposals gain improvements and move forward are because of the feedback the committee gets from real-world usage (whether in production or not) based on using it via Babel.\n+\n+There is certainly a balance to be had here. We don't want to scare people away from using new syntax (that is a hard sell 😂), but we also don't want people to get the idea that \"once it's in Babel, the syntax is official or immutable\". Ideally people look into the purpose of a proposal and make the tradeoffs for their use case.\n+\n+One of the most common things people do is use the Stage 0 or Stage 2 presets. We plan to remove the stage presets in v7 after much back and forth. I thought at first it would be convienent, that people would make their own unofficial ones anyway, or it might help with \"JavaScript fatigue\". I find now that it just causes more of an issue: people continue to copy/paste configs with out understanding what goes into a preset in the first place. After all, seeing `\"stage-0\"` says nothing. My hope is that in making the decision to use proposal plugins explicit, people will have to learn what non-standard syntax they are opting into.\n+\n+#### Staging Process\n+\n+- The [TC39 staging process](https://tc39.github.io/process-document/) does not always move forward: there is the possibility for a proposal to move to any point in the process: even moving backwards from Stage 3 to Stage 2 as the case with Numeric Separators (`1_000`) or dropped entirely (`Object.observe()`, and others you may have forgotten)\n+- It can be hard to differentitate between the stages if you aren't involved: most people would advise that Stage 0-2 is unstable though.\n+- Summary: Stage 0 has no criteria and is just an idea, Stage 1 is accepting that the problem is worth solving, Stage 2 is about describing a solution in spec text, Stage 3 means the specific solution is thought out, and Stage 4 means that it is ready for inclusion with tests, multiple browser implementations, and in-the-field experience.\n+\n+#### Publishing Non-standard Syntax\n+\n+So actually publishing it in a library may cause even more issues. Because a TC39 proposal (even at Stage 3) has a possibility of changing, it means you will inevitability have to change the code.\n+\n+At least if you ship the compiled version, it will still work and the library maintainer can change the output so that it works the same as before. Shipping the uncompiled version means that anyone consuming a package will necessarily have to have a build step to use it, and will have to have the same version of Babel as you. This is no different than using TS/JSX/Flow which you wouldn't publish either.\n+\n+TODO: Or a proposal might just stall because people are busy, etc. Decorators are a great example of this.\n+\n+### Conflating ESM and ES6+\n+\n+When you do `import foo from \"foo\"` or `require(\"foo\")` and `foo` doesn't have an `index.js`, it will resolve to the `main` field in the `package.json` of the module.\n+\n+Some tools like Rollup/Webpack will also read from another field called `module` (previously `jsnext:main`). It uses this to instead resolve to the ESM file.\n+\n+- An example with [`redux`](https://github.com/reactjs/redux)\n+\n+```js\n+// redux package.json\n+{\n+  ...\n+  \"main\": \"lib/redux.js\", // ES5 + CJS\n+  \"module\": \"es/redux.js\", // ES5 + ESM\n+}\n+```\n+\n+This was introduced so that users could consume ES2015 modules (ESM).\n+\n+However, the sole intention of this field is ESM, not anything else. The [Rollup docs](https://github.com/rollup/rollup/wiki/pkg.module#wait-it-just-means-import-and-export--not-other-future-javascript-features) make it clear that it's not intended for future JavaScript syntax.\n+\n+What this means is that we may need another way to handle ES6+ even though some libraries may choose to do this anyway.\n+\n+A common suggestion is for libraries to start publishing ES2015 under another field like `es2015`, e.g. `\"es2015\": \"es2015/redux.js\"`.\n+\n+```js\n+// @angular/core package.json\n+{\n+  \"main\": \"./bundles/core.umd.js\",\n+  \"module\": \"./fesm5/core.js\",\n+  \"es2015\": \"./fesm2015/core.js\",\n+  \"esm5\": \"./esm5/core.js\",\n+  \"esm2015\": \"./esm2015/core.js\",\n+  \"fesm5\": \"./fesm5/core.js\",\n+  \"fesm2015\": \"./fesm2015/core.js\",\n+}\n+```\n+\n+This works for ES2015 but the question next is what about ES2016? Are we supposed to create a new folder for each year and a new field in `package.json`? That seems unsustainable, and will continue to produce larger `node_modules`.\n+\n+I feel like this is similar to how we had a Babel preset for each year and ended up creating `preset-latest` which included all the yearly plugins (we removed that soon after in favor of `preset-env`).\n+\n+Having a field like `es-latest` or `esnext` may not be helpful either because we want the library versions to be fixed yet changing. And providing only the source may not always be helpful if you use non-standard syntax, TS, Flow, JSX, etc which might have different behavior based on compiler version. Maybe we need some changes on the `npm` side?\n+\n+One suggestion is to provide an ES5 version but also publish a version that includes the latest standard syntax so it can be compiled with `preset-env`.\n+\n+### Dependencies May Not Publish ES6+\n+\n+TODO:\n+\n+- Due to complexity and tooling, it may be difficult for projects to publish ES6/ESM without more setup. This is probably the biggest issue to get right, even docs aren't enough. We should add some feature requests to `@babel/cli` to make this easier, and maybe make the `babel` package do this by default? Tools like @developit's [microbundle](https://github.com/developit/microbundle) may help a lot with this.\n+- How do we deal with polyfills? This could be it's own post (I never finished it). Mention `preset-env` + polyfills. What would it look like for a library author not to have to think about polyfills (or the user).\n+\n+### Compiler Complexity","path":"website/blog/2018-06-25-on-consuming-and-publishing-es6+-packages.md","position":147,"original_position":147,"commit_id":"6386cfdda61bb3bf3c5bf88c8cba69319edf959f","original_commit_id":"6386cfdda61bb3bf3c5bf88c8cba69319edf959f","user":{"login":"chrisdarroch","id":97636,"node_id":"MDQ6VXNlcjk3NjM2","avatar_url":"https://avatars0.githubusercontent.com/u/97636?v=4","gravatar_id":"","url":"https://api.github.com/users/chrisdarroch","html_url":"https://github.com/chrisdarroch","followers_url":"https://api.github.com/users/chrisdarroch/followers","following_url":"https://api.github.com/users/chrisdarroch/following{/other_user}","gists_url":"https://api.github.com/users/chrisdarroch/gists{/gist_id}","starred_url":"https://api.github.com/users/chrisdarroch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chrisdarroch/subscriptions","organizations_url":"https://api.github.com/users/chrisdarroch/orgs","repos_url":"https://api.github.com/users/chrisdarroch/repos","events_url":"https://api.github.com/users/chrisdarroch/events{/privacy}","received_events_url":"https://api.github.com/users/chrisdarroch/received_events","type":"User","site_admin":false},"body":"You could move this section between the \"What then\" and \"Caveats\" section. Compiler complexity is a problem, but the social problems are more challenging. Lead with the \"easy\" problem first ;)","created_at":"2018-06-24T10:53:47Z","updated_at":"2018-06-24T11:04:05Z","html_url":"https://github.com/babel/website/pull/1705#discussion_r197636124","pull_request_url":"https://api.github.com/repos/babel/website/pulls/1705","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/babel/website/pulls/comments/197636124"},"html":{"href":"https://github.com/babel/website/pull/1705#discussion_r197636124"},"pull_request":{"href":"https://api.github.com/repos/babel/website/pulls/1705"}}},"pull_request":{"url":"https://api.github.com/repos/babel/website/pulls/1705","id":196907701,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk2OTA3NzAx","html_url":"https://github.com/babel/website/pull/1705","diff_url":"https://github.com/babel/website/pull/1705.diff","patch_url":"https://github.com/babel/website/pull/1705.patch","issue_url":"https://api.github.com/repos/babel/website/issues/1705","number":1705,"state":"open","locked":false,"title":"Publishing ES6+ Post ","user":{"login":"hzoo","id":588473,"node_id":"MDQ6VXNlcjU4ODQ3Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/588473?v=4","gravatar_id":"","url":"https://api.github.com/users/hzoo","html_url":"https://github.com/hzoo","followers_url":"https://api.github.com/users/hzoo/followers","following_url":"https://api.github.com/users/hzoo/following{/other_user}","gists_url":"https://api.github.com/users/hzoo/gists{/gist_id}","starred_url":"https://api.github.com/users/hzoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hzoo/subscriptions","organizations_url":"https://api.github.com/users/hzoo/orgs","repos_url":"https://api.github.com/users/hzoo/repos","events_url":"https://api.github.com/users/hzoo/events{/privacy}","received_events_url":"https://api.github.com/users/hzoo/received_events","type":"User","site_admin":false},"body":"Purpose: bring up a discussion on how library authors should publish ES6+ and ESM as well as how this is dealt on the consumer side (whether or not you need to compile deps)\r\n\r\n- [x] I will move this to https://github.com/babel/website eventually\r\n- [ ] Should I move the headings around (maybe a different order is better)? This could probably be better organized\r\n- [ ] Am I missing something?\r\n- [ ] Should I split the post up, it's getting long?\r\n- [ ] Check if I repeated myself too much in between sections\r\n- [ ] Anything better with a visual? (either code, picture, etc)\r\n- [ ] Pitch v7 release/post, mention patreon/oc?\r\n- [ ] mention creating a standard for publishing (latest syntax, ESM) for lib authors to use, create a way to validate, npm should promote, tooling should use.","created_at":"2018-06-23T15:38:22Z","updated_at":"2018-06-24T11:04:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c2d723a69fb2d31f7174931ae272139a4e8597a3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/babel/website/pulls/1705/commits","review_comments_url":"https://api.github.com/repos/babel/website/pulls/1705/comments","review_comment_url":"https://api.github.com/repos/babel/website/pulls/comments{/number}","comments_url":"https://api.github.com/repos/babel/website/issues/1705/comments","statuses_url":"https://api.github.com/repos/babel/website/statuses/6386cfdda61bb3bf3c5bf88c8cba69319edf959f","head":{"label":"babel:publishing-es6","ref":"publishing-es6","sha":"6386cfdda61bb3bf3c5bf88c8cba69319edf959f","user":{"login":"babel","id":9637642,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk2Mzc2NDI=","avatar_url":"https://avatars1.githubusercontent.com/u/9637642?v=4","gravatar_id":"","url":"https://api.github.com/users/babel","html_url":"https://github.com/babel","followers_url":"https://api.github.com/users/babel/followers","following_url":"https://api.github.com/users/babel/following{/other_user}","gists_url":"https://api.github.com/users/babel/gists{/gist_id}","starred_url":"https://api.github.com/users/babel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/babel/subscriptions","organizations_url":"https://api.github.com/users/babel/orgs","repos_url":"https://api.github.com/users/babel/repos","events_url":"https://api.github.com/users/babel/events{/privacy}","received_events_url":"https://api.github.com/users/babel/received_events","type":"Organization","site_admin":false},"repo":{"id":26390088,"node_id":"MDEwOlJlcG9zaXRvcnkyNjM5MDA4OA==","name":"website","full_name":"babel/website","owner":{"login":"babel","id":9637642,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk2Mzc2NDI=","avatar_url":"https://avatars1.githubusercontent.com/u/9637642?v=4","gravatar_id":"","url":"https://api.github.com/users/babel","html_url":"https://github.com/babel","followers_url":"https://api.github.com/users/babel/followers","following_url":"https://api.github.com/users/babel/following{/other_user}","gists_url":"https://api.github.com/users/babel/gists{/gist_id}","starred_url":"https://api.github.com/users/babel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/babel/subscriptions","organizations_url":"https://api.github.com/users/babel/orgs","repos_url":"https://api.github.com/users/babel/repos","events_url":"https://api.github.com/users/babel/events{/privacy}","received_events_url":"https://api.github.com/users/babel/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/babel/website","description":":globe_with_meridians: The Babel documentation website","fork":false,"url":"https://api.github.com/repos/babel/website","forks_url":"https://api.github.com/repos/babel/website/forks","keys_url":"https://api.github.com/repos/babel/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/babel/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/babel/website/teams","hooks_url":"https://api.github.com/repos/babel/website/hooks","issue_events_url":"https://api.github.com/repos/babel/website/issues/events{/number}","events_url":"https://api.github.com/repos/babel/website/events","assignees_url":"https://api.github.com/repos/babel/website/assignees{/user}","branches_url":"https://api.github.com/repos/babel/website/branches{/branch}","tags_url":"https://api.github.com/repos/babel/website/tags","blobs_url":"https://api.github.com/repos/babel/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/babel/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/babel/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/babel/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/babel/website/statuses/{sha}","languages_url":"https://api.github.com/repos/babel/website/languages","stargazers_url":"https://api.github.com/repos/babel/website/stargazers","contributors_url":"https://api.github.com/repos/babel/website/contributors","subscribers_url":"https://api.github.com/repos/babel/website/subscribers","subscription_url":"https://api.github.com/repos/babel/website/subscription","commits_url":"https://api.github.com/repos/babel/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/babel/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/babel/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/babel/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/babel/website/contents/{+path}","compare_url":"https://api.github.com/repos/babel/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/babel/website/merges","archive_url":"https://api.github.com/repos/babel/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/babel/website/downloads","issues_url":"https://api.github.com/repos/babel/website/issues{/number}","pulls_url":"https://api.github.com/repos/babel/website/pulls{/number}","milestones_url":"https://api.github.com/repos/babel/website/milestones{/number}","notifications_url":"https://api.github.com/repos/babel/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/babel/website/labels{/name}","releases_url":"https://api.github.com/repos/babel/website/releases{/id}","deployments_url":"https://api.github.com/repos/babel/website/deployments","created_at":"2014-11-09T08:29:53Z","updated_at":"2018-06-22T18:34:40Z","pushed_at":"2018-06-23T16:04:00Z","git_url":"git://github.com/babel/website.git","ssh_url":"git@github.com:babel/website.git","clone_url":"https://github.com/babel/website.git","svn_url":"https://github.com/babel/website","homepage":"https://new.babeljs.io/docs/en/next/index.html","size":20657,"stargazers_count":400,"watchers_count":400,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":684,"mirror_url":null,"archived":false,"open_issues_count":63,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":684,"open_issues":63,"watchers":400,"default_branch":"master"}},"base":{"label":"babel:master","ref":"master","sha":"955c467c381b70cbf64ec18f5e9cad0823cb67d7","user":{"login":"babel","id":9637642,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk2Mzc2NDI=","avatar_url":"https://avatars1.githubusercontent.com/u/9637642?v=4","gravatar_id":"","url":"https://api.github.com/users/babel","html_url":"https://github.com/babel","followers_url":"https://api.github.com/users/babel/followers","following_url":"https://api.github.com/users/babel/following{/other_user}","gists_url":"https://api.github.com/users/babel/gists{/gist_id}","starred_url":"https://api.github.com/users/babel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/babel/subscriptions","organizations_url":"https://api.github.com/users/babel/orgs","repos_url":"https://api.github.com/users/babel/repos","events_url":"https://api.github.com/users/babel/events{/privacy}","received_events_url":"https://api.github.com/users/babel/received_events","type":"Organization","site_admin":false},"repo":{"id":26390088,"node_id":"MDEwOlJlcG9zaXRvcnkyNjM5MDA4OA==","name":"website","full_name":"babel/website","owner":{"login":"babel","id":9637642,"node_id":"MDEyOk9yZ2FuaXphdGlvbjk2Mzc2NDI=","avatar_url":"https://avatars1.githubusercontent.com/u/9637642?v=4","gravatar_id":"","url":"https://api.github.com/users/babel","html_url":"https://github.com/babel","followers_url":"https://api.github.com/users/babel/followers","following_url":"https://api.github.com/users/babel/following{/other_user}","gists_url":"https://api.github.com/users/babel/gists{/gist_id}","starred_url":"https://api.github.com/users/babel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/babel/subscriptions","organizations_url":"https://api.github.com/users/babel/orgs","repos_url":"https://api.github.com/users/babel/repos","events_url":"https://api.github.com/users/babel/events{/privacy}","received_events_url":"https://api.github.com/users/babel/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/babel/website","description":":globe_with_meridians: The Babel documentation website","fork":false,"url":"https://api.github.com/repos/babel/website","forks_url":"https://api.github.com/repos/babel/website/forks","keys_url":"https://api.github.com/repos/babel/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/babel/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/babel/website/teams","hooks_url":"https://api.github.com/repos/babel/website/hooks","issue_events_url":"https://api.github.com/repos/babel/website/issues/events{/number}","events_url":"https://api.github.com/repos/babel/website/events","assignees_url":"https://api.github.com/repos/babel/website/assignees{/user}","branches_url":"https://api.github.com/repos/babel/website/branches{/branch}","tags_url":"https://api.github.com/repos/babel/website/tags","blobs_url":"https://api.github.com/repos/babel/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/babel/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/babel/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/babel/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/babel/website/statuses/{sha}","languages_url":"https://api.github.com/repos/babel/website/languages","stargazers_url":"https://api.github.com/repos/babel/website/stargazers","contributors_url":"https://api.github.com/repos/babel/website/contributors","subscribers_url":"https://api.github.com/repos/babel/website/subscribers","subscription_url":"https://api.github.com/repos/babel/website/subscription","commits_url":"https://api.github.com/repos/babel/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/babel/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/babel/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/babel/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/babel/website/contents/{+path}","compare_url":"https://api.github.com/repos/babel/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/babel/website/merges","archive_url":"https://api.github.com/repos/babel/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/babel/website/downloads","issues_url":"https://api.github.com/repos/babel/website/issues{/number}","pulls_url":"https://api.github.com/repos/babel/website/pulls{/number}","milestones_url":"https://api.github.com/repos/babel/website/milestones{/number}","notifications_url":"https://api.github.com/repos/babel/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/babel/website/labels{/name}","releases_url":"https://api.github.com/repos/babel/website/releases{/id}","deployments_url":"https://api.github.com/repos/babel/website/deployments","created_at":"2014-11-09T08:29:53Z","updated_at":"2018-06-22T18:34:40Z","pushed_at":"2018-06-23T16:04:00Z","git_url":"git://github.com/babel/website.git","ssh_url":"git@github.com:babel/website.git","clone_url":"https://github.com/babel/website.git","svn_url":"https://github.com/babel/website","homepage":"https://new.babeljs.io/docs/en/next/index.html","size":20657,"stargazers_count":400,"watchers_count":400,"language":"JavaScript","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":684,"mirror_url":null,"archived":false,"open_issues_count":63,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":684,"open_issues":63,"watchers":400,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/babel/website/pulls/1705"},"html":{"href":"https://github.com/babel/website/pull/1705"},"issue":{"href":"https://api.github.com/repos/babel/website/issues/1705"},"comments":{"href":"https://api.github.com/repos/babel/website/issues/1705/comments"},"review_comments":{"href":"https://api.github.com/repos/babel/website/pulls/1705/comments"},"review_comment":{"href":"https://api.github.com/repos/babel/website/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/babel/website/pulls/1705/commits"},"statuses":{"href":"https://api.github.com/repos/babel/website/statuses/6386cfdda61bb3bf3c5bf88c8cba69319edf959f"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"chrisdarroch"}}