From 71ee86f4377574dc4db08e6e64d41b75e1b15de9 Mon Sep 17 00:00:00 2001 From: bdougie Date: Fri, 25 Aug 2023 23:51:49 +0000 Subject: [PATCH] fix: the gif (#149) fix the gif c4d8a1e79a7083222dc05aaab99009c8668840d3 --- 404.html | 8 +++--- ...-demo-cc2291df69361b2d476ccffcdbd1ee25.gif | Bin assets/js/1dcfcc72.1267e453.js | 1 - assets/js/1dcfcc72.7ccd45c0.js | 1 + ...d72ad.cf675e4f.js => 269d72ad.7e50dda5.js} | 2 +- ...03bb7.96e89bdb.js => 2e603bb7.0939f22e.js} | 2 +- assets/js/389594df.1468b443.js | 1 + assets/js/389594df.7939b260.js | 1 - assets/js/47120859.24ff5884.js | 1 + assets/js/47120859.6a54a7ae.js | 1 - ...9cea9.c5415132.js => 48b9cea9.847f2a41.js} | 2 +- assets/js/561e6817.784e472b.js | 1 - assets/js/561e6817.8cb71090.js | 1 + assets/js/580fd761.82383d01.js | 1 + assets/js/580fd761.8726f403.js | 1 - assets/js/5a1e7e56.8eb15037.js | 1 + assets/js/5a1e7e56.e5d14780.js | 1 - assets/js/5e0f9673.3f4cbe6c.js | 1 + assets/js/5e0f9673.95a5327e.js | 1 - assets/js/6308756d.bd837528.js | 1 - assets/js/6308756d.c2f3a124.js | 1 + assets/js/86961ba5.f0e8cfbd.js | 1 + assets/js/88e6cb4a.10b12c03.js | 1 - assets/js/88e6cb4a.a80b0fab.js | 1 + assets/js/935f2afb.3e7ce924.js | 1 + assets/js/935f2afb.dd956c99.js | 1 - assets/js/9a628d71.20cfc437.js | 1 - assets/js/9a628d71.86f0b36f.js | 1 + ...c2993.09614cd1.js => a09c2993.776371ab.js} | 2 +- ...d15f0.5d3961ab.js => b81d15f0.f315b1cf.js} | 2 +- assets/js/b8d96084.21e9b8cd.js | 1 + assets/js/b8d96084.ceb6d8a8.js | 1 - assets/js/bd503c91.67b61c5b.js | 1 + assets/js/bd503c91.bca6a6ca.js | 1 - assets/js/c5dd48ab.83126c91.js | 1 + assets/js/c5dd48ab.9b778863.js | 1 - ...f70d0.59a8f0c0.js => d63f70d0.7b8a4790.js} | 2 +- assets/js/d7337b1f.12022483.js | 1 + assets/js/d7337b1f.7376d954.js | 1 - assets/js/d7cc95fa.7abb9578.js | 1 - assets/js/f299caa6.28b96f33.js | 1 - assets/js/f299caa6.edffe534.js | 1 + assets/js/f78cc0ee.e71bd227.js | 1 + assets/js/f78cc0ee.f6839adf.js | 1 - assets/js/main.c1593202.js | 2 ++ ...CENSE.txt => main.c1593202.js.LICENSE.txt} | 0 assets/js/main.e192ab43.js | 2 -- assets/js/runtime~main.334c163f.js | 1 - assets/js/runtime~main.3b77a6f9.js | 1 + chrome-extension/code-explanation/index.html | 10 +++---- chrome-extension/highlights/index.html | 10 +++---- .../index.html | 10 +++---- chrome-extension/opensauced-links/index.html | 10 +++---- chrome-extension/pr-description/index.html | 10 +++---- .../refactoring-and-testing/index.html | 10 +++---- .../index.html | 10 +++---- community/100-days-of-oss/index.html | 10 +++---- community/faqs/index.html | 12 ++++---- community/highlights/index.html | 10 +++---- community/insight-pages/index.html | 26 ------------------ community/insights/index.html | 25 +++++++++++++++++ community/welcome-to-the-community/index.html | 10 +++---- contributing/code-of-conduct/index.html | 12 ++++---- .../introduction-to-contributing/index.html | 12 ++++---- contributing/set-up-authentication/index.html | 12 ++++---- contributing/triage-guide/index.html | 10 +++---- index.html | 10 +++---- maintainers/check-engines/index.html | 10 +++---- maintainers/conventional-commit/index.html | 10 +++---- maintainers/semantic-release/index.html | 10 +++---- .../setting-up-a-new-repository/index.html | 12 ++++---- markdown-page/index.html | 8 +++--- open-sauced-docs.pdf | Bin 3900036 -> 3939838 bytes search/index.html | 8 +++--- sitemap.xml | 2 +- sw.js | 2 +- .../introduction-to-storybook/index.html | 12 ++++---- technical/resolve-merge-conflicts/index.html | 10 +++---- 78 files changed, 182 insertions(+), 183 deletions(-) rename assets/{files => images}/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif (100%) delete mode 100644 assets/js/1dcfcc72.1267e453.js create mode 100644 assets/js/1dcfcc72.7ccd45c0.js rename assets/js/{269d72ad.cf675e4f.js => 269d72ad.7e50dda5.js} (79%) rename assets/js/{2e603bb7.96e89bdb.js => 2e603bb7.0939f22e.js} (65%) create mode 100644 assets/js/389594df.1468b443.js delete mode 100644 assets/js/389594df.7939b260.js create mode 100644 assets/js/47120859.24ff5884.js delete mode 100644 assets/js/47120859.6a54a7ae.js rename assets/js/{48b9cea9.c5415132.js => 48b9cea9.847f2a41.js} (53%) delete mode 100644 assets/js/561e6817.784e472b.js create mode 100644 assets/js/561e6817.8cb71090.js create mode 100644 assets/js/580fd761.82383d01.js delete mode 100644 assets/js/580fd761.8726f403.js create mode 100644 assets/js/5a1e7e56.8eb15037.js delete mode 100644 assets/js/5a1e7e56.e5d14780.js create mode 100644 assets/js/5e0f9673.3f4cbe6c.js delete mode 100644 assets/js/5e0f9673.95a5327e.js delete mode 100644 assets/js/6308756d.bd837528.js create mode 100644 assets/js/6308756d.c2f3a124.js create mode 100644 assets/js/86961ba5.f0e8cfbd.js delete mode 100644 assets/js/88e6cb4a.10b12c03.js create mode 100644 assets/js/88e6cb4a.a80b0fab.js create mode 100644 assets/js/935f2afb.3e7ce924.js delete mode 100644 assets/js/935f2afb.dd956c99.js delete mode 100644 assets/js/9a628d71.20cfc437.js create mode 100644 assets/js/9a628d71.86f0b36f.js rename assets/js/{a09c2993.09614cd1.js => a09c2993.776371ab.js} (70%) rename assets/js/{b81d15f0.5d3961ab.js => b81d15f0.f315b1cf.js} (50%) create mode 100644 assets/js/b8d96084.21e9b8cd.js delete mode 100644 assets/js/b8d96084.ceb6d8a8.js create mode 100644 assets/js/bd503c91.67b61c5b.js delete mode 100644 assets/js/bd503c91.bca6a6ca.js create mode 100644 assets/js/c5dd48ab.83126c91.js delete mode 100644 assets/js/c5dd48ab.9b778863.js rename assets/js/{d63f70d0.59a8f0c0.js => d63f70d0.7b8a4790.js} (74%) create mode 100644 assets/js/d7337b1f.12022483.js delete mode 100644 assets/js/d7337b1f.7376d954.js delete mode 100644 assets/js/d7cc95fa.7abb9578.js delete mode 100644 assets/js/f299caa6.28b96f33.js create mode 100644 assets/js/f299caa6.edffe534.js create mode 100644 assets/js/f78cc0ee.e71bd227.js delete mode 100644 assets/js/f78cc0ee.f6839adf.js create mode 100644 assets/js/main.c1593202.js rename assets/js/{main.e192ab43.js.LICENSE.txt => main.c1593202.js.LICENSE.txt} (100%) delete mode 100644 assets/js/main.e192ab43.js delete mode 100644 assets/js/runtime~main.334c163f.js create mode 100644 assets/js/runtime~main.3b77a6f9.js delete mode 100644 community/insight-pages/index.html create mode 100644 community/insights/index.html diff --git a/404.html b/404.html index 728c011f..f633a888 100644 --- a/404.html +++ b/404.html @@ -13,13 +13,13 @@ - - + +
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

- - + + \ No newline at end of file diff --git a/assets/files/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif b/assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif similarity index 100% rename from assets/files/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif rename to assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif diff --git a/assets/js/1dcfcc72.1267e453.js b/assets/js/1dcfcc72.1267e453.js deleted file mode 100644 index 678af871..00000000 --- a/assets/js/1dcfcc72.1267e453.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[836],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>f});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function s(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var p=r.createContext({}),c=function(e){var t=r.useContext(p),o=t;return e&&(o="function"==typeof e?e(t):s(s({},t),e)),o},u=function(e){var t=c(e.components);return r.createElement(p.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,p=e.parentName,u=i(e,["components","mdxType","originalType","parentName"]),l=c(o),m=n,f=l["".concat(p,".").concat(m)]||l[m]||d[m]||a;return o?r.createElement(f,s(s({ref:t},u),{},{components:o})):r.createElement(f,s({ref:t},u))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,s=new Array(a);s[0]=m;var i={};for(var p in t)hasOwnProperty.call(t,p)&&(i[p]=t[p]);i.originalType=e,i[l]="string"==typeof e?e:n,s[1]=i;for(var c=2;c{o.r(t),o.d(t,{assets:()=>p,contentTitle:()=>s,default:()=>d,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=o(7462),n=(o(7294),o(3905));const a={id:"faqs",title:"Frequently asked Questions",sidebar_label:"FAQS",keywords:["faqs"]},s=void 0,i={unversionedId:"community/faqs",id:"community/faqs",title:"Frequently asked Questions",description:"1. How do I find good first issues?",source:"@site/docs/community/faqs.md",sourceDirName:"community",slug:"/community/faqs",permalink:"/community/faqs",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/faqs.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"faqs",title:"Frequently asked Questions",sidebar_label:"FAQS",keywords:["faqs"]},sidebar:"docs",previous:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"},next:{title:"View your favorite projects in the Insight pages",permalink:"/community/insight-pages"}},p={},c=[],u={toc:c},l="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(l,(0,r.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"How do I find good first issues?"),"\nwe recommend checking out sites like ",(0,n.kt)("a",{parentName:"p",href:"https://goodfirstissues.com/"},"good first issues")," and ",(0,n.kt)("a",{parentName:"p",href:"https://www.firsttimersonly.com/"},"first timers only"),". they will lead you to projects and issues worth working on. we also recommend using the ",(0,n.kt)("inlineCode",{parentName:"p"},"good first issue")," label in the search engine of the project you want to contribute to. check out ",(0,n.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=k3l_rurkoxg"},"this youtube short from github"),' to learn more. furthermore, check out our daily "who\'s looking for open source contributors?" on ',(0,n.kt)("a",{parentName:"p",href:"https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-46-247i"},"dev.to"))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"My contribution does not show up on my Opensauced profile. how do I fix it?"),"\nwe suggest creating a ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/05-how-to-contribute-to-open-source.md#discovering-open-source-with-opensauced"},"insight page")," or adding your merged pull request to ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#develop-your-open-source-resume"},"the highlights page"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},'I want to find "x" language or frameworks data. How do I find it?'),"\npost your suggestion in our ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"feedback repository"),". we'd love to see it! \ud83d\ude04"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/1dcfcc72.7ccd45c0.js b/assets/js/1dcfcc72.7ccd45c0.js new file mode 100644 index 00000000..18cb3207 --- /dev/null +++ b/assets/js/1dcfcc72.7ccd45c0.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[836],{3905:(e,t,o)=>{o.d(t,{Zo:()=>p,kt:()=>f});var r=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,r)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var c=r.createContext({}),u=function(e){var t=r.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},p=function(e){var t=u(e.components);return r.createElement(c.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var o=e.components,n=e.mdxType,a=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),l=u(o),m=n,f=l["".concat(c,".").concat(m)]||l[m]||d[m]||a;return o?r.createElement(f,i(i({ref:t},p),{},{components:o})):r.createElement(f,i({ref:t},p))}));function f(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var a=o.length,i=new Array(a);i[0]=m;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[l]="string"==typeof e?e:n,i[1]=s;for(var u=2;u{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>d,frontMatter:()=>a,metadata:()=>s,toc:()=>u});var r=o(7462),n=(o(7294),o(3905));const a={id:"faqs",title:"Frequently asked Questions",sidebar_label:"FAQS",keywords:["faqs"]},i=void 0,s={unversionedId:"community/faqs",id:"community/faqs",title:"Frequently asked Questions",description:"1. How do I find good first issues?",source:"@site/docs/community/faqs.md",sourceDirName:"community",slug:"/community/faqs",permalink:"/community/faqs",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/faqs.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"faqs",title:"Frequently asked Questions",sidebar_label:"FAQS",keywords:["faqs"]},sidebar:"docs",previous:{title:"Insights",permalink:"/community/insights"},next:{title:"Introduction to contributing",permalink:"/contributing/introduction-to-contributing"}},c={},u=[],p={toc:u},l="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(l,(0,r.Z)({},p,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"How do I find good first issues?"),"\nwe recommend checking out sites like ",(0,n.kt)("a",{parentName:"p",href:"https://goodfirstissues.com/"},"good first issues")," and ",(0,n.kt)("a",{parentName:"p",href:"https://www.firsttimersonly.com/"},"first timers only"),". they will lead you to projects and issues worth working on. we also recommend using the ",(0,n.kt)("inlineCode",{parentName:"p"},"good first issue")," label in the search engine of the project you want to contribute to. check out ",(0,n.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=k3l_rurkoxg"},"this youtube short from github"),' to learn more. furthermore, check out our daily "who\'s looking for open source contributors?" on ',(0,n.kt)("a",{parentName:"p",href:"https://dev.to/opensauced/whos-looking-for-open-source-contributors-week-46-247i"},"dev.to"))),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"My contribution does not show up on my Opensauced profile. how do I fix it?"),"\nwe suggest creating a ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/05-how-to-contribute-to-open-source.md#discovering-open-source-with-opensauced"},"insight page")," or adding your merged pull request to ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#develop-your-open-source-resume"},"the highlights page"),".")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},'I want to find "x" language or frameworks data. How do I find it?'),"\npost your suggestion in our ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/orgs/open-sauced/discussions"},"feedback repository"),". we'd love to see it! \ud83d\ude04"))))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/269d72ad.cf675e4f.js b/assets/js/269d72ad.7e50dda5.js similarity index 79% rename from assets/js/269d72ad.cf675e4f.js rename to assets/js/269d72ad.7e50dda5.js index 9b2e92c0..da8cf072 100644 --- a/assets/js/269d72ad.cf675e4f.js +++ b/assets/js/269d72ad.7e50dda5.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[975],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||c;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,a=new Array(c);a[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"opensauced-links",title:"Code Explanation",sidebar_label:"Quick Access to OpenSauced",keywords:["opensauced","links"]},a=void 0,i={unversionedId:"chrome-extension/opensauced-links",id:"chrome-extension/opensauced-links",title:"Code Explanation",description:"Quick Access to OpenSauced",source:"@site/docs/chrome-extension/quick-access-to-opensauced-links.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/opensauced-links",permalink:"/chrome-extension/opensauced-links",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/quick-access-to-opensauced-links.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"opensauced-links",title:"Code Explanation",sidebar_label:"Quick Access to OpenSauced",keywords:["opensauced","links"]},sidebar:"docs",previous:{title:"Highlight",permalink:"/chrome-extension/highlights"},next:{title:"Refactoring and Testing",permalink:"/chrome-extension/refactoring-and-testing"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...c}=e;return(0,o.kt)(u,(0,r.Z)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Quick Access to OpenSauced",src:n(992).Z,width:"444",height:"270"})))}d.isMDXComponent=!0},992:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/extension-links-cab434de8007c410ebb77026b31711cc.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[975],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function c(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),p=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},l=function(e){var t=p(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,c=e.originalType,s=e.parentName,l=i(e,["components","mdxType","originalType","parentName"]),u=p(n),m=o,f=u["".concat(s,".").concat(m)]||u[m]||d[m]||c;return n?r.createElement(f,a(a({ref:t},l),{},{components:n})):r.createElement(f,a({ref:t},l))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var c=n.length,a=new Array(c);a[0]=m;var i={};for(var s in t)hasOwnProperty.call(t,s)&&(i[s]=t[s]);i.originalType=e,i[u]="string"==typeof e?e:o,a[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>d,frontMatter:()=>c,metadata:()=>i,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const c={id:"opensauced-links",title:"Code Explanation",sidebar_label:"Quick Access to OpenSauced",keywords:["opensauced","links"]},a=void 0,i={unversionedId:"chrome-extension/opensauced-links",id:"chrome-extension/opensauced-links",title:"Code Explanation",description:"Quick Access to OpenSauced",source:"@site/docs/chrome-extension/quick-access-to-opensauced-links.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/opensauced-links",permalink:"/chrome-extension/opensauced-links",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/quick-access-to-opensauced-links.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"opensauced-links",title:"Code Explanation",sidebar_label:"Quick Access to OpenSauced",keywords:["opensauced","links"]},sidebar:"docs",previous:{title:"Highlight",permalink:"/chrome-extension/highlights"},next:{title:"Refactoring and Testing",permalink:"/chrome-extension/refactoring-and-testing"}},s={},p=[],l={toc:p},u="wrapper";function d(e){let{components:t,...c}=e;return(0,o.kt)(u,(0,r.Z)({},l,c,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Quick Access to OpenSauced",src:n(992).Z,width:"444",height:"270"})))}d.isMDXComponent=!0},992:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/extension-links-cab434de8007c410ebb77026b31711cc.png"}}]); \ No newline at end of file diff --git a/assets/js/2e603bb7.96e89bdb.js b/assets/js/2e603bb7.0939f22e.js similarity index 65% rename from assets/js/2e603bb7.96e89bdb.js rename to assets/js/2e603bb7.0939f22e.js index b6c4d094..4a8c6a16 100644 --- a/assets/js/2e603bb7.96e89bdb.js +++ b/assets/js/2e603bb7.0939f22e.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[719],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=l(n),g=i,m=h["".concat(c,".").concat(g)]||h[g]||u[g]||o;return n?r.createElement(m,a(a({ref:t},p),{},{components:n})):r.createElement(m,a({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=g;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[h]="string"==typeof e?e:i,a[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),i=(n(7294),n(3905));const o={id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting"]},a=void 0,s={unversionedId:"chrome-extension/highlights",id:"chrome-extension/highlights",title:"Highlight",description:"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.",source:"@site/docs/chrome-extension/highlights.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/highlights",permalink:"/chrome-extension/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/highlights.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting"]},sidebar:"docs",previous:{title:"PR Description",permalink:"/chrome-extension/pr-description"},next:{title:"Quick Access to OpenSauced",permalink:"/chrome-extension/opensauced-links"}},c={},l=[],p={toc:l},h="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary. "),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241761099-e7a745c8-204e-4a4d-b313-867ab99af0b2.png",alt:"location of post to highlight"})),(0,i.kt)("p",null,"If you post a successful highlight it will show you a message with an option to see the highlight on the OpenSauced website. "),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/723ac624-e996-45f8-acdf-0d3ff08af90b",alt:"Successful message example"})),(0,i.kt)("p",null,"If you presented with an error with the summarization, it will be printed in the text area. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241762187-f6968a71-c344-495f-8eed-f1de9aff7599.gif",alt:"Error message"})))}u.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[719],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var r=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function o(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var c=r.createContext({}),l=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=l(e.components);return r.createElement(c.Provider,{value:t},e.children)},h="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,i=e.mdxType,o=e.originalType,c=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),h=l(n),g=i,m=h["".concat(c,".").concat(g)]||h[g]||u[g]||o;return n?r.createElement(m,a(a({ref:t},p),{},{components:n})):r.createElement(m,a({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var o=n.length,a=new Array(o);a[0]=g;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[h]="string"==typeof e?e:i,a[1]=s;for(var l=2;l{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>o,metadata:()=>s,toc:()=>l});var r=n(7462),i=(n(7294),n(3905));const o={id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting"]},a=void 0,s={unversionedId:"chrome-extension/highlights",id:"chrome-extension/highlights",title:"Highlight",description:"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.",source:"@site/docs/chrome-extension/highlights.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/highlights",permalink:"/chrome-extension/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/highlights.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"highlights",title:"Highlight",sidebar_label:"Highlight",keywords:["highlights","posting"]},sidebar:"docs",previous:{title:"PR Description",permalink:"/chrome-extension/pr-description"},next:{title:"Quick Access to OpenSauced",permalink:"/chrome-extension/opensauced-links"}},c={},l=[],p={toc:l},h="wrapper";function u(e){let{components:t,...n}=e;return(0,i.kt)(h,(0,r.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary. "),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241761099-e7a745c8-204e-4a4d-b313-867ab99af0b2.png",alt:"location of post to highlight"})),(0,i.kt)("p",null,"If you post a successful highlight it will show you a message with an option to see the highlight on the OpenSauced website. "),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/723ac624-e996-45f8-acdf-0d3ff08af90b",alt:"Successful message example"})),(0,i.kt)("p",null,"If you presented with an error with the summarization, it will be printed in the text area. Here's an example:"),(0,i.kt)("p",null,(0,i.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241762187-f6968a71-c344-495f-8eed-f1de9aff7599.gif",alt:"Error message"})))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/389594df.1468b443.js b/assets/js/389594df.1468b443.js new file mode 100644 index 00000000..e4622bc1 --- /dev/null +++ b/assets/js/389594df.1468b443.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[322],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>h});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),d=i,h=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return t?a.createElement(h,r(r({ref:n},c),{},{components:t})):a.createElement(h,r({ref:n},c))}));function h(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,r=new Array(o);r[0]=d;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:i,r[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const o={id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["@open-sauced/semantic-release-conventional-config"]},r=void 0,s={unversionedId:"maintainers/semantic-release",id:"maintainers/semantic-release",title:"@open-sauced/semantic-release-conventional-config",description:"Description",source:"@site/docs/maintainers/semantic-release.md",sourceDirName:"maintainers",slug:"/maintainers/semantic-release",permalink:"/maintainers/semantic-release",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/semantic-release.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["@open-sauced/semantic-release-conventional-config"]},sidebar:"docs",previous:{title:"@open-sauced/conventional-commit",permalink:"/maintainers/conventional-commit"},next:{title:"Introduction to the Chrome Extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"\ud83d\udda5\ufe0f Requirements",id:"\ufe0f-requirements",level:2},{value:"\ud83e\uddea GitHub actions usage",id:"-github-actions-usage",level:2},{value:"\ud83d\udce6 NPM usage",id:"-npm-usage",level:2},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"NPM",id:"npm",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"Docker",id:"docker",level:3},{value:"Environment variables",id:"environment-variables",level:3},{value:"Workflow examples",id:"workflow-examples",level:2},{value:"Node application",id:"node-application",level:3},{value:"Npm library",id:"npm-library",level:3},{value:"Docker image",id:"docker-image",level:3},{value:"Pre-releases",id:"pre-releases",level:3},{value:"FAQ",id:"faq",level:2},{value:"Which assets are pushed to git",id:"which-assets-are-pushed-to-git",level:3},{value:"What is the commit convention",id:"what-is-the-commit-convention",level:3},{value:"How to enrich the static distribution",id:"how-to-enrich-the-static-distribution",level:3},{value:"How to start using pre-releases",id:"how-to-start-using-pre-releases",level:3},{value:"Contributing",id:"contributing",level:2}],c={toc:p},u="wrapper";function m(e){let{components:n,...t}=e;return(0,i.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/semantic-release-conventional-config")," is designed to help ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages auto-release to ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," registries while generating github releases and changelog using conventional commit convention."),(0,i.kt)("p",null,"Version 2 supports alpha and beta pre-releases using coresponding branches."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/commit-analyzer"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/commit-analyzer"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/release-notes-generator"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/release-notes-generator"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/conventional-changelog/conventional-changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"conventional-changelog-conventionalcommits"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/npm"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/npm"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/google/semantic-release-replace-plugin"},(0,i.kt)("inlineCode",{parentName:"a"},"@google/semantic-release-replace-plugin"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/cbhq/semantic-release-license"},(0,i.kt)("inlineCode",{parentName:"a"},"semantic-release-license"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/git"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/git"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/github"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/github"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/eclass/semantic-release-docker"},(0,i.kt)("inlineCode",{parentName:"a"},"@eclass/semantic-release-docker"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/exec"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/exec"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/sindresorhus/execa"},(0,i.kt)("inlineCode",{parentName:"a"},"execa")))),(0,i.kt)("h2",{id:"\ufe0f-requirements"},"\ud83d\udda5\ufe0f Requirements"),(0,i.kt)("p",null,"Most important limitations are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GITHUB_TOKEN")," for everything"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NPM_TOKEN")," for public ",(0,i.kt)("inlineCode",{parentName:"li"},"npm")," library"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"docker")," containers need to be built beforehand")),(0,i.kt)("p",null,"You can skip here if you are using elevated ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token"},"Private Access Token"),", however we don't recommend going down that path."),(0,i.kt)("p",null,"No force push or admin cherries branch protections for the following branches:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"main")," - required"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next")," - optional, next channel"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next-major")," - optional, next major"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"vX[.X.X]")," - maintenance releases")),(0,i.kt)("p",null,"If you use more than the main branch, optionally create an environment that is limiting where pushes can come from and enable the merge strategy."),(0,i.kt)("p",null,"We are using ",(0,i.kt)("inlineCode",{parentName:"p"},"production")," in our examples, if you copy paste them you will find this new environment generated in your settings! \ud83c\udf55"),(0,i.kt)("h2",{id:"-github-actions-usage"},"\ud83e\uddea GitHub actions usage"),(0,i.kt)("p",null,"Since version 3 it is possible to use semantic-release without any trace of it or the open-sauced configuration anywhere in the dependency tree."),(0,i.kt)("p",null,"Docker containers are pushed as part of the release so they mirror the availability of ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages."),(0,i.kt)("p",null,"The simplest use case for a typical NPM package, almost zero install downtime from ghcr and no more local tooling:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release container"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ env.RELEASE_TAG }}\n echo ${{ env.RELEASE_VERSION }}\n')),(0,i.kt)("p",null,"Marketplace actions should default to the major tag and are essentially more stable as we have to curate every release."),(0,i.kt)("p",null,"A more traditional approach, only thing really different here is a minor pull overhead and using set outputs instead of environment variables:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic-release.outputs.release-tag }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: open-sauced/semantic-release-conventional-config@v3\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ steps.semantic-release.outputs.release-tag }}\n echo ${{ steps.semantic-release.outputs.release-version }}\n')),(0,i.kt)("h2",{id:"-npm-usage"},"\ud83d\udce6 NPM usage"),(0,i.kt)("p",null,"You can opt to use this package in your local tooling. Proceed as you would normally would, replacing ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," with your package manager of choice and install the package:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev @open-sauced/semantic-release-conventional-config\n")),(0,i.kt)("p",null,"The shareable config can then be configured in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration"},(0,i.kt)("strong",{parentName:"a"},"semantic-release")," configuration file"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "extends": "@open-sauced/semantic-release-conventional-config"\n}\n')),(0,i.kt)("p",null,"Now all you need to do is create a release:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npx semantic-release\n")),(0,i.kt)("h2",{id:"-configuration"},"\ud83d\udd27 Configuration"),(0,i.kt)("p",null,"See each ",(0,i.kt)("a",{parentName:"p",href:"#-plugins"},"plugin")," documentation for required installation and configuration steps."),(0,i.kt)("h3",{id:"npm"},"NPM"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"private")," to true in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," if you want to disable ",(0,i.kt)("inlineCode",{parentName:"p"},"npm"),", or, change the scope of package using ",(0,i.kt)("inlineCode",{parentName:"p"},"publishConfig"),"."),(0,i.kt)("p",null,"Keep one of ",(0,i.kt)("inlineCode",{parentName:"p"},"files")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," keys in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," accurate depending on whether you are building a library or an application."),(0,i.kt)("p",null,"If you publish, make sure to also provide a valid ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," as ",(0,i.kt)("inlineCode",{parentName:"p"},".npmrc")," authentication is ignored in our config!"),(0,i.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,i.kt)("p",null,"Unless you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present, our config will attempt to adjust the container version to the newly pushed ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"docker")," tags."),(0,i.kt)("h3",{id:"docker"},"Docker"),(0,i.kt)("p",null,"Unless you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present, our config will attempt to push to ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr.io"),"."),(0,i.kt)("h3",{id:"environment-variables"},"Environment variables"),(0,i.kt)("p",null,"Using our configuration comes with some sensible defaults:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_USERNAME=$GITHUB_REPOSITORY_OWNER")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_PASSWORD=$GITHUB_TOKEN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_NAME="open-sauced[bot]"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_EMAIL="63161813+open-sauced[bot]@users.noreply.github.com"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_NAME")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_EMAIL")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA"))),(0,i.kt)("p",null,"Feel free to change any of the above to whatever suits your purpose, our motivation is to keep ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_TOKEN")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," the only necessary requirements."),(0,i.kt)("p",null,"We are actively investigating ways to drop the 2 remaining variables as well!"),(0,i.kt)("h2",{id:"workflow-examples"},"Workflow examples"),(0,i.kt)("h3",{id:"node-application"},"Node application"),(0,i.kt)("p",null,"This example requires ",(0,i.kt)("inlineCode",{parentName:"p"},'"private": true,')," in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," and simplifies the workflow to lightning fast deployment:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n')),(0,i.kt)("h3",{id:"npm-library"},"Npm library"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," libraries we need to set the environment URL manually and set a ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," environment variable. This also disables docker builds:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/@open-sauced/semantic-release-conventional-config/v/${{ env.RELEASE_VERSION }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config/blob/main/.github/workflows/release.yml"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("h3",{id:"docker-image"},"Docker image"),(0,i.kt)("p",null,"For docker builds it's best to build your node application in parallel with the container and re-use the artifact at a later stage:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n docker:\n name: Build container\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup buildx"\n uses: docker/setup-buildx-action@v1\n\n - name: "\ud83d\udd27 cache docker layers"\n uses: actions/cache@v2\n with:\n path: /tmp/.buildx-cache\n key: ${{ runner.os }}-buildx-${{ github.sha }}\n restore-keys: |\n ${{ runner.os }}-buildx-\n\n - name: "\ud83d\udd27 docker meta"\n id: meta\n uses: docker/metadata-action@v3\n with:\n images: ${{ github.repository }}\n tags: latest\n\n - name: "\ud83d\udce6 docker build"\n uses: docker/build-push-action@v2\n with:\n context: .\n tags: ${{ steps.meta.outputs.tags }}\n labels: ${{ steps.meta.outputs.labels }}\n outputs: type=docker,dest=/tmp/docker.tar\n push: false\n cache-from: type=gha, scope=${{ github.workflow }}\n cache-to: type=gha, scope=${{ github.workflow }}\n\n - name: "\ud83d\udcc2 docker artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: docker\n path: /tmp/docker.tar\n\n build:\n name: Build application\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\udcca repository visualizer"\n id: diagram\n uses: githubocto/repo-visualizer@0.7.1\n with:\n excluded_paths: "node_modules,build,.storybook,.netlify,.github,npm-shrinkwap.json"\n output_file: "public/diagram.svg"\n should_push: false\n artifact_name: "diagram"\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\udcc2 production artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: build\n path: build\n\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n needs:\n - docker\n - build\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udcc2 download docker artifacts"\n uses: actions/download-artifact@v2\n with:\n name: docker\n path: /tmp\n\n - name: "\ud83d\udce6 load tag"\n run: |\n docker load --input /tmp/docker.tar\n docker image ls -a\n\n - name: "\ud83d\udcc2 download build artifacts"\n uses: actions/download-artifact@v2\n with:\n name: build\n path: /tmp/build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n cleanup:\n name: Cleanup actions\n needs:\n - release\n runs-on: ubuntu-latest\n steps:\n - name: "\u267b\ufe0f remove build artifacts"\n uses: geekyeggo/delete-artifact@v1\n with:\n name: |\n build\n docker\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"open-sauced/open-sauced"),"."),(0,i.kt)("h3",{id:"pre-releases"},"Pre-releases"),(0,i.kt)("p",null,"This workflow requires the creation of ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," protected branches while templating every commit to be conventional. It does not support squashing without creating extremely complex conflict resolution:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n - beta\n - alpha\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/open-sauced-semantic-config-test/v/${{ steps.release.outputs.version }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"which-assets-are-pushed-to-git"},"Which assets are pushed to git"),(0,i.kt)("p",null,"The following assets are added to git using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/git"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n "LICENSE",\n "LICENSE.md",\n "COPYING",\n "COPYING.md",\n "CHANGELOG.md",\n "package.json",\n "package-lock.json",\n "npm-shrinkwrap.json",\n "public/diagram.svg",\n "action.yml"\n ]\n}\n')),(0,i.kt)("h3",{id:"what-is-the-commit-convention"},"What is the commit convention"),(0,i.kt)("p",null,"The following commit rules are enforced by ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/commit-analyzer"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "preset": "conventionalcommits",\n "releaseRules": [\n { "type": "build", "release": "minor" },\n { "type": "ci", "release": "patch" },\n { "type": "docs", "release": "minor" },\n { "type": "style", "release": "patch" },\n { "type": "refactor", "release": "patch" },\n { "type": "test", "release": "patch" },\n { "type": "revert", "release": "patch" },\n { "type": "chore", "release": false }\n ],\n "parserOpts": {\n "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]\n }\n}\n')),(0,i.kt)("h3",{id:"how-to-enrich-the-static-distribution"},"How to enrich the static distribution"),(0,i.kt)("p",null,"The following assets are packed into the github release download using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/github"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n {\n "path": "pack/*.tgz",\n "label": "Static distribution"\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"how-to-start-using-pre-releases"},"How to start using pre-releases"),(0,i.kt)("p",null,"Create the ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branches and protect them from being deleted or pushed to directly by non-administrators."),(0,i.kt)("p",null,"Switch your branching strategy to ",(0,i.kt)("inlineCode",{parentName:"p"},"merge")," and enable conventional commits checking."),(0,i.kt)("p",null,"You will have to resolve merge conflicts between ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branches as described in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/tree/master/docs/recipes"},"semantic-releases recipes"),"."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config")," \u2764\ufe0f"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/389594df.7939b260.js b/assets/js/389594df.7939b260.js deleted file mode 100644 index fdc85247..00000000 --- a/assets/js/389594df.7939b260.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[322],{3905:(e,n,t)=>{t.d(n,{Zo:()=>c,kt:()=>h});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function o(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},c=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},u="mdxType",m={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,o=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(t),d=i,h=u["".concat(l,".").concat(d)]||u[d]||m[d]||o;return t?a.createElement(h,r(r({ref:n},c),{},{components:t})):a.createElement(h,r({ref:n},c))}));function h(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var o=t.length,r=new Array(o);r[0]=d;var s={};for(var l in n)hasOwnProperty.call(n,l)&&(s[l]=n[l]);s.originalType=e,s[u]="string"==typeof e?e:i,r[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>m,frontMatter:()=>o,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const o={id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["@open-sauced/semantic-release-conventional-config"]},r=void 0,s={unversionedId:"maintainers/semantic-release",id:"maintainers/semantic-release",title:"@open-sauced/semantic-release-conventional-config",description:"Description",source:"@site/docs/maintainers/semantic-release.md",sourceDirName:"maintainers",slug:"/maintainers/semantic-release",permalink:"/maintainers/semantic-release",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/semantic-release.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"semantic-release",title:"@open-sauced/semantic-release-conventional-config",sidebar_label:"@open-sauced/semantic-release-conventional-config",keywords:["@open-sauced/semantic-release-conventional-config"]},sidebar:"docs",previous:{title:"@open-sauced/conventional-commit",permalink:"/maintainers/conventional-commit"},next:{title:"Introduction to the Chrome Extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"\ud83d\udda5\ufe0f Requirements",id:"\ufe0f-requirements",level:2},{value:"\ud83e\uddea GitHub actions usage",id:"-github-actions-usage",level:2},{value:"\ud83d\udce6 NPM usage",id:"-npm-usage",level:2},{value:"\ud83d\udd27 Configuration",id:"-configuration",level:2},{value:"NPM",id:"npm",level:3},{value:"GitHub Actions",id:"github-actions",level:3},{value:"Docker",id:"docker",level:3},{value:"Environment variables",id:"environment-variables",level:3},{value:"Workflow examples",id:"workflow-examples",level:2},{value:"Node application",id:"node-application",level:3},{value:"Npm library",id:"npm-library",level:3},{value:"Docker image",id:"docker-image",level:3},{value:"Pre-releases",id:"pre-releases",level:3},{value:"FAQ",id:"faq",level:2},{value:"Which assets are pushed to git",id:"which-assets-are-pushed-to-git",level:3},{value:"What is the commit convention",id:"what-is-the-commit-convention",level:3},{value:"How to enrich the static distribution",id:"how-to-enrich-the-static-distribution",level:3},{value:"How to start using pre-releases",id:"how-to-start-using-pre-releases",level:3},{value:"Contributing",id:"contributing",level:2}],c={toc:p},u="wrapper";function m(e){let{components:n,...t}=e;return(0,i.kt)(u,(0,a.Z)({},c,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/semantic-release-conventional-config")," is designed to help ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages auto-release to ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," registries while generating github releases and changelog using conventional commit convention."),(0,i.kt)("p",null,"Version 2 supports alpha and beta pre-releases using coresponding branches."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/commit-analyzer"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/commit-analyzer"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/release-notes-generator"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/release-notes-generator"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/conventional-changelog/conventional-changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"conventional-changelog-conventionalcommits"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/changelog"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/changelog"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/npm"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/npm"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/google/semantic-release-replace-plugin"},(0,i.kt)("inlineCode",{parentName:"a"},"@google/semantic-release-replace-plugin"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/cbhq/semantic-release-license"},(0,i.kt)("inlineCode",{parentName:"a"},"semantic-release-license"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/git"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/git"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/github"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/github"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/eclass/semantic-release-docker"},(0,i.kt)("inlineCode",{parentName:"a"},"@eclass/semantic-release-docker"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/semantic-release/exec"},(0,i.kt)("inlineCode",{parentName:"a"},"@semantic-release/exec"))),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/sindresorhus/execa"},(0,i.kt)("inlineCode",{parentName:"a"},"execa")))),(0,i.kt)("h2",{id:"\ufe0f-requirements"},"\ud83d\udda5\ufe0f Requirements"),(0,i.kt)("p",null,"Most important limitations are:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GITHUB_TOKEN")," for everything"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"NPM_TOKEN")," for public ",(0,i.kt)("inlineCode",{parentName:"li"},"npm")," library"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"docker")," containers need to be built beforehand")),(0,i.kt)("p",null,"You can skip here if you are using elevated ",(0,i.kt)("a",{parentName:"p",href:"https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token"},"Private Access Token"),", however we don't recommend going down that path."),(0,i.kt)("p",null,"No force push or admin cherries branch protections for the following branches:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"main")," - required"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"alpha")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"beta")," - optional, pre-release branch"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next")," - optional, next channel"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"next-major")," - optional, next major"),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"vX[.X.X]")," - maintenance releases")),(0,i.kt)("p",null,"If you use more than the main branch, optionally create an environment that is limiting where pushes can come from and enable the merge strategy."),(0,i.kt)("p",null,"We are using ",(0,i.kt)("inlineCode",{parentName:"p"},"production")," in our examples, if you copy paste them you will find this new environment generated in your settings! \ud83c\udf55"),(0,i.kt)("h2",{id:"-github-actions-usage"},"\ud83e\uddea GitHub actions usage"),(0,i.kt)("p",null,"Since version 3 it is possible to use semantic-release without any trace of it or the open-sauced configuration anywhere in the dependency tree."),(0,i.kt)("p",null,"Docker containers are pushed as part of the release so they mirror the availability of ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," packages."),(0,i.kt)("p",null,"The simplest use case for a typical NPM package, almost zero install downtime from ghcr and no more local tooling:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release container"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ env.RELEASE_TAG }}\n echo ${{ env.RELEASE_VERSION }}\n')),(0,i.kt)("p",null,"Marketplace actions should default to the major tag and are essentially more stable as we have to curate every release."),(0,i.kt)("p",null,"A more traditional approach, only thing really different here is a minor pull overhead and using set outputs instead of environment variables:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ steps.semantic-release.outputs.release-tag }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: open-sauced/semantic-release-conventional-config@v3\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n\n - name: "\u267b\ufe0f cleanup"\n run: |\n echo ${{ steps.semantic-release.outputs.release-tag }}\n echo ${{ steps.semantic-release.outputs.release-version }}\n')),(0,i.kt)("h2",{id:"-npm-usage"},"\ud83d\udce6 NPM usage"),(0,i.kt)("p",null,"You can opt to use this package in your local tooling. Proceed as you would normally would, replacing ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," with your package manager of choice and install the package:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-bash"},"npm install --save-dev @open-sauced/semantic-release-conventional-config\n")),(0,i.kt)("p",null,"The shareable config can then be configured in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration"},(0,i.kt)("strong",{parentName:"a"},"semantic-release")," configuration file"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "extends": "@open-sauced/semantic-release-conventional-config"\n}\n')),(0,i.kt)("p",null,"Now all you need to do is create a release:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npx semantic-release\n")),(0,i.kt)("h2",{id:"-configuration"},"\ud83d\udd27 Configuration"),(0,i.kt)("p",null,"See each ",(0,i.kt)("a",{parentName:"p",href:"#-plugins"},"plugin")," documentation for required installation and configuration steps."),(0,i.kt)("h3",{id:"npm"},"NPM"),(0,i.kt)("p",null,"Set ",(0,i.kt)("inlineCode",{parentName:"p"},"private")," to true in ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," if you want to disable ",(0,i.kt)("inlineCode",{parentName:"p"},"npm"),", or, change the scope of package using ",(0,i.kt)("inlineCode",{parentName:"p"},"publishConfig"),"."),(0,i.kt)("p",null,"Keep one of ",(0,i.kt)("inlineCode",{parentName:"p"},"files")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," keys in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," accurate depending on whether you are building a library or an application."),(0,i.kt)("p",null,"If you publish, make sure to also provide a valid ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," as ",(0,i.kt)("inlineCode",{parentName:"p"},".npmrc")," authentication is ignored in our config!"),(0,i.kt)("h3",{id:"github-actions"},"GitHub Actions"),(0,i.kt)("p",null,"Unless you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have an ",(0,i.kt)("inlineCode",{parentName:"p"},"action.yml")," present, our config will attempt to adjust the container version to the newly pushed ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"docker")," tags."),(0,i.kt)("h3",{id:"docker"},"Docker"),(0,i.kt)("p",null,"Unless you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present in your root folder, this module is not added to the release config."),(0,i.kt)("p",null,"If you have a ",(0,i.kt)("inlineCode",{parentName:"p"},"Dockerfile")," present, our config will attempt to push to ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr.io"),"."),(0,i.kt)("h3",{id:"environment-variables"},"Environment variables"),(0,i.kt)("p",null,"Using our configuration comes with some sensible defaults:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_USERNAME=$GITHUB_REPOSITORY_OWNER")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"DOCKER_PASSWORD=$GITHUB_TOKEN")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_NAME="open-sauced[bot]"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},'GIT_COMMITTER_EMAIL="63161813+open-sauced[bot]@users.noreply.github.com"')),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_NAME")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA")),(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("inlineCode",{parentName:"li"},"GIT_AUTHOR_EMAIL")," - parsed from commit ",(0,i.kt)("inlineCode",{parentName:"li"},"$GITHUB_SHA"))),(0,i.kt)("p",null,"Feel free to change any of the above to whatever suits your purpose, our motivation is to keep ",(0,i.kt)("inlineCode",{parentName:"p"},"GITHUB_TOKEN")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," the only necessary requirements."),(0,i.kt)("p",null,"We are actively investigating ways to drop the 2 remaining variables as well!"),(0,i.kt)("h2",{id:"workflow-examples"},"Workflow examples"),(0,i.kt)("h3",{id:"node-application"},"Node application"),(0,i.kt)("p",null,"This example requires ",(0,i.kt)("inlineCode",{parentName:"p"},'"private": true,')," in your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," and simplifies the workflow to lightning fast deployment:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n')),(0,i.kt)("h3",{id:"npm-library"},"Npm library"),(0,i.kt)("p",null,"For ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," libraries we need to set the environment URL manually and set a ",(0,i.kt)("inlineCode",{parentName:"p"},"NPM_TOKEN")," environment variable. This also disables docker builds:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/@open-sauced/semantic-release-conventional-config/v/${{ env.RELEASE_VERSION }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config/blob/main/.github/workflows/release.yml"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("h3",{id:"docker-image"},"Docker image"),(0,i.kt)("p",null,"For docker builds it's best to build your node application in parallel with the container and re-use the artifact at a later stage:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n\njobs:\n docker:\n name: Build container\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup buildx"\n uses: docker/setup-buildx-action@v1\n\n - name: "\ud83d\udd27 cache docker layers"\n uses: actions/cache@v2\n with:\n path: /tmp/.buildx-cache\n key: ${{ runner.os }}-buildx-${{ github.sha }}\n restore-keys: |\n ${{ runner.os }}-buildx-\n\n - name: "\ud83d\udd27 docker meta"\n id: meta\n uses: docker/metadata-action@v3\n with:\n images: ${{ github.repository }}\n tags: latest\n\n - name: "\ud83d\udce6 docker build"\n uses: docker/build-push-action@v2\n with:\n context: .\n tags: ${{ steps.meta.outputs.tags }}\n labels: ${{ steps.meta.outputs.labels }}\n outputs: type=docker,dest=/tmp/docker.tar\n push: false\n cache-from: type=gha, scope=${{ github.workflow }}\n cache-to: type=gha, scope=${{ github.workflow }}\n\n - name: "\ud83d\udcc2 docker artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: docker\n path: /tmp/docker.tar\n\n build:\n name: Build application\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n\n - name: "\ud83d\udd27 setup node"\n uses: actions/setup-node@v2.1.5\n with:\n node-version: 16\n\n - name: "\ud83d\udd27 install npm@latest"\n run: npm i -g npm@latest\n\n - name: "\ud83d\udce6 install dependencies"\n uses: bahmutov/npm-install@v1\n\n - name: "\ud83d\udcca repository visualizer"\n id: diagram\n uses: githubocto/repo-visualizer@0.7.1\n with:\n excluded_paths: "node_modules,build,.storybook,.netlify,.github,npm-shrinkwap.json"\n output_file: "public/diagram.svg"\n should_push: false\n artifact_name: "diagram"\n\n - name: "\ud83d\ude80 static app"\n run: npm run build\n\n - name: "\ud83d\udcc2 production artifacts"\n uses: actions/upload-artifact@v2\n with:\n name: build\n path: build\n\n release:\n environment:\n name: production\n url: https://github.com/${{ github.repository }}/releases/tag/${{ env.RELEASE_TAG }}\n name: Semantic release\n needs:\n - docker\n - build\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\udcc2 download docker artifacts"\n uses: actions/download-artifact@v2\n with:\n name: docker\n path: /tmp\n\n - name: "\ud83d\udce6 load tag"\n run: |\n docker load --input /tmp/docker.tar\n docker image ls -a\n\n - name: "\ud83d\udcc2 download build artifacts"\n uses: actions/download-artifact@v2\n with:\n name: build\n path: /tmp/build\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n\n cleanup:\n name: Cleanup actions\n needs:\n - release\n runs-on: ubuntu-latest\n steps:\n - name: "\u267b\ufe0f remove build artifacts"\n uses: geekyeggo/delete-artifact@v1\n with:\n name: |\n build\n docker\n')),(0,i.kt)("p",null,"An up-to-date version of the example above is available at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"open-sauced/open-sauced"),"."),(0,i.kt)("h3",{id:"pre-releases"},"Pre-releases"),(0,i.kt)("p",null,"This workflow requires the creation of ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," protected branches while templating every commit to be conventional. It does not support squashing without creating extremely complex conflict resolution:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-yaml"},'name: "Release"\n\non:\n push:\n branches:\n - main\n - beta\n - alpha\n\njobs:\n release:\n environment:\n name: npm\n url: https://www.npmjs.com/package/open-sauced-semantic-config-test/v/${{ steps.release.outputs.version }}\n name: Semantic release\n runs-on: ubuntu-latest\n steps:\n - name: "\u2601\ufe0f checkout repository"\n uses: actions/checkout@v2\n with:\n fetch-depth: 0\n\n - name: "\ud83d\ude80 release"\n id: semantic-release\n uses: docker://ghcr.io/open-sauced/semantic-release-conventional-config:3.0.0\n env:\n GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}\n NPM_TOKEN: ${{ secrets.NPM_TOKEN }}\n')),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"which-assets-are-pushed-to-git"},"Which assets are pushed to git"),(0,i.kt)("p",null,"The following assets are added to git using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/git"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n "LICENSE",\n "LICENSE.md",\n "COPYING",\n "COPYING.md",\n "CHANGELOG.md",\n "package.json",\n "package-lock.json",\n "npm-shrinkwrap.json",\n "public/diagram.svg",\n "action.yml"\n ]\n}\n')),(0,i.kt)("h3",{id:"what-is-the-commit-convention"},"What is the commit convention"),(0,i.kt)("p",null,"The following commit rules are enforced by ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/commit-analyzer"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "preset": "conventionalcommits",\n "releaseRules": [\n { "type": "build", "release": "minor" },\n { "type": "ci", "release": "patch" },\n { "type": "docs", "release": "minor" },\n { "type": "style", "release": "patch" },\n { "type": "refactor", "release": "patch" },\n { "type": "test", "release": "patch" },\n { "type": "revert", "release": "patch" },\n { "type": "chore", "release": false }\n ],\n "parserOpts": {\n "noteKeywords": ["BREAKING CHANGE", "BREAKING CHANGES", "BREAKING"]\n }\n}\n')),(0,i.kt)("h3",{id:"how-to-enrich-the-static-distribution"},"How to enrich the static distribution"),(0,i.kt)("p",null,"The following assets are packed into the github release download using ",(0,i.kt)("inlineCode",{parentName:"p"},"@semantic-release/github"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "assets": [\n {\n "path": "pack/*.tgz",\n "label": "Static distribution"\n }\n ]\n}\n')),(0,i.kt)("h3",{id:"how-to-start-using-pre-releases"},"How to start using pre-releases"),(0,i.kt)("p",null,"Create the ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha")," and/or ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," branches and protect them from being deleted or pushed to directly by non-administrators."),(0,i.kt)("p",null,"Switch your branching strategy to ",(0,i.kt)("inlineCode",{parentName:"p"},"merge")," and enable conventional commits checking."),(0,i.kt)("p",null,"You will have to resolve merge conflicts between ",(0,i.kt)("inlineCode",{parentName:"p"},"alpha"),", ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"main")," branches as described in the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/semantic-release/semantic-release/tree/master/docs/recipes"},"semantic-releases recipes"),"."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config")," \u2764\ufe0f"))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47120859.24ff5884.js b/assets/js/47120859.24ff5884.js new file mode 100644 index 00000000..60e69310 --- /dev/null +++ b/assets/js/47120859.24ff5884.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[657],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>v});var a=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},s=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=p(t),d=o,v=m["".concat(l,".").concat(d)]||m[d]||u[d]||i;return t?a.createElement(v,r(r({ref:n},s),{},{components:t})):a.createElement(v,r({ref:n},s))}));function v(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,r=new Array(i);r[0]=d;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[m]="string"==typeof e?e:o,r[1]=c;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var a=t(7462),o=(t(7294),t(3905));const i={id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["@open-sauced/conventional-commit"]},r=void 0,c={unversionedId:"maintainers/conventional-commit",id:"maintainers/conventional-commit",title:"@open-sauced/conventional-commit",description:"Description",source:"@site/docs/maintainers/conventional-commit.md",sourceDirName:"maintainers",slug:"/maintainers/conventional-commit",permalink:"/maintainers/conventional-commit",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/conventional-commit.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["@open-sauced/conventional-commit"]},sidebar:"docs",previous:{title:"@open-sauced/check-engines",permalink:"/maintainers/check-engines"},next:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/maintainers/semantic-release"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced usage",id:"advanced-usage",level:2},{value:"FAQ",id:"faq",level:2},{value:"Contributing",id:"contributing",level:2}],s={toc:p},m="wrapper";function u(e){let{components:n,...t}=e;return(0,o.kt)(m,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"description"},"Description"),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,o.kt)("inlineCode",{parentName:"p"},"@open-sauced/conventional-commit")," is designed to help users ",(0,o.kt)("inlineCode",{parentName:"p"},"git commit")," using ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/commitizen/cz-cli"},"commitizen")," and ",(0,o.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"conventional commits"),"."),(0,o.kt)("h2",{id:"dependencies"},"Dependencies"),(0,o.kt)("p",null,"This package uses the following modules:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-cli"},"cz-cli")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-conventional-changelog"},"cz-conventional-changelog"))),(0,o.kt)("h2",{id:"installation"},"Installation"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/conventional-commit\n")),(0,o.kt)("p",null,"Add the verification scripts to your ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,o.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"The reason why we provide ",(0,o.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,o.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,o.kt)("h2",{id:"usage"},"Usage"),(0,o.kt)("p",null,"All you have to do is run the script next to your ",(0,o.kt)("inlineCode",{parentName:"p"},"package.json"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"npx @open-sauced/conventional-commit\n# or\nnpx conventional-commit\n")),(0,o.kt)("h2",{id:"advanced-usage"},"Advanced usage"),(0,o.kt)("p",null,"The most common use case for this package is to run it instead of the ",(0,o.kt)("inlineCode",{parentName:"p"},"git commit")," command inside your ",(0,o.kt)("inlineCode",{parentName:"p"},"npm")," scripts:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"or"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"If you want to ensure local-only usage:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "conventional-commit"\n }\n}\n')),(0,o.kt)("h2",{id:"faq"},"FAQ"),(0,o.kt)("h2",{id:"contributing"},"Contributing"),(0,o.kt)("p",null,"We're always happy to onboard people into open source!"),(0,o.kt)("p",null,"Check out the repository at ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/conventional-commit"},"@open-sauced/conventional-commit")," \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/47120859.6a54a7ae.js b/assets/js/47120859.6a54a7ae.js deleted file mode 100644 index cfb4fcd5..00000000 --- a/assets/js/47120859.6a54a7ae.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[657],{3905:(e,n,t)=>{t.d(n,{Zo:()=>s,kt:()=>v});var a=t(7294);function o(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function i(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function r(e){for(var n=1;n=0||(o[t]=e[t]);return o}(e,n);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(o[t]=e[t])}return o}var l=a.createContext({}),p=function(e){var n=a.useContext(l),t=n;return e&&(t="function"==typeof e?e(n):r(r({},n),e)),t},s=function(e){var n=p(e.components);return a.createElement(l.Provider,{value:n},e.children)},m="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},d=a.forwardRef((function(e,n){var t=e.components,o=e.mdxType,i=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),m=p(t),d=o,v=m["".concat(l,".").concat(d)]||m[d]||u[d]||i;return t?a.createElement(v,r(r({ref:n},s),{},{components:t})):a.createElement(v,r({ref:n},s))}));function v(e,n){var t=arguments,o=n&&n.mdxType;if("string"==typeof e||o){var i=t.length,r=new Array(i);r[0]=d;var c={};for(var l in n)hasOwnProperty.call(n,l)&&(c[l]=n[l]);c.originalType=e,c[m]="string"==typeof e?e:o,r[1]=c;for(var p=2;p{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>p});var a=t(7462),o=(t(7294),t(3905));const i={id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["@open-sauced/conventional-commit"]},r=void 0,c={unversionedId:"maintainers/conventional-commit",id:"maintainers/conventional-commit",title:"@open-sauced/conventional-commit",description:"Description",source:"@site/docs/maintainers/conventional-commit.md",sourceDirName:"maintainers",slug:"/maintainers/conventional-commit",permalink:"/maintainers/conventional-commit",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/conventional-commit.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"conventional-commit",title:"@open-sauced/conventional-commit",sidebar_label:"@open-sauced/conventional-commit",keywords:["@open-sauced/conventional-commit"]},sidebar:"docs",previous:{title:"@open-sauced/check-engines",permalink:"/maintainers/check-engines"},next:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/maintainers/semantic-release"}},l={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced usage",id:"advanced-usage",level:2},{value:"FAQ",id:"faq",level:2},{value:"Contributing",id:"contributing",level:2}],s={toc:p},m="wrapper";function u(e){let{components:n,...t}=e;return(0,o.kt)(m,(0,a.Z)({},s,t,{components:n,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"description"},"Description"),(0,o.kt)("p",null,"The ",(0,o.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,o.kt)("inlineCode",{parentName:"p"},"@open-sauced/conventional-commit")," is designed to help users ",(0,o.kt)("inlineCode",{parentName:"p"},"git commit")," using ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/commitizen/cz-cli"},"commitizen")," and ",(0,o.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"conventional commits"),"."),(0,o.kt)("h2",{id:"dependencies"},"Dependencies"),(0,o.kt)("p",null,"This package uses the following modules:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-cli"},"cz-cli")),(0,o.kt)("li",{parentName:"ul"},(0,o.kt)("a",{parentName:"li",href:"https://github.com/commitizen/cz-conventional-changelog"},"cz-conventional-changelog"))),(0,o.kt)("h2",{id:"installation"},"Installation"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/conventional-commit\n")),(0,o.kt)("p",null,"Add the verification scripts to your ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,o.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"The reason why we provide ",(0,o.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,o.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,o.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,o.kt)("h2",{id:"usage"},"Usage"),(0,o.kt)("p",null,"All you have to do is run the script next to your ",(0,o.kt)("inlineCode",{parentName:"p"},"package.json"),":"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-shell"},"npx @open-sauced/conventional-commit\n# or\nnpx conventional-commit\n")),(0,o.kt)("h2",{id:"advanced-usage"},"Advanced usage"),(0,o.kt)("p",null,"The most common use case for this package is to run it instead of the ",(0,o.kt)("inlineCode",{parentName:"p"},"git commit")," command inside your ",(0,o.kt)("inlineCode",{parentName:"p"},"npm")," scripts:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx @open-sauced/conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"or"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "npx conventional-commit"\n }\n}\n')),(0,o.kt)("p",null,"If you want to ensure local-only usage:"),(0,o.kt)("pre",null,(0,o.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "push": "conventional-commit"\n }\n}\n')),(0,o.kt)("h2",{id:"faq"},"FAQ"),(0,o.kt)("h2",{id:"contributing"},"Contributing"),(0,o.kt)("p",null,"We're always happy to onboard people into open source!"),(0,o.kt)("p",null,"Check out the repository at ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/conventional-commit"},"@open-sauced/conventional-commit")," \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/48b9cea9.c5415132.js b/assets/js/48b9cea9.847f2a41.js similarity index 53% rename from assets/js/48b9cea9.c5415132.js rename to assets/js/48b9cea9.847f2a41.js index 090fb000..dab992f1 100644 --- a/assets/js/48b9cea9.c5415132.js +++ b/assets/js/48b9cea9.847f2a41.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[247],{3905:(t,e,n)=>{n.d(e,{Zo:()=>s,kt:()=>m});var a=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var p=a.createContext({}),u=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},s=function(t){var e=u(t.components);return a.createElement(p.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},h=a.forwardRef((function(t,e){var n=t.components,o=t.mdxType,r=t.originalType,p=t.parentName,s=c(t,["components","mdxType","originalType","parentName"]),l=u(n),h=o,m=l["".concat(p,".").concat(h)]||l[h]||d[h]||r;return n?a.createElement(m,i(i({ref:e},s),{},{components:n})):a.createElement(m,i({ref:e},s))}));function m(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=n.length,i=new Array(r);i[0]=h;var c={};for(var p in e)hasOwnProperty.call(e,p)&&(c[p]=e[p]);c.originalType=t,c[l]="string"==typeof t?t:o,i[1]=c;for(var u=2;u{n.r(e),n.d(e,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>u});var a=n(7462),o=(n(7294),n(3905));const r={id:"set-up-authentication",title:"Set up Authentication",sidebar_label:"Set up Authentication",keywords:["set up authentication"]},i=void 0,c={unversionedId:"contributing/set-up-authentication",id:"contributing/set-up-authentication",title:"Set up Authentication",description:"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.",source:"@site/docs/contributing/set-up-authentication.md",sourceDirName:"contributing",slug:"/contributing/set-up-authentication",permalink:"/contributing/set-up-authentication",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/set-up-authentication.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"set-up-authentication",title:"Set up Authentication",sidebar_label:"Set up Authentication",keywords:["set up authentication"]},sidebar:"docs",previous:{title:"Triage guide",permalink:"/contributing/triage-guide"},next:{title:"Introduction to storybook",permalink:"/technical/introduction-to-storybook"}},p={},u=[],s={toc:u},l="wrapper";function d(t){let{components:e,...r}=t;return(0,o.kt)(l,(0,a.Z)({},s,r,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.\nThe following steps outline how to obtain an authentication token from the ",(0,o.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza"},"hot.opensauced.pizza")," website:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Click on your avatar in the top right corner of the page. This will open a dropdown menu."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Avatar in top right corner of the page",src:n(7523).Z,width:"328",height:"87"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Click on the ",(0,o.kt)("strong",{parentName:"p"},"Print Auth Token")," option. Don't worry, this is a safe operation. The token is only printed to the console."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Print Auth Token",src:n(8231).Z,width:"326",height:"377"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Copy the token that is printed to the console."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Token printed to the console",src:n(545).Z,width:"1274",height:"408"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You can now use this token to make authenticated requests to the OpenSauced public API by including it in the Authorization header of your requests. For example:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},'const response = await fetch("https://api.opensauced.pizza/v1/auth/session", {\n method: "GET",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n});\n')))))}d.isMDXComponent=!0},7523:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png"},8231:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png"},545:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[247],{3905:(t,e,n)=>{n.d(e,{Zo:()=>s,kt:()=>m});var a=n(7294);function o(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function i(t){for(var e=1;e=0||(o[n]=t[n]);return o}(t,e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}var p=a.createContext({}),u=function(t){var e=a.useContext(p),n=e;return t&&(n="function"==typeof t?t(e):i(i({},e),t)),n},s=function(t){var e=u(t.components);return a.createElement(p.Provider,{value:e},t.children)},l="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return a.createElement(a.Fragment,{},e)}},h=a.forwardRef((function(t,e){var n=t.components,o=t.mdxType,r=t.originalType,p=t.parentName,s=c(t,["components","mdxType","originalType","parentName"]),l=u(n),h=o,m=l["".concat(p,".").concat(h)]||l[h]||d[h]||r;return n?a.createElement(m,i(i({ref:e},s),{},{components:n})):a.createElement(m,i({ref:e},s))}));function m(t,e){var n=arguments,o=e&&e.mdxType;if("string"==typeof t||o){var r=n.length,i=new Array(r);i[0]=h;var c={};for(var p in e)hasOwnProperty.call(e,p)&&(c[p]=e[p]);c.originalType=t,c[l]="string"==typeof t?t:o,i[1]=c;for(var u=2;u{n.r(e),n.d(e,{assets:()=>p,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>c,toc:()=>u});var a=n(7462),o=(n(7294),n(3905));const r={id:"set-up-authentication",title:"Set up Authentication",sidebar_label:"Set up Authentication",keywords:["set up authentication"]},i=void 0,c={unversionedId:"contributing/set-up-authentication",id:"contributing/set-up-authentication",title:"Set up Authentication",description:"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.",source:"@site/docs/contributing/set-up-authentication.md",sourceDirName:"contributing",slug:"/contributing/set-up-authentication",permalink:"/contributing/set-up-authentication",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/set-up-authentication.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"set-up-authentication",title:"Set up Authentication",sidebar_label:"Set up Authentication",keywords:["set up authentication"]},sidebar:"docs",previous:{title:"Triage guide",permalink:"/contributing/triage-guide"},next:{title:"Introduction to storybook",permalink:"/technical/introduction-to-storybook"}},p={},u=[],s={toc:u},l="wrapper";function d(t){let{components:e,...r}=t;return(0,o.kt)(l,(0,a.Z)({},s,r,{components:e,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.\nThe following steps outline how to obtain an authentication token from the ",(0,o.kt)("a",{parentName:"p",href:"https://hot.opensauced.pizza"},"hot.opensauced.pizza")," website:"),(0,o.kt)("ol",null,(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Click on your avatar in the top right corner of the page. This will open a dropdown menu."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Avatar in top right corner of the page",src:n(7523).Z,width:"328",height:"87"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Click on the ",(0,o.kt)("strong",{parentName:"p"},"Print Auth Token")," option. Don't worry, this is a safe operation. The token is only printed to the console."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Print Auth Token",src:n(8231).Z,width:"326",height:"377"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"Copy the token that is printed to the console."),(0,o.kt)("p",{parentName:"li"},(0,o.kt)("img",{alt:"Token printed to the console",src:n(545).Z,width:"1274",height:"408"}))),(0,o.kt)("li",{parentName:"ol"},(0,o.kt)("p",{parentName:"li"},"You can now use this token to make authenticated requests to the OpenSauced public API by including it in the Authorization header of your requests. For example:"),(0,o.kt)("pre",{parentName:"li"},(0,o.kt)("code",{parentName:"pre",className:"language-javascript"},'const response = await fetch("https://api.opensauced.pizza/v1/auth/session", {\n method: "GET",\n headers: {\n Authorization: `Bearer ${token}`,\n },\n});\n')))))}d.isMDXComponent=!0},7523:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-avatar-top-right-4063afad1b9c314a1e261c492a65447c.png"},8231:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-print-auth-token-e1370316da4c4747a853289f72842d56.png"},545:(t,e,n)=>{n.d(e,{Z:()=>a});const a=n.p+"assets/images/contributing-token-printed-to-console-0deb43e35d7b18560ccf573c6f0411cc.png"}}]); \ No newline at end of file diff --git a/assets/js/561e6817.784e472b.js b/assets/js/561e6817.784e472b.js deleted file mode 100644 index 956de52f..00000000 --- a/assets/js/561e6817.784e472b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[161],{3905:(e,t,o)=>{o.d(t,{Zo:()=>s,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},s=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,h=p["".concat(c,".").concat(d)]||p[d]||m[d]||i;return o?n.createElement(h,a(a({ref:t},s),{},{components:o})):n.createElement(h,a({ref:t},s))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[p]="string"==typeof e?e:r,a[1]=u;for(var l=2;l{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>i,metadata:()=>u,toc:()=>l});var n=o(7462),r=(o(7294),o(3905));const i={id:"welcome-to-the-community",title:"Welcome to the Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community"]},a=void 0,u={unversionedId:"community/welcome-to-the-community",id:"community/welcome-to-the-community",title:"Welcome to the Community",description:"The OpenSauced Community",source:"@site/docs/community/welcome-to-the-community.md",sourceDirName:"community",slug:"/community/welcome-to-the-community",permalink:"/community/welcome-to-the-community",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/welcome-to-the-community.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"welcome-to-the-community",title:"Welcome to the Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community"]},sidebar:"docs",previous:{title:"Introduction to OpenSauced \ud83c\udf55",permalink:"/"},next:{title:"Highlight your open source contributions",permalink:"/community/highlights"}},c={},l=[{value:"The OpenSauced Community",id:"the-opensauced-community",level:2},{value:"Community Guidelines",id:"community-guidelines",level:3},{value:"What's the OpenSauced Community up to?",id:"whats-the-opensauced-community-up-to",level:2},{value:"How can I get involved?",id:"how-can-i-get-involved",level:2},{value:"Resources on Getting Started with Open Source",id:"resources-on-getting-started-with-open-source",level:2}],s={toc:l},p="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,n.Z)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-community"},"The OpenSauced Community"),(0,r.kt)("p",null,"Welcome to the OpenSauced community! At OpenSauced, we're striving to bring collaboration and inspiration to every open source contributor and to help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open."),(0,r.kt)("h3",{id:"community-guidelines"},"Community Guidelines"),(0,r.kt)("p",null,"At OpenSauced, we strive to create a welcoming and inclusive community for everyone. We have a few guidelines to help us achieve this goal:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Be respectful and kind to others in the community."),(0,r.kt)("li",{parentName:"ul"},"Be patient with others and help them learn."),(0,r.kt)("li",{parentName:"ul"},"Be open to feedback and constructive criticism."),(0,r.kt)("li",{parentName:"ul"},"Adhere to the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/.github/blob/main/CODE_OF_CONDUCT.md"},"Code of Conduct"),".")),(0,r.kt)("h2",{id:"whats-the-opensauced-community-up-to"},"What's the OpenSauced Community up to?"),(0,r.kt)("p",null,"The OpenSauced community is a group of open-source enthusiasts who are passionate about making open-source more accessible to everyone. Here are some ways you can keep up with what we're doing:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udc26 Follow us on Twitter ",(0,r.kt)("a",{parentName:"li",href:"https://twitter.com/saucedopen"},"@SaucedOpen")," for announcements and our frequent Twitter Spaces."),(0,r.kt)("li",{parentName:"ul"},"Join our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),", and hang out with us in our weekly office hours."),(0,r.kt)("li",{parentName:"ul"},"Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://www.youtube.com/@OpenSauced"},"YouTube channel")," for the latest updates and video content for OpenSauced."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcf0 Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://news.opensauced.pizza/#/portal/signup"},"newsletter")," for all things OpenSauced and open source.")),(0,r.kt)("h2",{id:"how-can-i-get-involved"},"How can I get involved?"),(0,r.kt)("p",null,"You can get involved in the OpenSauced community in a few ways:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Share your Contributions! We love to see what you're working on. Highlight your contributions on ",(0,r.kt)("a",{parentName:"li",href:"https://insights.opensauced.pizza/feed"},"OpenSauced"),"."),(0,r.kt)("li",{parentName:"ul"},"Open an issue or ask to be assigned to an existing issue on any of our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"OpenSauced repositories"),"."),(0,r.kt)("li",{parentName:"ul"},"Share what you're working on, ask questions, or mentor new contributors in our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),".")),(0,r.kt)("h2",{id:"resources-on-getting-started-with-open-source"},"Resources on Getting Started with Open Source"),(0,r.kt)("p",null,"Getting started with open source can be quite daunting for beginners, so we've put together some resources to help you get started."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcdd Check out our ",(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced"},"Dev blog")," where we provide resources for open-source contributors."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcd6 Take our ",(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")," to help you get started with open-source.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/561e6817.8cb71090.js b/assets/js/561e6817.8cb71090.js new file mode 100644 index 00000000..776837c6 --- /dev/null +++ b/assets/js/561e6817.8cb71090.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[161],{3905:(e,t,o)=>{o.d(t,{Zo:()=>s,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function a(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var c=n.createContext({}),l=function(e){var t=n.useContext(c),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},s=function(e){var t=l(e.components);return n.createElement(c.Provider,{value:t},e.children)},p="mdxType",m={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},d=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,a=e.originalType,c=e.parentName,s=u(e,["components","mdxType","originalType","parentName"]),p=l(o),d=r,h=p["".concat(c,".").concat(d)]||p[d]||m[d]||a;return o?n.createElement(h,i(i({ref:t},s),{},{components:o})):n.createElement(h,i({ref:t},s))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=o.length,i=new Array(a);i[0]=d;var u={};for(var c in t)hasOwnProperty.call(t,c)&&(u[c]=t[c]);u.originalType=e,u[p]="string"==typeof e?e:r,i[1]=u;for(var l=2;l{o.r(t),o.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>u,toc:()=>l});var n=o(7462),r=(o(7294),o(3905));const a={id:"welcome-to-the-community",title:"Welcome to the Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community"]},i=void 0,u={unversionedId:"community/welcome-to-the-community",id:"community/welcome-to-the-community",title:"Welcome to the Community",description:"The OpenSauced Community",source:"@site/docs/community/welcome-to-the-community.md",sourceDirName:"community",slug:"/community/welcome-to-the-community",permalink:"/community/welcome-to-the-community",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/welcome-to-the-community.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"welcome-to-the-community",title:"Welcome to the Community",sidebar_label:"Welcome to the Community",keywords:["welcome to the community"]},sidebar:"docs",previous:{title:"Introduction to OpenSauced \ud83c\udf55",permalink:"/"},next:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"}},c={},l=[{value:"The OpenSauced Community",id:"the-opensauced-community",level:2},{value:"Community Guidelines",id:"community-guidelines",level:3},{value:"What's the OpenSauced Community up to?",id:"whats-the-opensauced-community-up-to",level:2},{value:"How can I get involved?",id:"how-can-i-get-involved",level:2},{value:"Resources on Getting Started with Open Source",id:"resources-on-getting-started-with-open-source",level:2}],s={toc:l},p="wrapper";function m(e){let{components:t,...o}=e;return(0,r.kt)(p,(0,n.Z)({},s,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-community"},"The OpenSauced Community"),(0,r.kt)("p",null,"Welcome to the OpenSauced community! At OpenSauced, we're striving to bring collaboration and inspiration to every open source contributor and to help build a global community of open source developers, empowering you to grow, innovate, and achieve greatness in the open."),(0,r.kt)("h3",{id:"community-guidelines"},"Community Guidelines"),(0,r.kt)("p",null,"At OpenSauced, we strive to create a welcoming and inclusive community for everyone. We have a few guidelines to help us achieve this goal:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Be respectful and kind to others in the community."),(0,r.kt)("li",{parentName:"ul"},"Be patient with others and help them learn."),(0,r.kt)("li",{parentName:"ul"},"Be open to feedback and constructive criticism."),(0,r.kt)("li",{parentName:"ul"},"Adhere to the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/.github/blob/main/CODE_OF_CONDUCT.md"},"Code of Conduct"),".")),(0,r.kt)("h2",{id:"whats-the-opensauced-community-up-to"},"What's the OpenSauced Community up to?"),(0,r.kt)("p",null,"The OpenSauced community is a group of open-source enthusiasts who are passionate about making open-source more accessible to everyone. Here are some ways you can keep up with what we're doing:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udc26 Follow us on Twitter ",(0,r.kt)("a",{parentName:"li",href:"https://twitter.com/saucedopen"},"@SaucedOpen")," for announcements and our frequent Twitter Spaces."),(0,r.kt)("li",{parentName:"ul"},"Join our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),", and hang out with us in our weekly office hours."),(0,r.kt)("li",{parentName:"ul"},"Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://www.youtube.com/@OpenSauced"},"YouTube channel")," for the latest updates and video content for OpenSauced."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcf0 Subscribe to our ",(0,r.kt)("a",{parentName:"li",href:"https://news.opensauced.pizza/#/portal/signup"},"newsletter")," for all things OpenSauced and open source.")),(0,r.kt)("h2",{id:"how-can-i-get-involved"},"How can I get involved?"),(0,r.kt)("p",null,"You can get involved in the OpenSauced community in a few ways:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Share your Contributions! We love to see what you're working on. Highlight your contributions on ",(0,r.kt)("a",{parentName:"li",href:"https://insights.opensauced.pizza/feed"},"OpenSauced"),"."),(0,r.kt)("li",{parentName:"ul"},"Open an issue or ask to be assigned to an existing issue on any of our ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"OpenSauced repositories"),"."),(0,r.kt)("li",{parentName:"ul"},"Share what you're working on, ask questions, or mentor new contributors in our ",(0,r.kt)("a",{parentName:"li",href:"https://discord.gg/opensauced"},"Discord"),".")),(0,r.kt)("h2",{id:"resources-on-getting-started-with-open-source"},"Resources on Getting Started with Open Source"),(0,r.kt)("p",null,"Getting started with open source can be quite daunting for beginners, so we've put together some resources to help you get started."),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcdd Check out our ",(0,r.kt)("a",{parentName:"li",href:"https://dev.to/opensauced"},"Dev blog")," where we provide resources for open-source contributors."),(0,r.kt)("li",{parentName:"ul"},"\ud83d\udcd6 Take our ",(0,r.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source Course")," to help you get started with open-source.")))}m.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/580fd761.82383d01.js b/assets/js/580fd761.82383d01.js new file mode 100644 index 00000000..3ccb6443 --- /dev/null +++ b/assets/js/580fd761.82383d01.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),f=o,m=p["".concat(s,".").concat(f)]||p[f]||u[f]||i;return n?r.createElement(m,a(a({ref:t},d),{},{components:n})):r.createElement(m,a({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const i={id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct"]},a=void 0,c={unversionedId:"contributing/code-of-conduct",id:"contributing/code-of-conduct",title:"Code of Conduct",description:"Our pledge",source:"@site/docs/contributing/code-of-conduct.md",sourceDirName:"contributing",slug:"/contributing/code-of-conduct",permalink:"/contributing/code-of-conduct",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/code-of-conduct.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct"]},sidebar:"docs",previous:{title:"Introduction to contributing",permalink:"/contributing/introduction-to-contributing"},next:{title:"Triage guide",permalink:"/contributing/triage-guide"}},s={},l=[{value:"Our pledge",id:"our-pledge",level:2},{value:"Our standards",id:"our-standards",level:2},{value:"Our responsibilities",id:"our-responsibilities",level:2},{value:"Scope",id:"scope",level:2},{value:"Enforcement",id:"enforcement",level:2},{value:"Attribution",id:"attribution",level:2}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"our-pledge"},"Our pledge"),(0,o.kt)("p",null,"In the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to make participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation."),(0,o.kt)("h2",{id:"our-standards"},"Our standards"),(0,o.kt)("p",null,"Examples of behavior that contributes to creating a positive environment\ninclude:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using welcoming and inclusive language"),(0,o.kt)("li",{parentName:"ul"},"Being respectful of differing viewpoints and experiences"),(0,o.kt)("li",{parentName:"ul"},"Gracefully accepting constructive criticism"),(0,o.kt)("li",{parentName:"ul"},"Focusing on what is best for the community"),(0,o.kt)("li",{parentName:"ul"},"Showing empathy towards other community members")),(0,o.kt)("p",null,"Examples of unacceptable behavior by participants include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The use of sexualized language or imagery and unwelcome sexual attention or\nadvances"),(0,o.kt)("li",{parentName:"ul"},"Trolling, insulting/derogatory comments, and personal or political attacks"),(0,o.kt)("li",{parentName:"ul"},"Public or private harassment"),(0,o.kt)("li",{parentName:"ul"},"Publishing others' private information, such as a physical or electronic\naddress, without explicit permission"),(0,o.kt)("li",{parentName:"ul"},"Other conduct which could reasonably be considered inappropriate in a\nprofessional setting")),(0,o.kt)("h2",{id:"our-responsibilities"},"Our responsibilities"),(0,o.kt)("p",null,"Project maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior."),(0,o.kt)("p",null,"Project maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful."),(0,o.kt)("h2",{id:"scope"},"Scope"),(0,o.kt)("p",null,"This Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers."),(0,o.kt)("h2",{id:"enforcement"},"Enforcement"),(0,o.kt)("p",null,"Instances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ",(0,o.kt)("a",{parentName:"p",href:"mailto:hello@briandouglas.me."},"hello@briandouglas.me.")," All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately."),(0,o.kt)("p",null,"Project maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership."),(0,o.kt)("h2",{id:"attribution"},"Attribution"),(0,o.kt)("p",null,"This Code of Conduct is adapted from the ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org"},"Contributor Covenant"),", version 1.4,\navailable at ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org/version/1/4/"},"https://contributor-covenant.org/version/1/4")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/580fd761.8726f403.js b/assets/js/580fd761.8726f403.js deleted file mode 100644 index 74785d25..00000000 --- a/assets/js/580fd761.8726f403.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[607],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},p="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),p=l(n),f=o,m=p["".concat(s,".").concat(f)]||p[f]||u[f]||i;return n?r.createElement(m,a(a({ref:t},d),{},{components:n})):r.createElement(m,a({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const i={id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct"]},a=void 0,c={unversionedId:"contributing/code-of-conduct",id:"contributing/code-of-conduct",title:"Code of Conduct",description:"Our pledge",source:"@site/docs/contributing/code-of-conduct.md",sourceDirName:"contributing",slug:"/contributing/code-of-conduct",permalink:"/contributing/code-of-conduct",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/code-of-conduct.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"code-of-conduct",title:"Code of Conduct",sidebar_label:"Code of Conduct",keywords:["code of conduct"]},sidebar:"docs",previous:{title:"Introduction to contributing",permalink:"/contributing/introduction-to-contributing"},next:{title:"Triage guide",permalink:"/contributing/triage-guide"}},s={},l=[{value:"Our pledge",id:"our-pledge",level:2},{value:"Our standards",id:"our-standards",level:2},{value:"Our responsibilities",id:"our-responsibilities",level:2},{value:"Scope",id:"scope",level:2},{value:"Enforcement",id:"enforcement",level:2},{value:"Attribution",id:"attribution",level:2}],d={toc:l},p="wrapper";function u(e){let{components:t,...n}=e;return(0,o.kt)(p,(0,r.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h2",{id:"our-pledge"},"Our pledge"),(0,o.kt)("p",null,"In the interest of fostering an open and welcoming environment, we as\ncontributors and maintainers pledge to make participation in our project and\nour community a harassment-free experience for everyone, regardless of age, body\nsize, disability, ethnicity, gender identity and expression, level of experience,\nnationality, personal appearance, race, religion, or sexual identity and\norientation."),(0,o.kt)("h2",{id:"our-standards"},"Our standards"),(0,o.kt)("p",null,"Examples of behavior that contributes to creating a positive environment\ninclude:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"Using welcoming and inclusive language"),(0,o.kt)("li",{parentName:"ul"},"Being respectful of differing viewpoints and experiences"),(0,o.kt)("li",{parentName:"ul"},"Gracefully accepting constructive criticism"),(0,o.kt)("li",{parentName:"ul"},"Focusing on what is best for the community"),(0,o.kt)("li",{parentName:"ul"},"Showing empathy towards other community members")),(0,o.kt)("p",null,"Examples of unacceptable behavior by participants include:"),(0,o.kt)("ul",null,(0,o.kt)("li",{parentName:"ul"},"The use of sexualized language or imagery and unwelcome sexual attention or\nadvances"),(0,o.kt)("li",{parentName:"ul"},"Trolling, insulting/derogatory comments, and personal or political attacks"),(0,o.kt)("li",{parentName:"ul"},"Public or private harassment"),(0,o.kt)("li",{parentName:"ul"},"Publishing others' private information, such as a physical or electronic\naddress, without explicit permission"),(0,o.kt)("li",{parentName:"ul"},"Other conduct which could reasonably be considered inappropriate in a\nprofessional setting")),(0,o.kt)("h2",{id:"our-responsibilities"},"Our responsibilities"),(0,o.kt)("p",null,"Project maintainers are responsible for clarifying the standards of acceptable\nbehavior and are expected to take appropriate and fair corrective action in\nresponse to any instances of unacceptable behavior."),(0,o.kt)("p",null,"Project maintainers have the right and responsibility to remove, edit, or\nreject comments, commits, code, wiki edits, issues, and other contributions\nthat are not aligned to this Code of Conduct, or to ban temporarily or\npermanently any contributor for other behaviors that they deem inappropriate,\nthreatening, offensive, or harmful."),(0,o.kt)("h2",{id:"scope"},"Scope"),(0,o.kt)("p",null,"This Code of Conduct applies both within project spaces and in public spaces\nwhen an individual is representing the project or its community. Examples of\nrepresenting a project or community include using an official project e-mail\naddress, posting via an official social media account, or acting as an appointed\nrepresentative at an online or offline event. Representation of a project may be\nfurther defined and clarified by project maintainers."),(0,o.kt)("h2",{id:"enforcement"},"Enforcement"),(0,o.kt)("p",null,"Instances of abusive, harassing, or otherwise unacceptable behavior may be\nreported by contacting the project team at ",(0,o.kt)("a",{parentName:"p",href:"mailto:hello@briandouglas.me."},"hello@briandouglas.me.")," All\ncomplaints will be reviewed and investigated and will result in a response that\nis deemed necessary and appropriate to the circumstances. The project team is\nobligated to maintain confidentiality with regard to the reporter of an incident.\nFurther details of specific enforcement policies may be posted separately."),(0,o.kt)("p",null,"Project maintainers who do not follow or enforce the Code of Conduct in good\nfaith may face temporary or permanent repercussions as determined by other\nmembers of the project's leadership."),(0,o.kt)("h2",{id:"attribution"},"Attribution"),(0,o.kt)("p",null,"This Code of Conduct is adapted from the ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org"},"Contributor Covenant"),", version 1.4,\navailable at ",(0,o.kt)("a",{parentName:"p",href:"https://contributor-covenant.org/version/1/4/"},"https://contributor-covenant.org/version/1/4")))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5a1e7e56.8eb15037.js b/assets/js/5a1e7e56.8eb15037.js new file mode 100644 index 00000000..cbb5e984 --- /dev/null +++ b/assets/js/5a1e7e56.8eb15037.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[887],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(n),m=i,h=u["".concat(p,".").concat(m)]||u[m]||d[m]||r;return n?a.createElement(h,o(o({ref:t},l),{},{components:n})):a.createElement(h,o({ref:t},l))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=m;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(7462),i=(n(7294),n(3905));const r={id:"setting-up-a-new-repository",title:"Setting up a new repository",sidebar_label:"Setting up a new repository",keywords:["setting up a new repository"]},o=void 0,s={unversionedId:"maintainers/setting-up-a-new-repository",id:"maintainers/setting-up-a-new-repository",title:"Setting up a new repository",description:"How do I Join the Maintainers Team?",source:"@site/docs/maintainers/setting-up-a-new-repository.md",sourceDirName:"maintainers",slug:"/maintainers/setting-up-a-new-repository",permalink:"/maintainers/setting-up-a-new-repository",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/setting-up-a-new-repository.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"setting-up-a-new-repository",title:"Setting up a new repository",sidebar_label:"Setting up a new repository",keywords:["setting up a new repository"]},sidebar:"docs",previous:{title:"Resolve merge conflicts",permalink:"/technical/resolve-merge-conflicts"},next:{title:"@open-sauced/check-engines",permalink:"/maintainers/check-engines"}},p={},c=[{value:"How do I Join the Maintainers Team?",id:"how-do-i-join-the-maintainers-team",level:2},{value:"Requirements",id:"requirements",level:2},{value:"Creating a new repo",id:"creating-a-new-repo",level:2},{value:"Syncing settings with opensauced.pizza",id:"syncing-settings-with-opensaucedpizza",level:2},{value:"Syncing labels with opensauced.pizza",id:"syncing-labels-with-opensaucedpizza",level:2},{value:"Syncing branch protections with opensauced.pizza",id:"syncing-branch-protections-with-opensaucedpizza",level:2},{value:"Setting up workflows",id:"setting-up-workflows",level:2},{value:"Setting up environments and secrets",id:"setting-up-environments-and-secrets",level:2}],l={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"how-do-i-join-the-maintainers-team"},"How do I Join the Maintainers Team?"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Sign up for ",(0,i.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza")),(0,i.kt)("li",{parentName:"ol"},"Join ",(0,i.kt)("a",{parentName:"li",href:"https://discord.gg/gZMKK5q"},"discord"),"."),(0,i.kt)("li",{parentName:"ol"},"Prove your pizza worth!")),(0,i.kt)("h2",{id:"requirements"},"Requirements"),(0,i.kt)("p",null,"For the purpose of this tutorial, our target demo repository will be called ",(0,i.kt)("inlineCode",{parentName:"p"},"open-sauced/npx-check-engines"),"."),(0,i.kt)("p",null,"The steps described here mirror ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"open-sauced/check-engines"),"."),(0,i.kt)("p",null,"The octoherd scripts assume you have exported a programatic token similar to:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'export GH_TOKEN="ghp_Q8TZZT9ypgqw3EeABoCWPcwZBHpjZJ9hI42n"\n')),(0,i.kt)("h2",{id:"creating-a-new-repo"},"Creating a new repo"),(0,i.kt)("p",null,"Don't spend too much time thinking of a name or a catchy description, just set license to MIT and rocket jump!"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"create a new repository",src:n(1531).Z,width:"1496",height:"1698"})),(0,i.kt)("h2",{id:"syncing-settings-with-opensaucedpizza"},"Syncing settings with opensauced.pizza"),(0,i.kt)("p",null,"Squashing pull requests is the minimum requirement but the other options are quite useful at various stages of development."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"minimum merge settings",src:n(6676).Z,width:"1908",height:"1186"})),(0,i.kt)("p",null,"Copy most of the relevant settings with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx octoherd-script-sync-repo-settings \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("p",null,'Otherwise you can disable "Projects" and "Wikis" for the selected repository as we are handling them on a larger scale.'),(0,i.kt)("h2",{id:"syncing-labels-with-opensaucedpizza"},"Syncing labels with opensauced.pizza"),(0,i.kt)("p",null,"The default labels have some missing emojis. Copy the rest with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx octoherd-script-copy-labels \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("p",null,"Then go back to your repository and delete:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"documentation"),(0,i.kt)("li",{parentName:"ul"},"\ud83d\udc40 needs-triage (green background one)"),(0,i.kt)("li",{parentName:"ul"},"other potential duplicates if the above race condition is different")),(0,i.kt)("h2",{id:"syncing-branch-protections-with-opensaucedpizza"},"Syncing branch protections with opensauced.pizza"),(0,i.kt)("p",null,'This topic is more complex but in a sense tap the main branch and enable\neverything except "Restrict who can dismiss pull request reviews" and "Restrict who can push to matching branches" in the first section.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"maximum merge protections",src:n(5549).Z,width:"1880",height:"1872"})),(0,i.kt)("p",null,'The "Rules applied to everyone including administrators" is more on an unused override.'),(0,i.kt)("p",null,"Most of the time this process is super manual but in the limited cases where we need this run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx @octoherd/script-sync-branch-protections \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("h2",{id:"setting-up-workflows"},"Setting up workflows"),(0,i.kt)("p",null,"Most collaborative projects require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/compliance.yml"},"compliance flows")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/amannn/action-semantic-pull-request"},"amannn/action-semantic-pull-request")," and ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/actions/first-interaction"},"actions/first-interaction"),"."),(0,i.kt)("p",null,"Pull requests require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/triage.yml"},"triage")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/bdougie/take-action"},"bdougie/take-action"),"."),(0,i.kt)("p",null,"Most ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," projects will require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"release automation")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("p",null,"Other ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/tree/main/.github/workflows"},"development workflows")," are less common and opinionated towards decentralised collaboration. Use these as example backbones for your new repository."),(0,i.kt)("h2",{id:"setting-up-environments-and-secrets"},"Setting up environments and secrets"),(0,i.kt)("p",null,"As you may have noticed in the previous step or in the actions visualisations, the release workflows enable named environments."),(0,i.kt)("p",null,"These have to be manually set up, along with their secrets and branch protections."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"create environment",src:n(4805).Z,width:"1894",height:"1738"})),(0,i.kt)("p",null,"If using ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," it is likely you will add a couple variables here."))}d.isMDXComponent=!0},1531:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-create-repository-019a03ca1c27a2c68c269e5c2bfdbb83.png"},4805:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-env-505e845511ddadfdd8f3ba49c44eba5b.png"},5549:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-merge-protections-86eb5e515e264396c194af7ade02e05c.png"},6676:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-merge-settings-980ef1e3f50c9fae47edf1411924c124.png"}}]); \ No newline at end of file diff --git a/assets/js/5a1e7e56.e5d14780.js b/assets/js/5a1e7e56.e5d14780.js deleted file mode 100644 index f337bc7d..00000000 --- a/assets/js/5a1e7e56.e5d14780.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[887],{3905:(e,t,n)=>{n.d(t,{Zo:()=>l,kt:()=>h});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function o(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var p=a.createContext({}),c=function(e){var t=a.useContext(p),n=t;return e&&(n="function"==typeof e?e(t):o(o({},t),e)),n},l=function(e){var t=c(e.components);return a.createElement(p.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},m=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,p=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),u=c(n),m=i,h=u["".concat(p,".").concat(m)]||u[m]||d[m]||r;return n?a.createElement(h,o(o({ref:t},l),{},{components:n})):a.createElement(h,o({ref:t},l))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,o=new Array(r);o[0]=m;var s={};for(var p in t)hasOwnProperty.call(t,p)&&(s[p]=t[p]);s.originalType=e,s[u]="string"==typeof e?e:i,o[1]=s;for(var c=2;c{n.r(t),n.d(t,{assets:()=>p,contentTitle:()=>o,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var a=n(7462),i=(n(7294),n(3905));const r={id:"setting-up-a-new-repository",title:"Setting up a new repository",sidebar_label:"Setting up a new repository",keywords:["setting up a new repository"]},o=void 0,s={unversionedId:"maintainers/setting-up-a-new-repository",id:"maintainers/setting-up-a-new-repository",title:"Setting up a new repository",description:"How do I Join the Maintainers Team?",source:"@site/docs/maintainers/setting-up-a-new-repository.md",sourceDirName:"maintainers",slug:"/maintainers/setting-up-a-new-repository",permalink:"/maintainers/setting-up-a-new-repository",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/setting-up-a-new-repository.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"setting-up-a-new-repository",title:"Setting up a new repository",sidebar_label:"Setting up a new repository",keywords:["setting up a new repository"]},sidebar:"docs",previous:{title:"Resolve merge conflicts",permalink:"/technical/resolve-merge-conflicts"},next:{title:"@open-sauced/check-engines",permalink:"/maintainers/check-engines"}},p={},c=[{value:"How do I Join the Maintainers Team?",id:"how-do-i-join-the-maintainers-team",level:2},{value:"Requirements",id:"requirements",level:2},{value:"Creating a new repo",id:"creating-a-new-repo",level:2},{value:"Syncing settings with opensauced.pizza",id:"syncing-settings-with-opensaucedpizza",level:2},{value:"Syncing labels with opensauced.pizza",id:"syncing-labels-with-opensaucedpizza",level:2},{value:"Syncing branch protections with opensauced.pizza",id:"syncing-branch-protections-with-opensaucedpizza",level:2},{value:"Setting up workflows",id:"setting-up-workflows",level:2},{value:"Setting up environments and secrets",id:"setting-up-environments-and-secrets",level:2}],l={toc:c},u="wrapper";function d(e){let{components:t,...r}=e;return(0,i.kt)(u,(0,a.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"how-do-i-join-the-maintainers-team"},"How do I Join the Maintainers Team?"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Sign up for ",(0,i.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza")),(0,i.kt)("li",{parentName:"ol"},"Join ",(0,i.kt)("a",{parentName:"li",href:"https://discord.gg/gZMKK5q"},"discord"),"."),(0,i.kt)("li",{parentName:"ol"},"Prove your pizza worth!")),(0,i.kt)("h2",{id:"requirements"},"Requirements"),(0,i.kt)("p",null,"For the purpose of this tutorial, our target demo repository will be called ",(0,i.kt)("inlineCode",{parentName:"p"},"open-sauced/npx-check-engines"),"."),(0,i.kt)("p",null,"The steps described here mirror ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"open-sauced/check-engines"),"."),(0,i.kt)("p",null,"The octoherd scripts assume you have exported a programatic token similar to:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'export GH_TOKEN="ghp_Q8TZZT9ypgqw3EeABoCWPcwZBHpjZJ9hI42n"\n')),(0,i.kt)("h2",{id:"creating-a-new-repo"},"Creating a new repo"),(0,i.kt)("p",null,"Don't spend too much time thinking of a name or a catchy description, just set license to MIT and rocket jump!"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"create a new repository",src:n(1531).Z,width:"1496",height:"1698"})),(0,i.kt)("h2",{id:"syncing-settings-with-opensaucedpizza"},"Syncing settings with opensauced.pizza"),(0,i.kt)("p",null,"Squashing pull requests is the minimum requirement but the other options are quite useful at various stages of development."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"minimum merge settings",src:n(6676).Z,width:"1908",height:"1186"})),(0,i.kt)("p",null,"Copy most of the relevant settings with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx octoherd-script-sync-repo-settings \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("p",null,'Otherwise you can disable "Projects" and "Wikis" for the selected repository as we are handling them on a larger scale.'),(0,i.kt)("h2",{id:"syncing-labels-with-opensaucedpizza"},"Syncing labels with opensauced.pizza"),(0,i.kt)("p",null,"The default labels have some missing emojis. Copy the rest with:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx octoherd-script-copy-labels \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("p",null,"Then go back to your repository and delete:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"documentation"),(0,i.kt)("li",{parentName:"ul"},"\ud83d\udc40 needs-triage (green background one)"),(0,i.kt)("li",{parentName:"ul"},"other potential duplicates if the above race condition is different")),(0,i.kt)("h2",{id:"syncing-branch-protections-with-opensaucedpizza"},"Syncing branch protections with opensauced.pizza"),(0,i.kt)("p",null,'This topic is more complex but in a sense tap the main branch and enable\neverything except "Restrict who can dismiss pull request reviews" and "Restrict who can push to matching branches" in the first section.'),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"maximum merge protections",src:n(5549).Z,width:"1880",height:"1872"})),(0,i.kt)("p",null,'The "Rules applied to everyone including administrators" is more on an unused override.'),(0,i.kt)("p",null,"Most of the time this process is super manual but in the limited cases where we need this run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},'npx @octoherd/script-sync-branch-protections \\\n --template "open-sauced/open-sauced" \\\n -T $GH_TOKEN \\\n -R "open-sauced/check-engines"\n')),(0,i.kt)("h2",{id:"setting-up-workflows"},"Setting up workflows"),(0,i.kt)("p",null,"Most collaborative projects require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/compliance.yml"},"compliance flows")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/amannn/action-semantic-pull-request"},"amannn/action-semantic-pull-request")," and ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/actions/first-interaction"},"actions/first-interaction"),"."),(0,i.kt)("p",null,"Pull requests require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/triage.yml"},"triage")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/bdougie/take-action"},"bdougie/take-action"),"."),(0,i.kt)("p",null,"Most ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," projects will require ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/blob/main/.github/workflows/release.yml"},"release automation")," powered by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/semantic-release-conventional-config"},"@open-sauced/semantic-release-conventional-config"),"."),(0,i.kt)("p",null,"Other ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/tree/main/.github/workflows"},"development workflows")," are less common and opinionated towards decentralised collaboration. Use these as example backbones for your new repository."),(0,i.kt)("h2",{id:"setting-up-environments-and-secrets"},"Setting up environments and secrets"),(0,i.kt)("p",null,"As you may have noticed in the previous step or in the actions visualisations, the release workflows enable named environments."),(0,i.kt)("p",null,"These have to be manually set up, along with their secrets and branch protections."),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"create environment",src:n(4805).Z,width:"1894",height:"1738"})),(0,i.kt)("p",null,"If using ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"ghcr")," it is likely you will add a couple variables here."))}d.isMDXComponent=!0},1531:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-create-repository-019a03ca1c27a2c68c269e5c2bfdbb83.png"},4805:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-env-505e845511ddadfdd8f3ba49c44eba5b.png"},5549:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-merge-protections-86eb5e515e264396c194af7ade02e05c.png"},6676:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-maintainers-merge-settings-980ef1e3f50c9fae47edf1411924c124.png"}}]); \ No newline at end of file diff --git a/assets/js/5e0f9673.3f4cbe6c.js b/assets/js/5e0f9673.3f4cbe6c.js new file mode 100644 index 00000000..153b4343 --- /dev/null +++ b/assets/js/5e0f9673.3f4cbe6c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[938],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>g});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=a.createContext({}),p=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},l=function(e){var n=p(e.components);return a.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(t),m=i,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||r;return t?a.createElement(g,o(o({ref:n},l),{},{components:t})):a.createElement(g,o({ref:n},l))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const r={id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["@open-sauced/check-engines"]},o=void 0,s={unversionedId:"maintainers/check-engines",id:"maintainers/check-engines",title:"@open-sauced/check-engines",description:"Description",source:"@site/docs/maintainers/check-engines.md",sourceDirName:"maintainers",slug:"/maintainers/check-engines",permalink:"/maintainers/check-engines",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/check-engines.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["@open-sauced/check-engines"]},sidebar:"docs",previous:{title:"Setting up a new repository",permalink:"/maintainers/setting-up-a-new-repository"},next:{title:"@open-sauced/conventional-commit",permalink:"/maintainers/conventional-commit"}},c={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced usage",id:"advanced-usage",level:2},{value:"FAQ",id:"faq",level:2},{value:"Usage on older node and npm versions",id:"usage-on-older-node-and-npm-versions",level:3},{value:"Why not use check-engines or engine-strict",id:"why-not-use-check-engines-or-engine-strict",level:3},{value:"Library usage",id:"library-usage",level:3},{value:"Contributing",id:"contributing",level:2}],l={toc:p},d="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(d,(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/check-engines")," is designed to help contributors install dependencies conforming to the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," property in package.json."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/npm/npm-install-checks"},"npm-install-checks"))),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/check-engines\n")),(0,i.kt)("p",null,"Add the verification scripts to your ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "preinstall": "npx @open-sauced/check-engines"\n }\n}\n')),(0,i.kt)("p",null,"The reason why we provide ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,i.kt)("h2",{id:"usage"},"Usage"),(0,i.kt)("p",null,"Use your favourite package manager to install dependencies in your project or, if you set it as global verification system:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "preinstall": "npm run check-engines",\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("h2",{id:"advanced-usage"},"Advanced usage"),(0,i.kt)("p",null,"If you have an API or any other non-library type of application, you can decouple this package from any install scripts and just use it as a verification:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("p",null,"A more traditional approach not using ",(0,i.kt)("inlineCode",{parentName:"p"},"pre")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"post")," scripts, this example enables the check only for local machine development:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "start": "...",\n "dev": "npm run check-engines && npm start -- --watch"\n }\n}\n')),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"usage-on-older-node-and-npm-versions"},"Usage on older ",(0,i.kt)("inlineCode",{parentName:"h3"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," versions"),(0,i.kt)("p",null,"Older ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions won't be able to run this package, depending on versions the scripts section could be ignored completely."),(0,i.kt)("p",null,"If you have that use case, this package is only worth enabling for progressive contributors frequently missing the legacy support of the respective module and forcefully upgrading dependencies - them running newer versions will force the error message and explicitly disable."),(0,i.kt)("h3",{id:"why-not-use-check-engines-or-engine-strict"},"Why not use ",(0,i.kt)("inlineCode",{parentName:"h3"},"check-engines")," or ",(0,i.kt)("inlineCode",{parentName:"h3"},"engine-strict")),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v6/configuring-npm/package-json#enginestrict"},"engine-strict docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Prior to npm 3.0.0, this feature was used to treat this package as if the user had set engine-strict. It is no longer used.")),(0,i.kt)("p",null,"In ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," and later this was re-introduced as a ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v7/using-npm/config#engine-strict"},"config flag"),"."),(0,i.kt)("p",null,"This package is designed with multiple legacy use cases in mind."),(0,i.kt)("h3",{id:"library-usage"},"Library usage"),(0,i.kt)("p",null,"If you are using this module in a library package, be advised that any ",(0,i.kt)("inlineCode",{parentName:"p"},"*install")," script will run in the parent module when installed."),(0,i.kt)("p",null,"For example, given a module ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," with a ",(0,i.kt)("inlineCode",{parentName:"p"},'preinstall: "npx @open-sauced/check-engines"')," script, running ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install @demo-org/demo-package")," will require your locally installed ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions to match the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," section of your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," - if that is not set, nothing should happen and this package is a stray dependency in either ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," or the module you are running this command in."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"@open-sauced/check-engines")," \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/5e0f9673.95a5327e.js b/assets/js/5e0f9673.95a5327e.js deleted file mode 100644 index 2f336392..00000000 --- a/assets/js/5e0f9673.95a5327e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[938],{3905:(e,n,t)=>{t.d(n,{Zo:()=>l,kt:()=>g});var a=t(7294);function i(e,n,t){return n in e?Object.defineProperty(e,n,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[n]=t,e}function r(e,n){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);n&&(a=a.filter((function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable}))),t.push.apply(t,a)}return t}function o(e){for(var n=1;n=0||(i[t]=e[t]);return i}(e,n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(i[t]=e[t])}return i}var c=a.createContext({}),p=function(e){var n=a.useContext(c),t=n;return e&&(t="function"==typeof e?e(n):o(o({},n),e)),t},l=function(e){var n=p(e.components);return a.createElement(c.Provider,{value:n},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var n=e.children;return a.createElement(a.Fragment,{},n)}},m=a.forwardRef((function(e,n){var t=e.components,i=e.mdxType,r=e.originalType,c=e.parentName,l=s(e,["components","mdxType","originalType","parentName"]),d=p(t),m=i,g=d["".concat(c,".").concat(m)]||d[m]||u[m]||r;return t?a.createElement(g,o(o({ref:n},l),{},{components:t})):a.createElement(g,o({ref:n},l))}));function g(e,n){var t=arguments,i=n&&n.mdxType;if("string"==typeof e||i){var r=t.length,o=new Array(r);o[0]=m;var s={};for(var c in n)hasOwnProperty.call(n,c)&&(s[c]=n[c]);s.originalType=e,s[d]="string"==typeof e?e:i,o[1]=s;for(var p=2;p{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=t(7462),i=(t(7294),t(3905));const r={id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["@open-sauced/check-engines"]},o=void 0,s={unversionedId:"maintainers/check-engines",id:"maintainers/check-engines",title:"@open-sauced/check-engines",description:"Description",source:"@site/docs/maintainers/check-engines.md",sourceDirName:"maintainers",slug:"/maintainers/check-engines",permalink:"/maintainers/check-engines",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/maintainers/check-engines.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"check-engines",title:"@open-sauced/check-engines",sidebar_label:"@open-sauced/check-engines",keywords:["@open-sauced/check-engines"]},sidebar:"docs",previous:{title:"Setting up a new repository",permalink:"/maintainers/setting-up-a-new-repository"},next:{title:"@open-sauced/conventional-commit",permalink:"/maintainers/conventional-commit"}},c={},p=[{value:"Description",id:"description",level:2},{value:"Dependencies",id:"dependencies",level:2},{value:"Installation",id:"installation",level:2},{value:"Usage",id:"usage",level:2},{value:"Advanced usage",id:"advanced-usage",level:2},{value:"FAQ",id:"faq",level:2},{value:"Usage on older node and npm versions",id:"usage-on-older-node-and-npm-versions",level:3},{value:"Why not use check-engines or engine-strict",id:"why-not-use-check-engines-or-engine-strict",level:3},{value:"Library usage",id:"library-usage",level:3},{value:"Contributing",id:"contributing",level:2}],l={toc:p},d="wrapper";function u(e){let{components:n,...t}=e;return(0,i.kt)(d,(0,a.Z)({},l,t,{components:n,mdxType:"MDXLayout"}),(0,i.kt)("h2",{id:"description"},"Description"),(0,i.kt)("p",null,"The ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," package ",(0,i.kt)("inlineCode",{parentName:"p"},"@open-sauced/check-engines")," is designed to help contributors install dependencies conforming to the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," property in package.json."),(0,i.kt)("h2",{id:"dependencies"},"Dependencies"),(0,i.kt)("p",null,"This package uses the following modules:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},(0,i.kt)("a",{parentName:"li",href:"https://github.com/npm/npm-install-checks"},"npm-install-checks"))),(0,i.kt)("h2",{id:"installation"},"Installation"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm install --save-dev @open-sauced/check-engines\n")),(0,i.kt)("p",null,"Add the verification scripts to your ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section in the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "preinstall": "npx @open-sauced/check-engines"\n }\n}\n')),(0,i.kt)("p",null,"The reason why we provide ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," in the ",(0,i.kt)("inlineCode",{parentName:"p"},"scripts")," section is for the people using this as a development enhancement, interactive configurations or trimmed dependency trees, where using ",(0,i.kt)("inlineCode",{parentName:"p"},"npx")," is preferred over installing all the dependencies at once."),(0,i.kt)("h2",{id:"usage"},"Usage"),(0,i.kt)("p",null,"Use your favourite package manager to install dependencies in your project or, if you set it as global verification system:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "preinstall": "npm run check-engines",\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("h2",{id:"advanced-usage"},"Advanced usage"),(0,i.kt)("p",null,"If you have an API or any other non-library type of application, you can decouple this package from any install scripts and just use it as a verification:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "prestart": "npm run check-engines"\n }\n}\n')),(0,i.kt)("p",null,"A more traditional approach not using ",(0,i.kt)("inlineCode",{parentName:"p"},"pre")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"post")," scripts, this example enables the check only for local machine development:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-json"},'{\n "scripts": {\n "check-engines": "npx @open-sauced/check-engines"\n "start": "...",\n "dev": "npm run check-engines && npm start -- --watch"\n }\n}\n')),(0,i.kt)("h2",{id:"faq"},"FAQ"),(0,i.kt)("h3",{id:"usage-on-older-node-and-npm-versions"},"Usage on older ",(0,i.kt)("inlineCode",{parentName:"h3"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"h3"},"npm")," versions"),(0,i.kt)("p",null,"Older ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions won't be able to run this package, depending on versions the scripts section could be ignored completely."),(0,i.kt)("p",null,"If you have that use case, this package is only worth enabling for progressive contributors frequently missing the legacy support of the respective module and forcefully upgrading dependencies - them running newer versions will force the error message and explicitly disable."),(0,i.kt)("h3",{id:"why-not-use-check-engines-or-engine-strict"},"Why not use ",(0,i.kt)("inlineCode",{parentName:"h3"},"check-engines")," or ",(0,i.kt)("inlineCode",{parentName:"h3"},"engine-strict")),(0,i.kt)("p",null,"As described in the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v6/configuring-npm/package-json#enginestrict"},"engine-strict docs"),":"),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},"Prior to npm 3.0.0, this feature was used to treat this package as if the user had set engine-strict. It is no longer used.")),(0,i.kt)("p",null,"In ",(0,i.kt)("inlineCode",{parentName:"p"},"npm@6")," and later this was re-introduced as a ",(0,i.kt)("a",{parentName:"p",href:"https://docs.npmjs.com/cli/v7/using-npm/config#engine-strict"},"config flag"),"."),(0,i.kt)("p",null,"This package is designed with multiple legacy use cases in mind."),(0,i.kt)("h3",{id:"library-usage"},"Library usage"),(0,i.kt)("p",null,"If you are using this module in a library package, be advised that any ",(0,i.kt)("inlineCode",{parentName:"p"},"*install")," script will run in the parent module when installed."),(0,i.kt)("p",null,"For example, given a module ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," with a ",(0,i.kt)("inlineCode",{parentName:"p"},'preinstall: "npx @open-sauced/check-engines"')," script, running ",(0,i.kt)("inlineCode",{parentName:"p"},"npm install @demo-org/demo-package")," will require your locally installed ",(0,i.kt)("inlineCode",{parentName:"p"},"node")," and ",(0,i.kt)("inlineCode",{parentName:"p"},"npm")," versions to match the ",(0,i.kt)("inlineCode",{parentName:"p"},"engines")," section of your ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," - if that is not set, nothing should happen and this package is a stray dependency in either ",(0,i.kt)("inlineCode",{parentName:"p"},"@demo-org/demo-package")," or the module you are running this command in."),(0,i.kt)("h2",{id:"contributing"},"Contributing"),(0,i.kt)("p",null,"We're always happy to onboard people into open source!"),(0,i.kt)("p",null,"Check out the repository at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/check-engines"},"@open-sauced/check-engines")," \u2764\ufe0f"))}u.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6308756d.bd837528.js b/assets/js/6308756d.bd837528.js deleted file mode 100644 index 8029de31..00000000 --- a/assets/js/6308756d.bd837528.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[461],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),u=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=i,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return n?o.createElement(h,a(a({ref:t},p),{},{components:n})):o.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,a[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=n(7462),i=(n(7294),n(3905));const r={id:"introduction-to-contributing",title:"Introduction to contributing",sidebar_label:"Introduction to contributing",keywords:["introduction to contributing"]},a=void 0,s={unversionedId:"contributing/introduction-to-contributing",id:"contributing/introduction-to-contributing",title:"Introduction to contributing",description:"Contributions are always welcome, no matter how large or small. Before contributing,",source:"@site/docs/contributing/introduction-to-contributing.md",sourceDirName:"contributing",slug:"/contributing/introduction-to-contributing",permalink:"/contributing/introduction-to-contributing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/introduction-to-contributing.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-contributing",title:"Introduction to contributing",sidebar_label:"Introduction to contributing",keywords:["introduction to contributing"]},sidebar:"docs",previous:{title:"View your favorite projects in the Insight pages",permalink:"/community/insight-pages"},next:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"}},l={},u=[{value:"Recommended communication style",id:"recommended-communication-style",level:2},{value:"Setup",id:"setup",level:2},{value:"Building",id:"building",level:2},{value:"Testing",id:"testing",level:2},{value:"Applying Lint Styleguide",id:"applying-lint-styleguide",level:2},{value:"Pull requests",id:"pull-requests",level:2},{value:"PR validation",id:"pr-validation",level:3},{value:"Work in progress",id:"work-in-progress",level:3},{value:"Issues",id:"issues",level:2},{value:"Triage team",id:"triage-team",level:2},{value:"Funding",id:"funding",level:2},{value:"Community",id:"community",level:2},{value:"Coding tips",id:"coding-tips",level:2},{value:"License",id:"license",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Contributions are always welcome, no matter how large or small. Before contributing,\nplease read the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"code of conduct"),"."),(0,i.kt)("p",null,"Some thoughts to help you contribute to this project"),(0,i.kt)("h2",{id:"recommended-communication-style"},"Recommended communication style"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Always leave screenshots for visuals changes"),(0,i.kt)("li",{parentName:"ol"},"Always leave a detailed description in the Pull Request. Leave nothing ambiguous for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always review your code first. Do this by leaving comments in your coding noting questions, or interesting things for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always communicate. Whether it is in the issue or the pull request, keeping the lines of communication helps everyone around you.")),(0,i.kt)("h2",{id:"setup"},"Setup"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"Fork")," one of the repositories from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"github/open-sauced")," to your own GitHub account."),(0,i.kt)("li",{parentName:"ol"},"Clone the forked repository to your local machine."),(0,i.kt)("li",{parentName:"ol"},"Run ",(0,i.kt)("inlineCode",{parentName:"li"},"npm ci")," to install the dependencies and set up the project.")),(0,i.kt)("p",null,"You can also use the shell commands below to get started once you have forked the repository.\nMake sure to replace ",(0,i.kt)("inlineCode",{parentName:"p"},"")," with your GitHub username."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com//open-sauced\ncd open-sauced\nnpm ci\n")),(0,i.kt)("h2",{id:"building"},"Building"),(0,i.kt)("p",null,"To generate a production-ready version of your code, run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run build\n")),(0,i.kt)("h2",{id:"testing"},"Testing"),(0,i.kt)("p",null,"For running the test suite, use the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# the tests will run in watch mode by default\nnpm test\n")),(0,i.kt)("p",null,"Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to ",(0,i.kt)("a",{parentName:"p",href:"https://facebook.github.io/watchman/docs/install.html"},"install watchman"),"."),(0,i.kt)("p",null,"For more info on testing React and JavaScript, check out this course ",(0,i.kt)("a",{parentName:"p",href:"https://testingjavascript.com/"},"Testing JavaScript")),(0,i.kt)("h2",{id:"applying-lint-styleguide"},"Applying Lint Styleguide"),(0,i.kt)("p",null,"To check the code for formatting and linting errors, run the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run lint\n")),(0,i.kt)("p",null,"These errors will also be displayed during development, but won't prevent the code from compiling."),(0,i.kt)("p",null,"To fix the formatting and linting errors, run the following command instead:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run format\n")),(0,i.kt)("p",null,"These commands use ",(0,i.kt)("a",{parentName:"p",href:"https://eslint.org/"},"ESLint")," to check and fix the code."),(0,i.kt)("p",null,"The automated PR checks will also run these commands, and the PR will be blocked if there are any errors, so it's a good idea to run them before submitting a PR."),(0,i.kt)("h2",{id:"pull-requests"},"Pull requests"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"We actively welcome your pull requests, however linking your work to an existing issue is preferred."))),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Fork the repo and create your branch from the default branch."),(0,i.kt)("li",{parentName:"ol"},"Name your branch something that is descriptive to the work you are doing. i.e. adds-new-thing or fixes-mobile"),(0,i.kt)("li",{parentName:"ol"},"If you've added code that should be tested, add tests."),(0,i.kt)("li",{parentName:"ol"},"If you've changed APIs, update the documentation."),(0,i.kt)("li",{parentName:"ol"},"If you make visual changes, screenshots are required."),(0,i.kt)("li",{parentName:"ol"},"Ensure the test suite passes."),(0,i.kt)("li",{parentName:"ol"},"Make sure you address any lint warnings."),(0,i.kt)("li",{parentName:"ol"},"If you make the existing code better, please let us know in your PR description."),(0,i.kt)("li",{parentName:"ol"},'A PR description and title are required. The title is required to begin with: "feat:" or "fix:"'),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://help.github.com/en/github/writing-on-github/autolinked-references-and-urls"},"Link to an issue")," in the project. Unsolicited code is welcomed, but an issue is required for an announcement your intentions. PR's without a linked issue will be marked invalid and closed.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"note for maintainers: All pull requests need a label to assist automation. See the ",(0,i.kt)("a",{parentName:"em",href:"https://github.com/open-sauced/open-sauced/blob/HEAD/.github/release-drafter.yml"},"template")," to guide which labels to use.")),(0,i.kt)("h3",{id:"pr-validation"},"PR validation"),(0,i.kt)("p",null,"Examples for valid PR titles:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fix: Correct typo."),(0,i.kt)("li",{parentName:"ul"},"feat: Add support for Node 12."),(0,i.kt)("li",{parentName:"ul"},"refactor!: Drop support for Node 6.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note that since PR titles only have a single line, you have to use the ! syntax for breaking changes.")),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"Conventional Commits")," for more examples."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},(0,i.kt)("a",{parentName:"em",href:"https://youtu.be/cuMeC-eZJJ4"},"3 tips for getting your Pull Request reviewed"))),(0,i.kt)("p",null,"You can also experiment with conventional commits by doing:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run push\n")),(0,i.kt)("p",null,"Using the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push")," command is an interactive replacement for ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit"),". It enforces the conventional commits specification for writing commit messages, making it easier for developers and maintainers to understand the changes made in a particular commit."),(0,i.kt)("p",null,"Assuming you are dealing with code changes and you add them using ",(0,i.kt)("inlineCode",{parentName:"p"},"git add"),", once you are ready to commit, there are 2 ways we can proceed: ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push"),". The second method is preferred, as doing a subsequent ",(0,i.kt)("inlineCode",{parentName:"p"},"git push")," and then opening a PR would ensure the title is conforming to our standards."),(0,i.kt)("h3",{id:"work-in-progress"},"Work in progress"),(0,i.kt)("p",null,"GitHub has support for draft pull requests, which will disable the merge button until the PR is marked as ready for merge."),(0,i.kt)("h2",{id:"issues"},"Issues"),(0,i.kt)("p",null,"If you wish to work on an open issue, please comment on the issue with ",(0,i.kt)("inlineCode",{parentName:"p"},".take")," and it will be assigned to you. If an issue is not assigned, it is assumed to be open for anyone to work on. Please assign yourself to an issue before beginning work on it to avoid conflicts."),(0,i.kt)("p",null,"If you are contributing to the project for the first time, please consider checking the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/hot/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%90%9B+bug%22"},"bug")," or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/hot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"},"good first issue")," labels."),(0,i.kt)("p",null,"In case you get stuck, please feel free to ask for help in the ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord")," server or GitHub Discussions."),(0,i.kt)("p",null,"Please note that we have a ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"code of conduct"),", please follow it in all your interactions with the project and it's contributors."),(0,i.kt)("h2",{id:"triage-team"},"Triage team"),(0,i.kt)("p",null,"The Triage team is inspired by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/expressjs/express/blob/HEAD/Triager-Guide.md"},"expressjs/express"),". This team exists to create a path for making contributions to this project and open source. All Triage Team members are expected to follow this guide: ",(0,i.kt)("a",{parentName:"p",href:"/contributing/triage-guide"},"TRIAGE_GUIDE.md")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("strong",{parentName:"p"},"There are no minimum requirements to become a member of the Triage Team."))),(0,i.kt)("p",null,"For those interested in getting involved in the project or just open source in general, please request an invite to the Triage Team in ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/discussions/638"},"this discussion.")),(0,i.kt)("h2",{id:"funding"},"Funding"),(0,i.kt)("p",null,"OpenSauced is a part of GitHub Sponsors. If you would like to contribute, please note the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/sponsors/open-sauced"},"sponsor page")," for details on how funds are distributed. If you have made any contributions to the project directly or indirectly, please consider adding your profile to the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/.github/blob/main/FUNDING.yml"},"FUNDING.yml"),"."),(0,i.kt)("h2",{id:"community"},"Community"),(0,i.kt)("p",null,"Do you have questions? Join the conversation in our ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("h2",{id:"coding-tips"},"Coding tips"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Ask questions if you are stuck."),(0,i.kt)("li",{parentName:"ul"},"Use ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/open-sauced/blob/HEAD/src/styles/variables.js"},"CSS variables")),(0,i.kt)("li",{parentName:"ul"},"Always use ",(0,i.kt)("a",{parentName:"li",href:"https://web.dev/external-anchors-use-rel-noopener/"},'rel="noreferrer" on all target="',"_",'blank" links'),".")),(0,i.kt)("h2",{id:"license"},"License"),(0,i.kt)("p",null,"By contributing to the OpenSauced project, you agree that your contributions will be licensed\nunder its ",(0,i.kt)("a",{parentName:"p",href:"https://raw.githubusercontent.com/open-sauced/open-sauced/main/LICENSE"},"MIT license"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/6308756d.c2f3a124.js b/assets/js/6308756d.c2f3a124.js new file mode 100644 index 00000000..fdafec5a --- /dev/null +++ b/assets/js/6308756d.c2f3a124.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[461],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var o=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function r(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var l=o.createContext({}),u=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=u(e.components);return o.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var n=e.components,i=e.mdxType,r=e.originalType,l=e.parentName,p=s(e,["components","mdxType","originalType","parentName"]),c=u(n),m=i,h=c["".concat(l,".").concat(m)]||c[m]||d[m]||r;return n?o.createElement(h,a(a({ref:t},p),{},{components:n})):o.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var r=n.length,a=new Array(r);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:i,a[1]=s;for(var u=2;u{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>u});var o=n(7462),i=(n(7294),n(3905));const r={id:"introduction-to-contributing",title:"Introduction to contributing",sidebar_label:"Introduction to contributing",keywords:["introduction to contributing"]},a=void 0,s={unversionedId:"contributing/introduction-to-contributing",id:"contributing/introduction-to-contributing",title:"Introduction to contributing",description:"Contributions are always welcome, no matter how large or small. Before contributing,",source:"@site/docs/contributing/introduction-to-contributing.md",sourceDirName:"contributing",slug:"/contributing/introduction-to-contributing",permalink:"/contributing/introduction-to-contributing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/introduction-to-contributing.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-contributing",title:"Introduction to contributing",sidebar_label:"Introduction to contributing",keywords:["introduction to contributing"]},sidebar:"docs",previous:{title:"FAQS",permalink:"/community/faqs"},next:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"}},l={},u=[{value:"Recommended communication style",id:"recommended-communication-style",level:2},{value:"Setup",id:"setup",level:2},{value:"Building",id:"building",level:2},{value:"Testing",id:"testing",level:2},{value:"Applying Lint Styleguide",id:"applying-lint-styleguide",level:2},{value:"Pull requests",id:"pull-requests",level:2},{value:"PR validation",id:"pr-validation",level:3},{value:"Work in progress",id:"work-in-progress",level:3},{value:"Issues",id:"issues",level:2},{value:"Triage team",id:"triage-team",level:2},{value:"Funding",id:"funding",level:2},{value:"Community",id:"community",level:2},{value:"Coding tips",id:"coding-tips",level:2},{value:"License",id:"license",level:2}],p={toc:u},c="wrapper";function d(e){let{components:t,...n}=e;return(0,i.kt)(c,(0,o.Z)({},p,n,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Contributions are always welcome, no matter how large or small. Before contributing,\nplease read the ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"code of conduct"),"."),(0,i.kt)("p",null,"Some thoughts to help you contribute to this project"),(0,i.kt)("h2",{id:"recommended-communication-style"},"Recommended communication style"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Always leave screenshots for visuals changes"),(0,i.kt)("li",{parentName:"ol"},"Always leave a detailed description in the Pull Request. Leave nothing ambiguous for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always review your code first. Do this by leaving comments in your coding noting questions, or interesting things for the reviewer."),(0,i.kt)("li",{parentName:"ol"},"Always communicate. Whether it is in the issue or the pull request, keeping the lines of communication helps everyone around you.")),(0,i.kt)("h2",{id:"setup"},"Setup"),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://docs.github.com/en/get-started/quickstart/fork-a-repo"},"Fork")," one of the repositories from ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced"},"github/open-sauced")," to your own GitHub account."),(0,i.kt)("li",{parentName:"ol"},"Clone the forked repository to your local machine."),(0,i.kt)("li",{parentName:"ol"},"Run ",(0,i.kt)("inlineCode",{parentName:"li"},"npm ci")," to install the dependencies and set up the project.")),(0,i.kt)("p",null,"You can also use the shell commands below to get started once you have forked the repository.\nMake sure to replace ",(0,i.kt)("inlineCode",{parentName:"p"},"")," with your GitHub username."),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone https://github.com//open-sauced\ncd open-sauced\nnpm ci\n")),(0,i.kt)("h2",{id:"building"},"Building"),(0,i.kt)("p",null,"To generate a production-ready version of your code, run:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run build\n")),(0,i.kt)("h2",{id:"testing"},"Testing"),(0,i.kt)("p",null,"For running the test suite, use the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# the tests will run in watch mode by default\nnpm test\n")),(0,i.kt)("p",null,"Since the tests run in watch mode by default, some users may encounter errors about too many files being open. In this case, it may be beneficial to ",(0,i.kt)("a",{parentName:"p",href:"https://facebook.github.io/watchman/docs/install.html"},"install watchman"),"."),(0,i.kt)("p",null,"For more info on testing React and JavaScript, check out this course ",(0,i.kt)("a",{parentName:"p",href:"https://testingjavascript.com/"},"Testing JavaScript")),(0,i.kt)("h2",{id:"applying-lint-styleguide"},"Applying Lint Styleguide"),(0,i.kt)("p",null,"To check the code for formatting and linting errors, run the following command:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run lint\n")),(0,i.kt)("p",null,"These errors will also be displayed during development, but won't prevent the code from compiling."),(0,i.kt)("p",null,"To fix the formatting and linting errors, run the following command instead:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run format\n")),(0,i.kt)("p",null,"These commands use ",(0,i.kt)("a",{parentName:"p",href:"https://eslint.org/"},"ESLint")," to check and fix the code."),(0,i.kt)("p",null,"The automated PR checks will also run these commands, and the PR will be blocked if there are any errors, so it's a good idea to run them before submitting a PR."),(0,i.kt)("h2",{id:"pull-requests"},"Pull requests"),(0,i.kt)("p",null,(0,i.kt)("strong",{parentName:"p"},(0,i.kt)("em",{parentName:"strong"},"We actively welcome your pull requests, however linking your work to an existing issue is preferred."))),(0,i.kt)("ol",null,(0,i.kt)("li",{parentName:"ol"},"Fork the repo and create your branch from the default branch."),(0,i.kt)("li",{parentName:"ol"},"Name your branch something that is descriptive to the work you are doing. i.e. adds-new-thing or fixes-mobile"),(0,i.kt)("li",{parentName:"ol"},"If you've added code that should be tested, add tests."),(0,i.kt)("li",{parentName:"ol"},"If you've changed APIs, update the documentation."),(0,i.kt)("li",{parentName:"ol"},"If you make visual changes, screenshots are required."),(0,i.kt)("li",{parentName:"ol"},"Ensure the test suite passes."),(0,i.kt)("li",{parentName:"ol"},"Make sure you address any lint warnings."),(0,i.kt)("li",{parentName:"ol"},"If you make the existing code better, please let us know in your PR description."),(0,i.kt)("li",{parentName:"ol"},'A PR description and title are required. The title is required to begin with: "feat:" or "fix:"'),(0,i.kt)("li",{parentName:"ol"},(0,i.kt)("a",{parentName:"li",href:"https://help.github.com/en/github/writing-on-github/autolinked-references-and-urls"},"Link to an issue")," in the project. Unsolicited code is welcomed, but an issue is required for an announcement your intentions. PR's without a linked issue will be marked invalid and closed.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"note for maintainers: All pull requests need a label to assist automation. See the ",(0,i.kt)("a",{parentName:"em",href:"https://github.com/open-sauced/open-sauced/blob/HEAD/.github/release-drafter.yml"},"template")," to guide which labels to use.")),(0,i.kt)("h3",{id:"pr-validation"},"PR validation"),(0,i.kt)("p",null,"Examples for valid PR titles:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fix: Correct typo."),(0,i.kt)("li",{parentName:"ul"},"feat: Add support for Node 12."),(0,i.kt)("li",{parentName:"ul"},"refactor!: Drop support for Node 6.")),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},"Note that since PR titles only have a single line, you have to use the ! syntax for breaking changes.")),(0,i.kt)("p",null,"See ",(0,i.kt)("a",{parentName:"p",href:"https://www.conventionalcommits.org/en/v1.0.0/"},"Conventional Commits")," for more examples."),(0,i.kt)("p",null,(0,i.kt)("em",{parentName:"p"},(0,i.kt)("a",{parentName:"em",href:"https://youtu.be/cuMeC-eZJJ4"},"3 tips for getting your Pull Request reviewed"))),(0,i.kt)("p",null,"You can also experiment with conventional commits by doing:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"npm run push\n")),(0,i.kt)("p",null,"Using the ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push")," command is an interactive replacement for ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit"),". It enforces the conventional commits specification for writing commit messages, making it easier for developers and maintainers to understand the changes made in a particular commit."),(0,i.kt)("p",null,"Assuming you are dealing with code changes and you add them using ",(0,i.kt)("inlineCode",{parentName:"p"},"git add"),", once you are ready to commit, there are 2 ways we can proceed: ",(0,i.kt)("inlineCode",{parentName:"p"},"git commit")," or ",(0,i.kt)("inlineCode",{parentName:"p"},"npm run push"),". The second method is preferred, as doing a subsequent ",(0,i.kt)("inlineCode",{parentName:"p"},"git push")," and then opening a PR would ensure the title is conforming to our standards."),(0,i.kt)("h3",{id:"work-in-progress"},"Work in progress"),(0,i.kt)("p",null,"GitHub has support for draft pull requests, which will disable the merge button until the PR is marked as ready for merge."),(0,i.kt)("h2",{id:"issues"},"Issues"),(0,i.kt)("p",null,"If you wish to work on an open issue, please comment on the issue with ",(0,i.kt)("inlineCode",{parentName:"p"},".take")," and it will be assigned to you. If an issue is not assigned, it is assumed to be open for anyone to work on. Please assign yourself to an issue before beginning work on it to avoid conflicts."),(0,i.kt)("p",null,"If you are contributing to the project for the first time, please consider checking the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/hot/issues?q=is%3Aissue+is%3Aopen+label%3A%22%F0%9F%90%9B+bug%22"},"bug")," or ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/hot/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"},"good first issue")," labels."),(0,i.kt)("p",null,"In case you get stuck, please feel free to ask for help in the ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord")," server or GitHub Discussions."),(0,i.kt)("p",null,"Please note that we have a ",(0,i.kt)("a",{parentName:"p",href:"/contributing/code-of-conduct"},"code of conduct"),", please follow it in all your interactions with the project and it's contributors."),(0,i.kt)("h2",{id:"triage-team"},"Triage team"),(0,i.kt)("p",null,"The Triage team is inspired by ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/expressjs/express/blob/HEAD/Triager-Guide.md"},"expressjs/express"),". This team exists to create a path for making contributions to this project and open source. All Triage Team members are expected to follow this guide: ",(0,i.kt)("a",{parentName:"p",href:"/contributing/triage-guide"},"TRIAGE_GUIDE.md")),(0,i.kt)("blockquote",null,(0,i.kt)("p",{parentName:"blockquote"},(0,i.kt)("strong",{parentName:"p"},"There are no minimum requirements to become a member of the Triage Team."))),(0,i.kt)("p",null,"For those interested in getting involved in the project or just open source in general, please request an invite to the Triage Team in ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/discussions/638"},"this discussion.")),(0,i.kt)("h2",{id:"funding"},"Funding"),(0,i.kt)("p",null,"OpenSauced is a part of GitHub Sponsors. If you would like to contribute, please note the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/sponsors/open-sauced"},"sponsor page")," for details on how funds are distributed. If you have made any contributions to the project directly or indirectly, please consider adding your profile to the ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/.github/blob/main/FUNDING.yml"},"FUNDING.yml"),"."),(0,i.kt)("h2",{id:"community"},"Community"),(0,i.kt)("p",null,"Do you have questions? Join the conversation in our ",(0,i.kt)("a",{parentName:"p",href:"https://discord.gg/U2peSNf23P"},"Discord"),"."),(0,i.kt)("h2",{id:"coding-tips"},"Coding tips"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"Ask questions if you are stuck."),(0,i.kt)("li",{parentName:"ul"},"Use ",(0,i.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/open-sauced/blob/HEAD/src/styles/variables.js"},"CSS variables")),(0,i.kt)("li",{parentName:"ul"},"Always use ",(0,i.kt)("a",{parentName:"li",href:"https://web.dev/external-anchors-use-rel-noopener/"},'rel="noreferrer" on all target="',"_",'blank" links'),".")),(0,i.kt)("h2",{id:"license"},"License"),(0,i.kt)("p",null,"By contributing to the OpenSauced project, you agree that your contributions will be licensed\nunder its ",(0,i.kt)("a",{parentName:"p",href:"https://raw.githubusercontent.com/open-sauced/open-sauced/main/LICENSE"},"MIT license"),"."))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/86961ba5.f0e8cfbd.js b/assets/js/86961ba5.f0e8cfbd.js new file mode 100644 index 00000000..525df118 --- /dev/null +++ b/assets/js/86961ba5.f0e8cfbd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[330],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function s(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):s(s({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},l="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},m=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=a(e,["components","mdxType","originalType","parentName"]),l=p(n),m=o,g=l["".concat(c,".").concat(m)]||l[m]||d[m]||i;return n?r.createElement(g,s(s({ref:t},u),{},{components:n})):r.createElement(g,s({ref:t},u))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,s=new Array(i);s[0]=m;var a={};for(var c in t)hasOwnProperty.call(t,c)&&(a[c]=t[c]);a.originalType=e,a[l]="string"==typeof e?e:o,s[1]=a;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>d,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"insights",title:"Insights into open source projects",sidebar_label:"Insights",keywords:["insights"]},s=void 0,a={unversionedId:"community/insights",id:"community/insights",title:"Insights into open source projects",description:"The Insights feature is where you pick and view the repositories that you often contribute to. It's a great way to stay updated on their growth.",source:"@site/docs/community/insights.md",sourceDirName:"community",slug:"/community/insights",permalink:"/community/insights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/insights.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"insights",title:"Insights into open source projects",sidebar_label:"Insights",keywords:["insights"]},sidebar:"docs",previous:{title:"Highlights",permalink:"/community/highlights"},next:{title:"FAQS",permalink:"/community/faqs"}},c={},p=[],u={toc:p},l="wrapper";function d(e){let{components:t,...i}=e;return(0,o.kt)(l,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Insights feature is where you pick and view the repositories that you often contribute to. It's a great way to stay updated on their growth."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"insight-pages-demo",src:n(7220).Z,width:"960",height:"543"})),(0,o.kt)("p",null,"Craving for more? Check out the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/05-how-to-contribute-to-open-source.md#discovering-open-source-with-opensauced"},"Discovering Open-Source with OpenSauced")," section in our free beginner course on open source."))}d.isMDXComponent=!0},7220:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"}}]); \ No newline at end of file diff --git a/assets/js/88e6cb4a.10b12c03.js b/assets/js/88e6cb4a.10b12c03.js deleted file mode 100644 index 0a7e4c2e..00000000 --- a/assets/js/88e6cb4a.10b12c03.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[710],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>g});var n=i(7294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(i),m=r,g=p["".concat(l,".").concat(m)]||p[m]||c[m]||o;return i?n.createElement(g,a(a({ref:t},d),{},{components:i})):n.createElement(g,a({ref:t},d))}));function g(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=i.length,a=new Array(o);a[0]=m;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,a[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var n=i(7462),r=(i(7294),i(3905));const o={id:"triage-guide",title:"Triage guide",sidebar_label:"Triage guide",keywords:["triage guide"]},a=void 0,s={unversionedId:"contributing/triage-guide",id:"contributing/triage-guide",title:"Triage guide",description:"How do I join the triage team?",source:"@site/docs/contributing/triage-guide.md",sourceDirName:"contributing",slug:"/contributing/triage-guide",permalink:"/contributing/triage-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/triage-guide.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"triage-guide",title:"Triage guide",sidebar_label:"Triage guide",keywords:["triage guide"]},sidebar:"docs",previous:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"},next:{title:"Set up Authentication",permalink:"/contributing/set-up-authentication"}},l={},u=[{value:"How do I join the triage team?",id:"how-do-i-join-the-triage-team",level:2},{value:"Issue triage process",id:"issue-triage-process",level:2},{value:"Approaches and best practices for getting into triage contributions",id:"approaches-and-best-practices-for-getting-into-triage-contributions",level:2},{value:"Labeling good first issues",id:"labeling-good-first-issues",level:2},{value:"Removal of triage role",id:"removal-of-triage-role",level:2},{value:"Other helpful hints:",id:"other-helpful-hints",level:2}],d={toc:u},p="wrapper";function c(e){let{components:t,...i}=e;return(0,r.kt)(p,(0,n.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"how-do-i-join-the-triage-team"},"How do I join the triage team?"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Sign up for ",(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza")),(0,r.kt)("li",{parentName:"ol"},"Leave a reply in the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/open-sauced/discussions/638"},"invite discussion"),".")),(0,r.kt)("h2",{id:"issue-triage-process"},"Issue triage process"),(0,r.kt)("p",null,"When a new issue or pull request is opened the issue will be labeled with ",(0,r.kt)("inlineCode",{parentName:"p"},"needs triage"),". If a triage team member is available they can help make sure all the required information is provided. Depending on the issue or PR there are several next labels they can add for further classification:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"needs triage"),": This can be kept if the triager is unsure which next steps to take"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awaiting more info"),": If more info has been requested from the author, apply this label."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"question"),": User questions that do not appear to be bugs or enhancements."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"discuss"),": Topics for discussion. Might end in an ",(0,r.kt)("inlineCode",{parentName:"li"},"enhancement")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"question")," label."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"bug"),": Issues that present a reasonable conviction there is a reproducible bug."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"enhancement"),": Issues that are found to be a reasonable candidate feature additions.")),(0,r.kt)("p",null,"In all cases, issues may be closed by maintainers if they don't receive a timely response when further information is sought, or when additional questions are asked."),(0,r.kt)("h2",{id:"approaches-and-best-practices-for-getting-into-triage-contributions"},"Approaches and best practices for getting into triage contributions"),(0,r.kt)("p",null,"Review the project's contribution guideline if present. In a nutshell, commit to the community's standards and values. Review the documentation, for most of the projects it is just the README.md, and make sure you understand the key APIs, semantics, configurations, and use cases."),(0,r.kt)("p",null,"It might be helpful to write your own test apps to re-affirm your understanding of the key functions. This may identify some gaps in documentation, record those as they might be good PR's to open. Skim through the issue backlog; identify low hanging issues and mostly new ones. From those, attempt to recreate issues based on the OP description and ask questions if required. No question is a bad question!"),(0,r.kt)("h2",{id:"labeling-good-first-issues"},"Labeling good first issues"),(0,r.kt)("p",null,"Issues labeled as ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," represent a curated list of easy contributions for new contributors. These issues are meant to help folks make their first contribution to open-source and should not require an excessive amount of research or triaging on the contributor's part."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"All good first issues should include one or more of the following: a solution, a suggestion for a solution, links to components, or in which issue occurs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Issues that ",(0,r.kt)("inlineCode",{parentName:"li"},"needs triage")," cannot be labeled as ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issues"),"."),(0,r.kt)("li",{parentName:"ul"},"It is better to have no ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issue")," labeled issues than to have a ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issue")," confusing enough to deter a contributor from contributing.")),(0,r.kt)("h2",{id:"removal-of-triage-role"},"Removal of triage role"),(0,r.kt)("p",null,"There are a few cases where members can be removed as triagers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Breaking the ",(0,r.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"CoC")," or ",(0,r.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"project contributor guidelines")),(0,r.kt)("li",{parentName:"ul"},"Abuse or misuse of the role as deemed by the TC"),(0,r.kt)("li",{parentName:"ul"},"Lack of participation for more than 6 months")),(0,r.kt)("p",null,"If any of these happen we will discuss as a part of the triage portion of the regular TC meetings. If you have questions feel free to reach out to any of the TC members."),(0,r.kt)("h2",{id:"other-helpful-hints"},"Other helpful hints:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When reviewing the list of open issues there are some common types and suggested actions:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"New/unattended issues or simple questions: A good place to start"),(0,r.kt)("li",{parentName:"ul"},"Hard bugs & ongoing discussions: always feel free to chime in and help"),(0,r.kt)("li",{parentName:"ul"},"Issues that imply gaps in documentation: open PRs with changes or help the user to do so"))),(0,r.kt)("li",{parentName:"ul"},"For recurring issues, it is helpful to create functional examples to demonstrate (publish as gists or a repo)"),(0,r.kt)("li",{parentName:"ul"},"Review and identify the maintainers. If necessary, at-mention one or more of them if you are unsure what to do"),(0,r.kt)("li",{parentName:"ul"},"Make sure all your interactions are professional, welcoming and respectful to the parties involved.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/88e6cb4a.a80b0fab.js b/assets/js/88e6cb4a.a80b0fab.js new file mode 100644 index 00000000..4f46ed37 --- /dev/null +++ b/assets/js/88e6cb4a.a80b0fab.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[710],{3905:(e,t,i)=>{i.d(t,{Zo:()=>d,kt:()=>m});var n=i(7294);function r(e,t,i){return t in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t){var i=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),i.push.apply(i,n)}return i}function a(e){for(var t=1;t=0||(r[i]=e[i]);return r}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,i)&&(r[i]=e[i])}return r}var l=n.createContext({}),u=function(e){var t=n.useContext(l),i=t;return e&&(i="function"==typeof e?e(t):a(a({},t),e)),i},d=function(e){var t=u(e.components);return n.createElement(l.Provider,{value:t},e.children)},p="mdxType",c={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},g=n.forwardRef((function(e,t){var i=e.components,r=e.mdxType,o=e.originalType,l=e.parentName,d=s(e,["components","mdxType","originalType","parentName"]),p=u(i),g=r,m=p["".concat(l,".").concat(g)]||p[g]||c[g]||o;return i?n.createElement(m,a(a({ref:t},d),{},{components:i})):n.createElement(m,a({ref:t},d))}));function m(e,t){var i=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var o=i.length,a=new Array(o);a[0]=g;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[p]="string"==typeof e?e:r,a[1]=s;for(var u=2;u{i.r(t),i.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>c,frontMatter:()=>o,metadata:()=>s,toc:()=>u});var n=i(7462),r=(i(7294),i(3905));const o={id:"triage-guide",title:"Triage guide",sidebar_label:"Triage guide",keywords:["triage guide"]},a=void 0,s={unversionedId:"contributing/triage-guide",id:"contributing/triage-guide",title:"Triage guide",description:"How do I join the triage team?",source:"@site/docs/contributing/triage-guide.md",sourceDirName:"contributing",slug:"/contributing/triage-guide",permalink:"/contributing/triage-guide",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/contributing/triage-guide.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"triage-guide",title:"Triage guide",sidebar_label:"Triage guide",keywords:["triage guide"]},sidebar:"docs",previous:{title:"Code of Conduct",permalink:"/contributing/code-of-conduct"},next:{title:"Set up Authentication",permalink:"/contributing/set-up-authentication"}},l={},u=[{value:"How do I join the triage team?",id:"how-do-i-join-the-triage-team",level:2},{value:"Issue triage process",id:"issue-triage-process",level:2},{value:"Approaches and best practices for getting into triage contributions",id:"approaches-and-best-practices-for-getting-into-triage-contributions",level:2},{value:"Labeling good first issues",id:"labeling-good-first-issues",level:2},{value:"Removal of triage role",id:"removal-of-triage-role",level:2},{value:"Other helpful hints:",id:"other-helpful-hints",level:2}],d={toc:u},p="wrapper";function c(e){let{components:t,...i}=e;return(0,r.kt)(p,(0,n.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"how-do-i-join-the-triage-team"},"How do I join the triage team?"),(0,r.kt)("ol",null,(0,r.kt)("li",{parentName:"ol"},"Sign up for ",(0,r.kt)("a",{parentName:"li",href:"https://opensauced.pizza"},"opensauced.pizza")),(0,r.kt)("li",{parentName:"ol"},"Leave a reply in the ",(0,r.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/open-sauced/discussions/638"},"invite discussion"),".")),(0,r.kt)("h2",{id:"issue-triage-process"},"Issue triage process"),(0,r.kt)("p",null,"When a new issue or pull request is opened the issue will be labeled with ",(0,r.kt)("inlineCode",{parentName:"p"},"needs triage"),". If a triage team member is available they can help make sure all the required information is provided. Depending on the issue or PR there are several next labels they can add for further classification:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"needs triage"),": This can be kept if the triager is unsure which next steps to take"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"awaiting more info"),": If more info has been requested from the author, apply this label."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"question"),": User questions that do not appear to be bugs or enhancements."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"discuss"),": Topics for discussion. Might end in an ",(0,r.kt)("inlineCode",{parentName:"li"},"enhancement")," or ",(0,r.kt)("inlineCode",{parentName:"li"},"question")," label."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"bug"),": Issues that present a reasonable conviction there is a reproducible bug."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("inlineCode",{parentName:"li"},"enhancement"),": Issues that are found to be a reasonable candidate feature additions.")),(0,r.kt)("p",null,"In all cases, issues may be closed by maintainers if they don't receive a timely response when further information is sought, or when additional questions are asked."),(0,r.kt)("h2",{id:"approaches-and-best-practices-for-getting-into-triage-contributions"},"Approaches and best practices for getting into triage contributions"),(0,r.kt)("p",null,"Review the project's contribution guideline if present. In a nutshell, commit to the community's standards and values. Review the documentation, for most of the projects it is just the README.md, and make sure you understand the key APIs, semantics, configurations, and use cases."),(0,r.kt)("p",null,"It might be helpful to write your own test apps to re-affirm your understanding of the key functions. This may identify some gaps in documentation, record those as they might be good PR's to open. Skim through the issue backlog; identify low hanging issues and mostly new ones. From those, attempt to recreate issues based on the OP description and ask questions if required. No question is a bad question!"),(0,r.kt)("h2",{id:"labeling-good-first-issues"},"Labeling good first issues"),(0,r.kt)("p",null,"Issues labeled as ",(0,r.kt)("inlineCode",{parentName:"p"},"good first issue")," represent a curated list of easy contributions for new contributors. These issues are meant to help folks make their first contribution to open-source and should not require an excessive amount of research or triaging on the contributor's part."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"All good first issues should include one or more of the following: a solution, a suggestion for a solution, links to components, or in which issue occurs.")),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Issues that ",(0,r.kt)("inlineCode",{parentName:"li"},"needs triage")," cannot be labeled as ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issues"),"."),(0,r.kt)("li",{parentName:"ul"},"It is better to have no ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issue")," labeled issues than to have a ",(0,r.kt)("inlineCode",{parentName:"li"},"good first issue")," confusing enough to deter a contributor from contributing.")),(0,r.kt)("h2",{id:"removal-of-triage-role"},"Removal of triage role"),(0,r.kt)("p",null,"There are a few cases where members can be removed as triagers:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"Breaking the ",(0,r.kt)("a",{parentName:"li",href:"/contributing/code-of-conduct"},"CoC")," or ",(0,r.kt)("a",{parentName:"li",href:"/contributing/introduction-to-contributing"},"project contributor guidelines")),(0,r.kt)("li",{parentName:"ul"},"Abuse or misuse of the role as deemed by the TC"),(0,r.kt)("li",{parentName:"ul"},"Lack of participation for more than 6 months")),(0,r.kt)("p",null,"If any of these happen we will discuss as a part of the triage portion of the regular TC meetings. If you have questions feel free to reach out to any of the TC members."),(0,r.kt)("h2",{id:"other-helpful-hints"},"Other helpful hints:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},"When reviewing the list of open issues there are some common types and suggested actions:",(0,r.kt)("ul",{parentName:"li"},(0,r.kt)("li",{parentName:"ul"},"New/unattended issues or simple questions: A good place to start"),(0,r.kt)("li",{parentName:"ul"},"Hard bugs & ongoing discussions: always feel free to chime in and help"),(0,r.kt)("li",{parentName:"ul"},"Issues that imply gaps in documentation: open PRs with changes or help the user to do so"))),(0,r.kt)("li",{parentName:"ul"},"For recurring issues, it is helpful to create functional examples to demonstrate (publish as gists or a repo)"),(0,r.kt)("li",{parentName:"ul"},"Review and identify the maintainers. If necessary, at-mention one or more of them if you are unsure what to do"),(0,r.kt)("li",{parentName:"ul"},"Make sure all your interactions are professional, welcoming and respectful to the parties involved.")))}c.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.3e7ce924.js b/assets/js/935f2afb.3e7ce924.js new file mode 100644 index 00000000..08f34069 --- /dev/null +++ b/assets/js/935f2afb.3e7ce924.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction to OpenSauced \ud83c\udf55","href":"/","docId":"introduction"},{"type":"category","label":"Getting started","collapsed":false,"items":[{"type":"link","label":"Welcome to the Community","href":"/community/welcome-to-the-community","docId":"community/welcome-to-the-community"},{"type":"link","label":"#100DaysOfOSS","href":"/community/100-days-of-oss","docId":"community/100-days-of-oss"},{"type":"link","label":"Highlights","href":"/community/highlights","docId":"community/highlights"},{"type":"link","label":"Insights","href":"/community/insights","docId":"community/insights"},{"type":"link","label":"FAQS","href":"/community/faqs","docId":"community/faqs"}],"collapsible":true},{"type":"category","label":"Contributing guide","collapsed":false,"items":[{"type":"link","label":"Introduction to contributing","href":"/contributing/introduction-to-contributing","docId":"contributing/introduction-to-contributing"},{"type":"link","label":"Code of Conduct","href":"/contributing/code-of-conduct","docId":"contributing/code-of-conduct"},{"type":"link","label":"Triage guide","href":"/contributing/triage-guide","docId":"contributing/triage-guide"},{"type":"link","label":"Set up Authentication","href":"/contributing/set-up-authentication","docId":"contributing/set-up-authentication"}],"collapsible":true},{"type":"category","label":"Technical guide","collapsed":false,"items":[{"type":"link","label":"Introduction to storybook","href":"/technical/introduction-to-storybook","docId":"technical/introduction-to-storybook"},{"type":"link","label":"Resolve merge conflicts","href":"/technical/resolve-merge-conflicts","docId":"technical/resolve-merge-conflicts"}],"collapsible":true},{"type":"category","label":"Maintainer guide","collapsed":true,"items":[{"type":"link","label":"Setting up a new repository","href":"/maintainers/setting-up-a-new-repository","docId":"maintainers/setting-up-a-new-repository"},{"type":"link","label":"@open-sauced/check-engines","href":"/maintainers/check-engines","docId":"maintainers/check-engines"},{"type":"link","label":"@open-sauced/conventional-commit","href":"/maintainers/conventional-commit","docId":"maintainers/conventional-commit"},{"type":"link","label":"@open-sauced/semantic-release-conventional-config","href":"/maintainers/semantic-release","docId":"maintainers/semantic-release"}],"collapsible":true},{"type":"category","label":"Chrome Extension Usage","collapsed":true,"items":[{"type":"link","label":"Introduction to the Chrome Extension","href":"/chrome-extension/introduction-to-the-chrome-extension","docId":"chrome-extension/introduction-to-the-chrome-extension"},{"type":"category","label":"Using the Chrome Extension","items":[{"type":"link","label":"Code Explanation","href":"/chrome-extension/code-explanation","docId":"chrome-extension/code-explanation"},{"type":"link","label":"PR Description","href":"/chrome-extension/pr-description","docId":"chrome-extension/pr-description"},{"type":"link","label":"Highlight","href":"/chrome-extension/highlights","docId":"chrome-extension/highlights"},{"type":"link","label":"Quick Access to OpenSauced","href":"/chrome-extension/opensauced-links","docId":"chrome-extension/opensauced-links"},{"type":"link","label":"Refactoring and Testing","href":"/chrome-extension/refactoring-and-testing","docId":"chrome-extension/refactoring-and-testing"},{"type":"link","label":"Insights and Invitations\'","href":"/chrome-extension/viewing-insights-and-invitations","docId":"chrome-extension/viewing-insights-and-invitations"}],"collapsed":true,"collapsible":true}],"collapsible":true}]},"docs":{"chrome-extension/code-explanation":{"id":"chrome-extension/code-explanation","title":"Code Explanation","description":"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.","sidebar":"docs"},"chrome-extension/highlights":{"id":"chrome-extension/highlights","title":"Highlight","description":"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.","sidebar":"docs"},"chrome-extension/introduction-to-the-chrome-extension":{"id":"chrome-extension/introduction-to-the-chrome-extension","title":"Introduction to the Chrome Extension","description":"The OpenSauced Chrome Extension","sidebar":"docs"},"chrome-extension/opensauced-links":{"id":"chrome-extension/opensauced-links","title":"Code Explanation","description":"Quick Access to OpenSauced","sidebar":"docs"},"chrome-extension/pr-description":{"id":"chrome-extension/pr-description","title":"PR Description","description":"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either Commit Messages or The diff between the files or both, you can even set the length and the tone of the message using the same settings.","sidebar":"docs"},"chrome-extension/refactoring-and-testing":{"id":"chrome-extension/refactoring-and-testing","title":"Refactoring and Testing","description":"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.","sidebar":"docs"},"chrome-extension/viewing-insights-and-invitations":{"id":"chrome-extension/viewing-insights-and-invitations","title":"Viewing Insights and Invitations","description":"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.","sidebar":"docs"},"community/100-days-of-oss":{"id":"community/100-days-of-oss","title":"#100DaysOfOSS: Growing Skills and Real-World Experience","description":"Inspired by the great work of the #100DaysOfCode challenge, we\'re starting #100DaysOfOSS.","sidebar":"docs"},"community/faqs":{"id":"community/faqs","title":"Frequently asked Questions","description":"1. How do I find good first issues?","sidebar":"docs"},"community/highlights":{"id":"community/highlights","title":"Highlight your open source contributions","description":"The Highlights feature is what we like to call the \\"glitzy pepperoni\\" of your OpenSauced profile. It\'s the place where you can display your favorite open source contributions whether it\'s an article you wrote for Codecademy\'s Docs website, revising one of the lessons on freeCodeCamp\'s curricula, or creating a tutorial for people who use Audacity.","sidebar":"docs"},"community/insights":{"id":"community/insights","title":"Insights into open source projects","description":"The Insights feature is where you pick and view the repositories that you often contribute to. It\'s a great way to stay updated on their growth.","sidebar":"docs"},"community/welcome-to-the-community":{"id":"community/welcome-to-the-community","title":"Welcome to the Community","description":"The OpenSauced Community","sidebar":"docs"},"contributing/code-of-conduct":{"id":"contributing/code-of-conduct","title":"Code of Conduct","description":"Our pledge","sidebar":"docs"},"contributing/introduction-to-contributing":{"id":"contributing/introduction-to-contributing","title":"Introduction to contributing","description":"Contributions are always welcome, no matter how large or small. Before contributing,","sidebar":"docs"},"contributing/set-up-authentication":{"id":"contributing/set-up-authentication","title":"Set up Authentication","description":"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.","sidebar":"docs"},"contributing/triage-guide":{"id":"contributing/triage-guide","title":"Triage guide","description":"How do I join the triage team?","sidebar":"docs"},"introduction":{"id":"introduction","title":"Introduction to OpenSauced","description":"Example banner","sidebar":"docs"},"maintainers/check-engines":{"id":"maintainers/check-engines","title":"@open-sauced/check-engines","description":"Description","sidebar":"docs"},"maintainers/conventional-commit":{"id":"maintainers/conventional-commit","title":"@open-sauced/conventional-commit","description":"Description","sidebar":"docs"},"maintainers/semantic-release":{"id":"maintainers/semantic-release","title":"@open-sauced/semantic-release-conventional-config","description":"Description","sidebar":"docs"},"maintainers/setting-up-a-new-repository":{"id":"maintainers/setting-up-a-new-repository","title":"Setting up a new repository","description":"How do I Join the Maintainers Team?","sidebar":"docs"},"technical/introduction-to-storybook":{"id":"technical/introduction-to-storybook","title":"Introduction to storybook","description":"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.","sidebar":"docs"},"technical/resolve-merge-conflicts":{"id":"technical/resolve-merge-conflicts","title":"Resolve merge conflicts","description":"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating npm-shrinkwrap.json.","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/935f2afb.dd956c99.js b/assets/js/935f2afb.dd956c99.js deleted file mode 100644 index f025c543..00000000 --- a/assets/js/935f2afb.dd956c99.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[53],{1109:e=>{e.exports=JSON.parse('{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"docs":[{"type":"link","label":"Introduction to OpenSauced \ud83c\udf55","href":"/","docId":"introduction"},{"type":"category","label":"Getting started","collapsed":false,"items":[{"type":"link","label":"Welcome to the Community","href":"/community/welcome-to-the-community","docId":"community/welcome-to-the-community"},{"type":"link","label":"Highlight your open source contributions","href":"/community/highlights","docId":"community/highlights"},{"type":"link","label":"#100DaysOfOSS","href":"/community/100-days-of-oss","docId":"community/100-days-of-oss"},{"type":"link","label":"FAQS","href":"/community/faqs","docId":"community/faqs"},{"type":"link","label":"View your favorite projects in the Insight pages","href":"/community/insight-pages","docId":"community/insight-pages"}],"collapsible":true},{"type":"category","label":"Contributing guide","collapsed":false,"items":[{"type":"link","label":"Introduction to contributing","href":"/contributing/introduction-to-contributing","docId":"contributing/introduction-to-contributing"},{"type":"link","label":"Code of Conduct","href":"/contributing/code-of-conduct","docId":"contributing/code-of-conduct"},{"type":"link","label":"Triage guide","href":"/contributing/triage-guide","docId":"contributing/triage-guide"},{"type":"link","label":"Set up Authentication","href":"/contributing/set-up-authentication","docId":"contributing/set-up-authentication"}],"collapsible":true},{"type":"category","label":"Technical guide","collapsed":false,"items":[{"type":"link","label":"Introduction to storybook","href":"/technical/introduction-to-storybook","docId":"technical/introduction-to-storybook"},{"type":"link","label":"Resolve merge conflicts","href":"/technical/resolve-merge-conflicts","docId":"technical/resolve-merge-conflicts"}],"collapsible":true},{"type":"category","label":"Maintainer guide","collapsed":true,"items":[{"type":"link","label":"Setting up a new repository","href":"/maintainers/setting-up-a-new-repository","docId":"maintainers/setting-up-a-new-repository"},{"type":"link","label":"@open-sauced/check-engines","href":"/maintainers/check-engines","docId":"maintainers/check-engines"},{"type":"link","label":"@open-sauced/conventional-commit","href":"/maintainers/conventional-commit","docId":"maintainers/conventional-commit"},{"type":"link","label":"@open-sauced/semantic-release-conventional-config","href":"/maintainers/semantic-release","docId":"maintainers/semantic-release"}],"collapsible":true},{"type":"category","label":"Chrome Extension Usage","collapsed":true,"items":[{"type":"link","label":"Introduction to the Chrome Extension","href":"/chrome-extension/introduction-to-the-chrome-extension","docId":"chrome-extension/introduction-to-the-chrome-extension"},{"type":"category","label":"Using the Chrome Extension","items":[{"type":"link","label":"Code Explanation","href":"/chrome-extension/code-explanation","docId":"chrome-extension/code-explanation"},{"type":"link","label":"PR Description","href":"/chrome-extension/pr-description","docId":"chrome-extension/pr-description"},{"type":"link","label":"Highlight","href":"/chrome-extension/highlights","docId":"chrome-extension/highlights"},{"type":"link","label":"Quick Access to OpenSauced","href":"/chrome-extension/opensauced-links","docId":"chrome-extension/opensauced-links"},{"type":"link","label":"Refactoring and Testing","href":"/chrome-extension/refactoring-and-testing","docId":"chrome-extension/refactoring-and-testing"},{"type":"link","label":"Insights and Invitations\'","href":"/chrome-extension/viewing-insights-and-invitations","docId":"chrome-extension/viewing-insights-and-invitations"}],"collapsed":true,"collapsible":true}],"collapsible":true}]},"docs":{"chrome-extension/code-explanation":{"id":"chrome-extension/code-explanation","title":"Code Explanation","description":"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.","sidebar":"docs"},"chrome-extension/highlights":{"id":"chrome-extension/highlights","title":"Highlight","description":"You can access the post to highlight it from the popup window in the extension. When you clicked, it will automatically, populate the PR or issue title, here you can use our AI functions to get a summary of the highlight similar to the PR summary.","sidebar":"docs"},"chrome-extension/introduction-to-the-chrome-extension":{"id":"chrome-extension/introduction-to-the-chrome-extension","title":"Introduction to the Chrome Extension","description":"The OpenSauced Chrome Extension","sidebar":"docs"},"chrome-extension/opensauced-links":{"id":"chrome-extension/opensauced-links","title":"Code Explanation","description":"Quick Access to OpenSauced","sidebar":"docs"},"chrome-extension/pr-description":{"id":"chrome-extension/pr-description","title":"PR Description","description":"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either Commit Messages or The diff between the files or both, you can even set the length and the tone of the message using the same settings.","sidebar":"docs"},"chrome-extension/refactoring-and-testing":{"id":"chrome-extension/refactoring-and-testing","title":"Refactoring and Testing","description":"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.","sidebar":"docs"},"chrome-extension/viewing-insights-and-invitations":{"id":"chrome-extension/viewing-insights-and-invitations","title":"Viewing Insights and Invitations","description":"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.","sidebar":"docs"},"community/100-days-of-oss":{"id":"community/100-days-of-oss","title":"#100DaysOfOSS: Growing Skills and Real-World Experience","description":"Inspired by the great work of the #100DaysOfCode challenge, we\'re starting #100DaysOfOSS.","sidebar":"docs"},"community/faqs":{"id":"community/faqs","title":"Frequently asked Questions","description":"1. How do I find good first issues?","sidebar":"docs"},"community/highlights":{"id":"community/highlights","title":"Highlight your open source contributions","description":"The Highlights feature is what we like to call the \\"glitzy pepperoni\\" of your OpenSauced profile. It\'s the place where you can display your favorite open source contributions whether it\'s an article you wrote for Codecademy\'s Docs website, revising one of the lessons on freeCodeCamp\'s curricula, or creating a tutorial for people who use Audacity.","sidebar":"docs"},"community/insight-pages":{"id":"community/insight-pages","title":"View your favorite projects in the Insight pages","description":"The Insights feature is where you pick and view the repositories that you often contribute to. It\'s a great way to stay updated on their growth.","sidebar":"docs"},"community/welcome-to-the-community":{"id":"community/welcome-to-the-community","title":"Welcome to the Community","description":"The OpenSauced Community","sidebar":"docs"},"contributing/code-of-conduct":{"id":"contributing/code-of-conduct","title":"Code of Conduct","description":"Our pledge","sidebar":"docs"},"contributing/introduction-to-contributing":{"id":"contributing/introduction-to-contributing","title":"Introduction to contributing","description":"Contributions are always welcome, no matter how large or small. Before contributing,","sidebar":"docs"},"contributing/set-up-authentication":{"id":"contributing/set-up-authentication","title":"Set up Authentication","description":"To interact with the OpenSauced public API as an authenticated user, you need to obtain an authentication token.","sidebar":"docs"},"contributing/triage-guide":{"id":"contributing/triage-guide","title":"Triage guide","description":"How do I join the triage team?","sidebar":"docs"},"introduction":{"id":"introduction","title":"Introduction to OpenSauced","description":"Example banner","sidebar":"docs"},"maintainers/check-engines":{"id":"maintainers/check-engines","title":"@open-sauced/check-engines","description":"Description","sidebar":"docs"},"maintainers/conventional-commit":{"id":"maintainers/conventional-commit","title":"@open-sauced/conventional-commit","description":"Description","sidebar":"docs"},"maintainers/semantic-release":{"id":"maintainers/semantic-release","title":"@open-sauced/semantic-release-conventional-config","description":"Description","sidebar":"docs"},"maintainers/setting-up-a-new-repository":{"id":"maintainers/setting-up-a-new-repository","title":"Setting up a new repository","description":"How do I Join the Maintainers Team?","sidebar":"docs"},"technical/introduction-to-storybook":{"id":"technical/introduction-to-storybook","title":"Introduction to storybook","description":"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.","sidebar":"docs"},"technical/resolve-merge-conflicts":{"id":"technical/resolve-merge-conflicts","title":"Resolve merge conflicts","description":"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating npm-shrinkwrap.json.","sidebar":"docs"}}}')}}]); \ No newline at end of file diff --git a/assets/js/9a628d71.20cfc437.js b/assets/js/9a628d71.20cfc437.js deleted file mode 100644 index 64d8d17e..00000000 --- a/assets/js/9a628d71.20cfc437.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[79],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),m=r,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return o?n.createElement(h,a(a({ref:t},u),{},{components:o})):n.createElement(h,a({ref:t},u))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,a[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=o(7462),r=(o(7294),o(3905));const i={id:"introduction-to-storybook",title:"Introduction to storybook",sidebar_label:"Introduction to storybook",keywords:["Introduction to storybook"]},a=void 0,l={unversionedId:"technical/introduction-to-storybook",id:"technical/introduction-to-storybook",title:"Introduction to storybook",description:"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.",source:"@site/docs/technical/introduction-to-storybook.md",sourceDirName:"technical",slug:"/technical/introduction-to-storybook",permalink:"/technical/introduction-to-storybook",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/technical/introduction-to-storybook.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-storybook",title:"Introduction to storybook",sidebar_label:"Introduction to storybook",keywords:["Introduction to storybook"]},sidebar:"docs",previous:{title:"Set up Authentication",permalink:"/contributing/set-up-authentication"},next:{title:"Resolve merge conflicts",permalink:"/technical/resolve-merge-conflicts"}},s={},c=[{value:"UI categories",id:"ui-categories",level:2},{value:"Making changes to storybook",id:"making-changes-to-storybook",level:2},{value:"Adding a new category",id:"adding-a-new-category",level:3},{value:"Adding a new UI element",id:"adding-a-new-ui-element",level:3}],u={toc:c},d="wrapper";function p(e){let{components:t,...o}=e;return(0,r.kt)(d,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.\nStorybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this ",(0,r.kt)("a",{parentName:"p",href:"https://sauced-components.netlify.app/"},"URL"),"."),(0,r.kt)("p",null,"To run storybook, use this command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"npm run storybook\n")),(0,r.kt)("h2",{id:"ui-categories"},"UI categories"),(0,r.kt)("p",null,"Storybook is broken into several categories:"),(0,r.kt)("ul",null,(0,r.kt)("li",null,(0,r.kt)("b",null,"Button:")," These are the button elements that appear in the project in various forms. They primarily are the Button component in the project but can also be icons."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Cards:")," These are the main container elements in the project. Each item represents a live component in its current form in the project."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Primitives: These are the basic styling of base HTML components.")),(0,r.kt)("li",null,(0,r.kt)("b",null,"Nav:")," This is the main navigation bar for the project. There are two states\u2014when there is no user logged in and when a user is logged in."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Footer:")," This represents the various footers for the project."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Homepage:")," This is the main component of the project homepage and shows the home page in its current form."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Miscellaneous:")," These are components that currently don't fit neatly into the above categories.")),(0,r.kt)("h2",{id:"making-changes-to-storybook"},"Making changes to storybook"),(0,r.kt)("p",null,"This section details how to make changes to Storybook, mainly by creating new categories or UI elements."),(0,r.kt)("h3",{id:"adding-a-new-category"},"Adding a new category"),(0,r.kt)("p",null,"To add a new category, a new file needs to be added to the ",(0,r.kt)("inlineCode",{parentName:"p"},"/stories")," directory. When creating a new file, the filename should be named using the following convention: ",(0,r.kt)("inlineCode",{parentName:"p"},"*Previous File Number + 1*-*Name of Story Capitalized*-stories.js"),". For example, if the last file was 2-SideBar-stories.js, then the new file should be named ",(0,r.kt)("inlineCode",{parentName:"p"},"3-NameOfYourFile-stories.js"),".\nIn the file ensure you have this code:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'export default {\n title: "*Name of category*"\n};\n')),(0,r.kt)("h3",{id:"adding-a-new-ui-element"},"Adding a new UI element"),(0,r.kt)("p",null,"To add a new UI element to an existing category, add the following code to that category's file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"export const *Name of UI Element* = () => (\n// code for the new element\n);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/9a628d71.86f0b36f.js b/assets/js/9a628d71.86f0b36f.js new file mode 100644 index 00000000..63646870 --- /dev/null +++ b/assets/js/9a628d71.86f0b36f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[79],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>h});var n=o(7294);function r(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function i(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function a(e){for(var t=1;t=0||(r[o]=e[o]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(r[o]=e[o])}return r}var s=n.createContext({}),c=function(e){var t=n.useContext(s),o=t;return e&&(o="function"==typeof e?e(t):a(a({},t),e)),o},u=function(e){var t=c(e.components);return n.createElement(s.Provider,{value:t},e.children)},d="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},m=n.forwardRef((function(e,t){var o=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,u=l(e,["components","mdxType","originalType","parentName"]),d=c(o),m=r,h=d["".concat(s,".").concat(m)]||d[m]||p[m]||i;return o?n.createElement(h,a(a({ref:t},u),{},{components:o})):n.createElement(h,a({ref:t},u))}));function h(e,t){var o=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=o.length,a=new Array(i);a[0]=m;var l={};for(var s in t)hasOwnProperty.call(t,s)&&(l[s]=t[s]);l.originalType=e,l[d]="string"==typeof e?e:r,a[1]=l;for(var c=2;c{o.r(t),o.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var n=o(7462),r=(o(7294),o(3905));const i={id:"introduction-to-storybook",title:"Introduction to storybook",sidebar_label:"Introduction to storybook",keywords:["Introduction to storybook"]},a=void 0,l={unversionedId:"technical/introduction-to-storybook",id:"technical/introduction-to-storybook",title:"Introduction to storybook",description:"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.",source:"@site/docs/technical/introduction-to-storybook.md",sourceDirName:"technical",slug:"/technical/introduction-to-storybook",permalink:"/technical/introduction-to-storybook",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/technical/introduction-to-storybook.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-storybook",title:"Introduction to storybook",sidebar_label:"Introduction to storybook",keywords:["Introduction to storybook"]},sidebar:"docs",previous:{title:"Set up Authentication",permalink:"/contributing/set-up-authentication"},next:{title:"Resolve merge conflicts",permalink:"/technical/resolve-merge-conflicts"}},s={},c=[{value:"UI categories",id:"ui-categories",level:2},{value:"Making changes to storybook",id:"making-changes-to-storybook",level:2},{value:"Adding a new category",id:"adding-a-new-category",level:3},{value:"Adding a new UI element",id:"adding-a-new-ui-element",level:3}],u={toc:c},d="wrapper";function p(e){let{components:t,...o}=e;return(0,r.kt)(d,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Storybook is an open-source tool that helps developers build, test, and document UI components in isolation.\nStorybook is being leveraged to mock out visual React components. The latest version of the design system can be found at this ",(0,r.kt)("a",{parentName:"p",href:"https://sauced-components.netlify.app/"},"URL"),"."),(0,r.kt)("p",null,"To run storybook, use this command:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre",className:"language-sh"},"npm run storybook\n")),(0,r.kt)("h2",{id:"ui-categories"},"UI categories"),(0,r.kt)("p",null,"Storybook is broken into several categories:"),(0,r.kt)("ul",null,(0,r.kt)("li",null,(0,r.kt)("b",null,"Button:")," These are the button elements that appear in the project in various forms. They primarily are the Button component in the project but can also be icons."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Cards:")," These are the main container elements in the project. Each item represents a live component in its current form in the project."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Primitives: These are the basic styling of base HTML components.")),(0,r.kt)("li",null,(0,r.kt)("b",null,"Nav:")," This is the main navigation bar for the project. There are two states\u2014when there is no user logged in and when a user is logged in."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Footer:")," This represents the various footers for the project."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Homepage:")," This is the main component of the project homepage and shows the home page in its current form."),(0,r.kt)("li",null,(0,r.kt)("b",null,"Miscellaneous:")," These are components that currently don't fit neatly into the above categories.")),(0,r.kt)("h2",{id:"making-changes-to-storybook"},"Making changes to storybook"),(0,r.kt)("p",null,"This section details how to make changes to Storybook, mainly by creating new categories or UI elements."),(0,r.kt)("h3",{id:"adding-a-new-category"},"Adding a new category"),(0,r.kt)("p",null,"To add a new category, a new file needs to be added to the ",(0,r.kt)("inlineCode",{parentName:"p"},"/stories")," directory. When creating a new file, the filename should be named using the following convention: ",(0,r.kt)("inlineCode",{parentName:"p"},"*Previous File Number + 1*-*Name of Story Capitalized*-stories.js"),". For example, if the last file was 2-SideBar-stories.js, then the new file should be named ",(0,r.kt)("inlineCode",{parentName:"p"},"3-NameOfYourFile-stories.js"),".\nIn the file ensure you have this code:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},'export default {\n title: "*Name of category*"\n};\n')),(0,r.kt)("h3",{id:"adding-a-new-ui-element"},"Adding a new UI element"),(0,r.kt)("p",null,"To add a new UI element to an existing category, add the following code to that category's file:"),(0,r.kt)("pre",null,(0,r.kt)("code",{parentName:"pre"},"export const *Name of UI Element* = () => (\n// code for the new element\n);\n")))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/a09c2993.09614cd1.js b/assets/js/a09c2993.776371ab.js similarity index 70% rename from assets/js/a09c2993.09614cd1.js rename to assets/js/a09c2993.776371ab.js index 69d14e15..cb38a26e 100644 --- a/assets/js/a09c2993.09614cd1.js +++ b/assets/js/a09c2993.776371ab.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),s=p(n),f=o,m=s["".concat(u,".").concat(f)]||s[f]||l[f]||a;return n?r.createElement(m,c(c({ref:t},d),{},{components:n})):r.createElement(m,c({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=f;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>l,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={slug:"/",sidebar_label:"Introduction to OpenSauced \ud83c\udf55"},c="Introduction to OpenSauced",i={unversionedId:"introduction",id:"introduction",title:"Introduction to OpenSauced",description:"Example banner",source:"@site/docs/introduction.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/introduction.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{slug:"/",sidebar_label:"Introduction to OpenSauced \ud83c\udf55"},sidebar:"docs",next:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"}},u={},p=[],d={toc:p},s="wrapper";function l(e){let{components:t,...a}=e;return(0,o.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction-to-opensauced"},"Introduction to OpenSauced"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Example banner",src:n(4761).Z,width:"1920",height:"1080"})),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8gwrzis-dY&list=PLHyZ0Wz_A44XAE-6Gbd69pZLTdqWdwlBx&index=1&t=2s"},"Watch this on YouTube")),(0,o.kt)("p",null,"OpenSauced provides guidance for new contributors to find their next contribution. Our approach towards onboarding offers a way to track contributions through a GitHub-powered dashboard."))}l.isMDXComponent=!0},4761:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/what-is-opensauced-borderless-0a51e6d81902d2866db643a60eae78c7.jpg"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[128],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var u=r.createContext({}),p=function(e){var t=r.useContext(u),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=p(e.components);return r.createElement(u.Provider,{value:t},e.children)},s="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,u=e.parentName,d=i(e,["components","mdxType","originalType","parentName"]),s=p(n),f=o,m=s["".concat(u,".").concat(f)]||s[f]||l[f]||a;return n?r.createElement(m,c(c({ref:t},d),{},{components:n})):r.createElement(m,c({ref:t},d))}));function m(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,c=new Array(a);c[0]=f;var i={};for(var u in t)hasOwnProperty.call(t,u)&&(i[u]=t[u]);i.originalType=e,i[s]="string"==typeof e?e:o,c[1]=i;for(var p=2;p{n.r(t),n.d(t,{assets:()=>u,contentTitle:()=>c,default:()=>l,frontMatter:()=>a,metadata:()=>i,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const a={slug:"/",sidebar_label:"Introduction to OpenSauced \ud83c\udf55"},c="Introduction to OpenSauced",i={unversionedId:"introduction",id:"introduction",title:"Introduction to OpenSauced",description:"Example banner",source:"@site/docs/introduction.md",sourceDirName:".",slug:"/",permalink:"/",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/introduction.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{slug:"/",sidebar_label:"Introduction to OpenSauced \ud83c\udf55"},sidebar:"docs",next:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"}},u={},p=[],d={toc:p},s="wrapper";function l(e){let{components:t,...a}=e;return(0,o.kt)(s,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("h1",{id:"introduction-to-opensauced"},"Introduction to OpenSauced"),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"Example banner",src:n(4761).Z,width:"1920",height:"1080"})),(0,o.kt)("p",null,(0,o.kt)("a",{parentName:"p",href:"https://www.youtube.com/watch?v=h8gwrzis-dY&list=PLHyZ0Wz_A44XAE-6Gbd69pZLTdqWdwlBx&index=1&t=2s"},"Watch this on YouTube")),(0,o.kt)("p",null,"OpenSauced provides guidance for new contributors to find their next contribution. Our approach towards onboarding offers a way to track contributions through a GitHub-powered dashboard."))}l.isMDXComponent=!0},4761:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/what-is-opensauced-borderless-0a51e6d81902d2866db643a60eae78c7.jpg"}}]); \ No newline at end of file diff --git a/assets/js/b81d15f0.5d3961ab.js b/assets/js/b81d15f0.f315b1cf.js similarity index 50% rename from assets/js/b81d15f0.5d3961ab.js rename to assets/js/b81d15f0.f315b1cf.js index fd57eecc..69132f8d 100644 --- a/assets/js/b81d15f0.5d3961ab.js +++ b/assets/js/b81d15f0.f315b1cf.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[694],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function c(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):c(c({},t),e)),n},d=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=a(e,["components","mdxType","originalType","parentName"]),u=l(n),h=r,m=u["".concat(s,".").concat(h)]||u[h]||p[h]||i;return n?o.createElement(m,c(c({ref:t},d),{},{components:n})):o.createElement(m,c({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,c=new Array(i);c[0]=h;var a={};for(var s in t)hasOwnProperty.call(t,s)&&(a[s]=t[s]);a.originalType=e,a[u]="string"==typeof e?e:r,c[1]=a;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>c,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const i={id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension"]},c=void 0,a={unversionedId:"chrome-extension/introduction-to-the-chrome-extension",id:"chrome-extension/introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",description:"The OpenSauced Chrome Extension",source:"@site/docs/chrome-extension/introduction-to-the-chrome-extension.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/introduction-to-the-chrome-extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/introduction-to-the-chrome-extension.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension"]},sidebar:"docs",previous:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/maintainers/semantic-release"},next:{title:"Code Explanation",permalink:"/chrome-extension/code-explanation"}},s={},l=[{value:"The OpenSauced Chrome Extension",id:"the-opensauced-chrome-extension",level:2},{value:"Installing the Chrome Extension",id:"installing-the-chrome-extension",level:2}],d={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-chrome-extension"},"The OpenSauced Chrome Extension"),(0,r.kt)("p",null,"The OpenSauced Chrome extension seamlessly integrates GitHub with the OpenSauced platform. With this extension, you can easily view and discover open-source projects looking for contributions directly from GitHub, making collaboration and contribution easier than ever."),(0,r.kt)("h2",{id:"installing-the-chrome-extension"},"Installing the Chrome Extension"),(0,r.kt)("p",null,"To install the OpenSauced Chrome extension, navigate to the ",(0,r.kt)("a",{parentName:"p",href:"https://chrome.google.com/webstore/detail/opensauced/aebjdjjodmkdnmejakflnfpkadblfmdh"},"Chrome Web Store"),' and click the "Add to Chrome" button.'))}p.isMDXComponent=!0}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[694],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var s=o.createContext({}),l=function(e){var t=o.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=l(e.components);return o.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},h=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(n),h=r,m=u["".concat(s,".").concat(h)]||u[h]||p[h]||i;return n?o.createElement(m,a(a({ref:t},d),{},{components:n})):o.createElement(m,a({ref:t},d))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=h;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:r,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=n(7462),r=(n(7294),n(3905));const i={id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension"]},a=void 0,c={unversionedId:"chrome-extension/introduction-to-the-chrome-extension",id:"chrome-extension/introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",description:"The OpenSauced Chrome Extension",source:"@site/docs/chrome-extension/introduction-to-the-chrome-extension.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/introduction-to-the-chrome-extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/introduction-to-the-chrome-extension.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"introduction-to-the-chrome-extension",title:"Introduction to the Chrome Extension",sidebar_label:"Introduction to the Chrome Extension",keywords:["introduction to the chrome extension"]},sidebar:"docs",previous:{title:"@open-sauced/semantic-release-conventional-config",permalink:"/maintainers/semantic-release"},next:{title:"Code Explanation",permalink:"/chrome-extension/code-explanation"}},s={},l=[{value:"The OpenSauced Chrome Extension",id:"the-opensauced-chrome-extension",level:2},{value:"Installing the Chrome Extension",id:"installing-the-chrome-extension",level:2}],d={toc:l},u="wrapper";function p(e){let{components:t,...n}=e;return(0,r.kt)(u,(0,o.Z)({},d,n,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("h2",{id:"the-opensauced-chrome-extension"},"The OpenSauced Chrome Extension"),(0,r.kt)("p",null,"The OpenSauced Chrome extension seamlessly integrates GitHub with the OpenSauced platform. With this extension, you can easily view and discover open-source projects looking for contributions directly from GitHub, making collaboration and contribution easier than ever."),(0,r.kt)("h2",{id:"installing-the-chrome-extension"},"Installing the Chrome Extension"),(0,r.kt)("p",null,"To install the OpenSauced Chrome extension, navigate to the ",(0,r.kt)("a",{parentName:"p",href:"https://chrome.google.com/webstore/detail/opensauced/aebjdjjodmkdnmejakflnfpkadblfmdh"},"Chrome Web Store"),' and click the "Add to Chrome" button.'))}p.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8d96084.21e9b8cd.js b/assets/js/b8d96084.21e9b8cd.js new file mode 100644 index 00000000..5d6bda0c --- /dev/null +++ b/assets/js/b8d96084.21e9b8cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[222],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>m});var a=o(7294);function n(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,a)}return o}function i(e){for(var t=1;t=0||(n[o]=e[o]);return n}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(n[o]=e[o])}return n}var l=a.createContext({}),p=function(e){var t=a.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return a.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},h=a.forwardRef((function(e,t){var o=e.components,n=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=n,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||r;return o?a.createElement(m,i(i({ref:t},u),{},{components:o})):a.createElement(m,i({ref:t},u))}));function m(e,t){var o=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var r=o.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:n,i[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var a=o(7462),n=(o(7294),o(3905));const r={id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 Days of Open Source"]},i=void 0,s={unversionedId:"community/100-days-of-oss",id:"community/100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",description:"Inspired by the great work of the #100DaysOfCode challenge, we're starting #100DaysOfOSS.",source:"@site/docs/community/100-days-of-oss.md",sourceDirName:"community",slug:"/community/100-days-of-oss",permalink:"/community/100-days-of-oss",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/100-days-of-oss.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",sidebarPosition:100,frontMatter:{id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 Days of Open Source"]},sidebar:"docs",previous:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"},next:{title:"Highlights",permalink:"/community/highlights"}},l={},p=[{value:"How to Participate",id:"how-to-participate",level:2},{value:"The Official Kickoff",id:"the-official-kickoff",level:2},{value:"Support",id:"support",level:2},{value:"Where to Start?",id:"where-to-start",level:2},{value:"The Power of the #100DaysOfOSS Challenge",id:"the-power-of-the-100daysofoss-challenge",level:2},{value:"Why join the #100DaysOfOSS Challenge:",id:"why-join-the-100daysofoss-challenge",level:2},{value:"Events",id:"events",level:2},{value:"Intro to Open Source Workshop",id:"intro-to-open-source-workshop",level:3},{value:"Weekly Twitter Spaces",id:"weekly-twitter-spaces",level:3},{value:"Weekly Office Hours",id:"weekly-office-hours",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...o}=e;return(0,n.kt)(c,(0,a.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"Inspired by the great work of the ",(0,n.kt)("a",{parentName:"p",href:"https://www.100daysofcode.com/"},"#100DaysOfCode challenge"),", we're starting #100DaysOfOSS. "),(0,n.kt)("p",null,"With this challenge, OpenSauced hopes to help contributors enhance their skills, expand their abilities, and gain practical experience over 100 days, as well as support maintainers, onboard more contributors into open source, and expand the OSS community. With a focus on open source software (OSS), we encourage contributors of all technical backgrounds to immerse themselves in the world of collaborative development and engage with a supportive community."),(0,n.kt)("h2",{id:"how-to-participate"},"How to Participate"),(0,n.kt)("p",null,"The beauty of this challenge is that you're not required to code. The main purpose is to grow in your understanding of open source software (OSS), contribute in ways that are meaningful to you, and further develop the skills and knowledge you're interested in pursuing. It's all about personal growth and making a positive impact on the OSS community. Because this challenge is focused on growth, you can participate in any way that helps you achieve your goals-including taking days off when you need it."),(0,n.kt)("p",null,"There are numerous ways to participate in the #100DaysOfOSS challenge, including:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},"write issues to identify bugs or suggest new features;"),(0,n.kt)("li",{parentName:"ul"},"triage existing issues to help with prioritization;"),(0,n.kt)("li",{parentName:"ul"},"submit pull requests to contribute code changes;"),(0,n.kt)("li",{parentName:"ul"},"engage in the community by sharing your insights and knowledge;"),(0,n.kt)("li",{parentName:"ul"},"create or participate in discussions related to OSS topics;"),(0,n.kt)("li",{parentName:"ul"},"write a blog post or create content that supports an OSS project; "),(0,n.kt)("li",{parentName:"ul"},"update or write documentation to improve clarity and usability"),(0,n.kt)("li",{parentName:"ul"},"create content: give a talk or presentation on OSS, participate in or even start a Twitter Space write a blog post or create a video; "),(0,n.kt)("li",{parentName:"ul"},"maintain a project: review pull requests, triage issues, and respond to questions;"),(0,n.kt)("li",{parentName:"ul"},"support contributors working on OSS projects, providing guidance and support.")),(0,n.kt)("p",null,"To keep track of your progress, post on social media, your blog, or any other platform you prefer with what progress you made, the day of the challenge indicated by 'D'and include the hashtag #100DaysOfOSS. For example, if you're on day one, you could say, \"Today, I reviewed the documentation for the ",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights"},"OpenSauced/Insights"),' repository. D1 #100daysOfOSS." Then, on day two, you would continue with D2, and so on.'),(0,n.kt)("p",null,"Here's what you can do if you're ready to join this challenge:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://docs.google.com/forms/d/e/1FAIpQLScoq6ORpkzUg3Cqxd3EeNnMP6HIJ3uemPhSHs8sYZALmbpeVg/viewform?usp=sharing"},"Sign up")," with OpenSauced to receive a coupon code for 12 months of free access to all OpenSauced's paid features, and for the chance to opt in to receive updates, event invites, and resources to help you succeed."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/intent/tweet?text=I%27m%20joining%20the%20%23100DaysOfOSS%20challenge%20with%20%40saucedopen%20to%20grow%20my%20skills%2C%20gain%20real-world%20experience%20in%20open%20source%2C%20and%20to%20make%20a%20positive%20impact%20on%20the%20OSS%20Community!"},"tweet out your commitment today")," or share on your platform of choice!")),(0,n.kt)("h2",{id:"the-official-kickoff"},"The Official Kickoff"),(0,n.kt)("p",null,"We're starting 100 days from the end of ",(0,n.kt)("a",{parentName:"p",href:"https://hacktoberfest.com/"},"Hacktoberfest"),", a month-long celebration of open source contributions. Starting July 23rd, we'll provide continuous support, daily inspirational tweets, and engaging events to help you stay motivated and make progress. "),(0,n.kt)("p",null,"Don't worry if you're unable to start on the same day as everyone else. The #100DaysOfOSS challenge is flexible, and you can join in whenever you're ready. Just jump in at any point and begin with day one of your personal challenge. "),(0,n.kt)("h2",{id:"support"},"Support"),(0,n.kt)("p",null,"To make the most of your #100DaysOfOSS journey, here are some additional resources and events you can explore:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Weekly Twitter Spaces:")," Join our weekly Twitter Spaces sessions where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,n.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"Twitter")," to stay updated on upcoming sessions.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Community Events:")," Discover a wide range of events on our ",(0,n.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/community/welcome-to-the-community"},"community docs page"),". Whether it's hack days, workshops, or office hours, these events provide excellent opportunities to learn, collaborate, and find new projects to contribute to.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Weekly Contribution Opportunities:")," If you're actively looking for open source projects to contribute to, check out the ",(0,n.kt)("a",{parentName:"p",href:"https://dev.to/bekahhw/series/23323"},"weekly post")," for new contribution opportunities.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Weekly Office Hours:")," Have questions or need help? Join us on ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/dXvGd8mz"},"Discord")," during our office hours or post in our #100DaysOfOSS channel. We're here to help you succeed!"))),(0,n.kt)("h2",{id:"where-to-start"},"Where to Start?"),(0,n.kt)("p",null,"If you're ready to start your #100DaysOfOSS journey, here are some tips to help you get started:"),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Find a Project:")," Explore the ",(0,n.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"OpenSauced")," website to find a project that interests you. You can also check out the ",(0,n.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/"},"weekly post")," for exciting contribution opportunities."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Take our Intro To Open Source Course:")," If you're new to open source, we recommend taking our ",(0,n.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source")," course to learn more about open source and how to get started."),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("strong",{parentName:"li"},"Record your journey:")," You will learn alot as you navigate this challenge, so we highly recommend using our template repos from ",(0,n.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/100-days-of-oss-template"},"GitHub")," or ",(0,n.kt)("a",{parentName:"li",href:"https://www.notion.so/a0m0rajab/100-Days-Of-Open-Source-2615e66772e14152897002e348c5f1bc?pvs=13"},"Notion")," to help you reflect. Remember, this ",(0,n.kt)("em",{parentName:"li"},"your")," journey, so feel free to customize them how ever you like. ")),(0,n.kt)("h2",{id:"the-power-of-the-100daysofoss-challenge"},"The Power of the #100DaysOfOSS Challenge"),(0,n.kt)("p",null,"The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together. "),(0,n.kt)("p",null,"Our hope is that the community will provide a safe space to discuss challenges, celebrate achievements, and exchange insights, creating an environment that helps individuals stay on track and avoid giving up."),(0,n.kt)("h2",{id:"why-join-the-100daysofoss-challenge"},"Why join the #100DaysOfOSS Challenge:"),(0,n.kt)("ol",null,(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Skill Enhancement"),": By working on real-world projects, you'll gain practical experience and exposure to different projects, documentation, communities, programming languages, frameworks, and tools. You'll also learn from experienced developers, receive feedback on your code, and improve your problem-solving abilities.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Collaboration and Networking"),": You'll have the opportunity to work alongside other contributors, collaborate on shared goals, and build professional relationships. This experience can lead to networking opportunities, mentorship, and exposure to diverse perspectives in tech.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Resume and Portfolio Boost"),": Experience in open source demonstrates your ability to work in a team, follow best practices, and contribute to larger codebases. Open source contributions are tangible evidence of your skills, commitment, and ability to grow.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Learning from Peers"),": By examining the codebase, participating in discussions, engaging in the community, and reviewing pull requests, contributors can gain insights into different approaches to community, projects, coding styles, architecture patterns, and software development best practices, accelerating a developer's learning curve.")),(0,n.kt)("li",{parentName:"ol"},(0,n.kt)("p",{parentName:"li"},(0,n.kt)("strong",{parentName:"p"},"Making a Positive Impact"),": Your contributions benefit other contributors who rely on these projects, fostering a sense of fulfillment and giving back to the community."))),(0,n.kt)("h2",{id:"events"},"Events"),(0,n.kt)("p",null,"We're hosting a series of events to help you stay motivated and make progress on your #100DaysOfOSS journey. Check out the events below and sign up for the ones that interest you."),(0,n.kt)("h3",{id:"intro-to-open-source-workshop"},"Intro to Open Source Workshop"),(0,n.kt)("p",null,"Use the link to sign up for a session."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://lu.ma/9phdjsbq"},"July 24rd, 2023 | 8:30a ET")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://lu.ma/hm8xxk6k"},"August 11th, 2023 | 3p ET")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://lu.ma/2e9ixqx5"},"August 28th, 2023 | 9a ET")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://lu.ma/6pevzkoq"},"September 25th, 2023 | 12p ET"))),(0,n.kt)("h3",{id:"weekly-twitter-spaces"},"Weekly Twitter Spaces"),(0,n.kt)("p",null,"Join us every Tuesday at 10:30a ET for our weekly Twitter Spaces sessions where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,n.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"Twitter")," to stay updated on upcoming sessions."),(0,n.kt)("ul",null,(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1YpKkggOPBdKj"},"July 24 | 11:00a ET")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1vAxRAAnPErJl"},"August 1 | 10:30a")),(0,n.kt)("li",{parentName:"ul"},(0,n.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1gqxvyyvPPnJB"},"August 8 | 10:30a"))),(0,n.kt)("p",null,"More links to come!"),(0,n.kt)("h3",{id:"weekly-office-hours"},"Weekly Office Hours"),(0,n.kt)("p",null,"Have questions or need help? Join us on ",(0,n.kt)("a",{parentName:"p",href:"https://discord.gg/opensauced"},"Discord")," during our office hours every Tuesday at 12p ET or post in our #100DaysOfOSS channel. We're here to help you succeed!"),(0,n.kt)("p",null,"Happy contributing and best of luck on your #100DaysOfOSS adventure!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/b8d96084.ceb6d8a8.js b/assets/js/b8d96084.ceb6d8a8.js deleted file mode 100644 index b4c6119e..00000000 --- a/assets/js/b8d96084.ceb6d8a8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[222],{3905:(e,t,o)=>{o.d(t,{Zo:()=>u,kt:()=>m});var n=o(7294);function a(e,t,o){return t in e?Object.defineProperty(e,t,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[t]=o,e}function r(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),o.push.apply(o,n)}return o}function i(e){for(var t=1;t=0||(a[o]=e[o]);return a}(e,t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,o)&&(a[o]=e[o])}return a}var l=n.createContext({}),p=function(e){var t=n.useContext(l),o=t;return e&&(o="function"==typeof e?e(t):i(i({},t),e)),o},u=function(e){var t=p(e.components);return n.createElement(l.Provider,{value:t},e.children)},c="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return n.createElement(n.Fragment,{},t)}},h=n.forwardRef((function(e,t){var o=e.components,a=e.mdxType,r=e.originalType,l=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),c=p(o),h=a,m=c["".concat(l,".").concat(h)]||c[h]||d[h]||r;return o?n.createElement(m,i(i({ref:t},u),{},{components:o})):n.createElement(m,i({ref:t},u))}));function m(e,t){var o=arguments,a=t&&t.mdxType;if("string"==typeof e||a){var r=o.length,i=new Array(r);i[0]=h;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[c]="string"==typeof e?e:a,i[1]=s;for(var p=2;p{o.r(t),o.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>d,frontMatter:()=>r,metadata:()=>s,toc:()=>p});var n=o(7462),a=(o(7294),o(3905));const r={id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 Days of Open Source"]},i=void 0,s={unversionedId:"community/100-days-of-oss",id:"community/100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",description:"Inspired by the great work of the #100DaysOfCode challenge, we're starting #100DaysOfOSS.",source:"@site/docs/community/100-days-of-oss.md",sourceDirName:"community",slug:"/community/100-days-of-oss",permalink:"/community/100-days-of-oss",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/100-days-of-oss.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",sidebarPosition:100,frontMatter:{id:"100-days-of-oss",title:"#100DaysOfOSS: Growing Skills and Real-World Experience",sidebar_label:"#100DaysOfOSS",keywords:["100 Days of Open Source"]},sidebar:"docs",previous:{title:"Highlight your open source contributions",permalink:"/community/highlights"},next:{title:"FAQS",permalink:"/community/faqs"}},l={},p=[{value:"How to Participate",id:"how-to-participate",level:2},{value:"The Official Kickoff",id:"the-official-kickoff",level:2},{value:"Support",id:"support",level:2},{value:"Where to Start?",id:"where-to-start",level:2},{value:"The Power of the #100DaysOfOSS Challenge",id:"the-power-of-the-100daysofoss-challenge",level:2},{value:"Why join the #100DaysOfOSS Challenge:",id:"why-join-the-100daysofoss-challenge",level:2},{value:"Events",id:"events",level:2},{value:"Intro to Open Source Workshop",id:"intro-to-open-source-workshop",level:3},{value:"Weekly Twitter Spaces",id:"weekly-twitter-spaces",level:3},{value:"Weekly Office Hours",id:"weekly-office-hours",level:3}],u={toc:p},c="wrapper";function d(e){let{components:t,...o}=e;return(0,a.kt)(c,(0,n.Z)({},u,o,{components:t,mdxType:"MDXLayout"}),(0,a.kt)("p",null,"Inspired by the great work of the ",(0,a.kt)("a",{parentName:"p",href:"https://www.100daysofcode.com/"},"#100DaysOfCode challenge"),", we're starting #100DaysOfOSS. "),(0,a.kt)("p",null,"With this challenge, OpenSauced hopes to help contributors enhance their skills, expand their abilities, and gain practical experience over 100 days, as well as support maintainers, onboard more contributors into open source, and expand the OSS community. With a focus on open source software (OSS), we encourage contributors of all technical backgrounds to immerse themselves in the world of collaborative development and engage with a supportive community."),(0,a.kt)("h2",{id:"how-to-participate"},"How to Participate"),(0,a.kt)("p",null,"The beauty of this challenge is that you're not required to code. The main purpose is to grow in your understanding of open source software (OSS), contribute in ways that are meaningful to you, and further develop the skills and knowledge you're interested in pursuing. It's all about personal growth and making a positive impact on the OSS community. Because this challenge is focused on growth, you can participate in any way that helps you achieve your goals-including taking days off when you need it."),(0,a.kt)("p",null,"There are numerous ways to participate in the #100DaysOfOSS challenge, including:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},"write issues to identify bugs or suggest new features;"),(0,a.kt)("li",{parentName:"ul"},"triage existing issues to help with prioritization;"),(0,a.kt)("li",{parentName:"ul"},"submit pull requests to contribute code changes;"),(0,a.kt)("li",{parentName:"ul"},"engage in the community by sharing your insights and knowledge;"),(0,a.kt)("li",{parentName:"ul"},"create or participate in discussions related to OSS topics;"),(0,a.kt)("li",{parentName:"ul"},"write a blog post or create content that supports an OSS project; "),(0,a.kt)("li",{parentName:"ul"},"update or write documentation to improve clarity and usability"),(0,a.kt)("li",{parentName:"ul"},"create content: give a talk or presentation on OSS, participate in or even start a Twitter Space write a blog post or create a video; "),(0,a.kt)("li",{parentName:"ul"},"maintain a project: review pull requests, triage issues, and respond to questions;"),(0,a.kt)("li",{parentName:"ul"},"support contributors working on OSS projects, providing guidance and support.")),(0,a.kt)("p",null,"To keep track of your progress, post on social media, your blog, or any other platform you prefer with what progress you made, the day of the challenge indicated by 'D'and include the hashtag #100DaysOfOSS. For example, if you're on day one, you could say, \"Today, I reviewed the documentation for the ",(0,a.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights"},"OpenSauced/Insights"),' repository. D1 #100daysOfOSS." Then, on day two, you would continue with D2, and so on.'),(0,a.kt)("p",null,"Here's what you can do if you're ready to join this challenge:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://docs.google.com/forms/d/e/1FAIpQLScoq6ORpkzUg3Cqxd3EeNnMP6HIJ3uemPhSHs8sYZALmbpeVg/viewform?usp=sharing"},"Sign up")," with OpenSauced to receive a coupon code for 12 months of free access to all OpenSauced's paid features, and for the chance to opt in to receive updates, event invites, and resources to help you succeed."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/intent/tweet?text=I%27m%20joining%20the%20%23100DaysOfOSS%20challenge%20with%20%40saucedopen%20to%20grow%20my%20skills%2C%20gain%20real-world%20experience%20in%20open%20source%2C%20and%20to%20make%20a%20positive%20impact%20on%20the%20OSS%20Community!"},"tweet out your commitment today")," or share on your platform of choice!")),(0,a.kt)("h2",{id:"the-official-kickoff"},"The Official Kickoff"),(0,a.kt)("p",null,"We're starting 100 days from the end of ",(0,a.kt)("a",{parentName:"p",href:"https://hacktoberfest.com/"},"Hacktoberfest"),", a month-long celebration of open source contributions. Starting July 23rd, we'll provide continuous support, daily inspirational tweets, and engaging events to help you stay motivated and make progress. "),(0,a.kt)("p",null,"Don't worry if you're unable to start on the same day as everyone else. The #100DaysOfOSS challenge is flexible, and you can join in whenever you're ready. Just jump in at any point and begin with day one of your personal challenge. "),(0,a.kt)("h2",{id:"support"},"Support"),(0,a.kt)("p",null,"To make the most of your #100DaysOfOSS journey, here are some additional resources and events you can explore:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly Twitter Spaces:")," Join our weekly Twitter Spaces sessions where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,a.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"Twitter")," to stay updated on upcoming sessions.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Community Events:")," Discover a wide range of events on our ",(0,a.kt)("a",{parentName:"p",href:"https://docs.opensauced.pizza/community/welcome-to-the-community"},"community docs page"),". Whether it's hack days, workshops, or office hours, these events provide excellent opportunities to learn, collaborate, and find new projects to contribute to.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly Contribution Opportunities:")," If you're actively looking for open source projects to contribute to, check out the ",(0,a.kt)("a",{parentName:"p",href:"https://dev.to/bekahhw/series/23323"},"weekly post")," for new contribution opportunities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Weekly Office Hours:")," Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/dXvGd8mz"},"Discord")," during our office hours or post in our #100DaysOfOSS channel. We're here to help you succeed!"))),(0,a.kt)("h2",{id:"where-to-start"},"Where to Start?"),(0,a.kt)("p",null,"If you're ready to start your #100DaysOfOSS journey, here are some tips to help you get started:"),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Find a Project:")," Explore the ",(0,a.kt)("a",{parentName:"li",href:"https://opensauced.pizza/"},"OpenSauced")," website to find a project that interests you. You can also check out the ",(0,a.kt)("a",{parentName:"li",href:"https://dev.to/bekahhw/series/"},"weekly post")," for exciting contribution opportunities."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Take our Intro To Open Source Course:")," If you're new to open source, we recommend taking our ",(0,a.kt)("a",{parentName:"li",href:"https://intro.opensauced.pizza/#/"},"Intro to Open Source")," course to learn more about open source and how to get started."),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("strong",{parentName:"li"},"Record your journey:")," You will learn alot as you navigate this challenge, so we highly recommend using our template repos from ",(0,a.kt)("a",{parentName:"li",href:"https://github.com/open-sauced/100-days-of-oss-template"},"GitHub")," or ",(0,a.kt)("a",{parentName:"li",href:"https://www.notion.so/a0m0rajab/100-Days-Of-Open-Source-2615e66772e14152897002e348c5f1bc?pvs=13"},"Notion")," to help you reflect. Remember, this ",(0,a.kt)("em",{parentName:"li"},"your")," journey, so feel free to customize them how ever you like. ")),(0,a.kt)("h2",{id:"the-power-of-the-100daysofoss-challenge"},"The Power of the #100DaysOfOSS Challenge"),(0,a.kt)("p",null,"The #100DaysOfOSS challenge offers a supportive community where developers can find encouragement, share experiences, and overcome roadblocks together. "),(0,a.kt)("p",null,"Our hope is that the community will provide a safe space to discuss challenges, celebrate achievements, and exchange insights, creating an environment that helps individuals stay on track and avoid giving up."),(0,a.kt)("h2",{id:"why-join-the-100daysofoss-challenge"},"Why join the #100DaysOfOSS Challenge:"),(0,a.kt)("ol",null,(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Skill Enhancement"),": By working on real-world projects, you'll gain practical experience and exposure to different projects, documentation, communities, programming languages, frameworks, and tools. You'll also learn from experienced developers, receive feedback on your code, and improve your problem-solving abilities.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Collaboration and Networking"),": You'll have the opportunity to work alongside other contributors, collaborate on shared goals, and build professional relationships. This experience can lead to networking opportunities, mentorship, and exposure to diverse perspectives in tech.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Resume and Portfolio Boost"),": Experience in open source demonstrates your ability to work in a team, follow best practices, and contribute to larger codebases. Open source contributions are tangible evidence of your skills, commitment, and ability to grow.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Learning from Peers"),": By examining the codebase, participating in discussions, engaging in the community, and reviewing pull requests, contributors can gain insights into different approaches to community, projects, coding styles, architecture patterns, and software development best practices, accelerating a developer's learning curve.")),(0,a.kt)("li",{parentName:"ol"},(0,a.kt)("p",{parentName:"li"},(0,a.kt)("strong",{parentName:"p"},"Making a Positive Impact"),": Your contributions benefit other contributors who rely on these projects, fostering a sense of fulfillment and giving back to the community."))),(0,a.kt)("h2",{id:"events"},"Events"),(0,a.kt)("p",null,"We're hosting a series of events to help you stay motivated and make progress on your #100DaysOfOSS journey. Check out the events below and sign up for the ones that interest you."),(0,a.kt)("h3",{id:"intro-to-open-source-workshop"},"Intro to Open Source Workshop"),(0,a.kt)("p",null,"Use the link to sign up for a session."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lu.ma/9phdjsbq"},"July 24rd, 2023 | 8:30a ET")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lu.ma/hm8xxk6k"},"August 11th, 2023 | 3p ET")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lu.ma/2e9ixqx5"},"August 28th, 2023 | 9a ET")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://lu.ma/6pevzkoq"},"September 25th, 2023 | 12p ET"))),(0,a.kt)("h3",{id:"weekly-twitter-spaces"},"Weekly Twitter Spaces"),(0,a.kt)("p",null,"Join us every Tuesday at 10:30a ET for our weekly Twitter Spaces sessions where we discuss open source topics, share insights, and connect with like-minded individuals. Follow us on ",(0,a.kt)("a",{parentName:"p",href:"https://twitter.com/saucedopen"},"Twitter")," to stay updated on upcoming sessions."),(0,a.kt)("ul",null,(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1YpKkggOPBdKj"},"July 24 | 11:00a ET")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1vAxRAAnPErJl"},"August 1 | 10:30a")),(0,a.kt)("li",{parentName:"ul"},(0,a.kt)("a",{parentName:"li",href:"https://twitter.com/i/spaces/1gqxvyyvPPnJB"},"August 8 | 10:30a"))),(0,a.kt)("p",null,"More links to come!"),(0,a.kt)("h3",{id:"weekly-office-hours"},"Weekly Office Hours"),(0,a.kt)("p",null,"Have questions or need help? Join us on ",(0,a.kt)("a",{parentName:"p",href:"https://discord.gg/opensauced"},"Discord")," during our office hours every Tuesday at 12p ET or post in our #100DaysOfOSS channel. We're here to help you succeed!"),(0,a.kt)("p",null,"Happy contributing and best of luck on your #100DaysOfOSS adventure!"))}d.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/bd503c91.67b61c5b.js b/assets/js/bd503c91.67b61c5b.js new file mode 100644 index 00000000..c54eecbb --- /dev/null +++ b/assets/js/bd503c91.67b61c5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[65],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),d=r,m=u["".concat(l,".").concat(d)]||u[d]||h[d]||i;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(7462),r=(n(7294),n(3905));const i={id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions"]},a=void 0,s={unversionedId:"chrome-extension/pr-description",id:"chrome-extension/pr-description",title:"PR Description",description:"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either Commit Messages or The diff between the files or both, you can even set the length and the tone of the message using the same settings.",source:"@site/docs/chrome-extension/pr-description.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/pr-description",permalink:"/chrome-extension/pr-description",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/pr-description.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions"]},sidebar:"docs",previous:{title:"Code Explanation",permalink:"/chrome-extension/code-explanation"},next:{title:"Highlight",permalink:"/chrome-extension/highlights"}},l={},p=[],c={toc:p},u="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(u,(0,o.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either ",(0,r.kt)("strong",{parentName:"p"},"Commit Messages")," or ",(0,r.kt)("strong",{parentName:"p"},"The diff between the files")," or ",(0,r.kt)("strong",{parentName:"p"},"both"),", you can even set the length and the tone of the message using the same settings."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: This feature is not available on private repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate pr description",src:n(3706).Z,width:"954",height:"405"})),(0,r.kt)("p",null,"You can use this settings to set the strictness and the tone of the generated AI, here is an explanation of those settings:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description")," length:The output length."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Temperature"),": Is the similarity between the input text and the output, higher temperature mean more randomness, lower temperature means more strict to the input."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Max Input length.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description language:")," right now this feature supports: English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Chinese, Korean."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description tone:")," The tone of the output: Exciting, Persuasive, Informative, Humorous, Formal"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description source:")," The source of the description that our AI will use to get the output it can be the next:",(0,r.kt)("strong",{parentName:"li"},"Commit Messages")," or ",(0,r.kt)("strong",{parentName:"li"},"The diff between the files")," or ",(0,r.kt)("strong",{parentName:"li"},"both"))),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241760972-aa10eabe-3c01-4921-956a-ab85bada1575.png",alt:"Setting screenshot"})),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/fa19fa8e-e652-461c-8df4-6e959c9b9943",alt:"ezgif-3-43e056fc1f"})),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights/pull/1197"},"Example PR"),", using the next options: both in the description source, 500 for output length and 3900 max input length, temperature 0.7."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Exciting:")," This PR fixes the follow call and adds a FollowUser function to the contributor-highlight-card. The code has been linted and merged from the beta branch. FollowUser function allows users to follow/unfollow contributors. Copy link and follow/unfollow options are now available in the dropdown menu."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Persuasive:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. It also merges the ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,r.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),". A new ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function has been added to handle follow/unfollow functionality. This PR ensures a smoother user experience."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Informative:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,r.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. The code has been tested and reviewed."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Humorous:")," This PR fixes the follow call and also lints the file. We've also added a new FollowUser function to make the code more readable. Now you can follow/unfollow contributors with ease. We've also merged the beta branch into fix-follow-check."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Formal:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,r.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. This PR also merges the ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,r.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."))}h.isMDXComponent=!0},3706:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-description-e9b163f4d321927a53dd90d340fec85f.gif"}}]); \ No newline at end of file diff --git a/assets/js/bd503c91.bca6a6ca.js b/assets/js/bd503c91.bca6a6ca.js deleted file mode 100644 index 4597eca3..00000000 --- a/assets/js/bd503c91.bca6a6ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[65],{3905:(e,t,n)=>{n.d(t,{Zo:()=>c,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},c=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},u="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,i=e.originalType,l=e.parentName,c=s(e,["components","mdxType","originalType","parentName"]),u=p(n),d=r,m=u["".concat(l,".").concat(d)]||u[d]||h[d]||i;return n?o.createElement(m,a(a({ref:t},c),{},{components:n})):o.createElement(m,a({ref:t},c))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var i=n.length,a=new Array(i);a[0]=d;var s={};for(var l in t)hasOwnProperty.call(t,l)&&(s[l]=t[l]);s.originalType=e,s[u]="string"==typeof e?e:r,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var o=n(7462),r=(n(7294),n(3905));const i={id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions"]},a=void 0,s={unversionedId:"chrome-extension/pr-description",id:"chrome-extension/pr-description",title:"PR Description",description:"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either Commit Messages or The diff between the files or both, you can even set the length and the tone of the message using the same settings.",source:"@site/docs/chrome-extension/pr-description.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/pr-description",permalink:"/chrome-extension/pr-description",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/pr-description.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"pr-description",title:"PR Description",sidebar_label:"PR Description",keywords:["ai","pr descriptions"]},sidebar:"docs",previous:{title:"Code Explanation",permalink:"/chrome-extension/code-explanation"},next:{title:"Highlight",permalink:"/chrome-extension/highlights"}},l={},p=[],c={toc:p},u="wrapper";function h(e){let{components:t,...i}=e;return(0,r.kt)(u,(0,o.Z)({},c,i,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"This will help you to create a PR based on the configuration you have in the extension, it will enable you to create the summary based on either ",(0,r.kt)("strong",{parentName:"p"},"Commit Messages")," or ",(0,r.kt)("strong",{parentName:"p"},"The diff between the files")," or ",(0,r.kt)("strong",{parentName:"p"},"both"),", you can even set the length and the tone of the message using the same settings."),(0,r.kt)("p",null,(0,r.kt)("em",{parentName:"p"},"Note: This feature is not available on private repositories.")),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate pr description",src:n(3706).Z,width:"954",height:"405"})),(0,r.kt)("p",null,"You can use this settings to set the strictness and the tone of the generated AI, here is an explanation of those settings:"),(0,r.kt)("ul",null,(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description")," length:The output length."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Temperature"),": Is the similarity between the input text and the output, higher temperature mean more randomness, lower temperature means more strict to the input."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Max Input length.")),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description language:")," right now this feature supports: English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Chinese, Korean."),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description tone:")," The tone of the output: Exciting, Persuasive, Informative, Humorous, Formal"),(0,r.kt)("li",{parentName:"ul"},(0,r.kt)("strong",{parentName:"li"},"Description source:")," The source of the description that our AI will use to get the output it can be the next:",(0,r.kt)("strong",{parentName:"li"},"Commit Messages")," or ",(0,r.kt)("strong",{parentName:"li"},"The diff between the files")," or ",(0,r.kt)("strong",{parentName:"li"},"both"))),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://user-images.githubusercontent.com/18273833/241760972-aa10eabe-3c01-4921-956a-ab85bada1575.png",alt:"Setting screenshot"})),(0,r.kt)("p",null,(0,r.kt)("img",{parentName:"p",src:"https://github.com/open-sauced/docs.opensauced.pizza/assets/18273833/fa19fa8e-e652-461c-8df4-6e959c9b9943",alt:"ezgif-3-43e056fc1f"})),(0,r.kt)("p",null,(0,r.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/insights/pull/1197"},"Example PR"),", using the next options: both in the description source, 500 for output length and 3900 max input length, temperature 0.7."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Exciting:")," This PR fixes the follow call and adds a FollowUser function to the contributor-highlight-card. The code has been linted and merged from the beta branch. FollowUser function allows users to follow/unfollow contributors. Copy link and follow/unfollow options are now available in the dropdown menu."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Persuasive:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. It also merges the ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,r.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),". A new ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function has been added to handle follow/unfollow functionality. This PR ensures a smoother user experience."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Informative:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,r.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. The code has been tested and reviewed."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Humorous:")," This PR fixes the follow call and also lints the file. We've also added a new FollowUser function to make the code more readable. Now you can follow/unfollow contributors with ease. We've also merged the beta branch into fix-follow-check."),(0,r.kt)("p",null,(0,r.kt)("strong",{parentName:"p"},"Formal:")," This PR fixes the follow call and linting issues in the ",(0,r.kt)("inlineCode",{parentName:"p"},"ContributorHighlightCard")," component. A new function ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," has been added to handle the follow/unfollow functionality. The ",(0,r.kt)("inlineCode",{parentName:"p"},"useFollowUser")," hook has been moved inside this function. The ",(0,r.kt)("inlineCode",{parentName:"p"},"FollowUser")," function is now used in place of the previous follow/unfollow code block. This PR also merges the ",(0,r.kt)("inlineCode",{parentName:"p"},"beta")," branch into ",(0,r.kt)("inlineCode",{parentName:"p"},"fix-follow-check"),"."))}h.isMDXComponent=!0},3706:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-description-e9b163f4d321927a53dd90d340fec85f.gif"}}]); \ No newline at end of file diff --git a/assets/js/c5dd48ab.83126c91.js b/assets/js/c5dd48ab.83126c91.js new file mode 100644 index 00000000..4d85a827 --- /dev/null +++ b/assets/js/c5dd48ab.83126c91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[994],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(n),g=i,m=u["".concat(s,".").concat(g)]||u[g]||d[g]||l;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=g;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,r[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(7462),i=(n(7294),n(3905));const l={id:"resolve-merge-conflicts",title:"Resolve merge conflicts",sidebar_label:"Resolve merge conflicts",keywords:["Resolve merge conflicts"]},r=void 0,o={unversionedId:"technical/resolve-merge-conflicts",id:"technical/resolve-merge-conflicts",title:"Resolve merge conflicts",description:"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating npm-shrinkwrap.json.",source:"@site/docs/technical/resolve-merge-conflicts.md",sourceDirName:"technical",slug:"/technical/resolve-merge-conflicts",permalink:"/technical/resolve-merge-conflicts",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/technical/resolve-merge-conflicts.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"resolve-merge-conflicts",title:"Resolve merge conflicts",sidebar_label:"Resolve merge conflicts",keywords:["Resolve merge conflicts"]},sidebar:"docs",previous:{title:"Introduction to storybook",permalink:"/technical/introduction-to-storybook"},next:{title:"Setting up a new repository",permalink:"/maintainers/setting-up-a-new-repository"}},s={},c=[{value:"Repository setup",id:"repository-setup",level:2},{value:"Update",id:"update",level:2},{value:"Merge with upstream",id:"merge-with-upstream",level:2},{value:"Review changes",id:"review-changes",level:2},{value:"Resolve conflicts",id:"resolve-conflicts",level:2},{value:"Commit changes",id:"commit-changes",level:2},{value:"Push updated pull request",id:"push-updated-pull-request",level:2},{value:"Review your pull request",id:"review-your-pull-request",level:2},{value:"Dependency updates",id:"dependency-updates",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...l}=e;return(0,i.kt)(u,(0,a.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating ",(0,i.kt)("inlineCode",{parentName:"p"},"npm-shrinkwrap.json"),"."),(0,i.kt)("p",null,"To better illustrate the commands listed here at will use commits and screenshots from ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/pull/1078"},"open-sauced#1078"),"."),(0,i.kt)("p",null,"In literally every case it is advised ",(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"not"))," to use the ",(0,i.kt)("inlineCode",{parentName:"p"},"Resolve conflicts")," button as follows:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"don't resolve conflicts like this",src:n(340).Z,width:"1690",height:"1144"})),(0,i.kt)("p",null,"The above will at best achieve a ready to merge pull request with visible inconsistencies."),(0,i.kt)("h2",{id:"repository-setup"},"Repository setup"),(0,i.kt)("p",null,"Fork and clone the project using the ",(0,i.kt)("inlineCode",{parentName:"p"},"gh")," command line interface:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"gh repo clone 0-vortex/open-sauced\n")),(0,i.kt)("p",null,"Running ",(0,i.kt)("inlineCode",{parentName:"p"},"git remote -v")," will output:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:0-vortex/open-sauced.git (fetch)\norigin git@github.com:0-vortex/open-sauced.git (push)\nupstream git@github.com:open-sauced/open-sauced.git (fetch)\nupstream git@github.com:open-sauced/open-sauced.git (push)\n")),(0,i.kt)("p",null,"Fork and clone the project using the ",(0,i.kt)("inlineCode",{parentName:"p"},"git")," command line interface:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone git@github.com:0-vortex/open-sauced.git\n")),(0,i.kt)("p",null,"Running ",(0,i.kt)("inlineCode",{parentName:"p"},"git remote -v")," will output:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:0-vortex/open-sauced.git (fetch)\norigin git@github.com:0-vortex/open-sauced.git (push)\n")),(0,i.kt)("p",null,"As an additional step for this tutorial we need to add the ",(0,i.kt)("inlineCode",{parentName:"p"},"upstream")," remote:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git remote add upstream git@github.com:open-sauced/open-sauced.git\n")),(0,i.kt)("h2",{id:"update"},"Update"),(0,i.kt)("p",null,"First get the default branch changes:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git fetch origin --recurse-submodules=no --progress --prune\ngit checkout main --\ngit fetch upstream --recurse-submodules=no --progress --prune\ngit merge upstream/main --no-stat -v\n")),(0,i.kt)("h2",{id:"merge-with-upstream"},"Merge with upstream"),(0,i.kt)("p",null,"Then merge with the forked up-to-date ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," (default branch):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git merge origin/main --no-ff -v\n")),(0,i.kt)("p",null,"You will see something similar to:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"proper merge but results in conflicts",src:n(5396).Z,width:"1154",height:"958"})),(0,i.kt)("h2",{id:"review-changes"},"Review changes"),(0,i.kt)("p",null,"To see what the changes are do a:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git diff package.json\n")),(0,i.kt)("p",null,"It will look like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"review merge conflicts",src:n(3032).Z,width:"1236",height:"766"})),(0,i.kt)("h2",{id:"resolve-conflicts"},"Resolve conflicts"),(0,i.kt)("p",null,"Since this pull request does not modify the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file it is safe to fast forward the changes from ",(0,i.kt)("inlineCode",{parentName:"p"},"origin/main"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# overwrite with origin/main changes\ngit show :3:package.json > package.json\n")),(0,i.kt)("p",null,"A more traditional way of doing the same thing is:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# make a local copy of all changes and use --theirs\n# --theirs strategy overwrite with origin/main changes\ngit show :1:package.json > base.package.json\ngit show :2:package.json > branch.package.json\ngit show :3:package.json > head.package.json\ngit merge-file -p --theirs \\\n branch.package.json base.package.json head.package.json > package.json\n")),(0,i.kt)("h2",{id:"commit-changes"},"Commit changes"),(0,i.kt)("p",null,"Not making any assumptions about editor preferences running this will open the configured editor with a default commit message:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git commit\n")),(0,i.kt)("p",null,"That should look like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"commit merge message",src:n(7140).Z,width:"1286",height:"1734"})),(0,i.kt)("h2",{id:"push-updated-pull-request"},"Push updated pull request"),(0,i.kt)("p",null,"One more security check to make sure your branch has not diverged and push:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git status\ngit push\n")),(0,i.kt)("p",null,"It should look something like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"push updated pr",src:n(1319).Z,width:"1350",height:"980"})),(0,i.kt)("h2",{id:"review-your-pull-request"},"Review your pull request"),(0,i.kt)("p",null,"The result of the above commands can be viewed at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/pull/1078/commits/283ff8cd788c550309ff0d1d5a9a5a97ec0731b2"},"283ff8cd788c550309ff0d1d5a9a5a97ec0731b2")),(0,i.kt)("p",null,"GitHub will conveniently display only you merge conflict changes:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"view merge commit",src:n(3497).Z,width:"2436",height:"1150"})),(0,i.kt)("p",null,"And it's ready to merge:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"ready to merge",src:n(70).Z,width:"1696",height:"884"})),(0,i.kt)("h2",{id:"dependency-updates"},"Dependency updates"),(0,i.kt)("p",null,"When dealing with dependency and lock file updates there are multiple use cases to consider, however as a baseline, the OpenSauced triage team will not prioritize parallel main features as seen in the roadmap."),(0,i.kt)("p",null,"However when that happens, it is advised to:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fast-forward ",(0,i.kt)("inlineCode",{parentName:"li"},"npm-shrinkwrap.json")," "),(0,i.kt)("li",{parentName:"ul"},"fast-forward deleted and modified ",(0,i.kt)("inlineCode",{parentName:"li"},"upstream/beta")," changes to ",(0,i.kt)("inlineCode",{parentName:"li"},"package.json")," "),(0,i.kt)("li",{parentName:"ul"},"fast-forward your added lines to ",(0,i.kt)("inlineCode",{parentName:"li"},"package.json")),(0,i.kt)("li",{parentName:"ul"},"run ",(0,i.kt)("inlineCode",{parentName:"li"},"npm ci")," to delete local modules and create dependency resolution from ",(0,i.kt)("inlineCode",{parentName:"li"},"upstream/beta"))),(0,i.kt)("p",null,"Visual diffing is advised however not following the git commit history procedure will result in a rogue pull request that scope creeps into dependency updates."),(0,i.kt)("p",null,"Generally speaking, just adding things to a lockfile will not be troublesome and since this is a licensed project, we should be careful when adding dependencies."))}d.isMDXComponent=!0},7140:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-commit-message-2b517ccf8811b09d5091cb9c300c4993.png"},340:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-dont-do-9703e3dffc76ef8c046f2fd7b506676f.png"},5396:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-merge-conflicts-41673d73e41a1d513254f5274231c03a.png"},1319:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-merge-success-4ba32cb94dddea19d9691bccbef974b9.png"},70:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-ready-to-merge-c0f138669dee46efafb0d584c170020e.png"},3032:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-review-conflicts-5df5a5e4934e39d9e07bcd96e53d7c3f.png"},3497:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-view-merge-commit-1c4055497fd56038e1ba46a6ae1886ab.png"}}]); \ No newline at end of file diff --git a/assets/js/c5dd48ab.9b778863.js b/assets/js/c5dd48ab.9b778863.js deleted file mode 100644 index bc529327..00000000 --- a/assets/js/c5dd48ab.9b778863.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[994],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>m});var a=n(7294);function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function r(e){for(var t=1;t=0||(i[n]=e[n]);return i}(e,t);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}var s=a.createContext({}),c=function(e){var t=a.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):r(r({},t),e)),n},p=function(e){var t=c(e.components);return a.createElement(s.Provider,{value:t},e.children)},u="mdxType",d={inlineCode:"code",wrapper:function(e){var t=e.children;return a.createElement(a.Fragment,{},t)}},g=a.forwardRef((function(e,t){var n=e.components,i=e.mdxType,l=e.originalType,s=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),u=c(n),g=i,m=u["".concat(s,".").concat(g)]||u[g]||d[g]||l;return n?a.createElement(m,r(r({ref:t},p),{},{components:n})):a.createElement(m,r({ref:t},p))}));function m(e,t){var n=arguments,i=t&&t.mdxType;if("string"==typeof e||i){var l=n.length,r=new Array(l);r[0]=g;var o={};for(var s in t)hasOwnProperty.call(t,s)&&(o[s]=t[s]);o.originalType=e,o[u]="string"==typeof e?e:i,r[1]=o;for(var c=2;c{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>c});var a=n(7462),i=(n(7294),n(3905));const l={id:"resolve-merge-conflicts",title:"Resolve merge conflicts",sidebar_label:"Resolve merge conflicts",keywords:["Resolve merge conflicts"]},r=void 0,o={unversionedId:"technical/resolve-merge-conflicts",id:"technical/resolve-merge-conflicts",title:"Resolve merge conflicts",description:"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating npm-shrinkwrap.json.",source:"@site/docs/technical/resolve-merge-conflicts.md",sourceDirName:"technical",slug:"/technical/resolve-merge-conflicts",permalink:"/technical/resolve-merge-conflicts",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/technical/resolve-merge-conflicts.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"resolve-merge-conflicts",title:"Resolve merge conflicts",sidebar_label:"Resolve merge conflicts",keywords:["Resolve merge conflicts"]},sidebar:"docs",previous:{title:"Introduction to storybook",permalink:"/technical/introduction-to-storybook"},next:{title:"Setting up a new repository",permalink:"/maintainers/setting-up-a-new-repository"}},s={},c=[{value:"Repository setup",id:"repository-setup",level:2},{value:"Update",id:"update",level:2},{value:"Merge with upstream",id:"merge-with-upstream",level:2},{value:"Review changes",id:"review-changes",level:2},{value:"Resolve conflicts",id:"resolve-conflicts",level:2},{value:"Commit changes",id:"commit-changes",level:2},{value:"Push updated pull request",id:"push-updated-pull-request",level:2},{value:"Review your pull request",id:"review-your-pull-request",level:2},{value:"Dependency updates",id:"dependency-updates",level:2}],p={toc:c},u="wrapper";function d(e){let{components:t,...l}=e;return(0,i.kt)(u,(0,a.Z)({},p,l,{components:t,mdxType:"MDXLayout"}),(0,i.kt)("p",null,"Pretty often when opening a pull request it is very likely to run into merge conflicts as the release process is generally updating ",(0,i.kt)("inlineCode",{parentName:"p"},"npm-shrinkwrap.json"),"."),(0,i.kt)("p",null,"To better illustrate the commands listed here at will use commits and screenshots from ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/pull/1078"},"open-sauced#1078"),"."),(0,i.kt)("p",null,"In literally every case it is advised ",(0,i.kt)("em",{parentName:"p"},(0,i.kt)("strong",{parentName:"em"},"not"))," to use the ",(0,i.kt)("inlineCode",{parentName:"p"},"Resolve conflicts")," button as follows:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"don't resolve conflicts like this",src:n(340).Z,width:"1690",height:"1144"})),(0,i.kt)("p",null,"The above will at best achieve a ready to merge pull request with visible inconsistencies."),(0,i.kt)("h2",{id:"repository-setup"},"Repository setup"),(0,i.kt)("p",null,"Fork and clone the project using the ",(0,i.kt)("inlineCode",{parentName:"p"},"gh")," command line interface:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"gh repo clone 0-vortex/open-sauced\n")),(0,i.kt)("p",null,"Running ",(0,i.kt)("inlineCode",{parentName:"p"},"git remote -v")," will output:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:0-vortex/open-sauced.git (fetch)\norigin git@github.com:0-vortex/open-sauced.git (push)\nupstream git@github.com:open-sauced/open-sauced.git (fetch)\nupstream git@github.com:open-sauced/open-sauced.git (push)\n")),(0,i.kt)("p",null,"Fork and clone the project using the ",(0,i.kt)("inlineCode",{parentName:"p"},"git")," command line interface:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git clone git@github.com:0-vortex/open-sauced.git\n")),(0,i.kt)("p",null,"Running ",(0,i.kt)("inlineCode",{parentName:"p"},"git remote -v")," will output:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"origin git@github.com:0-vortex/open-sauced.git (fetch)\norigin git@github.com:0-vortex/open-sauced.git (push)\n")),(0,i.kt)("p",null,"As an additional step for this tutorial we need to add the ",(0,i.kt)("inlineCode",{parentName:"p"},"upstream")," remote:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git remote add upstream git@github.com:open-sauced/open-sauced.git\n")),(0,i.kt)("h2",{id:"update"},"Update"),(0,i.kt)("p",null,"First get the default branch changes:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git fetch origin --recurse-submodules=no --progress --prune\ngit checkout main --\ngit fetch upstream --recurse-submodules=no --progress --prune\ngit merge upstream/main --no-stat -v\n")),(0,i.kt)("h2",{id:"merge-with-upstream"},"Merge with upstream"),(0,i.kt)("p",null,"Then merge with the forked up-to-date ",(0,i.kt)("inlineCode",{parentName:"p"},"beta")," (default branch):"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git merge origin/main --no-ff -v\n")),(0,i.kt)("p",null,"You will see something similar to:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"proper merge but results in conflicts",src:n(5396).Z,width:"1154",height:"958"})),(0,i.kt)("h2",{id:"review-changes"},"Review changes"),(0,i.kt)("p",null,"To see what the changes are do a:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git diff package.json\n")),(0,i.kt)("p",null,"It will look like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"review merge conflicts",src:n(3032).Z,width:"1236",height:"766"})),(0,i.kt)("h2",{id:"resolve-conflicts"},"Resolve conflicts"),(0,i.kt)("p",null,"Since this pull request does not modify the ",(0,i.kt)("inlineCode",{parentName:"p"},"package.json")," file it is safe to fast forward the changes from ",(0,i.kt)("inlineCode",{parentName:"p"},"origin/main"),":"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# overwrite with origin/main changes\ngit show :3:package.json > package.json\n")),(0,i.kt)("p",null,"A more traditional way of doing the same thing is:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"# make a local copy of all changes and use --theirs\n# --theirs strategy overwrite with origin/main changes\ngit show :1:package.json > base.package.json\ngit show :2:package.json > branch.package.json\ngit show :3:package.json > head.package.json\ngit merge-file -p --theirs \\\n branch.package.json base.package.json head.package.json > package.json\n")),(0,i.kt)("h2",{id:"commit-changes"},"Commit changes"),(0,i.kt)("p",null,"Not making any assumptions about editor preferences running this will open the configured editor with a default commit message:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git commit\n")),(0,i.kt)("p",null,"That should look like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"commit merge message",src:n(7140).Z,width:"1286",height:"1734"})),(0,i.kt)("h2",{id:"push-updated-pull-request"},"Push updated pull request"),(0,i.kt)("p",null,"One more security check to make sure your branch has not diverged and push:"),(0,i.kt)("pre",null,(0,i.kt)("code",{parentName:"pre",className:"language-shell"},"git status\ngit push\n")),(0,i.kt)("p",null,"It should look something like this:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"push updated pr",src:n(1319).Z,width:"1350",height:"980"})),(0,i.kt)("h2",{id:"review-your-pull-request"},"Review your pull request"),(0,i.kt)("p",null,"The result of the above commands can be viewed at ",(0,i.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/open-sauced/pull/1078/commits/283ff8cd788c550309ff0d1d5a9a5a97ec0731b2"},"283ff8cd788c550309ff0d1d5a9a5a97ec0731b2")),(0,i.kt)("p",null,"GitHub will conveniently display only you merge conflict changes:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"view merge commit",src:n(3497).Z,width:"2436",height:"1150"})),(0,i.kt)("p",null,"And it's ready to merge:"),(0,i.kt)("p",null,(0,i.kt)("img",{alt:"ready to merge",src:n(70).Z,width:"1696",height:"884"})),(0,i.kt)("h2",{id:"dependency-updates"},"Dependency updates"),(0,i.kt)("p",null,"When dealing with dependency and lock file updates there are multiple use cases to consider, however as a baseline, the OpenSauced triage team will not prioritize parallel main features as seen in the roadmap."),(0,i.kt)("p",null,"However when that happens, it is advised to:"),(0,i.kt)("ul",null,(0,i.kt)("li",{parentName:"ul"},"fast-forward ",(0,i.kt)("inlineCode",{parentName:"li"},"npm-shrinkwrap.json")," "),(0,i.kt)("li",{parentName:"ul"},"fast-forward deleted and modified ",(0,i.kt)("inlineCode",{parentName:"li"},"upstream/beta")," changes to ",(0,i.kt)("inlineCode",{parentName:"li"},"package.json")," "),(0,i.kt)("li",{parentName:"ul"},"fast-forward your added lines to ",(0,i.kt)("inlineCode",{parentName:"li"},"package.json")),(0,i.kt)("li",{parentName:"ul"},"run ",(0,i.kt)("inlineCode",{parentName:"li"},"npm ci")," to delete local modules and create dependency resolution from ",(0,i.kt)("inlineCode",{parentName:"li"},"upstream/beta"))),(0,i.kt)("p",null,"Visual diffing is advised however not following the git commit history procedure will result in a rogue pull request that scope creeps into dependency updates."),(0,i.kt)("p",null,"Generally speaking, just adding things to a lockfile will not be troublesome and since this is a licensed project, we should be careful when adding dependencies."))}d.isMDXComponent=!0},7140:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-commit-message-2b517ccf8811b09d5091cb9c300c4993.png"},340:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-dont-do-9703e3dffc76ef8c046f2fd7b506676f.png"},5396:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-merge-conflicts-41673d73e41a1d513254f5274231c03a.png"},1319:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-merge-success-4ba32cb94dddea19d9691bccbef974b9.png"},70:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-ready-to-merge-c0f138669dee46efafb0d584c170020e.png"},3032:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-review-conflicts-5df5a5e4934e39d9e07bcd96e53d7c3f.png"},3497:(e,t,n)=>{n.d(t,{Z:()=>a});const a=n.p+"assets/images/contributing-resolve-merge-conflicts-view-merge-commit-1c4055497fd56038e1ba46a6ae1886ab.png"}}]); \ No newline at end of file diff --git a/assets/js/d63f70d0.59a8f0c0.js b/assets/js/d63f70d0.7b8a4790.js similarity index 74% rename from assets/js/d63f70d0.59a8f0c0.js rename to assets/js/d63f70d0.7b8a4790.js index 445715e1..40bc3b54 100644 --- a/assets/js/d63f70d0.59a8f0c0.js +++ b/assets/js/d63f70d0.7b8a4790.js @@ -1 +1 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[364],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(n),f=r,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return n?o.createElement(m,i(i({ref:t},s),{},{components:n})):o.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:r,i[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=n(7462),r=(n(7294),n(3905));const a={id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations"]},i=void 0,c={unversionedId:"chrome-extension/code-explanation",id:"chrome-extension/code-explanation",title:"Code Explanation",description:"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.",source:"@site/docs/chrome-extension/code-explanation.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/code-explanation",permalink:"/chrome-extension/code-explanation",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/code-explanation.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations"]},sidebar:"docs",previous:{title:"Introduction to the Chrome Extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension"},next:{title:"PR Description",permalink:"/chrome-extension/pr-description"}},l={},p=[],s={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate code refactor",src:n(8528).Z,width:"828",height:"481"})))}u.isMDXComponent=!0},8528:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-code-explain-4dde1737ae1b0792fc287750ae7de5fd.gif"}}]); \ No newline at end of file +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[364],{3905:(e,t,n)=>{n.d(t,{Zo:()=>s,kt:()=>m});var o=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function i(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var l=o.createContext({}),p=function(e){var t=o.useContext(l),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},s=function(e){var t=p(e.components);return o.createElement(l.Provider,{value:t},e.children)},d="mdxType",u={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},f=o.forwardRef((function(e,t){var n=e.components,r=e.mdxType,a=e.originalType,l=e.parentName,s=c(e,["components","mdxType","originalType","parentName"]),d=p(n),f=r,m=d["".concat(l,".").concat(f)]||d[f]||u[f]||a;return n?o.createElement(m,i(i({ref:t},s),{},{components:n})):o.createElement(m,i({ref:t},s))}));function m(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var l in t)hasOwnProperty.call(t,l)&&(c[l]=t[l]);c.originalType=e,c[d]="string"==typeof e?e:r,i[1]=c;for(var p=2;p{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>c,toc:()=>p});var o=n(7462),r=(n(7294),n(3905));const a={id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations"]},i=void 0,c={unversionedId:"chrome-extension/code-explanation",id:"chrome-extension/code-explanation",title:"Code Explanation",description:"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.",source:"@site/docs/chrome-extension/code-explanation.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/code-explanation",permalink:"/chrome-extension/code-explanation",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/code-explanation.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"code-explanation",title:"Code Explanation",sidebar_label:"Code Explanation",keywords:["ai","code explanations"]},sidebar:"docs",previous:{title:"Introduction to the Chrome Extension",permalink:"/chrome-extension/introduction-to-the-chrome-extension"},next:{title:"PR Description",permalink:"/chrome-extension/pr-description"}},l={},p=[],s={toc:p},d="wrapper";function u(e){let{components:t,...a}=e;return(0,r.kt)(d,(0,o.Z)({},s,a,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"Generate an explanation for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"generate code refactor",src:n(8528).Z,width:"828",height:"481"})))}u.isMDXComponent=!0},8528:(e,t,n)=>{n.d(t,{Z:()=>o});const o=n.p+"assets/images/pr-code-explain-4dde1737ae1b0792fc287750ae7de5fd.gif"}}]); \ No newline at end of file diff --git a/assets/js/d7337b1f.12022483.js b/assets/js/d7337b1f.12022483.js new file mode 100644 index 00000000..ad7d21e2 --- /dev/null +++ b/assets/js/d7337b1f.12022483.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[151],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function i(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):i(i({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,a=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(n),f=o,g=u["".concat(s,".").concat(f)]||u[f]||p[f]||a;return n?r.createElement(g,i(i({ref:t},d),{},{components:n})):r.createElement(g,i({ref:t},d))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var a=n.length,i=new Array(a);i[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,i[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const a={id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing"]},i=void 0,c={unversionedId:"chrome-extension/refactoring-and-testing",id:"chrome-extension/refactoring-and-testing",title:"Refactoring and Testing",description:"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.",source:"@site/docs/chrome-extension/refactoring-and-testing.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/refactoring-and-testing",permalink:"/chrome-extension/refactoring-and-testing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/refactoring-and-testing.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing"]},sidebar:"docs",previous:{title:"Quick Access to OpenSauced",permalink:"/chrome-extension/opensauced-links"},next:{title:"Insights and Invitations'",permalink:"/chrome-extension/viewing-insights-and-invitations"}},s={},l=[],d={toc:l},u="wrapper";function p(e){let{components:t,...a}=e;return(0,o.kt)(u,(0,r.Z)({},d,a,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(338).Z,width:"828",height:"481"})),(0,o.kt)("p",null,"Generate tests for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(3681).Z,width:"828",height:"481"})))}p.isMDXComponent=!0},338:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-refactor-2b26ff383ff3a6351a5b4feda98abafd.gif"},3681:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-test-90211422d3a31f62a0d0c8e073d7454a.gif"}}]); \ No newline at end of file diff --git a/assets/js/d7337b1f.7376d954.js b/assets/js/d7337b1f.7376d954.js deleted file mode 100644 index ed6f5d2e..00000000 --- a/assets/js/d7337b1f.7376d954.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[151],{3905:(e,t,n)=>{n.d(t,{Zo:()=>d,kt:()=>g});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var s=r.createContext({}),l=function(e){var t=r.useContext(s),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},d=function(e){var t=l(e.components);return r.createElement(s.Provider,{value:t},e.children)},u="mdxType",p={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},f=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,s=e.parentName,d=c(e,["components","mdxType","originalType","parentName"]),u=l(n),f=o,g=u["".concat(s,".").concat(f)]||u[f]||p[f]||i;return n?r.createElement(g,a(a({ref:t},d),{},{components:n})):r.createElement(g,a({ref:t},d))}));function g(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=f;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[u]="string"==typeof e?e:o,a[1]=c;for(var l=2;l{n.r(t),n.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var r=n(7462),o=(n(7294),n(3905));const i={id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing"]},a=void 0,c={unversionedId:"chrome-extension/refactoring-and-testing",id:"chrome-extension/refactoring-and-testing",title:"Refactoring and Testing",description:"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line.",source:"@site/docs/chrome-extension/refactoring-and-testing.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/refactoring-and-testing",permalink:"/chrome-extension/refactoring-and-testing",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/refactoring-and-testing.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"refactoring-and-testing",title:"Refactoring and Testing",sidebar_label:"Refactoring and Testing",keywords:["refactoring","testing"]},sidebar:"docs",previous:{title:"Quick Access to OpenSauced",permalink:"/chrome-extension/opensauced-links"},next:{title:"Insights and Invitations'",permalink:"/chrome-extension/viewing-insights-and-invitations"}},s={},l=[],d={toc:l},u="wrapper";function p(e){let{components:t,...i}=e;return(0,o.kt)(u,(0,r.Z)({},d,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"Refactor a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(338).Z,width:"828",height:"481"})),(0,o.kt)("p",null,"Generate tests for a block of code by using the blue plus button that is displayed when hovering over a line. To select a block of code, hover over the starting line, click and drag the blue plus button until the desired line."),(0,o.kt)("p",null,(0,o.kt)("img",{alt:"generate code refactor",src:n(3681).Z,width:"828",height:"481"})))}p.isMDXComponent=!0},338:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-refactor-2b26ff383ff3a6351a5b4feda98abafd.gif"},3681:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/images/pr-code-test-90211422d3a31f62a0d0c8e073d7454a.gif"}}]); \ No newline at end of file diff --git a/assets/js/d7cc95fa.7abb9578.js b/assets/js/d7cc95fa.7abb9578.js deleted file mode 100644 index 4d37e619..00000000 --- a/assets/js/d7cc95fa.7abb9578.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[812],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>f});var r=n(7294);function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function a(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var c=r.createContext({}),p=function(e){var t=r.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return r.createElement(c.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return r.createElement(r.Fragment,{},t)}},g=r.forwardRef((function(e,t){var n=e.components,o=e.mdxType,i=e.originalType,c=e.parentName,u=s(e,["components","mdxType","originalType","parentName"]),d=p(n),g=o,f=d["".concat(c,".").concat(g)]||d[g]||l[g]||i;return n?r.createElement(f,a(a({ref:t},u),{},{components:n})):r.createElement(f,a({ref:t},u))}));function f(e,t){var n=arguments,o=t&&t.mdxType;if("string"==typeof e||o){var i=n.length,a=new Array(i);a[0]=g;var s={};for(var c in t)hasOwnProperty.call(t,c)&&(s[c]=t[c]);s.originalType=e,s[d]="string"==typeof e?e:o,a[1]=s;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>s,toc:()=>p});var r=n(7462),o=(n(7294),n(3905));const i={id:"insight-pages",title:"View your favorite projects in the Insight pages",sidebar_label:"View your favorite projects in the Insight pages",keywords:["insight-pages"]},a=void 0,s={unversionedId:"community/insight-pages",id:"community/insight-pages",title:"View your favorite projects in the Insight pages",description:"The Insights feature is where you pick and view the repositories that you often contribute to. It's a great way to stay updated on their growth.",source:"@site/docs/community/insight-pages.md",sourceDirName:"community",slug:"/community/insight-pages",permalink:"/community/insight-pages",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/insight-pages.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"insight-pages",title:"View your favorite projects in the Insight pages",sidebar_label:"View your favorite projects in the Insight pages",keywords:["insight-pages"]},sidebar:"docs",previous:{title:"FAQS",permalink:"/community/faqs"},next:{title:"Introduction to contributing",permalink:"/contributing/introduction-to-contributing"}},c={},p=[],u={toc:p},d="wrapper";function l(e){let{components:t,...i}=e;return(0,o.kt)(d,(0,r.Z)({},u,i,{components:t,mdxType:"MDXLayout"}),(0,o.kt)("p",null,"The Insights feature is where you pick and view the repositories that you often contribute to. It's a great way to stay updated on their growth.\n",(0,o.kt)("a",{target:"_blank",href:n(1032).Z},"insight-pages-demo")),(0,o.kt)("p",null,"Craving for more? Check out the ",(0,o.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/05-how-to-contribute-to-open-source.md#discovering-open-source-with-opensauced"},"Discovering Open-Source with OpenSauced")," section in our free beginner course on open source."))}l.isMDXComponent=!0},1032:(e,t,n)=>{n.d(t,{Z:()=>r});const r=n.p+"assets/files/insight-page-demo-cc2291df69361b2d476ccffcdbd1ee25.gif"}}]); \ No newline at end of file diff --git a/assets/js/f299caa6.28b96f33.js b/assets/js/f299caa6.28b96f33.js deleted file mode 100644 index 8816382c..00000000 --- a/assets/js/f299caa6.28b96f33.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[278],{3905:(e,t,n)=>{n.d(t,{Zo:()=>u,kt:()=>g});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=i.createContext({}),p=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},u=function(e){var t=p(e.components);return i.createElement(c.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},h=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,u=o(e,["components","mdxType","originalType","parentName"]),d=p(n),h=r,g=d["".concat(c,".").concat(h)]||d[h]||l[h]||s;return n?i.createElement(g,a(a({ref:t},u),{},{components:n})):i.createElement(g,a({ref:t},u))}));function g(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,a=new Array(s);a[0]=h;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:r,a[1]=o;for(var p=2;p{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>p});var i=n(7462),r=(n(7294),n(3905));const s={id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations'",keywords:["github","insights and invitations"]},a=void 0,o={unversionedId:"chrome-extension/viewing-insights-and-invitations",id:"chrome-extension/viewing-insights-and-invitations",title:"Viewing Insights and Invitations",description:"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.",source:"@site/docs/chrome-extension/viewing-insights-and-invitations.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/viewing-insights-and-invitations",permalink:"/chrome-extension/viewing-insights-and-invitations",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/viewing-insights-and-invitations.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations'",keywords:["github","insights and invitations"]},sidebar:"docs",previous:{title:"Refactoring and Testing",permalink:"/chrome-extension/refactoring-and-testing"}},c={},p=[{value:"Invite GitHub users to join OpenSauced with a single click",id:"invite-github-users-to-join-opensauced-with-a-single-click",level:3},{value:"View GitHub users' OpenSauced profiles and connect with them",id:"view-github-users-opensauced-profiles-and-connect-with-them",level:3}],u={toc:p},d="wrapper";function l(e){let{components:t,...s}=e;return(0,r.kt)(d,(0,i.Z)({},u,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"GitHub Profile Insights",src:n(8467).Z,width:"450",height:"775"})),(0,r.kt)("h3",{id:"invite-github-users-to-join-opensauced-with-a-single-click"},"Invite GitHub users to join OpenSauced with a single click"),(0,r.kt)("p",null,"Invite other users to create an OpenSauced account to keep track of open source contributions when visiting their GitHub profile."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Invite GitHub Users",src:n(8194).Z,width:"410",height:"597"})),(0,r.kt)("h3",{id:"view-github-users-opensauced-profiles-and-connect-with-them"},"View GitHub users' OpenSauced profiles and connect with them"),(0,r.kt)("p",null,"View a user\u2019s OpenSauced profile when on their GitHub profile page."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"View OpenSauced Profiles",src:n(1784).Z,width:"410",height:"597"})))}l.isMDXComponent=!0},8194:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-invite-b7bf72c8cbdf9a9d68614971b05896c1.png"},8467:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-popup-0c8898c6c29c0a9a694fc95d24ecdc94.png"},1784:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-view-18fe042acf7d3e3b94aad7476a6dfd83.png"}}]); \ No newline at end of file diff --git a/assets/js/f299caa6.edffe534.js b/assets/js/f299caa6.edffe534.js new file mode 100644 index 00000000..5e32dad7 --- /dev/null +++ b/assets/js/f299caa6.edffe534.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[278],{3905:(e,t,n)=>{n.d(t,{Zo:()=>p,kt:()=>h});var i=n(7294);function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,i)}return n}function a(e){for(var t=1;t=0||(r[n]=e[n]);return r}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}var c=i.createContext({}),u=function(e){var t=i.useContext(c),n=t;return e&&(n="function"==typeof e?e(t):a(a({},t),e)),n},p=function(e){var t=u(e.components);return i.createElement(c.Provider,{value:t},e.children)},d="mdxType",l={inlineCode:"code",wrapper:function(e){var t=e.children;return i.createElement(i.Fragment,{},t)}},g=i.forwardRef((function(e,t){var n=e.components,r=e.mdxType,s=e.originalType,c=e.parentName,p=o(e,["components","mdxType","originalType","parentName"]),d=u(n),g=r,h=d["".concat(c,".").concat(g)]||d[g]||l[g]||s;return n?i.createElement(h,a(a({ref:t},p),{},{components:n})):i.createElement(h,a({ref:t},p))}));function h(e,t){var n=arguments,r=t&&t.mdxType;if("string"==typeof e||r){var s=n.length,a=new Array(s);a[0]=g;var o={};for(var c in t)hasOwnProperty.call(t,c)&&(o[c]=t[c]);o.originalType=e,o[d]="string"==typeof e?e:r,a[1]=o;for(var u=2;u{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>s,metadata:()=>o,toc:()=>u});var i=n(7462),r=(n(7294),n(3905));const s={id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations'",keywords:["github","insights and invitations"]},a=void 0,o={unversionedId:"chrome-extension/viewing-insights-and-invitations",id:"chrome-extension/viewing-insights-and-invitations",title:"Viewing Insights and Invitations",description:"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension.",source:"@site/docs/chrome-extension/viewing-insights-and-invitations.md",sourceDirName:"chrome-extension",slug:"/chrome-extension/viewing-insights-and-invitations",permalink:"/chrome-extension/viewing-insights-and-invitations",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/chrome-extension/viewing-insights-and-invitations.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"viewing-insights-and-invitations",title:"Viewing Insights and Invitations",sidebar_label:"Insights and Invitations'",keywords:["github","insights and invitations"]},sidebar:"docs",previous:{title:"Refactoring and Testing",permalink:"/chrome-extension/refactoring-and-testing"}},c={},u=[{value:"Invite GitHub users to join OpenSauced with a single click",id:"invite-github-users-to-join-opensauced-with-a-single-click",level:3},{value:"View GitHub users' OpenSauced profiles and connect with them",id:"view-github-users-opensauced-profiles-and-connect-with-them",level:3}],p={toc:u},d="wrapper";function l(e){let{components:t,...s}=e;return(0,r.kt)(d,(0,i.Z)({},p,s,{components:t,mdxType:"MDXLayout"}),(0,r.kt)("p",null,"View stats about open issues, PRs made, average PRs velocity, and contributed repos that are in the OpenSauced database. This page can be found by clicking the profile picture at the top left of the extension."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"GitHub Profile Insights",src:n(8467).Z,width:"450",height:"775"})),(0,r.kt)("h3",{id:"invite-github-users-to-join-opensauced-with-a-single-click"},"Invite GitHub users to join OpenSauced with a single click"),(0,r.kt)("p",null,"Invite other users to create an OpenSauced account to keep track of open source contributions when visiting their GitHub profile."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"Invite GitHub Users",src:n(8194).Z,width:"410",height:"597"})),(0,r.kt)("h3",{id:"view-github-users-opensauced-profiles-and-connect-with-them"},"View GitHub users' OpenSauced profiles and connect with them"),(0,r.kt)("p",null,"View a user\u2019s OpenSauced profile when on their GitHub profile page."),(0,r.kt)("p",null,(0,r.kt)("img",{alt:"View OpenSauced Profiles",src:n(1784).Z,width:"410",height:"597"})))}l.isMDXComponent=!0},8194:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-invite-b7bf72c8cbdf9a9d68614971b05896c1.png"},8467:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-popup-0c8898c6c29c0a9a694fc95d24ecdc94.png"},1784:(e,t,n)=>{n.d(t,{Z:()=>i});const i=n.p+"assets/images/extension-view-18fe042acf7d3e3b94aad7476a6dfd83.png"}}]); \ No newline at end of file diff --git a/assets/js/f78cc0ee.e71bd227.js b/assets/js/f78cc0ee.e71bd227.js new file mode 100644 index 00000000..dc298a73 --- /dev/null +++ b/assets/js/f78cc0ee.e71bd227.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[544],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>g});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),u=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},d=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),d=n,g=p["".concat(s,".").concat(d)]||p[d]||h[d]||i;return r?o.createElement(g,a(a({ref:t},l),{},{components:r})):o.createElement(g,a({ref:t},l))}));function g(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=d;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=r(7462),n=(r(7294),r(3905));const i={id:"highlights",title:"Highlight your open source contributions",sidebar_label:"Highlights",keywords:["highlights"]},a=void 0,c={unversionedId:"community/highlights",id:"community/highlights",title:"Highlight your open source contributions",description:"The Highlights feature is what we like to call the \"glitzy pepperoni\" of your OpenSauced profile. It's the place where you can display your favorite open source contributions whether it's an article you wrote for Codecademy's Docs website, revising one of the lessons on freeCodeCamp's curricula, or creating a tutorial for people who use Audacity.",source:"@site/docs/community/highlights.md",sourceDirName:"community",slug:"/community/highlights",permalink:"/community/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/highlights.md",tags:[],version:"current",lastUpdatedBy:"Brian Douglas",lastUpdatedAt:1693007243,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"highlights",title:"Highlight your open source contributions",sidebar_label:"Highlights",keywords:["highlights"]},sidebar:"docs",previous:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"},next:{title:"Insights",permalink:"/community/insights"}},s={},u=[],l={toc:u},p="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Highlights feature is what we like to call the \"glitzy pepperoni\" of your OpenSauced profile. It's the place where you can display your favorite open source contributions whether it's an article you wrote for ",(0,n.kt)("a",{parentName:"p",href:"https://www.codecademy.com/pages/contribute-docs"},"Codecademy's Docs website"),", revising one of the lessons on ",(0,n.kt)("a",{parentName:"p",href:"https://contribute.freecodecamp.org/#/index?id=learning-platform"},"freeCodeCamp's curricula"),", or creating a tutorial for people who use ",(0,n.kt)("a",{parentName:"p",href:"https://support.audacityteam.org/community/contributing/tutorials"},"Audacity"),"."),(0,n.kt)("p",null,"Eager to get started? Check out",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#effectively-highlight-your-contributions"},'the Effectively Highlights section in our free "Intro to Open Source" course')," to learn more."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/f78cc0ee.f6839adf.js b/assets/js/f78cc0ee.f6839adf.js deleted file mode 100644 index f7ac30eb..00000000 --- a/assets/js/f78cc0ee.f6839adf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[544],{3905:(e,t,r)=>{r.d(t,{Zo:()=>l,kt:()=>d});var o=r(7294);function n(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function i(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,o)}return r}function a(e){for(var t=1;t=0||(n[r]=e[r]);return n}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}var s=o.createContext({}),u=function(e){var t=o.useContext(s),r=t;return e&&(r="function"==typeof e?e(t):a(a({},t),e)),r},l=function(e){var t=u(e.components);return o.createElement(s.Provider,{value:t},e.children)},p="mdxType",h={inlineCode:"code",wrapper:function(e){var t=e.children;return o.createElement(o.Fragment,{},t)}},m=o.forwardRef((function(e,t){var r=e.components,n=e.mdxType,i=e.originalType,s=e.parentName,l=c(e,["components","mdxType","originalType","parentName"]),p=u(r),m=n,d=p["".concat(s,".").concat(m)]||p[m]||h[m]||i;return r?o.createElement(d,a(a({ref:t},l),{},{components:r})):o.createElement(d,a({ref:t},l))}));function d(e,t){var r=arguments,n=t&&t.mdxType;if("string"==typeof e||n){var i=r.length,a=new Array(i);a[0]=m;var c={};for(var s in t)hasOwnProperty.call(t,s)&&(c[s]=t[s]);c.originalType=e,c[p]="string"==typeof e?e:n,a[1]=c;for(var u=2;u{r.r(t),r.d(t,{assets:()=>s,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>c,toc:()=>u});var o=r(7462),n=(r(7294),r(3905));const i={id:"highlights",title:"Highlight your open source contributions",sidebar_label:"Highlight your open source contributions",keywords:["highlights"]},a=void 0,c={unversionedId:"community/highlights",id:"community/highlights",title:"Highlight your open source contributions",description:"The Highlights feature is what we like to call the \"glitzy pepperoni\" of your OpenSauced profile. It's the place where you can display your favorite open source contributions whether it's an article you wrote for Codecademy's Docs website, revising one of the lessons on freeCodeCamp's curricula, or creating a tutorial for people who use Audacity.",source:"@site/docs/community/highlights.md",sourceDirName:"community",slug:"/community/highlights",permalink:"/community/highlights",draft:!1,editUrl:"https://github.com/open-sauced/docs.opensauced.pizza/edit/main/docs/community/highlights.md",tags:[],version:"current",lastUpdatedBy:"Christine Belzie",lastUpdatedAt:1693005156,formattedLastUpdatedAt:"Aug 25, 2023",frontMatter:{id:"highlights",title:"Highlight your open source contributions",sidebar_label:"Highlight your open source contributions",keywords:["highlights"]},sidebar:"docs",previous:{title:"Welcome to the Community",permalink:"/community/welcome-to-the-community"},next:{title:"#100DaysOfOSS",permalink:"/community/100-days-of-oss"}},s={},u=[],l={toc:u},p="wrapper";function h(e){let{components:t,...r}=e;return(0,n.kt)(p,(0,o.Z)({},l,r,{components:t,mdxType:"MDXLayout"}),(0,n.kt)("p",null,"The Highlights feature is what we like to call the \"glitzy pepperoni\" of your OpenSauced profile. It's the place where you can display your favorite open source contributions whether it's an article you wrote for ",(0,n.kt)("a",{parentName:"p",href:"https://www.codecademy.com/pages/contribute-docs"},"Codecademy's Docs website"),", revising one of the lessons on ",(0,n.kt)("a",{parentName:"p",href:"https://contribute.freecodecamp.org/#/index?id=learning-platform"},"freeCodeCamp's curricula"),", or creating a tutorial for people who use ",(0,n.kt)("a",{parentName:"p",href:"https://support.audacityteam.org/community/contributing/tutorials"},"Audacity"),"."),(0,n.kt)("p",null,"Eager to get started? Check out",(0,n.kt)("a",{parentName:"p",href:"https://github.com/open-sauced/intro/blob/main/06-the-secret-sauce.md#effectively-highlight-your-contributions"},'the Effectively Highlights section in our free "Intro to Open Source" course')," to learn more."))}h.isMDXComponent=!0}}]); \ No newline at end of file diff --git a/assets/js/main.c1593202.js b/assets/js/main.c1593202.js new file mode 100644 index 00000000..e6f9241a --- /dev/null +++ b/assets/js/main.c1593202.js @@ -0,0 +1,2 @@ +/*! For license information please see main.c1593202.js.LICENSE.txt */ +(self.webpackChunk_open_sauced_docs_opensauced_pizza=self.webpackChunk_open_sauced_docs_opensauced_pizza||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});var r=n(7294),a=n(7462),o=n(8356),i=n.n(o),l=n(6887);const s={17896441:[()=>Promise.all([n.e(532),n.e(272),n.e(918)]).then(n.bind(n,903)),"@theme/DocItem",903],"1a4e3797":[()=>Promise.all([n.e(532),n.e(920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1be78505":[()=>Promise.all([n.e(532),n.e(514)]).then(n.bind(n,9963)),"@theme/DocPage",9963],"1dcfcc72":[()=>n.e(836).then(n.bind(n,4544)),"@site/docs/community/faqs.md",4544],"1f391b9e":[()=>Promise.all([n.e(532),n.e(272),n.e(85)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"247783bb":[()=>n.e(334).then(n.t.bind(n,3769,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],"269d72ad":[()=>n.e(975).then(n.bind(n,6884)),"@site/docs/chrome-extension/quick-access-to-opensauced-links.md",6884],"2e603bb7":[()=>n.e(719).then(n.bind(n,3656)),"@site/docs/chrome-extension/highlights.md",3656],"389594df":[()=>n.e(322).then(n.bind(n,8064)),"@site/docs/maintainers/semantic-release.md",8064],"393be207":[()=>n.e(414).then(n.bind(n,3123)),"@site/src/pages/markdown-page.md",3123],47120859:[()=>n.e(657).then(n.bind(n,8389)),"@site/docs/maintainers/conventional-commit.md",8389],"48b9cea9":[()=>n.e(247).then(n.bind(n,2342)),"@site/docs/contributing/set-up-authentication.md",2342],"561e6817":[()=>n.e(161).then(n.bind(n,3701)),"@site/docs/community/welcome-to-the-community.md",3701],"580fd761":[()=>n.e(607).then(n.bind(n,804)),"@site/docs/contributing/code-of-conduct.md",804],"59b068d1":[()=>n.e(385).then(n.t.bind(n,7085,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],"5a1e7e56":[()=>n.e(887).then(n.bind(n,4471)),"@site/docs/maintainers/setting-up-a-new-repository.md",4471],"5e0f9673":[()=>n.e(938).then(n.bind(n,3901)),"@site/docs/maintainers/check-engines.md",3901],"6308756d":[()=>n.e(461).then(n.bind(n,2683)),"@site/docs/contributing/introduction-to-contributing.md",2683],"86961ba5":[()=>n.e(330).then(n.bind(n,6403)),"@site/docs/community/insights.md",6403],"88e6cb4a":[()=>n.e(710).then(n.bind(n,3781)),"@site/docs/contributing/triage-guide.md",3781],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],"9a628d71":[()=>n.e(79).then(n.bind(n,5439)),"@site/docs/technical/introduction-to-storybook.md",5439],a09c2993:[()=>n.e(128).then(n.bind(n,8495)),"@site/docs/introduction.md",8495],a7434565:[()=>n.e(645).then(n.t.bind(n,5745,19)),"/home/runner/work/docs/docs/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],b81d15f0:[()=>n.e(694).then(n.bind(n,3643)),"@site/docs/chrome-extension/introduction-to-the-chrome-extension.md",3643],b8d96084:[()=>n.e(222).then(n.bind(n,9631)),"@site/docs/community/100-days-of-oss.md",9631],bd503c91:[()=>n.e(65).then(n.bind(n,1108)),"@site/docs/chrome-extension/pr-description.md",1108],c5dd48ab:[()=>n.e(994).then(n.bind(n,9988)),"@site/docs/technical/resolve-merge-conflicts.md",9988],d63f70d0:[()=>n.e(364).then(n.bind(n,5664)),"@site/docs/chrome-extension/code-explanation.md",5664],d7337b1f:[()=>n.e(151).then(n.bind(n,5251)),"@site/docs/chrome-extension/refactoring-and-testing.md",5251],f299caa6:[()=>n.e(278).then(n.bind(n,5354)),"@site/docs/chrome-extension/viewing-insights-and-invitations.md",5354],f78cc0ee:[()=>n.e(544).then(n.bind(n,3626)),"@site/docs/community/highlights.md",3626]};function u(e){let{error:t,retry:n,pastDelay:a}=e;return t?r.createElement("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"}},r.createElement("p",null,String(t)),r.createElement("div",null,r.createElement("button",{type:"button",onClick:n},"Retry"))):a?r.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"}},r.createElement("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb"},r.createElement("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2"},r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0"},r.createElement("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),r.createElement("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})),r.createElement("circle",{cx:"22",cy:"22",r:"8"},r.createElement("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"}))))):null}var c=n(9670),d=n(226);function f(e,t){if("*"===e)return i()({loading:u,loader:()=>n.e(972).then(n.bind(n,4972)),modules:["@theme/NotFound"],webpack:()=>[4972],render(e,t){const n=e.default;return r.createElement(d.z,{value:{plugin:{name:"native",id:"default"}}},r.createElement(n,t))}});const o=l[`${e}-${t}`],f={},p=[],m=[],h=(0,c.Z)(o);return Object.entries(h).forEach((e=>{let[t,n]=e;const r=s[n];r&&(f[t]=r[0],p.push(r[1]),m.push(r[2]))})),i().Map({loading:u,loader:f,modules:p,webpack:()=>m,render(t,n){const i=JSON.parse(JSON.stringify(o));Object.entries(t).forEach((t=>{let[n,r]=t;const a=r.default;if(!a)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof a&&"function"!=typeof a||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{a[e]=r[e]}));let o=i;const l=n.split(".");l.slice(0,-1).forEach((e=>{o=o[e]})),o[l[l.length-1]]=a}));const l=i.__comp;delete i.__comp;const s=i.__context;return delete i.__context,r.createElement(d.z,{value:s},r.createElement(l,(0,a.Z)({},i,n)))}})}const p=[{path:"/markdown-page/",component:f("/markdown-page/","fc3"),exact:!0},{path:"/search/",component:f("/search/","db4"),exact:!0},{path:"/",component:f("/","a7a"),routes:[{path:"/",component:f("/","6b0"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/code-explanation/",component:f("/chrome-extension/code-explanation/","fdd"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/highlights/",component:f("/chrome-extension/highlights/","8fb"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/introduction-to-the-chrome-extension/",component:f("/chrome-extension/introduction-to-the-chrome-extension/","cf0"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/opensauced-links/",component:f("/chrome-extension/opensauced-links/","6bc"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/pr-description/",component:f("/chrome-extension/pr-description/","4ba"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/refactoring-and-testing/",component:f("/chrome-extension/refactoring-and-testing/","e9c"),exact:!0,sidebar:"docs"},{path:"/chrome-extension/viewing-insights-and-invitations/",component:f("/chrome-extension/viewing-insights-and-invitations/","288"),exact:!0,sidebar:"docs"},{path:"/community/100-days-of-oss/",component:f("/community/100-days-of-oss/","874"),exact:!0,sidebar:"docs"},{path:"/community/faqs/",component:f("/community/faqs/","47b"),exact:!0,sidebar:"docs"},{path:"/community/highlights/",component:f("/community/highlights/","45c"),exact:!0,sidebar:"docs"},{path:"/community/insights/",component:f("/community/insights/","ff3"),exact:!0,sidebar:"docs"},{path:"/community/welcome-to-the-community/",component:f("/community/welcome-to-the-community/","a42"),exact:!0,sidebar:"docs"},{path:"/contributing/code-of-conduct/",component:f("/contributing/code-of-conduct/","63a"),exact:!0,sidebar:"docs"},{path:"/contributing/introduction-to-contributing/",component:f("/contributing/introduction-to-contributing/","c53"),exact:!0,sidebar:"docs"},{path:"/contributing/set-up-authentication/",component:f("/contributing/set-up-authentication/","4ce"),exact:!0,sidebar:"docs"},{path:"/contributing/triage-guide/",component:f("/contributing/triage-guide/","a0a"),exact:!0,sidebar:"docs"},{path:"/maintainers/check-engines/",component:f("/maintainers/check-engines/","11c"),exact:!0,sidebar:"docs"},{path:"/maintainers/conventional-commit/",component:f("/maintainers/conventional-commit/","7c3"),exact:!0,sidebar:"docs"},{path:"/maintainers/semantic-release/",component:f("/maintainers/semantic-release/","648"),exact:!0,sidebar:"docs"},{path:"/maintainers/setting-up-a-new-repository/",component:f("/maintainers/setting-up-a-new-repository/","daa"),exact:!0,sidebar:"docs"},{path:"/technical/introduction-to-storybook/",component:f("/technical/introduction-to-storybook/","a32"),exact:!0,sidebar:"docs"},{path:"/technical/resolve-merge-conflicts/",component:f("/technical/resolve-merge-conflicts/","f5b"),exact:!0,sidebar:"docs"}]},{path:"*",component:f("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,t:()=>o});var r=n(7294);const a=r.createContext(!1);function o(e){let{children:t}=e;const[n,o]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{o(!0)}),[]),r.createElement(a.Provider,{value:n},t)}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(3935),o=n(3727),i=n(405),l=n(412);const s=[n(2497),n(3310),n(8320),n(2295),n(8968)];var u=n(723),c=n(6550),d=n(8790);function f(e){let{children:t}=e;return r.createElement(r.Fragment,null,t)}var p=n(7462),m=n(5742),h=n(2263),g=n(4996),v=n(6668),b=n(833),y=n(4711),w=n(9727),k=n(3320),E=n(197);function S(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return r.createElement(m.Z,null,Object.entries(t).map((e=>{let[t,{htmlLang:a}]=e;return r.createElement("link",{key:t,rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:a})})),r.createElement("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"}))}function x(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),a=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,c.TH)();return e+(0,g.Z)(t)}(),o=t?`${n}${t}`:a;return r.createElement(m.Z,null,r.createElement("meta",{property:"og:url",content:o}),r.createElement("link",{rel:"canonical",href:o}))}function C(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,v.L)();return r.createElement(r.Fragment,null,r.createElement(m.Z,null,r.createElement("meta",{name:"twitter:card",content:"summary_large_image"}),r.createElement("body",{className:w.h})),n&&r.createElement(b.d,{image:n}),r.createElement(x,null),r.createElement(S,null),r.createElement(E.Z,{tag:k.HX,locale:e}),r.createElement(m.Z,null,t.map(((e,t)=>r.createElement("meta",(0,p.Z)({key:t},e))))))}const T=new Map;function _(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(u.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940);function R(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const N=function(e){let{children:t,location:n,previousLocation:a}=e;return(0,r.useLayoutEffect)((()=>{a!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:a}),R("onRouteDidUpdate",{previousLocation:a,location:n}))}),[a,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(u.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class P extends r.Component{constructor(e){super(e),this.previousLocation=void 0,this.routeUpdateCleanupCb=void 0,this.previousLocation=null,this.routeUpdateCleanupCb=l.Z.canUseDOM?R("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=R("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return r.createElement(N,{previousLocation:this.previousLocation,location:t},r.createElement(c.AW,{location:t,render:()=>e}))}}const I=P,D="docusaurus-base-url-issue-banner-container",M="docusaurus-base-url-issue-banner",F="docusaurus-base-url-issue-banner-suggestion-container",B="__DOCUSAURUS_INSERT_BASEURL_BANNER";function j(e){return`\nwindow['${B}'] = true;\n\ndocument.addEventListener('DOMContentLoaded', maybeInsertBanner);\n\nfunction maybeInsertBanner() {\n var shouldInsert = window['${B}'];\n shouldInsert && insertBanner();\n}\n\nfunction insertBanner() {\n var bannerContainer = document.getElementById('${D}');\n if (!bannerContainer) {\n return;\n }\n var bannerHtml = ${JSON.stringify(function(e){return`\n
\n

Your Docusaurus site did not load properly.

\n

A very common reason is a wrong site baseUrl configuration.

\n

Current configured baseUrl = ${e} ${"/"===e?" (default value)":""}

\n

We suggest trying baseUrl =

\n
\n`}(e)).replace(/{window[B]=!1}),[]),r.createElement(r.Fragment,null,!l.Z.canUseDOM&&r.createElement(m.Z,null,r.createElement("script",null,j(e))),r.createElement("div",{id:D}))}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,c.TH)();return t&&n===e?r.createElement(z,null):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:a,localeConfigs:o}}=(0,h.Z)(),i=(0,g.Z)(e),{htmlLang:l,direction:s}=o[a];return r.createElement(m.Z,null,r.createElement("html",{lang:l,dir:s}),r.createElement("title",null,t),r.createElement("meta",{property:"og:title",content:t}),r.createElement("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&r.createElement("meta",{name:"robots",content:"noindex, nofollow"}),e&&r.createElement("link",{rel:"icon",href:i}))}var q=n(4763);function H(){const e=(0,d.H)(u.Z),t=(0,c.TH)();return r.createElement(q.Z,null,r.createElement(L.M,null,r.createElement(A.t,null,r.createElement(f,null,r.createElement($,null),r.createElement(C,null),r.createElement(U,null),r.createElement(I,{location:_(t)},e)))))}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(9670);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(u.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),O(e))},X=Object.freeze(Q);if(l.Z.canUseDOM){window.docusaurus=X;const e=a.hydrate;O(window.location.pathname).then((()=>{e(r.createElement(i.B6,null,r.createElement(o.VK,null,r.createElement(H,null))),document.getElementById("__docusaurus"))}))}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>c,M:()=>d});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/","versions":[{"name":"current","label":"Next","isLast":true,"path":"/","mainDocId":"introduction","docs":[{"id":"chrome-extension/code-explanation","path":"/chrome-extension/code-explanation","sidebar":"docs"},{"id":"chrome-extension/highlights","path":"/chrome-extension/highlights","sidebar":"docs"},{"id":"chrome-extension/introduction-to-the-chrome-extension","path":"/chrome-extension/introduction-to-the-chrome-extension","sidebar":"docs"},{"id":"chrome-extension/opensauced-links","path":"/chrome-extension/opensauced-links","sidebar":"docs"},{"id":"chrome-extension/pr-description","path":"/chrome-extension/pr-description","sidebar":"docs"},{"id":"chrome-extension/refactoring-and-testing","path":"/chrome-extension/refactoring-and-testing","sidebar":"docs"},{"id":"chrome-extension/viewing-insights-and-invitations","path":"/chrome-extension/viewing-insights-and-invitations","sidebar":"docs"},{"id":"community/100-days-of-oss","path":"/community/100-days-of-oss","sidebar":"docs"},{"id":"community/faqs","path":"/community/faqs","sidebar":"docs"},{"id":"community/highlights","path":"/community/highlights","sidebar":"docs"},{"id":"community/insights","path":"/community/insights","sidebar":"docs"},{"id":"community/welcome-to-the-community","path":"/community/welcome-to-the-community","sidebar":"docs"},{"id":"contributing/code-of-conduct","path":"/contributing/code-of-conduct","sidebar":"docs"},{"id":"contributing/introduction-to-contributing","path":"/contributing/introduction-to-contributing","sidebar":"docs"},{"id":"contributing/set-up-authentication","path":"/contributing/set-up-authentication","sidebar":"docs"},{"id":"contributing/triage-guide","path":"/contributing/triage-guide","sidebar":"docs"},{"id":"introduction","path":"/","sidebar":"docs"},{"id":"maintainers/check-engines","path":"/maintainers/check-engines","sidebar":"docs"},{"id":"maintainers/conventional-commit","path":"/maintainers/conventional-commit","sidebar":"docs"},{"id":"maintainers/semantic-release","path":"/maintainers/semantic-release","sidebar":"docs"},{"id":"maintainers/setting-up-a-new-repository","path":"/maintainers/setting-up-a-new-repository","sidebar":"docs"},{"id":"technical/introduction-to-storybook","path":"/technical/introduction-to-storybook","sidebar":"docs"},{"id":"technical/resolve-merge-conflicts","path":"/technical/resolve-merge-conflicts","sidebar":"docs"}],"draftIds":[],"sidebars":{"docs":{"link":{"path":"/","label":"introduction"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var l=n(7529);const s=JSON.parse('{"docusaurusVersion":"2.4.0","siteVersion":"1.40.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"2.4.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"2.4.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"2.4.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"2.4.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"2.4.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"2.4.0"},"docusaurus-plugin-pwa":{"type":"package","name":"@docusaurus/plugin-pwa","version":"2.4.0"}}}'),u={siteConfig:a.Z,siteMetadata:s,globalData:o,i18n:i,codeTranslations:l},c=r.createContext(u);function d(e){let{children:t}=e;return r.createElement(c.Provider,{value:u},t)}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),l=n(7452);function s(e){let{error:t,tryAgain:n}=e;return r.createElement("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"}},r.createElement("h1",{style:{fontSize:"3rem"}},"This page crashed"),r.createElement("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"}},"Try again"),r.createElement(u,{error:t}))}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{style:{whiteSpace:"pre-wrap"}},n)}function c(e){let{error:t,tryAgain:n}=e;return r.createElement(f,{fallback:()=>r.createElement(s,{error:t,tryAgain:n})},r.createElement(o.Z,null,r.createElement("title",null,"Page Error")),r.createElement(l.Z,null,r.createElement(s,{error:t,tryAgain:n})))}const d=e=>r.createElement(c,e);class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??d)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(405);function o(e){return r.createElement(a.ql,e)}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7462),a=n(7294),o=n(3727),i=n(8780),l=n(2263),s=n(3919),u=n(412);const c=a.createContext({collectLink:()=>{}}),d=()=>(0,a.useContext)(c);var f=n(4996);const p=e=>e.startsWith("/");function m(e,t){let{isNavLink:n,to:c,href:m,activeClassName:h,isActive:g,"data-noBrokenLinkCheck":v,autoAddBaseUrl:b=!0,...y}=e;const{siteConfig:{trailingSlash:w,baseUrl:k}}=(0,l.Z)(),{withBaseUrl:E}=(0,f.C)(),S=d(),x=(0,a.useRef)(null);(0,a.useImperativeHandle)(t,(()=>x.current));const C=c||m;const T=(0,s.Z)(C),_=C?.replace("pathname://","");let A=void 0!==_?(L=_,b&&p(L)?E(L):L):void 0;var L;A&&T&&(A=(0,i.applyTrailingSlash)(A,{trailingSlash:w,baseUrl:k}));const R=(0,a.useRef)(!1),N=n?o.OL:o.rU,O=u.Z.canUseIntersectionObserver,P=(0,a.useRef)(),I=()=>{R.current||null==A||(window.docusaurus.preload(A),R.current=!0)};(0,a.useEffect)((()=>(!O&&T&&null!=A&&window.docusaurus.prefetch(A),()=>{O&&P.current&&P.current.disconnect()})),[P,A,O,T]);const D=A?.startsWith("#")??!1,M=!A||!T||D;return M||v||S.collectLink(A),M?a.createElement("a",(0,r.Z)({ref:x,href:A},C&&!T&&{target:"_blank",rel:"noopener noreferrer"},y)):a.createElement(N,(0,r.Z)({},y,{onMouseEnter:I,onTouchStart:I,innerRef:e=>{x.current=e,O&&e&&T&&(P.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(P.current.unobserve(e),P.current.disconnect(),null!=A&&window.docusaurus.prefetch(A))}))})),P.current.observe(e))},to:A},n&&{isActive:g,activeClassName:h}))}const h=a.forwardRef(m)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s,I:()=>l});var r=n(7294);function a(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var o=n(7529);function i(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return o[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return a(i({message:n,id:r}),t)}function s(e){let{children:t,id:n,values:o}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal children",t),new Error("The Docusaurus component only accept simple string values");const l=i({message:t,id:n});return r.createElement(r.Fragment,null,a(l,o))}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>l});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const l=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+l:l}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function l(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t=".",n={};return function e(a,o){Object.entries(a).forEach((a=>{let[i,l]=a;const s=o?`${o}${t}${i}`:i;r(l)?e(l,s):n[s]=l}))}(e),n}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>a,z:()=>o});var r=n(7294);const a=r.createContext(null);function o(e){let{children:t,value:n}=e;const o=r.useContext(a),i=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:o,value:n})),[o,n]);return r.createElement(a.Provider,{value:i},t)}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>v,gA:()=>p,WS:()=>m,_r:()=>d,Jo:()=>b,zh:()=>f,yW:()=>g,gB:()=>h});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const l=e=>e.versions.find((e=>e.isLast));function s(e,t){const n=l(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function u(e,t){const n=s(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const c={},d=()=>i("docusaurus-plugin-content-docs")??c,f=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function p(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=p(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:s(t.pluginData,n)}}function h(e){return f(e).versions}function g(e){const t=f(e);return l(t)}function v(e){const t=f(e),{pathname:n}=(0,r.TH)();return u(t,n)}function b(e){const t=f(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=l(e);return{latestDocSuggestion:u(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8968:(e,t,n)=>{"use strict";n.r(t);var r=n(412),a=n(12);const o="/sw.js",i=["appInstalled","standalone","queryString"],l=!0,s=(0,a.WA)("docusaurus.pwa.event.appInstalled.fired");function u(e,t){l&&(void 0===t?console.log(`[Docusaurus-PWA][registerSw]: ${e}`):console.log(`[Docusaurus-PWA][registerSw]: ${e}`,t))}async function c(){const e=await navigator.serviceWorker.getRegistrations();u("will unregister all service workers",{registrations:e}),await Promise.all(e.map((e=>e.unregister().then((t=>u("unregister service worker",{registration:e,result:t})))))),u("unregistered all service workers",{registrations:e}),window.location.reload()}const d={always:()=>!0,mobile:()=>window.innerWidth<=996,saveData:()=>!!navigator.connection?.saveData,appInstalled:()=>"true"===s.get()||async function(){return"getInstalledRelatedApps"in window.navigator&&(await navigator.getInstalledRelatedApps()).some((e=>"webapp"===e.platform))}(),standalone:()=>window.matchMedia("(display-mode: standalone)").matches,queryString:()=>"true"===new URLSearchParams(window.location.search).get("offlineMode")};async function f(){const e=await async function(){return(await Promise.all(i.map((e=>Promise.resolve(d[e]()).then((t=>t?e:void 0)))))).filter(Boolean)}(),t=e.length>0;return u(t?"offline mode enabled, because of activation strategies":"offline mode disabled, because none of the offlineModeActivationStrategies could be used",{activeStrategies:e,availableStrategies:i}),t}r.Z.canUseDOM&&(u("debug mode enabled"),"serviceWorker"in navigator&&(u("addLegacyAppInstalledEventsListeners"),window.addEventListener("appinstalled",(e=>{u("event appinstalled",{event:e}),s.set("true"),u("AppInstalledEventFiredStorage.set('true')"),c()})),window.addEventListener("beforeinstallprompt",(e=>{u("event beforeinstallprompt",{event:e});const t=s.get();u("AppInstalledEventFiredStorage.get()",{appInstalledEventFired:t}),t&&(s.del(),u("AppInstalledEventFiredStorage.del()"),c())})),u("legacy appinstalled and beforeinstallprompt event listeners installed"),async function(){const[{Workbox:e},t]=await Promise.all([n.e(131).then(n.bind(n,5131)),f()]),r=new e(function(e){const t=JSON.stringify(e),n=`${o}?params=${encodeURIComponent(t)}`;return u("service worker url",{url:n,params:e}),n}({offlineMode:t,debug:l})),a=()=>r.messageSW({type:"SKIP_WAITING"}),i=()=>(u("handleServiceWorkerWaiting"),t?n.e(283).then(n.bind(n,5283)).then((e=>{let{renderReloadPopup:t}=e;return t({onReload(){r.addEventListener("controlling",(()=>{window.location.reload()})),a()}})})):a());r.addEventListener("waiting",(e=>{u("event waiting",{event:e}),i()})),r.addEventListener("externalwaiting",(e=>{u("event externalwaiting",{event:e}),i()}));const s=await r.register();s&&(s.active&&u("registration.active",{registration:s}),s.installing&&u("registration.installing",{registration:s}),s.waiting&&(u("registration.waiting",{registration:s}),await i()))}().catch((e=>console.error("registerSW failed",e)))))},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.Z,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294);const a={iconExternalLink:"iconExternalLink_nPIU"};function o(e){let{width:t=13.5,height:n=13.5}=e;return r.createElement("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:a.iconExternalLink},r.createElement("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"}))}},7452:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Nt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),l=n(7462),s=n(6550),u=n(5999),c=n(5936);const d="docusaurus_skipToContent_fallback";function f(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function p(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&f(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&f(e.current)})),{containerRef:e,onClick:n}}const m=(0,u.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:a}=p();return r.createElement("div",{ref:n,role:"region","aria-label":m},r.createElement("a",(0,l.Z)({},e,{href:`#${d}`,onClick:a}),t))}var g=n(5281),v=n(9727);const b={skipToContent:"skipToContent_fXgn"};function y(){return r.createElement(h,{className:b.skipToContent})}var w=n(6668),k=n(9689);function E(e){let{width:t=21,height:n=21,color:a="currentColor",strokeWidth:o=1.2,className:i,...s}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 15 15",width:t,height:n},s),r.createElement("g",{stroke:a,strokeWidth:o},r.createElement("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})))}const S={closeButton:"closeButton_CVFx"};function x(e){return r.createElement("button",(0,l.Z)({type:"button","aria-label":(0,u.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"})},e,{className:(0,a.Z)("clean-btn close",S.closeButton,e.className)}),r.createElement(E,{width:14,height:14,strokeWidth:3.1}))}const C={content:"content_knG7"};function T(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return r.createElement("div",(0,l.Z)({},e,{className:(0,a.Z)(C.content,e.className),dangerouslySetInnerHTML:{__html:n}}))}const _={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:a,textColor:o,isCloseable:i}=e;return r.createElement("div",{className:_.announcementBar,style:{backgroundColor:a,color:o},role:"banner"},i&&r.createElement("div",{className:_.announcementBarPlaceholder}),r.createElement(T,{className:_.announcementBarContent}),i&&r.createElement(x,{onClick:n,className:_.announcementBarClose}))}var L=n(3163),R=n(2466);var N=n(902),O=n(3102);const P=r.createContext(null);function I(e){let{children:t}=e;const n=function(){const e=(0,L.e)(),t=(0,O.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,N.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return r.createElement(P.Provider,{value:n},t)}function D(e){if(e.component){const t=e.component;return r.createElement(t,e.props)}}function M(){const e=(0,r.useContext)(P);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,O.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:D(o)})),[a,o,t])}function F(e){let{header:t,primaryMenu:n,secondaryMenu:o}=e;const{shown:i}=M();return r.createElement("div",{className:"navbar-sidebar"},t,r.createElement("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":i})},r.createElement("div",{className:"navbar-sidebar__item menu"},n),r.createElement("div",{className:"navbar-sidebar__item menu"},o)))}var B=n(2949),j=n(2389);function z(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"}))}function U(e){return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:24,height:24},e),r.createElement("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"}))}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:o,onChange:i}=e;const l=(0,j.Z)(),s=(0,u.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===o?(0,u.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,u.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return r.createElement("div",{className:(0,a.Z)($.toggle,t)},r.createElement("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!l&&$.toggleButtonDisabled,n),type:"button",onClick:()=>i("dark"===o?"light":"dark"),disabled:!l,title:s,"aria-label":s,"aria-live":"polite"},r.createElement(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),r.createElement(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})))}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,a=(0,w.L)().colorMode.disableSwitch,{colorMode:o,setColorMode:i}=(0,B.I)();return a?null:r.createElement(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:o,onChange:i})}var V=n(1327);function W(){return r.createElement(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,L.e)();return r.createElement("button",{type:"button","aria-label":(0,u.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle()},r.createElement(E,{color:"var(--ifm-color-emphasis-600)"}))}function Y(){return r.createElement("div",{className:"navbar-sidebar__brand"},r.createElement(W,null),r.createElement(Z,{className:"margin-right--md"}),r.createElement(K,null))}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:a,href:o,label:i,html:s,isDropdownLink:u,prependBaseUrlToHref:c,...d}=e;const f=(0,X.Z)(a),p=(0,X.Z)(t),m=(0,X.Z)(o,{forcePrependBaseUrl:!0}),h=i&&o&&!(0,J.Z)(o),g=s?{dangerouslySetInnerHTML:{__html:s}}:{children:r.createElement(r.Fragment,null,i,h&&r.createElement(te.Z,u&&{width:12,height:12}))};return o?r.createElement(Q.Z,(0,l.Z)({href:c?m:o},d,g)):r.createElement(Q.Z,(0,l.Z)({to:f,isNavLink:!0},(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},d,g))}function re(e){let{className:t,isDropdownItem:n=!1,...o}=e;const i=r.createElement(ne,(0,l.Z)({className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n},o));return n?r.createElement("li",null,i):i}function ae(e){let{className:t,isDropdownItem:n,...o}=e;return r.createElement("li",{className:"menu__list-item"},r.createElement(ne,(0,l.Z)({className:(0,a.Z)("menu__link",t)},o)))}function oe(e){let{mobile:t=!1,position:n,...a}=e;const o=t?ae:re;return r.createElement(o,(0,l.Z)({},a,{activeClassName:a.activeClassName??(t?"menu__link--active":"navbar__link--active")}))}var ie=n(6043),le=n(8596),se=n(2263);function ue(e,t){return e.some((e=>function(e,t){return!!(0,le.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ce(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const u=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{u.current&&!u.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[u]),r.createElement("div",{ref:u,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c})},r.createElement(ne,(0,l.Z)({"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o)},s,{onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))}}),s.children??s.label),r.createElement("ul",{className:"dropdown__menu"},t.map(((e,t)=>r.createElement(He,(0,l.Z)({isDropdownItem:!0,activeClassName:"dropdown__link--active"},e,{key:t}))))))}function de(e){let{items:t,className:n,position:o,onClick:i,...u}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,se.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:f,toggleCollapsed:p,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),r.createElement("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":f})},r.createElement(ne,(0,l.Z)({role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n)},u,{onClick:e=>{e.preventDefault(),p()}}),u.children??u.label),r.createElement(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:f},t.map(((e,t)=>r.createElement(He,(0,l.Z)({mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active"},e,{key:t}))))))}function fe(e){let{mobile:t=!1,...n}=e;const a=t?de:ce;return r.createElement(a,n)}var pe=n(4711);function me(e){let{width:t=20,height:n=20,...a}=e;return r.createElement("svg",(0,l.Z)({viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0},a),r.createElement("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"}))}const he={iconLanguage:"iconLanguage_nlXk"};function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var ve=n(830),be=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var Se="Ctrl";var xe=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Ee(e,be),i=a.buttonText,l=void 0===i?"Search":i,s=a.buttonAriaLabel,u=void 0===s?"Search":s,c=we((0,r.useState)(null),2),d=c[0],f=c[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?f("\u2318"):f(Se))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":u},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ve.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},l)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===Se?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Ce=n(5742),Te=n(6177),_e=n(239),Ae=n(3320);var Le=n(3935);const Re={button:{buttonText:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,u.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,u.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,u.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,u.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,u.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,u.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,u.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,u.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,u.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,u.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,u.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,u.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,u.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,u.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ne=null;function Oe(e){let{hit:t,children:n}=e;return r.createElement(Q.Z,{to:t.url},n)}function Pe(e){let{state:t,onClose:n}=e;const a=(0,Te.M)();return r.createElement(Q.Z,{to:a(t.query),onClick:n},r.createElement(u.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits}},"See all {count} results"))}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,se.Z)(),u=(0,_e.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],f=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,p={...o.searchParameters,facetFilters:f},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[v,b]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Ne?Promise.resolve():Promise.all([n.e(780).then(n.bind(n,6780)),Promise.all([n.e(532),n.e(945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Ne=t}))),[]),E=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),b(!0)}))}),[k,b]),S=(0,r.useCallback)((()=>{b(!1),h.current?.remove()}),[b]),x=(0,r.useCallback)((e=>{k().then((()=>{b(!0),w(e.key)}))}),[k,b,w]),C=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,T=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:u(e.url)}))))).current,_=(0,r.useMemo)((()=>e=>r.createElement(Pe,(0,l.Z)({},e,{onClose:S}))),[S]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){(27===e.keyCode&&t||"k"===e.key.toLowerCase()&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:v,onOpen:E,onClose:S,onInput:x,searchButtonRef:g}),r.createElement(r.Fragment,null,r.createElement(Ce.Z,null,r.createElement("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})),r.createElement(xe,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:E,ref:g,translations:Re.button}),v&&Ne&&h.current&&(0,Le.createPortal)(r.createElement(Ne,(0,l.Z)({onClose:S,initialScrollY:window.scrollY,initialQuery:y,navigator:C,transformItems:T,hitComponent:Oe,transformSearchClient:A},o.searchPagePath&&{resultsFooterComponent:_},o,{searchParameters:p,placeholder:Re.placeholder,translations:Re.modal})),h.current))}function De(){const{siteConfig:e}=(0,se.Z)();return r.createElement(Ie,e.themeConfig.algolia)}const Me={searchBox:"searchBox_ZlJk"};function Fe(e){let{children:t,className:n}=e;return r.createElement("div",{className:(0,a.Z)(n,Me.searchBox)},t)}var Be=n(143),je=n(2802);const ze=e=>e.docs.find((t=>t.id===e.mainDocId));var Ue=n(373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const qe={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:a,...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,se.Z)(),f=(0,pe.l)(),{search:p,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${f.createUrl({locale:e,fullyQualified:!1})}`}${p}${m}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...a],g=t?(0,u.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return r.createElement(fe,(0,l.Z)({},o,{mobile:t,label:r.createElement(r.Fragment,null,r.createElement(me,{className:he.iconLanguage}),g),items:h}))},search:function(e){let{mobile:t,className:n}=e;return t?null:r.createElement(Fe,{className:n},r.createElement(De,null))},dropdown:fe,html:function(e){let{value:t,className:n,mobile:o=!1,isDropdownItem:i=!1}=e;const l=i?"li":"div";return r.createElement(l,{className:(0,a.Z)({navbar__item:!o&&!i,"menu__list-item":o},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.vY)(t,a);return null===s?null:r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.path===s.path||!!i?.sidebar&&i.sidebar===s.sidebar,label:n??s.id,to:s.path}))},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:a,...o}=e;const{activeDoc:i}=(0,Be.Iw)(a),s=(0,je.oz)(t,a).link;if(!s)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return r.createElement(oe,(0,l.Z)({exact:!0},o,{isActive:()=>i?.sidebar===t,label:n??s.label,to:s.path}))},docsVersion:function(e){let{label:t,to:n,docsPluginId:a,...o}=e;const i=(0,je.lO)(a)[0],s=t??i.label,u=n??ze(i).path;return r.createElement(oe,(0,l.Z)({},o,{label:s,to:u}))},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:a,dropdownItemsBefore:o,dropdownItemsAfter:i,...c}=e;const{search:d,hash:f}=(0,s.TH)(),p=(0,Be.Iw)(n),m=(0,Be.gB)(n),{savePreferredVersionName:h}=(0,Ue.J)(n),g=[...o,...m.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${d}${f}`,isActive:()=>e===p.activeVersion,onClick:()=>h(e.name)}})),...i],v=(0,je.lO)(n)[0],b=t&&g.length>1?(0,u.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):v.label,y=t&&g.length>1?void 0:$e(v).path;return g.length<=1?r.createElement(oe,(0,l.Z)({},c,{mobile:t,label:b,to:y,isActive:a?()=>!1:void 0})):r.createElement(fe,(0,l.Z)({},c,{mobile:t,label:b,to:y,items:g,isActive:a?()=>!1:void 0}))}};function He(e){let{type:t,...n}=e;const a=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),o=qe[a];if(!o)throw new Error(`No NavbarItem component found for type "${t}".`);return r.createElement(o,n)}function Ge(){const e=(0,L.e)(),t=(0,w.L)().navbar.items;return r.createElement("ul",{className:"menu__list"},t.map(((t,n)=>r.createElement(He,(0,l.Z)({mobile:!0},t,{onClick:()=>e.toggle(),key:n})))))}function Ze(e){return r.createElement("button",(0,l.Z)({},e,{type:"button",className:"clean-btn navbar-sidebar__back"}),r.createElement(u.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)"},"\u2190 Back to main menu"))}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=M();return r.createElement(r.Fragment,null,!e&&r.createElement(Ze,{onClick:()=>t.hide()}),t.content)}function We(){const e=(0,L.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?r.createElement(F,{header:r.createElement(Y,null),primaryMenu:r.createElement(Ge,null),secondaryMenu:r.createElement(Ve,null)}):null}const Ke={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ye(e){return r.createElement("div",(0,l.Z)({role:"presentation"},e,{className:(0,a.Z)("navbar-sidebar__backdrop",e.className)}))}function Qe(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,L.e)(),{navbarRef:l,isNavbarVisible:s}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,R.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i=l?n(!1):i+u{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return r.createElement("nav",{ref:l,"aria-label":(0,u.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Ke.navbarHideable,!s&&Ke.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown})},t,r.createElement(Ye,{onClick:i.toggle}),r.createElement(We,null))}var Xe=n(8780);const Je={errorBoundaryError:"errorBoundaryError_a6uf"};function et(e){return r.createElement("button",(0,l.Z)({type:"button"},e),r.createElement(u.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error"},"Try again"))}function tt(e){let{error:t}=e;const n=(0,Xe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return r.createElement("p",{className:Je.errorBoundaryError},n)}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const rt="right";function at(e){let{width:t=30,height:n=30,className:a,...o}=e;return r.createElement("svg",(0,l.Z)({className:a,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true"},o),r.createElement("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"}))}function ot(){const{toggle:e,shown:t}=(0,L.e)();return r.createElement("button",{onClick:e,"aria-label":(0,u.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button"},r.createElement(at,null))}const it={colorModeToggle:"colorModeToggle_DEke"};function lt(e){let{items:t}=e;return r.createElement(r.Fragment,null,t.map(((e,t)=>r.createElement(nt,{key:t,onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t})},r.createElement(He,e)))))}function st(e){let{left:t,right:n}=e;return r.createElement("div",{className:"navbar__inner"},r.createElement("div",{className:"navbar__items"},t),r.createElement("div",{className:"navbar__items navbar__items--right"},n))}function ut(){const e=(0,L.e)(),t=(0,w.L)().navbar.items,[n,a]=function(e){function t(e){return"left"===(e.position??rt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),o=t.find((e=>"search"===e.type));return r.createElement(st,{left:r.createElement(r.Fragment,null,!e.disabled&&r.createElement(ot,null),r.createElement(W,null),r.createElement(lt,{items:n})),right:r.createElement(r.Fragment,null,r.createElement(lt,{items:a}),r.createElement(Z,{className:it.colorModeToggle}),!o&&r.createElement(Fe,null,r.createElement(De,null)))})}function ct(){return r.createElement(Qe,null,r.createElement(ut,null))}function dt(e){let{item:t}=e;const{to:n,href:a,label:o,prependBaseUrlToHref:i,...s}=t,u=(0,X.Z)(n),c=(0,X.Z)(a,{forcePrependBaseUrl:!0});return r.createElement(Q.Z,(0,l.Z)({className:"footer__link-item"},a?{href:i?c:a}:{to:u},s),o,a&&!(0,J.Z)(a)&&r.createElement(te.Z,null))}function ft(e){let{item:t}=e;return t.html?r.createElement("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement("li",{key:t.href??t.to,className:"footer__item"},r.createElement(dt,{item:t}))}function pt(e){let{column:t}=e;return r.createElement("div",{className:"col footer__col"},r.createElement("div",{className:"footer__title"},t.title),r.createElement("ul",{className:"footer__items clean-list"},t.items.map(((e,t)=>r.createElement(ft,{key:t,item:e})))))}function mt(e){let{columns:t}=e;return r.createElement("div",{className:"row footer__links"},t.map(((e,t)=>r.createElement(pt,{key:t,column:e}))))}function ht(){return r.createElement("span",{className:"footer__link-separator"},"\xb7")}function gt(e){let{item:t}=e;return t.html?r.createElement("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):r.createElement(dt,{item:t})}function vt(e){let{links:t}=e;return r.createElement("div",{className:"footer__links text--center"},r.createElement("div",{className:"footer__links"},t.map(((e,n)=>r.createElement(r.Fragment,{key:n},r.createElement(gt,{item:e}),t.length!==n+1&&r.createElement(ht,null))))))}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?r.createElement(mt,{columns:t}):r.createElement(vt,{links:t})}var yt=n(941);const wt={footerLogoLink:"footerLogoLink_BH7S"};function kt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),o={light:n(t.src),dark:n(t.srcDark??t.src)};return r.createElement(yt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:o,width:t.width,height:t.height,style:t.style})}function Et(e){let{logo:t}=e;return t.href?r.createElement(Q.Z,{href:t.href,className:wt.footerLogoLink,target:t.target},r.createElement(kt,{logo:t})):r.createElement(kt,{logo:t})}function St(e){let{copyright:t}=e;return r.createElement("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function xt(e){let{style:t,links:n,logo:o,copyright:i}=e;return r.createElement("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t})},r.createElement("div",{className:"container container-fluid"},n,(o||i)&&r.createElement("div",{className:"footer__bottom text--center"},o&&r.createElement("div",{className:"margin-bottom--sm"},o),i)))}function Ct(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:a,style:o}=e;return r.createElement(xt,{style:o,links:n&&n.length>0&&r.createElement(bt,{links:n}),logo:a&&r.createElement(Et,{logo:a}),copyright:t&&r.createElement(St,{copyright:t})})}const Tt=r.memo(Ct),_t=(0,N.Qc)([B.S,k.pl,R.OC,Ue.L5,i.VC,function(e){let{children:t}=e;return r.createElement(O.n2,null,r.createElement(L.M,null,r.createElement(I,null,t)))}]);function At(e){let{children:t}=e;return r.createElement(_t,null,t)}function Lt(e){let{error:t,tryAgain:n}=e;return r.createElement("main",{className:"container margin-vert--xl"},r.createElement("div",{className:"row"},r.createElement("div",{className:"col col--6 col--offset-3"},r.createElement("h1",{className:"hero__title"},r.createElement(u.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed"},"This page crashed.")),r.createElement("div",{className:"margin-vert--lg"},r.createElement(et,{onClick:n,className:"button button--primary shadow--lw"})),r.createElement("hr",null),r.createElement("div",{className:"margin-vert--md"},r.createElement(tt,{error:t})))))}const Rt={mainWrapper:"mainWrapper_z2l0"};function Nt(e){const{children:t,noFooter:n,wrapperClassName:l,title:s,description:u}=e;return(0,v.t)(),r.createElement(At,null,r.createElement(i.d,{title:s,description:u}),r.createElement(y,null),r.createElement(A,null),r.createElement(ct,null),r.createElement("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Rt.mainWrapper,l)},r.createElement(o.Z,{fallback:e=>r.createElement(Lt,e)},t)),!n&&r.createElement(Tt,null))}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>d});var r=n(7462),a=n(7294),o=n(9960),i=n(4996),l=n(2263),s=n(6668),u=n(941);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,i.Z)(t.src),dark:(0,i.Z)(t.srcDark||t.src)},l=a.createElement(u.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?a.createElement("div",{className:r},l):l}function d(e){const{siteConfig:{title:t}}=(0,l.Z)(),{navbar:{title:n,logo:u}}=(0,s.L)(),{imageClassName:d,titleClassName:f,...p}=e,m=(0,i.Z)(u?.href||"/"),h=n?"":t,g=u?.alt??h;return a.createElement(o.Z,(0,r.Z)({to:m},p,u?.target&&{target:u.target}),u&&a.createElement(c,{logo:u,alt:g,imageClassName:d}),null!=n&&a.createElement("b",{className:f},n))}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(5742);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return r.createElement(a.Z,null,t&&r.createElement("meta",{name:"docusaurus_locale",content:t}),n&&r.createElement("meta",{name:"docusaurus_version",content:n}),o&&r.createElement("meta",{name:"docusaurus_tag",content:o}),i&&r.createElement("meta",{name:"docsearch:language",content:i}),n&&r.createElement("meta",{name:"docsearch:version",content:n}),o&&r.createElement("meta",{name:"docsearch:docusaurus_tag",content:o}))}},941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7462),a=n(7294),o=n(6010),i=n(2389),l=n(2949);const s={themedImage:"themedImage_ToTc","themedImage--light":"themedImage--light_HNdA","themedImage--dark":"themedImage--dark_i4oU"};function u(e){const t=(0,i.Z)(),{colorMode:n}=(0,l.I)(),{sources:u,className:c,alt:d,...f}=e,p=t?"dark"===n?["dark"]:["light"]:["light","dark"];return a.createElement(a.Fragment,null,p.map((e=>a.createElement("img",(0,r.Z)({key:e,src:u[e],alt:d,className:(0,o.Z)(s.themedImage,s[`themedImage--${e}`],c)},f)))))}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>l,z:()=>g});var r=n(7462),a=n(7294),o=n(412);const i="ease-in-out";function l(e){let{initialState:t}=e;const[n,r]=(0,a.useState)(t??!1),o=(0,a.useCallback)((()=>{r((e=>!e))}),[]);return{collapsed:n,setCollapsed:r,toggleCollapsed:o}}const s={display:"none",overflow:"hidden",height:"0px"},u={display:"block",overflow:"visible",height:"auto"};function c(e,t){const n=t?s:u;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function d(e){if(window.matchMedia("(prefers-reduced-motion: reduce)").matches)return 0;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}function f(e){let{collapsibleRef:t,collapsed:n,animation:r}=e;const o=(0,a.useRef)(!1);(0,a.useEffect)((()=>{const e=t.current;function a(){const t=function(){const t=e.scrollHeight;return{transition:`height ${r?.duration??d(t)}ms ${r?.easing??i}`,height:`${t}px`}}();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return c(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(a(),requestAnimationFrame((()=>{e.style.height=s.height,e.style.overflow=s.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{a()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,r])}function p(e){if(!o.Z.canUseDOM)return e?s:u}function m(e){let{as:t="div",collapsed:n,children:r,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:s}=e;const u=(0,a.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),a.createElement(t,{ref:u,style:s?void 0:p(n),onTransitionEnd:e=>{"height"===e.propertyName&&(c(u.current,n),i?.(n))},className:l},r)}function h(e){let{collapsed:t,...n}=e;const[o,i]=(0,a.useState)(!t),[l,s]=(0,a.useState)(t);return(0,a.useLayoutEffect)((()=>{t||i(!0)}),[t]),(0,a.useLayoutEffect)((()=>{o&&s(t)}),[o,t]),o?a.createElement(m,(0,r.Z)({},n,{collapsed:l})):null}function g(e){let{lazy:t,...n}=e;const r=t?h:m;return a.createElement(r,n)}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>m,pl:()=>p});var r=n(7294),a=n(2389),o=n(12),i=n(902),l=n(6668);const s=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),c=()=>"true"===s.get(),d=e=>s.set(String(e)),f=r.createContext(null);function p(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,l.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&c()));(0,r.useEffect)((()=>{o(c())}),[]);const i=(0,r.useCallback)((()=>{d(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&d(!1),!r&&c()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return r.createElement(f.Provider,{value:n},t)}function m(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>g,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),l=n(6668);const s=r.createContext(void 0),u="theme",c=(0,i.WA)(u),d={light:"light",dark:"dark"},f=e=>e===d.dark?d.dark:d.light,p=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),m=e=>{c.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,l.L)(),[a,o]=(0,r.useState)(p(e));(0,r.useEffect)((()=>{t&&c.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&m(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?d.dark:d.light:e),c.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=c.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const s=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||s.current?s.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===d.dark},setLightTheme(){i(d.light)},setDarkTheme(){i(d.dark)}})),[a,i])}();return r.createElement(s.Provider,{value:n},t)}function g(){const e=(0,r.useContext)(s);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>b,L5:()=>g,Oh:()=>y});var r=n(7294),a=n(143),o=n(9935),i=n(6668),l=n(2802),s=n(902),u=n(12);const c=e=>`docs-preferred-version-${e}`,d={save:(e,t,n)=>{(0,u.WA)(c(e),{persistence:t}).set(n)},read:(e,t)=>(0,u.WA)(c(e),{persistence:t}).get(),clear:(e,t)=>{(0,u.WA)(c(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const p=r.createContext(null);function m(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,l]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{l(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=d.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(d.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){d.save(e,t,n),l((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=m();return r.createElement(p.Provider,{value:n},t)}function g(e){let{children:t}=e;return l.cE?r.createElement(h,null,t):r.createElement(r.Fragment,null,t)}function v(){const e=(0,r.useContext)(p);if(!e)throw new s.i6("DocsPreferredVersionContextProvider");return e}function b(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:l}=n[e];return{preferredVersion:t.versions.find((e=>e.name===l))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function y(){const e=(0,a._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>s,b:()=>l});var r=n(7294),a=n(902);const o=Symbol("EmptyContext"),i=r.createContext(o);function l(e){let{children:t,name:n,items:a}=e;const o=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return r.createElement(i.Provider,{value:o},t)}function s(){const e=(0,r.useContext)(i);if(e===o)throw new a.i6("DocsSidebarProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>d,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),l=n(6668),s=n(902);const u=r.createContext(void 0);function c(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,l.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[s,u]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(s)return u(!1),!1}));const c=(0,r.useCallback)((()=>{u((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&u(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:c,shown:s})),[e,n,c,s])}function d(e){let{children:t}=e;const n=c();return r.createElement(u.Provider,{value:n},t)}function f(){const e=r.useContext(u);if(void 0===e)throw new s.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>s,n2:()=>i});var r=n(7294),a=n(902);const o=r.createContext(null);function i(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return r.createElement(o.Provider,{value:n},t)}function l(){const e=(0,r.useContext)(o);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function s(e){let{component:t,props:n}=e;const i=(0,r.useContext)(o);if(!i)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,l]=i,s=(0,a.Ql)(n);return(0,r.useEffect)((()=>{l({component:t,props:s})}),[l,t,s]),(0,r.useEffect)((()=>()=>l({component:null,props:null})),[l]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>l,M:()=>s});var r=n(7294),a=n(2263),o=n(1980);const i="q";function l(){return(0,o.Nc)(i)}function s(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>u});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function l(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const s=!1;function u(){const[e,t]=(0,r.useState)((()=>s?"ssr":l()));return(0,r.useEffect)((()=>{function e(){t(l())}const n=s?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},2802:(e,t,n)=>{"use strict";n.d(t,{Wl:()=>f,_F:()=>h,cE:()=>d,hI:()=>k,lO:()=>b,vY:()=>w,oz:()=>y,s1:()=>v});var r=n(7294),a=n(6550),o=n(8790),i=n(143),l=n(373),s=n(1116);function u(e){return Array.from(new Set(e))}var c=n(8596);const d=!!i._r;function f(e){if(e.href)return e.href;for(const t of e.items){if("link"===t.type)return t.href;if("category"===t.type){const e=f(t);if(e)return e}}}const p=(e,t)=>void 0!==e&&(0,c.Mg)(e,t),m=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?p(e.href,t):"category"===e.type&&(p(e.href,t)||m(e.items,t))}function g(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,c.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,c.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function v(){const e=(0,s.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?g({sidebarItems:e.items,pathname:t}):null}function b(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,l.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function y(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${Object.keys(t).join("\n- ")}`);return r[1]}),[e,n])}function w(e,t){const n=b(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function k(e){let{route:t,versionMetadata:n}=e;const r=(0,a.TH)(),i=t.routes,l=i.find((e=>(0,a.LX)(r.pathname,e)));if(!l)return null;const s=l.sidebar,u=s?n.docsSidebars[s]:void 0;return{docElement:(0,o.H)(i),sidebarName:s,sidebarItems:u}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>u,Rb:()=>l});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function l(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function u(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>c,VC:()=>p});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function l(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var s=n(4996),u=n(2128);function c(e){let{title:t,description:n,keywords:a,image:i,children:l}=e;const c=(0,u.p)(t),{withBaseUrl:d}=(0,s.C)(),f=i?d(i,{absolute:!0}):void 0;return r.createElement(o.Z,null,t&&r.createElement("title",null,c),t&&r.createElement("meta",{property:"og:title",content:c}),n&&r.createElement("meta",{name:"description",content:n}),n&&r.createElement("meta",{property:"og:description",content:n}),a&&r.createElement("meta",{name:"keywords",content:Array.isArray(a)?a.join(","):a}),f&&r.createElement("meta",{property:"og:image",content:f}),f&&r.createElement("meta",{name:"twitter:image",content:f}),l)}const d=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(d),l=(0,a.Z)(i,t);return r.createElement(d.Provider,{value:l},r.createElement(o.Z,null,r.createElement("html",{className:l})),n)}function p(e){let{children:t}=e;const n=l(),o=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const i=`plugin-id-${n.plugin.id}`;return r.createElement(f,{className:(0,a.Z)(o,i)},t)}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>i,Qc:()=>u,Ql:()=>s,i6:()=>l,zX:()=>o});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect;function o(e){const t=(0,r.useRef)(e);return a((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function i(e){const t=(0,r.useRef)();return a((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function s(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return r.createElement(r.Fragment,null,e.reduceRight(((e,t)=>r.createElement(t,null,e)),n))}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>l});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function l(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>s,RF:()=>d});var r=n(7294),a=n(412),o=n(2389),i=n(902);const l=r.createContext(void 0);function s(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return r.createElement(l.Provider,{value:n},t)}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const c=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function d(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(c()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=c();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&at&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>s,os:()=>l});var r=n(143),a=n(2263),o=n(373);const i="default";function l(e,t){return`docs-${e}-${t}`}function s(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),s=(0,o.Oh)();const u=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=s[e],o=t[e].versions.find((e=>e.isLast));return l(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:u}}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>s});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const l={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function s(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?l:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),l=o===n?e:e.replace(`/${o}/`,"/"),s=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${l}`:`${l}${e}/`}(r)}${s}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>l});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function l(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="post-content";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;ta});const a=function(){for(var e,t,n=0,a="";n{"use strict";n.d(t,{lX:()=>w,q_:()=>T,ob:()=>p,PP:()=>A,Ep:()=>f});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r=0;f--){var p=i[f];"."===p?o(i,f):".."===p?(o(i,f),d++):d&&(o(i,f),d--)}if(!u)for(;d--;d)i.unshift("..");!u||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var l=n(8776);function s(e){return"/"===e.charAt(0)?e:"/"+e}function u(e){return"/"===e.charAt(0)?e.substr(1):e}function c(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function f(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function p(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(l){throw l instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):l}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=p(e,t,h(),w.location);c.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},l={};function s(e){return r.isMemo(e)?i:l[e.$$typeof]||a}l[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},l[r.Memo]=i;var u=Object.defineProperty,c=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,f=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=p(n);a&&a!==m&&e(t,a,r)}var i=c(n);d&&(i=i.concat(d(n)));for(var l=s(t),h=s(n),g=0;g{"use strict";e.exports=function(e,t,n,r,a,o,i,l){if(!e){var s;if(void 0===t)s=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[n,r,a,o,i,l],c=0;(s=new Error(t.replace(/%s/g,(function(){return u[c++]})))).name="Invariant Violation"}throw s.framesToPop=1,s}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};function a(e,t,n){return en?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),u=o.querySelector(r.barSelector),c=r.speed,d=r.easing;return o.offsetWidth,l((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),s(u,i(e,c,d)),1===e?(s(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){s(o,{transition:"all "+c+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),c)}),c)):setTimeout(t,c)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");c(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),l=e?"-100":o(n.status||0),u=document.querySelector(r.parent);return s(i,{transition:"all 0 linear",transform:"translate3d("+l+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&p(a),u!=document.body&&c(u,"nprogress-custom-parent"),u.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&p(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var l=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),s=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function u(e,t){return("string"==typeof e?e:f(e)).indexOf(" "+t+" ")>=0}function c(e,t){var n=f(e),r=n+t;u(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=f(e);u(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function f(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function p(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(a){return!1}}()?Object.assign:function(e,a){for(var o,i,l=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),s=1;s{var r=n(5826);e.exports=p,e.exports.parse=o,e.exports.compile=function(e,t){return l(o(e,t),t)},e.exports.tokensToFunction=l,e.exports.tokensToRegExp=f;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,l="",c=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],f=n[1],p=n.index;if(l+=e.slice(i,p),i=p+d.length,f)l+=f[1];else{var m=e[i],h=n[2],g=n[3],v=n[4],b=n[5],y=n[6],w=n[7];l&&(r.push(l),l="");var k=null!=h&&null!=m&&m!==h,E="+"===y||"*"===y,S="?"===y||"*"===y,x=n[2]||c,C=v||b;r.push({name:g||o++,prefix:h||"",delimiter:x,optional:S,repeat:E,partial:k,asterisk:!!w,pattern:C?u(C):w?".*":"[^"+s(x)+"]+?"})}}return i{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/=d.reach);S+=E.value.length,E=E.next){var x=E.value;if(t.length>e.length)return;if(!(x instanceof a)){var C,T=1;if(b){if(!(C=o(k,S,e,v))||C.index>=e.length)break;var _=C.index,A=C.index+C[0].length,L=S;for(L+=E.value.length;_>=L;)L+=(E=E.next).value.length;if(S=L-=E.value.length,E.value instanceof a)continue;for(var R=E;R!==t.tail&&(Ld.reach&&(d.reach=I);var D=E.prev;if(O&&(D=s(t,D,O),S+=O.length),u(t,D,T),E=s(t,D,new a(f,g?r.tokenize(N,g):N,y,N)),P&&s(t,E,P),T>1){var M={cause:f+","+m,reach:I};i(e,t,n,E.prev,S,M),d&&M.reach>d.reach&&(d.reach=M.reach)}}}}}}function l(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function s(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function u(e,t,n){for(var r=t.next,a=0;a"+o.content+""},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:))*\]\]>|(?!)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!)\w+(?:\s*\.\s*\w+)*\b/.source.replace(//g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!)\w+/.source.replace(//g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/(?:\s*:\s*)?|:\s*/.source.replace(//g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-])(?:[ \t]*(?:(?![#:])|:))*/.source.replace(//g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<>[ \t]+)?)(?:<>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<>[ \t]+)?)<>(?=\s*:\s)/.source.replace(/<>/g,(function(){return r})).replace(/<>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(//g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)|_(?:(?!_))+_)+__\b|\*\*(?:(?!\*)|\*(?:(?!\*))+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)|__(?:(?!_))+__)+_\b|\*(?:(?!\*)|\*\*(?:(?!\*))+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~))+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\]))+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\]))+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n",quot:'"'},s=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n0)){var l=f(/^\{$/,/^\}$/);if(-1===l)continue;for(var s=n;s=0&&p(u,"variable-input")}}}}function c(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function l(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function s(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function u(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,s(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function c(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,c={},d=s(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=l(i++,r)););return c[n]=a,n})).join(""),n,r),f=Object.keys(c);return i=0,function e(t){for(var n=0;n=f.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=f[i],o="string"==typeof r?r:r.content,l=o.indexOf(a);if(-1!==l){++i;var s=o.substring(0,l),d=u(c[a]),p=o.substring(l+a.length),m=[];if(s&&m.push(s),m.push(d),p){var h=[p];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function f(e){return"string"==typeof e?e:Array.isArray(e)?e.map(f).join(""):f(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(//g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:(?:\s*,\s*(?:\*\s*as\s+|\{[^{}]*\}))?|\*\s*as\s+|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r*\.{3}(?:[^{}]|)*\})/.source;function o(e,t){return e=e.replace(//g,(function(){return n})).replace(//g,(function(){return r})).replace(//g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|))?|))**\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(//.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},l=function(t){for(var n=[],r=0;r0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var s=i(a);r0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(s=i(t[r-1])+s,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",s,null,s)}a.content&&"string"!=typeof a.content&&l(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||l(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,l=i.length;-1!==n.code.indexOf(a=t(r,l));)++l;return i[l]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(l){for(var s=0;s=o.length);s++){var u=l[s];if("string"==typeof u||u.content&&"string"==typeof u.content){var c=o[a],d=n.tokenStack[c],f="string"==typeof u?u:u.content,p=t(r,c),m=f.indexOf(p);if(m>-1){++a;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),v=f.substring(m+p.length),b=[];h&&b.push.apply(b,i([h])),b.push(g),v&&b.push.apply(b,i([v])),"string"==typeof u?l.splice.apply(l,[s,1].concat(b)):u.content=b}}else u.content&&i(u.content)}return l}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to WebPlatform.org documentation. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (.comment can become .namespace--comment) or replace them with your defined ones (like .editor__comment). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the highlightAll and highlightAllUnder methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n "));var l={},s=e[r];if(s){function u(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in l))for(var i in a(t,o),l[t]=!0,n[t])l[i]=!0}t(s.require,u),t(s.optional,u),t(s.modify,u)}n[r]=l,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,l){var s=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),u=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(s);i=i.map(u),l=(l||[]).map(u);var c=n(i),d=n(l);i.forEach((function e(n){var r=s[n];t(r&&r.require,(function(t){t in d||(c[t]=!0,e(t))}))}));for(var f,p=r(s),m=c;a(m);){for(var h in f={},m){var g=s[h];t(g&&g.modify,(function(e){e in d&&(f[e]=!0)}))}for(var v in d)if(!(v in c))for(var b in p(v))if(b in c){f[v]=!0;break}for(var y in m=f)c[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,l={},s={};function u(e){if(e in l)return l[e];s[e]=!0;var a,c=[];for(var d in t(e))d in n&&c.push(d);if(0===c.length)a=r(e);else{var f=i(c.map((function(e){var t=u(e);return delete s[e],t})));o?a=o(f,(function(){return r(e)})):r(e)}return l[e]=a}for(var c in n)u(c);var d=[];for(var f in s)d.push(l[f]);return i(d)}(p,c,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(7418),o=n(3840);function i(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n