payload: {"action":"created","comment":{"url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/comments/344671185","pull_request_review_id":314843792,"id":344671185,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDM0NDY3MTE4NQ==","diff_hunk":"@@ -0,0 +1,340 @@\n+---\n+title: Module resolution\n+status: DRAFTED\n+created_at: 2019-11-08\n+updated_at: 2019-11-08\n+pr: https://github.com/salesforce/lwc/pull/1602\n+---\n+\n+# Module Resolution\n+\n+This RFC formalizes the module resolution for LWC. It defines the way that we can resolve modules in all host environments (node, browser, rollup, webpack) and in a multi-author multi-version way that is compliant with the latest mental models and specificatons in the different platforms.\n+\n+## Motivation\n+\n+As the LWC ecosystem organically grows both internally at Salesforce and externally as OSS, we want to provide and encourage a way to share web components, npm packages and other artifacts, regardless of the host environment, technologies or tools used.\n+\n+## Basic example\n+\n+Let's look at a very simple scenario: We have a repository of LWC components we want to open source. We want to use other 3party packages as the foundation for my components, in this case `@ui/components@2.0.0` and `fancy-components@1.0.0`. Its important to note that the `fancy-components` package is using internally `@ui/components@1.0.0`, which is a different version of the package I'm using.\n+\n+Here is how the structure of the repo looks like  you can take a look at [ a real implementation implementation and test here](https://github.com/salesforce/lwc/pull/1602/files#diff-5cfc908f1b15979cf59306304092ddb5):\n+\n+```markup\n+rootDir\n+├── src/\n+│   └── modules/\n+│       └── root/\n+│           └── foo/\n+│               └── foo.js (\"root/foo\")\n+└── node_modules/\n+    ├── @ui/\n+    │   └── components/\n+    │       ├── package.json [ui-components@2.0.0]\n+    │       └── src/\n+    │           └── modules/\n+    │               └── ui/\n+    │                   └── button/\n+    │                       └── button.js (\"ui/button\")\n+    └── fancy-components/\n+        ├── package.json     [fancy-components@1.0.0]\n+        ├── src/\n+        │   └── modules/\n+        │       └── fancy/\n+        │           └── bar/\n+        │               └── bar.js (\"fancy/bar\")\n+        └── node_modules/\n+            └── @ui/\n+                └── components/\n+                    ├── package.json [ui-components@v1.0.0]\n+                    └── src/\n+                        └── modules/\n+                            └── ui/\n+                                └── button/\n+                                    └── button.js (\"ui/button\")\n+```\n+\n+When importing those components from a given module here is what we would expect:\n+\n+```js\n+// importer: root/foo/foo.js\n+import button from \"ui/button\"; // should resolve against ui/button@2.0.0\n+```\n+\n+```js\n+// importer: fancy/bar/bar.js\n+import button from \"ui/button\"; // should resolve against ui/button@1.0.0\n+```\n+\n+This means that from a developers perspective you just import the module you need.\n+\n+## State of the art\n+\n+An important topic to understand first is how module resolution works today in different technologies and host environments.\n+\n+JavaScript did not had built-in support for modules, but the community has created impressive work-arounds over the years. The two most important (and unfortunately incompatible) standards are: CommonJS (used fundamentally by Node - with some extra semantics) and AMD (Asyncronous module definition), used by RequireJs and a lot of other bundlers.\n+\n+Note that there are other non-standard formats, loaders and tools like UMD, SystemJS, IIFE, etc, which are interesting for you know and understand but are out of the scope for this proposal.\n+\n+### Node.js resolution\n+\n+If you ever used Node, you know that in order to import a module you need to use the `require()` method, and if you want to export something to some other module or file you must use `module.exports`. That is know nas [CommonJS format](https://en.wikipedia.org/wiki/CommonJS). Now if you want to import a 3party package how does that works? Well Node decided to implement its own resolution by looking at the content of a the node_modules folder based on some dependencies defined on `package.json`. You can look at the full algorithm [here](https://nodejs.org/docs/latest/api/modules.html#modules_all_together).\n+\n+All of this being said after years of very hard work, Node is finnaly addopting ES6 modules (which we will see in the next section) since LTS v12 and they are hoping to [fully transition to it soon](https://twitter.com/MylesBorins/status/1189618753065144322)\n+\n+Just to put all of this in a simple example:\n+\n+```js\n+// This will be resolved by looking a node_modules/ folder \"foo-bar\" \n+// recursively upwards, and the check the package.kson to find the entry point. \n+const x = require('foo-bar') // This is using CommonJS syntax\n+\n+// This indicates that we are exporting a default function \n+// to whoever is requesting this module\n+module.exports = function () { return x() }; // This is using CommonJS syntax\n+\n+```\n+\n+### ES6 Modules and browser resolution\n+\n+At the end of July 2014, TC39 (Javascript standarization comitee) had another meeting, during which the last details of the ECMAScript 6 (ES6) module syntax were finalized. [Here is the specification text](https://www.ecma-international.org/ecma-262/6.0/#sec-imports).\n+\n+The fundamental goal for ECMAScript 6 modules was to create a standard format that all users from the previous formats where comfortable and happy about, and lacked none of the caveats and issues - and since was part of the standar a lot of things could be improved like 1) The structure which can be statically analyzed (for static checking, optimizations, etc.) 2) Support for cyclic dependencies in a much better way.\n+\n+Here is how ES6 modules look like:\n+\n+```js\n+import { foo } from \"bar\";\n+import buzz from \"buzz\";\n+\n+export function namedExport() { return foo(); }\n+\n+// re-export a module\n+export { buzz };\n+```\n+\n+Along with that there is another proposal (Stage 4) for [dynamic imports](https://tc39.es/proposal-dynamic-import/) to allow modules to be loaded lazily.\n+\n+As a final note, remember that the resolution of ES6 can be done in multiple ways.\n+  - Browsers have implemented a URL schema base way of resolving modules with [import maps](https://wicg.github.io/import-maps/) (We will be basing our implementation on this)\n+  - Node.js as stated before has integrated ES6 modules along side the old one (see link above).\n+  - Tools like Webpack or RollupJs allow you to configure and customize the way we load bundle and resolve modules both run build-time and run-time.\n+\n+## Why we need our own module resolution\n+\n+Web Components are composed of multiple pieces (CSS, HTML and JS) and there is no canonical or standard way to bundle them natively yet (altough there are several proposals to standarize the way by which each of this pieces can interoperate and be integrated in the future see [CSS modules](https://github.com/w3c/webcomponents/issues/759), [HTML templates](https://github.com/w3c/webcomponents/issues/839)) hence we must build a future-proof, standard compliant way to do so while we help the standarization pieces to land.\n+\n+Even when we have all this pieces become available (and without going into too much detail here), it is likely that we will have to do some preprocessing or bundling anyway, which mean that we will have to take over the resolution one way or another - wether is build time to collapse mutliple pieces in on, or at runtime by using import-maps with some extra semantics on top. Moreover remember that a give package might contain many components (1:N) relationship, so will always have to have a configuration on where to find those components.\n+\n+To summarize: We will always need an abstraction layer which dictates where a particular module specifier must be resolved from (adapted to different host environments).\n+\n+## Detailed design\n+\n+In order to resolve modules in LWC that work on different host environments (Salesforce platform, Node.js, npm, git, et all) we will be relying on our own LWC configuration file (similar approach as import-maps, babel, webpack rollup or package.json).\n+\n+### LWC configuration\n+\n+A configuration file will be located at the root of the project, optionally at the component namespace level and in the future (this is yet to be spec out) at the module bundle level, where specificitiy will be resolved from inner to outer (merging upwards - similar to node_modules).\n+\n+At the package root level there are two ways on which you can add a configuration file: Creating a `lwc.config.json` or adding an `lwc` key to package.json (this is mostly for simplicity and easy of use - specially when publishing a package). Here are some examples:\n+\n+```json5\n+// package.json\n+{\n+    \"name: \"foo\",\n+    \"version\": \"bar\",\n+    \"lwc\": {\n+        \"modules\": [\n+            /* list with modules records goes here */\n+        ]\n+    }\n+}\n+```\n+\n+```json5\n+// lwc.config.json\n+{\n+    \"modules:\" [\n+        /* list with modules records goes here */\n+    ]\n+}\n+```\n+\n+Its important that **any plugin, tool or project honor this configuration**, otherwise the resolution will not work correctly in most environments.\n+\n+Moreover, note that this type of configuraiton is not something new, many tools use an equivalent configuration (babel, lerna, rollup, webpack, ...)","path":"text/0000-module-resolution.md","position":165,"original_position":165,"commit_id":"1555a54a50a2c320278cd942842c88fd3743db22","original_commit_id":"1555a54a50a2c320278cd942842c88fd3743db22","user":{"login":"tedconn","id":38358184,"node_id":"MDQ6VXNlcjM4MzU4MTg0","avatar_url":"https://avatars1.githubusercontent.com/u/38358184?v=4","gravatar_id":"","url":"https://api.github.com/users/tedconn","html_url":"https://github.com/tedconn","followers_url":"https://api.github.com/users/tedconn/followers","following_url":"https://api.github.com/users/tedconn/following{/other_user}","gists_url":"https://api.github.com/users/tedconn/gists{/gist_id}","starred_url":"https://api.github.com/users/tedconn/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tedconn/subscriptions","organizations_url":"https://api.github.com/users/tedconn/orgs","repos_url":"https://api.github.com/users/tedconn/repos","events_url":"https://api.github.com/users/tedconn/events{/privacy}","received_events_url":"https://api.github.com/users/tedconn/received_events","type":"User","site_admin":false},"body":"Great point. It was feeling kind of weird to have to have this explicitly defined but everyone does it.","created_at":"2019-11-11T11:36:46Z","updated_at":"2019-11-11T11:36:46Z","html_url":"https://github.com/salesforce/lwc-rfcs/pull/20#discussion_r344671185","pull_request_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/comments/344671185"},"html":{"href":"https://github.com/salesforce/lwc-rfcs/pull/20#discussion_r344671185"},"pull_request":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20"}}},"pull_request":{"url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20","id":338917488,"node_id":"MDExOlB1bGxSZXF1ZXN0MzM4OTE3NDg4","html_url":"https://github.com/salesforce/lwc-rfcs/pull/20","diff_url":"https://github.com/salesforce/lwc-rfcs/pull/20.diff","patch_url":"https://github.com/salesforce/lwc-rfcs/pull/20.patch","issue_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/20","number":20,"state":"open","locked":false,"title":"RFC: Module resolution","user":{"login":"diervo","id":1176744,"node_id":"MDQ6VXNlcjExNzY3NDQ=","avatar_url":"https://avatars3.githubusercontent.com/u/1176744?v=4","gravatar_id":"","url":"https://api.github.com/users/diervo","html_url":"https://github.com/diervo","followers_url":"https://api.github.com/users/diervo/followers","following_url":"https://api.github.com/users/diervo/following{/other_user}","gists_url":"https://api.github.com/users/diervo/gists{/gist_id}","starred_url":"https://api.github.com/users/diervo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/diervo/subscriptions","organizations_url":"https://api.github.com/users/diervo/orgs","repos_url":"https://api.github.com/users/diervo/repos","events_url":"https://api.github.com/users/diervo/events{/privacy}","received_events_url":"https://api.github.com/users/diervo/received_events","type":"User","site_admin":false},"body":"https://rfcs.lwc.dev/rfcs/lwc/0000-module-resolution","created_at":"2019-11-09T00:55:37Z","updated_at":"2019-11-11T11:36:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"675dc5fe0ac579bf1f128782ffe0fe356d87d3b8","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20/commits","review_comments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20/comments","review_comment_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/20/comments","statuses_url":"https://api.github.com/repos/salesforce/lwc-rfcs/statuses/1555a54a50a2c320278cd942842c88fd3743db22","head":{"label":"salesforce:module-resolution","ref":"module-resolution","sha":"1555a54a50a2c320278cd942842c88fd3743db22","user":{"login":"salesforce","id":453694,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ1MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/453694?v=4","gravatar_id":"","url":"https://api.github.com/users/salesforce","html_url":"https://github.com/salesforce","followers_url":"https://api.github.com/users/salesforce/followers","following_url":"https://api.github.com/users/salesforce/following{/other_user}","gists_url":"https://api.github.com/users/salesforce/gists{/gist_id}","starred_url":"https://api.github.com/users/salesforce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/salesforce/subscriptions","organizations_url":"https://api.github.com/users/salesforce/orgs","repos_url":"https://api.github.com/users/salesforce/repos","events_url":"https://api.github.com/users/salesforce/events{/privacy}","received_events_url":"https://api.github.com/users/salesforce/received_events","type":"Organization","site_admin":false},"repo":{"id":181459460,"node_id":"MDEwOlJlcG9zaXRvcnkxODE0NTk0NjA=","name":"lwc-rfcs","full_name":"salesforce/lwc-rfcs","private":false,"owner":{"login":"salesforce","id":453694,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ1MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/453694?v=4","gravatar_id":"","url":"https://api.github.com/users/salesforce","html_url":"https://github.com/salesforce","followers_url":"https://api.github.com/users/salesforce/followers","following_url":"https://api.github.com/users/salesforce/following{/other_user}","gists_url":"https://api.github.com/users/salesforce/gists{/gist_id}","starred_url":"https://api.github.com/users/salesforce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/salesforce/subscriptions","organizations_url":"https://api.github.com/users/salesforce/orgs","repos_url":"https://api.github.com/users/salesforce/repos","events_url":"https://api.github.com/users/salesforce/events{/privacy}","received_events_url":"https://api.github.com/users/salesforce/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/salesforce/lwc-rfcs","description":"LWC - Request for comment proposals","fork":false,"url":"https://api.github.com/repos/salesforce/lwc-rfcs","forks_url":"https://api.github.com/repos/salesforce/lwc-rfcs/forks","keys_url":"https://api.github.com/repos/salesforce/lwc-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/salesforce/lwc-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/salesforce/lwc-rfcs/teams","hooks_url":"https://api.github.com/repos/salesforce/lwc-rfcs/hooks","issue_events_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/salesforce/lwc-rfcs/events","assignees_url":"https://api.github.com/repos/salesforce/lwc-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/salesforce/lwc-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/salesforce/lwc-rfcs/tags","blobs_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/salesforce/lwc-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/salesforce/lwc-rfcs/languages","stargazers_url":"https://api.github.com/repos/salesforce/lwc-rfcs/stargazers","contributors_url":"https://api.github.com/repos/salesforce/lwc-rfcs/contributors","subscribers_url":"https://api.github.com/repos/salesforce/lwc-rfcs/subscribers","subscription_url":"https://api.github.com/repos/salesforce/lwc-rfcs/subscription","commits_url":"https://api.github.com/repos/salesforce/lwc-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/salesforce/lwc-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/salesforce/lwc-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/salesforce/lwc-rfcs/merges","archive_url":"https://api.github.com/repos/salesforce/lwc-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/salesforce/lwc-rfcs/downloads","issues_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/salesforce/lwc-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/salesforce/lwc-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/salesforce/lwc-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/salesforce/lwc-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/deployments","created_at":"2019-04-15T09:56:19Z","updated_at":"2019-11-09T03:58:12Z","pushed_at":"2019-11-09T03:58:10Z","git_url":"git://github.com/salesforce/lwc-rfcs.git","ssh_url":"git@github.com:salesforce/lwc-rfcs.git","clone_url":"https://github.com/salesforce/lwc-rfcs.git","svn_url":"https://github.com/salesforce/lwc-rfcs","homepage":"https://rfcs.lwc.dev/rfcs/lwc","size":197,"stargazers_count":27,"watchers_count":27,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":10,"watchers":27,"default_branch":"master"}},"base":{"label":"salesforce:master","ref":"master","sha":"7e53a6288ad88f1b96009ddef037a6fa8fa5d2f0","user":{"login":"salesforce","id":453694,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ1MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/453694?v=4","gravatar_id":"","url":"https://api.github.com/users/salesforce","html_url":"https://github.com/salesforce","followers_url":"https://api.github.com/users/salesforce/followers","following_url":"https://api.github.com/users/salesforce/following{/other_user}","gists_url":"https://api.github.com/users/salesforce/gists{/gist_id}","starred_url":"https://api.github.com/users/salesforce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/salesforce/subscriptions","organizations_url":"https://api.github.com/users/salesforce/orgs","repos_url":"https://api.github.com/users/salesforce/repos","events_url":"https://api.github.com/users/salesforce/events{/privacy}","received_events_url":"https://api.github.com/users/salesforce/received_events","type":"Organization","site_admin":false},"repo":{"id":181459460,"node_id":"MDEwOlJlcG9zaXRvcnkxODE0NTk0NjA=","name":"lwc-rfcs","full_name":"salesforce/lwc-rfcs","private":false,"owner":{"login":"salesforce","id":453694,"node_id":"MDEyOk9yZ2FuaXphdGlvbjQ1MzY5NA==","avatar_url":"https://avatars3.githubusercontent.com/u/453694?v=4","gravatar_id":"","url":"https://api.github.com/users/salesforce","html_url":"https://github.com/salesforce","followers_url":"https://api.github.com/users/salesforce/followers","following_url":"https://api.github.com/users/salesforce/following{/other_user}","gists_url":"https://api.github.com/users/salesforce/gists{/gist_id}","starred_url":"https://api.github.com/users/salesforce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/salesforce/subscriptions","organizations_url":"https://api.github.com/users/salesforce/orgs","repos_url":"https://api.github.com/users/salesforce/repos","events_url":"https://api.github.com/users/salesforce/events{/privacy}","received_events_url":"https://api.github.com/users/salesforce/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/salesforce/lwc-rfcs","description":"LWC - Request for comment proposals","fork":false,"url":"https://api.github.com/repos/salesforce/lwc-rfcs","forks_url":"https://api.github.com/repos/salesforce/lwc-rfcs/forks","keys_url":"https://api.github.com/repos/salesforce/lwc-rfcs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/salesforce/lwc-rfcs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/salesforce/lwc-rfcs/teams","hooks_url":"https://api.github.com/repos/salesforce/lwc-rfcs/hooks","issue_events_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/events{/number}","events_url":"https://api.github.com/repos/salesforce/lwc-rfcs/events","assignees_url":"https://api.github.com/repos/salesforce/lwc-rfcs/assignees{/user}","branches_url":"https://api.github.com/repos/salesforce/lwc-rfcs/branches{/branch}","tags_url":"https://api.github.com/repos/salesforce/lwc-rfcs/tags","blobs_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/refs{/sha}","trees_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/salesforce/lwc-rfcs/statuses/{sha}","languages_url":"https://api.github.com/repos/salesforce/lwc-rfcs/languages","stargazers_url":"https://api.github.com/repos/salesforce/lwc-rfcs/stargazers","contributors_url":"https://api.github.com/repos/salesforce/lwc-rfcs/contributors","subscribers_url":"https://api.github.com/repos/salesforce/lwc-rfcs/subscribers","subscription_url":"https://api.github.com/repos/salesforce/lwc-rfcs/subscription","commits_url":"https://api.github.com/repos/salesforce/lwc-rfcs/commits{/sha}","git_commits_url":"https://api.github.com/repos/salesforce/lwc-rfcs/git/commits{/sha}","comments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/comments{/number}","issue_comment_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/comments{/number}","contents_url":"https://api.github.com/repos/salesforce/lwc-rfcs/contents/{+path}","compare_url":"https://api.github.com/repos/salesforce/lwc-rfcs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/salesforce/lwc-rfcs/merges","archive_url":"https://api.github.com/repos/salesforce/lwc-rfcs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/salesforce/lwc-rfcs/downloads","issues_url":"https://api.github.com/repos/salesforce/lwc-rfcs/issues{/number}","pulls_url":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls{/number}","milestones_url":"https://api.github.com/repos/salesforce/lwc-rfcs/milestones{/number}","notifications_url":"https://api.github.com/repos/salesforce/lwc-rfcs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/salesforce/lwc-rfcs/labels{/name}","releases_url":"https://api.github.com/repos/salesforce/lwc-rfcs/releases{/id}","deployments_url":"https://api.github.com/repos/salesforce/lwc-rfcs/deployments","created_at":"2019-04-15T09:56:19Z","updated_at":"2019-11-09T03:58:12Z","pushed_at":"2019-11-09T03:58:10Z","git_url":"git://github.com/salesforce/lwc-rfcs.git","ssh_url":"git@github.com:salesforce/lwc-rfcs.git","clone_url":"https://github.com/salesforce/lwc-rfcs.git","svn_url":"https://github.com/salesforce/lwc-rfcs","homepage":"https://rfcs.lwc.dev/rfcs/lwc","size":197,"stargazers_count":27,"watchers_count":27,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":10,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3,"open_issues":10,"watchers":27,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20"},"html":{"href":"https://github.com/salesforce/lwc-rfcs/pull/20"},"issue":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/20"},"comments":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/issues/20/comments"},"review_comments":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20/comments"},"review_comment":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/pulls/20/commits"},"statuses":{"href":"https://api.github.com/repos/salesforce/lwc-rfcs/statuses/1555a54a50a2c320278cd942842c88fd3743db22"}},"author_association":"CONTRIBUTOR"}}
other: {"actor":{"display_login":"tedconn"}}