diff --git a/docs/1-c01c17ca753e879f146f.js b/docs/1-6b574e676df0cbff0b46.js similarity index 88% rename from docs/1-c01c17ca753e879f146f.js rename to docs/1-6b574e676df0cbff0b46.js index b4094505cf4d..e2c259a8700e 100644 --- a/docs/1-c01c17ca753e879f146f.js +++ b/docs/1-6b574e676df0cbff0b46.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{163:function(e,t,n){e.exports=n(252)()},165:function(e,t,n){"use strict";var r=n(0),o=n(65),i=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,a=Object(o.a)(function(e){return i.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}),c=n(60),u=n.n(c),s=n(7),l=n(85),f=n(54),p=a,d=function(e){return"theme"!==e&&"innerRef"!==e},T=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?p:d};t.a=function e(t,n){var o,i,a;void 0!==n&&(o=n.label,a=n.target,i=t.__emotion_forwardProp&&n.shouldForwardProp?function(e){return t.__emotion_forwardProp(e)&&n.shouldForwardProp(e)}:n.shouldForwardProp);var c=t.__emotion_real===t,p=c&&t.__emotion_base||t;"function"!=typeof i&&c&&(i=t.__emotion_forwardProp);var d=i||T(p),E=!d("as");return function(){var h=arguments,y=c&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==o&&y.push("label:"+o+";"),null==h[0]||void 0===h[0].raw)y.push.apply(y,h);else{y.push(h[0][0]);for(var A=h.length,m=1;m=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var d,T,E,h=(0,c.default)(s.reducePropsToState,s.handleClientStateChange,s.mapStateOnServer)(function(){return null}),y=(d=h,E=T=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!(0,u.default)(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case l.TAG_NAMES.SCRIPT:case l.TAG_NAMES.NOSCRIPT:return{innerHTML:t};case l.TAG_NAMES.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,o=e.arrayTypeChildren,i=e.newChildProps,a=e.nestedChildren;return r({},o,((t={})[n.type]=[].concat(o[n.type]||[],[r({},i,this.mapNestedChildrenToProps(n,a))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,o=e.child,i=e.newProps,a=e.newChildProps,c=e.nestedChildren;switch(o.type){case l.TAG_NAMES.TITLE:return r({},i,((t={})[o.type]=c,t.titleAttributes=r({},a),t));case l.TAG_NAMES.BODY:return r({},i,{bodyAttributes:r({},a)});case l.TAG_NAMES.HTML:return r({},i,{htmlAttributes:r({},a)})}return r({},i,((n={})[o.type]=r({},a),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=r({},t);return Object.keys(e).forEach(function(t){var o;n=r({},n,((o={})[t]=e[t],o))}),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return i.default.Children.forEach(e,function(e){if(e&&e.props){var o=e.props,i=o.children,a=p(o,["children"]),c=(0,s.convertReactPropstoHtmlAttributes)(a);switch(n.warnOnInvalidChildren(e,i),e.type){case l.TAG_NAMES.LINK:case l.TAG_NAMES.META:case l.TAG_NAMES.NOSCRIPT:case l.TAG_NAMES.SCRIPT:case l.TAG_NAMES.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:c,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:c,nestedChildren:i})}}}),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=p(e,["children"]),o=r({},n);return t&&(o=this.mapChildrenToProps(t,o)),i.default.createElement(d,o)},o(t,null,[{key:"canUseDOM",set:function(e){d.canUseDOM=e}}]),t}(i.default.Component),T.propTypes={base:a.default.object,bodyAttributes:a.default.object,children:a.default.oneOfType([a.default.arrayOf(a.default.node),a.default.node]),defaultTitle:a.default.string,defer:a.default.bool,encodeSpecialCharacters:a.default.bool,htmlAttributes:a.default.object,link:a.default.arrayOf(a.default.object),meta:a.default.arrayOf(a.default.object),noscript:a.default.arrayOf(a.default.object),onChangeClientState:a.default.func,script:a.default.arrayOf(a.default.object),style:a.default.arrayOf(a.default.object),title:a.default.string,titleAttributes:a.default.object,titleTemplate:a.default.string},T.defaultProps={defer:!0,encodeSpecialCharacters:!0},T.peek=d.peek,T.rewind=function(){var e=d.rewind();return e||(e=(0,s.mapStateOnServer)({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},E);y.renderStatic=y.rewind,t.Helmet=y,t.default=y},178:function(e,t,n){"use strict";n(194)("link",function(e){return function(t){return e(this,"a","href",t)}})},194:function(e,t,n){var r=n(13),o=n(27),i=n(21),a=/"/g,c=function(e,t,n,r){var o=String(i(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(r).replace(a,""")+'"'),c+">"+o+""};e.exports=function(e,t){var n={};n[e]=t(c),r(r.P+r.F*o(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},207:function(e,t){t.__esModule=!0;t.ATTRIBUTE_NAMES={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"};var n=t.TAG_NAMES={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},r=(t.VALID_TAG_NAMES=Object.keys(n).map(function(e){return n[e]}),t.TAG_PROPERTIES={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src"},t.REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"});t.HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},t.HTML_TAG_MAP=Object.keys(r).reduce(function(e,t){return e[r[t]]=t,e},{}),t.SELF_CLOSING_TAGS=[n.NOSCRIPT,n.SCRIPT,n.STYLE],t.HELMET_ATTRIBUTE="data-react-helmet"},252:function(e,t,n){"use strict";var r=n(253);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=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 c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array: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:i,resetWarningCache:o};return n.PropTypes=n,n}},253:function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},254:function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var o=n(0),i=r(o),a=r(n(255)),c=r(n(256));e.exports=function(e,t,n){if("function"!=typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!=typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if(void 0!==n&&"function"!=typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!=typeof r)throw new Error("Expected WrappedComponent to be a React component.");var u=[],s=void 0;function l(){s=e(u.map(function(e){return e.props})),f.canUseDOM?t(s):n&&(s=n(s))}var f=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.peek=function(){return s},t.rewind=function(){if(t.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=s;return s=void 0,u=[],e},t.prototype.shouldComponentUpdate=function(e){return!c(e,this.props)},t.prototype.componentWillMount=function(){u.push(this),l()},t.prototype.componentDidUpdate=function(){l()},t.prototype.componentWillUnmount=function(){var e=u.indexOf(this);u.splice(e,1),l()},t.prototype.render=function(){return i.createElement(r,this.props)},t}(o.Component);return f.displayName="SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")",f.canUseDOM=a.canUseDOM,f}}},255:function(e,t,n){var r;!function(){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen};void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},256:function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(t),u=0;u=0;s--)if(f[s]!=p[s])return!1;for(s=f.length-1;s>=0;s--)if(l=f[s],!a(e[l],t[l],n))return!1;return typeof e==typeof t}(e,t,n))};function c(e){return null==e}function u(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}},258:function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},259:function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},260:function(e,t,n){(function(e){t.__esModule=!0,t.warn=t.requestAnimationFrame=t.reducePropsToState=t.mapStateOnServer=t.handleClientStateChange=t.convertReactPropstoHtmlAttributes=void 0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},f=function(e){var t=h(e,c.TAG_NAMES.TITLE),n=h(e,c.HELMET_PROPS.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return t});var r=h(e,c.HELMET_PROPS.DEFAULT_TITLE);return t||r||void 0},p=function(e){return h(e,c.HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},d=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return o({},e,t)},{})},T=function(e,t){return t.filter(function(e){return void 0!==e[c.TAG_NAMES.BASE]}).map(function(e){return e[c.TAG_NAMES.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},y=(s=Date.now(),function(e){var t=Date.now();t-s>16?(s=t,e(t)):setTimeout(function(){y(e)},0)}),A=function(e){return clearTimeout(e)},m="undefined"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||y:e.requestAnimationFrame||y,S="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||A:e.cancelAnimationFrame||A,g=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},b=null,_=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,f=e.styleTags,p=e.title,d=e.titleAttributes;P(c.TAG_NAMES.BODY,r),P(c.TAG_NAMES.HTML,o),O(p,d);var T={baseTag:R(c.TAG_NAMES.BASE,n),linkTags:R(c.TAG_NAMES.LINK,i),metaTags:R(c.TAG_NAMES.META,a),noscriptTags:R(c.TAG_NAMES.NOSCRIPT,u),scriptTags:R(c.TAG_NAMES.SCRIPT,l),styleTags:R(c.TAG_NAMES.STYLE,f)},E={},h={};Object.keys(T).forEach(function(e){var t=T[e],n=t.newTags,r=t.oldTags;n.length&&(E[e]=n),r.length&&(h[e]=T[e].oldTags)}),t&&t(),s(e,E,h)},v=function(e){return Array.isArray(e)?e.join(""):e},O=function(e,t){void 0!==e&&document.title!==e&&(document.title=v(e)),P(c.TAG_NAMES.TITLE,t)},P=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(c.HELMET_ATTRIBUTE),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),u=0;u=0;p--)n.removeAttribute(i[p]);o.length===i.length?n.removeAttribute(c.HELMET_ATTRIBUTE):n.getAttribute(c.HELMET_ATTRIBUTE)!==a.join(",")&&n.setAttribute(c.HELMET_ATTRIBUTE,a.join(","))}},R=function(e,t){var n=document.head||document.querySelector(c.TAG_NAMES.HEAD),r=n.querySelectorAll(e+"["+c.HELMET_ATTRIBUTE+"]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===c.TAG_PROPERTIES.INNER_HTML)n.innerHTML=t.innerHTML;else if(r===c.TAG_PROPERTIES.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u=void 0===t[r]?"":t[r];n.setAttribute(r,u)}n.setAttribute(c.HELMET_ATTRIBUTE,"true"),o.some(function(e,t){return a=t,n.isEqualNode(e)})?o.splice(a,1):i.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:i}},C=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[c.REACT_TAG_MAP[n]||n]=e[n],t},t)},w=function(e,t,n){switch(e){case c.TAG_NAMES.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[c.HELMET_ATTRIBUTE]=!0,o=M(n,r),[i.default.createElement(c.TAG_NAMES.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=C(n),i=v(t);return o?"<"+e+" "+c.HELMET_ATTRIBUTE+'="true" '+o+">"+l(i,r)+"":"<"+e+" "+c.HELMET_ATTRIBUTE+'="true">'+l(i,r)+""}(e,t.title,t.titleAttributes,n)}};case c.ATTRIBUTE_NAMES.BODY:case c.ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return M(t)},toString:function(){return C(t)}};default:return{toComponent:function(){return function(e,t){return t.map(function(t,n){var r,o=((r={key:n})[c.HELMET_ATTRIBUTE]=!0,r);return Object.keys(t).forEach(function(e){var n=c.REACT_TAG_MAP[e]||e;if(n===c.TAG_PROPERTIES.INNER_HTML||n===c.TAG_PROPERTIES.CSS_TEXT){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]}),i.default.createElement(e,o)})}(e,t)},toString:function(){return function(e,t,n){return t.reduce(function(t,r){var o=Object.keys(r).filter(function(e){return!(e===c.TAG_PROPERTIES.INNER_HTML||e===c.TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var o=void 0===r[t]?t:t+'="'+l(r[t],n)+'"';return e?e+" "+o:o},""),i=r.innerHTML||r.cssText||"",a=-1===c.SELF_CLOSING_TAGS.indexOf(e);return t+"<"+e+" "+c.HELMET_ATTRIBUTE+'="true" '+o+(a?"/>":">"+i+"")},"")}(e,t,n)}}}};t.convertReactPropstoHtmlAttributes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[c.HTML_TAG_MAP[n]||n]=e[n],t},t)},t.handleClientStateChange=function(e){b&&S(b),e.defer?b=m(function(){_(e,function(){b=null})}):(_(e),b=null)},t.mapStateOnServer=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,s=e.scriptTags,l=e.styleTags,f=e.title,p=void 0===f?"":f,d=e.titleAttributes;return{base:w(c.TAG_NAMES.BASE,t,r),bodyAttributes:w(c.ATTRIBUTE_NAMES.BODY,n,r),htmlAttributes:w(c.ATTRIBUTE_NAMES.HTML,o,r),link:w(c.TAG_NAMES.LINK,i,r),meta:w(c.TAG_NAMES.META,a,r),noscript:w(c.TAG_NAMES.NOSCRIPT,u,r),script:w(c.TAG_NAMES.SCRIPT,s,r),style:w(c.TAG_NAMES.STYLE,l,r),title:w(c.TAG_NAMES.TITLE,{title:p,titleAttributes:d},r)}},t.reducePropsToState=function(e){return{baseTag:T([c.TAG_PROPERTIES.HREF],e),bodyAttributes:d(c.ATTRIBUTE_NAMES.BODY,e),defer:h(e,c.HELMET_PROPS.DEFER),encode:h(e,c.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:d(c.ATTRIBUTE_NAMES.HTML,e),linkTags:E(c.TAG_NAMES.LINK,[c.TAG_PROPERTIES.REL,c.TAG_PROPERTIES.HREF],e),metaTags:E(c.TAG_NAMES.META,[c.TAG_PROPERTIES.NAME,c.TAG_PROPERTIES.CHARSET,c.TAG_PROPERTIES.HTTPEQUIV,c.TAG_PROPERTIES.PROPERTY,c.TAG_PROPERTIES.ITEM_PROP],e),noscriptTags:E(c.TAG_NAMES.NOSCRIPT,[c.TAG_PROPERTIES.INNER_HTML],e),onChangeClientState:p(e),scriptTags:E(c.TAG_NAMES.SCRIPT,[c.TAG_PROPERTIES.SRC,c.TAG_PROPERTIES.INNER_HTML],e),styleTags:E(c.TAG_NAMES.STYLE,[c.TAG_PROPERTIES.CSS_TEXT],e),title:f(e),titleAttributes:d(c.ATTRIBUTE_NAMES.TITLE,e)}},t.requestAnimationFrame=m,t.warn=g}).call(this,n(83))}}]); -//# sourceMappingURL=1-c01c17ca753e879f146f.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[1],{165:function(e,t,n){e.exports=n(255)()},167:function(e,t,n){"use strict";var r=n(0),o=n(66),i=/^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/,a=Object(o.a)(function(e){return i.test(e)||111===e.charCodeAt(0)&&110===e.charCodeAt(1)&&e.charCodeAt(2)<91}),c=n(60),u=n.n(c),s=n(8),l=n(86),f=n(55),p=a,d=function(e){return"theme"!==e&&"innerRef"!==e},T=function(e){return"string"==typeof e&&e.charCodeAt(0)>96?p:d};t.a=function e(t,n){var o,i,a;void 0!==n&&(o=n.label,a=n.target,i=t.__emotion_forwardProp&&n.shouldForwardProp?function(e){return t.__emotion_forwardProp(e)&&n.shouldForwardProp(e)}:n.shouldForwardProp);var c=t.__emotion_real===t,p=c&&t.__emotion_base||t;"function"!=typeof i&&c&&(i=t.__emotion_forwardProp);var d=i||T(p),E=!d("as");return function(){var h=arguments,y=c&&void 0!==t.__emotion_styles?t.__emotion_styles.slice(0):[];if(void 0!==o&&y.push("label:"+o+";"),null==h[0]||void 0===h[0].raw)y.push.apply(y,h);else{y.push(h[0][0]);for(var A=h.length,m=1;m=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var d,T,E,h=(0,c.default)(s.reducePropsToState,s.handleClientStateChange,s.mapStateOnServer)(function(){return null}),y=(d=h,E=T=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.prototype.shouldComponentUpdate=function(e){return!(0,u.default)(this.props,e)},t.prototype.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case l.TAG_NAMES.SCRIPT:case l.TAG_NAMES.NOSCRIPT:return{innerHTML:t};case l.TAG_NAMES.STYLE:return{cssText:t}}throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")},t.prototype.flattenArrayTypeChildren=function(e){var t,n=e.child,o=e.arrayTypeChildren,i=e.newChildProps,a=e.nestedChildren;return r({},o,((t={})[n.type]=[].concat(o[n.type]||[],[r({},i,this.mapNestedChildrenToProps(n,a))]),t))},t.prototype.mapObjectTypeChildren=function(e){var t,n,o=e.child,i=e.newProps,a=e.newChildProps,c=e.nestedChildren;switch(o.type){case l.TAG_NAMES.TITLE:return r({},i,((t={})[o.type]=c,t.titleAttributes=r({},a),t));case l.TAG_NAMES.BODY:return r({},i,{bodyAttributes:r({},a)});case l.TAG_NAMES.HTML:return r({},i,{htmlAttributes:r({},a)})}return r({},i,((n={})[o.type]=r({},a),n))},t.prototype.mapArrayTypeChildrenToProps=function(e,t){var n=r({},t);return Object.keys(e).forEach(function(t){var o;n=r({},n,((o={})[t]=e[t],o))}),n},t.prototype.warnOnInvalidChildren=function(e,t){return!0},t.prototype.mapChildrenToProps=function(e,t){var n=this,r={};return i.default.Children.forEach(e,function(e){if(e&&e.props){var o=e.props,i=o.children,a=p(o,["children"]),c=(0,s.convertReactPropstoHtmlAttributes)(a);switch(n.warnOnInvalidChildren(e,i),e.type){case l.TAG_NAMES.LINK:case l.TAG_NAMES.META:case l.TAG_NAMES.NOSCRIPT:case l.TAG_NAMES.SCRIPT:case l.TAG_NAMES.STYLE:r=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:r,newChildProps:c,nestedChildren:i});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:c,nestedChildren:i})}}}),t=this.mapArrayTypeChildrenToProps(r,t)},t.prototype.render=function(){var e=this.props,t=e.children,n=p(e,["children"]),o=r({},n);return t&&(o=this.mapChildrenToProps(t,o)),i.default.createElement(d,o)},o(t,null,[{key:"canUseDOM",set:function(e){d.canUseDOM=e}}]),t}(i.default.Component),T.propTypes={base:a.default.object,bodyAttributes:a.default.object,children:a.default.oneOfType([a.default.arrayOf(a.default.node),a.default.node]),defaultTitle:a.default.string,defer:a.default.bool,encodeSpecialCharacters:a.default.bool,htmlAttributes:a.default.object,link:a.default.arrayOf(a.default.object),meta:a.default.arrayOf(a.default.object),noscript:a.default.arrayOf(a.default.object),onChangeClientState:a.default.func,script:a.default.arrayOf(a.default.object),style:a.default.arrayOf(a.default.object),title:a.default.string,titleAttributes:a.default.object,titleTemplate:a.default.string},T.defaultProps={defer:!0,encodeSpecialCharacters:!0},T.peek=d.peek,T.rewind=function(){var e=d.rewind();return e||(e=(0,s.mapStateOnServer)({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}})),e},E);y.renderStatic=y.rewind,t.Helmet=y,t.default=y},179:function(e,t,n){"use strict";n(208)("link",function(e){return function(t){return e(this,"a","href",t)}})},207:function(e,t){t.__esModule=!0;t.ATTRIBUTE_NAMES={BODY:"bodyAttributes",HTML:"htmlAttributes",TITLE:"titleAttributes"};var n=t.TAG_NAMES={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title"},r=(t.VALID_TAG_NAMES=Object.keys(n).map(function(e){return n[e]}),t.TAG_PROPERTIES={CHARSET:"charset",CSS_TEXT:"cssText",HREF:"href",HTTPEQUIV:"http-equiv",INNER_HTML:"innerHTML",ITEM_PROP:"itemprop",NAME:"name",PROPERTY:"property",REL:"rel",SRC:"src"},t.REACT_TAG_MAP={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"});t.HELMET_PROPS={DEFAULT_TITLE:"defaultTitle",DEFER:"defer",ENCODE_SPECIAL_CHARACTERS:"encodeSpecialCharacters",ON_CHANGE_CLIENT_STATE:"onChangeClientState",TITLE_TEMPLATE:"titleTemplate"},t.HTML_TAG_MAP=Object.keys(r).reduce(function(e,t){return e[r[t]]=t,e},{}),t.SELF_CLOSING_TAGS=[n.NOSCRIPT,n.SCRIPT,n.STYLE],t.HELMET_ATTRIBUTE="data-react-helmet"},208:function(e,t,n){var r=n(13),o=n(27),i=n(21),a=/"/g,c=function(e,t,n,r){var o=String(i(e)),c="<"+t;return""!==n&&(c+=" "+n+'="'+String(r).replace(a,""")+'"'),c+">"+o+""};e.exports=function(e,t){var n={};n[e]=t(c),r(r.P+r.F*o(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},255:function(e,t,n){"use strict";var r=n(256);function o(){}function i(){}i.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,i,a){if(a!==r){var c=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 c.name="Invariant Violation",c}}function t(){return e}e.isRequired=e;var n={array: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:i,resetWarningCache:o};return n.PropTypes=n,n}},256:function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},257:function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}var o=n(0),i=r(o),a=r(n(258)),c=r(n(259));e.exports=function(e,t,n){if("function"!=typeof e)throw new Error("Expected reducePropsToState to be a function.");if("function"!=typeof t)throw new Error("Expected handleStateChangeOnClient to be a function.");if(void 0!==n&&"function"!=typeof n)throw new Error("Expected mapStateOnServer to either be undefined or a function.");return function(r){if("function"!=typeof r)throw new Error("Expected WrappedComponent to be a React component.");var u=[],s=void 0;function l(){s=e(u.map(function(e){return e.props})),f.canUseDOM?t(s):n&&(s=n(s))}var f=function(e){function t(){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}(this,e.apply(this,arguments))}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,e),t.peek=function(){return s},t.rewind=function(){if(t.canUseDOM)throw new Error("You may only call rewind() on the server. Call peek() to read the current state.");var e=s;return s=void 0,u=[],e},t.prototype.shouldComponentUpdate=function(e){return!c(e,this.props)},t.prototype.componentWillMount=function(){u.push(this),l()},t.prototype.componentDidUpdate=function(){l()},t.prototype.componentWillUnmount=function(){var e=u.indexOf(this);u.splice(e,1),l()},t.prototype.render=function(){return i.createElement(r,this.props)},t}(o.Component);return f.displayName="SideEffect("+function(e){return e.displayName||e.name||"Component"}(r)+")",f.canUseDOM=a.canUseDOM,f}}},258:function(e,t,n){var r;!function(){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen};void 0===(r=function(){return i}.call(t,n,t,e))||(e.exports=r)}()},259:function(e,t){e.exports=function(e,t,n,r){var o=n?n.call(r,e,t):void 0;if(void 0!==o)return!!o;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var i=Object.keys(e),a=Object.keys(t);if(i.length!==a.length)return!1;for(var c=Object.prototype.hasOwnProperty.bind(t),u=0;u=0;s--)if(f[s]!=p[s])return!1;for(s=f.length-1;s>=0;s--)if(l=f[s],!a(e[l],t[l],n))return!1;return typeof e==typeof t}(e,t,n))};function c(e){return null==e}function u(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}},261:function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}(e.exports="function"==typeof Object.keys?Object.keys:n).shim=n},262:function(e,t){var n="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();function r(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function o(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}(t=e.exports=n?r:o).supported=r,t.unsupported=o},263:function(e,t,n){(function(e){t.__esModule=!0,t.warn=t.requestAnimationFrame=t.reducePropsToState=t.mapStateOnServer=t.handleClientStateChange=t.convertReactPropstoHtmlAttributes=void 0;var r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1])||arguments[1])?String(e):String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},f=function(e){var t=h(e,c.TAG_NAMES.TITLE),n=h(e,c.HELMET_PROPS.TITLE_TEMPLATE);if(n&&t)return n.replace(/%s/g,function(){return t});var r=h(e,c.HELMET_PROPS.DEFAULT_TITLE);return t||r||void 0},p=function(e){return h(e,c.HELMET_PROPS.ON_CHANGE_CLIENT_STATE)||function(){}},d=function(e,t){return t.filter(function(t){return void 0!==t[e]}).map(function(t){return t[e]}).reduce(function(e,t){return o({},e,t)},{})},T=function(e,t){return t.filter(function(e){return void 0!==e[c.TAG_NAMES.BASE]}).map(function(e){return e[c.TAG_NAMES.BASE]}).reverse().reduce(function(t,n){if(!t.length)for(var r=Object.keys(n),o=0;o=0;n--){var r=e[n];if(r.hasOwnProperty(t))return r[t]}return null},y=(s=Date.now(),function(e){var t=Date.now();t-s>16?(s=t,e(t)):setTimeout(function(){y(e)},0)}),A=function(e){return clearTimeout(e)},m="undefined"!=typeof window?window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||y:e.requestAnimationFrame||y,S="undefined"!=typeof window?window.cancelAnimationFrame||window.webkitCancelAnimationFrame||window.mozCancelAnimationFrame||A:e.cancelAnimationFrame||A,g=function(e){return console&&"function"==typeof console.warn&&console.warn(e)},b=null,_=function(e,t){var n=e.baseTag,r=e.bodyAttributes,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,f=e.styleTags,p=e.title,d=e.titleAttributes;P(c.TAG_NAMES.BODY,r),P(c.TAG_NAMES.HTML,o),O(p,d);var T={baseTag:R(c.TAG_NAMES.BASE,n),linkTags:R(c.TAG_NAMES.LINK,i),metaTags:R(c.TAG_NAMES.META,a),noscriptTags:R(c.TAG_NAMES.NOSCRIPT,u),scriptTags:R(c.TAG_NAMES.SCRIPT,l),styleTags:R(c.TAG_NAMES.STYLE,f)},E={},h={};Object.keys(T).forEach(function(e){var t=T[e],n=t.newTags,r=t.oldTags;n.length&&(E[e]=n),r.length&&(h[e]=T[e].oldTags)}),t&&t(),s(e,E,h)},v=function(e){return Array.isArray(e)?e.join(""):e},O=function(e,t){void 0!==e&&document.title!==e&&(document.title=v(e)),P(c.TAG_NAMES.TITLE,t)},P=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute(c.HELMET_ATTRIBUTE),o=r?r.split(","):[],i=[].concat(o),a=Object.keys(t),u=0;u=0;p--)n.removeAttribute(i[p]);o.length===i.length?n.removeAttribute(c.HELMET_ATTRIBUTE):n.getAttribute(c.HELMET_ATTRIBUTE)!==a.join(",")&&n.setAttribute(c.HELMET_ATTRIBUTE,a.join(","))}},R=function(e,t){var n=document.head||document.querySelector(c.TAG_NAMES.HEAD),r=n.querySelectorAll(e+"["+c.HELMET_ATTRIBUTE+"]"),o=Array.prototype.slice.call(r),i=[],a=void 0;return t&&t.length&&t.forEach(function(t){var n=document.createElement(e);for(var r in t)if(t.hasOwnProperty(r))if(r===c.TAG_PROPERTIES.INNER_HTML)n.innerHTML=t.innerHTML;else if(r===c.TAG_PROPERTIES.CSS_TEXT)n.styleSheet?n.styleSheet.cssText=t.cssText:n.appendChild(document.createTextNode(t.cssText));else{var u=void 0===t[r]?"":t[r];n.setAttribute(r,u)}n.setAttribute(c.HELMET_ATTRIBUTE,"true"),o.some(function(e,t){return a=t,n.isEqualNode(e)})?o.splice(a,1):i.push(n)}),o.forEach(function(e){return e.parentNode.removeChild(e)}),i.forEach(function(e){return n.appendChild(e)}),{oldTags:o,newTags:i}},C=function(e){return Object.keys(e).reduce(function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},M=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[c.REACT_TAG_MAP[n]||n]=e[n],t},t)},w=function(e,t,n){switch(e){case c.TAG_NAMES.TITLE:return{toComponent:function(){return e=t.title,n=t.titleAttributes,(r={key:e})[c.HELMET_ATTRIBUTE]=!0,o=M(n,r),[i.default.createElement(c.TAG_NAMES.TITLE,o,e)];var e,n,r,o},toString:function(){return function(e,t,n,r){var o=C(n),i=v(t);return o?"<"+e+" "+c.HELMET_ATTRIBUTE+'="true" '+o+">"+l(i,r)+"":"<"+e+" "+c.HELMET_ATTRIBUTE+'="true">'+l(i,r)+""}(e,t.title,t.titleAttributes,n)}};case c.ATTRIBUTE_NAMES.BODY:case c.ATTRIBUTE_NAMES.HTML:return{toComponent:function(){return M(t)},toString:function(){return C(t)}};default:return{toComponent:function(){return function(e,t){return t.map(function(t,n){var r,o=((r={key:n})[c.HELMET_ATTRIBUTE]=!0,r);return Object.keys(t).forEach(function(e){var n=c.REACT_TAG_MAP[e]||e;if(n===c.TAG_PROPERTIES.INNER_HTML||n===c.TAG_PROPERTIES.CSS_TEXT){var r=t.innerHTML||t.cssText;o.dangerouslySetInnerHTML={__html:r}}else o[n]=t[e]}),i.default.createElement(e,o)})}(e,t)},toString:function(){return function(e,t,n){return t.reduce(function(t,r){var o=Object.keys(r).filter(function(e){return!(e===c.TAG_PROPERTIES.INNER_HTML||e===c.TAG_PROPERTIES.CSS_TEXT)}).reduce(function(e,t){var o=void 0===r[t]?t:t+'="'+l(r[t],n)+'"';return e?e+" "+o:o},""),i=r.innerHTML||r.cssText||"",a=-1===c.SELF_CLOSING_TAGS.indexOf(e);return t+"<"+e+" "+c.HELMET_ATTRIBUTE+'="true" '+o+(a?"/>":">"+i+"")},"")}(e,t,n)}}}};t.convertReactPropstoHtmlAttributes=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(e).reduce(function(t,n){return t[c.HTML_TAG_MAP[n]||n]=e[n],t},t)},t.handleClientStateChange=function(e){b&&S(b),e.defer?b=m(function(){_(e,function(){b=null})}):(_(e),b=null)},t.mapStateOnServer=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,o=e.htmlAttributes,i=e.linkTags,a=e.metaTags,u=e.noscriptTags,s=e.scriptTags,l=e.styleTags,f=e.title,p=void 0===f?"":f,d=e.titleAttributes;return{base:w(c.TAG_NAMES.BASE,t,r),bodyAttributes:w(c.ATTRIBUTE_NAMES.BODY,n,r),htmlAttributes:w(c.ATTRIBUTE_NAMES.HTML,o,r),link:w(c.TAG_NAMES.LINK,i,r),meta:w(c.TAG_NAMES.META,a,r),noscript:w(c.TAG_NAMES.NOSCRIPT,u,r),script:w(c.TAG_NAMES.SCRIPT,s,r),style:w(c.TAG_NAMES.STYLE,l,r),title:w(c.TAG_NAMES.TITLE,{title:p,titleAttributes:d},r)}},t.reducePropsToState=function(e){return{baseTag:T([c.TAG_PROPERTIES.HREF],e),bodyAttributes:d(c.ATTRIBUTE_NAMES.BODY,e),defer:h(e,c.HELMET_PROPS.DEFER),encode:h(e,c.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),htmlAttributes:d(c.ATTRIBUTE_NAMES.HTML,e),linkTags:E(c.TAG_NAMES.LINK,[c.TAG_PROPERTIES.REL,c.TAG_PROPERTIES.HREF],e),metaTags:E(c.TAG_NAMES.META,[c.TAG_PROPERTIES.NAME,c.TAG_PROPERTIES.CHARSET,c.TAG_PROPERTIES.HTTPEQUIV,c.TAG_PROPERTIES.PROPERTY,c.TAG_PROPERTIES.ITEM_PROP],e),noscriptTags:E(c.TAG_NAMES.NOSCRIPT,[c.TAG_PROPERTIES.INNER_HTML],e),onChangeClientState:p(e),scriptTags:E(c.TAG_NAMES.SCRIPT,[c.TAG_PROPERTIES.SRC,c.TAG_PROPERTIES.INNER_HTML],e),styleTags:E(c.TAG_NAMES.STYLE,[c.TAG_PROPERTIES.CSS_TEXT],e),title:f(e),titleAttributes:d(c.ATTRIBUTE_NAMES.TITLE,e)}},t.requestAnimationFrame=m,t.warn=g}).call(this,n(83))}}]); +//# sourceMappingURL=1-6b574e676df0cbff0b46.js.map \ No newline at end of file diff --git a/docs/1-6b574e676df0cbff0b46.js.map b/docs/1-6b574e676df0cbff0b46.js.map new file mode 100644 index 000000000000..b7a5f33307df --- /dev/null +++ b/docs/1-6b574e676df0cbff0b46.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:////github/workspace/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/index.js","webpack:////github/workspace/.yarn/cache/@emotion-is-prop-valid-npm-0.7.3-a8a7e2ffef0f60c6a3831b9cfb72642953d017bd8b287f038f454732093cb0b7.zip/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:////github/workspace/.yarn/virtual/@emotion-styled-base-virtual-a5085d8fed57d47340ea6739d0310835c8f206714153816cc7bca863cbe55c96/node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js","webpack:////github/workspace/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.function.name.js","webpack:////github/workspace/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/Helmet.js","webpack:////github/workspace/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.string.link.js","webpack:////github/workspace/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/HelmetConstants.js","webpack:////github/workspace/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/_string-html.js","webpack:////github/workspace/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/factoryWithThrowingShims.js","webpack:////github/workspace/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:////github/workspace/.yarn/virtual/react-side-effect-virtual-fa6a677c16e6425a8c15bdda1136680492df6ed6ccbe08087c3a0f738d990e25/node_modules/react-side-effect/lib/index.js","webpack:////github/workspace/.yarn/cache/exenv-npm-1.2.2-55e1bc7683ce90a6b01f8e80a350a4804c40da847f7d288a63e8d47f9f5879c6.zip/node_modules/exenv/index.js","webpack:////github/workspace/.yarn/cache/shallowequal-npm-1.1.0-f0cbc9d221f6b4d85f16a868b392dc4e3fae0dbfeeb5a22f7deccef0a225af88.zip/node_modules/shallowequal/index.js","webpack:////github/workspace/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/index.js","webpack:////github/workspace/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/lib/keys.js","webpack:////github/workspace/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/lib/is_arguments.js","webpack:////github/workspace/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/HelmetUtils.js"],"names":["module","exports","__webpack_require__","reactPropsRegex","is_prop_valid_browser_esm","Object","memoize_browser_esm","prop","test","charCodeAt","testOmitPropsOnStringTag","testOmitPropsOnComponent","key","getDefaultShouldForwardProp","tag","__webpack_exports__","createStyled","options","identifierName","shouldForwardProp","targetClassName","undefined","label","target","__emotion_forwardProp","propName","isReal","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","args","arguments","styles","__emotion_styles","slice","push","raw","apply","len","length","i","Styled","core_browser_cjs","props","context","ref","react","Consumer","theme","finalTag","as","className","classInterpolations","mergedProps","utils_browser_esm","registered","serialized","serialize_browser_esm","concat","name","finalShouldForwardProp","newProps","_key","innerRef","displayName","defaultProps","defineProperty","value","withComponent","nextTag","nextOptions","object_assign_default","dP","f","FProto","Function","prototype","nameRE","configurable","get","this","match","e","__esModule","Helmet","_extends","assign","source","hasOwnProperty","call","_createClass","defineProperties","descriptor","enumerable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_reactSideEffect2","_deepEqual2","_HelmetUtils","_HelmetConstants","obj","default","_objectWithoutProperties","keys","indexOf","Component","_class","_temp","HelmetSideEffects","reducePropsToState","handleClientStateChange","mapStateOnServer","HelmetExport","_React$Component","HelmetWrapper","instance","TypeError","_classCallCheck","self","ReferenceError","_possibleConstructorReturn","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","type","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","Error","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","forEach","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","render","_props","createElement","set","canUseDOM","propTypes","base","object","oneOfType","arrayOf","node","defaultTitle","string","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","func","script","style","title","titleTemplate","peek","rewind","mappedState","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","createHTML","url","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","map","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","http-equiv","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","$export","fails","defined","quot","attribute","S","String","p1","replace","exec","O","P","F","toLowerCase","split","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","number","symbol","any","element","elementType","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","_interopDefault","ex","React","React__default","ExecutionEnvironment","shallowEqual","handleStateChangeOnClient","WrappedComponent","mountedInstances","state","emitChange","SideEffect","_Component","recordedState","componentWillMount","componentDidUpdate","componentWillUnmount","index","splice","getDisplayName","__WEBPACK_AMD_DEFINE_RESULT__","window","document","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","valueA","valueB","pSlice","Array","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","strict","a","b","isUndefinedOrNull","isBuffer","ka","kb","sort","objEquiv","x","copy","supportsArgumentsClass","toString","supported","unsupported","propertyIsEnumerable","global","warn","requestAnimationFrame","_typeof","Symbol","iterator","_objectAssign2","clock","str","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","isArray","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","join","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","setAttribute","indexToSave","_i","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","styleSheet","appendChild","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","encode","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title"],"mappings":"6EAiBAA,EAAAC,QAAmBC,EAAQ,IAARA,wDCfnBC,EAAA,02HAYeC,EAVHC,OAAAC,EAAA,EAAAD,CAAO,SAAAE,GACnB,OAAAJ,EAAAK,KAAAD,IAAA,MAAAA,EAAAE,WAAA,IAEA,MAAAF,EAAAE,WAAA,IAEAF,EAAAE,WAAA,gDCFAC,EAA+BN,EAE/BO,EAAA,SAAAC,GACA,gBAAAA,GAAA,aAAAA,GAGAC,EAAA,SAAAC,GACA,uBAAAA,GAGAA,EAAAL,WAAA,MAAAC,EAAAC,GAkIeI,EAAA,EA/HC,SAAAC,EAAAF,EAAAG,GAOhB,IAAAC,EACAC,EACAC,OAEAC,IAAAJ,IACAC,EAAAD,EAAAK,MACAF,EAAAH,EAAAM,OACAJ,EAAAL,EAAAU,uBAAAP,EAAAE,kBAAA,SAAAM,GACA,OAAAX,EAAAU,sBAAAC,IACAR,EAAAE,kBAAAM,IACKR,EAAAE,mBAGL,IAAAO,EAAAZ,EAAAa,iBAAAb,EACAc,EAAAF,GAAAZ,EAAAe,gBAAAf,EAEA,mBAAAK,GAAAO,IACAP,EAAAL,EAAAU,uBAGA,IAAAM,EAAAX,GAAAN,EAAAe,GACAG,GAAAD,EAAA,MACA,kBACA,IAAAE,EAAAC,UACAC,EAAAR,QAAAL,IAAAP,EAAAqB,iBAAArB,EAAAqB,iBAAAC,MAAA,MAMA,QAJAf,IAAAH,GACAgB,EAAAG,KAAA,SAAAnB,EAAA,KAGA,MAAAc,EAAA,SAAAX,IAAAW,EAAA,GAAAM,IACAJ,EAAAG,KAAAE,MAAAL,EAAAF,OACK,CACLE,EAAAG,KAAAL,EAAA,OAIA,IAHA,IAAAQ,EAAAR,EAAAS,OACAC,EAAA,EAEYA,EAAAF,EAASE,IACrBR,EAAAG,KAAAL,EAAAU,GAAAV,EAAA,GAAAU,IAIA,IAAAC,EAAiBtC,OAAAuC,EAAA,iBAAAvC,CAAgB,SAAAwC,EAAAC,EAAAC,GACjC,OAAa1C,OAAA2C,EAAA,cAAA3C,CAAcuC,EAAA,aAAYK,SAAA,cAAAC,GACvC,IAAAC,EAAApB,GAAAc,EAAAO,IAAAxB,EACAyB,EAAA,GACAC,EAAA,GACAC,EAAAV,EAEA,SAAAA,EAAAK,MAAA,CAGA,QAAAtC,KAFA2C,EAAA,GAEAV,EACAU,EAAA3C,GAAAiC,EAAAjC,GAGA2C,EAAAL,QAGA,iBAAAL,EAAAQ,YACAA,GAAuBhD,OAAAmD,EAAA,oBAAAnD,CAAmByC,EAAAW,WAAAH,EAAAT,EAAAQ,YAG1C,IAAAK,EAAyBrD,OAAAsD,EAAA,gBAAAtD,CAAe6B,EAAA0B,OAAAN,GAAAR,EAAAW,WAAAF,GACpBlD,OAAAmD,EAAA,aAAAnD,CAAYyC,EAAAY,EAAA,iBAAAP,GAChCE,GAAAP,EAAAlC,IAAA,IAAA8C,EAAAG,UAEAxC,IAAAD,IACAiC,GAAA,IAAAjC,GAGA,IAAA0C,EAAA/B,QAAAV,IAAAF,EAAAN,EAAAsC,GAAArB,EACAiC,EAAA,GAEA,QAAAC,KAAAnB,EACAd,GAAA,OAAAiC,GAGAF,EAAAE,KACAD,EAAAC,GAAAnB,EAAAmB,IAaA,OATAD,EAAAV,YACAU,EAAAhB,OAAAF,EAAAoB,SAMkB5D,OAAA2C,EAAA,cAAA3C,CAAa8C,EAAAY,OA0B/B,OArBApB,EAAAuB,iBAAA7C,IAAAH,IAAA,4BAAAU,MAAAsC,aAAAtC,EAAAiC,MAAA,iBACAlB,EAAAwB,aAAArD,EAAAqD,aACAxB,EAAAhB,eAAAgB,EACAA,EAAAd,eAAAD,EACAe,EAAAR,iBAAAD,EACAS,EAAAnB,sBAAAL,EACAd,OAAA+D,eAAAzB,EAAA,YACA0B,MAAA,WAMA,UAAAjD,KAIAuB,EAAA2B,cAAA,SAAAC,EAAAC,GACA,OAAAxD,EAAAuD,OAAAlD,IAAAmD,EAA+DC,IAAa,GAAGxD,GAAA,GAAeuD,GAAAvD,GAAAsB,WAAA,EAAAL,IAG9FS,yBC/IA,IAAA+B,EAASxE,EAAQ,IAAcyE,EAC/BC,EAAAC,SAAAC,UACAC,EAAA,wBACA,SAGAH,GAAkB1E,EAAQ,KAAgBwE,EAAAE,EAH1C,OAG0C,CAC1CI,cAAA,EACAC,IAAA,WACA,IACA,UAAAC,MAAAC,MAAAJ,GAAA,GACK,MAAAK,GACL,kCCZAnF,EAAAoF,YAAA,EACApF,EAAAqF,YAAAjE,EAEA,IAAAkE,EAAAlF,OAAAmF,QAAA,SAAAjE,GAAmD,QAAAmB,EAAA,EAAgBA,EAAAT,UAAAQ,OAAsBC,IAAA,CAAO,IAAA+C,EAAAxD,UAAAS,GAA2B,QAAA9B,KAAA6E,EAA0BpF,OAAAyE,UAAAY,eAAAC,KAAAF,EAAA7E,KAAyDW,EAAAX,GAAA6E,EAAA7E,IAAiC,OAAAW,GAE/OqE,EAAA,WAAgC,SAAAC,EAAAtE,EAAAsB,GAA2C,QAAAH,EAAA,EAAgBA,EAAAG,EAAAJ,OAAkBC,IAAA,CAAO,IAAAoD,EAAAjD,EAAAH,GAA2BoD,EAAAC,WAAAD,EAAAC,aAAA,EAAwDD,EAAAd,cAAA,EAAgC,UAAAc,MAAAE,UAAA,GAAuD3F,OAAA+D,eAAA7C,EAAAuE,EAAAlF,IAAAkF,IAA+D,gBAAAG,EAAAC,EAAAC,GAA2L,OAAlID,GAAAL,EAAAI,EAAAnB,UAAAoB,GAAqEC,GAAAN,EAAAI,EAAAE,GAA6DF,GAAxhB,GAIAG,EAAAC,EAFanG,EAAQ,IAMrBoG,EAAAD,EAFiBnG,EAAQ,MAMzBqG,EAAAF,EAFuBnG,EAAQ,MAM/BsG,EAAAH,EAFiBnG,EAAQ,MAIzBuG,EAAmBvG,EAAQ,KAE3BwG,EAAuBxG,EAAQ,KAE/B,SAAAmG,EAAAM,GAAsC,OAAAA,KAAAtB,WAAAsB,EAAA,CAAuCC,QAAAD,GAE7E,SAAAE,EAAAF,EAAAG,GAA8C,IAAAvF,EAAA,GAAiB,QAAAmB,KAAAiE,EAAqBG,EAAAC,QAAArE,IAAA,GAAoCrC,OAAAyE,UAAAY,eAAAC,KAAAgB,EAAAjE,KAA6DnB,EAAAmB,GAAAiE,EAAAjE,IAAsB,OAAAnB,EAQ3M,IAAAyF,EACAC,EAAAC,EAuPAC,GAAA,EAAAZ,EAAAK,SAAAH,EAAAW,mBAAAX,EAAAY,wBAAAZ,EAAAa,iBAAA,CAJA,WACA,cAKAC,GA1PAP,EA0PAG,EAvPAD,EAAAD,EAAA,SAAAO,GAGA,SAAAC,IAGA,OAfA,SAAAC,EAAAzB,GAAiD,KAAAyB,aAAAzB,GAA0C,UAAA0B,UAAA,qCAa3FC,CAAA1C,KAAAuC,GAXA,SAAAI,EAAAlC,GAAiD,IAAAkC,EAAa,UAAAC,eAAA,6DAAyF,OAAAnC,GAAA,iBAAAA,GAAA,mBAAAA,EAAAkC,EAAAlC,EAavJoC,CAAA7C,KAAAsC,EAAAjF,MAAA2C,KAAAjD,YA+LA,OA1MA,SAAA+F,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAN,UAAA,kEAAAM,GAAuGD,EAAAlD,UAAAzE,OAAA6H,OAAAD,KAAAnD,UAAA,CAAyEqD,YAAA,CAAe9D,MAAA2D,EAAAjC,YAAA,EAAAC,UAAA,EAAAhB,cAAA,KAA6EiD,IAAA5H,OAAA+H,eAAA/H,OAAA+H,eAAAJ,EAAAC,GAAAD,EAAAK,UAAAJ,GAMrXK,CAAAb,EAAAD,GAQAC,EAAA3C,UAAAyD,sBAAA,SAAAC,GACA,UAAAhC,EAAAI,SAAA1B,KAAArC,MAAA2F,IAGAf,EAAA3C,UAAA2D,yBAAA,SAAAC,EAAAC,GACA,IAAAA,EACA,YAGA,OAAAD,EAAAE,MACA,KAAAlC,EAAAmC,UAAAC,OACA,KAAApC,EAAAmC,UAAAE,SACA,OACAC,UAAAL,GAGA,KAAAjC,EAAAmC,UAAAI,MACA,OACAC,QAAAP,GAIA,UAAAQ,MAAA,IAAAT,EAAAE,KAAA,uGAGAnB,EAAA3C,UAAAsE,yBAAA,SAAAC,GACA,IAAAC,EAEAZ,EAAAW,EAAAX,MACAa,EAAAF,EAAAE,kBACAC,EAAAH,EAAAG,cACAb,EAAAU,EAAAV,eAEA,OAAApD,EAAA,GAA8BgE,IAAAD,EAAA,IAAoCZ,EAAAE,MAAA,GAAAhF,OAAA2F,EAAAb,EAAAE,OAAA,IAAArD,EAAA,GAAqFiE,EAAAtE,KAAAuD,yBAAAC,EAAAC,MAAAW,KAGvJ7B,EAAA3C,UAAA2E,sBAAA,SAAAC,GACA,IAAAC,EAAAC,EAEAlB,EAAAgB,EAAAhB,MACA3E,EAAA2F,EAAA3F,SACAyF,EAAAE,EAAAF,cACAb,EAAAe,EAAAf,eAEA,OAAAD,EAAAE,MACA,KAAAlC,EAAAmC,UAAAgB,MACA,OAAAtE,EAAA,GAAsCxB,IAAA4F,EAAA,IAA2BjB,EAAAE,MAAAD,EAAAgB,EAAAG,gBAAAvE,EAAA,GAAiFiE,GAAAG,IAElJ,KAAAjD,EAAAmC,UAAAkB,KACA,OAAAxE,EAAA,GAAsCxB,EAAA,CACtCiG,eAAAzE,EAAA,GAAmDiE,KAGnD,KAAA9C,EAAAmC,UAAAoB,KACA,OAAA1E,EAAA,GAAsCxB,EAAA,CACtCmG,eAAA3E,EAAA,GAAmDiE,KAInD,OAAAjE,EAAA,GAA8BxB,IAAA6F,EAAA,IAA2BlB,EAAAE,MAAArD,EAAA,GAAqCiE,GAAAI,KAG9FnC,EAAA3C,UAAAqF,4BAAA,SAAAZ,EAAAxF,GACA,IAAAqG,EAAA7E,EAAA,GAA+CxB,GAQ/C,OANA1D,OAAAyG,KAAAyC,GAAAc,QAAA,SAAAC,GACA,IAAAC,EAEAH,EAAA7E,EAAA,GAA+C6E,IAAAG,EAAA,IAAoCD,GAAAf,EAAAe,GAAAC,MAGnFH,GAGA3C,EAAA3C,UAAA0F,sBAAA,SAAA9B,EAAAC,GAmBA,UAGAlB,EAAA3C,UAAA2F,mBAAA,SAAAC,EAAA3G,GACA,IAAA4G,EAAAzF,KAEAqE,EAAA,GAyCA,OAvCAnD,EAAAQ,QAAAgE,SAAAP,QAAAK,EAAA,SAAAhC,GACA,GAAAA,KAAA7F,MAAA,CAIA,IAAAgI,EAAAnC,EAAA7F,MACA8F,EAAAkC,EAAAH,SACAI,EAAAjE,EAAAgE,EAAA,cAEArB,GAAA,EAAA/C,EAAAsE,mCAAAD,GAIA,OAFAH,EAAAH,sBAAA9B,EAAAC,GAEAD,EAAAE,MACA,KAAAlC,EAAAmC,UAAAmC,KACA,KAAAtE,EAAAmC,UAAAoC,KACA,KAAAvE,EAAAmC,UAAAE,SACA,KAAArC,EAAAmC,UAAAC,OACA,KAAApC,EAAAmC,UAAAI,MACAM,EAAAoB,EAAAvB,yBAAA,CACAV,QACAa,oBACAC,gBACAb,mBAEA,MAEA,QACA5E,EAAA4G,EAAAlB,sBAAA,CACAf,QACA3E,WACAyF,gBACAb,uBAMA5E,EAAAmB,KAAAiF,4BAAAZ,EAAAxF,IAIA0D,EAAA3C,UAAAoG,OAAA,WACA,IAAAC,EAAAjG,KAAArC,MACA6H,EAAAS,EAAAT,SACA7H,EAAAgE,EAAAsE,EAAA,cAEApH,EAAAwB,EAAA,GAAsC1C,GAMtC,OAJA6H,IACA3G,EAAAmB,KAAAuF,mBAAAC,EAAA3G,IAGAqC,EAAAQ,QAAAwE,cAAApE,EAAAjD,IAGA6B,EAAA6B,EAAA,OACA7G,IAAA,YAyBAyK,IAAA,SAAAC,GACAtE,EAAAsE,gBAIA7D,EArMA,CAsMKrB,EAAAQ,QAAAI,WAAAC,EAAAsE,UAAA,CACLC,KAAAlF,EAAAM,QAAA6E,OACAzB,eAAA1D,EAAAM,QAAA6E,OACAf,SAAApE,EAAAM,QAAA8E,UAAA,CAAApF,EAAAM,QAAA+E,QAAArF,EAAAM,QAAAgF,MAAAtF,EAAAM,QAAAgF,OACAC,aAAAvF,EAAAM,QAAAkF,OACAC,MAAAzF,EAAAM,QAAAoF,KACAC,wBAAA3F,EAAAM,QAAAoF,KACA9B,eAAA5D,EAAAM,QAAA6E,OACAS,KAAA5F,EAAAM,QAAA+E,QAAArF,EAAAM,QAAA6E,QACAU,KAAA7F,EAAAM,QAAA+E,QAAArF,EAAAM,QAAA6E,QACAW,SAAA9F,EAAAM,QAAA+E,QAAArF,EAAAM,QAAA6E,QACAY,oBAAA/F,EAAAM,QAAA0F,KACAC,OAAAjG,EAAAM,QAAA+E,QAAArF,EAAAM,QAAA6E,QACAe,MAAAlG,EAAAM,QAAA+E,QAAArF,EAAAM,QAAA6E,QACAgB,MAAAnG,EAAAM,QAAAkF,OACAhC,gBAAAxD,EAAAM,QAAA6E,OACAiB,cAAApG,EAAAM,QAAAkF,QACK7E,EAAA9C,aAAA,CACL4H,OAAA,EACAE,yBAAA,GACKhF,EAAA0F,KAAA3F,EAAA2F,KAAA1F,EAAA2F,OAAA,WACL,IAAAC,EAAA7F,EAAA4F,SAkBA,OAjBAC,IAEAA,GAAA,EAAApG,EAAAa,kBAAA,CACA1F,QAAA,GACAoI,eAAA,GACAiC,yBAAA,EACA/B,eAAA,GACA4C,SAAA,GACAC,SAAA,GACAC,aAAA,GACAC,WAAA,GACAC,UAAA,GACAT,MAAA,GACA3C,gBAAA,MAIA+C,GACK3F,GAULK,EAAA4F,aAAA5F,EAAAqF,OAEA3M,EAAAqF,OAAAiC,EACAtH,EAAA2G,QAAAW,oCCjSArH,EAAQ,IAARA,CAAwB,gBAAAkN,GACxB,gBAAAC,GACA,OAAAD,EAAAlI,KAAA,WAAAmI,yBCJApN,EAAAoF,YAAA,EACApF,EAAAqN,gBAAA,CACAvD,KAAA,iBACAE,KAAA,iBACAJ,MAAA,mBAHA,IAMAhB,EAAA5I,EAAA4I,UAAA,CACA0E,KAAA,OACAxD,KAAA,OACAyD,KAAA,OACAvD,KAAA,OACAe,KAAA,OACAC,KAAA,OACAlC,SAAA,WACAD,OAAA,SACAG,MAAA,QACAY,MAAA,SAoBA4D,GAjBAxN,EAAAyN,gBAAArN,OAAAyG,KAAA+B,GAAA8E,IAAA,SAAA9J,GACA,OAAAgF,EAAAhF,KAGA5D,EAAA2N,eAAA,CACAC,QAAA,UACAC,SAAA,UACAC,KAAA,OACAC,UAAA,aACAC,WAAA,YACAC,UAAA,WACAC,KAAA,OACAC,SAAA,WACAC,IAAA,MACAC,IAAA,OAGArO,EAAAwN,cAAA,CACAc,UAAA,YACAC,QAAA,UACAC,MAAA,YACAC,gBAAA,kBACAC,YAAA,cACAC,aAAA,YACAC,SAAA,WACAC,SAAA,aAGA7O,EAAA8O,aAAA,CACAC,cAAA,eACAC,MAAA,QACAC,0BAAA,0BACAC,uBAAA,sBACAC,eAAA,iBAGAnP,EAAAoP,aAAAhP,OAAAyG,KAAA2G,GAAA6B,OAAA,SAAA3I,EAAA/F,GAEA,OADA+F,EAAA8G,EAAA7M,MACA+F,GACC,IAED1G,EAAAsP,kBAAA,CAAA1G,EAAAE,SAAAF,EAAAC,OAAAD,EAAAI,OAEAhJ,EAAAuP,iBAAA,yCC/DA,IAAAC,EAAcvP,EAAQ,IACtBwP,EAAYxP,EAAQ,IACpByP,EAAczP,EAAQ,IACtB0P,EAAA,KAEAxC,EAAA,SAAAtB,EAAAhL,EAAA+O,EAAAxL,GACA,IAAAyL,EAAAC,OAAAJ,EAAA7D,IACAkE,EAAA,IAAAlP,EAEA,MADA,KAAA+O,IAAAG,GAAA,IAAAH,EAAA,KAAAE,OAAA1L,GAAA4L,QAAAL,EAAA,UAA0F,KAC1FI,EAAA,IAAAF,EAAA,KAAAhP,EAAA,KAEAd,EAAAC,QAAA,SAAAkO,EAAA+B,GACA,IAAAC,EAAA,GACAA,EAAAhC,GAAA+B,EAAA9C,GACAqC,IAAAW,EAAAX,EAAAY,EAAAX,EAAA,WACA,IAAAlP,EAAA,GAAA2N,GAAA,KACA,OAAA3N,MAAA8P,eAAA9P,EAAA+P,MAAA,KAAA9N,OAAA,IACG,SAAA0N,sCCRH,IAAAK,EAA2BtQ,EAAQ,KAEnC,SAAAuQ,KACA,SAAAC,KACAA,EAAAC,kBAAAF,EAEAzQ,EAAAC,QAAA,WACA,SAAA2Q,EAAA/N,EAAApB,EAAAoP,EAAAC,EAAAC,EAAAC,GACA,GAAAA,IAAAR,EAAA,CAIA,IAAAS,EAAA,IAAA9H,MACA,mLAKA,MADA8H,EAAApN,KAAA,sBACAoN,GAGA,SAAAC,IACA,OAAAN,EAFAA,EAAAO,WAAAP,EAMA,IAAAQ,EAAA,CACAC,MAAAT,EACA5E,KAAA4E,EACAtE,KAAAsE,EACAU,OAAAV,EACAnF,OAAAmF,EACA9E,OAAA8E,EACAW,OAAAX,EAEAY,IAAAZ,EACAjF,QAAAuF,EACAO,QAAAb,EACAc,YAAAd,EACAe,WAAAT,EACAtF,KAAAgF,EACAgB,SAAAV,EACAW,MAAAX,EACAxF,UAAAwF,EACAY,MAAAZ,EACAa,MAAAb,EAEAc,eAAAtB,EACAC,kBAAAF,GAKA,OAFAW,EAAAa,UAAAb,EAEAA,qCCnDApR,EAAAC,QAFA,iFCPA,SAAAiS,EAAAC,GAA+B,OAAAA,GAAA,iBAAAA,GAAA,YAAAA,IAAA,QAAAA,EAE/B,IAAAC,EAAYlS,EAAQ,GACpBmS,EAAAH,EAAAE,GACAE,EAAAJ,EAA2ChS,EAAQ,MACnDqS,EAAAL,EAAmChS,EAAQ,MAyG3CF,EAAAC,QAjGA,SAAAmH,EAAAoL,EAAAlL,GACA,sBAAAF,EACA,UAAA+B,MAAA,iDAEA,sBAAAqJ,EACA,UAAArJ,MAAA,wDAEA,YAAA7B,GAAA,mBAAAA,EACA,UAAA6B,MAAA,mEAOA,gBAAAsJ,GACA,sBAAAA,EACA,UAAAtJ,MAAA,sDAGA,IAAAuJ,EAAA,GACAC,OAAA,EAEA,SAAAC,IACAD,EAAAvL,EAAAsL,EAAA/E,IAAA,SAAAjG,GACA,OAAAA,EAAA7E,SAGAgQ,EAAAvH,UACAkH,EAAAG,GACOrL,IACPqL,EAAArL,EAAAqL,IAIA,IAAAE,EAAA,SAAAC,GAGA,SAAAD,IAGA,OA/CA,SAAAnL,EAAAzB,GAAiD,KAAAyB,aAAAzB,GAA0C,UAAA0B,UAAA,qCA6C3FC,CAAA1C,KAAA2N,GA3CA,SAAAhL,EAAAlC,GAAiD,IAAAkC,EAAa,UAAAC,eAAA,6DAAyF,OAAAnC,GAAA,iBAAAA,GAAA,mBAAAA,EAAAkC,EAAAlC,EA6CvJoC,CAAA7C,KAAA4N,EAAAvQ,MAAA2C,KAAAjD,YA6CA,OAxFA,SAAA+F,EAAAC,GAA0C,sBAAAA,GAAA,OAAAA,EAA+D,UAAAN,UAAA,kEAAAM,GAAuGD,EAAAlD,UAAAzE,OAAA6H,OAAAD,KAAAnD,UAAA,CAAyEqD,YAAA,CAAe9D,MAAA2D,EAAAjC,YAAA,EAAAC,UAAA,EAAAhB,cAAA,KAA6EiD,IAAA5H,OAAA+H,eAAA/H,OAAA+H,eAAAJ,EAAAC,GAAAD,EAAAK,UAAAJ,GAsCrXK,CAAAuK,EAAAC,GASAD,EAAAlG,KAAA,WACA,OAAAgG,GAMAE,EAAAjG,OAAA,WACA,GAAAiG,EAAAvH,UACA,UAAAnC,MAAA,oFAGA,IAAA4J,EAAAJ,EAGA,OAFAA,OAAAtR,EACAqR,EAAA,GACAK,GAGAF,EAAA/N,UAAAyD,sBAAA,SAAAC,GACA,OAAA+J,EAAA/J,EAAAtD,KAAArC,QAGAgQ,EAAA/N,UAAAkO,mBAAA,WACAN,EAAArQ,KAAA6C,MACA0N,KAGAC,EAAA/N,UAAAmO,mBAAA,WACAL,KAGAC,EAAA/N,UAAAoO,qBAAA,WACA,IAAAC,EAAAT,EAAA3L,QAAA7B,MACAwN,EAAAU,OAAAD,EAAA,GACAP,KAGAC,EAAA/N,UAAAoG,OAAA,WACA,OAAAmH,EAAAjH,cAAAqH,EAAAvN,KAAArC,QAGAgQ,EAnDA,CAoDKT,EAAApL,WAML,OAJA6L,EAAA3O,YAAA,cA9EA,SAAAuO,GACA,OAAAA,EAAAvO,aAAAuO,EAAA5O,MAAA,YA6EAwP,CAAAZ,GAAA,IACAI,EAAAvH,UAAAgH,EAAAhH,UAGAuH,yBC5GA,IAAAS,GAOA,WACA,aAEA,IAAAhI,IACA,oBAAAiI,SACAA,OAAAC,WACAD,OAAAC,SAAApI,eAGAkH,EAAA,CAEAhH,YAEAmI,cAAA,oBAAAC,OAEAC,qBACArI,MAAAiI,OAAAK,mBAAAL,OAAAM,aAEAC,eAAAxI,KAAAiI,OAAAQ,aAOG1S,KAFDiS,EAAA,WACF,OAAAhB,GACG3M,KAAA1F,EAAAC,EAAAD,EAAAD,QAAAC,QAAAqT,GAzBH,sBCLAtT,EAAAC,QAAA,SAAA+T,EAAAC,EAAAC,EAAAC,GACA,IAAAC,EAAAF,IAAAvO,KAAAwO,EAAAH,EAAAC,QAAA,EAEA,YAAAG,EACA,QAAAA,EAGA,GAAAJ,IAAAC,EACA,SAGA,oBAAAD,OAAA,iBAAAC,MACA,SAGA,IAAAI,EAAAhU,OAAAyG,KAAAkN,GACAM,EAAAjU,OAAAyG,KAAAmN,GAEA,GAAAI,EAAA5R,SAAA6R,EAAA7R,OACA,SAMA,IAHA,IAAA8R,EAAAlU,OAAAyE,UAAAY,eAAA8O,KAAAP,GAGAQ,EAAA,EAAmBA,EAAAJ,EAAA5R,OAAoBgS,IAAA,CACvC,IAAA7T,EAAAyT,EAAAI,GAEA,IAAAF,EAAA3T,GACA,SAGA,IAAA8T,EAAAV,EAAApT,GACA+T,EAAAV,EAAArT,GAIA,SAFAwT,EAAAF,IAAAvO,KAAAwO,EAAAO,EAAAC,EAAA/T,QAAA,SAEA,IAAAwT,GAAAM,IAAAC,EACA,SAIA,+BC5CA,IAAAC,EAAAC,MAAA/P,UAAA1C,MACA0S,EAAiB5U,EAAQ,KACzB6U,EAAkB7U,EAAQ,KAE1B8U,EAAAhV,EAAAC,QAAA,SAAAgV,EAAAC,EAAAC,GAGA,OAFAA,MAAA,IAEAF,IAAAC,IAGGD,aAAAG,MAAAF,aAAAE,KACHH,EAAAI,YAAAH,EAAAG,WAIGJ,IAAAC,GAAA,iBAAAD,GAAA,iBAAAC,EACHC,EAAAG,OAAAL,IAAAC,EAAAD,GAAAC,EA0BA,SAAAK,EAAAC,EAAAL,GACA,IAAAzS,EAAA9B,EACA,GAAA6U,EAAAF,IAAAE,EAAAD,GACA,SAEA,GAAAD,EAAAzQ,YAAA0Q,EAAA1Q,UAAA,SAGA,GAAAiQ,EAAAQ,GACA,QAAAR,EAAAS,KAGAD,EAAAX,EAAAjP,KAAA4P,GACAC,EAAAZ,EAAAjP,KAAA6P,GACAR,EAAAO,EAAAC,EAAAL,IAEA,GAAAO,EAAAH,GAAA,CACA,IAAAG,EAAAF,GACA,SAEA,GAAAD,EAAA9S,SAAA+S,EAAA/S,OAAA,SACA,IAAAC,EAAA,EAAeA,EAAA6S,EAAA9S,OAAcC,IAC7B,GAAA6S,EAAA7S,KAAA8S,EAAA9S,GAAA,SAEA,SAEA,IACA,IAAAiT,EAAAb,EAAAS,GACAK,EAAAd,EAAAU,GACG,MAAApQ,GACH,SAIA,GAAAuQ,EAAAlT,QAAAmT,EAAAnT,OACA,SAKA,IAHAkT,EAAAE,OACAD,EAAAC,OAEAnT,EAAAiT,EAAAlT,OAAA,EAAyBC,GAAA,EAAQA,IACjC,GAAAiT,EAAAjT,IAAAkT,EAAAlT,GACA,SAIA,IAAAA,EAAAiT,EAAAlT,OAAA,EAAyBC,GAAA,EAAQA,IAEjC,GADA9B,EAAA+U,EAAAjT,IACAsS,EAAAO,EAAA3U,GAAA4U,EAAA5U,GAAAuU,GAAA,SAEA,cAAAI,UAAAC,EAnEAM,CAAAb,EAAAC,EAAAC,KAIA,SAAAM,EAAApR,GACA,OAAAA,QAGA,SAAAqR,EAAAK,GACA,SAAAA,GAAA,iBAAAA,GAAA,iBAAAA,EAAAtT,UACA,mBAAAsT,EAAAC,MAAA,mBAAAD,EAAA3T,SAGA2T,EAAAtT,OAAA,oBAAAsT,EAAA,yBClCA,SAAAnF,EAAAjK,GACA,IAAAG,EAAA,GACA,QAAAlG,KAAA+F,EAAAG,EAAAzE,KAAAzB,GACA,OAAAkG,GAPA9G,EAAAC,QAAA,mBAAAI,OAAAyG,KACAzG,OAAAyG,KAAA8J,GAEAA,0BCHA,IAAAqF,EAEC,sBAFD,WACA,OAAA5V,OAAAyE,UAAAoR,SAAAvQ,KAAA1D,WADA,GAOA,SAAAkU,EAAA1K,GACA,4BAAApL,OAAAyE,UAAAoR,SAAAvQ,KAAA8F,GAIA,SAAA2K,EAAA3K,GACA,OAAAA,GACA,iBAAAA,GACA,iBAAAA,EAAAhJ,QACApC,OAAAyE,UAAAY,eAAAC,KAAA8F,EAAA,YACApL,OAAAyE,UAAAuR,qBAAA1Q,KAAA8F,EAAA,YACA,GAdAxL,EAAAD,EAAAC,QAAAgW,EAAAE,EAAAC,GAEAD,YAKAlW,EAAAmW,oCCXA,SAAAE,GAAArW,EAAAoF,YAAA,EACApF,EAAAsW,KAAAtW,EAAAuW,sBAAAvW,EAAAmH,mBAAAnH,EAAAqH,iBAAArH,EAAAoH,wBAAApH,EAAA8K,uCAAA1J,EAEA,IAAAoV,EAAA,mBAAAC,QAAA,iBAAAA,OAAAC,SAAA,SAAAhQ,GAAoG,cAAAA,GAAqB,SAAAA,GAAmB,OAAAA,GAAA,mBAAA+P,QAAA/P,EAAAwB,cAAAuO,QAAA/P,IAAA+P,OAAA5R,UAAA,gBAAA6B,GAE5IpB,EAAAlF,OAAAmF,QAAA,SAAAjE,GAAmD,QAAAmB,EAAA,EAAgBA,EAAAT,UAAAQ,OAAsBC,IAAA,CAAO,IAAA+C,EAAAxD,UAAAS,GAA2B,QAAA9B,KAAA6E,EAA0BpF,OAAAyE,UAAAY,eAAAC,KAAAF,EAAA7E,KAAyDW,EAAAX,GAAA6E,EAAA7E,IAAiC,OAAAW,GAI/O6E,EAAAC,EAFanG,EAAQ,IAMrB0W,EAAAvQ,EAFoBnG,EAAQ,KAI5BwG,EAAuBxG,EAAQ,KAE/B,SAAAmG,EAAAM,GAAsC,OAAAA,KAAAtB,WAAAsB,EAAA,CAAuCC,QAAAD,GAE7E,IAqKAkQ,EArKA5K,EAAA,SAAA6K,GAGA,cAFA7U,UAAAQ,OAAA,QAAApB,IAAAY,UAAA,KAAAA,UAAA,IAGA8N,OAAA+G,GAGA/G,OAAA+G,GAAA7G,QAAA,cAA2CA,QAAA,aAAsBA,QAAA,aAAsBA,QAAA,eAAwBA,QAAA,gBAG/G8G,EAAA,SAAAC,GACA,IAAAC,EAAAC,EAAAF,EAAAtQ,EAAAmC,UAAAgB,OACAsN,EAAAD,EAAAF,EAAAtQ,EAAAqI,aAAAK,gBAEA,GAAA+H,GAAAF,EAEA,OAAAE,EAAAlH,QAAA,iBACA,OAAAgH,IAIA,IAAAG,EAAAF,EAAAF,EAAAtQ,EAAAqI,aAAAC,eAEA,OAAAiI,GAAAG,QAAA/V,GAGAgW,EAAA,SAAAL,GACA,OAAAE,EAAAF,EAAAtQ,EAAAqI,aAAAI,yBAAA,cAGAmI,EAAA,SAAAC,EAAAP,GACA,OAAAA,EAAAQ,OAAA,SAAA3U,GACA,gBAAAA,EAAA0U,KACK5J,IAAA,SAAA9K,GACL,OAAAA,EAAA0U,KACKjI,OAAA,SAAAmI,EAAAC,GACL,OAAAnS,EAAA,GAA0BkS,EAAAC,IACrB,KAGLC,EAAA,SAAAC,EAAAZ,GACA,OAAAA,EAAAQ,OAAA,SAAA3U,GACA,gBAAAA,EAAA6D,EAAAmC,UAAA0E,QACKI,IAAA,SAAA9K,GACL,OAAAA,EAAA6D,EAAAmC,UAAA0E,QACKsK,UAAAvI,OAAA,SAAAwI,EAAAhX,GACL,IAAAgX,EAAArV,OAGA,IAFA,IAAAqE,EAAAzG,OAAAyG,KAAAhG,GAEA4B,EAAA,EAA2BA,EAAAoE,EAAArE,OAAiBC,IAAA,CAC5C,IACAqV,EADAjR,EAAApE,GACA4N,cAEA,QAAAsH,EAAA7Q,QAAAgR,IAAAjX,EAAAiX,GACA,OAAAD,EAAAlU,OAAA9C,GAKA,OAAAgX,GACK,KAGLE,EAAA,SAAAC,EAAAL,EAAAZ,GAEA,IAAAkB,EAAA,GAEA,OAAAlB,EAAAQ,OAAA,SAAA3U,GACA,QAAAgS,MAAAsD,QAAAtV,EAAAoV,WAGA,IAAApV,EAAAoV,IACA1B,EAAA,WAAA0B,EAAA,mDAAAxB,EAAA5T,EAAAoV,IAAA,MAEA,KACKtK,IAAA,SAAA9K,GACL,OAAAA,EAAAoV,KACKJ,UAAAvI,OAAA,SAAA8I,EAAAC,GACL,IAAAC,EAAA,GAEAD,EAAAb,OAAA,SAAA1W,GAGA,IAFA,IAAAyX,OAAA,EACAzR,EAAAzG,OAAAyG,KAAAhG,GACA4B,EAAA,EAA2BA,EAAAoE,EAAArE,OAAiBC,IAAA,CAC5C,IAAA8V,EAAA1R,EAAApE,GACAqV,EAAAS,EAAAlI,eAGA,IAAAsH,EAAA7Q,QAAAgR,IAAAQ,IAAA7R,EAAAkH,eAAAS,KAAA,cAAAvN,EAAAyX,GAAAjI,eAAAyH,IAAArR,EAAAkH,eAAAS,KAAA,eAAAvN,EAAAiX,GAAAzH,gBACAiI,EAAAR,IAGA,IAAAH,EAAA7Q,QAAAyR,QAAA9R,EAAAkH,eAAAK,YAAAuK,IAAA9R,EAAAkH,eAAAE,UAAA0K,IAAA9R,EAAAkH,eAAAM,YACAqK,EAAAC,GAIA,IAAAD,IAAAzX,EAAAyX,GACA,SAGA,IAAAlU,EAAAvD,EAAAyX,GAAAjI,cAUA,OARA4H,EAAAK,KACAL,EAAAK,GAAA,IAGAD,EAAAC,KACAD,EAAAC,GAAA,KAGAL,EAAAK,GAAAlU,KACAiU,EAAAC,GAAAlU,IAAA,GACA,KAISwT,UAAAxN,QAAA,SAAAvJ,GACT,OAAAsX,EAAA/V,KAAAvB,KAKA,IADA,IAAAgG,EAAAzG,OAAAyG,KAAAwR,GACA5V,EAAA,EAAuBA,EAAAoE,EAAArE,OAAiBC,IAAA,CACxC,IAAA8V,EAAA1R,EAAApE,GACA+V,GAAA,EAAA7B,EAAAhQ,SAAA,GAAyDsR,EAAAM,GAAAF,EAAAE,IAEzDN,EAAAM,GAAAC,EAGA,OAAAL,GACK,IAAAP,WAGLX,EAAA,SAAAF,EAAA0B,GACA,QAAAhW,EAAAsU,EAAAvU,OAAA,EAAsCC,GAAA,EAAQA,IAAA,CAC9C,IAAAG,EAAAmU,EAAAtU,GAEA,GAAAG,EAAA6C,eAAAgT,GACA,OAAA7V,EAAA6V,GAIA,aAqBAC,GACA9B,EAAAzB,KAAAwD,MAEA,SAAAC,GACA,IAAAC,EAAA1D,KAAAwD,MAEAE,EAAAjC,EAAA,IACAA,EAAAiC,EACAD,EAAAC,IAEAC,WAAA,WACAJ,EAAAE,IACa,KAKbG,EAAA,SAAAC,GACA,OAAAC,aAAAD,IAGAzC,EAAA,oBAAAjD,cAAAiD,uBAAAjD,OAAA4F,6BAAA5F,OAAA6F,0BAAAT,EAAArC,EAAAE,uBAAAmC,EAEAU,EAAA,oBAAA9F,cAAA8F,sBAAA9F,OAAA+F,4BAAA/F,OAAAgG,yBAAAP,EAAA1C,EAAA+C,sBAAAL,EAEAzC,EAAA,SAAAiD,GACA,OAAAC,SAAA,mBAAAA,QAAAlD,MAAAkD,QAAAlD,KAAAiD,IAGAE,EAAA,KAmBAC,EAAA,SAAAC,EAAAC,GACA,IAAAjY,EAAAgY,EAAAhY,QACAoI,EAAA4P,EAAA5P,eACAE,EAAA0P,EAAA1P,eACA4C,EAAA8M,EAAA9M,SACAC,EAAA6M,EAAA7M,SACAC,EAAA4M,EAAA5M,aACAX,EAAAuN,EAAAvN,oBACAY,EAAA2M,EAAA3M,WACAC,EAAA0M,EAAA1M,UACAT,EAAAmN,EAAAnN,MACA3C,EAAA8P,EAAA9P,gBAEAgQ,EAAApT,EAAAmC,UAAAkB,KAAAC,GACA8P,EAAApT,EAAAmC,UAAAoB,KAAAC,GAEA6P,EAAAtN,EAAA3C,GAEA,IAAAkQ,EAAA,CACApY,QAAAqY,EAAAvT,EAAAmC,UAAA0E,KAAA3L,GACAkL,SAAAmN,EAAAvT,EAAAmC,UAAAmC,KAAA8B,GACAC,SAAAkN,EAAAvT,EAAAmC,UAAAoC,KAAA8B,GACAC,aAAAiN,EAAAvT,EAAAmC,UAAAE,SAAAiE,GACAC,WAAAgN,EAAAvT,EAAAmC,UAAAC,OAAAmE,GACAC,UAAA+M,EAAAvT,EAAAmC,UAAAI,MAAAiE,IAGAgN,EAAA,GACAC,EAAA,GAEA9Z,OAAAyG,KAAAkT,GAAA3P,QAAA,SAAAkN,GACA,IAAA6C,EAAAJ,EAAAzC,GACA8C,EAAAD,EAAAC,QACAC,EAAAF,EAAAE,QAGAD,EAAA5X,SACAyX,EAAA3C,GAAA8C,GAEAC,EAAA7X,SACA0X,EAAA5C,GAAAyC,EAAAzC,GAAA+C,WAIAT,OAEAxN,EAAAuN,EAAAM,EAAAC,IAGAI,EAAA,SAAAC,GACA,OAAA3F,MAAAsD,QAAAqC,KAAAC,KAAA,IAAAD,GAGAT,EAAA,SAAAtN,EAAAiO,QACA,IAAAjO,GAAA+G,SAAA/G,YACA+G,SAAA/G,MAAA8N,EAAA9N,IAGAqN,EAAApT,EAAAmC,UAAAgB,MAAA6Q,IAGAZ,EAAA,SAAA7B,EAAAyC,GACA,IAAAC,EAAAnH,SAAAoH,qBAAA3C,GAAA,GAEA,GAAA0C,EAAA,CASA,IALA,IAAAE,EAAAF,EAAAG,aAAApU,EAAA8I,kBACAuL,EAAAF,IAAAtK,MAAA,QACAyK,EAAA,GAAApX,OAAAmX,GACAE,EAAA5a,OAAAyG,KAAA4T,GAEAhY,EAAA,EAAmBA,EAAAuY,EAAAxY,OAA0BC,IAAA,CAC7C,IAAAmN,EAAAoL,EAAAvY,GACA2B,EAAAqW,EAAA7K,IAAA,GAEA8K,EAAAG,aAAAjL,KAAAxL,GACAsW,EAAAO,aAAArL,EAAAxL,IAGA,IAAA0W,EAAAhU,QAAA8I,IACAkL,EAAA1Y,KAAAwN,GAGA,IAAAsL,EAAAH,EAAAjU,QAAA8I,IACA,IAAAsL,GACAH,EAAA5H,OAAA+H,EAAA,GAIA,QAAAC,EAAAJ,EAAAvY,OAAA,EAAgD2Y,GAAA,EAASA,IACzDT,EAAAU,gBAAAL,EAAAI,IAGAL,EAAAtY,SAAAuY,EAAAvY,OACAkY,EAAAU,gBAAA3U,EAAA8I,kBACKmL,EAAAG,aAAApU,EAAA8I,oBAAAyL,EAAAR,KAAA,MACLE,EAAAO,aAAAxU,EAAA8I,iBAAAyL,EAAAR,KAAA,QAIAR,EAAA,SAAArR,EAAA0S,GACA,IAAAC,EAAA/H,SAAAgI,MAAAhI,SAAAiI,cAAA/U,EAAAmC,UAAA2E,MACAkO,EAAAH,EAAAI,iBAAA/S,EAAA,IAAAlC,EAAA8I,iBAAA,KACA8K,EAAAzF,MAAA/P,UAAA1C,MAAAuD,KAAA+V,GACArB,EAAA,GACAuB,OAAA,EA4CA,OA1CAN,KAAA7Y,QACA6Y,EAAAjR,QAAA,SAAAvJ,GACA,IAAA+a,EAAArI,SAAApI,cAAAxC,GAEA,QAAAiH,KAAA/O,EACA,GAAAA,EAAA4E,eAAAmK,GACA,GAAAA,IAAAnJ,EAAAkH,eAAAK,WACA4N,EAAA7S,UAAAlI,EAAAkI,eACqB,GAAA6G,IAAAnJ,EAAAkH,eAAAE,SACrB+N,EAAAC,WACAD,EAAAC,WAAA5S,QAAApI,EAAAoI,QAEA2S,EAAAE,YAAAvI,SAAAwI,eAAAlb,EAAAoI,cAEqB,CACrB,IAAA7E,OAAA,IAAAvD,EAAA+O,GAAA,GAAA/O,EAAA+O,GACAgM,EAAAX,aAAArL,EAAAxL,GAKAwX,EAAAX,aAAAxU,EAAA8I,iBAAA,QAGA8K,EAAA2B,KAAA,SAAAC,EAAA/I,GAEA,OADAyI,EAAAzI,EACA0I,EAAAM,YAAAD,KAEA5B,EAAAlH,OAAAwI,EAAA,GAEAvB,EAAAhY,KAAAwZ,KAKAvB,EAAAjQ,QAAA,SAAAvJ,GACA,OAAAA,EAAAsb,WAAAC,YAAAvb,KAEAuZ,EAAAhQ,QAAA,SAAAvJ,GACA,OAAAya,EAAAQ,YAAAjb,KAGA,CACAwZ,UACAD,YAIAiC,EAAA,SAAA5B,GACA,OAAAra,OAAAyG,KAAA4T,GAAApL,OAAA,SAAAwH,EAAAlW,GACA,IAAA2b,OAAA,IAAA7B,EAAA9Z,KAAA,KAAA8Z,EAAA9Z,GAAA,OAAAA,EACA,OAAAkW,IAAA,IAAAyF,KACK,KA0BLC,EAAA,SAAA9B,GACA,IAAA+B,EAAAxa,UAAAQ,OAAA,QAAApB,IAAAY,UAAA,GAAAA,UAAA,MAEA,OAAA5B,OAAAyG,KAAA4T,GAAApL,OAAA,SAAA3I,EAAA/F,GAEA,OADA+F,EAAAD,EAAA+G,cAAA7M,OAAA8Z,EAAA9Z,GACA+F,GACK8V,IA+CLC,EAAA,SAAA9T,EAAA0S,EAAAqB,GACA,OAAA/T,GACA,KAAAlC,EAAAmC,UAAAgB,MACA,OACA+S,YAAA,WACA,OAxCAnQ,EAwCA6O,EAAA7O,MAxCAiO,EAwCAY,EAAAxR,iBApCA+S,EAAA,CACAjc,IAAA6L,IACK/F,EAAA8I,mBAAA,EACL3M,EAAA2Z,EAAA9B,EADKmC,GAGL,CAAAzW,EAAAQ,QAAAwE,cAAA1E,EAAAmC,UAAAgB,MAAAhH,EAAA4J,IATA,IAAAA,EAAAiO,EACAmC,EAMAha,GAmCAqT,SAAA,WACA,OApFA,SAAAtN,EAAA6D,EAAAiO,EAAAiC,GACA,IAAAG,EAAAR,EAAA5B,GACAqC,EAAAxC,EAAA9N,GACA,OAAAqQ,EAAA,IAAAlU,EAAA,IAAAlC,EAAA8I,iBAAA,WAAAsN,EAAA,IAAA7Q,EAAA8Q,EAAAJ,GAAA,KAAA/T,EAAA,QAAAA,EAAA,IAAAlC,EAAA8I,iBAAA,WAAAvD,EAAA8Q,EAAAJ,GAAA,KAAA/T,EAAA,IAiFAoU,CAAApU,EAAA0S,EAAA7O,MAAA6O,EAAAxR,gBAAA6S,KAGA,KAAAjW,EAAA4G,gBAAAvD,KACA,KAAArD,EAAA4G,gBAAArD,KACA,OACA2S,YAAA,WACA,OAAAJ,EAAAlB,IAEApF,SAAA,WACA,OAAAoG,EAAAhB,KAGA,QACA,OACAsB,YAAA,WACA,OA/CA,SAAAhU,EAAA0S,GACA,OAAAA,EAAA3N,IAAA,SAAA7M,EAAA4B,GACA,IAAAua,EAEAC,IAAAD,EAAA,CACArc,IAAA8B,IACSgE,EAAA8I,mBAAA,EAAAyN,GAaT,OAXA5c,OAAAyG,KAAAhG,GAAAuJ,QAAA,SAAAwF,GACA,IAAAsN,EAAAzW,EAAA+G,cAAAoC,MAEA,GAAAsN,IAAAzW,EAAAkH,eAAAK,YAAAkP,IAAAzW,EAAAkH,eAAAE,SAAA,CACA,IAAAsP,EAAAtc,EAAAkI,WAAAlI,EAAAoI,QACAgU,EAAAG,wBAAA,CAAqDC,OAAAF,QAErDF,EAAAC,GAAArc,EAAA+O,KAIAzJ,EAAAQ,QAAAwE,cAAAxC,EAAAsU,KA4BAK,CAAA3U,EAAA0S,IAEApF,SAAA,WACA,OAjGA,SAAAtN,EAAA0S,EAAAqB,GACA,OAAArB,EAAAhM,OAAA,SAAAwH,EAAAhW,GACA,IAAA0c,EAAAnd,OAAAyG,KAAAhG,GAAA0W,OAAA,SAAA3H,GACA,QAAAA,IAAAnJ,EAAAkH,eAAAK,YAAA4B,IAAAnJ,EAAAkH,eAAAE,YACSwB,OAAA,SAAAxD,EAAA+D,GACT,IAAA0M,OAAA,IAAAzb,EAAA+O,OAAA,KAAA5D,EAAAnL,EAAA+O,GAAA8M,GAAA,IACA,OAAA7Q,IAAA,IAAAyQ,KACS,IAETkB,EAAA3c,EAAAkI,WAAAlI,EAAAoI,SAAA,GAEAwU,GAAA,IAAAhX,EAAA6I,kBAAAxI,QAAA6B,GAEA,OAAAkO,EAAA,IAAAlO,EAAA,IAAAlC,EAAA8I,iBAAA,WAAAgO,GAAAE,EAAA,SAAAD,EAAA,KAAA7U,EAAA,MACK,IAmFL+U,CAAA/U,EAAA0S,EAAAqB,OAgCA1c,EAAA8K,kCAvGA,SAAAlI,GACA,IAAA+a,EAAA3b,UAAAQ,OAAA,QAAApB,IAAAY,UAAA,GAAAA,UAAA,MAEA,OAAA5B,OAAAyG,KAAAjE,GAAAyM,OAAA,SAAA3I,EAAA/F,GAEA,OADA+F,EAAAD,EAAA2I,aAAAzO,OAAAiC,EAAAjC,GACA+F,GACKiX,IAkGL3d,EAAAoH,wBA7TA,SAAAuS,GACAF,GACAL,EAAAK,GAGAE,EAAA7N,MACA2N,EAAAlD,EAAA,WACAmD,EAAAC,EAAA,WACAF,EAAA,UAIAC,EAAAC,GACAF,EAAA,OAiTAzZ,EAAAqH,iBA5BA,SAAA+B,GACA,IAAAzH,EAAAyH,EAAAzH,QACAoI,EAAAX,EAAAW,eACA2S,EAAAtT,EAAAsT,OACAzS,EAAAb,EAAAa,eACA4C,EAAAzD,EAAAyD,SACAC,EAAA1D,EAAA0D,SACAC,EAAA3D,EAAA2D,aACAC,EAAA5D,EAAA4D,WACAC,EAAA7D,EAAA6D,UACA2Q,EAAAxU,EAAAoD,MACAA,OAAApL,IAAAwc,EAAA,GAAAA,EACA/T,EAAAT,EAAAS,gBACA,OACA0B,KAAAkR,EAAAhW,EAAAmC,UAAA0E,KAAA3L,EAAA+a,GACA3S,eAAA0S,EAAAhW,EAAA4G,gBAAAvD,KAAAC,EAAA2S,GACAzS,eAAAwS,EAAAhW,EAAA4G,gBAAArD,KAAAC,EAAAyS,GACAzQ,KAAAwQ,EAAAhW,EAAAmC,UAAAmC,KAAA8B,EAAA6P,GACAxQ,KAAAuQ,EAAAhW,EAAAmC,UAAAoC,KAAA8B,EAAA4P,GACAvQ,SAAAsQ,EAAAhW,EAAAmC,UAAAE,SAAAiE,EAAA2P,GACApQ,OAAAmQ,EAAAhW,EAAAmC,UAAAC,OAAAmE,EAAA0P,GACAnQ,MAAAkQ,EAAAhW,EAAAmC,UAAAI,MAAAiE,EAAAyP,GACAlQ,MAAAiQ,EAAAhW,EAAAmC,UAAAgB,MAAA,CAAmE4C,QAAA3C,mBAAiD6S,KAOpH1c,EAAAmH,mBAhXA,SAAA4P,GACA,OACApV,QAAA+V,EAAA,CAAAjR,EAAAkH,eAAAG,MAAAiJ,GACAhN,eAAAsN,EAAA5Q,EAAA4G,gBAAAvD,KAAAiN,GACAjL,MAAAmL,EAAAF,EAAAtQ,EAAAqI,aAAAE,OACA0N,OAAAzF,EAAAF,EAAAtQ,EAAAqI,aAAAG,2BACAhF,eAAAoN,EAAA5Q,EAAA4G,gBAAArD,KAAA+M,GACAlK,SAAAkL,EAAAtR,EAAAmC,UAAAmC,KAAA,CAAAtE,EAAAkH,eAAAS,IAAA3H,EAAAkH,eAAAG,MAAAiJ,GACAjK,SAAAiL,EAAAtR,EAAAmC,UAAAoC,KAAA,CAAAvE,EAAAkH,eAAAO,KAAAzH,EAAAkH,eAAAC,QAAAnH,EAAAkH,eAAAI,UAAAtH,EAAAkH,eAAAQ,SAAA1H,EAAAkH,eAAAM,WAAA8I,GACAhK,aAAAgL,EAAAtR,EAAAmC,UAAAE,SAAA,CAAArC,EAAAkH,eAAAK,YAAA+I,GACA3K,oBAAAgL,EAAAL,GACA/J,WAAA+K,EAAAtR,EAAAmC,UAAAC,OAAA,CAAApC,EAAAkH,eAAAU,IAAA5H,EAAAkH,eAAAK,YAAA+I,GACA9J,UAAA8K,EAAAtR,EAAAmC,UAAAI,MAAA,CAAAvC,EAAAkH,eAAAE,UAAAkJ,GACAvK,MAAAsK,EAAAC,GACAlN,gBAAAwN,EAAA5Q,EAAA4G,gBAAAzD,MAAAmN,KAmWA/W,EAAAuW,wBACAvW,EAAAsW","file":"1-6b574e676df0cbff0b46.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import { createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport _objectAssign from 'object-assign';\nimport { withEmotionCache, ThemeContext } from '@emotion/core';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var identifierName;\n var shouldForwardProp;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, context, ref) {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = theme;\n }\n\n if (typeof props.className === 'string') {\n className += getRegisteredStyles(context.registered, classInterpolations, props.className);\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n className += context.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref || props.innerRef;\n\n if (process.env.NODE_ENV !== 'production' && props.innerRef) {\n console.error('`innerRef` is deprecated and will be removed in a future major version of Emotion, please use the `ref` prop instead' + (identifierName === undefined ? '' : \" in the usage of `\" + identifierName + \"`\"));\n }\n\n var ele = createElement(finalTag, newProps);\n\n return ele;\n });\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, nextOptions !== undefined ? _objectAssign({}, options || {}, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar ExecutionEnvironment = _interopDefault(require('exenv'));\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state = void 0;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = function (_Component) {\n _inherits(SideEffect, _Component);\n\n function SideEffect() {\n _classCallCheck(this, SideEffect);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n SideEffect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n SideEffect.prototype.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n SideEffect.prototype.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n SideEffect.prototype.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n SideEffect.prototype.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n SideEffect.displayName = 'SideEffect(' + getDisplayName(WrappedComponent) + ')';\n SideEffect.canUseDOM = ExecutionEnvironment.canUseDOM;\n\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/1-c01c17ca753e879f146f.js.map b/docs/1-c01c17ca753e879f146f.js.map deleted file mode 100644 index 66436a88a01f..000000000000 --- a/docs/1-c01c17ca753e879f146f.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:////mnt/d/berry/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/index.js","webpack:////mnt/d/berry/.yarn/cache/@emotion-is-prop-valid-npm-0.7.3-a8a7e2ffef0f60c6a3831b9cfb72642953d017bd8b287f038f454732093cb0b7.zip/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack:////mnt/d/berry/.yarn/virtual/@emotion-styled-base-virtual-a5085d8fed57d47340ea6739d0310835c8f206714153816cc7bca863cbe55c96/node_modules/@emotion/styled-base/dist/styled-base.browser.esm.js","webpack:////mnt/d/berry/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.function.name.js","webpack:////mnt/d/berry/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/Helmet.js","webpack:////mnt/d/berry/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.string.link.js","webpack:////mnt/d/berry/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/_string-html.js","webpack:////mnt/d/berry/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/HelmetConstants.js","webpack:////mnt/d/berry/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/factoryWithThrowingShims.js","webpack:////mnt/d/berry/.yarn/cache/prop-types-npm-15.7.2-ad621c02aa737aa329d969ec52a0bd41774faff2a5b47079806c20674d02a814.zip/node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack:////mnt/d/berry/.yarn/virtual/react-side-effect-virtual-fa6a677c16e6425a8c15bdda1136680492df6ed6ccbe08087c3a0f738d990e25/node_modules/react-side-effect/lib/index.js","webpack:////mnt/d/berry/.yarn/cache/exenv-npm-1.2.2-55e1bc7683ce90a6b01f8e80a350a4804c40da847f7d288a63e8d47f9f5879c6.zip/node_modules/exenv/index.js","webpack:////mnt/d/berry/.yarn/cache/shallowequal-npm-1.1.0-f0cbc9d221f6b4d85f16a868b392dc4e3fae0dbfeeb5a22f7deccef0a225af88.zip/node_modules/shallowequal/index.js","webpack:////mnt/d/berry/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/index.js","webpack:////mnt/d/berry/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/lib/keys.js","webpack:////mnt/d/berry/.yarn/cache/deep-equal-npm-1.0.1-498b324d0eccb9c9946f2236eea3180918240f208c6731d1c84548badc9c87bf.zip/node_modules/deep-equal/lib/is_arguments.js","webpack:////mnt/d/berry/.yarn/virtual/react-helmet-virtual-6b81bcbcbdeda9de7a14ac390aed29a438ad911b0c229d105b36d141ca6fdeb2/node_modules/react-helmet/lib/HelmetUtils.js"],"names":["module","exports","__webpack_require__","reactPropsRegex","is_prop_valid_browser_esm","Object","memoize_browser_esm","prop","test","charCodeAt","testOmitPropsOnStringTag","testOmitPropsOnComponent","key","getDefaultShouldForwardProp","tag","__webpack_exports__","createStyled","options","identifierName","shouldForwardProp","targetClassName","undefined","label","target","__emotion_forwardProp","propName","isReal","__emotion_real","baseTag","__emotion_base","defaultShouldForwardProp","shouldUseAs","args","arguments","styles","__emotion_styles","slice","push","raw","apply","len","length","i","Styled","core_browser_cjs","props","context","ref","react","Consumer","theme","finalTag","as","className","classInterpolations","mergedProps","utils_browser_esm","registered","serialized","serialize_browser_esm","concat","name","finalShouldForwardProp","newProps","_key","innerRef","displayName","defaultProps","defineProperty","value","withComponent","nextTag","nextOptions","object_assign_default","dP","f","FProto","Function","prototype","nameRE","configurable","get","this","match","e","__esModule","Helmet","_extends","assign","source","hasOwnProperty","call","_createClass","defineProperties","descriptor","enumerable","writable","Constructor","protoProps","staticProps","_react2","_interopRequireDefault","_propTypes2","_reactSideEffect2","_deepEqual2","_HelmetUtils","_HelmetConstants","obj","default","_objectWithoutProperties","keys","indexOf","Component","_class","_temp","HelmetSideEffects","reducePropsToState","handleClientStateChange","mapStateOnServer","HelmetExport","_React$Component","HelmetWrapper","instance","TypeError","_classCallCheck","self","ReferenceError","_possibleConstructorReturn","subClass","superClass","create","constructor","setPrototypeOf","__proto__","_inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","type","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","Error","flattenArrayTypeChildren","_ref","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_ref2","_extends3","_extends4","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","forEach","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","children","_this2","Children","_child$props","childProps","convertReactPropstoHtmlAttributes","LINK","META","render","_props","createElement","set","canUseDOM","propTypes","base","object","oneOfType","arrayOf","node","defaultTitle","string","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","func","script","style","title","titleTemplate","peek","rewind","mappedState","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","createHTML","url","$export","fails","defined","quot","attribute","S","String","p1","replace","NAME","exec","O","P","F","toLowerCase","split","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","map","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","http-equiv","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","reduce","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","componentName","location","propFullName","secret","err","getShim","isRequired","ReactPropTypes","array","number","symbol","any","element","elementType","instanceOf","objectOf","oneOf","shape","exact","checkPropTypes","PropTypes","_interopDefault","ex","React","React__default","ExecutionEnvironment","shallowEqual","handleStateChangeOnClient","WrappedComponent","mountedInstances","state","emitChange","SideEffect","_Component","recordedState","componentWillMount","componentDidUpdate","componentWillUnmount","index","splice","getDisplayName","__WEBPACK_AMD_DEFINE_RESULT__","window","document","canUseWorkers","Worker","canUseEventListeners","addEventListener","attachEvent","canUseViewport","screen","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","bind","idx","valueA","valueB","pSlice","Array","objectKeys","isArguments","deepEqual","actual","expected","opts","Date","getTime","strict","a","b","isUndefinedOrNull","isBuffer","ka","kb","sort","objEquiv","x","copy","supportsArgumentsClass","toString","supported","unsupported","propertyIsEnumerable","global","warn","requestAnimationFrame","_typeof","Symbol","iterator","_objectAssign2","clock","str","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","filter","tagAttrs","current","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","tagName","approvedSeenTags","isArray","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","now","callback","currentTime","setTimeout","cafPolyfill","id","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","console","_helmetCallback","commitTagChanges","newState","cb","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","join","attributes","elementTag","getElementsByTagName","helmetAttributeString","getAttribute","helmetAttributes","attributesToRemove","attributeKeys","setAttribute","indexToSave","_i","removeAttribute","tags","headElement","head","querySelector","tagNodes","querySelectorAll","indexToDelete","newElement","styleSheet","appendChild","createTextNode","some","existingTag","isEqualNode","parentNode","removeChild","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","encode","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title"],"mappings":"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","file":"1-c01c17ca753e879f146f.js","sourcesContent":["/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|default|defer|dir|disabled|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|itemProp|itemScope|itemType|itemID|itemRef|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport default index;\n","import { createElement } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport _objectAssign from 'object-assign';\nimport { withEmotionCache, ThemeContext } from '@emotion/core';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme' && key !== 'innerRef';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var identifierName;\n var shouldForwardProp;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n shouldForwardProp = tag.__emotion_forwardProp && options.shouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && // $FlowFixMe\n options.shouldForwardProp(propName);\n } : options.shouldForwardProp;\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled = withEmotionCache(function (props, context, ref) {\n return createElement(ThemeContext.Consumer, null, function (theme) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = theme;\n }\n\n if (typeof props.className === 'string') {\n className += getRegisteredStyles(context.registered, classInterpolations, props.className);\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), context.registered, mergedProps);\n var rules = insertStyles(context, serialized, typeof finalTag === 'string');\n className += context.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref || props.innerRef;\n\n if (process.env.NODE_ENV !== 'production' && props.innerRef) {\n console.error('`innerRef` is deprecated and will be removed in a future major version of Emotion, please use the `ref` prop instead' + (identifierName === undefined ? '' : \" in the usage of `\" + identifierName + \"`\"));\n }\n\n var ele = createElement(finalTag, newProps);\n\n return ele;\n });\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, nextOptions !== undefined ? _objectAssign({}, options || {}, nextOptions) : options).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","var dP = require('./_object-dp').f;\nvar FProto = Function.prototype;\nvar nameRE = /^\\s*function ([^ (]*)/;\nvar NAME = 'name';\n\n// 19.2.4.2 name\nNAME in FProto || require('./_descriptors') && dP(FProto, NAME, {\n configurable: true,\n get: function () {\n try {\n return ('' + this).match(nameRE)[1];\n } catch (e) {\n return '';\n }\n }\n});\n","exports.__esModule = true;\nexports.Helmet = undefined;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require(\"prop-types\");\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _reactSideEffect = require(\"react-side-effect\");\n\nvar _reactSideEffect2 = _interopRequireDefault(_reactSideEffect);\n\nvar _deepEqual = require(\"deep-equal\");\n\nvar _deepEqual2 = _interopRequireDefault(_deepEqual);\n\nvar _HelmetUtils = require(\"./HelmetUtils.js\");\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n _inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n _classCallCheck(this, HelmetWrapper);\n\n return _possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !(0, _deepEqual2.default)(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case _HelmetConstants.TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _extends2;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_extends2 = {}, _extends2[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _extends2));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _extends3, _extends4;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return _extends({}, newProps, (_extends3 = {}, _extends3[child.type] = nestedChildren, _extends3.titleAttributes = _extends({}, newChildProps), _extends3));\n\n case _HelmetConstants.TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case _HelmetConstants.TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_extends4 = {}, _extends4[child.type] = _extends({}, newChildProps), _extends4));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _extends5;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_extends5 = {}, _extends5[arrayChildName] = arrayTypeChildren[arrayChildName], _extends5));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!_HelmetConstants.VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return (0, _HelmetUtils.warn)(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return (0, _HelmetUtils.warn)(\"Only elements types \" + _HelmetConstants.VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n _react2.default.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = _objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = (0, _HelmetUtils.convertReactPropstoHtmlAttributes)(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case _HelmetConstants.TAG_NAMES.LINK:\n case _HelmetConstants.TAG_NAMES.META:\n case _HelmetConstants.TAG_NAMES.NOSCRIPT:\n case _HelmetConstants.TAG_NAMES.SCRIPT:\n case _HelmetConstants.TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = _objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return _react2.default.createElement(Component, newProps);\n };\n\n _createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n\n return HelmetWrapper;\n }(_react2.default.Component), _class.propTypes = {\n base: _propTypes2.default.object,\n bodyAttributes: _propTypes2.default.object,\n children: _propTypes2.default.oneOfType([_propTypes2.default.arrayOf(_propTypes2.default.node), _propTypes2.default.node]),\n defaultTitle: _propTypes2.default.string,\n defer: _propTypes2.default.bool,\n encodeSpecialCharacters: _propTypes2.default.bool,\n htmlAttributes: _propTypes2.default.object,\n link: _propTypes2.default.arrayOf(_propTypes2.default.object),\n meta: _propTypes2.default.arrayOf(_propTypes2.default.object),\n noscript: _propTypes2.default.arrayOf(_propTypes2.default.object),\n onChangeClientState: _propTypes2.default.func,\n script: _propTypes2.default.arrayOf(_propTypes2.default.object),\n style: _propTypes2.default.arrayOf(_propTypes2.default.object),\n title: _propTypes2.default.string,\n titleAttributes: _propTypes2.default.object,\n titleTemplate: _propTypes2.default.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = (0, _HelmetUtils.mapStateOnServer)({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = (0, _reactSideEffect2.default)(_HelmetUtils.reducePropsToState, _HelmetUtils.handleClientStateChange, _HelmetUtils.mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexports.Helmet = HelmetExport;\nexports.default = HelmetExport;","'use strict';\n// B.2.3.10 String.prototype.link(url)\nrequire('./_string-html')('link', function (createHTML) {\n return function link(url) {\n return createHTML(this, 'a', 'href', url);\n };\n});\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","exports.__esModule = true;\nvar ATTRIBUTE_NAMES = exports.ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = exports.TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = exports.VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = exports.TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\"\n};\n\nvar REACT_TAG_MAP = exports.REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = exports.HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = exports.HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = exports.SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = exports.HELMET_ATTRIBUTE = \"data-react-helmet\";","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\nvar ExecutionEnvironment = _interopDefault(require('exenv'));\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state = void 0;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = function (_Component) {\n _inherits(SideEffect, _Component);\n\n function SideEffect() {\n _classCallCheck(this, SideEffect);\n\n return _possibleConstructorReturn(this, _Component.apply(this, arguments));\n }\n\n // Try to use displayName of wrapped component\n SideEffect.peek = function peek() {\n return state;\n };\n\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n SideEffect.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n SideEffect.prototype.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n SideEffect.prototype.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n SideEffect.prototype.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n SideEffect.prototype.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n SideEffect.displayName = 'SideEffect(' + getDisplayName(WrappedComponent) + ')';\n SideEffect.canUseDOM = ExecutionEnvironment.canUseDOM;\n\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","/*!\n Copyright (c) 2015 Jed Watson.\n Based on code that is Copyright 2013-2015, Facebook, Inc.\n All rights reserved.\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar canUseDOM = !!(\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.document &&\n\t\twindow.document.createElement\n\t);\n\n\tvar ExecutionEnvironment = {\n\n\t\tcanUseDOM: canUseDOM,\n\n\t\tcanUseWorkers: typeof Worker !== 'undefined',\n\n\t\tcanUseEventListeners:\n\t\t\tcanUseDOM && !!(window.addEventListener || window.attachEvent),\n\n\t\tcanUseViewport: canUseDOM && !!window.screen\n\n\t};\n\n\tif (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\tdefine(function () {\n\t\t\treturn ExecutionEnvironment;\n\t\t});\n\t} else if (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = ExecutionEnvironment;\n\t} else {\n\t\twindow.ExecutionEnvironment = ExecutionEnvironment;\n\t}\n\n}());\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","var pSlice = Array.prototype.slice;\nvar objectKeys = require('./lib/keys.js');\nvar isArguments = require('./lib/is_arguments.js');\n\nvar deepEqual = module.exports = function (actual, expected, opts) {\n if (!opts) opts = {};\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n\n } else if (actual instanceof Date && expected instanceof Date) {\n return actual.getTime() === expected.getTime();\n\n // 7.3. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if (!actual || !expected || typeof actual != 'object' && typeof expected != 'object') {\n return opts.strict ? actual === expected : actual == expected;\n\n // 7.4. For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else {\n return objEquiv(actual, expected, opts);\n }\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer (x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') return false;\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') return false;\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n var i, key;\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b))\n return false;\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) return false;\n //~~~I've managed to break Object.keys through screwy arguments passing.\n // Converting to array solves the problem.\n if (isArguments(a)) {\n if (!isArguments(b)) {\n return false;\n }\n a = pSlice.call(a);\n b = pSlice.call(b);\n return deepEqual(a, b, opts);\n }\n if (isBuffer(a)) {\n if (!isBuffer(b)) {\n return false;\n }\n if (a.length !== b.length) return false;\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false;\n }\n return true;\n }\n try {\n var ka = objectKeys(a),\n kb = objectKeys(b);\n } catch (e) {//happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n if (ka.length != kb.length)\n return false;\n //the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n //~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i])\n return false;\n }\n //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) return false;\n }\n return typeof a === typeof b;\n}\n","exports = module.exports = typeof Object.keys === 'function'\n ? Object.keys : shim;\n\nexports.shim = shim;\nfunction shim (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n}\n","var supportsArgumentsClass = (function(){\n return Object.prototype.toString.call(arguments)\n})() == '[object Arguments]';\n\nexports = module.exports = supportsArgumentsClass ? supported : unsupported;\n\nexports.supported = supported;\nfunction supported(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n};\n\nexports.unsupported = unsupported;\nfunction unsupported(object){\n return object &&\n typeof object == 'object' &&\n typeof object.length == 'number' &&\n Object.prototype.hasOwnProperty.call(object, 'callee') &&\n !Object.prototype.propertyIsEnumerable.call(object, 'callee') ||\n false;\n};\n","exports.__esModule = true;\nexports.warn = exports.requestAnimationFrame = exports.reducePropsToState = exports.mapStateOnServer = exports.handleClientStateChange = exports.convertReactPropstoHtmlAttributes = undefined;\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require(\"react\");\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _objectAssign = require(\"object-assign\");\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _HelmetConstants = require(\"./HelmetConstants.js\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, _HelmetConstants.TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[_HelmetConstants.TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[_HelmetConstants.TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === _HelmetConstants.TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attributeKey === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT || attributeKey === _HelmetConstants.TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = (0, _objectAssign2.default)({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([_HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n bodyAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, _HelmetConstants.HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.LINK, [_HelmetConstants.TAG_PROPERTIES.REL, _HelmetConstants.TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.META, [_HelmetConstants.TAG_PROPERTIES.NAME, _HelmetConstants.TAG_PROPERTIES.CHARSET, _HelmetConstants.TAG_PROPERTIES.HTTPEQUIV, _HelmetConstants.TAG_PROPERTIES.PROPERTY, _HelmetConstants.TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.NOSCRIPT, [_HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.SCRIPT, [_HelmetConstants.TAG_PROPERTIES.SRC, _HelmetConstants.TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(_HelmetConstants.TAG_NAMES.STYLE, [_HelmetConstants.TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(_HelmetConstants.ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(_HelmetConstants.TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(_HelmetConstants.TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(_HelmetConstants.TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(_HelmetConstants.TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(_HelmetConstants.TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(_HelmetConstants.TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(_HelmetConstants.TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(_HelmetConstants.HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(_HelmetConstants.HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(_HelmetConstants.TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + _HelmetConstants.HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(_HelmetConstants.HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || attribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = _HelmetConstants.SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + _HelmetConstants.HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[_HelmetConstants.REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[_HelmetConstants.HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[_HelmetConstants.HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [_react2.default.createElement(_HelmetConstants.TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[_HelmetConstants.HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = _HelmetConstants.REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === _HelmetConstants.TAG_PROPERTIES.INNER_HTML || mappedAttribute === _HelmetConstants.TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return _react2.default.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case _HelmetConstants.TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case _HelmetConstants.ATTRIBUTE_NAMES.BODY:\n case _HelmetConstants.ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(_HelmetConstants.TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(_HelmetConstants.ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(_HelmetConstants.TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(_HelmetConstants.TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(_HelmetConstants.TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(_HelmetConstants.TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(_HelmetConstants.TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(_HelmetConstants.TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nexports.convertReactPropstoHtmlAttributes = convertReactPropstoHtmlAttributes;\nexports.handleClientStateChange = handleClientStateChange;\nexports.mapStateOnServer = mapStateOnServer;\nexports.reducePropsToState = reducePropsToState;\nexports.requestAnimationFrame = requestAnimationFrame;\nexports.warn = warn;"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/12-fba29f79a497a3e057fb.js.map b/docs/12-fba29f79a497a3e057fb.js.map deleted file mode 100644 index 62ecf12f4962..000000000000 --- a/docs/12-fba29f79a497a3e057fb.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:////mnt/d/berry/.yarn/cache/foreach-npm-2.0.5-a6f31edd35bfbbebd9bad538b38997ed9341d0425be15f04b7bf116ff250097b.zip/node_modules/foreach/index.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/clone.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/errors.js","webpack:////mnt/d/berry/.yarn/cache/isarray-npm-2.0.4-8976495ea1c235c2e620a17f3f78732399d9f7e1f7915a190c0dfda5a393158a.zip/node_modules/isarray/index.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/map.js","webpack:////mnt/d/berry/.yarn/cache/debug-npm-2.6.9-a22b8093089df29ca19a7c10d81885890baaeaafa2ee64904636bf2e064dd0be.zip/node_modules/debug/src/browser.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/buildSearchMethod.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/omit.js","webpack:////mnt/d/berry/.yarn/cache/querystring-es3-npm-0.2.1-133c2ae817d8b9c86c78de2748c2702946df5befa7a279fc4eab322bfb1724e6.zip/node_modules/querystring-es3/encode.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/browser/builds/algoliasearchLite.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/AlgoliaSearchCore.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/exitPromise.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/IndexCore.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/deprecate.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/deprecatedMessage.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/merge.js","webpack:////mnt/d/berry/.yarn/cache/object-keys-npm-1.0.12-7af3d0b0255a43f5975bde3000766d65b9e3588e9501c891b1bd99d1b9db2695.zip/node_modules/object-keys/index.js","webpack:////mnt/d/berry/.yarn/cache/object-keys-npm-1.0.12-7af3d0b0255a43f5975bde3000766d65b9e3588e9501c891b1bd99d1b9db2695.zip/node_modules/object-keys/isArguments.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/store.js","webpack:////mnt/d/berry/.yarn/cache/debug-npm-2.6.9-a22b8093089df29ca19a7c10d81885890baaeaafa2ee64904636bf2e064dd0be.zip/node_modules/debug/src/debug.js","webpack:////mnt/d/berry/.yarn/cache/ms-npm-2.0.0-4b4709283b6ed26827d21df3aabb0f248c3e0cc3293fceea70199db9e4e51d59.zip/node_modules/ms/index.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/browser/createAlgoliasearch.js","webpack:////mnt/d/berry/.yarn/cache/global-npm-4.3.2-a5d2a2a46c16797b4b8ae93d596d87bad6f57cf4b4e0b2b4717bb8195eebe4e3.zip/node_modules/global/window.js","webpack:////mnt/d/berry/.yarn/cache/es6-promise-npm-4.2.6-744ae81d4a7cef00c404d4d1d66c2efb83b56b834b06c25a62d76cae6a4ece87.zip/node_modules/es6-promise/dist/es6-promise.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/browser/inline-headers.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/browser/jsonp-request.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/places.js","webpack:////mnt/d/berry/.yarn/cache/querystring-es3-npm-0.2.1-133c2ae817d8b9c86c78de2748c2702946df5befa7a279fc4eab322bfb1724e6.zip/node_modules/querystring-es3/index.js","webpack:////mnt/d/berry/.yarn/cache/querystring-es3-npm-0.2.1-133c2ae817d8b9c86c78de2748c2702946df5befa7a279fc4eab322bfb1724e6.zip/node_modules/querystring-es3/decode.js","webpack:////mnt/d/berry/.yarn/cache/algoliasearch-npm-3.32.1-58991bc31c36e7cbe8e5532724a497cfdff9b31dd910474e5ab9b666ddd9fbf0.zip/node_modules/algoliasearch/src/version.js","webpack:////mnt/d/berry/.yarn/virtual/@reach-router-virtual-7efb1e8ff7f665684722ec588437e3ad7f9d7a32e7db956ec537e4581290bcd4/node_modules/@reach/router/es/lib/history.js","webpack:////mnt/d/berry/.yarn/virtual/@reach-router-virtual-7efb1e8ff7f665684722ec588437e3ad7f9d7a32e7db956ec537e4581290bcd4/node_modules/@reach/router/es/lib/utils.js","webpack:////mnt/d/berry/.yarn/virtual/@reach-router-virtual-7efb1e8ff7f665684722ec588437e3ad7f9d7a32e7db956ec537e4581290bcd4/node_modules/@reach/router/es/index.js"],"names":["hasOwn","Object","prototype","hasOwnProperty","toString","module","exports","obj","fn","ctx","call","TypeError","l","length","i","k","JSON","parse","stringify","inherits","__webpack_require__","AlgoliaSearchError","message","extraProperties","forEach","error","this","Error","captureStackTrace","constructor","stack","name","value","key","createCustomError","AlgoliaSearchCustomError","args","Array","slice","arguments","unshift","apply","UnparsableJSON","RequestTimeout","Network","JSONPScriptFail","JSONPScriptError","Unknown","isArray","arr","foreach","newArr","item","itemIndex","push","process","load","r","storage","debug","e","DEBUG","log","console","Function","formatArgs","useColors","namespace","humanize","diff","c","color","splice","index","lastC","replace","match","save","namespaces","removeItem","window","type","document","documentElement","style","WebkitAppearance","firebug","exception","table","navigator","userAgent","toLowerCase","parseInt","RegExp","$1","chrome","local","localStorage","localstorage","colors","formatters","j","v","err","enable","queryParam","url","query","callback","errors","undefined","additionalUA","params","encodeURIComponent","as","_getSearchParams","_search","test","keys","filtered","keyName","stringifyPrimitive","isFinite","sep","eq","map","objectKeys","ks","join","xs","f","res","AlgoliaSearchCore","createAlgoliasearch","exitPromise","IndexCore","store","RESET_APP_DATA_TIMER","applicationID","apiKey","opts","clone","usage","_allowEmptyCredentials","hosts","read","write","_timeouts","timeouts","connect","timeout","protocol","_checkAppIdData","defaultHosts","_shuffleResult","hostNumber","mainSuffix","dsn","concat","prepareHost","extraHeaders","cache","_cache","_ua","_useCache","_useRequestCache","_useFallback","useFallback","_setTimeout","host","safeJSONStringify","toJSON","out","removeCredentials","headers","newHeaders","headerName","initIndex","indexName","setExtraHeader","getExtraHeader","unsetExtraHeader","addAlgoliaAgent","algoliaAgent","indexOf","_jsonRequest","initialOpts","body","cacheID","requestDebug","client","tries","usingFallback","hasFallback","_request","fallback","requests","_computeRequestHeaders","withApiKey","debugData","isCacheValidWithCurrentID","useRequestCache","currentCache","currentCacheID","interopCallbackReturn","request","catch","then","content","setTimeout","maybePromiseForCache","_promise","resolve","responseText","doRequest","requester","reqOpts","startTime","Date","hostType","reject","method","jsonBody","_getTimeoutsForRequest","_setHostIndexByType","currentHost","_getHostByType","options","forceAuthHeaders","httpResponse","status","statusCode","httpResponseOk","Math","floor","endTime","contentLength","duration","retryRequest","unrecoverableError","_incrementHostIndex","_incrementTimeoutMultipler","requestHeaders","x-algolia-agent","x-algolia-application-id","userToken","securityTags","search","queries","postObj","JSONPParams","requestId","strategy","searchForFacetValues","all","facetName","facetQuery","omit","filteredParams","searchParameters","setSecurityTags","tags","strTags","oredTags","setUserToken","clearCache","setRequestTimeout","milliseconds","setTimeouts","getTimeouts","_getAppIdData","data","get","_cacheAppIdData","_setAppIdData","lastChange","getTime","set","now","_resetInitialAppIdData","newData","hostIndexes","timeoutMultiplier","shuffleResult","array","temporaryValue","randomIndex","currentIndex","random","shuffle","_hostIndexes","_timeoutMultiplier","_partialAppIdDataUpdate","currentData","_getHostIndexByType","_getTimeoutMultiplier","hostIndex","newHostIndexes","max","complete","buildSearchMethod","deprecate","deprecatedMessage","algoliasearch","typeAheadArgs","typeAheadValueOption","similarSearch","browse","queryParameters","page","hitsPerPage","merge","browseFrom","cursor","searchFacet","getObject","objectID","attrs","getObjects","objectIDs","attributesToRetrieve","indexObj","warned","warn","previousUsage","newUsage","githubAnchorLink","destination","sources","source","has","toStr","isArgs","isEnumerable","propertyIsEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","keysShim","object","isObject","isFunction","isArguments","isString","theKeys","skipProto","String","skipConstructor","equalsConstructorPrototypeIfNotBuggy","shim","originalKeys","str","callee","global","localStorageNamespace","moduleStore","state","localStorageStore","localStorageFailure","_","cleanup","getOrSet","supportsLocalStorage","setItem","prevTime","createDebug","enabled","self","curr","ms","prev","coerce","format","formatter","val","bind","hash","charCodeAt","abs","selectColor","init","disable","names","skips","split","len","substr","s","m","h","d","y","plural","n","ceil","exec","parseFloat","isNaN","long","round","fmtShort","Promise","AlgoliaSearch","uaSuffix","inlineHeaders","jsonpRequest","places","cloneDeep","ua","AlgoliaSearchBrowser","version","initPlaces","__algolia","support","hasXMLHttpRequest","hasXDomainRequest","cors","XMLHttpRequest","reqTimeout","timedOut","req","XDomainRequest","connected","onTimeout","onprogress","onConnect","onreadystatechange","readyState","onload","clearTimeout","getAllResponseHeaders","more","onerror","event","open","setRequestHeader","send","abort","delay","promises","win","factory","x","vertxNext","customSchedulerFn","asap","arg","queue","flush","scheduleFlush","browserWindow","browserGlobal","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","isNode","isWorker","Uint8ClampedArray","importScripts","MessageChannel","useSetTimeout","globalSetTimeout","channel","iterations","observer","node","onFulfillment","onRejection","parent","child","noop","PROMISE_ID","makePromise","_state","invokeCallback","_result","subscribe","resolve$1","promise","nextTick","createTextNode","observe","characterData","port1","onmessage","port2","postMessage","vertx","require","runOnLoop","runOnContext","attemptVertx","substring","PENDING","FULFILLED","REJECTED","TRY_CATCH_ERROR","getThen","handleMaybeThenable","maybeThenable","then$$1","thenable","fulfill","reason","handleOwnThenable","sealed","fulfillmentHandler","rejectionHandler","tryThen","_label","handleForeignThenable","publishRejection","_onerror","publish","_subscribers","subscribers","settled","detail","hasCallback","succeeded","failed","tryCatch","id","Enumerator","Constructor","input","_instanceConstructor","_remaining","_enumerate","_eachEntry","entry","resolve$$1","_then","_settledAt","Promise$1","_willSettleAt","enumerator","resolver","needsResolver","initializePromise","needsNew","finally","entries","race","_setScheduler","scheduleFn","_setAsap","asapFn","_asap","polyfill","P","promiseToString","cast","encode","cb","cbCalled","JSONPCounter","head","getElementsByTagName","script","createElement","cbName","done","removeGlobals","clean","ontimeout","success","removeChild","async","defer","src","appendChild","appID","reverse","encoded","qs3","decode","prop","qs","regexp","maxKeys","kstr","vstr","idx","decodeURIComponent","listeners","location","transitioning","resolveTransition","startsWith","string","utils_pick","routes","uri","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","default","routeSegments","path","routeSegment","uriSegment","dynamicMatch","paramRe","reservedNames","invariant_browser_default","to","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","pathname","allSegments","segments","segment","pop","insertParams","isDynamic","rankRoute","score","reduce","isRootSegment","isSplat","SEGMENT_POINTS","sort","a","b","_extends","assign","target","getLocation","history","canUseDOM","globalHistory","initialPathname","states","addEventListener","removeEventListener","pushState","_uri$split","_uri$split$","replaceState","_uri$split2","_uri$split2$","createMemorySource","_onTransitionComplete","listen","listener","popstateListener","action","filter","navigate","_ref","_ref$replace","transition","__webpack_exports__","es_extends","_objectWithoutProperties","_classCallCheck","instance","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","create","enumerable","writable","configurable","setPrototypeOf","__proto__","es_createNamedContext","defaultValue","Ctx","create_react_context","Consumer","displayName","Provider","LocationContext","es_Location","children","react_default","context","es_LocationProvider","_React$Component","LocationProvider","_temp","_this","_len","_key","getContext","refs","unlisten","_props$history","props","componentDidCatch","info","isRedirect","_navigate","componentDidUpdate","prevProps","prevState","componentDidMount","_this2","requestAnimationFrame","unmounted","setState","componentWillUnmount","render","Component","defaultProps","BaseContext","baseuri","basepath","es_Router","baseContext","locationContext","es_RouterImpl","_React$PureComponent","RouterImpl","_props","_navigate2","primary","_props$component","component","domProps","Children","es_createRoute","element","cloneElement","FocusWrapper","es_FocusHandler","wrapperProps","PureComponent","FocusContext","_ref3","requestFocus","es_FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","FocusHandlerImpl","_temp2","_this4","_len2","_key2","shouldFocus","focus","getDerivedStateFromProps","nextProps","myURIChanged","navigatedUpToMe","contains","activeElement","_this5","_props2","_props2$role","role","_props2$component","Comp","outline","tabIndex","ref","react_lifecycles_compat","forwardRef","C","_ref4","innerRef","_ref5","_ref6","_props$getProps","getProps","anchorProps","href","isCurrent","isPartiallyCurrent","aria-current","onClick","shouldNavigate","preventDefault","RedirectRequest","es_RedirectImpl","_React$Component3","RedirectImpl","_props3","_props3$replace","from","noThrow","_props4","redirectTo","es_Redirect","stripSlashes","elementPath","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey"],"mappings":"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","file":"12-fba29f79a497a3e057fb.js","sourcesContent":["\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","module.exports = function clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n};\n","'use strict';\n\n// This file hosts our error definitions\n// We use custom error \"types\" so that we can act on them when we need it\n// e.g.: if error instanceof errors.UnparsableJSON then..\n\nvar inherits = require('inherits');\n\nfunction AlgoliaSearchError(message, extraProperties) {\n var forEach = require('foreach');\n\n var error = this;\n\n // try to get a stacktrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(this, this.constructor);\n } else {\n error.stack = (new Error()).stack || 'Cannot get a stacktrace, browser is too old';\n }\n\n this.name = 'AlgoliaSearchError';\n this.message = message || 'Unknown error';\n\n if (extraProperties) {\n forEach(extraProperties, function addToErrorObject(value, key) {\n error[key] = value;\n });\n }\n}\n\ninherits(AlgoliaSearchError, Error);\n\nfunction createCustomError(name, message) {\n function AlgoliaSearchCustomError() {\n var args = Array.prototype.slice.call(arguments, 0);\n\n // custom message not set, use default\n if (typeof args[0] !== 'string') {\n args.unshift(message);\n }\n\n AlgoliaSearchError.apply(this, args);\n this.name = 'AlgoliaSearch' + name + 'Error';\n }\n\n inherits(AlgoliaSearchCustomError, AlgoliaSearchError);\n\n return AlgoliaSearchCustomError;\n}\n\n// late exports to let various fn defs and inherits take place\nmodule.exports = {\n AlgoliaSearchError: AlgoliaSearchError,\n UnparsableJSON: createCustomError(\n 'UnparsableJSON',\n 'Could not parse the incoming response as JSON, see err.more for details'\n ),\n RequestTimeout: createCustomError(\n 'RequestTimeout',\n 'Request timed out before getting a response'\n ),\n Network: createCustomError(\n 'Network',\n 'Network issue, see err.more for details'\n ),\n JSONPScriptFail: createCustomError(\n 'JSONPScriptFail',\n '
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced

NOT FOUND

You just hit a route that doesn't exist... the sadness.

\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced

NOT FOUND

You just hit a route that doesn't exist... the sadness.

\ No newline at end of file diff --git a/docs/404/index.html b/docs/404/index.html index 69f259d2cc65..69a0d33d5a66 100644 --- a/docs/404/index.html +++ b/docs/404/index.html @@ -1,4 +1,4 @@ -404: Not found | Yarn - Package Manager404: Not found | Yarn - Package Manager
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced

NOT FOUND

You just hit a route that doesn't exist... the sadness.

\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced

NOT FOUND

You just hit a route that doesn't exist... the sadness.

\ No newline at end of file diff --git a/docs/advanced/architecture/index.html b/docs/advanced/architecture/index.html index 8a92a10fa0e8..ee87ab034c18 100644 --- a/docs/advanced/architecture/index.html +++ b/docs/advanced/architecture/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Architecture

General architecture

-

Yarn works through a core package (published as @berry/core) that exposes the various base components that make up a project. Some of components are classes that you might recognize from the API: Configuration, Project, Workspace, Cache, Manifest, and others. All those are provided by the core package.

-

The core itself doesn't do much - it merely contains the logic required to manage a project. In order to use this logic from the command-line Yarn provides an indirection called @berry/cli which, interestingly, doesn't do much either. It however has two very important responsibilities: it hydrates a project instance based on the current directory (cwd), and inject the prebuilt Yarn plugins into the environment.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Architecture

General architecture

+

Yarn works through a core package (published as @berry/core) that exposes the various base components that make up a project. Some of components are classes that you might recognize from the API: Configuration, Project, Workspace, Cache, Manifest, and others. All those are provided by the core package.

+

The core itself doesn't do much - it merely contains the logic required to manage a project. In order to use this logic from the command-line Yarn provides an indirection called @berry/cli which, interestingly, doesn't do much either. It however has two very important responsibilities: it hydrates a project instance based on the current directory (cwd), and inject the prebuilt Yarn plugins into the environment.

See, Yarn is built in modular way that allow most of the business logic related to third-party interactions to be externalized inside their own package - for example the npm resolver is but one plugin amongst many others. This design gives us a much simpler codebase to work with (hence an increased development speed and stabler product), and offers plugin authors the ability to write their own external logic without having to modify the Yarn codebase itself.

Install architecture

-

What happens when running yarn install can be summarized in a few different steps:

+

What happens when running yarn install can be summarized in a few different steps:

  1. First we enter the "resolution step":

    • -

      First we load the entries stored within the lockfile, then based on those data and the current state of the project (that it figures out by reading the manifest files, aka package.json) the core runs an internal algorithm to find out which entries are missing.

      +

      First we load the entries stored within the lockfile, then based on those data and the current state of the project (that it figures out by reading the manifest files, aka package.json) the core runs an internal algorithm to find out which entries are missing.

    • -

      For each of those missing entries, it queries the plugins using the Resolver interface, and asks them whether they would know about a package that would match the given descriptor (supportsDescriptor) and its exact identity (getCandidates) and transitive dependency list (resolve).

      +

      For each of those missing entries, it queries the plugins using the Resolver interface, and asks them whether they would know about a package that would match the given descriptor (supportsDescriptor) and its exact identity (getCandidates) and transitive dependency list (resolve).

    • Once it has obtained a new list of package metadata, the core starts a new resolution pass on the transitive dependencies of the newly added packages. This will be repeated until it figures out that all packages from the dependency tree now have their metadata stored within the lockfile.

      @@ -68,10 +68,10 @@

    • @@ -79,14 +79,14 @@

      • -

        In order to work properly, the packages you use must be installed on the disk in some way. For example, in the case of a native Node application, your packages would have to be installed into a set of node_modules directories so that they could be located by the interpreter. That's what the linker is about. Through the Linker and Installer interfaces the Yarn core will communicate with the registered plugins to let them know about the packages listed in the dependency tree, and describe their relationships (for example it would tell them that tapable is a dependency of webpack). The plugins can then decide what to do of these information in whatever they see fit.

        +

        In order to work properly, the packages you use must be installed on the disk in some way. For example, in the case of a native Node application, your packages would have to be installed into a set of node_modules directories so that they could be located by the interpreter. That's what the linker is about. Through the Linker and Installer interfaces the Yarn core will communicate with the registered plugins to let them know about the packages listed in the dependency tree, and describe their relationships (for example it would tell them that tapable is a dependency of webpack). The plugins can then decide what to do of these information in whatever they see fit.

      • -

        Doing this means that new linkers can be created for other programming languages pretty easily - you just need to write your own logic regarding what should happen from the packages provided by Yarn. Want to generate an __autoload.php? Do it! Want to setup a Python virtual env? No problemo!

        +

        Doing this means that new linkers can be created for other programming languages pretty easily - you just need to write your own logic regarding what should happen from the packages provided by Yarn. Want to generate an __autoload.php? Do it! Want to setup a Python virtual env? No problemo!

      • -

        Something else that's pretty cool is that the packages from within the dependency tree don't have to all be of the same type. Our plugin design allows instantiating multiple linkers simultaneously. Even better - the packages can depend on one another across linkers! You could have a JavaScript package depending on a Python package (which is technically the case of node-gyp, for example).

        +

        Something else that's pretty cool is that the packages from within the dependency tree don't have to all be of the same type. Our plugin design allows instantiating multiple linkers simultaneously. Even better - the packages can depend on one another across linkers! You could have a JavaScript package depending on a Python package (which is technically the case of node-gyp, for example).

      -

\ No newline at end of file +
\ No newline at end of file diff --git a/docs/advanced/contributing/index.html b/docs/advanced/contributing/index.html index 2bbe1fbdee05..85cb1643fd2b 100644 --- a/docs/advanced/contributing/index.html +++ b/docs/advanced/contributing/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Contributing

Thanks for being here! Yarn gives a lot of importance to being a community project, and we rely on your help as much as you rely on ours. In order to help you help us we've invested in an infra and documentation that should make contributing to Yarn very easy. If you have any feedback on what we could improve, please open an issue to discuss it!

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Contributing

Thanks for being here! Yarn gives a lot of importance to being a community project, and we rely on your help as much as you rely on ours. In order to help you help us we've invested in an infra and documentation that should make contributing to Yarn very easy. If you have any feedback on what we could improve, please open an issue to discuss it!

Building the bundle

The standard bundle is built using the following command from anywhere in the repository:

-
$> yarn build:cli
-
-

The standard bundle uses a predefined set of plugins defined in packages/berry-cli/package.json. If your PR aims to add a new plugin to the standard build you'll need to add it there (note that this decision should be left to core maintainers - please don't modify this settings yourself).

-

For development purposes, you can build your plugin as part of your local bundle by using the --plugin option in the command line:

-
$> yarn build:cli --plugin @berry/typescript
-
+
$> yarn build:cli
+

The standard bundle uses a predefined set of plugins defined in packages/berry-cli/package.json. If your PR aims to add a new plugin to the standard build you'll need to add it there (note that this decision should be left to core maintainers - please don't modify this settings yourself).

+

For development purposes, you can build your plugin as part of your local bundle by using the --plugin option in the command line:

+
$> yarn build:cli --plugin @berry/typescript

Testing your code

We currently have two testsuites, built for different purposes. The first one are unit tests and can be triggered by running the following command from anywhere within the repository:

-
$> yarn test:unit
-
-

Those unit tests can typically be found in the packages/*/tests directory.

+
$> yarn test:unit
+

Those unit tests can typically be found in the packages/*/tests directory.

While various subcomponents are tested via unit tests (for example the portable shell library), Yarn itself isn't tested through unit tests - we instead rely on integration tests which are much closer from our users setup. Those tests can be triggered through the following command (again, from anywhere within the repository):

-
$> yarn test:integration
-
-

In both cases the underlying framework we use is Jest, which means that you can filter the tests you want to run by using the -t flag (or simply the file path):

-
$> yarn test:unit berry-shell
-$> yarn test:integration -t 'it should correctly install a single dependency that contains no sub-dependencies'
-
+
$> yarn test:integration
+

In both cases the underlying framework we use is Jest, which means that you can filter the tests you want to run by using the -t flag (or simply the file path):

+
$> yarn test:unit berry-shell
+$> yarn test:integration -t 'it should correctly install a single dependency that contains no sub-dependencies'

Don't forget that your PR will require all the tests to pass before being merged!

Formatting your code

Before submitting your code for review, please make sure your code is properly formatted by using the following command from anywhere within the repository:

-
$> yarn test:lint
-
-

We use ESLint to check this, so using the --fix flag will cause ESLint to attempt to automatically correct most errors that might be left in your code:

-
$> yarn test:lint --fix
-
\ No newline at end of file +
$> yarn test:lint
+

We use ESLint to check this, so using the --fix flag will cause ESLint to attempt to automatically correct most errors that might be left in your code:

+
$> yarn test:lint --fix
\ No newline at end of file diff --git a/docs/advanced/error-codes/index.html b/docs/advanced/error-codes/index.html index 8ce496b4bc52..aebdc97e8088 100644 --- a/docs/advanced/error-codes/index.html +++ b/docs/advanced/error-codes/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Error Codes

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Error Codes

-

Are you a plugin author and want to declare your own error codes that don't match the semantic of the ones provided here? Please relinquish one character and use the YNX prefix (ex YNX001) instead of YN0!

+

Are you a plugin author and want to declare your own error codes that don't match the semantic of the ones provided here? Please relinquish one character and use the YNX prefix (ex YNX001) instead of YN0!

Keeping this convention will help our users to figure out which error codes can be found on this documentation and which ones should instead be checked against the individual documentation of the plugins they use.

-

YN0000 - UNNAMED

+

YN0000 - UNNAMED

This code is used to log regular messages, mostly to align all the lines in the Yarn output. No worry!

-

YN0001 - EXCEPTION

+

YN0001 - EXCEPTION

An exception had be thrown by the program.

This error typically should never happen (it should instead point to a different error message from this page so that it can be properly documented), so it should be considered a bug in Yarn. Feel free to open an issue or, even better, a pull request aiming to fix it.

-

YN0002 - MISSING_PEER_DEPENDENCY

+

YN0002 - MISSING_PEER_DEPENDENCY

A package requests a peer dependency, but its parent in the dependency tree doesn't provide it.

This error occurs when a package peer dependencies cannot be satisfied. If the peer dependency is optional and shouldn't trigger such warnings, then mark it as such using the optional peer dependencies feature.

-

Note that Yarn enforces peer dependencies at every level of the dependency tree - meaning that if A depends on B+X, and B depends on C, and C has a peer dependency on X, then a warning will be emitted (because B doesn't fulfill the peer dependendy request). The best way to solve this is to explicitly list the transitive peer dependency on X in B has well.

-

YN0003 - CYCLIC_DEPENDENCIES

+

Note that Yarn enforces peer dependencies at every level of the dependency tree - meaning that if A depends on B+X, and B depends on C, and C has a peer dependency on X, then a warning will be emitted (because B doesn't fulfill the peer dependendy request). The best way to solve this is to explicitly list the transitive peer dependency on X in B has well.

+

YN0003 - CYCLIC_DEPENDENCIES

Two packages with build scripts have cyclic dependencies.

-

Cyclic dependencies are a can of worm. They happen when a package A depends on a package B and vice-versa Sometime can arise through a chain of multiple packages - for example when A depends on B, which depends on C, which depends on A.

+

Cyclic dependencies are a can of worm. They happen when a package A depends on a package B and vice-versa Sometime can arise through a chain of multiple packages - for example when A depends on B, which depends on C, which depends on A.

While cyclic dependencies may work fine in the general Javascript case (and in fact Yarn won't warn you about it in most cases), they can cause issues as soon as build scripts are involved. Indeed, in order to build a package, we first must make sure that its own dependencies have been properly built. How can we do that when two packages reference each other? Since the first one to build cannot be deduced, such patterns will cause the build scripts of every affected packages to simply be ignored (and a warning emitted).

-

There's already good documentation online explaining how to get rid of cyclic dependencies, the simplest one being to extract the shared part of your program into a third package without dependencies. So the first case we described would become A depends on C, B depends on C, C doesn't depend on anything.

-

YN0004 - DISABLED_BUILD_SCRIPTS

+

There's already good documentation online explaining how to get rid of cyclic dependencies, the simplest one being to extract the shared part of your program into a third package without dependencies. So the first case we described would become A depends on C, B depends on C, C doesn't depend on anything.

+

YN0004 - DISABLED_BUILD_SCRIPTS

A package has build scripts, but they've been disabled across the project.

-

Build scripts can be disabled on a global basis through the use of the enable-scripts settings. When it happens, a warning is still emitted to let you know that the installation might not be complete.

-

The safest way to downgrade the warning into a notification is to explicitly disable build scripts for the affected packages through the use of the dependenciesMeta[].build key.

-

YN0005 - BUILD_DISABLED

+

Build scripts can be disabled on a global basis through the use of the enable-scripts settings. When it happens, a warning is still emitted to let you know that the installation might not be complete.

+

The safest way to downgrade the warning into a notification is to explicitly disable build scripts for the affected packages through the use of the dependenciesMeta[].build key.

+

YN0005 - BUILD_DISABLED

A package has build scripts, but they've been disabled through its configuration.

-

Build scripts can be disabled on a per-project basis through the use of the dependenciesMeta settings from the package.json file. When it happens, a notification is still emitted to let you know that the installation might not be complete.

- +

Build scripts can be disabled on a per-project basis through the use of the dependenciesMeta settings from the package.json file. When it happens, a notification is still emitted to let you know that the installation might not be complete.

+

A package has build scripts, but is linked through a soft link.

For Yarn, a hard link is when a package is owned by the package manager. In these instances Yarn will typically copy packages having build scripts into a project-local cache so that multiple projects with multiple dependency trees don't use the same build artifacts. So what's the problem with so-called "soft links"?

-

Soft links are when the package manager doesn't own the package source. An example is a workspace, or a dependency referenced through the portal: specifier. In these instances Yarn cannot safely assume that executing build scripts there is the intended behavior, because it would likely involve mutating your project or, even worse, an external location on your disk that might be shared by multiple projects. Since Yarn avoids doing anything unsafe, it cannot run build scripts on soft links.

+

Soft links are when the package manager doesn't own the package source. An example is a workspace, or a dependency referenced through the portal: specifier. In these instances Yarn cannot safely assume that executing build scripts there is the intended behavior, because it would likely involve mutating your project or, even worse, an external location on your disk that might be shared by multiple projects. Since Yarn avoids doing anything unsafe, it cannot run build scripts on soft links.

There are a few workarounds:

  • -

    Using file: instead of portal: will cause a hard link to be used instead of a soft link. The other side of the coin will be that the packages will be copied into the cache as well, meaning that changing the package source will require you to run YARN_UPDATE_FILE_CACHE=1 yarn install for your changes to be taken into account.

    +

    Using file: instead of portal: will cause a hard link to be used instead of a soft link. The other side of the coin will be that the packages will be copied into the cache as well, meaning that changing the package source will require you to run YARN_UPDATE_FILE_CACHE=1 yarn install for your changes to be taken into account.

  • -

    You can manually run yarn run postinstall (or whatever is named your build script) from the directory of the affected packages. This requires you to know in which order they'll have to be called, but is generally the safest option.

    +

    You can manually run yarn run postinstall (or whatever is named your build script) from the directory of the affected packages. This requires you to know in which order they'll have to be called, but is generally the safest option.

  • You can simply abstain from using build scripts with soft links. While this suggestion might seem like a bad case of "fix a problem by not encountering the problem", consider that build scripts in development might not be of the best effect from a developer experience perspective - they usually mean that you'll need to run a script before being able to see your changes, which is often not what you seek.

-

YN0007 - MUST_BUILD

+

YN0007 - MUST_BUILD

A package must be built.

This informational message occurs when Yarn wishes to let you know that a package will need to be built in order for the installation to complete. This usually occurs in only two cases: either the package never has been built before, or its previous build failed (returned a non-zero exit code).

-

YN0008 - MUST_REBUILD

+

YN0008 - MUST_REBUILD

A package must be rebuilt.

-

This information message occurs when Yarn wishes to let you know that a package will need to be rebuilt in order for the installation to complete. This usually occurs in a single case: when the package's dependency tree has changed. Note that this also include its transitive dependencies, which sometimes may cause surprising rebuilds (for example, if A depends on B that depends on C@1, and if Yarn decides for some reason that C should be bumped to C@2, then A will need to be rebuilt).

-

YN0009 - BUILD_FAILED

+

This information message occurs when Yarn wishes to let you know that a package will need to be rebuilt in order for the installation to complete. This usually occurs in a single case: when the package's dependency tree has changed. Note that this also include its transitive dependencies, which sometimes may cause surprising rebuilds (for example, if A depends on B that depends on C@1, and if Yarn decides for some reason that C should be bumped to C@2, then A will need to be rebuilt).

+

YN0009 - BUILD_FAILED

A package build failed.

This problem typically doesn't come from Yarn itself, and simply means that a package described as having build directives couldn't get built successfully.

To see the actual error message, read the file linked in the report. It will contain the full output of the failing script.

-

YN0010 - RESOLVER_NOT_FOUND

+

YN0010 - RESOLVER_NOT_FOUND

A resolver cannot be found for the given package.

-

Resolvers are the components tasked from converting ranges (^1.0.0) into references (1.2.3). They each contain their own logic to do so - the semver resolver is the most famous one but far from being the only one. The GitHub resolver transforms GitHub repositories into tarball urls, the Git resolver normalizes the paths sent to git, ... each resolver takes care of a different resolution strategy. A missing resolver means that one of those strategies is missing.

+

Resolvers are the components tasked from converting ranges (^1.0.0) into references (1.2.3). They each contain their own logic to do so - the semver resolver is the most famous one but far from being the only one. The GitHub resolver transforms GitHub repositories into tarball urls, the Git resolver normalizes the paths sent to git, ... each resolver takes care of a different resolution strategy. A missing resolver means that one of those strategies is missing.

This error is usually caused by a Yarn plugin being missing.

-

YN0011 - FETCHER_NOT_FOUND

+

YN0011 - FETCHER_NOT_FOUND

A fetcher cannot be found for the given package.

Fetchers are the components that take references and fetch the source code from the remote location. A semver fetcher would likely fetch the packages from some registry, while a workspace fetcher would simply redirect to the location on the disk where the sources can be found.

This error is usually caused by a Yarn plugin being missing.

-

YN0012 - LINKER_NOT_FOUND

+

YN0012 - LINKER_NOT_FOUND

A linker cannot be found for the given package.

Linkers are the components tasked from extracting the sources from the artifacts returned by the fetchers and putting them on the disk in a manner that can be understood by the target environment. The Node linker would use the Plug'n'Play strategy, while a PHP linker would use an autoload strategy instead.

This error is usually caused by a Yarn plugin being missing.

-

YN0013 - FETCH_NOT_CACHED

+

YN0013 - FETCH_NOT_CACHED

A package cannot be found in the cache for the given package and will be fetched from its remote location.

When a package is downloaded from whatever its remote location is, Yarn stores it in a specific folder called then cache. Then, the next time this package was to be downloaded, Yarn simply check this directory and use the stored package if available. This message simply means that the package couldn't be found there. It's not a huge issue, but you probably should try to limit it as much as possible - for example by using Zero-Installs.

-

YN0014 - YARN_IMPORT_FAILED

+

YN0014 - YARN_IMPORT_FAILED

A lockfile couldn't be properly imported from a v1 lockfile.

The v2 release contains major changes in the way Yarn is design, and the lockfile format is one of them. In some rare cases, the data contained in the v1 lockfile aren't compatible with the ones we stored within the v2 files. When it happens, Yarn will emit this warning and resolve the package descriptor again. Only this package will be affected; all others will continue to be imported as expected.

-

YN0015 - REMOTE_INVALID

+

YN0015 - REMOTE_INVALID

The remote source returned invalid data.

This error is thrown by the resolvers and fetchers when the remote sources they communicate with return values that aren't consistent with what we would expect (for example because they are missing fields).

-

YN0016 - REMOTE_NOT_FOUND

+

YN0016 - REMOTE_NOT_FOUND

The remote source returned valid data, but told us the package couldn't be found.

This error is thrown by the resolvers and fetchers when the remote sources they communicate with inform them that the package against which have been made the request doesn't exist. This might happen if the package has been unpublished, and there's usually nothing Yarn can do.

-

YN0017 - RESOLUTION_PACK

+

YN0017 - RESOLUTION_PACK

This error code isn't used at the moment (it used to print the number of packages that took part in each pass of the resolution algorithm, but was deemed too verbose compared to its usefulness).

-

YN0018 - CACHE_CHECKSUM_MISMATCH

+

YN0018 - CACHE_CHECKSUM_MISMATCH

The checksum of a package from the cache doesn't match what the lockfile expects.

This situation usually happens after you've modified the zip archives from your cache by editing the files it contains for debug purposes. Use one of the two following commands in order to bypass it:

    -
  • YARN_CHECKSUM_BEHAVIOR=reset will remove the files from the cache and download them again
  • -
  • YARN_CHECKSUM_BEHAVIOR=update will update the lockfile to contain the new checksum
  • -
  • YARN_CHECKSUM_BEHAVIOR=ignore will use the existing files but won't update the lockfile
  • +
  • YARN_CHECKSUM_BEHAVIOR=reset will remove the files from the cache and download them again
  • +
  • YARN_CHECKSUM_BEHAVIOR=update will update the lockfile to contain the new checksum
  • +
  • YARN_CHECKSUM_BEHAVIOR=ignore will use the existing files but won't update the lockfile
-

YN0019 - UNUSED_CACHE_ENTRY

-

A file from the cache has been detected unused by yarn cache clean.

-

After removing or upgrading a dependency you'll find that Yarn won't automatically remove the now obsolete files from your cache (this is because your cache might be shared by multiple projects, and in order to keep the history less messy). Running yarn cache clean will cause Yarn to try to figure out which packages from the cache aren't referenced by the current lockfile.

-

YN0020 - MISSING_LOCKFILE_ENTRY

+

YN0019 - UNUSED_CACHE_ENTRY

+

A file from the cache has been detected unused by yarn cache clean.

+

After removing or upgrading a dependency you'll find that Yarn won't automatically remove the now obsolete files from your cache (this is because your cache might be shared by multiple projects, and in order to keep the history less messy). Running yarn cache clean will cause Yarn to try to figure out which packages from the cache aren't referenced by the current lockfile.

+

YN0020 - MISSING_LOCKFILE_ENTRY

A package descriptor cannot be found in the lockfile.

-

A lot of commands (for example yarn run) require the lockfile to be in a state consistent with the current project in order to behave properly. This error will be generated when Yarn detects that your project references a package that isn't listed within the lockfile (usually because you modified a dependencies field without running yarn install, or because you added a new workspace). Running yarn install will almost certainly fix this particular error.

-

YN0021 - WORKSPACE_NOT_FOUND

-

A dependency uses a workspace: range that cannot be resolved to an existing workspace.

-

The workspace: protocol is a new feature that appeared in Yarn v2 that allows to target a specific workspace of the current project without risking to ever pull data from other sources in case the workspace doesn't exist. This error precisely means that the workspace doesn't exist for the reason described in the error message.

-

YN0022 - TOO_MANY_MATCHING_WORKSPACES

+

A lot of commands (for example yarn run) require the lockfile to be in a state consistent with the current project in order to behave properly. This error will be generated when Yarn detects that your project references a package that isn't listed within the lockfile (usually because you modified a dependencies field without running yarn install, or because you added a new workspace). Running yarn install will almost certainly fix this particular error.

+

YN0021 - WORKSPACE_NOT_FOUND

+

A dependency uses a workspace: range that cannot be resolved to an existing workspace.

+

The workspace: protocol is a new feature that appeared in Yarn v2 that allows to target a specific workspace of the current project without risking to ever pull data from other sources in case the workspace doesn't exist. This error precisely means that the workspace doesn't exist for the reason described in the error message.

+

YN0022 - TOO_MANY_MATCHING_WORKSPACES

This error should be considered obsolete and not exist; open an issue if you have it.

-

YN0023 - CONSTRAINTS_MISSING_DEPENDENCY

+

YN0023 - CONSTRAINTS_MISSING_DEPENDENCY

One of your workspaces should depend on a dependency but doesn't.

-

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

-

YN0024 - CONSTRAINTS_INCOMPATIBLE_DEPENDENCY

+

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

+

YN0024 - CONSTRAINTS_INCOMPATIBLE_DEPENDENCY

One of your workspaces should depend on a specific version of a dependency but doesn't.

-

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

-

YN0025 - CONSTRAINTS_EXTRANEOUS_DEPENDENCY

+

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

+

YN0025 - CONSTRAINTS_EXTRANEOUS_DEPENDENCY

One of your workspaces shouldn't depend on one of the dependencies it lists.

-

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

-

YN0026 - CONSTRAINTS_INVALID_DEPENDENCY

+

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

+

YN0026 - CONSTRAINTS_INVALID_DEPENDENCY

One of your workspaces lists an invalid dependency.

-

A constraint has been put into effect that declares that the specified workspace probably shouldn't depend on the specified dependency in its current state. Since it currently does, Yarn emits this error when running yarn constraints check. Fixing this error require manual intervention as the fix is ambiguous from Yarn's point of view.

-

YN0027 - CANT_SUGGEST_RESOLUTIONS

+

A constraint has been put into effect that declares that the specified workspace probably shouldn't depend on the specified dependency in its current state. Since it currently does, Yarn emits this error when running yarn constraints check. Fixing this error require manual intervention as the fix is ambiguous from Yarn's point of view.

+

YN0027 - CANT_SUGGEST_RESOLUTIONS

Yarn cannot figure out proper range suggestions for the packages you're adding to your project.

-

When running yarn add without adding explicit ranges to the packages to add, Yarn will try to find versions that match your intent. Generally it means that it will prefer project workspaces and, if it cannot find any, will instead try to query the npm registry for the list of published releases and use whatever is the highest one. This error means that this process failed and Yarn cannot successfully figure out which version of the package should be added to your project.

-

YN0028 - FROZEN_LOCKFILE_EXCEPTION

+

When running yarn add without adding explicit ranges to the packages to add, Yarn will try to find versions that match your intent. Generally it means that it will prefer project workspaces and, if it cannot find any, will instead try to query the npm registry for the list of published releases and use whatever is the highest one. This error means that this process failed and Yarn cannot successfully figure out which version of the package should be added to your project.

+

YN0028 - FROZEN_LOCKFILE_EXCEPTION

Your lockfile would be modified if Yarn was to finish the install.

-

When passing the --frozen-lockfile option to yarn install, Yarn will ensure that the lockfile isn't modified in the process and will instead throw an exception if this situation was to happen (for example if a newly added package was missing from the lockfile, or if the current Yarn release required some kind of migration before being able to work with the lockfile).

-

This option is typically meant to be used on your CI and production servers, and fixing this error should simply be a matter of running yarn install on your local development environment and submitting a PR containing the updated lockfile.

-

YN0029 - CROSS_DRIVE_VIRTUAL_LOCAL

+

When passing the --frozen-lockfile option to yarn install, Yarn will ensure that the lockfile isn't modified in the process and will instead throw an exception if this situation was to happen (for example if a newly added package was missing from the lockfile, or if the current Yarn release required some kind of migration before being able to work with the lockfile).

+

This option is typically meant to be used on your CI and production servers, and fixing this error should simply be a matter of running yarn install on your local development environment and submitting a PR containing the updated lockfile.

+

YN0029 - CROSS_DRIVE_VIRTUAL_LOCAL

The virtual package folder is located on a different disk than files referenced by your project.

-

For technical reasons, and only on Windows, the virtual package folder (defined through the virtualFolder settings) usually cannot be set on a different drive than the files it references (which can potentially come from a whole variety of locations through the use of the portal: protocol, but usually come from either your cache and/or your project).

-

To fix this, either move the virtual package folder to the same drive as the rest of your data or use the hidden enableAbsoluteVirtuals settings (this settings is hidden because it will cause Yarn to use absolute symlinks when generating the virtual links, which are likely to cause portability issues across systems and machines).

-

YN0030 - FETCH_FAILED

+

For technical reasons, and only on Windows, the virtual package folder (defined through the virtualFolder settings) usually cannot be set on a different drive than the files it references (which can potentially come from a whole variety of locations through the use of the portal: protocol, but usually come from either your cache and/or your project).

+

To fix this, either move the virtual package folder to the same drive as the rest of your data or use the hidden enableAbsoluteVirtuals settings (this settings is hidden because it will cause Yarn to use absolute symlinks when generating the virtual links, which are likely to cause portability issues across systems and machines).

+

YN0030 - FETCH_FAILED

This error code isn't used at the moment; we ideally want to explain why did the fetch fail rather than .

-

YN0031 - DANGEROUS_NODE_MODULES

-

Yarn is installing packages using Plug'n'Play, but a node_modules folder has been found.

-

This warning is emitted when your project is detected as containing node_modules folders that actually seem to contain packages. This is not advised as they're likely relicates of whatever package manager you used before, and might confuse your tools and lead you into "works on my machine" situations.

-

YN0032 - NODE_GYP_INJECTED

-

In some situation Yarn might detect that node-gyp is required by a package without this package explicitly listing the dependency. This behavior is there for legacy reason and should not be relied upon for the following reasons:

+

YN0031 - DANGEROUS_NODE_MODULES

+

Yarn is installing packages using Plug'n'Play, but a node_modules folder has been found.

+

This warning is emitted when your project is detected as containing node_modules folders that actually seem to contain packages. This is not advised as they're likely relicts of whatever package manager you used before, and might confuse your tools and lead you into "works on my machine" situations.

+

YN0032 - NODE_GYP_INJECTED

+

In some situation Yarn might detect that node-gyp is required by a package without this package explicitly listing the dependency. This behavior is there for legacy reason and should not be relied upon for the following reasons:

  • -

    The main way to detect whether node-gyp is implicitly required is to check whether the package contains a bindings.gyp file. However, doing this check implies that the package listing is known at the time Yarn resolves the dependency tree. This would require to fetch all npm archives as part of the resolution step (rather than wait until the dedicated fetch step), and all that just for the sake of this problematic feature.

    +

    The main way to detect whether node-gyp is implicitly required is to check whether the package contains a bindings.gyp file. However, doing this check implies that the package listing is known at the time Yarn resolves the dependency tree. This would require to fetch all npm archives as part of the resolution step (rather than wait until the dedicated fetch step), and all that just for the sake of this problematic feature.

  • -

    Implicit dependencies on node-gyp don't provide any hint to the package manager as to which versions of node-gyp are compatible with the package being built. Yarn does its best by adding an implicit dependency on npm:*, but it might be wrong and we'll have no way to know it - your installs will just crash unexpectedly when compiled with incompatible versions.

    +

    Implicit dependencies on node-gyp don't provide any hint to the package manager as to which versions of node-gyp are compatible with the package being built. Yarn does its best by adding an implicit dependency on npm:*, but it might be wrong and we'll have no way to know it - your installs will just crash unexpectedly when compiled with incompatible versions.

-

Packages omitting node-gyp usually do so in order to decrease the amount of packages in the final dependency tree when building the package isn't required (prebuilt binaries). While a reasonable wish, doing this goes against the package manager rules and we would prefer to solve this through a dedicated feature rather than through such hacks. In the meantime we strongly recommend to consider prebuilding native dependencies via WebAssembly if possible - then the node-gyp problem completely disappears.

\ No newline at end of file +

Packages omitting node-gyp usually do so in order to decrease the amount of packages in the final dependency tree when building the package isn't required (prebuilt binaries). While a reasonable wish, doing this goes against the package manager rules and we would prefer to solve this through a dedicated feature rather than through such hacks. In the meantime we strongly recommend to consider prebuilding native dependencies via WebAssembly if possible - then the node-gyp problem completely disappears.

\ No newline at end of file diff --git a/docs/advanced/lexicon/index.html b/docs/advanced/lexicon/index.html index 167eb58b31dd..76491e0a513b 100644 --- a/docs/advanced/lexicon/index.html +++ b/docs/advanced/lexicon/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Lexicon

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Lexicon

Descriptor

-

A descriptor is a combination of a package name (for example lodash) and a package range (for example ^1.0.0). Descriptors are used to identify a set of packages rather than one unique package.

+

A descriptor is a combination of a package name (for example lodash) and a package range (for example ^1.0.0). Descriptors are used to identify a set of packages rather than one unique package.

Fetcher

Fetchers are the components tasked from extracting the full package data from a reference. For example, the npm fetcher would download the package tarballs from the npm registry.

See also: Architecture

Linker

-

Linkers are the components that consume both a dependency tree and a store of package data, and generate in return disk artifacts specific to the environment they target. For example, the Plug'n'Play linker generates a single .pnp.js file.

+

Linkers are the components that consume both a dependency tree and a store of package data, and generate in return disk artifacts specific to the environment they target. For example, the Plug'n'Play linker generates a single .pnp.js file.

See also: Architecture

Locator

-

A locator is a combination of a package name (for example lodash) and a package reference (for example 1.2.3). Locators are used to identify a single unique package (interestingly, all valid locators also are valid descriptors).

+

A locator is a combination of a package name (for example lodash) and a package reference (for example 1.2.3). Locators are used to identify a single unique package (interestingly, all valid locators also are valid descriptors).

Manifest

-

A manifest is a package.json file.

+

A manifest is a package.json file.

Plugin

Plugins are a new concept introduced in Yarn 2+. Through the use of plugins Yarn can be extended and made even more powerful - whether it's through the addition of new resolvers, fetchers, or linkers.

See also: Plugins

Plug'n'Play

-

Plug'n'Play is an alternative installation strategy that, instead of generating the typical node_modules directories, generate one single file that is then injected into Node to let it know where to find the installed packages. Starting from the v2, Plug'n'Play became the default strategy for Javascript projects.

+

Plug'n'Play is an alternative installation strategy that, instead of generating the typical node_modules directories, generate one single file that is then injected into Node to let it know where to find the installed packages. Starting from the v2, Plug'n'Play became the default strategy for Javascript projects.

See also: Plug'n'Play

PnP

See Plug'n'Play

@@ -74,7 +74,7 @@

Scope

-

Scopes are a term linked inherited from the npm registry; they are used to describe a set of packages that all belong to the same entity. For example, all the Yarn packages related to the v2 belong to the berry scope on the npm registry. Scopes are traditionally prefixed with the @ symbol.

+

Scopes are a term linked inherited from the npm registry; they are used to describe a set of packages that all belong to the same entity. For example, all the Yarn packages related to the v2 belong to the berry scope on the npm registry. Scopes are traditionally prefixed with the @ symbol.

Yarn

Yarn is a command line tool used to manage programming environments. Written in Javascript, it is mostly used along with others Javascript projects, but has capabilities that make it suitable to be used in various situations.

Workspace

@@ -85,4 +85,4 @@

Workspaces

Zero-Install

-

See also: Zero-Install

\ No newline at end of file +

See also: Zero-Install

\ No newline at end of file diff --git a/docs/advanced/migration/index.html b/docs/advanced/migration/index.html index 86605b4e55c3..4f9a3dbf7588 100644 --- a/docs/advanced/migration/index.html +++ b/docs/advanced/migration/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Migration

Yarn v2 is a very different software from the v1. While one of our aim is to make the transition as easy as possible, some behaviors needed to be tweaked. To make things easier we've documented the most common problems that may arise when porting from one project to the other, along with suggestions to keep moving forward.

-

A package is trying to access another package

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Migration

Yarn v2 is a very different software from the v1. While one of our aim is to make the transition as easy as possible, some behaviors needed to be tweaked. To make things easier we've documented the most common problems that may arise when porting from one project to the other, along with suggestions to keep moving forward.

+

A package is trying to access another package

A package is trying to access another package without the second one being listed as a dependency of the first one

Some packages don't properly list their actual dependencies for a reason or another. Now that we've fully switched to Plug'n'Play and actually enforce dependency visibility, this might become more apparent than it previously was, and this error might start to appear.

-

The long term fix is of course to submit a pull request upstream to add the missing dependency to the package listing. Given that it sometimes might take sometime before they get merged, we also have a more short-term fix available: open your yarn.lock file, locate the entry for the faulty package, manually add a new dependencies entry with the missing dependency, then run yarn install to apply your changes.

+

The long term fix is of course to submit a pull request upstream to add the missing dependency to the package listing. Given that it sometimes might take sometime before they get merged, we also have a more short-term fix available: open your yarn.lock file, locate the entry for the faulty package, manually add a new dependencies entry with the missing dependency, then run yarn install to apply your changes.

Note that the short-term fix isn't meant to be long-term: you'll need to reapply it each time the package version changes and its metadata are downloaded from the registry again.

Yarnrc file detection

The Yarnrc files mechanisms have been changed and simplified. In particular:

  • -

    Yarn doesn't use the configuration from your .npmrc files anymore; we instead read all of our configuration from the .yarnrc files whose available settings can be found in our documentation.

    +

    Yarn doesn't use the configuration from your .npmrc files anymore; we instead read all of our configuration from the .yarnrc files whose available settings can be found in our documentation.

  • -

    All environment variables prefixed with YARN_ are automatically used to override the matching configuration settings. So for example, adding YARN_NPM_REGISTRY_SERVER into your environment will change the value of npmRegistryServer.

    +

    All environment variables prefixed with YARN_ are automatically used to override the matching configuration settings. So for example, adding YARN_NPM_REGISTRY_SERVER into your environment will change the value of npmRegistryServer.

Yarnrc settings

The settings available in the yarnrc file have changed. Using old, unsupported settings will cause Yarn to throw an exception at boot time unless properly guarded.

We recommend you to make sure you only use modern settings if possible. In case a particular feature you relied on in the v1 is missing in the v2, feel free to open an issue on our repository to discuss whether we should add it back.

-

If you absolutely need to keep in your file hierarchy both v1 and v2 settings, you can use the special field named berry. Should Yarn v2+ find this field, it will use its content and ignore any other field. For example, the following file will work as expected on both the v1 and v2+ releases:

-
# v1 settings
-workspaces-experimental true
+

If you absolutely need to keep in your file hierarchy both v1 and v2 settings, you can use the special field named berry. Should Yarn v2+ find this field, it will use its content and ignore any other field. For example, the following file will work as expected on both the v1 and v2+ releases:

+
# v1 settings
+workspaces-experimental true
 
-berry:
-  # v2 settings
-  enable-global-cache true
-
+berry: + # v2 settings + enable-global-cache true

Plug'n'Play

Starting from the v2, Plug'n'Play is enabled by default. This might cause compatibility issues in a few corner cases for projects that kept relying on unsafe patterns. Keep an eye on the dedicated page, and try to avoid those projects until they correct the situation. Also feel free to open an issue on Yarn's repository as well so that we can keep track of them and offer our help.

TypeScript

-

If you're using TypeScript and particularly the tsc binary, read on the /advanced/pnpify page to learn more about a way to transparently make tsc compatible with Plug'n'Play. We actually use it on the Yarn repository itself!

\ No newline at end of file +

If you're using TypeScript and particularly the tsc binary, read on the /advanced/pnpify page to learn more about a way to transparently make tsc compatible with Plug'n'Play. We actually use it on the Yarn repository itself!

\ No newline at end of file diff --git a/docs/advanced/peer-dependencies/index.html b/docs/advanced/peer-dependencies/index.html index 176ee584085c..c610601e5bde 100644 --- a/docs/advanced/peer-dependencies/index.html +++ b/docs/advanced/peer-dependencies/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Peer Dependencies

The PnP linker guarantees that each combination of package name / version will only be instantiated once, except in one documented case: if a package has peer dependencies. Such ones will be instantiated once for each time a hard dependency is found in the dependency tree.

-

For example, let's say you have react and react-dom. Since the react package doesn't list any peer dependencies, a same version of react will only ever be instantiated once regardless how many dependent packages list it in their dependencies field. However, because react-dom lists react within its peerDependencies field, Yarn will need to install it in such a way that it will be instantiated exactly once for each package that list it in their dependencies field.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

Peer Dependencies

The PnP linker guarantees that each combination of package name / version will only be instantiated once, except in one documented case: if a package has peer dependencies. Such ones will be instantiated once for each time a hard dependency is found in the dependency tree.

+

For example, let's say you have react and react-dom. Since the react package doesn't list any peer dependencies, a same version of react will only ever be instantiated once regardless how many dependent packages list it in their dependencies field. However, because react-dom lists react within its peerDependencies field, Yarn will need to install it in such a way that it will be instantiated exactly once for each package that list it in their dependencies field.

Why does it work this way?

-

Let's say you have package-a and package-b. Both of them depend on the same package child, which has a peer dependency on peer. Now, imagine that package-a depends on peer@1 while package-b depends on peer@2. In this instance, in order to respect the peer dependency requirement, child will have to be instantiated - it wouldn't be possible otherwise for child to simultaneously use both package-a and package-b.

-

In order to make sure that child will get instatiated twice, we generate what we call "virtual packages". A virtual packages simply is an additional instance of a package, that points to the same location on the disk but will have its own in-memory representation. In order to generate those virtual packages, we need them to give each of them a unique identifier. Now, what information could we use to do this?

-

The first thing you might think of could be something along those lines: "the unique identifier for a virtual package must be based on its set of inherited dependencies". So in our example, since child has two sets of inherited dependencies, it would get two unique identifiers, would be instantiated twice, and everything would work. Additionally, if package-a and package-b happened to depend on the same version of peer then we would only generate one virtual package, which would decrease the tree complexity. Unfortunately, it's not so simple.

-

Problems arise when you consider circular dependencies. Let's imagine a different scenario: package depends on child-a and child-b. The child-a package has a peer dependency on child-b, and child-b has a peer dependency on child-a. In this situation, per the wording described above, we would need to generate the unique identifier for child-a based on the set of its dependencies, which includes child-b. But since the unique identifier for child-b depends on the one from child-a, we cannot do that! The loop cannot be broken this way.

+

Let's say you have package-a and package-b. Both of them depend on the same package child, which has a peer dependency on peer. Now, imagine that package-a depends on peer@1 while package-b depends on peer@2. In this instance, in order to respect the peer dependency requirement, child will have to be instantiated - it wouldn't be possible otherwise for child to simultaneously use both package-a and package-b.

+

In order to make sure that child will get instantiated twice, we generate what we call "virtual packages". A virtual packages simply is an additional instance of a package, that points to the same location on the disk but will have its own in-memory representation. In order to generate those virtual packages, we need them to give each of them a unique identifier. Now, what information could we use to do this?

+

The first thing you might think of could be something along those lines: "the unique identifier for a virtual package must be based on its set of inherited dependencies". So in our example, since child has two sets of inherited dependencies, it would get two unique identifiers, would be instantiated twice, and everything would work. Additionally, if package-a and package-b happened to depend on the same version of peer then we would only generate one virtual package, which would decrease the tree complexity. Unfortunately, it's not so simple.

+

Problems arise when you consider circular dependencies. Let's imagine a different scenario: package depends on child-a and child-b. The child-a package has a peer dependency on child-b, and child-b has a peer dependency on child-a. In this situation, per the wording described above, we would need to generate the unique identifier for child-a based on the set of its dependencies, which includes child-b. But since the unique identifier for child-b depends on the one from child-a, we cannot do that! The loop cannot be broken this way.

The solution to this issue is to say that the unique identifier for a package with peer dependencies is based on the unique identifier of its direct parent. Since a package unique identifier is always computed before its children (which also happens to be the reason why peer dependencies must be explicitly listed at every level of the dependency hierarchy), we cannot have a cyclic dependency.

How to prevent multiple instantiation?

-

In some cases you really don't want a package to be instantiated twice. It can be because you're using instanceof on user-provided objects (which would break for similar objects from different instances), or because your code has side effects (for example by having a singleton).

+

In some cases you really don't want a package to be instantiated twice. It can be because you're using instanceof on user-provided objects (which would break for similar objects from different instances), or because your code has side effects (for example by having a singleton).

In general we simply discourage the use of these patterns. They are quite dangerous, and it's hard to know for sure whether your package will really be instantiated once (while Yarn can make such guarantees, other package managers might not). Still, it might also be difficult to change immediatly, so you have a few tools at your disposal:

\ No newline at end of file diff --git a/docs/advanced/pnpify/index.html b/docs/advanced/pnpify/index.html index fdb2b8c352b7..876105f02731 100644 --- a/docs/advanced/pnpify/index.html +++ b/docs/advanced/pnpify/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnpify

Pnpify

Motivation

-

Plug'n'Play is, by design, compatible with all projects that only make use of the require API - whether it's require require.resolve, or createRequireFromPath. However, some projects like to reimplement the resolution themselves and aren't compatible by default with Plug'n'Play environments (unless they add some specific logic into their resolution). One such project is for example TypeScript, which doesn't natively supports Plug'n'Play yet in its tsc binary.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ArchitectureContributingError CodesLexiconMigrationPeer DependenciesPnPify

PnPify

Motivation

+

Plug'n'Play is, by design, compatible with all projects that only make use of the require API - whether it's require, require.resolve, or createRequireFromPath. However, some projects like to reimplement the resolution themselves and aren't compatible by default with our environment (unless they add some specific lines into their resolution logic). One such project is for example TypeScript, which doesn't natively supports Plug'n'Play in its tsc binary at the time of this writing (#28289).

PnPify

-

PnPify is a tool designed to workaround this compatibility problem. It's not a perfect solution in that it brings its own set of caveats, but it's often good enough for most use cases. How it works is simple: when a non-PnP compliant project tries to access the node_modules directories (for example through readdir or readFile), PnPify intercepts those calls and converts them into calls to the PnP API. Then, based on the result, it simulates an actual filesystem for the underlying tool to use.

+

PnPify is a tool designed to workaround these compatibility issues. It's not perfect in that it brings its own set of caveats and doesn't allow you to leverage all the features that PnP has to offer, but it's often good enough to unblock you until better solutions are implemented.

+

How it works is simple: when a non-PnP-compliant project tries to access the node_modules directories (for example through readdir or readFile), PnPify intercepts those calls and converts them into calls to the PnP API. Then, based on the result, it simulates an actual filesystem for the underlying tool to use.

Usage

+
    +
  1. Add PnPify to your dependencies:

    -
    $> yarn add @berry/pnpify
    -
    +
    $> yarn add @berry/pnpify
    +
  2. +
  3. Use pnpify to run the incompatible tool:

    -
    $> yarn pnpify tsc
    -
    -

    That's all!

    +
    $> yarn pnpify tsc
    +
  4. +
+

VSCode Support

+

PnPify also is compatible with VSCode! Follow those steps to enable it:

+
    +
  1. +

    Add PnPify to your dependencies:

    +
    $> yarn add @berry/pnpify
    +
  2. +
  3. +

    Run the following command, which will generate a new directory called tssdk:

    +
    $> yarn pnpify --sdk
    +
  4. +
  5. +

    For safety reason VSCode requires you to explicitly activate the custom TS settings:

    +
      +
    1. Press ctrl+shift+p in a TypeScript file
    2. +
    3. Choose "Select TypeScript Version"
    4. +
    5. Pick "Use Workspace Version"
    6. +
    +
  6. +
+

Your VSCode project is now configured to use the exact same version of TypeScript as the one you usually use, except that it will now be able to properly resolve the type definitions!

+

Note that VSCode might ask you to do Step 4 again from time to time, but apart from that your experience should be the same as usual. Happy development!

Caveat

-

Because PnPify doesn't try to do any kind of hoisting, relying exclusively on its fake filesystem might lead to subtle performance issues where, amongst other issues, one package would be instantiated more times than would be needed otherwise. This is only a problem for bundlers like Webpack; tools like tsc don't suffer from it, because they only need to know about the structural file content and don't actually instantiate the files.

-

If you want to use PnP with a bundler that doesn't natively support it, we currently recommend you to use the dedicated plugins that we've provided: pnp-webpack-plugin for Webpack, or rollup-pnp-resolver for Rollup. Those plugins use the PnP API as it is, and thus don't suffer from this optimization problem.

\ No newline at end of file +
    +
  • +

    Due to how PnPify emulates the node_modules directory, some problems are to be expected with packages listing peer dependencies.

    +
  • +
  • +

    Since the files don't actually exist on the disk, it will mess with watch mechanisms (modifications in files from your project will be properly picked up, but dependencies being added or removed might not be picked up by the engine). We're considering adding support for fs.watchFile even for dependencies, but it will require significant work.

    +
  • +
+

Alternatives

+
\ No newline at end of file diff --git a/docs/app-32972a8af6f4c1380030.js b/docs/app-32972a8af6f4c1380030.js new file mode 100644 index 000000000000..f87f37b370ac --- /dev/null +++ b/docs/app-32972a8af6f4c1380030.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],[function(e,t,n){"use strict";e.exports=n(92)},function(e,t,n){e.exports=n(110)()},function(e,t,n){"use strict";n.r(t);n(120),n(121),n(53),n(124),n(84),n(61),n(134),n(43),n(36),n(135);var r=n(25),o={},i=n(12),a=function(e){if("undefined"==typeof document)return!1;var t=document.createElement("link");try{if(t.relList&&"function"==typeof t.relList.supports)return t.relList.supports(e)}catch(n){return!1}return!1}("prefetch")?function(e){return new Promise(function(t,n){if("undefined"!=typeof document){var r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=t,r.onerror=n,(document.getElementsByTagName("head")[0]||document.getElementsByName("script")[0].parentNode).appendChild(r)}else n()})}:function(e){return new Promise(function(t,n){var r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=function(){200===r.status?t():n()},r.send(null)})},l={},u=function(e){return new Promise(function(t){l[e]?t():a(e).then(function(){t(),l[e]=!0}).catch(function(){})})};n.d(t,"postInitialRenderWork",function(){return M}),n.d(t,"setApiRunnerForLoader",function(){return I}),n.d(t,"publicLoader",function(){return U});var c,s=function(e){return e&&e.default||e},f=!0,d=Object.create(null),p={},h={},v=[],m=null,g=!1,y=!1,b={},w={};var x,_=function(){return m||(m=new Promise(function(e){p.data().then(function(t){var n=t.pages,r=t.dataPaths;window.___dataPaths=r,L.addPagesArray(n),L.addDataPaths(r),y=!0,e(g=!0)}).catch(function(t){console.warn("Failed to fetch pages manifest. Gatsby will reload on next navigation."),e(g=!0)})})),m},k=function(e){return"/berry/static/d/"+e+".json"},S=function(e){return window.___chunkMapping[e].map(function(e){return"/berry"+e})},T=function(e){if("component---"===e.slice(0,12))return Promise.all(S(e).map(function(e){return u(e)}));var t=k(h[e]);return u(t)},E=function(e){return function(e){var t;return t="component---"===e.slice(0,12)?p.components[e]:e in w?function(){return w[e]}:function(){var t=new Promise(function(t,n){var r=k(h[e]),o=new XMLHttpRequest;o.open("GET",r,!0),o.withCredentials=!0,o.onreadystatechange=function(){4==o.readyState&&(200===o.status?t(JSON.parse(o.responseText)):(delete w[e],n()))},o.send(null)});return w[e]=t,t},d[e]=!0,new Promise(function(n){var r=t(),o=!1;return r.catch(function(){o=!0}).then(function(t){v.push({resource:e,succeeded:!o}),v=v.slice(-5),n(t)})})}(e).then(s)},C=function(e,t){var n;b[e]||(b[e]=t),("boolean"==typeof(n=navigator.onLine)?n:v.find(function(e){return e.succeeded}))&&window.location.pathname.replace(/\/$/g,"")!==e.replace(/\/$/g,"")&&(window.location.pathname=e)},P=function(e){A[e]||(c("onPostPrefetchPathname",{pathname:e}),A[e]=!0)},R=function(e){return(y||f)&&"/404.html"!==e},O={},j={},A={},N=!1,L={addPagesArray:function(e){var t,n;t=e,void 0===(n="/berry")&&(n=""),x=function(e){var i,a,l,u=decodeURIComponent(e),c=(void 0===(a=n)&&(a=""),(i=u).substr(0,a.length)===a?i.slice(a.length):i);return c.split("#").length>1&&(c=c.split("#").slice(0,-1).join("")),c.split("?").length>1&&(c=c.split("?").slice(0,-1).join("")),o[c]?o[c]:(t.some(function(e){var t=e.matchPath?e.matchPath:e.path;return Object(r.match)(t,c)?(l=e,o[c]=e,!0):!!Object(r.match)(e.path+"index.html",c)&&(l=e,o[c]=e,!0)}),l)}},addDevRequires:function(e){e},addProdRequires:function(e){p=e},addDataPaths:function(e){h=e},hovering:function(e){L.getResourcesForPathname(e)},enqueue:function(e){if(c||console.error("Run setApiRunnerForLoader() before enqueing paths"),"connection"in navigator){if((navigator.connection.effectiveType||"").includes("2g"))return!1;if(navigator.connection.saveData)return!1}var t;if(j[t=e]||(c("onPrefetchPathname",{pathname:t}),j[t]=!0),N.some(function(e){return e}))return!1;var n=x(e);return n||g?!!n&&(Promise.all([T(n.jsonName),T(n.componentChunkName)]).then(function(){P(e)}),!0):_().then(function(){return L.enqueue(e)})},getPage:function(e){return x(e)},getResourceURLsForPathname:function(e){var t=x(e);return t?[].concat(S(t.componentChunkName),[k(h[t.jsonName])]):null},getResourcesForPathnameSync:function(e){var t=x(e);return t?O[t.path]:R(e)?L.getResourcesForPathnameSync("/404.html"):null},getResourcesForPathname:function(e){return new Promise(function(t,n){if(b[e])return C(e,'Previously detected load failure for "'+e+'"'),void n();var r=x(e);if(r||g){if(!r)return R(e)?(console.log("A page wasn't found for \""+e+'"'),void t(L.getResourcesForPathname("/404.html"))):void t();if(e=r.path,O[e])return i.a.emit("onPostLoadPageResources",{page:r,pageResources:O[e]}),void t(O[e]);i.a.emit("onPreLoadPageResources",{path:e}),Promise.all([E(r.componentChunkName),E(r.jsonName)]).then(function(n){var o=n[0],a=n[1];if(o&&a){var l={component:o,json:a,page:r};l.page.jsonURL=k(h[r.jsonName]),O[e]=l,t(l),i.a.emit("onPostLoadPageResources",{page:r,pageResources:l}),P(e)}else t(null)})}else _().then(function(){return t(L.getResourcesForPathname(e))})})}},M=function(){f=!1,_()},I=function(e){N=(c=e)("disableCorePrefetching")},U={getResourcesForPathname:L.getResourcesForPathname,getResourceURLsForPathname:L.getResourceURLsForPathname,getResourcesForPathnameSync:L.getResourcesForPathnameSync};t.default=L},function(e,t,n){n(43),n(36);var r=n(107),o=n(2).publicLoader,i=o.getResourcesForPathname,a=o.getResourcesForPathnameSync,l=o.getResourceURLsForPathname;t.apiRunner=function(e,t,n,o){void 0===t&&(t={});var u=r.map(function(n){if(n.plugin[e]){t.getResourcesForPathnameSync=a,t.getResourcesForPathname=i,t.getResourceURLsForPathname=l;var r=n.plugin[e](t,n.options);return r&&o&&(t=o({args:t,result:r,plugin:n})),r}});return(u=u.filter(function(e){return void 0!==e})).length>0?u:n?[n]:[]},t.apiRunnerAsync=function(e,t,n){return r.reduce(function(n,r){return r.plugin[e]?n.then(function(){return r.plugin[e](t,r.options)}):n},Promise.resolve())}},function(e,t,n){var r=n(63)("wks"),o=n(39),i=n(6).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(14);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){"use strict";var r=n(9);t.__esModule=!0,t.withPrefix=p,t.withAssetPrefix=function(e){return["/berry"].concat([e.replace(/^\//,"")]).join("/")},t.navigateTo=t.replace=t.push=t.navigate=t.default=void 0;var o=r(n(112)),i=r(n(37)),a=r(n(10)),l=r(n(45)),u=r(n(46)),c=r(n(1)),s=r(n(0)),f=n(19),d=n(113);function p(e){return function(e){return e.replace(/\/+/g,"/")}(["/berry",e].join("/"))}t.parsePath=d.parsePath;var h={activeClassName:c.default.string,activeStyle:c.default.object,partiallyActive:c.default.bool},v=function(e){function t(t){var n;n=e.call(this,t)||this,(0,u.default)((0,l.default)((0,l.default)(n)),"defaultGetProps",function(e){var t=e.isPartiallyCurrent,r=e.isCurrent;return(n.props.partiallyActive?t:r)?{className:[n.props.className,n.props.activeClassName].filter(Boolean).join(" "),style:(0,i.default)({},n.props.style,n.props.activeStyle)}:null});var r=!1;return"undefined"!=typeof window&&window.IntersectionObserver&&(r=!0),n.state={IOSupported:r},n.handleRef=n.handleRef.bind((0,l.default)((0,l.default)(n))),n}(0,a.default)(t,e);var n=t.prototype;return n.componentDidUpdate=function(e,t){this.props.to===e.to||this.state.IOSupported||___loader.enqueue((0,d.parsePath)(this.props.to).pathname)},n.componentDidMount=function(){this.state.IOSupported||___loader.enqueue((0,d.parsePath)(this.props.to).pathname)},n.handleRef=function(e){var t,n,r,o=this;this.props.innerRef&&this.props.innerRef.hasOwnProperty("current")?this.props.innerRef.current=e:this.props.innerRef&&this.props.innerRef(e),this.state.IOSupported&&e&&(t=e,n=function(){___loader.enqueue((0,d.parsePath)(o.props.to).pathname)},(r=new window.IntersectionObserver(function(e){e.forEach(function(e){t===e.target&&(e.isIntersecting||e.intersectionRatio>0)&&(r.unobserve(t),r.disconnect(),n())})})).observe(t))},n.render=function(){var e=this,t=this.props,n=t.to,r=t.getProps,a=void 0===r?this.defaultGetProps:r,l=t.onClick,u=t.onMouseEnter,c=(t.activeClassName,t.activeStyle,t.innerRef,t.partiallyActive,t.state),h=t.replace,v=(0,o.default)(t,["to","getProps","onClick","onMouseEnter","activeClassName","activeStyle","innerRef","partiallyActive","state","replace"]);var m=p(n);return s.default.createElement(f.Link,(0,i.default)({to:m,state:c,getProps:a,innerRef:this.handleRef,onMouseEnter:function(e){u&&u(e),___loader.hovering((0,d.parsePath)(n).pathname)},onClick:function(t){return l&&l(t),0!==t.button||e.props.target||t.defaultPrevented||t.metaKey||t.altKey||t.ctrlKey||t.shiftKey||(t.preventDefault(),g(n,{state:c,replace:h})),!0}},v))},t}(s.default.Component);v.propTypes=(0,i.default)({},h,{onClick:c.default.func,to:c.default.string.isRequired,replace:c.default.bool});var m=s.default.forwardRef(function(e,t){return s.default.createElement(v,(0,i.default)({innerRef:t},e))});t.default=m;var g=function(e,t){window.___navigate(p(e),t)};t.navigate=g;var y=function(e){console.warn('The "push" method is now deprecated and will be removed in Gatsby v3. Please use "navigate" instead.'),window.___push(p(e))};t.push=y;t.replace=function(e){console.warn('The "replace" method is now deprecated and will be removed in Gatsby v3. Please use "navigate" instead.'),window.___replace(p(e))};t.navigateTo=function(e){return console.warn('The "navigateTo" method is now deprecated and will be removed in Gatsby v3. Please use "navigate" instead.'),y(e)}},function(e,t,n){"use strict";function r(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(t,"__esModule",{value:!0});var o=n(0),i=r(n(156)),a=n(86),l=n(55),u=n(56),c=r(n(93));var s=o.createContext(i()),f=o.createContext({}),d=s.Provider;t.withEmotionCache=function(e){return o.forwardRef(function(t,n){return o.createElement(s.Consumer,null,function(r){return e(t,r,n)})})};var p="__EMOTION_TYPE_PLEASE_DO_NOT_USE__",h=Object.prototype.hasOwnProperty,v=function(e,t,n,r){var i=t[p],u=[],c="",s=null===n?t.css:t.css(n);"string"==typeof s&&void 0!==e.registered[s]&&(s=e.registered[s]),u.push(s),void 0!==t.className&&(c=a.getRegisteredStyles(e.registered,u,t.className));var f=l.serializeStyles(u);a.insertStyles(e,f,"string"==typeof i);c+=e.key+"-"+f.name;var d={};for(var v in t)h.call(t,v)&&"css"!==v&&v!==p&&(d[v]=t[v]);return d.ref=r,d.className=c,o.createElement(i,d)},m=t.withEmotionCache(function(e,t,n){return"function"==typeof e.css?o.createElement(f.Consumer,null,function(r){return v(t,e,r,n)}):v(t,e,null,n)}),g=t.withEmotionCache(function(e,t){var n=e.styles;if("function"==typeof n)return o.createElement(f.Consumer,null,function(e){var r=l.serializeStyles([n(e)]);return o.createElement(y,{serialized:r,cache:t})});var r=l.serializeStyles([n]);return o.createElement(y,{serialized:r,cache:t})}),y=function(e){var t,n;function r(t,n,r){return e.call(this,t,n,r)||this}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var o=r.prototype;return o.componentDidMount=function(){this.sheet=new u.StyleSheet({key:this.props.cache.key+"-global",nonce:this.props.cache.sheet.nonce,container:this.props.cache.sheet.container});var e=document.querySelector("style[data-emotion-"+this.props.cache.key+'="'+this.props.serialized.name+'"]');null!==e&&this.sheet.tags.push(e),this.props.cache.sheet.tags.length&&(this.sheet.before=this.props.cache.sheet.tags[0]),this.insertStyles()},o.componentDidUpdate=function(e){e.serialized.name!==this.props.serialized.name&&this.insertStyles()},o.insertStyles=function(){if(void 0!==this.props.serialized.next&&a.insertStyles(this.props.cache,this.props.serialized.next,!0),this.sheet.tags.length){var e=this.sheet.tags[this.sheet.tags.length-1].nextElementSibling;this.sheet.before=e,this.sheet.flush()}this.props.cache.insert("",this.props.serialized,this.sheet,!1)},o.componentWillUnmount=function(){this.sheet.flush()},o.render=function(){return null},r}(o.Component);var b=t.withEmotionCache(function(e,t){return o.createElement(f.Consumer,null,function(n){var r=function(){for(var e=arguments.length,n=new Array(e),r=0;r>>0,1)},emit:function(t,n){(e[t]||[]).slice().map(function(e){e(n)}),(e["*"]||[]).slice().map(function(e){e(t,n)})}}}();t.a=r},function(e,t,n){var r=n(6),o=n(22),i=n(15),a=n(17),l=n(23),u=function(e,t,n){var c,s,f,d,p=e&u.F,h=e&u.G,v=e&u.S,m=e&u.P,g=e&u.B,y=h?r:v?r[t]||(r[t]={}):(r[t]||{}).prototype,b=h?o:o[t]||(o[t]={}),w=b.prototype||(b.prototype={});for(c in h&&(n=t),n)f=((s=!p&&y&&void 0!==y[c])?y:n)[c],d=g&&s?l(f,r):m&&"function"==typeof f?l(Function.call,f):f,y&&a(y,c,f,e&u.U),b[c]!=f&&i(b,c,d),m&&w[c]!=f&&(w[c]=f)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,e.exports=u},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(26),o=n(64);e.exports=n(20)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(6),o=n(15),i=n(31),a=n(39)("src"),l=Function.toString,u=(""+l).split("toString");n(22).inspectSource=function(e){return l.call(e)},(e.exports=function(e,t,n,l){var c="function"==typeof n;c&&(i(n,"name")||o(n,"name",t)),e[t]!==n&&(c&&(i(n,a)||o(n,a,e[t]?""+e[t]:u.join(String(t)))),e===r?e[t]=n:l?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[a]||l.call(this)})},function(e,t,n){var r=n(33),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){"use strict";n.r(t);var r=n(0),o=n.n(r),i=(n(62),n(1),n(11)),a=n.n(i),l=n(71),u=n(72),c=function(e,t){return e.substr(0,t.length)===t},s=function(e,t){for(var n=void 0,r=void 0,o=t.split("?")[0],i=g(o),l=""===i[0],u=m(e),c=0,s=u.length;ct.score?-1:e.index-t.index})},g=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},y=function(e,t){return e+(t?"?"+t:"")},b=["uri","path"],w=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},l=a.state,u=a.replace,c=void 0!==u&&u;l=w({},l,{key:Date.now()+""});try{o||c?e.history.replaceState(l,null,t):e.history.pushState(l,null,t)}catch(f){e.location[c?"replace":"assign"](t)}r=x(e),o=!0;var s=new Promise(function(e){return i=e});return n.forEach(function(e){return e({location:r,action:"PUSH"})}),s}}},k=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"/",t=0,n=[{pathname:e,search:""}],r=[];return{get location(){return n[t]},addEventListener:function(e,t){},removeEventListener:function(e,t){},history:{get entries(){return n},get index(){return t},get state(){return r[t]},pushState:function(e,o,i){var a=i.split("?"),l=a[0],u=a[1],c=void 0===u?"":u;t++,n.push({pathname:l,search:c}),r.push(e)},replaceState:function(e,o,i){var a=i.split("?"),l=a[0],u=a[1],c=void 0===u?"":u;n[t]={pathname:l,search:c},r[t]=e}}}},S=!("undefined"==typeof window||!window.document||!window.document.createElement),T=_(S?window:k()),E=T.navigate;n.d(t,"Link",function(){return K}),n.d(t,"Location",function(){return L}),n.d(t,"LocationProvider",function(){return M}),n.d(t,"Match",function(){return Z}),n.d(t,"Redirect",function(){return J}),n.d(t,"Router",function(){return F}),n.d(t,"ServerLocation",function(){return I}),n.d(t,"isRedirect",function(){return Q}),n.d(t,"redirectTo",function(){return Y}),n.d(t,"createHistory",function(){return _}),n.d(t,"createMemorySource",function(){return k}),n.d(t,"navigate",function(){return E}),n.d(t,"globalHistory",function(){return T});var C=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function R(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function O(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function j(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var A=function(e,t){var n=Object(l.a)(t);return n.Consumer.displayName=e+".Consumer",n.Provider.displayName=e+".Provider",n},N=A("Location"),L=function(e){var t=e.children;return o.a.createElement(N.Consumer,null,function(e){return e?t(e):o.a.createElement(M,null,t)})},M=function(e){function t(){var n,r;R(this,t);for(var o=arguments.length,i=Array(o),a=0;at.score?-1:e.index-t.index})},d=function(e){return e.replace(/(^\/+|\/+$)/g,"").split("/")},p=function(e,t){return e+(t?"?"+t:"")},h=["uri","path"];t.startsWith=a,t.pick=l,t.match=function(e,t){return l([{path:e}],t)},t.resolve=function(e,t){if(a(e,"/"))return e;var n=e.split("?"),r=n[0],o=n[1],i=t.split("?")[0],l=d(r),u=d(i);if(""===l[0])return p(i,o);if(!a(l[0],".")){var c=u.concat(l).join("/");return p(("/"===i?"":"/")+c,o)}for(var s=u.concat(l),f=[],h=0,v=s.length;h")}),f=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var d=l(e),p=!i(function(){var t={};return t[d]=function(){return 7},7!=""[e](t)}),h=p?!i(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[c]=function(){return n}),n[d](""),!t}):void 0;if(!p||!h||"replace"===e&&!s||"split"===e&&!f){var v=/./[d],m=n(a,d,""[e],function(e,t,n,r,o){return t.exec===u?p&&!o?{done:!0,value:v.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),g=m[0],y=m[1];r(String.prototype,e,g),o(RegExp.prototype,d,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(21);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";n(47);var r=n(10),o=n.n(r),i=n(0),a=n.n(i),l=n(1),u=n.n(l),c=n(2),s=n(3),f=function(e){function t(){return e.apply(this,arguments)||this}return o()(t,e),t.prototype.render=function(){var e=Object.assign({},this.props,{pathContext:this.props.pageContext}),t=Object(s.apiRunner)("replaceComponentRenderer",{props:this.props,loader:c.publicLoader})[0]||Object(i.createElement)(this.props.pageResources.component,Object.assign({},e,{key:this.props.pageResources.page.path}));return Object(s.apiRunner)("wrapPageElement",{element:t,props:e},t,function(t){return{element:t.result,props:e}}).pop()},t}(a.a.Component);f.propTypes={location:u.a.object.isRequired,pageResources:u.a.object.isRequired,data:u.a.object,pageContext:u.a.object.isRequired},t.a=f},function(e,t,n){"use strict";var r=n(29),o={};o[n(4)("toStringTag")]="z",o+""!="[object z]"&&n(17)(Object.prototype,"toString",function(){return"[object "+r(this)+"]"},!0)},function(e,t){function n(){return e.exports=n=Object.assign||function(e){for(var t=1;t1&&l.call(r[0],n,function(){for(o=1;oi;)a(n[i++]);e._c=[],e._n=!1,t&&!e._h&&L(e)})}},L=function(e){g.call(u,function(){var t,n,r,o=e._v,i=M(e);if(i&&(t=w(function(){P?S.emit("unhandledRejection",o,e):(n=u.onunhandledrejection)?n({promise:e,reason:o}):(r=u.console)&&r.error&&r.error("Unhandled promise rejection",o)}),e._h=P||M(e)?2:1),e._a=void 0,i&&t.e)throw t.v})},M=function(e){return 1!==e._h&&0===(e._a||e._c).length},I=function(e){g.call(u,function(){var t;P?S.emit("rejectionHandled",e):(t=u.onrejectionhandled)&&t({promise:e,reason:e._v})})},U=function(e){var t=this;t._d||(t._d=!0,(t=t._w||t)._v=e,t._s=2,t._a||(t._a=t._c.slice()),N(t,!0))},F=function(e){var t,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===e)throw k("Promise can't be resolved itself");(t=A(e))?y(function(){var r={_w:n,_d:!1};try{t.call(e,c(F,r,1),c(U,r,1))}catch(o){U.call(r,o)}}):(n._v=e,n._s=1,N(n,!1))}catch(r){U.call({_w:n,_d:!1},r)}}};j||(C=function(e){h(this,C,"Promise","_h"),p(e),r.call(this);try{e(c(F,this,1),c(U,this,1))}catch(t){U.call(this,t)}},(r=function(e){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1}).prototype=n(104)(C.prototype,{then:function(e,t){var n=O(m(this,C));return n.ok="function"!=typeof e||e,n.fail="function"==typeof t&&t,n.domain=P?S.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&N(this,!1),n.promise},catch:function(e){return this.then(void 0,e)}}),i=function(){var e=new r;this.promise=e,this.resolve=c(F,e,1),this.reject=c(U,e,1)},b.f=O=function(e){return e===C||e===a?new i(e):o(e)}),f(f.G+f.W+f.F*!j,{Promise:C}),n(44)(C,"Promise"),n(105)("Promise"),a=n(22).Promise,f(f.S+f.F*!j,"Promise",{reject:function(e){var t=O(this);return(0,t.reject)(e),t.promise}}),f(f.S+f.F*(l||!j),"Promise",{resolve:function(e){return _(l&&this===a?C:this,e)}}),f(f.S+f.F*!(j&&n(106)(function(e){C.all(e).catch(R)})),"Promise",{all:function(e){var t=this,n=O(t),r=n.resolve,o=n.reject,i=w(function(){var n=[],i=0,a=1;v(e,!1,function(e){var l=i++,u=!1;n.push(void 0),a++,t.resolve(e).then(function(e){u||(u=!0,n[l]=e,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(e){var t=this,n=O(t),r=n.reject,o=w(function(){v(e,!1,function(e){t.resolve(e).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},function(e,t,n){var r=n(26).f,o=n(31),i=n(4)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t){e.exports=function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}},function(e,t){e.exports=function(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){var r=n(13);r(r.S+r.F,"Object",{assign:n(115)})},function(e,t,n){var r=n(116),o=n(75);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t,n){var r=n(50),o=n(21);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(16);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(63)("keys"),o=n(39);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(4)("unscopables"),o=Array.prototype;null==o[r]&&n(15)(o,r,{}),e.exports=function(e){o[r][e]=!0}},function(e,t,n){"use strict";var r=n(5),o=n(34),i=n(18),a=n(33),l=n(42),u=n(28),c=Math.max,s=Math.min,f=Math.floor,d=/\$([$&`']|\d\d?|<[^>]*>)/g,p=/\$([$&`']|\d\d?)/g;n(30)("replace",2,function(e,t,n,h){return[function(r,o){var i=e(this),a=null==r?void 0:r[t];return void 0!==a?a.call(r,i,o):n.call(String(i),r,o)},function(e,t){var o=h(n,e,this,t);if(o.done)return o.value;var f=r(e),d=String(this),p="function"==typeof t;p||(t=String(t));var m=f.global;if(m){var g=f.unicode;f.lastIndex=0}for(var y=[];;){var b=u(f,d);if(null===b)break;if(y.push(b),!m)break;""===String(b[0])&&(f.lastIndex=l(d,i(f.lastIndex),g))}for(var w,x="",_=0,k=0;k=_&&(x+=d.slice(_,T)+O,_=T+S.length)}return x+d.slice(_)}];function v(e,t,r,i,a,l){var u=r+e.length,c=i.length,s=p;return void 0!==a&&(a=o(a),s=d),n.call(l,s,function(n,o){var l;switch(o.charAt(0)){case"$":return"$";case"&":return e;case"`":return t.slice(0,r);case"'":return t.slice(u);case"<":l=a[o.slice(1,-1)];break;default:var s=+o;if(0===s)return n;if(s>c){var d=f(s/10);return 0===d?n:d<=c?void 0===i[d-1]?o.charAt(1):i[d-1]+o.charAt(1):n}l=i[s-1]}return void 0===l?"":l})}})},function(e,t,n){"use strict";t.__esModule=!0,t.default=void 0;var r=!("undefined"==typeof window||!window.document||!window.document.createElement);t.default=r,e.exports=t.default},function(e,t,n){"use strict";n.r(t);var r=function(e){for(var t,n=e.length,r=n^n,o=0;n>=4;)t=1540483477*(65535&(t=255&e.charCodeAt(o)|(255&e.charCodeAt(++o))<<8|(255&e.charCodeAt(++o))<<16|(255&e.charCodeAt(++o))<<24))+((1540483477*(t>>>16)&65535)<<16),r=1540483477*(65535&r)+((1540483477*(r>>>16)&65535)<<16)^(t=1540483477*(65535&(t^=t>>>24))+((1540483477*(t>>>16)&65535)<<16)),n-=4,++o;switch(n){case 3:r^=(255&e.charCodeAt(o+2))<<16;case 2:r^=(255&e.charCodeAt(o+1))<<8;case 1:r=1540483477*(65535&(r^=255&e.charCodeAt(o)))+((1540483477*(r>>>16)&65535)<<16)}return r=1540483477*(65535&(r^=r>>>13))+((1540483477*(r>>>16)&65535)<<16),((r^=r>>>15)>>>0).toString(36)},o={animationIterationCount:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},i=n(66);n.d(t,"serializeStyles",function(){return p});var a=/[A-Z]|^ms/g,l=/_EMO_([^_]+?)_([^]*?)_EMO_/g,u=Object(i.a)(function(e){return e.replace(a,"-$&").toLowerCase()}),c=function(e,t){if(null==t||"boolean"==typeof t)return"";switch(e){case"animation":case"animationName":"string"==typeof t&&(t=t.replace(l,function(e,t,n){return f={name:t,styles:n,next:f},t}))}return 1!==o[e]&&45!==e.charCodeAt(1)&&"number"==typeof t&&0!==t?t+"px":t};function s(e,t,n,r){if(null==n)return"";if(void 0!==n.__emotion_styles)return n;switch(typeof n){case"boolean":return"";case"object":if(1===n.anim)return f={name:n.name,styles:n.styles,next:f},n.name;if(void 0!==n.styles){var o=n.next;if(void 0!==o)for(;void 0!==o;)f={name:o.name,styles:o.styles,next:f},o=o.next;return n.styles}return function(e,t,n){var r="";if(Array.isArray(n))for(var o=0;o=e.length?(this._t=void 0,o(1)):o(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";e.exports=function(){}},function(e,t,n){var r=n(22),o=n(6),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(38)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(33),o=n(21);e.exports=function(e){return function(t,n){var i,a,l=String(o(t)),u=r(n),c=l.length;return u<0||u>=c?e?"":void 0:(i=l.charCodeAt(u))<55296||i>56319||u+1===c||(a=l.charCodeAt(u+1))<56320||a>57343?e?l.charAt(u):i:e?l.slice(u,u+2):a-56320+(i-55296<<10)+65536}}},function(e,t,n){"use strict";t.a=function(e){var t={};return function(n){return void 0===t[n]&&(t[n]=e(n)),t[n]}}},function(e,t,n){var r=n(5),o=n(32),i=n(4)("species");e.exports=function(e,t){var n,a=r(e).constructor;return void 0===a||null==(n=r(a)[i])?t:o(n)}},function(e,t,n){var r,o,i,a=n(23),l=n(99),u=n(69),c=n(41),s=n(6),f=s.process,d=s.setImmediate,p=s.clearImmediate,h=s.MessageChannel,v=s.Dispatch,m=0,g={},y=function(){var e=+this;if(g.hasOwnProperty(e)){var t=g[e];delete g[e],t()}},b=function(e){y.call(e.data)};d&&p||(d=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return g[++m]=function(){l("function"==typeof e?e:Function(e),t)},r(m),m},p=function(e){delete g[e]},"process"==n(16)(f)?r=function(e){f.nextTick(a(y,e,1))}:v&&v.now?r=function(e){v.now(a(y,e,1))}:h?(i=(o=new h).port2,o.port1.onmessage=b,r=a(i.postMessage,i,1)):s.addEventListener&&"function"==typeof postMessage&&!s.importScripts?(r=function(e){s.postMessage(e+"","*")},s.addEventListener("message",b,!1)):r="onreadystatechange"in c("script")?function(e){u.appendChild(c("script")).onreadystatechange=function(){u.removeChild(this),y.call(e)}}:function(e){setTimeout(a(y,e,1),0)}),e.exports={set:d,clear:p}},function(e,t,n){var r=n(6).document;e.exports=r&&r.documentElement},function(e,t,n){"use strict";var r=n(32);function o(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}e.exports.f=function(e){return new o(e)}},function(e,t,n){"use strict";var r=n(0),o=n.n(r);t.a=o.a.createContext},function(e,t){t.polyfill=function(e){return e}},function(e,t,n){var r;e.exports=(r=n(114))&&r.default||r},function(e,t,n){var r=n(49),o=n(18),i=n(117);e.exports=function(e){return function(t,n,a){var l,u=r(t),c=o(u.length),s=i(a,c);if(e&&n!=n){for(;c>s;)if((l=u[s++])!=l)return!0}else for(;c>s;s++)if((e||s in u)&&u[s]===n)return e||s||0;return!e&&-1}}},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){var r=n(14),o=n(16),i=n(4)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[i])?!!t:"RegExp"==o(e))}},function(e,t,n){"use strict";var r=n(38),o=n(13),i=n(17),a=n(15),l=n(24),u=n(130),c=n(44),s=n(133),f=n(4)("iterator"),d=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,h,v,m,g){u(n,t,h);var y,b,w,x=function(e){if(!d&&e in T)return T[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},_=t+" Iterator",k="values"==v,S=!1,T=e.prototype,E=T[f]||T["@@iterator"]||v&&T[v],C=E||x(v),P=v?k?x("entries"):C:void 0,R="Array"==t&&T.entries||E;if(R&&(w=s(R.call(new e)))!==Object.prototype&&w.next&&(c(w,_,!0),r||"function"==typeof w[f]||a(w,f,p)),k&&E&&"values"!==E.name&&(S=!0,C=function(){return E.call(this)}),r&&!g||!d&&!S&&T[f]||a(T,f,C),l[t]=C,l[_]=p,v)if(y={values:k?C:x("values"),keys:m?C:x("keys"),entries:P},g)for(b in y)b in T||i(T,b,y[b]);else o(o.P+o.F*(d||S),t,y);return y}},function(e,t,n){"use strict";t.__esModule=!0,t.default=function(e){return e===e.window?e:9===e.nodeType&&(e.defaultView||e.parentWindow)},e.exports=t.default},function(e,t,n){"use strict";var r=n(9),o=r(n(143)),i=r(n(153));t.ScrollContainer=i.default,t.ScrollContext=o.default},function(e,t,n){e.exports=function(){var e=!1;-1!==navigator.appVersion.indexOf("MSIE 10")&&(e=!0);var t,n=[],r="object"==typeof document&&document,o=e?r.documentElement.doScroll():r.documentElement.doScroll,i=r&&(o?/^loaded|^c/:/^loaded|^i|^c/).test(r.readyState);return!i&&r&&r.addEventListener("DOMContentLoaded",t=function(){for(r.removeEventListener("DOMContentLoaded",t),i=1;t=n.shift();)t()}),function(e){i?setTimeout(e,0):n.push(e)}}()},function(e){e.exports=[{fromPath:"/berry/configuration",isPermanent:!0,redirectInBrowser:!0,toPath:"/berry/configuration/manifest"},{fromPath:"/berry/features",isPermanent:!0,redirectInBrowser:!0,toPath:"/berry/features/pnp"}]},function(e,t,n){"use strict";var r=n(5),o=n(18),i=n(42),a=n(28);n(30)("match",1,function(e,t,n,l){return[function(n){var r=e(this),o=null==n?void 0:n[t];return void 0!==o?o.call(n,r):new RegExp(n)[t](String(r))},function(e){var t=l(n,e,this);if(t.done)return t.value;var u=r(e),c=String(this);if(!u.global)return a(u,c);var s=u.unicode;u.lastIndex=0;for(var f,d=[],p=0;null!==(f=a(u,c));){var h=String(f[0]);d[p]=h,""===h&&(u.lastIndex=i(c,o(u.lastIndex),s)),p++}return 0===p?null:d}]})},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){for(var r=n(61),o=n(48),i=n(17),a=n(6),l=n(15),u=n(24),c=n(4),s=c("iterator"),f=c("toStringTag"),d=u.Array,p={CSSRuleList:!0,CSSStyleDeclaration:!1,CSSValueList:!1,ClientRectList:!1,DOMRectList:!1,DOMStringList:!1,DOMTokenList:!0,DataTransferItemList:!1,FileList:!1,HTMLAllCollection:!1,HTMLCollection:!1,HTMLFormElement:!1,HTMLSelectElement:!1,MediaList:!0,MimeTypeArray:!1,NamedNodeMap:!1,NodeList:!0,PaintRequestList:!1,Plugin:!1,PluginArray:!1,SVGLengthList:!1,SVGNumberList:!1,SVGPathSegList:!1,SVGPointList:!1,SVGStringList:!1,SVGTransformList:!1,SourceBufferList:!1,StyleSheetList:!0,TextTrackCueList:!1,TextTrackList:!1,TouchList:!1},h=o(p),v=0;vA.length&&A.push(e)}function M(e,t,n){return null==e?0:function e(t,n,r,o){var l=typeof t;"undefined"!==l&&"boolean"!==l||(t=null);var u=!1;if(null===t)u=!0;else switch(l){case"string":case"number":u=!0;break;case"object":switch(t.$$typeof){case i:case a:u=!0}}if(u)return r(o,t,""===n?"."+I(t,0):n),1;if(u=0,n=""===n?".":n+":",Array.isArray(t))for(var c=0;cb;b++)if((m=t?y(a(h=e[b])[0],h[1]):y(e[b]))===c||m===s)return m}else for(v=g.call(e);!(h=v.next()).done;)if((m=o(v,y,h.value,t))===c||m===s)return m}).BREAK=c,t.RETURN=s},function(e,t,n){var r=n(5);e.exports=function(e,t,n,o){try{return o?t(r(n)[0],n[1]):t(n)}catch(a){var i=e.return;throw void 0!==i&&r(i.call(e)),a}}},function(e,t,n){var r=n(24),o=n(4)("iterator"),i=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||i[o]===e)}},function(e,t,n){var r=n(29),o=n(4)("iterator"),i=n(24);e.exports=n(22).getIteratorMethod=function(e){if(null!=e)return e[o]||e["@@iterator"]||i[r(e)]}},function(e,t){e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){var r=n(6),o=n(68).set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,l=r.Promise,u="process"==n(16)(a);e.exports=function(){var e,t,n,c=function(){var r,o;for(u&&(r=a.domain)&&r.exit();e;){o=e.fn,e=e.next;try{o()}catch(i){throw e?n():t=void 0,i}}t=void 0,r&&r.enter()};if(u)n=function(){a.nextTick(c)};else if(!i||r.navigator&&r.navigator.standalone)if(l&&l.resolve){var s=l.resolve(void 0);n=function(){s.then(c)}}else n=function(){o.call(r,c)};else{var f=!0,d=document.createTextNode("");new i(c).observe(d,{characterData:!0}),n=function(){d.data=f=!f}}return function(r){var o={fn:r,next:void 0};t&&(t.next=o),e||(e=o,n()),t=o}}},function(e,t){e.exports=function(e){try{return{e:!1,v:e()}}catch(t){return{e:!0,v:t}}}},function(e,t,n){var r=n(6).navigator;e.exports=r&&r.userAgent||""},function(e,t,n){var r=n(5),o=n(14),i=n(70);e.exports=function(e,t){if(r(e),o(t)&&t.constructor===e)return t;var n=i.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){var r=n(17);e.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}},function(e,t,n){"use strict";var r=n(6),o=n(26),i=n(20),a=n(4)("species");e.exports=function(e){var t=r[e];i&&t&&!t[a]&&o.f(t,a,{configurable:!0,get:function(){return this}})}},function(e,t,n){var r=n(4)("iterator"),o=!1;try{var i=[7][r]();i.return=function(){o=!0},Array.from(i,function(){throw 2})}catch(a){}e.exports=function(e,t){if(!t&&!o)return!1;var n=!1;try{var i=[7],l=i[r]();l.next=function(){return{done:n=!0}},i[r]=function(){return l},e(i)}catch(a){}return n}},function(e,t,n){e.exports=[{plugin:n(108),options:{plugins:[]}},{plugin:n(109),options:{plugins:[]}},{plugin:n(138),options:{plugins:[]}}]},function(e,t,n){"use strict";var r=0,o=function(e){var t=window.decodeURI(e.replace("#",""));if(""!==t){var n=document.getElementById(t);if(n)return n.offsetTop-r}return null};t.onInitialClientRender=function(e,t){t.offsetY&&(r=t.offsetY),requestAnimationFrame(function(){var e=o(window.location.hash);null!==e&&window.scrollTo(0,e)})},t.shouldUpdateScroll=function(e){var t=e.routerProps.location,n=o(t.hash);return null===n||[0,n]}},function(e,t,n){"use strict";var r=n(9),o=n(59),i=r(n(136));t.onClientEntry=function(){(0,i.default)(window,function(e){(0,o.navigate)(e)})}},function(e,t,n){"use strict";var r=n(111);function o(){}e.exports=function(){function e(e,t,n,o,i,a){if(a!==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,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=o,n.PropTypes=n,n}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t){e.exports=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}},function(e,t,n){"use strict";t.__esModule=!0,t.parsePath=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");-1!==i&&(n=t.substr(i),t=t.substr(0,i));return{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}},function(e,t,n){"use strict";n.r(t);n(47);var r=n(0),o=n.n(r),i=n(1),a=n.n(i),l=n(35),u=n(2),c=function(e){var t=e.location,n=u.default.getResourcesForPathnameSync(t.pathname);return n?o.a.createElement(l.a,Object.assign({location:t,pageResources:n},n.json)):null};c.propTypes={location:a.a.shape({pathname:a.a.string.isRequired}).isRequired},t.default=c},function(e,t,n){"use strict";var r=n(48),o=n(118),i=n(119),a=n(34),l=n(50),u=Object.assign;e.exports=!u||n(27)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=u({},e)[n]||Object.keys(u({},t)).join("")!=r})?function(e,t){for(var n=a(e),u=arguments.length,c=1,s=o.f,f=i.f;u>c;)for(var d,p=l(arguments[c++]),h=s?r(p).concat(s(p)):r(p),v=h.length,m=0;v>m;)f.call(p,d=h[m++])&&(n[d]=p[d]);return n}:u},function(e,t,n){var r=n(31),o=n(49),i=n(74)(!1),a=n(51)("IE_PROTO");e.exports=function(e,t){var n,l=o(e),u=0,c=[];for(n in l)n!=a&&r(l,n)&&c.push(n);for(;t.length>u;)r(l,n=t[u++])&&(~i(c,n)||c.push(n));return c}},function(e,t,n){var r=n(33),o=Math.max,i=Math.min;e.exports=function(e,t){return(e=r(e))<0?o(e+t,0):i(e,t)}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";var r=n(13),o=n(74)(!0);r(r.P,"Array",{includes:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(52)("includes")},function(e,t,n){"use strict";var r=n(13),o=n(122);r(r.P+r.F*n(123)("includes"),"String",{includes:function(e){return!!~o(this,e,"includes").indexOf(e,arguments.length>1?arguments[1]:void 0)}})},function(e,t,n){var r=n(76),o=n(21);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(o(e))}},function(e,t,n){var r=n(4)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(o){}}return!0}},function(e,t,n){"use strict";var r=n(13),o=n(125)(5),i=!0;"find"in[]&&Array(1).find(function(){i=!1}),r(r.P+r.F*i,"Array",{find:function(e){return o(this,e,arguments.length>1?arguments[1]:void 0)}}),n(52)("find")},function(e,t,n){var r=n(23),o=n(50),i=n(34),a=n(18),l=n(126);e.exports=function(e,t){var n=1==e,u=2==e,c=3==e,s=4==e,f=6==e,d=5==e||f,p=t||l;return function(t,l,h){for(var v,m,g=i(t),y=o(g),b=r(l,h,3),w=a(y.length),x=0,_=n?p(t,w):u?p(t,0):void 0;w>x;x++)if((d||x in y)&&(m=b(v=y[x],x,g),e))if(n)_[x]=m;else if(m)switch(e){case 3:return!0;case 5:return v;case 6:return x;case 2:_.push(v)}else if(s)return!1;return f?-1:c||s?s:_}}},function(e,t,n){var r=n(127);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){var r=n(14),o=n(128),i=n(4)("species");e.exports=function(e){var t;return o(e)&&("function"!=typeof(t=e.constructor)||t!==Array&&!o(t.prototype)||(t=void 0),r(t)&&null===(t=t[i])&&(t=void 0)),void 0===t?Array:t}},function(e,t,n){var r=n(16);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t){e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(131),o=n(64),i=n(44),a={};n(15)(a,n(4)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(a,{next:o(1,n)}),i(e,t+" Iterator")}},function(e,t,n){var r=n(5),o=n(132),i=n(75),a=n(51)("IE_PROTO"),l=function(){},u=function(){var e,t=n(41)("iframe"),r=i.length;for(t.style.display="none",n(69).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn add

Add dependencies to the project.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn add

Add dependencies to the project.

Usage

-
$> yarn add [... packages] [-E,--exact] [-T,--tilde] [-D,--dev] [-P,--peer] [-i,--interactive] [-q,--quiet] [--cached]
-
+
$> yarn add [... packages] [-E,--exact] [-T,--tilde] [-D,--dev] [-P,--peer] [-i,--interactive] [-q,--quiet] [--cached]

Details

This command adds a package to the package.json for the nearest workspace.

  • -

    The package will by default be added to the regular dependencies field, but -this behavior can be overriden thanks to the -D,--dev flag (which will cause -the dependency to be added to the devDependencies field instead) and the --P,--peer flag (which will do the same but for peerDependencies).

    +

    The package will by default be added to the regular dependencies field, but +this behavior can be overriden thanks to the -D,--dev flag (which will cause +the dependency to be added to the devDependencies field instead) and the +-P,--peer flag (which will do the same but for peerDependencies).

  • -

    If the added package doesn't specify a range at all its latest tag will be +

    If the added package doesn't specify a range at all its latest tag will be resolved and the returned version will be used to generate a new semver range -(using the ^ modifier by default, or the ~ modifier if -T,--tilde is -specified, or no modifier at all if -E,--exact is specified). Two exceptions +(using the ^ modifier by default, or the ~ modifier if -T,--tilde is +specified, or no modifier at all if -E,--exact is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its -local version will be used, and the second one is that if you use -P,--peer -the default range will be * and won't be resolved at all.

    +local version will be used, and the second one is that if you use -P,--peer +the default range will be * and won't be resolved at all.

  • -

    If the added package specifies a tag range (such as latest or rc), Yarn +

    If the added package specifies a tag range (such as latest or rc), Yarn will resolve this tag to a semver version and use that in the resulting -package.json entry (meaning that yarn add foo@latest will have exactly the -same effect as yarn add foo).

    +package.json entry (meaning that yarn add foo@latest will have exactly the +same effect as yarn add foo).

-

If the -i,--interactive option is used (or if the preferInteractive settings +

If the -i,--interactive option is used (or if the preferInteractive settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.

-

If the --cached option is used, Yarn will preferably reuse the highest version +

If the --cached option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.

For a compilation of all the supported protocols, please consult the dedicated @@ -80,9 +79,7 @@

Examples

Add a regular package to the current workspace :

-
yarn add lodash
-
+
yarn add lodash

Add a specific version for a package to the current workspace :

-
yarn add lodash@1.2.3
-
\ No newline at end of file +
yarn add lodash@1.2.3
\ No newline at end of file diff --git a/docs/cli/bin/index.html b/docs/cli/bin/index.html index 8e8f23599fe6..451aabe00194 100644 --- a/docs/cli/bin/index.html +++ b/docs/cli/bin/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn bin

Get the path to a binary script.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn bin

Get the path to a binary script.

Usage

-
$> yarn bin [name] [-v,--verbose]
-
+
$> yarn bin [name] [-v,--verbose]

Details

When used without arguments, this command will print the list of all the -binaries available in the current workspace. Adding the -v,--verbose flag will +binaries available in the current workspace. Adding the -v,--verbose flag will cause the output to contain both the binary name and the locator of the package that provides the binary.

When an argument is specified, this command will just print the path to the @@ -55,9 +54,7 @@

Examples

List all the available binaries :

-
yarn bin
-
+
yarn bin

Print the path to a specific binary :

-
yarn bin eslint
-
\ No newline at end of file +
yarn bin eslint
\ No newline at end of file diff --git a/docs/cli/cache/clean/index.html b/docs/cli/cache/clean/index.html index d8707bc0ec31..169ac830a944 100644 --- a/docs/cli/cache/clean/index.html +++ b/docs/cli/cache/clean/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn cache clean

Remove the unused packages from the cache.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn cache clean

Remove the unused packages from the cache.

Usage

-
$> yarn cache clean [--dry-run] [--json]
-
+
$> yarn cache clean [--dry-run] [--json]

Details

This command will locate the files that aren't used in the current project, and -remove them (unless --dry-run is set).

+remove them (unless --dry-run is set).

In order to detect whether a file is used or not the command will run a partial install where it will paint the "fetched" packages on top of actually downloading them. Each package in the cache that hasn't been painted during the install will be reported as unused.

-

One quirk of this system is that yarn cache clean cannot be used directly if +

One quirk of this system is that yarn cache clean cannot be used directly if your cache is used by multiple projects, as it won't be able to detect the files being used by other projects than the current one. The best way to support -multiple projects with a single mirror is to use the --dry-run and --json +multiple projects with a single mirror is to use the --dry-run and --json flags in order to get the list of files that aren't used by one unique project. After running this command on all your projects, you'll just have to remove the intersection of all those file sets as they'll be guaranteed not to be used by @@ -62,9 +61,7 @@

Examples

Remove all the unused cache files from the current project :

-
yarn cache clean
-
+
yarn cache clean

Obtain the list of unused files from the current project :

-
yarn cache clean --dry-run --json
-
\ No newline at end of file +
yarn cache clean --dry-run --json
\ No newline at end of file diff --git a/docs/cli/config/index.html b/docs/cli/config/index.html index 423ab9a968c1..335ba0ab4ecc 100644 --- a/docs/cli/config/index.html +++ b/docs/cli/config/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn config

Display the current configuration.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn config

Display the current configuration.

Usage

-
$> yarn config [-v,--verbose] [--why] [--json]
-
+
$> yarn config [-v,--verbose] [--why] [--json]

Details

This command prints the current active configuration settings.

-

When used together with the -v,--verbose option, the output will contain the +

When used together with the -v,--verbose option, the output will contain the settings description on top of the regular key/value information.

-

When used together with the --why flag, the output will also contain the +

When used together with the --why flag, the output will also contain the reason why a settings is set a particular way.

Note that the paths settings will be normalized - especially on Windows. It -means that paths such as C:\project will be transparently shown as -/mnt/c/project.

+means that paths such as C:\project will be transparently shown as +/mnt/c/project.

Examples

Print the active configuration settings :

-
yarn config
-
\ No newline at end of file +
yarn config
\ No newline at end of file diff --git a/docs/cli/config/set/index.html b/docs/cli/config/set/index.html index 0ccb6e1da0e9..9ac80d613e5f 100644 --- a/docs/cli/config/set/index.html +++ b/docs/cli/config/set/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn config set

Change a configuration settings.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn config set

Change a configuration settings.

Usage

-
$> yarn config set <name> <value>
-
\ No newline at end of file +
$> yarn config set <name> <value>
\ No newline at end of file diff --git a/docs/cli/constraints/check/index.html b/docs/cli/constraints/check/index.html index 7200d029ad92..9fc700411bfe 100644 --- a/docs/cli/constraints/check/index.html +++ b/docs/cli/constraints/check/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn constraints check

Check that the project constraints are met.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn constraints check

Check that the project constraints are met.

Usage

-
$> yarn constraints check 
-
+
$> yarn constraints check 

Details

This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with @@ -53,5 +52,4 @@

Examples

Check that all constraints are satisfied :

-
yarn constraints check
-
\ No newline at end of file +
yarn constraints check
\ No newline at end of file diff --git a/docs/cli/constraints/fix/index.html b/docs/cli/constraints/fix/index.html index 932e501fd23f..a53576ffaa26 100644 --- a/docs/cli/constraints/fix/index.html +++ b/docs/cli/constraints/fix/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn constraints fix

Make the project constraint-compliant if possible.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn constraints fix

Make the project constraint-compliant if possible.

Usage

-
$> yarn constraints fix 
-
+
$> yarn constraints fix 

Details

This command will run constraints on your project and try its best to automatically fix any error it finds. If some errors cannot be automatically -fixed (in particular all errors triggered by gen_invalid_dependency rules) the +fixed (in particular all errors triggered by gen_invalid_dependency rules) the process will exit with a non-zero exit code, and an install will be automatically be ran otherwise.

For more information as to how to write constraints, please consult our @@ -55,5 +54,4 @@

Examples

Automatically fix as many things as possible in your project :

-
yarn constraints fix
-
\ No newline at end of file +
yarn constraints fix
\ No newline at end of file diff --git a/docs/cli/constraints/query/index.html b/docs/cli/constraints/query/index.html index 52ffca9a895e..0fef64b8829d 100644 --- a/docs/cli/constraints/query/index.html +++ b/docs/cli/constraints/query/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn constraints query

Query the constraints.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn constraints query

Query the constraints fact database.

Usage

-
$> yarn constraints query <query>
-
+
$> yarn constraints query <query>

Details

This command will output all matches to the given prolog query

Examples

List all dependencies throughout the workspace :

-
yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'
-
\ No newline at end of file +
yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'
\ No newline at end of file diff --git a/docs/cli/constraints/source/index.html b/docs/cli/constraints/source/index.html index d9dda7c06ca3..edced58362c9 100644 --- a/docs/cli/constraints/source/index.html +++ b/docs/cli/constraints/source/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn constraints source

Print the source code for the constraints.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn constraints source

Print the source code for the constraints.

Usage

-
$> yarn constraints source [-v,--verbose]
-
+
$> yarn constraints source [-v,--verbose]

Details

This command will print the Prolog source code used by the constraints engine. -Adding the -v,--verbose flag will print the full source code, including the +Adding the -v,--verbose flag will print the full source code, including the fact database automatically compiled from your workspaces manifests.

Examples

Prints the source code :

-
yarn constraints source
-
+
yarn constraints source

Print the source code and the fact database :

-
yarn constraints source -v
-
\ No newline at end of file +
yarn constraints source -v
\ No newline at end of file diff --git a/docs/cli/dlx/index.html b/docs/cli/dlx/index.html index 984b4ecc142a..53c0943fc994 100644 --- a/docs/cli/dlx/index.html +++ b/docs/cli/dlx/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn dlx

Run a package in a temporary environment.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn dlx

Run a package in a temporary environment.

Usage

-
$> yarn dlx <command> [... args] [-p,--package NAME] [-q,--quiet]
-
+
$> yarn dlx <command> [... args] [-p,--package NAME] [-q,--quiet]

Details

This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.

-

By default Yarn will download the package named command, but this can be -changed through the use of the -p,--package flag which will instruct Yarn to +

By default Yarn will download the package named command, but this can be +changed through the use of the -p,--package flag which will instruct Yarn to still run the same command but from a different package.

Also by default Yarn will print the full install logs when installing the given -package. This behavior can be disabled by using the -q,--quiet flag which will +package. This behavior can be disabled by using the -q,--quiet flag which will instruct Yarn to only report critical errors.

-

Using yarn dlx as a replacement of yarn add isn't recommended, as it makes +

Using yarn dlx as a replacement of yarn add isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages -installed through dlx - neither their name, nor their version).

+installed through dlx - neither their name, nor their version).

Examples

Use create-react-app to create a new React app :

-
yarn dlx create-react-app ./my-app
-
\ No newline at end of file +
yarn dlx create-react-app ./my-app
\ No newline at end of file diff --git a/docs/cli/help/index.html b/docs/cli/help/index.html index 8af85fa0816b..0d3eadd38d2c 100644 --- a/docs/cli/help/index.html +++ b/docs/cli/help/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn help

Print the program usage.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn help

Print the program usage.

Usage

-
$> yarn help [command]
-
\ No newline at end of file +
$> yarn help [command]
\ No newline at end of file diff --git a/docs/cli/init/index.html b/docs/cli/init/index.html index 0ea84325363f..8dc3cf2541b4 100644 --- a/docs/cli/init/index.html +++ b/docs/cli/init/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn init

Create a new package.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn init

Create a new package.

Usage

-
$> yarn init [-p,--private]
-
+
$> yarn init [-p,--private]

Details

This command will setup a new package in your local directory.

-

If the -p,--private option is set, the package will be private by default.

+

If the -p,--private option is set, the package will be private by default.

The following settings can be used in order to affect what the generated package.json will look like:

    -
  • initLicense- initScope- initVersion
  • +
  • initLicense- initScope- initVersion

Examples

Create a new package in the local directory :

-
yarn init
-
+
yarn init

Create a new private package in the local directory :

-
yarn init -p
-
\ No newline at end of file +
yarn init -p
\ No newline at end of file diff --git a/docs/cli/install/index.html b/docs/cli/install/index.html index ab024c67e700..470d768a78c8 100644 --- a/docs/cli/install/index.html +++ b/docs/cli/install/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn install

Install the project dependencies.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn install

\ No newline at end of file +
yarn install
\ No newline at end of file diff --git a/docs/cli/link/index.html b/docs/cli/link/index.html index 3851545986dc..c570a94f9f4a 100644 --- a/docs/cli/link/index.html +++ b/docs/cli/link/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn link

Connect the local project to another one.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn link

Connect the local project to another one.

Usage

-
$> yarn link <destination> [--all] [-p,--private] [-r,--relative]
-
+
$> yarn link <destination> [--all] [-p,--private] [-r,--relative]

Details

-

This command will set a new resolutions field in the project-level manifest +

This command will set a new resolutions field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).

-

If the --all option is set, all workspaces belonging to the target project +

If the --all option is set, all workspaces belonging to the target project will be linked to the current one.

-

There is no yarn unlink command. To unlink the workspaces from the current -project one must revert the changes made to the resolutions field.

+

There is no yarn unlink command. To unlink the workspaces from the current +project one must revert the changes made to the resolutions field.

Examples

Register a remote workspace for use in the current project :

-
yarn link ~/ts-loader
-
+
yarn link ~/ts-loader

Register all workspaces from a remote project for use in the current project :

-
yarn link ~/jest --all
-
\ No newline at end of file +
yarn link ~/jest --all
\ No newline at end of file diff --git a/docs/cli/node/index.html b/docs/cli/node/index.html index e4f5ebd06d5f..2eee92142838 100644 --- a/docs/cli/node/index.html +++ b/docs/cli/node/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn node

Run node with the hook already setup.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn node

Run node with the hook already setup.

Usage

-
$> yarn node [... args]
-
+
$> yarn node [... args]

Details

This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the @@ -55,5 +54,4 @@

Examples

Run a Node script :

-
yarn node ./my-script.js
-
\ No newline at end of file +
yarn node ./my-script.js
\ No newline at end of file diff --git a/docs/cli/npm/login/index.html b/docs/cli/npm/login/index.html new file mode 100644 index 000000000000..9278234dcbc0 --- /dev/null +++ b/docs/cli/npm/login/index.html @@ -0,0 +1,58 @@ +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn npm login

Store new login info to access the npm registry.

+

Usage

+
$> yarn npm login [-s,--scope SCOPE]
+

Details

+

This command will ask you for your username, password, and 2FA One-Time Password +(when it applies). It will then modify your local configuration (in your home +folder) to reference the new tokens thus generated.

+

Adding the -s,--scope flag will cause the authentication to be done against +whatever registry is configured for the associated scope (see also npmScopes).

+

Examples

+

Login to the default registry +:

+
yarn npm login
+

Login to a scoped registry +:

+
yarn npm login --scope my-scope
\ No newline at end of file diff --git a/docs/cli/npm/publish/index.html b/docs/cli/npm/publish/index.html index 611438212b1f..800a1ad1fd65 100644 --- a/docs/cli/npm/publish/index.html +++ b/docs/cli/npm/publish/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn npm publish

Send the workspace package to the npm registry.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn npm publish

Publish the active workspace to the npm registry.

Usage

-
$> yarn npm publish [--access ACCESS] [--tag TAG] [-i,--interactive]
-
+
$> yarn npm publish [--access ACCESS] [--tag TAG] [--tolerate-republish]

Details

This command will pack the active workspace into a fresh archive and upload it to the npm registry.

-

The package will by default be attached to the latest tag on the registry, but -this behavior can be overriden by using the --tag option.

+

The package will by default be attached to the latest tag on the registry, but +this behavior can be overriden by using the --tag option.

Note that for legacy reasons scoped packages are by default published with an -access set to restricted (aka "private packages"). This requires you to +access set to restricted (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped -package to the registry (for free), just add the --access public flag. This -behavior can be enabled by default through the npmPublishAccess settings.

+package to the registry (for free), just add the --access public flag. This +behavior can be enabled by default through the npmPublishAccess settings.

Examples

Publish the active workspace :

-
yarn npm publish
-
\ No newline at end of file +
yarn npm publish
\ No newline at end of file diff --git a/docs/cli/npm/whoami/index.html b/docs/cli/npm/whoami/index.html new file mode 100644 index 000000000000..9b906bc02f2c --- /dev/null +++ b/docs/cli/npm/whoami/index.html @@ -0,0 +1,58 @@ +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn npm whoami

Display the name of the authenticated user.

+

Usage

+
$> yarn npm whoami [-s,--scope SCOPE]
+

Details

+

Print the username associated with the current authentication settings to the +standard output.

+

When using -s,--scope, the username printed will be the one that matches the +authentication for the specific scope (they can be overriden using the +npmScopes settings).

+

Examples

+

Print username for the default registry +:

+
yarn npm whoami
+

Print username for the registry on a given scope +:

+
yarn npm whoami --scope company
\ No newline at end of file diff --git a/docs/cli/pack/index.html b/docs/cli/pack/index.html index 5abf8ccc7553..302865fb71a1 100644 --- a/docs/cli/pack/index.html +++ b/docs/cli/pack/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn pack

Bundle local packages for publishing.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn pack

Bundle local packages for publishing.

Usage

-
$> yarn pack [-n,--dry-run] [--json]
-
+
$> yarn pack [-n,--dry-run] [--json]

Details

This command will turn the local workspace into a compressed archive suitable for publishing.

-

If the -n,--dry-run flag is set the command will just print the file paths +

If the -n,--dry-run flag is set the command will just print the file paths without actually generating the package archive.

-

If the --json flag is set the output will follow a JSON-stream output format +

If the --json flag is set the output will follow a JSON-stream output format instead of the regular user-readable one.

Examples

Create an archive from the active workspace :

-
yarn pack
-
+
yarn pack

List the files that would be made part of the workspace's archive :

-
yarn pack --dry-run
-
\ No newline at end of file +
yarn pack --dry-run
\ No newline at end of file diff --git a/docs/cli/plugin/dl/index.html b/docs/cli/plugin/dl/index.html index 1483457cdf5b..aaeea7e82809 100644 --- a/docs/cli/plugin/dl/index.html +++ b/docs/cli/plugin/dl/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn plugin dl

List the active plugins.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn plugin dl

List the active plugins.

Usage

-
$> yarn plugin dl [name] [-l,--list]
-
+
$> yarn plugin dl [name] [-l,--list]

Details

This command download the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations.

-

If the -l,--list option is present, Yarn will print the list of plugins +

If the -l,--list option is present, Yarn will print the list of plugins available from the official Yarn repository. Those plugins are not mandatory or necessarily better than the ones provided by the community.

Examples

Download and activate the "@berry/plugin-exec" plugin :

-
yarn plugin dl @berry/plugin-exec
-
+
yarn plugin dl @berry/plugin-exec

Download and activate a community plugin :

-
yarn plugin dl https://example.org/path/to/plugin.js
-
+
yarn plugin dl https://example.org/path/to/plugin.js

List the official plugins :

-
yarn plugin dl --list
-
\ No newline at end of file +
yarn plugin dl --list
\ No newline at end of file diff --git a/docs/cli/plugin/list/index.html b/docs/cli/plugin/list/index.html index 1fb456c687eb..7a655f477ae4 100644 --- a/docs/cli/plugin/list/index.html +++ b/docs/cli/plugin/list/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn plugin list

List the active plugins.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn plugin list

List the active plugins.

Usage

-
$> yarn plugin list 
-
+
$> yarn plugin list 

Details

This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins.

Examples

List the currently active plugins :

-
yarn plugin list
-
\ No newline at end of file +
yarn plugin list
\ No newline at end of file diff --git a/docs/cli/policies/set-resolution/index.html b/docs/cli/policies/set-resolution/index.html index 26fb0403a47e..b6e2764543ff 100644 --- a/docs/cli/policies/set-resolution/index.html +++ b/docs/cli/policies/set-resolution/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn policies set-resolution

Enforce a package resolution.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn policies set-resolution

Enforce a package resolution.

Usage

-
$> yarn policies set-resolution <descriptor> <resolution> [-s,--save]
-
+
$> yarn policies set-resolution <descriptor> <resolution> [-s,--save]

Details

-

This command updates the resolution table so that descriptor is resolved by -resolution.

+

This command updates the resolution table so that descriptor is resolved by +resolution.

Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced -resolution persist whatever happens, add the -s,--save flag which will also -edit the resolutions field from your top-level manifest.

-

Note that no attempt is made at validating that resolution is a valid -resolution entry for descriptor.

+resolution persist whatever happens, add the -s,--save flag which will also +edit the resolutions field from your top-level manifest.

+

Note that no attempt is made at validating that resolution is a valid +resolution entry for descriptor.

Examples

Force all instances of lodash@^1.2.3 to resolve to 1.5.0 :

-
yarn set resolution lodash@^1.2.3 1.5.0
-
\ No newline at end of file +
yarn set resolution lodash@^1.2.3 1.5.0
\ No newline at end of file diff --git a/docs/cli/remove/index.html b/docs/cli/remove/index.html index 8a7bf91957fb..60ebf31b9ade 100644 --- a/docs/cli/remove/index.html +++ b/docs/cli/remove/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn remove

Remove dependencies from the project.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn remove

Remove dependencies from the project.

Usage

-
$> yarn remove [... names] [-A,--all]
-
+
$> yarn remove [... names] [-A,--all]

Details

This command will remove the specified packages from the current workspace. If -the -A,--all option is set, the operation will be applied to all workspaces +the -A,--all option is set, the operation will be applied to all workspaces from the current project.

Examples

Remove a dependency from the current project :

-
yarn remove lodash
-
+
yarn remove lodash

Remove a dependency from all workspaces at once :

-
yarn remove lodash --all
-
\ No newline at end of file +
yarn remove lodash --all
\ No newline at end of file diff --git a/docs/cli/run/index.html b/docs/cli/run/index.html index 318325ae6896..4f87ecc79a2c 100644 --- a/docs/cli/run/index.html +++ b/docs/cli/run/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn run

Run a script defined in the package.json.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn run

Run a script defined in the package.json.

Usage

-
$> yarn run <name> [... args] [-T,--top-level]
-
+
$> yarn run <name> [... args] [-T,--top-level]

Details

This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace:

  • -

    If the scripts field from your local package.json contains a matching script +

    If the scripts field from your local package.json contains a matching script name, its definition will get executed.

  • @@ -68,9 +67,7 @@

    Examples

    Run the tests from the local workspace :

    -
    yarn run test
    -
    +
    yarn run test

    Same thing, but without the "run" keyword :

    -
    yarn test
    -
\ No newline at end of file +
yarn test
\ No newline at end of file diff --git a/docs/cli/set/version/index.html b/docs/cli/set/version/index.html index 5ef4accae2f0..740a156726a0 100644 --- a/docs/cli/set/version/index.html +++ b/docs/cli/set/version/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn set version

Lock the Yarn version used by the project.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn set version

Lock the Yarn version used by the project.

Usage

-
$> yarn set version <range> [--allow-rc] [--dry-run]
-
+
$> yarn set version <range> [--allow-rc] [--dry-run]

Details

This command will download a specific release of Yarn directly from the Yarn Github repository, will store it inside your project, and will change the -yarn-path settings from your project .yarnrc file to point to the new file.

+yarn-path settings from your project .yarnrc file to point to the new file.

A very good use case for this command is to enforce the version of Yarn used by the any single member of your team inside a same project - by doing this you ensure that you have control on Yarn upgrades and downgrades (including on your @@ -55,27 +54,23 @@

--allow-rc flag or use an exact tag.

Note that because you're on the v2 alpha trunk, running the command without parameter will always download the latest build straight from the repository. This behavior will be tweaked near the release to only download stable releases once more.

-

Adding the --dry-run flag will cause Yarn not to persist the changes on the +

Adding the --dry-run flag will cause Yarn not to persist the changes on the disk.

Examples

Download the latest release from the Yarn repository :

-
yarn set version latest
-
+
yarn set version latest

Download the latest nightly release from the Yarn repository :

-
yarn set version nightly
-
+
yarn set version nightly

Switch back to Yarn v1 :

-
yarn set version ^1
-
+
yarn set version ^1

Switch back to a specific release :

-
yarn set version 1.14.0
-

\ No newline at end of file +
yarn set version 1.14.0
\ No newline at end of file diff --git a/docs/cli/stage/index.html b/docs/cli/stage/index.html index 078ae052e887..bf3e9da87c73 100644 --- a/docs/cli/stage/index.html +++ b/docs/cli/stage/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn stage

Add all yarn files to your vcs.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn stage

Add all yarn files to your vcs.

Usage

-
$> yarn stage [-c,--commit] [-r,--reset] [-u,--update] [-n,--dry-run]
-
+
$> yarn stage [-c,--commit] [-r,--reset] [-u,--update] [-n,--dry-run]

Details

This command will add to your staging area the files belonging to Yarn -(typically any modified package.json and .yarnrc files, but also +(typically any modified package.json and .yarnrc files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a -.gitignore file (assuming you use Git).

-

Running --reset will instead remove them from the staging area (the changes +.gitignore file (assuming you use Git).

+

Running --reset will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).

Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can -get this behavior when using Git by using the --commit flag which will +get this behavior when using Git by using the --commit flag which will directly create a commit.

Examples

Adds all modified project files to the staging area :

-
yarn stage
-
+
yarn stage

Creates a new commit containing all modified project files :

-
yarn stage --commit
-
\ No newline at end of file +
yarn stage --commit
\ No newline at end of file diff --git a/docs/cli/unplug/index.html b/docs/cli/unplug/index.html index 49dcacddb7b3..c815203135d0 100644 --- a/docs/cli/unplug/index.html +++ b/docs/cli/unplug/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn unplug

Force the unpacking of a list of packages.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn unplug

Force the unpacking of a list of packages.

Usage

-
$> yarn unplug [... patterns]
-
+
$> yarn unplug [... patterns]

Details

This command will add the specified selectors to the list of packages that must be unplugged when installed.

A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory -configured via virtualFolder.

+configured via virtualFolder.

Unpacking a package isn't advised as a general tool because it makes it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).

-

The unplug command sets a flag that's persisted in your top-level package.json -through the dependenciesMeta field. As such, to undo its effects, just revert -the changes made to the manifest and run yarn install.

+

The unplug command sets a flag that's persisted in your top-level package.json +through the dependenciesMeta field. As such, to undo its effects, just revert +the changes made to the manifest and run yarn install.

Examples

Unplug lodash :

-
yarn unplug lodash
-
+
yarn unplug lodash

Unplug one specific version of lodash :

-
yarn unplug lodash@1.2.3
-
\ No newline at end of file +
yarn unplug lodash@1.2.3
\ No newline at end of file diff --git a/docs/cli/up/index.html b/docs/cli/up/index.html index 67f362860bca..e5fd6e95b68f 100644 --- a/docs/cli/up/index.html +++ b/docs/cli/up/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn up

Upgrade dependencies accross the project.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn up

Upgrade dependencies accross the project.

Usage

-
$> yarn up [... packages] [-i,--interactive] [-v,--verbose] [-E,--exact] [-T,--tilde]
-
+
$> yarn up [... packages] [-i,--interactive] [-v,--verbose] [-E,--exact] [-T,--tilde]

Details

This command upgrades a list of packages to their latest available version -across the whole project (regardless of whether they're part of dependencies -or devDependencies - peerDependencies won't be affected). This is a +across the whole project (regardless of whether they're part of dependencies +or devDependencies - peerDependencies won't be affected). This is a project-wide command: all workspaces will be upgraded in the process. Note that because such dependencies are expected to be non-upgradable, dependencies relying on non-semver ranges won't be updated (this includes git dependencies that use a commit hash).

-

If -i,--interactive is set (or if the preferInteractive settings is toggled +

If -i,--interactive is set (or if the preferInteractive settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.

-

The -E,--exact and -T,--tilde options have the same meaning as in the add +

The -E,--exact and -T,--tilde options have the same meaning as in the add command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).

Examples

Upgrade all instances of lodash to the latest release :

-
yarn up lodash
-
+
yarn up lodash

Upgrade all instances of lodash to the latest release, but ask confirmation for each :

-
yarn up lodash -i
-
+
yarn up lodash -i

Upgrade all instances of lodash to 1.2.3 :

-
yarn up lodash@1.2.3
-
\ No newline at end of file +
yarn up lodash@1.2.3
\ No newline at end of file diff --git a/docs/cli/version/apply/index.html b/docs/cli/version/apply/index.html new file mode 100644 index 000000000000..ee0e9b4daf50 --- /dev/null +++ b/docs/cli/version/apply/index.html @@ -0,0 +1,58 @@ +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn version apply

Apply all the deferred version bumps at once.

+

Usage

+
$> yarn version apply [--all]
+

Details

+

This command will apply the deferred version changes (scheduled via yarn +version major|minor|patch) on the current workspace (or all of them if --all) +is specified.

+

It will also update the workspace: references across all your local workspaces +so that they keep refering to the same workspace even after the version bump.

+

Examples

+

Apply the version change to the local workspace +:

+
yarn version apply
+

Apply the version change to all the workspaces in the local workspace +:

+
yarn version apply --all
\ No newline at end of file diff --git a/docs/cli/version/index.html b/docs/cli/version/index.html new file mode 100644 index 000000000000..596a6e5bfa63 --- /dev/null +++ b/docs/cli/version/index.html @@ -0,0 +1,74 @@ +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn version

Apply a new version to the current package.

+

Usage

+
$> yarn version [strategy] [-d,--deferred]
+

Details

+

This command will bump the version number for the given package, following the +specified strategy:

+
    +
  • If major, the first number from the semver range will be increased +(X.0.0).- If minor, the second number from the semver range will be +increased (0.X.0).- If patch, the third number from the semver range will +be increased (0.0.X).- If prefixed by pre (premajor, ...), a -0 suffix +will be set (0.0.0-0).- If prerelease, the suffix will be increased +(0.0.0-X); the third number from the semver range will also be increased if +there was no suffix in the previous version.- If a valid semver range, it will +be used as new version.- If unspecified, Yarn will ask you for guidance.
  • +
+

Adding the --deferred flag will cause Yarn to "buffer" the version bump and +only apply it during the next call to yarn version apply. This is recommended +for monorepos that receive contributions from the open-source, as Yarn will +remember multiple invocations to yarn version <strategy> and only apply the +highest bump needed (so for example running yarn version major --deferred +twice would only increase the first number of the semver range by a single +increment).

+

Note that the deferred value is lost when you call yarn version without the +--deferred flag.

+

Examples

+

Immediatly bump the version to the next major +:

+
yarn version major
+

Prepare the version to be bumped to the next major +:

+
yarn version major --deferred
\ No newline at end of file diff --git a/docs/cli/why/index.html b/docs/cli/why/index.html index c12de0accf62..bb15b02e34bf 100644 --- a/docs/cli/why/index.html +++ b/docs/cli/why/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn why

Display the reason why a package is needed.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn why

Display the reason why a package is needed.

Usage

-
$> yarn why <package> [--peers]
-
+
$> yarn why <package> [--peers]

Details

This command prints the exact reasons why a package appears in the dependency tree.

-

If --peers is set, the command will also print the peer dependencies that +

If --peers is set, the command will also print the peer dependencies that match the specified name.

Examples

Explain why lodash is used in your project :

-
yarn why lodash
-
\ No newline at end of file +
yarn why lodash
\ No newline at end of file diff --git a/docs/cli/workspaces/foreach/index.html b/docs/cli/workspaces/foreach/index.html deleted file mode 100644 index aa0bbd8d4c1f..000000000000 --- a/docs/cli/workspaces/foreach/index.html +++ /dev/null @@ -1,46 +0,0 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn workspaces foreach

Run a command on all workspaces.

-

Usage

-
$> yarn workspaces foreach [... args]
-
\ No newline at end of file diff --git a/docs/cli/workspaces/foreach/run/index.html b/docs/cli/workspaces/foreach/run/index.html new file mode 100644 index 000000000000..93634904fd0c --- /dev/null +++ b/docs/cli/workspaces/foreach/run/index.html @@ -0,0 +1,76 @@ +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn workspaces foreach run

Run a command on all workspaces.

+

Usage

+
$> yarn workspaces foreach run <command> [... args] [-v,--verbose] [-p,--parallel] [-i,--interlaced] [-j,--jobs JOBS] [--topological] [--topological-dev] [--include WORKSPACES] [--exclude WORKSPACES]
+

Details

+

This command will run a given sub-command on all workspaces that define it (any +workspace that doesn't define it will be just skiped). Various flags can alter +the exact behavior of the command:

+
    +
  • +

    If -p,--parallel is set, the commands will run in parallel; they'll by +default be limited to a number of parallel tasks roughly equal to half your +core number, but that can be overriden via -j,--jobs.

    +
  • +
  • +

    If -p,--parallel and -i,--interlaced are both set, Yarn will print the +lines from the output as it receives them. If -i,--interlaced wasn't set, it +would instead buffer the output from each process and print the resulting +buffers only after their source processes have exited.

    +
  • +
  • +

    If --topological is set, Yarn will only run a command after all workspaces +that depend on it through the dependencies field have successfully finished +executing. If --tological-dev is set, both the dependencies and +devDependencies fields will be considered when figuring out the wait points.

    +
  • +
  • +

    The command may apply to only some workspaces through the use of --include +which acts as a whitelist. The --exclude flag will do the opposite and will +be a list of packages that musn't execute the script.

    +
  • +
+

Adding the -v,--verbose flag will cause Yarn to print more information; in +particular the name of the workspace that generated the output will be printed +at the front of each line.

\ No newline at end of file diff --git a/docs/cli/workspaces/list/index.html b/docs/cli/workspaces/list/index.html index f3cfb17a233b..c125d6a788fb 100644 --- a/docs/cli/workspaces/list/index.html +++ b/docs/cli/workspaces/list/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm publishyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn whyyarn workspaces foreachyarn workspaces list

yarn workspaces list

List all available workspaces.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
yarn addyarn binyarn cache cleanyarn config setyarn configyarn constraints checkyarn constraints fixyarn constraints queryyarn constraints sourceyarn dlxyarn helpyarn inityarn installyarn linkyarn nodeyarn npm loginyarn npm publishyarn npm whoamiyarn packyarn plugin dlyarn plugin listyarn policies set-resolutionyarn removeyarn runyarn set versionyarn stageyarn unplugyarn upyarn version applyyarn versionyarn whyyarn workspaces foreach runyarn workspaces list

yarn workspaces list

List all available workspaces.

Usage

-
$> yarn workspaces list [-v,--verbose] [--json]
-
\ No newline at end of file +
$> yarn workspaces list [-v,--verbose] [--json]
\ No newline at end of file diff --git a/docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js b/docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js similarity index 92% rename from docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js rename to docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js index af716ad32117..183f0908e3ac 100644 --- a/docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js +++ b/docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{158:function(t,M,L){"use strict";L.r(M);var i=L(7),j=(L(0),L(173)),e=L(202);M.default=function(){return Object(i.jsx)(j.a,null,Object(i.jsx)(e.a,{title:"404: Not found"}),Object(i.jsx)("h1",null,"NOT FOUND"),Object(i.jsx)("p",null,"You just hit a route that doesn't exist... the sadness."))}},164:function(t,M,L){"use strict";L.d(M,"b",function(){return i}),L.d(M,"a",function(){return j});var i=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},171:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(t,M){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(t,M,L){"use strict";var i=L(7),j=(L(177),L(163)),e=L.n(j),u=L(175),g=L(0),N=L.n(g),I=(L(178),L(167),L(165)),n=L(171),T=L(59),a=L(172),y=L.n(a),A=function(t){var M=t.align,L=t.height;return Object(i.jsx)("img",{alt:"Yarn",src:y.a,style:{height:L,verticalAlign:M}})};A.propTypes={align:e.a.string,height:e.a.oneOfType([e.a.number,e.a.string])},A.defaultProps={height:100};var C=A,c=L(164),r=Object(I.a)("div",{target:"e1e22q4b0"})(c.a,"{position:sticky;top:0;z-index:1;}"),D=Object(I.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),x=Object(I.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),s=Object(I.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",c.a,"{display:flex;}"),o=Object(I.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),O=Object(I.a)(T.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",c.b,"{margin-right:auto;padding:1em;}"),z=Object(I.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",c.a,"{display:none;}"),l=Object(I.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",c.a,"{display:flex;}",c.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),d=Object(I.a)(T.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",c.a,"{&.active{border-bottom-color:#2188b6;}}",c.b,"{width:100%;}"),S=function(){var t=n.data,M=Object(g.useState)(!1),L=M[0],j=M[1];return Object(i.jsx)(N.a.Fragment,null,Object(i.jsx)(r,null,Object(i.jsx)(D,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(x,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(s,null,Object(i.jsx)(o,null,Object(i.jsx)(O,{to:"/"},Object(i.jsx)(C,{height:"3em",align:"middle"})),Object(i.jsx)(z,{onClick:function(){return j(!L)}},"≡")),Object(i.jsx)(l,{className:L?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var M=t.name,L=t.link;return Object(i.jsx)(N.a.Fragment,{key:M},Object(i.jsx)(d,{to:L,activeClassName:"active",partiallyActive:"/"!==L},M))})))))};S.propTypes={siteTitle:e.a.string},S.defaultProps={siteTitle:""};var E=S,Y=function(t){var M=t.children;return Object(i.jsx)(N.a.Fragment,null,Object(i.jsx)(u.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(E,null),Object(i.jsx)("main",null,M))};Y.propTypes={children:e.a.node.isRequired};M.a=Y},202:function(t,M,L){"use strict";var i=L(7),j=L(203),e=L(163),u=L.n(e),g=L(175),N=L.n(g);L(0);function I(t){var M=t.description,L=t.lang,e=t.meta,u=t.keywords,g=t.title,I=j.data.site,n=M||I.siteMetadata.description;return Object(i.jsx)(N.a,{htmlAttributes:{lang:L},title:g,titleTemplate:"%s | "+I.siteMetadata.title,meta:[{name:"description",content:n},{property:"og:title",content:g},{property:"og:description",content:n},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{name:"twitter:creator",content:I.siteMetadata.author},{name:"twitter:title",content:g},{name:"twitter:description",content:n}].concat(u.length>0?{name:"keywords",content:u.join(", ")}:[]).concat(e)})}I.defaultProps={lang:"en",meta:[],keywords:[]},I.propTypes={description:u.a.string,lang:u.a.string,meta:u.a.array,keywords:u.a.arrayOf(u.a.string),title:u.a.string.isRequired},M.a=I},203:function(t){t.exports={data:{site:{siteMetadata:{title:"Yarn - Package Manager",description:"Foo",author:""}}}}}}]); -//# sourceMappingURL=component---src-pages-404-js-44667a8d8c9ed2e4407e.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{160:function(t,M,L){"use strict";L.r(M);var i=L(8),j=(L(0),L(175)),e=L(202);M.default=function(){return Object(i.jsx)(j.a,null,Object(i.jsx)(e.a,{title:"404: Not found"}),Object(i.jsx)("h1",null,"NOT FOUND"),Object(i.jsx)("p",null,"You just hit a route that doesn't exist... the sadness."))}},166:function(t,M,L){"use strict";L.d(M,"b",function(){return i}),L.d(M,"a",function(){return j});var i=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},173:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(t,M){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(t,M,L){"use strict";var i=L(8),j=(L(157),L(165)),e=L.n(j),u=L(177),g=L(0),N=L.n(g),I=(L(179),L(169),L(167)),n=L(173),T=L(59),a=L(174),y=L.n(a),A=function(t){var M=t.align,L=t.height;return Object(i.jsx)("img",{alt:"Yarn",src:y.a,style:{height:L,verticalAlign:M}})};A.propTypes={align:e.a.string,height:e.a.oneOfType([e.a.number,e.a.string])},A.defaultProps={height:100};var C=A,c=L(166),r=Object(I.a)("div",{target:"e1e22q4b0"})(c.a,"{position:sticky;top:0;z-index:1;}"),D=Object(I.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),x=Object(I.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),s=Object(I.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",c.a,"{display:flex;}"),o=Object(I.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),O=Object(I.a)(T.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",c.b,"{margin-right:auto;padding:1em;}"),z=Object(I.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",c.a,"{display:none;}"),l=Object(I.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",c.a,"{display:flex;}",c.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),d=Object(I.a)(T.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",c.a,"{&.active{border-bottom-color:#2188b6;}}",c.b,"{width:100%;}"),S=function(){var t=n.data,M=Object(g.useState)(!1),L=M[0],j=M[1];return Object(i.jsx)(N.a.Fragment,null,Object(i.jsx)(r,null,Object(i.jsx)(D,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(x,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(s,null,Object(i.jsx)(o,null,Object(i.jsx)(O,{to:"/"},Object(i.jsx)(C,{height:"3em",align:"middle"})),Object(i.jsx)(z,{onClick:function(){return j(!L)}},"≡")),Object(i.jsx)(l,{className:L?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var M=t.name,L=t.link;return Object(i.jsx)(N.a.Fragment,{key:M},Object(i.jsx)(d,{to:L,activeClassName:"active",partiallyActive:"/"!==L},M))})))))};S.propTypes={siteTitle:e.a.string},S.defaultProps={siteTitle:""};var E=S,Y=function(t){var M=t.children;return Object(i.jsx)(N.a.Fragment,null,Object(i.jsx)(u.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(E,null),Object(i.jsx)("main",null,M))};Y.propTypes={children:e.a.node.isRequired};M.a=Y},202:function(t,M,L){"use strict";var i=L(8),j=L(203),e=L(165),u=L.n(e),g=L(177),N=L.n(g);L(0);function I(t){var M=t.description,L=t.lang,e=t.meta,u=t.keywords,g=t.title,I=j.data.site,n=M||I.siteMetadata.description;return Object(i.jsx)(N.a,{htmlAttributes:{lang:L},title:g,titleTemplate:"%s | "+I.siteMetadata.title,meta:[{name:"description",content:n},{property:"og:title",content:g},{property:"og:description",content:n},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{name:"twitter:creator",content:I.siteMetadata.author},{name:"twitter:title",content:g},{name:"twitter:description",content:n}].concat(u.length>0?{name:"keywords",content:u.join(", ")}:[]).concat(e)})}I.defaultProps={lang:"en",meta:[],keywords:[]},I.propTypes={description:u.a.string,lang:u.a.string,meta:u.a.array,keywords:u.a.arrayOf(u.a.string),title:u.a.string.isRequired},M.a=I},203:function(t){t.exports={data:{site:{siteMetadata:{title:"Yarn - Package Manager",description:"Foo",author:""}}}}}}]); +//# sourceMappingURL=component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js.map \ No newline at end of file diff --git a/docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js.map b/docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js.map similarity index 99% rename from docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js.map rename to docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js.map index fba130515f1e..68f29d7dff16 100644 --- a/docs/component---src-pages-404-js-44667a8d8c9ed2e4407e.js.map +++ b/docs/component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/pages/404.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/seo.js"],"names":["NotFoundPage","Object","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","_components_layout__WEBPACK_IMPORTED_MODULE_2__","_components_seo__WEBPACK_IMPORTED_MODULE_3__","title","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","_ref","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","name","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","react_default","a","Fragment","href","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","SEO","description","lang","meta","keywords","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_1__","metaDescription","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","property","author","concat","length","join","array","arrayOf"],"mappings":"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","file":"component---src-pages-404-js-44667a8d8c9ed2e4407e.js","sourcesContent":["import React from 'react';\n\nimport Layout from '../components/layout';\nimport SEO from '../components/seo';\n\nconst NotFoundPage = () => (\n \n \n

NOT FOUND

\n

You just hit a route that doesn't exist... the sadness.

\n
\n);\n\nexport default NotFoundPage\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport {useStaticQuery, graphql} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport React from 'react';\n\nfunction SEO({ description, lang, meta, keywords, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n );\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n 0\n ? {\n name: `keywords`,\n content: keywords.join(`, `),\n }\n : []\n )\n .concat(meta)}\n />\n );\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n keywords: [],\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.array,\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/pages/404.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/seo.js"],"names":["NotFoundPage","Object","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","_components_layout__WEBPACK_IMPORTED_MODULE_2__","_components_seo__WEBPACK_IMPORTED_MODULE_3__","title","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","_ref","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","name","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","react_default","a","Fragment","href","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","SEO","description","lang","meta","keywords","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_1__","metaDescription","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","property","author","concat","length","join","array","arrayOf"],"mappings":"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","file":"component---src-pages-404-js-c0fb5d895e5a3fa4f9f4.js","sourcesContent":["import React from 'react';\n\nimport Layout from '../components/layout';\nimport SEO from '../components/seo';\n\nconst NotFoundPage = () => (\n \n \n

NOT FOUND

\n

You just hit a route that doesn't exist... the sadness.

\n
\n);\n\nexport default NotFoundPage\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport {useStaticQuery, graphql} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport React from 'react';\n\nfunction SEO({ description, lang, meta, keywords, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n );\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n 0\n ? {\n name: `keywords`,\n content: keywords.join(`, `),\n }\n : []\n )\n .concat(meta)}\n />\n );\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n keywords: [],\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.array,\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js b/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js deleted file mode 100644 index f7bac940fc9f..000000000000 --- a/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{162:function(e,t,n){"use strict";n.r(t);var i=n(7),a=n(0),c=n.n(a),s=(n(167),n(204),n(165)),j=Object(s.a)("div",{target:"e10agvck0"})({name:"jo4dvf",styles:'padding:1.5em;font-family:"PT Mono";line-height:1.6em;background:#242424;color:#ddddcc;a[href^="#"]{border-bottom:1px dotted #ddddcc;text-decoration:none;}code{font-family:"PT Mono";color:#639db1;}&,span{white-space:nowrap;}'}),l={name:"nq4fwr",styles:"& >:first-child{margin-top:1em;}& >:last-child{margin-bottom:1em;}"},r={name:"ncd0q6",styles:"color:#8ac6f2;"},o={name:"1wz9506",styles:"color:#95e454;"},u={name:"1ua7ycq",styles:"color:#f08080;"},d=Object(s.a)("div",{target:"e10agvck1"})({name:"kp75z1",styles:"padding:1em;&:first-of-type{margin-top:0;}&:target{background:#384973;}& + div{margin-top:-0.5em;}"}),g=Object(s.a)("div",{target:"e10agvck2"})({name:"dq7d5f",styles:'margin-bottom:0.5em;font-family:"Open Sans";white-space:normal;'}),M=function(e){var t=e.description,n=e.anchor,a=e.children;return t?Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(d,{id:""+n},Object(i.jsx)(g,null,t),a)):a},L=function(e){var t=e.name,n=e.anchorTarget;return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)("a",{css:r,href:n?"#"+n:null},'"',t,'"'))},x=function(e){var t=e.name,n=e.anchorTarget,a=e.children;return Object(i.jsx)("div",null,Object(i.jsx)("div",null,t&&Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(L,{name:t,anchorTarget:n}),": "),"["),Object(i.jsx)("div",{style:{paddingLeft:"2em"}},a),Object(i.jsx)("div",null,t?"],":"]"))},p=function(e){var t=e.name,n=e.anchorTarget,a=e.children,s=e.margin;return Object(i.jsx)("div",null,Object(i.jsx)("div",null,t&&Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(L,{name:t,anchorTarget:n}),": "),"{"),Object(i.jsx)("div",{style:{paddingLeft:"2em"},css:s?l:null},a),Object(i.jsx)("div",null,t?"},":"}"))},b=function(e){var t=e.placeholder;return Object(i.jsx)("div",null,Object(i.jsx)("span",{css:o},JSON.stringify(t)),",")},m=function(e){var t=e.name,n=e.margin,a=e.description,s=e.children;return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(M,{description:a,anchor:t},Object(i.jsx)(p,{name:t,margin:n,anchorTarget:a?t:null},s)))},h=function(e){var t=e.name,n=e.description,a=e.children;return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(M,{description:n,anchor:t},Object(i.jsx)(x,{name:t,anchorTarget:n?t:null},a)))},y=function(e){var t=e.name,n=e.placeholder,a=e.description;return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(M,{description:a,anchor:t},Object(i.jsx)("div",null,Object(i.jsx)(L,{name:t,anchorTarget:a?t:null}),": ",Object(i.jsx)("span",{css:o},JSON.stringify(n)),",")))},O=function(e){var t=e.name,n=e.placeholder,a=e.description;return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(M,{description:a,anchor:t},Object(i.jsx)("div",null,Object(i.jsx)(L,{name:t,anchorTarget:a?t:null}),": ",Object(i.jsx)("span",{css:u},n),",")))},N=n(205);t.default=function(){return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(N.a,null,Object(i.jsx)(j,null,Object(i.jsx)(y,{name:"name",placeholder:"@scope/name",description:Object(i.jsx)(c.a.Fragment,null,"The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here ",Object(i.jsx)("code",null,"@scope/"),") is optional and is used as a namespace).")}),Object(i.jsx)(y,{name:"version",placeholder:"1.2.3",description:Object(i.jsx)(c.a.Fragment,null,"The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.")}),Object(i.jsx)(O,{name:"private",placeholder:"true",description:Object(i.jsx)(c.a.Fragment,null,"If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.")}),Object(i.jsx)(y,{name:"license",placeholder:"MIT",description:Object(i.jsx)(c.a.Fragment,null,"An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the ",Object(i.jsx)("code",null,"initLicense")," settings.")}),Object(i.jsx)(y,{name:"main",placeholder:"./sources/index.js",description:Object(i.jsx)(c.a.Fragment,null,"The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the ",Object(i.jsx)("code",null,"publishConfig.main")," field.")}),Object(i.jsx)(y,{name:"module",placeholder:"./sources/index.mjs",description:Object(i.jsx)(c.a.Fragment,null,"The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.")}),Object(i.jsx)(y,{name:"languageName",placeholder:"node",description:Object(i.jsx)(c.a.Fragment,null,"An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.")}),Object(i.jsx)(m,{name:"bin",description:Object(i.jsx)(c.a.Fragment,null,"A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the ",Object(i.jsx)("code",null,"$PATH"),". Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).")},Object(i.jsx)(y,{name:"my-bin",placeholder:"./dist/my-bin.js"})),Object(i.jsx)(m,{name:"scripts",description:Object(i.jsx)(c.a.Fragment,null,"A field used to list small shell scripts that will be executed when running ",Object(i.jsx)("code",null,"yarn run"),". Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing ",Object(i.jsx)("code",null,":")," (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).")},Object(i.jsx)(y,{name:"test",placeholder:"jest"}),Object(i.jsx)(y,{name:"build",placeholder:"webpack-cli --config ./webpack.config.js"}),Object(i.jsx)(y,{name:"count-words",placeholder:'echo "$@" | wc -w'})),Object(i.jsx)(m,{name:"dependencies",description:Object(i.jsx)(c.a.Fragment,null,"The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.")},Object(i.jsx)(y,{name:"webpack",placeholder:"^5.0.0"})),Object(i.jsx)(m,{name:"devDependencies",description:Object(i.jsx)(c.a.Fragment,null,"Similar to the ",Object(i.jsx)("code",null,"dependencies"),' field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in "production" or "development" mode, Yarn doesn\'t offer a way to prevent the installation of dev dependencies at the moment.')},Object(i.jsx)(y,{name:"webpack",placeholder:"^5.0.0"})),Object(i.jsx)(m,{name:"peerDependencies",description:Object(i.jsx)(c.a.Fragment,null,"Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.")},Object(i.jsx)(y,{name:"react",placeholder:"*"}),Object(i.jsx)(y,{name:"react-dom",placeholder:"*"})),Object(i.jsx)(h,{name:"workspaces",description:Object(i.jsx)(c.a.Fragment,null,"Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The ",Object(i.jsx)("code",null,"workspaces")," field is a list of glob pattern that match all directories that should become workspaces of your application.")},Object(i.jsx)(b,{placeholder:"packages/*"})),Object(i.jsx)(m,{name:"dependenciesMeta",description:Object(i.jsx)(c.a.Fragment,null,"This field lists some extra information related to the dependencies listed in the ",Object(i.jsx)("code",null,"dependencies")," and ",Object(i.jsx)("code",null,"devDependencies")," field. In the context of a workspaced project most of these settings will affect ",Object(i.jsx)("em",null,"all workspaces")," and as such must be specified at the ",Object(i.jsx)("em",null,"root")," of the project (except if noted otherwise, the ",Object(i.jsx)("code",null,"dependenciesMeta")," field will be ignored if found within a workspace).")},Object(i.jsx)(m,{name:"fsevents",margin:!0},Object(i.jsx)(O,{name:"built",placeholder:"false",description:Object(i.jsx)(c.a.Fragment,null,"If false, the package will never be built. When the global settings ",Object(i.jsx)("code",null,"enableScripts")," is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.")}),Object(i.jsx)(O,{name:"unplugged",placeholder:"true",description:Object(i.jsx)(c.a.Fragment,null,"If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example ",Object(i.jsx)("code",null,"nan")," contains C++ headers).")}))),Object(i.jsx)(m,{name:"peerDependenciesMeta",description:Object(i.jsx)(c.a.Fragment,null,"This field lists some extra information related to the dependencies listed in the ",Object(i.jsx)("code",null,"peerDependencies")," field.")},Object(i.jsx)(m,{name:"react-dom",margin:!0},Object(i.jsx)(O,{name:"optional",placeholder:"true",description:Object(i.jsx)(c.a.Fragment,null,"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.")}))),Object(i.jsx)(m,{name:"resolutions",description:Object(i.jsx)(c.a.Fragment,null,"This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.")},Object(i.jsx)(y,{name:"relay-compiler",placeholder:"3.0.0"}),Object(i.jsx)(y,{name:"webpack/memory-fs",placeholder:"0.4.1"}),Object(i.jsx)(y,{name:"@babel/core/json5",placeholder:"2.1.0"}),Object(i.jsx)(y,{name:"@babel/core/@babel/generator",placeholder:"7.3.4"}),Object(i.jsx)(y,{name:"@babel/core@npm:7.0.0/@babel/generator",placeholder:"7.3.4"}),Object(i.jsx)(y,{name:"@babel/core/@npm:babel/generator@npm:^7.0.0",placeholder:"7.3.4"})),Object(i.jsx)(m,{name:"publishConfig"},Object(i.jsx)(y,{name:"main",placeholder:"./build/index.js",description:Object(i.jsx)(c.a.Fragment,null,"If present, the top-level ",Object(i.jsx)("code",null,"main")," field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.")}),Object(i.jsx)(y,{name:"module",placeholder:"./build/index.mjs",description:Object(i.jsx)(c.a.Fragment,null,"Same principle as the ",Object(i.jsx)("code",null,"publishConfig.main")," property; this value will be used instead of the top-level ",Object(i.jsx)("code",null,"module")," field when generating the workspace tarball.")})))))}},164:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=function(){return"@media (max-width: 600px)"},a=function(){return"@media (min-width: 601px)"}},171:function(e){e.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(e,t,n){"use strict";var i=n(7),a=(n(177),n(163)),c=n.n(a),s=n(175),j=n(0),l=n.n(j),r=(n(178),n(167),n(165)),o=n(171),u=n(59),d=n(172),g=n.n(d),M=function(e){var t=e.align,n=e.height;return Object(i.jsx)("img",{alt:"Yarn",src:g.a,style:{height:n,verticalAlign:t}})};M.propTypes={align:c.a.string,height:c.a.oneOfType([c.a.number,c.a.string])},M.defaultProps={height:100};var L=M,x=n(164),p=Object(r.a)("div",{target:"e1e22q4b0"})(x.a,"{position:sticky;top:0;z-index:1;}"),b=Object(r.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),m=Object(r.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),h=Object(r.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",x.a,"{display:flex;}"),y=Object(r.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),O=Object(r.a)(u.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",x.b,"{margin-right:auto;padding:1em;}"),N=Object(r.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",x.a,"{display:none;}"),I=Object(r.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",x.a,"{display:flex;}",x.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),T=Object(r.a)(u.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",x.a,"{&.active{border-bottom-color:#2188b6;}}",x.b,"{width:100%;}"),f=function(){var e=o.data,t=Object(j.useState)(!1),n=t[0],a=t[1];return Object(i.jsx)(l.a.Fragment,null,Object(i.jsx)(p,null,Object(i.jsx)(b,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(m,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(h,null,Object(i.jsx)(y,null,Object(i.jsx)(O,{to:"/"},Object(i.jsx)(L,{height:"3em",align:"middle"})),Object(i.jsx)(N,{onClick:function(){return a(!n)}},"≡")),Object(i.jsx)(I,{className:n?"expanded":""},e.site.siteMetadata.menuLinks.map(function(e){var t=e.name,n=e.link;return Object(i.jsx)(l.a.Fragment,{key:t},Object(i.jsx)(T,{to:n,activeClassName:"active",partiallyActive:"/"!==n},t))})))))};f.propTypes={siteTitle:c.a.string},f.defaultProps={siteTitle:""};var A=f,C=function(e){var t=e.children;return Object(i.jsx)(l.a.Fragment,null,Object(i.jsx)(s.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(A,null),Object(i.jsx)("main",null,t))};C.propTypes={children:c.a.node.isRequired};t.a=C},176:function(e,t,n){"use strict";n(82),n(167);var i=n(165),a=n(7),c=n(59),s=n(0),j=n.n(s),l=n(164),r=Object(i.a)("div",{target:"e136yufg0"})("position:relative;",l.a,"{padding-left:300px;}"),o=Object(i.a)("div",{target:"e136yufg1"})(l.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),u=Object(i.a)(c.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),d=Object(i.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});t.a=function(e){var t=e.items,n=e.children;return Object(a.jsx)(j.a.Fragment,null,Object(a.jsx)(r,null,Object(a.jsx)(o,null,t.map(function(e){var t=e.to,n=e.name;return Object(a.jsx)(j.a.Fragment,{key:n},Object(a.jsx)(u,{to:t,activeClassName:"active"},n.match(/^`.*`$/)?Object(a.jsx)("code",null,n.slice(1,-1)):n))})),Object(a.jsx)(d,null,n)))}},204:function(e,t,n){"use strict";n(194)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},205:function(e,t,n){"use strict";var i=n(7),a=n(163),c=n.n(a),s=n(0),j=n.n(s),l=n(173),r=n(176),o=function(e){var t=e.children;return Object(i.jsx)(j.a.Fragment,null,Object(i.jsx)(l.a,null,Object(i.jsx)(r.a,{items:[{to:"/configuration/manifest",name:"Manifests"},{to:"/configuration/yarnrc",name:"Yarnrc files"}]},t)))};o.propTypes={children:c.a.node.isRequired},t.a=o}}]); -//# sourceMappingURL=component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js.map \ No newline at end of file diff --git a/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js.map b/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js.map deleted file mode 100644 index 4b84480874f3..000000000000 --- a/docs/component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/json.js","webpack:///./src/pages/configuration/manifest.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:////mnt/d/berry/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.string.anchor.js","webpack:///./src/components/layout-configuration.js"],"names":["JsonContainer","Object","styled_base_browser_esm","target","name","styles","marginContainer","jsonKey","stringValue","booleanValue","JsonDescriptionContainer","JsonDescription","JsonDescribe","_ref","description","anchor","children","core_browser_cjs","react_default","a","Fragment","id","JsonKey","_ref2","anchorTarget","css","href","JsonArray","_ref3","json_JsonKey","style","paddingLeft","JsonObject","_ref4","margin","JsonString","_ref5","placeholder","JSON","stringify","JsonObjectProperty","_ref6","json_JsonDescribe","json_JsonObject","JsonArrayProperty","_ref7","json_JsonArray","JsonStringProperty","_ref8","JsonBooleanProperty","_ref9","PackageJsonDoc","layout_configuration","json_JsonStringProperty","json_JsonBooleanProperty","json_JsonObjectProperty","json_JsonArrayProperty","json_JsonString","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","alt","src","yarnKittenFull","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","NewsContainer","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","items","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","match","slice","createHTML","this","ConfigurationLayout","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__"],"mappings":"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","file":"component---src-pages-configuration-manifest-js-9645a25bc82f172f93e8.js","sourcesContent":["import {css} from '@emotion/core';\nimport styled from '@emotion/styled';\nimport React from 'react';\n\nexport const JsonContainer = styled.div`\n padding: 1.5em;\n\n font-family: \"PT Mono\";\n line-height: 1.6em;\n\n background: #242424;\n color: #ddddcc;\n\n a[href^=\"#\"] {\n border-bottom: 1px dotted #ddddcc;\n\n text-decoration: none;\n }\n\n code {\n font-family: \"PT Mono\";\n\n color: #639db1;\n }\n\n &, span {\n white-space: nowrap;\n }\n`;\n\nexport const marginContainer = css`\n & > :first-child {\n margin-top: 1em;\n }\n\n & > :last-child {\n margin-bottom: 1em;\n }\n`;\n\nexport const jsonKey = css`\n color: #8ac6f2;\n`;\n\nexport const stringValue = css`\n color: #95e454;\n`;\n\nexport const booleanValue = css`\n color: #f08080;\n`;\n\nexport const JsonDescriptionContainer = styled.div`\n padding: 1em;\n\n &:first-of-type {\n margin-top: 0;\n }\n\n &:target {\n background: #384973;\n }\n\n & + div {\n margin-top: -0.5em;\n }\n`;\n\nexport const JsonDescription = styled.div`\n margin-bottom: 0.5em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n`;\n\nexport const JsonDescribe = ({description, anchor, children}) => description ? <>\n \n {\n {description}\n }\n {children}\n \n : children;\n\nexport const JsonKey = ({name, anchorTarget}) => <>\n \"{name}\"\n;\n\nexport const JsonArray = ({name, anchorTarget, children}) =>
\n
{name && <>{`: `}}{`[`}
\n
\n {children}\n
\n
{name ? `],` : `]`}
\n
;\n\nexport const JsonObject = ({name, anchorTarget, children, margin}) =>
\n
{name && <>{`: `}}{`{`}
\n
\n {children}\n
\n
{name ? `},` : `}`}
\n
;\n\nexport const JsonString = ({placeholder}) =>
\n {JSON.stringify(placeholder)},\n
;\n\nexport const JsonObjectProperty = ({name, margin, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const JsonArrayProperty = ({name, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const JsonStringProperty = ({name, placeholder, description}) => <>\n \n
\n : {JSON.stringify(placeholder)},\n
\n
\n;\n\nexport const JsonBooleanProperty = ({name, placeholder, description}) => <>\n \n
\n : {placeholder},\n
\n
\n;\n","import React from 'react';\n\nimport {JsonContainer, JsonString} from '../../components/json';\nimport {JsonArrayProperty, JsonBooleanProperty} from '../../components/json';\nimport {JsonObjectProperty, JsonStringProperty} from '../../components/json';\nimport Layout from '../../components/layout-configuration';\n\nconst PackageJsonDoc = () => <>\n \n \n \n The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here @scope/) is optional and is used as a namespace).\n }\n />\n \n The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.\n }\n />\n \n If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.\n }\n />\n \n An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the initLicense settings.\n }\n />\n \n The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the publishConfig.main field.\n }\n />\n \n The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.\n }\n />\n \n An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.\n }\n />\n \n A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the $PATH. Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).\n }\n >\n \n \n \n A field used to list small shell scripts that will be executed when running yarn run. Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing : (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).\n }\n >\n \n \n \n \n \n The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.\n }\n >\n \n \n \n Similar to the dependencies field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in \"production\" or \"development\" mode, Yarn doesn't offer a way to prevent the installation of dev dependencies at the moment.\n }\n >\n \n \n \n Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.\n }\n >\n \n \n \n \n Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The workspaces field is a list of glob pattern that match all directories that should become workspaces of your application.\n }\n >\n \n \n \n This field lists some extra information related to the dependencies listed in the dependencies and devDependencies field. In the context of a workspaced project most of these settings will affect all workspaces and as such must be specified at the root of the project (except if noted otherwise, the dependenciesMeta field will be ignored if found within a workspace).\n }\n >\n \n \n If false, the package will never be built. When the global settings enableScripts is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.\n }\n />\n \n If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example nan contains C++ headers).\n }\n />\n \n \n \n This field lists some extra information related to the dependencies listed in the peerDependencies field.\n }\n >\n \n \n If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.\n }\n />\n \n \n \n This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.\n }\n >\n \n \n \n \n \n \n \n \n \n If present, the top-level main field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.\n }\n />\n \n Same principle as the publishConfig.main property; this value will be used instead of the top-level module field when generating the workspace tarball.\n }\n />\n \n \n \n;\n\nexport default PackageJsonDoc;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\n\nconst ConfigurationLayout = ({children}) => <>\n \n \n {children}\n \n \n;\n\nConfigurationLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ConfigurationLayout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js b/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js new file mode 100644 index 000000000000..675adbaf832d --- /dev/null +++ b/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{163:function(e,t,n){"use strict";n.r(t);var i=n(8),a=n(0),c=n.n(a),s=n(37),r=n.n(s),o=n(204),l={colors:{background:"#242424",documentation:"#ddddcc",highlight:"#384973",code:"#639db1",key:"#8ac6f2",string:"#95e454",boolean:"#f08080"},formatKey:function(e){return JSON.stringify(e)},formatValue:function(e){return JSON.stringify(e)},keys:{suffix:": "},dictionaries:{leading:"{",trailing:"}",suffix:","},arrays:{leading:"[",trailing:"]",prefix:"",suffix:","}},j=function(e){return Object(i.jsx)(o.b,r()({},e,{theme:l}))},u=function(e){return Object(i.jsx)(o.d,r()({},e,{theme:l}))},d=function(e){return Object(i.jsx)(o.a,r()({},e,{theme:l}))},g=function(e){return Object(i.jsx)(o.c,r()({},e,{theme:l}))},M=function(e){return Object(i.jsx)(o.f,r()({},e,{theme:l}))},m=function(e){return Object(i.jsx)(o.e,r()({},e,{theme:l}))},x=n(205);t.default=function(){return Object(i.jsx)(c.a.Fragment,null,Object(i.jsx)(x.a,null,Object(i.jsx)(j,null,Object(i.jsx)(u,null,"Manifest files (also called ",Object(i.jsx)("code",null,"package.json")," because of their name) contain everything needed to describe the settings unique to one particular package. Project will contain multiple such manifests if they use the workspace feature, as each workspace is described through its own manifest."),Object(i.jsx)(M,{name:"name",placeholder:"@scope/name",description:Object(i.jsx)(c.a.Fragment,null,"The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here ",Object(i.jsx)("code",null,"@scope/"),") is optional and is used as a namespace).")}),Object(i.jsx)(M,{name:"version",placeholder:"1.2.3",description:Object(i.jsx)(c.a.Fragment,null,"The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.")}),Object(i.jsx)(M,{name:"private",placeholder:!0,description:Object(i.jsx)(c.a.Fragment,null,"If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.")}),Object(i.jsx)(M,{name:"license",placeholder:"MIT",description:Object(i.jsx)(c.a.Fragment,null,"An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the ",Object(i.jsx)("code",null,"initLicense")," settings.")}),Object(i.jsx)(M,{name:"main",placeholder:"./sources/index.js",description:Object(i.jsx)(c.a.Fragment,null,"The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the ",Object(i.jsx)("code",null,"publishConfig.main")," field.")}),Object(i.jsx)(M,{name:"module",placeholder:"./sources/index.mjs",description:Object(i.jsx)(c.a.Fragment,null,"The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.")}),Object(i.jsx)(M,{name:"languageName",placeholder:"node",description:Object(i.jsx)(c.a.Fragment,null,"An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.")}),Object(i.jsx)(g,{name:"bin",description:Object(i.jsx)(c.a.Fragment,null,"A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the ",Object(i.jsx)("code",null,"$PATH"),". Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).")},Object(i.jsx)(M,{name:"my-bin",placeholder:"./dist/my-bin.js"})),Object(i.jsx)(g,{name:"scripts",description:Object(i.jsx)(c.a.Fragment,null,"A field used to list small shell scripts that will be executed when running ",Object(i.jsx)("code",null,"yarn run"),". Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing ",Object(i.jsx)("code",null,":")," (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).")},Object(i.jsx)(M,{name:"test",placeholder:"jest"}),Object(i.jsx)(M,{name:"build",placeholder:"webpack-cli --config ./webpack.config.js"}),Object(i.jsx)(M,{name:"count-words",placeholder:'echo "$@" | wc -w'})),Object(i.jsx)(g,{name:"dependencies",description:Object(i.jsx)(c.a.Fragment,null,"The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.")},Object(i.jsx)(M,{name:"webpack",placeholder:"^5.0.0"})),Object(i.jsx)(g,{name:"devDependencies",description:Object(i.jsx)(c.a.Fragment,null,"Similar to the ",Object(i.jsx)("code",null,"dependencies"),' field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in "production" or "development" mode, Yarn doesn\'t offer a way to prevent the installation of dev dependencies at the moment.')},Object(i.jsx)(M,{name:"webpack",placeholder:"^5.0.0"})),Object(i.jsx)(g,{name:"peerDependencies",description:Object(i.jsx)(c.a.Fragment,null,"Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.")},Object(i.jsx)(M,{name:"react",placeholder:"*"}),Object(i.jsx)(M,{name:"react-dom",placeholder:"*"})),Object(i.jsx)(d,{name:"workspaces",description:Object(i.jsx)(c.a.Fragment,null,"Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The ",Object(i.jsx)("code",null,"workspaces")," field is a list of glob pattern that match all directories that should become workspaces of your application.")},Object(i.jsx)(m,{placeholder:"packages/*"})),Object(i.jsx)(g,{name:"dependenciesMeta",description:Object(i.jsx)(c.a.Fragment,null,"This field lists some extra information related to the dependencies listed in the ",Object(i.jsx)("code",null,"dependencies")," and ",Object(i.jsx)("code",null,"devDependencies")," field. In the context of a workspaced project most of these settings will affect ",Object(i.jsx)("em",null,"all workspaces")," and as such must be specified at the ",Object(i.jsx)("em",null,"root")," of the project (except if noted otherwise, the ",Object(i.jsx)("code",null,"dependenciesMeta")," field will be ignored if found within a workspace).")},Object(i.jsx)(g,{name:"fsevents",margin:!0},Object(i.jsx)(M,{name:"built",anchor:"dependenciesMeta.built",placeholder:!1,description:Object(i.jsx)(c.a.Fragment,null,"If false, the package will never be built. When the global settings ",Object(i.jsx)("code",null,"enableScripts")," is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.")}),Object(i.jsx)(M,{name:"unplugged",anchor:"dependenciesMeta.unplugged",placeholder:!0,description:Object(i.jsx)(c.a.Fragment,null,"If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example ",Object(i.jsx)("code",null,"nan")," contains C++ headers).")}))),Object(i.jsx)(g,{name:"peerDependenciesMeta",description:Object(i.jsx)(c.a.Fragment,null,"This field lists some extra information related to the dependencies listed in the ",Object(i.jsx)("code",null,"peerDependencies")," field.")},Object(i.jsx)(g,{name:"react-dom",margin:!0},Object(i.jsx)(M,{name:"optional",anchor:"peerDependenciesMeta.optional",placeholder:!0,description:Object(i.jsx)(c.a.Fragment,null,"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.")}))),Object(i.jsx)(g,{name:"resolutions",description:Object(i.jsx)(c.a.Fragment,null,"This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.")},Object(i.jsx)(M,{name:"relay-compiler",placeholder:"3.0.0"}),Object(i.jsx)(M,{name:"webpack/memory-fs",placeholder:"0.4.1"}),Object(i.jsx)(M,{name:"@babel/core/json5",placeholder:"2.1.0"}),Object(i.jsx)(M,{name:"@babel/core/@babel/generator",placeholder:"7.3.4"}),Object(i.jsx)(M,{name:"@babel/core@npm:7.0.0/@babel/generator",placeholder:"7.3.4"}),Object(i.jsx)(M,{name:"@babel/core/@npm:babel/generator@npm:^7.0.0",placeholder:"7.3.4"})),Object(i.jsx)(g,{name:"publishConfig",margin:!0,description:Object(i.jsx)(c.a.Fragment,null,"This field contains various settings that are only taken into consideration when a package is generated from your local sources (either through ",Object(i.jsx)("code",null,"yarn pack")," or one of the publish commands like ",Object(i.jsx)("code",null,"yarn npm publish"),").")},Object(i.jsx)(M,{name:"main",anchor:"publishConfig.main",placeholder:"./build/index.js",description:Object(i.jsx)(c.a.Fragment,null,"If present, the top-level ",Object(i.jsx)("code",null,"main")," field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.")}),Object(i.jsx)(M,{name:"module",anchor:"publishConfig.module",placeholder:"./build/index.mjs",description:Object(i.jsx)(c.a.Fragment,null,"Same principle as the ",Object(i.jsx)("code",null,"publishConfig.main")," property; this value will be used instead of the top-level ",Object(i.jsx)("code",null,"module")," field when generating the workspace tarball.")})))))}},166:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=function(){return"@media (max-width: 600px)"},a=function(){return"@media (min-width: 601px)"}},173:function(e){e.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(e,t,n){"use strict";var i=n(8),a=(n(157),n(165)),c=n.n(a),s=n(177),r=n(0),o=n.n(r),l=(n(179),n(169),n(167)),j=n(173),u=n(59),d=n(174),g=n.n(d),M=function(e){var t=e.align,n=e.height;return Object(i.jsx)("img",{alt:"Yarn",src:g.a,style:{height:n,verticalAlign:t}})};M.propTypes={align:c.a.string,height:c.a.oneOfType([c.a.number,c.a.string])},M.defaultProps={height:100};var m=M,x=n(166),L=Object(l.a)("div",{target:"e1e22q4b0"})(x.a,"{position:sticky;top:0;z-index:1;}"),p=Object(l.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),h=Object(l.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),b=Object(l.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",x.a,"{display:flex;}"),f=Object(l.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),y=Object(l.a)(u.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",x.b,"{margin-right:auto;padding:1em;}"),O=Object(l.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",x.a,"{display:none;}"),N=Object(l.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",x.a,"{display:flex;}",x.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),I=Object(l.a)(u.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",x.a,"{&.active{border-bottom-color:#2188b6;}}",x.b,"{width:100%;}"),T=function(){var e=j.data,t=Object(r.useState)(!1),n=t[0],a=t[1];return Object(i.jsx)(o.a.Fragment,null,Object(i.jsx)(L,null,Object(i.jsx)(p,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(h,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(b,null,Object(i.jsx)(f,null,Object(i.jsx)(y,{to:"/"},Object(i.jsx)(m,{height:"3em",align:"middle"})),Object(i.jsx)(O,{onClick:function(){return a(!n)}},"≡")),Object(i.jsx)(N,{className:n?"expanded":""},e.site.siteMetadata.menuLinks.map(function(e){var t=e.name,n=e.link;return Object(i.jsx)(o.a.Fragment,{key:t},Object(i.jsx)(I,{to:n,activeClassName:"active",partiallyActive:"/"!==n},t))})))))};T.propTypes={siteTitle:c.a.string},T.defaultProps={siteTitle:""};var A=T,C=function(e){var t=e.children;return Object(i.jsx)(o.a.Fragment,null,Object(i.jsx)(s.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(A,null),Object(i.jsx)("main",null,t))};C.propTypes={children:c.a.node.isRequired};t.a=C},178:function(e,t,n){"use strict";n(82),n(169);var i=n(167),a=n(8),c=n(59),s=n(0),r=n.n(s),o=n(166),l=Object(i.a)("div",{target:"e136yufg0"})("position:relative;",o.a,"{padding-left:300px;}"),j=Object(i.a)("div",{target:"e136yufg1"})(o.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),u=Object(i.a)(c.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),d=Object(i.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});t.a=function(e){var t=e.items,n=e.children;return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(l,null,Object(a.jsx)(j,null,t.map(function(e){var t=e.to,n=e.name;return Object(a.jsx)(r.a.Fragment,{key:n},Object(a.jsx)(u,{to:t,activeClassName:"active"},n.match(/^`.*`$/)?Object(a.jsx)("code",null,n.slice(1,-1)):n))})),Object(a.jsx)(d,null,n)))}},204:function(e,t,n){"use strict";n.d(t,"b",function(){return l}),n.d(t,"d",function(){return j}),n.d(t,"e",function(){return b}),n.d(t,"c",function(){return f}),n.d(t,"a",function(){return y}),n.d(t,"f",function(){return O});n(84),n(61),n(36),n(169),n(250);var i=n(167),a=n(8),c=n(254),s=n(0),r=n.n(s),o=function(e,t){return"string"==typeof t?e.colors.string:"boolean"==typeof t?e.colors.boolean:null},l=Object(i.a)("div",{target:"e1u1l3mo0"})('padding:1.5em;font-family:"PT Mono";line-height:1.6em;background:',function(e){return e.theme.colors.background},";color:",function(e){return e.theme.colors.documentation},';a[href^="#"]{text-decoration:none;}code{font-family:"PT Mono";color:',function(e){return e.theme.colors.code},";}&,span{white-space:nowrap;}"),j=Object(i.a)("div",{target:"e1u1l3mo1"})({name:"1aey2g2",styles:'border:1px solid;padding:1em;font-family:"Open Sans";white-space:normal;& + *{margin-top:0 !important;}'}),u={name:"dt6qdf",styles:'& >:first-child{margin-top:-1.5em;}& >:last-child{margin-bottom:-1.5em;}&[data-dictionaries-suffix=""] >:last-child{margin-bottom:-2.5em;}'},d=Object(i.a)("div",{target:"e1u1l3mo2"})("margin-top:-3em;padding:1.5em 0;&:target > div{background:",function(e){return e.theme.colors.highlight},";}"),g=Object(i.a)("div",{target:"e1u1l3mo3"})({name:"j65q0t",styles:"padding:1em;&:first-of-type{margin-top:0;}& + div{margin-top:-0.5em;}"}),M=Object(i.a)("div",{target:"e1u1l3mo4"})({name:"dq7d5f",styles:'margin-bottom:0.5em;font-family:"Open Sans";white-space:normal;'}),m=function(e){var t=e.theme,n=e.description,i=e.anchor,c=e.children;return n?Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(d,{id:""+i,theme:t},Object(a.jsx)(g,{theme:t},Object(a.jsx)(M,{theme:t},n),c))):c},x=function(){return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)("span",{style:{fontSize:"0.7em"}},Object(a.jsx)(c.a,null)))},L=function(e){var t=e.theme,n=e.name,i=e.anchorTarget;return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)("span",{style:{color:t.colors.key}},i?Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)("a",{style:{color:"inherit"},href:"#"+i},Object(a.jsx)(x,null)," ",t.formatKey(n))):Object(a.jsx)(r.a.Fragment,null,t.formatKey(n))),t.keys.suffix)},p=function(e){var t=e.theme,n=e.name,i=e.suffix,c=e.anchorTarget,s=e.children;return Object(a.jsx)("div",null,Object(a.jsx)("div",null,n&&Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(L,{theme:t,name:n,anchorTarget:c})),t.arrays.leading),Object(a.jsx)("div",{style:{paddingLeft:"2em"}},r.a.Children.map(s,function(e){return Object(a.jsx)("div",{style:{display:"flex"}},Object(a.jsx)("div",null,t.arrays.prefix),Object(a.jsx)("div",null,r.a.cloneElement(e,{suffix:t.arrays.suffix})))})),Object(a.jsx)("div",null,t.arrays.trailing,i))},h=function(e){var t=e.theme,n=e.name,i=e.suffix,c=e.anchorTarget,s=e.children,o=e.margin;return Object(a.jsx)("div",null,Object(a.jsx)("div",null,n&&Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(L,{theme:t,name:n,anchorTarget:c})),t.dictionaries.leading),Object(a.jsx)("div",{style:{paddingLeft:"2em"},css:o?u:null,"data-dictionaries-suffix":t.dictionaries.suffix},r.a.Children.map(s,function(e){return Object(a.jsx)(r.a.Fragment,null,r.a.cloneElement(e,{suffix:t.dictionaries.suffix}))})),Object(a.jsx)("div",null,t.dictionaries.trailing,i))},b=function(e){var t=e.theme,n=e.suffix,i=e.placeholder;return Object(a.jsx)("div",null,Object(a.jsx)("span",{style:{color:o(t,i)}},t.formatValue(i)),n)},f=function(e){var t=e.theme,n=e.name,i=e.anchor,c=void 0===i?n:i,s=e.margin,o=e.description,l=e.children;return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(m,{theme:t,description:o,anchor:o?c:null},Object(a.jsx)(h,{theme:t,name:n,margin:s,anchorTarget:o?c:null},l)))},y=function(e){var t=e.theme,n=e.name,i=e.anchor,c=void 0===i?n:i,s=e.description,o=e.children;return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(m,{theme:t,description:s,anchor:s?c:null},Object(a.jsx)(p,{theme:t,name:n,anchorTarget:s?c:null},o)))},O=function(e){var t=e.theme,n=e.name,i=e.anchor,c=void 0===i?n:i,s=e.placeholder,l=e.description;return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(m,{theme:t,description:l,anchor:l?c:null},Object(a.jsx)("div",null,Object(a.jsx)(L,{theme:t,name:n,anchorTarget:l?c:null}),Object(a.jsx)("span",{style:{color:o(t,s)}},t.formatValue(s)),t.dictionaries.suffix)))}},205:function(e,t,n){"use strict";var i=n(8),a=n(165),c=n.n(a),s=n(0),r=n.n(s),o=n(175),l=n(178),j=function(e){var t=e.children;return Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)(o.a,null,Object(i.jsx)(l.a,{items:[{to:"/configuration/manifest",name:"Manifests"},{to:"/configuration/yarnrc",name:"Yarnrc files"}]},t)))};j.propTypes={children:c.a.node.isRequired},t.a=j}}]); +//# sourceMappingURL=component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js.map \ No newline at end of file diff --git a/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js.map b/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js.map new file mode 100644 index 000000000000..7081c7a5d2db --- /dev/null +++ b/docs/component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/json.js","webpack:///./src/pages/configuration/manifest.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/syntax.js","webpack:///./src/components/layout-configuration.js"],"names":["theme","colors","background","documentation","highlight","code","key","string","boolean","formatKey","JSON","stringify","formatValue","value","keys","suffix","dictionaries","leading","trailing","arrays","prefix","JsonContainer","props","Object","core_browser_cjs","syntax","extends_default","JsonMain","JsonArrayProperty","JsonObjectProperty","JsonScalarProperty","JsonScalar","PackageJsonDoc","react_default","a","Fragment","layout_configuration","json_JsonContainer","json_JsonMain","json_JsonScalarProperty","name","placeholder","description","json_JsonObjectProperty","json_JsonArrayProperty","json_JsonScalar","margin","anchor","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","_ref","align","height","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","href","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","items","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","_ref2","match","slice","getColorForScalar","scalar","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_5__","Main","marginContainer","DescriptionAnchor","DescriptionContainer","Description","Describe","_emotion_core__WEBPACK_IMPORTED_MODULE_6__","react__WEBPACK_IMPORTED_MODULE_8___default","id","Anchor","fontSize","react_icons_fa__WEBPACK_IMPORTED_MODULE_7__","Key","anchorTarget","color","Array","_ref3","paddingLeft","React","Children","child","display","cloneElement","Dictionary","_ref4","css","data-dictionaries-suffix","Scalar","_ref5","DictionaryProperty","_ref6","_ref6$anchor","ArrayProperty","_ref7","_ref7$anchor","ScalarProperty","_ref8","_ref8$anchor","ConfigurationLayout","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__"],"mappings":"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","file":"component---src-pages-configuration-manifest-js-ac3806f1d6cafd20e7d3.js","sourcesContent":["import React from 'react';\n\nimport {\n Container,\n Main,\n\n ArrayProperty,\n DictionaryProperty,\n ScalarProperty,\n\n Scalar,\n} from './syntax';\n\nconst theme = {\n colors: {\n background: `#242424`,\n documentation: `#ddddcc`,\n highlight: `#384973`,\n code: `#639db1`,\n key: `#8ac6f2`,\n string: `#95e454`,\n boolean: `#f08080`,\n },\n\n formatKey: key => {\n return JSON.stringify(key);\n },\n formatValue: value => {\n return JSON.stringify(value);\n },\n\n keys: {\n suffix: `: `,\n },\n\n dictionaries: {\n leading: `{`,\n trailing: `}`,\n suffix: `,`,\n },\n\n arrays: {\n leading: `[`,\n trailing: `]`,\n prefix: ``,\n suffix: `,`,\n },\n};\n\nexport const JsonContainer = props => {\n return ;\n};\n\nexport const JsonMain = props => {\n return
;\n};\n\nexport const JsonArrayProperty = props => {\n return ;\n};\n\nexport const JsonObjectProperty = props => {\n return ;\n};\n\nexport const JsonScalarProperty = props => {\n return ;\n};\n\nexport const JsonScalar = props => {\n return ;\n};\n","import React from 'react';\n\nimport {JsonContainer, JsonMain, JsonScalar} from '../../components/json';\nimport {JsonArrayProperty, JsonObjectProperty} from '../../components/json';\nimport {JsonScalarProperty} from '../../components/json';\nimport Layout from '../../components/layout-configuration';\n\nconst PackageJsonDoc = () => <>\n \n \n \n Manifest files (also called package.json because of their name) contain everything needed to describe the settings unique to one particular package. Project will contain multiple such manifests if they use the workspace feature, as each workspace is described through its own manifest.\n \n \n The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here @scope/) is optional and is used as a namespace).\n }\n />\n \n The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.\n }\n />\n \n If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.\n }\n />\n \n An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the initLicense settings.\n }\n />\n \n The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the publishConfig.main field.\n }\n />\n \n The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.\n }\n />\n \n An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.\n }\n />\n \n A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the $PATH. Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).\n }\n >\n \n \n \n A field used to list small shell scripts that will be executed when running yarn run. Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing : (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).\n }\n >\n \n \n \n \n \n The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.\n }\n >\n \n \n \n Similar to the dependencies field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in \"production\" or \"development\" mode, Yarn doesn't offer a way to prevent the installation of dev dependencies at the moment.\n }\n >\n \n \n \n Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.\n }\n >\n \n \n \n \n Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The workspaces field is a list of glob pattern that match all directories that should become workspaces of your application.\n }\n >\n \n \n \n This field lists some extra information related to the dependencies listed in the dependencies and devDependencies field. In the context of a workspaced project most of these settings will affect all workspaces and as such must be specified at the root of the project (except if noted otherwise, the dependenciesMeta field will be ignored if found within a workspace).\n }\n >\n \n \n If false, the package will never be built. When the global settings enableScripts is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.\n }\n />\n \n If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example nan contains C++ headers).\n }\n />\n \n \n \n This field lists some extra information related to the dependencies listed in the peerDependencies field.\n }\n >\n \n \n If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.\n }\n />\n \n \n \n This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.\n }\n >\n \n \n \n \n \n \n \n \n This field contains various settings that are only taken into consideration when a package is generated from your local sources (either through yarn pack or one of the publish commands like yarn npm publish).\n }\n >\n \n If present, the top-level main field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.\n }\n />\n \n Same principle as the publishConfig.main property; this value will be used instead of the top-level module field when generating the workspace tarball.\n }\n />\n \n \n \n;\n\nexport default PackageJsonDoc;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import {css} from '@emotion/core';\nimport styled from '@emotion/styled';\nimport {FaLink} from 'react-icons/fa';\nimport React from 'react';\n\nconst getColorForScalar = (theme, scalar) => {\n if (typeof scalar === `string`)\n return theme.colors.string;\n if (typeof scalar === `boolean`)\n return theme.colors.boolean;\n return null;\n};\n\nexport const Container = styled.div`\n padding: 1.5em;\n\n font-family: \"PT Mono\";\n line-height: 1.6em;\n\n background: ${props => props.theme.colors.background};\n color: ${props => props.theme.colors.documentation};\n\n a[href^=\"#\"] {\n text-decoration: none;\n }\n\n code {\n font-family: \"PT Mono\";\n\n color: ${props => props.theme.colors.code};\n }\n\n &, span {\n white-space: nowrap;\n }\n`;\n\nexport const Main = styled.div`\n border: 1px solid;\n\n padding: 1em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n\n & + * {\n margin-top: 0 !important;\n }\n`;\n\nconst marginContainer = css`\n & > :first-child {\n margin-top: -1.5em;\n }\n\n & > :last-child {\n margin-bottom: -1.5em;\n }\n\n &[data-dictionaries-suffix=\"\"] > :last-child {\n margin-bottom: -2.5em;\n }\n`;\n\nconst DescriptionAnchor = styled.div`\n margin-top: -3em;\n\n padding: 1.5em 0;\n\n &:target > div {\n background: ${props => props.theme.colors.highlight};\n }\n`;\n\nconst DescriptionContainer = styled.div`\n padding: 1em;\n\n &:first-of-type {\n margin-top: 0;\n }\n\n & + div {\n margin-top: -0.5em;\n }\n`;\n\nconst Description = styled.div`\n margin-bottom: 0.5em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n`;\n\nconst Describe = ({theme, description, anchor, children}) => description ? <>\n \n \n {\n {description}\n }\n {children}\n \n \n : children;\n\nconst Anchor = () => <>\n \n \n \n;\n\nconst Key = ({theme, name, anchorTarget}) => <>\n \n {anchorTarget ? <>\n \n {theme.formatKey(name)}\n \n : <>\n {theme.formatKey(name)}\n }\n \n {theme.keys.suffix}\n;\n\nexport const Array = ({theme, name, suffix, anchorTarget, children}) =>
\n
{name && <>}{theme.arrays.leading}
\n
\n {React.Children.map(children, child =>\n
\n
{theme.arrays.prefix}
\n
\n {React.cloneElement(child, {suffix: theme.arrays.suffix})}\n
\n
\n )}\n
\n
{theme.arrays.trailing}{suffix}
\n
;\n\nexport const Dictionary = ({theme, name, suffix, anchorTarget, children, margin}) =>
\n
{name && <>}{theme.dictionaries.leading}
\n
\n {React.Children.map(children, child => <>\n {React.cloneElement(child, {suffix: theme.dictionaries.suffix})}\n )}\n
\n
{theme.dictionaries.trailing}{suffix}
\n
;\n\nexport const Scalar = ({theme, suffix, placeholder}) =>
\n {theme.formatValue(placeholder)}{suffix}\n
;\n\nexport const DictionaryProperty = ({theme, name, anchor = name, margin, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const ArrayProperty = ({theme, name, anchor = name, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const ScalarProperty = ({theme, name, anchor = name, placeholder, description}) => <>\n \n
\n {theme.formatValue(placeholder)}{theme.dictionaries.suffix}\n
\n
\n;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\n\nconst ConfigurationLayout = ({children}) => <>\n \n \n {children}\n \n \n;\n\nConfigurationLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ConfigurationLayout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js b/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js new file mode 100644 index 000000000000..08846309eb7e --- /dev/null +++ b/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{164:function(e,t,n){"use strict";n.r(t);var a=n(8),i=n(0),r=n.n(i),l=n(205),s=n(37),c=n.n(s),o=n(204),u={colors:{background:"#3f3f3f",documentation:"#ddddcc",highlight:"#716f6f",code:"#639db1",key:"#dfc47d",string:"#cc9393",boolean:"#eddd3d"},formatKey:function(e){return e},formatValue:function(e){return JSON.stringify(e)},keys:{suffix:": "},dictionaries:{leading:"",trailing:"",suffix:""},arrays:{leading:"",trailing:"",prefix:"- ",suffix:""}},j=function(e){return Object(a.jsx)(o.b,c()({},e,{theme:u}))},d=function(e){return Object(a.jsx)(o.d,c()({},e,{theme:u}))},g=function(e){return Object(a.jsx)(o.c,c()({},e,{theme:u}))},h=function(e){return Object(a.jsx)(o.f,c()({},e,{theme:u}))};t.default=function(){return Object(a.jsx)(r.a.Fragment,null,Object(a.jsx)(l.a,null,Object(a.jsx)(j,null,Object(a.jsx)(d,null,"Yarnrc files (named this way because they must be called ",Object(a.jsx)("code",null,".yarnrc"),") are the one place where you'll be able to configure Yarn's internal settings. While Yarn will automatically find them in the parent directories, they should usually be kept at the root of your project (often your repository). Starting from the v2, they ",Object(a.jsx)("b",null,"must")," be written in valid Yaml."),Object(a.jsx)(h,{name:"bstatePath",placeholder:"./.yarn/build-state.yml",description:Object(a.jsx)(r.a.Fragment,null,"This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.")}),Object(a.jsx)(h,{name:"cacheFolder",placeholder:"./.yarn/cache",description:Object(a.jsx)(r.a.Fragment,null,"The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.")}),Object(a.jsx)(h,{name:"checksumBehavior",placeholder:"throw",description:Object(a.jsx)(r.a.Fragment,null,"If ",Object(a.jsx)("code",null,"throw")," (the default), Yarn will throw an exception on ",Object(a.jsx)("code",null,"yarn install")," if it detects that a package doesn't match the checksum stored within the lockfile. If ",Object(a.jsx)("code",null,"update"),", the lockfile checksum will be updated to match the new value. If ",Object(a.jsx)("code",null,"ignore"),", the checksum check will not happen.")}),Object(a.jsx)(h,{name:"defaultProtocol",placeholder:"npm:",description:Object(a.jsx)(r.a.Fragment,null,"Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.")}),Object(a.jsx)(h,{name:"enableColors",placeholder:!0,description:Object(a.jsx)(r.a.Fragment,null,"If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.")}),Object(a.jsx)(h,{name:"enableGlobalCache",placeholder:!1,description:Object(a.jsx)(r.a.Fragment,null,"If true, Yarn will disregard the ",Object(a.jsx)("code",null,"cacheFolder")," settings and will store the cache files into a folder shared by all local projects sharing the same configuration.")}),Object(a.jsx)(h,{name:"enableNetwork",placeholder:!0,description:Object(a.jsx)(r.a.Fragment,null,"If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.")}),Object(a.jsx)(h,{name:"enableTimers",placeholder:!0,description:Object(a.jsx)(r.a.Fragment,null,"If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.")}),Object(a.jsx)(h,{name:"globalFolder",placeholder:"./.yarn/global",description:Object(a.jsx)(r.a.Fragment,null,"The path where all system-global files (for example the list of all packages registered through ",Object(a.jsx)("code",null,"yarn link"),") are stored.")}),Object(a.jsx)(h,{name:"httpProxy",placeholder:"http://proxy:4040",description:Object(a.jsx)(r.a.Fragment,null,"Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).")}),Object(a.jsx)(h,{name:"httpsProxy",placeholder:"http://proxy:4040",description:Object(a.jsx)(r.a.Fragment,null,"Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).")}),Object(a.jsx)(h,{name:"lockfileFilename",placeholder:"yarn.lock",description:Object(a.jsx)(r.a.Fragment,null,"Defines the name of the lockfiles that will be generated by Yarn.")}),Object(a.jsx)(h,{name:"npmRegistryServer",placeholder:"https://registry.yarnpkg.com",description:Object(a.jsx)(r.a.Fragment,null,"Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.")}),Object(a.jsx)(h,{name:"npmAlwaysAuth",placeholder:"true",description:Object(a.jsx)(r.a.Fragment,null,"If true, Yarn will always send the authentication credentials when making a request to the registries. This typically shouldn't be needed.")}),Object(a.jsx)(h,{name:"npmAuthIdent",placeholder:"username:password",description:Object(a.jsx)(r.a.Fragment,null,"Defines the authentication credentials to use for the default registry (equivalent to ",Object(a.jsx)("code",null,"_auth")," in the v1). This settings is discouraged in favor of ",Object(a.jsx)("code",null,"npmAuthToken"),".")}),Object(a.jsx)(h,{name:"npmAuthToken",placeholder:"ffffffff-ffff-ffff-ffff-ffffffffffff",description:Object(a.jsx)(r.a.Fragment,null,"Defines the authentication credentials to use for the default registry (equivalent to ",Object(a.jsx)("code",null,"_authToken")," in the v1).")}),Object(a.jsx)(h,{name:"npmPublishAccess",placeholder:"public",description:Object(a.jsx)(r.a.Fragment,null,"Defines the default access to use when publishing packages to the npm registry. Valid values are ",Object(a.jsx)("code",null,"public")," and ",Object(a.jsx)("code",null,"restricted"),", but ",Object(a.jsx)("code",null,"restricted")," usually requires to register for a paid plan (this is up to the registry you use).")}),Object(a.jsx)(g,{name:"npmScopes",margin:!0,description:Object(a.jsx)(r.a.Fragment,null,"On top of the global configuration, registries can be configured on a per-scope basis (for example to instruct Yarn to use your private registry when accessing packages from a given scope). The following properties are supported:")},Object(a.jsx)(g,{name:"my-company",margin:!0,description:Object(a.jsx)(r.a.Fragment,null,"This key represent the scope that's covered by the settings defined in the nested object. Note that it mustn't start with the ",Object(a.jsx)("code",null,"@")," character.")},Object(a.jsx)(h,{name:"npmAlwaysAuth",anchor:"npmScopes.npmAlwaysAuth",placeholder:!0,description:Object(a.jsx)(r.a.Fragment,null,"See ",Object(a.jsx)("a",{href:"#npmAlwaysAuth"},Object(a.jsx)("code",null,"npmAlwaysAuth")),".")}),Object(a.jsx)(h,{name:"npmAuthIdent",anchor:"npmScopes.npmAuthIdent",placeholder:"username:password",description:Object(a.jsx)(r.a.Fragment,null,"See ",Object(a.jsx)("a",{href:"#npmAuthIdent"},Object(a.jsx)("code",null,"npmAuthIdent")),".")}),Object(a.jsx)(h,{name:"npmAuthToken",anchor:"npmScopes.npmAuthToken",placeholder:"ffffffff-ffff-ffff-ffff-ffffffffffff",description:Object(a.jsx)(r.a.Fragment,null,"See ",Object(a.jsx)("a",{href:"#npmAuthToken"},Object(a.jsx)("code",null,"npmAuthToken")),".")}))),Object(a.jsx)(h,{name:"pnpDataPath",placeholder:"./.pnp.meta.json",description:Object(a.jsx)(r.a.Fragment,null,"The location where Yarn will read and write the ",Object(a.jsx)("code",null,".pnp.meta.json")," file.")}),Object(a.jsx)(h,{name:"pnpEnableInlining",placeholder:"true",description:Object(a.jsx)(r.a.Fragment,null,"If true (the default), Yarn will generate a single ",Object(a.jsx)("code",null,".pnp.js")," file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a ",Object(a.jsx)("code",null,".pnp.data.json")," file meant to be consumed by the ",Object(a.jsx)("code",null,"@berry/pnp")," package.")}),Object(a.jsx)(h,{name:"pnpFallbackMode",placeholder:"dependencies-only",description:Object(a.jsx)(r.a.Fragment,null,"Enumeration whose values (",Object(a.jsx)("code",null,"none"),", ",Object(a.jsx)("code",null,"dependencies-only"),", ",Object(a.jsx)("code",null,"all"),") defines in which capacity should the PnP hook allow packages to rely on the builtin fallback mechanism. In ",Object(a.jsx)("code",null,"dependencies-only")," mode (the default), your workspaces aren't allowed to use it.")}),Object(a.jsx)(h,{name:"pnpIgnorePattern",placeholder:"^\\./subdir/.*",description:Object(a.jsx)(r.a.Fragment,null,"Files matching the following location (in term of relative path compared to the generated ",Object(a.jsx)("code",null,".pnp.js")," file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.")}),Object(a.jsx)(h,{name:"pnpPath",placeholder:"./.pnp.js",description:Object(a.jsx)(r.a.Fragment,null,"The location where Yarn will read and write the ",Object(a.jsx)("code",null,".pnp.js")," file.")}),Object(a.jsx)(h,{name:"pnpShebang",placeholder:"#!/usr/bin/env node",description:Object(a.jsx)(r.a.Fragment,null,"A header that will be prepended to the generated ",Object(a.jsx)("code",null,".pnp.js")," file. You're allowed to write multiple lines, but this is slightly frowned upon.")}),Object(a.jsx)(h,{name:"pnpUnpluggedFolder",placeholder:"./yarn/unplugged",description:Object(a.jsx)(r.a.Fragment,null,"The path where unplugged packages will be stored on the disk.")}),Object(a.jsx)(h,{name:"preferInteractive",placeholder:!0,description:Object(a.jsx)(r.a.Fragment,null,"If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the ",Object(a.jsx)("code",null,"yarn add")," command will suggest to reuse the same dependencies as other workspaces if pertinent).")}),Object(a.jsx)(h,{name:"rcFilename",placeholder:".yarnrc",description:Object(a.jsx)(r.a.Fragment,null,"This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the ",Object(a.jsx)("code",null,"YARN_RC_FILENAME")," variable.")}),Object(a.jsx)(h,{name:"virtualFolder",placeholder:"./.yarn/virtual",description:Object(a.jsx)(r.a.Fragment,null,"Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.")}),Object(a.jsx)(h,{name:"yarnPath",placeholder:"./scripts/yarn-2.0.0-rc001.js",description:Object(a.jsx)(r.a.Fragment,null,"The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with ",Object(a.jsx)("code",null,".js")," it will be required, and will be spawned in any other case.")}))))}},166:function(e,t,n){"use strict";n.d(t,"b",function(){return a}),n.d(t,"a",function(){return i});var a=function(){return"@media (max-width: 600px)"},i=function(){return"@media (min-width: 601px)"}},173:function(e){e.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(e,t,n){"use strict";var a=n(8),i=(n(157),n(165)),r=n.n(i),l=n(177),s=n(0),c=n.n(s),o=(n(179),n(169),n(167)),u=n(173),j=n(59),d=n(174),g=n.n(d),h=function(e){var t=e.align,n=e.height;return Object(a.jsx)("img",{alt:"Yarn",src:g.a,style:{height:n,verticalAlign:t}})};h.propTypes={align:r.a.string,height:r.a.oneOfType([r.a.number,r.a.string])},h.defaultProps={height:100};var M=h,m=n(166),f=Object(o.a)("div",{target:"e1e22q4b0"})(m.a,"{position:sticky;top:0;z-index:1;}"),p=Object(o.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),x=Object(o.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),L=Object(o.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",m.a,"{display:flex;}"),b=Object(o.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),y=Object(o.a)(j.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",m.b,"{margin-right:auto;padding:1em;}"),O=Object(o.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",m.a,"{display:none;}"),I=Object(o.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",m.a,"{display:flex;}",m.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),T=Object(o.a)(j.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",m.a,"{&.active{border-bottom-color:#2188b6;}}",m.b,"{width:100%;}"),N=function(){var e=u.data,t=Object(s.useState)(!1),n=t[0],i=t[1];return Object(a.jsx)(c.a.Fragment,null,Object(a.jsx)(f,null,Object(a.jsx)(p,{href:"https://github.com/yarnpkg/berry"},Object(a.jsx)(x,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(a.jsx)(L,null,Object(a.jsx)(b,null,Object(a.jsx)(y,{to:"/"},Object(a.jsx)(M,{height:"3em",align:"middle"})),Object(a.jsx)(O,{onClick:function(){return i(!n)}},"≡")),Object(a.jsx)(I,{className:n?"expanded":""},e.site.siteMetadata.menuLinks.map(function(e){var t=e.name,n=e.link;return Object(a.jsx)(c.a.Fragment,{key:t},Object(a.jsx)(T,{to:n,activeClassName:"active",partiallyActive:"/"!==n},t))})))))};N.propTypes={siteTitle:r.a.string},N.defaultProps={siteTitle:""};var A=N,C=function(e){var t=e.children;return Object(a.jsx)(c.a.Fragment,null,Object(a.jsx)(l.Helmet,null,Object(a.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(a.jsx)(A,null),Object(a.jsx)("main",null,t))};C.propTypes={children:r.a.node.isRequired};t.a=C},178:function(e,t,n){"use strict";n(82),n(169);var a=n(167),i=n(8),r=n(59),l=n(0),s=n.n(l),c=n(166),o=Object(a.a)("div",{target:"e136yufg0"})("position:relative;",c.a,"{padding-left:300px;}"),u=Object(a.a)("div",{target:"e136yufg1"})(c.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),j=Object(a.a)(r.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),d=Object(a.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});t.a=function(e){var t=e.items,n=e.children;return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(o,null,Object(i.jsx)(u,null,t.map(function(e){var t=e.to,n=e.name;return Object(i.jsx)(s.a.Fragment,{key:n},Object(i.jsx)(j,{to:t,activeClassName:"active"},n.match(/^`.*`$/)?Object(i.jsx)("code",null,n.slice(1,-1)):n))})),Object(i.jsx)(d,null,n)))}},204:function(e,t,n){"use strict";n.d(t,"b",function(){return o}),n.d(t,"d",function(){return u}),n.d(t,"e",function(){return L}),n.d(t,"c",function(){return b}),n.d(t,"a",function(){return y}),n.d(t,"f",function(){return O});n(84),n(61),n(36),n(169),n(250);var a=n(167),i=n(8),r=n(254),l=n(0),s=n.n(l),c=function(e,t){return"string"==typeof t?e.colors.string:"boolean"==typeof t?e.colors.boolean:null},o=Object(a.a)("div",{target:"e1u1l3mo0"})('padding:1.5em;font-family:"PT Mono";line-height:1.6em;background:',function(e){return e.theme.colors.background},";color:",function(e){return e.theme.colors.documentation},';a[href^="#"]{text-decoration:none;}code{font-family:"PT Mono";color:',function(e){return e.theme.colors.code},";}&,span{white-space:nowrap;}"),u=Object(a.a)("div",{target:"e1u1l3mo1"})({name:"1aey2g2",styles:'border:1px solid;padding:1em;font-family:"Open Sans";white-space:normal;& + *{margin-top:0 !important;}'}),j={name:"dt6qdf",styles:'& >:first-child{margin-top:-1.5em;}& >:last-child{margin-bottom:-1.5em;}&[data-dictionaries-suffix=""] >:last-child{margin-bottom:-2.5em;}'},d=Object(a.a)("div",{target:"e1u1l3mo2"})("margin-top:-3em;padding:1.5em 0;&:target > div{background:",function(e){return e.theme.colors.highlight},";}"),g=Object(a.a)("div",{target:"e1u1l3mo3"})({name:"j65q0t",styles:"padding:1em;&:first-of-type{margin-top:0;}& + div{margin-top:-0.5em;}"}),h=Object(a.a)("div",{target:"e1u1l3mo4"})({name:"dq7d5f",styles:'margin-bottom:0.5em;font-family:"Open Sans";white-space:normal;'}),M=function(e){var t=e.theme,n=e.description,a=e.anchor,r=e.children;return n?Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(d,{id:""+a,theme:t},Object(i.jsx)(g,{theme:t},Object(i.jsx)(h,{theme:t},n),r))):r},m=function(){return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)("span",{style:{fontSize:"0.7em"}},Object(i.jsx)(r.a,null)))},f=function(e){var t=e.theme,n=e.name,a=e.anchorTarget;return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)("span",{style:{color:t.colors.key}},a?Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)("a",{style:{color:"inherit"},href:"#"+a},Object(i.jsx)(m,null)," ",t.formatKey(n))):Object(i.jsx)(s.a.Fragment,null,t.formatKey(n))),t.keys.suffix)},p=function(e){var t=e.theme,n=e.name,a=e.suffix,r=e.anchorTarget,l=e.children;return Object(i.jsx)("div",null,Object(i.jsx)("div",null,n&&Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(f,{theme:t,name:n,anchorTarget:r})),t.arrays.leading),Object(i.jsx)("div",{style:{paddingLeft:"2em"}},s.a.Children.map(l,function(e){return Object(i.jsx)("div",{style:{display:"flex"}},Object(i.jsx)("div",null,t.arrays.prefix),Object(i.jsx)("div",null,s.a.cloneElement(e,{suffix:t.arrays.suffix})))})),Object(i.jsx)("div",null,t.arrays.trailing,a))},x=function(e){var t=e.theme,n=e.name,a=e.suffix,r=e.anchorTarget,l=e.children,c=e.margin;return Object(i.jsx)("div",null,Object(i.jsx)("div",null,n&&Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(f,{theme:t,name:n,anchorTarget:r})),t.dictionaries.leading),Object(i.jsx)("div",{style:{paddingLeft:"2em"},css:c?j:null,"data-dictionaries-suffix":t.dictionaries.suffix},s.a.Children.map(l,function(e){return Object(i.jsx)(s.a.Fragment,null,s.a.cloneElement(e,{suffix:t.dictionaries.suffix}))})),Object(i.jsx)("div",null,t.dictionaries.trailing,a))},L=function(e){var t=e.theme,n=e.suffix,a=e.placeholder;return Object(i.jsx)("div",null,Object(i.jsx)("span",{style:{color:c(t,a)}},t.formatValue(a)),n)},b=function(e){var t=e.theme,n=e.name,a=e.anchor,r=void 0===a?n:a,l=e.margin,c=e.description,o=e.children;return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(M,{theme:t,description:c,anchor:c?r:null},Object(i.jsx)(x,{theme:t,name:n,margin:l,anchorTarget:c?r:null},o)))},y=function(e){var t=e.theme,n=e.name,a=e.anchor,r=void 0===a?n:a,l=e.description,c=e.children;return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(M,{theme:t,description:l,anchor:l?r:null},Object(i.jsx)(p,{theme:t,name:n,anchorTarget:l?r:null},c)))},O=function(e){var t=e.theme,n=e.name,a=e.anchor,r=void 0===a?n:a,l=e.placeholder,o=e.description;return Object(i.jsx)(s.a.Fragment,null,Object(i.jsx)(M,{theme:t,description:o,anchor:o?r:null},Object(i.jsx)("div",null,Object(i.jsx)(f,{theme:t,name:n,anchorTarget:o?r:null}),Object(i.jsx)("span",{style:{color:c(t,l)}},t.formatValue(l)),t.dictionaries.suffix)))}},205:function(e,t,n){"use strict";var a=n(8),i=n(165),r=n.n(i),l=n(0),s=n.n(l),c=n(175),o=n(178),u=function(e){var t=e.children;return Object(a.jsx)(s.a.Fragment,null,Object(a.jsx)(c.a,null,Object(a.jsx)(o.a,{items:[{to:"/configuration/manifest",name:"Manifests"},{to:"/configuration/yarnrc",name:"Yarnrc files"}]},t)))};u.propTypes={children:r.a.node.isRequired},t.a=u}}]); +//# sourceMappingURL=component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js.map \ No newline at end of file diff --git a/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js.map b/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js.map new file mode 100644 index 000000000000..1969307124e6 --- /dev/null +++ b/docs/component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./src/components/syml.js","webpack:///./src/pages/configuration/yarnrc.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/syntax.js","webpack:///./src/components/layout-configuration.js"],"names":["theme","colors","background","documentation","highlight","code","key","string","boolean","formatKey","formatValue","value","JSON","stringify","keys","suffix","dictionaries","leading","trailing","arrays","prefix","SymlContainer","props","Object","core_browser_cjs","syntax","extends_default","SymlMain","SymlObjectProperty","SymlScalarProperty","YarnrcDoc","react_default","a","Fragment","layout_configuration","syml_SymlContainer","syml_SymlMain","syml_SymlScalarProperty","name","placeholder","description","syml_SymlObjectProperty","margin","anchor","href","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","_ref","align","height","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","items","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","_ref2","match","slice","getColorForScalar","scalar","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_5__","Main","marginContainer","DescriptionAnchor","DescriptionContainer","Description","Describe","_emotion_core__WEBPACK_IMPORTED_MODULE_6__","react__WEBPACK_IMPORTED_MODULE_8___default","id","Anchor","fontSize","react_icons_fa__WEBPACK_IMPORTED_MODULE_7__","Key","anchorTarget","color","Array","_ref3","paddingLeft","React","Children","child","display","cloneElement","Dictionary","_ref4","css","data-dictionaries-suffix","Scalar","_ref5","DictionaryProperty","_ref6","_ref6$anchor","ArrayProperty","_ref7","_ref7$anchor","ScalarProperty","_ref8","_ref8$anchor","ConfigurationLayout","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__"],"mappings":"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","file":"component---src-pages-configuration-yarnrc-js-2221f01b4126e3357893.js","sourcesContent":["import React from 'react';\n\nimport {\n Container,\n Main,\n\n ArrayProperty,\n DictionaryProperty,\n ScalarProperty,\n\n Scalar,\n} from './syntax';\n\nconst theme = {\n colors: {\n background: `#3f3f3f`,\n documentation: `#ddddcc`,\n highlight: `#716f6f`,\n code: `#639db1`,\n key: `#dfc47d`,\n string: `#cc9393`,\n boolean: `#eddd3d`,\n },\n\n formatKey: key => {\n return key;\n },\n formatValue: value => {\n return JSON.stringify(value);\n },\n\n keys: {\n suffix: `: `,\n },\n\n dictionaries: {\n leading: ``,\n trailing: ``,\n suffix: ``,\n },\n\n arrays: {\n leading: ``,\n trailing: ``,\n prefix: `-\\u00a0`,\n suffix: ``,\n },\n};\n\nexport const SymlContainer = props => {\n return ;\n};\n\nexport const SymlMain = props => {\n return
;\n};\n\nexport const SymlArrayProperty = props => {\n return ;\n};\n\nexport const SymlObjectProperty = props => {\n return ;\n};\n\nexport const SymlScalarProperty = props => {\n return ;\n};\n\nexport const SymlScalar = props => {\n return ;\n};\n","import React from 'react';\n\nimport Layout from '../../components/layout-configuration';\nimport {SymlContainer, SymlMain} from '../../components/syml';\nimport {SymlObjectProperty, SymlScalarProperty} from '../../components/syml';\n\nconst YarnrcDoc = () => <>\n \n \n \n Yarnrc files (named this way because they must be called .yarnrc) are the one place where you'll be able to configure Yarn's internal settings. While Yarn will automatically find them in the parent directories, they should usually be kept at the root of your project (often your repository). Starting from the v2, they must be written in valid Yaml.\n \n \n This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.\n }\n />\n \n The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.\n }\n />\n \n If throw (the default), Yarn will throw an exception on yarn install if it detects that a package doesn't match the checksum stored within the lockfile. If update, the lockfile checksum will be updated to match the new value. If ignore, the checksum check will not happen.\n }\n />\n \n Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.\n }\n />\n \n If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.\n }\n />\n \n If true, Yarn will disregard the cacheFolder settings and will store the cache files into a folder shared by all local projects sharing the same configuration.\n }\n />\n \n If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.\n }\n />\n \n If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.\n }\n />\n \n The path where all system-global files (for example the list of all packages registered through yarn link) are stored.\n }\n />\n \n Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).\n }\n />\n \n Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).\n }\n />\n \n Defines the name of the lockfiles that will be generated by Yarn.\n }\n />\n \n Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.\n }\n />\n \n If true, Yarn will always send the authentication credentials when making a request to the registries. This typically shouldn't be needed.\n }\n />\n \n Defines the authentication credentials to use for the default registry (equivalent to _auth in the v1). This settings is discouraged in favor of npmAuthToken.\n }\n />\n \n Defines the authentication credentials to use for the default registry (equivalent to _authToken in the v1).\n }\n />\n \n Defines the default access to use when publishing packages to the npm registry. Valid values are public and restricted, but restricted usually requires to register for a paid plan (this is up to the registry you use).\n }\n />\n \n On top of the global configuration, registries can be configured on a per-scope basis (for example to instruct Yarn to use your private registry when accessing packages from a given scope). The following properties are supported:\n }\n >\n \n This key represent the scope that's covered by the settings defined in the nested object. Note that it mustn't start with the @ character.\n }\n >\n \n See npmAlwaysAuth.\n }\n />\n \n See npmAuthIdent.\n }\n />\n \n See npmAuthToken.\n }\n />\n \n \n \n The location where Yarn will read and write the .pnp.meta.json file.\n }\n />\n \n If true (the default), Yarn will generate a single .pnp.js file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a .pnp.data.json file meant to be consumed by the @berry/pnp package.\n }\n />\n \n Enumeration whose values (none, dependencies-only, all) defines in which capacity should the PnP hook allow packages to rely on the builtin fallback mechanism. In dependencies-only mode (the default), your workspaces aren't allowed to use it.\n }\n />\n \n Files matching the following location (in term of relative path compared to the generated .pnp.js file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.\n }\n />\n \n The location where Yarn will read and write the .pnp.js file.\n }\n />\n \n A header that will be prepended to the generated .pnp.js file. You're allowed to write multiple lines, but this is slightly frowned upon.\n }\n />\n \n The path where unplugged packages will be stored on the disk.\n }\n />\n \n If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the yarn add command will suggest to reuse the same dependencies as other workspaces if pertinent).\n }\n />\n \n This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the YARN_RC_FILENAME variable.\n }\n />\n \n Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.\n }\n />\n \n The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with .js it will be required, and will be spawned in any other case.\n }\n />\n \n \n;\n\nexport default YarnrcDoc;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import {css} from '@emotion/core';\nimport styled from '@emotion/styled';\nimport {FaLink} from 'react-icons/fa';\nimport React from 'react';\n\nconst getColorForScalar = (theme, scalar) => {\n if (typeof scalar === `string`)\n return theme.colors.string;\n if (typeof scalar === `boolean`)\n return theme.colors.boolean;\n return null;\n};\n\nexport const Container = styled.div`\n padding: 1.5em;\n\n font-family: \"PT Mono\";\n line-height: 1.6em;\n\n background: ${props => props.theme.colors.background};\n color: ${props => props.theme.colors.documentation};\n\n a[href^=\"#\"] {\n text-decoration: none;\n }\n\n code {\n font-family: \"PT Mono\";\n\n color: ${props => props.theme.colors.code};\n }\n\n &, span {\n white-space: nowrap;\n }\n`;\n\nexport const Main = styled.div`\n border: 1px solid;\n\n padding: 1em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n\n & + * {\n margin-top: 0 !important;\n }\n`;\n\nconst marginContainer = css`\n & > :first-child {\n margin-top: -1.5em;\n }\n\n & > :last-child {\n margin-bottom: -1.5em;\n }\n\n &[data-dictionaries-suffix=\"\"] > :last-child {\n margin-bottom: -2.5em;\n }\n`;\n\nconst DescriptionAnchor = styled.div`\n margin-top: -3em;\n\n padding: 1.5em 0;\n\n &:target > div {\n background: ${props => props.theme.colors.highlight};\n }\n`;\n\nconst DescriptionContainer = styled.div`\n padding: 1em;\n\n &:first-of-type {\n margin-top: 0;\n }\n\n & + div {\n margin-top: -0.5em;\n }\n`;\n\nconst Description = styled.div`\n margin-bottom: 0.5em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n`;\n\nconst Describe = ({theme, description, anchor, children}) => description ? <>\n \n \n {\n {description}\n }\n {children}\n \n \n : children;\n\nconst Anchor = () => <>\n \n \n \n;\n\nconst Key = ({theme, name, anchorTarget}) => <>\n \n {anchorTarget ? <>\n \n {theme.formatKey(name)}\n \n : <>\n {theme.formatKey(name)}\n }\n \n {theme.keys.suffix}\n;\n\nexport const Array = ({theme, name, suffix, anchorTarget, children}) =>
\n
{name && <>}{theme.arrays.leading}
\n
\n {React.Children.map(children, child =>\n
\n
{theme.arrays.prefix}
\n
\n {React.cloneElement(child, {suffix: theme.arrays.suffix})}\n
\n
\n )}\n
\n
{theme.arrays.trailing}{suffix}
\n
;\n\nexport const Dictionary = ({theme, name, suffix, anchorTarget, children, margin}) =>
\n
{name && <>}{theme.dictionaries.leading}
\n
\n {React.Children.map(children, child => <>\n {React.cloneElement(child, {suffix: theme.dictionaries.suffix})}\n )}\n
\n
{theme.dictionaries.trailing}{suffix}
\n
;\n\nexport const Scalar = ({theme, suffix, placeholder}) =>
\n {theme.formatValue(placeholder)}{suffix}\n
;\n\nexport const DictionaryProperty = ({theme, name, anchor = name, margin, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const ArrayProperty = ({theme, name, anchor = name, description, children}) => <>\n \n \n {children}\n \n \n;\n\nexport const ScalarProperty = ({theme, name, anchor = name, placeholder, description}) => <>\n \n
\n {theme.formatValue(placeholder)}{theme.dictionaries.suffix}\n
\n
\n;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\n\nconst ConfigurationLayout = ({children}) => <>\n \n \n {children}\n \n \n;\n\nConfigurationLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ConfigurationLayout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js b/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js deleted file mode 100644 index 3af15bb57bde..000000000000 --- a/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{161:function(e,t,n){"use strict";n.r(t);var i=n(7),a=n(0),r=n.n(a),s=n(205),j=(n(204),n(167),n(165)),l=Object(j.a)("div",{target:"eyohv770"})({name:"54030m",styles:'padding:1.5em;font-family:"PT Mono";line-height:1.6em;background:#3f3f3f;color:#ddddcc;a[href^="#"]{border-bottom:1px dotted #ddddcc;text-decoration:none;}code{font-family:"PT Mono";color:#639db1;}&,span{white-space:nowrap;}'}),c={name:"mg27sb",styles:"color:#dfc47d;"},o={name:"1epvo4t",styles:"color:#cc9393;"},u={name:"wcsew",styles:"color:#eddd3d;"},g=Object(j.a)("div",{target:"eyohv771"})({name:"1qj6jlk",styles:"padding:1em;&:first-of-type{margin-top:0;}&:target{background:#716f6f;}& + div{margin-top:-0.5em;}"}),M=Object(j.a)("div",{target:"eyohv772"})({name:"cr0mlv",styles:'margin-top:1em;margin-bottom:0.5em;font-family:"Open Sans";white-space:normal;&:first-of-type{margin-top:0;}'}),d=function(e){var t=e.name,n=e.anchorTarget;return Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)("a",{css:c,href:n?"#"+n:null},t))},L=function(e){var t=e.description,n=e.anchor,a=e.children;return t?Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)(g,{id:""+n},Object(i.jsx)(M,null,t),a)):a},h=function(e){var t=e.name,n=e.placeholder,a=e.description;return Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)(L,{description:a,anchor:t},Object(i.jsx)("div",null,Object(i.jsx)(d,{name:t,anchorTarget:a?t:null}),": ",Object(i.jsx)("span",{css:o},JSON.stringify(n)))))},y=function(e){var t=e.name,n=e.placeholder,a=e.description;return Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)(L,{description:a,anchor:t},Object(i.jsx)("div",null,Object(i.jsx)(d,{name:t,anchorTarget:a?t:null}),": ",Object(i.jsx)("span",{css:u},n))))};t.default=function(){return Object(i.jsx)(r.a.Fragment,null,Object(i.jsx)(s.a,null,Object(i.jsx)(l,null,Object(i.jsx)(h,{name:"bstatePath",placeholder:"./.yarn/build-state.yml",description:Object(i.jsx)(r.a.Fragment,null,"This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.")}),Object(i.jsx)(h,{name:"cacheFolder",placeholder:"./.yarn/cache",description:Object(i.jsx)(r.a.Fragment,null,"The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.")}),Object(i.jsx)(h,{name:"checksumBehavior",placeholder:"throw",description:Object(i.jsx)(r.a.Fragment,null,"If ",Object(i.jsx)("code",null,"throw")," (the default), Yarn will throw an exception on ",Object(i.jsx)("code",null,"yarn install")," if it detects that a package doesn't match the checksum stored within the lockfile. If ",Object(i.jsx)("code",null,"update"),", the lockfile checksum will be updated to match the new value. If ",Object(i.jsx)("code",null,"ignore"),", the checksum check will not happen.")}),Object(i.jsx)(h,{name:"defaultProtocol",placeholder:"npm:",description:Object(i.jsx)(r.a.Fragment,null,"Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.")}),Object(i.jsx)(y,{name:"enableColors",placeholder:"true",description:Object(i.jsx)(r.a.Fragment,null,"If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.")}),Object(i.jsx)(y,{name:"enableGlobalCache",placeholder:"false",description:Object(i.jsx)(r.a.Fragment,null,"If true, Yarn will disregard the ",Object(i.jsx)("code",null,"cacheFolder")," settings and will store the cache files into a folder shared by all local projects sharing the same configuration.")}),Object(i.jsx)(y,{name:"enableNetwork",placeholder:"true",description:Object(i.jsx)(r.a.Fragment,null,"If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.")}),Object(i.jsx)(y,{name:"enableTimers",placeholder:"true",description:Object(i.jsx)(r.a.Fragment,null,"If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.")}),Object(i.jsx)(h,{name:"globalFolder",placeholder:"./.yarn/global",description:Object(i.jsx)(r.a.Fragment,null,"The path where all system-global files (for example the list of all packages registered through ",Object(i.jsx)("code",null,"yarn link"),") are stored.")}),Object(i.jsx)(h,{name:"httpProxy",placeholder:"http://proxy:4040",description:Object(i.jsx)(r.a.Fragment,null,"Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).")}),Object(i.jsx)(h,{name:"httpsProxy",placeholder:"http://proxy:4040",description:Object(i.jsx)(r.a.Fragment,null,"Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).")}),Object(i.jsx)(h,{name:"lockfileFilename",placeholder:"yarn.lock",description:Object(i.jsx)(r.a.Fragment,null,"Defines the name of the lockfiles that will be generated by Yarn.")}),Object(i.jsx)(h,{name:"npmRegistryServer",placeholder:"https://registry.yarnpkg.com",description:Object(i.jsx)(r.a.Fragment,null,"Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.")}),Object(i.jsx)(h,{name:"npmPublishAccess",placeholder:"public",description:Object(i.jsx)(r.a.Fragment,null,"Defines the default access to use when publishing packages to the npm registry. Valid values are ",Object(i.jsx)("code",null,"public")," and ",Object(i.jsx)("code",null,"restricted"),", but ",Object(i.jsx)("code",null,"restricted")," usually requires to register for a paid plan (this is up to the registry you use).")}),Object(i.jsx)(h,{name:"pnpDataPath",placeholder:"./.pnp.meta.json",description:Object(i.jsx)(r.a.Fragment,null,"The location where Yarn will read and write the ",Object(i.jsx)("code",null,".pnp.meta.json")," file.")}),Object(i.jsx)(y,{name:"pnpEnableInlining",placeholder:"true",description:Object(i.jsx)(r.a.Fragment,null,"If true (the default), Yarn will generate a single ",Object(i.jsx)("code",null,".pnp.js")," file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a ",Object(i.jsx)("code",null,".pnp.data.json")," file meant to be consumed by the ",Object(i.jsx)("code",null,"@berry/pnp")," package.")}),Object(i.jsx)(h,{name:"pnpIgnorePattern",placeholder:"^\\./subdir/.*",description:Object(i.jsx)(r.a.Fragment,null,"Files matching the following location (in term of relative path compared to the generated ",Object(i.jsx)("code",null,".pnp.js")," file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.")}),Object(i.jsx)(h,{name:"pnpPath",placeholder:"./.pnp.js",description:Object(i.jsx)(r.a.Fragment,null,"The location where Yarn will read and write the ",Object(i.jsx)("code",null,".pnp.js")," file.")}),Object(i.jsx)(h,{name:"pnpShebang",placeholder:"#!/usr/bin/env node",description:Object(i.jsx)(r.a.Fragment,null,"A header that will be prepended to the generated ",Object(i.jsx)("code",null,".pnp.js")," file. You're allowed to write multiple lines, but this is slightly frowned upon.")}),Object(i.jsx)(h,{name:"pnpUnpluggedFolder",placeholder:"./yarn/unplugged",description:Object(i.jsx)(r.a.Fragment,null,"The path where unplugged packages will be stored on the disk.")}),Object(i.jsx)(y,{name:"preferInteractive",placeholder:"true",description:Object(i.jsx)(r.a.Fragment,null,"If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the ",Object(i.jsx)("code",null,"yarn add")," command will suggest to reuse the same dependencies as other workspaces if pertinent).")}),Object(i.jsx)(h,{name:"rcFilename",placeholder:".yarnrc",description:Object(i.jsx)(r.a.Fragment,null,"This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the ",Object(i.jsx)("code",null,"YARN_RC_FILENAME")," variable.")}),Object(i.jsx)(h,{name:"virtualFolder",placeholder:"./.yarn/virtual",description:Object(i.jsx)(r.a.Fragment,null,"Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.")}),Object(i.jsx)(h,{name:"yarnPath",placeholder:"./scripts/yarn-2.0.0-rc001.js",description:Object(i.jsx)(r.a.Fragment,null,"The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with ",Object(i.jsx)("code",null,".js")," it will be required, and will be spawned in any other case.")}))))}},164:function(e,t,n){"use strict";n.d(t,"b",function(){return i}),n.d(t,"a",function(){return a});var i=function(){return"@media (max-width: 600px)"},a=function(){return"@media (min-width: 601px)"}},171:function(e){e.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(e,t){e.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(e,t,n){"use strict";var i=n(7),a=(n(177),n(163)),r=n.n(a),s=n(175),j=n(0),l=n.n(j),c=(n(178),n(167),n(165)),o=n(171),u=n(59),g=n(172),M=n.n(g),d=function(e){var t=e.align,n=e.height;return Object(i.jsx)("img",{alt:"Yarn",src:M.a,style:{height:n,verticalAlign:t}})};d.propTypes={align:r.a.string,height:r.a.oneOfType([r.a.number,r.a.string])},d.defaultProps={height:100};var L=d,h=n(164),y=Object(c.a)("div",{target:"e1e22q4b0"})(h.a,"{position:sticky;top:0;z-index:1;}"),p=Object(c.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),x=Object(c.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),I=Object(c.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",h.a,"{display:flex;}"),N=Object(c.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),m=Object(c.a)(u.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",h.b,"{margin-right:auto;padding:1em;}"),b=Object(c.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",h.a,"{display:none;}"),T=Object(c.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",h.a,"{display:flex;}",h.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),O=Object(c.a)(u.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",h.a,"{&.active{border-bottom-color:#2188b6;}}",h.b,"{width:100%;}"),f=function(){var e=o.data,t=Object(j.useState)(!1),n=t[0],a=t[1];return Object(i.jsx)(l.a.Fragment,null,Object(i.jsx)(y,null,Object(i.jsx)(p,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(x,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(I,null,Object(i.jsx)(N,null,Object(i.jsx)(m,{to:"/"},Object(i.jsx)(L,{height:"3em",align:"middle"})),Object(i.jsx)(b,{onClick:function(){return a(!n)}},"≡")),Object(i.jsx)(T,{className:n?"expanded":""},e.site.siteMetadata.menuLinks.map(function(e){var t=e.name,n=e.link;return Object(i.jsx)(l.a.Fragment,{key:t},Object(i.jsx)(O,{to:n,activeClassName:"active",partiallyActive:"/"!==n},t))})))))};f.propTypes={siteTitle:r.a.string},f.defaultProps={siteTitle:""};var A=f,C=function(e){var t=e.children;return Object(i.jsx)(l.a.Fragment,null,Object(i.jsx)(s.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(A,null),Object(i.jsx)("main",null,t))};C.propTypes={children:r.a.node.isRequired};t.a=C},176:function(e,t,n){"use strict";n(82),n(167);var i=n(165),a=n(7),r=n(59),s=n(0),j=n.n(s),l=n(164),c=Object(i.a)("div",{target:"e136yufg0"})("position:relative;",l.a,"{padding-left:300px;}"),o=Object(i.a)("div",{target:"e136yufg1"})(l.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),u=Object(i.a)(r.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),g=Object(i.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});t.a=function(e){var t=e.items,n=e.children;return Object(a.jsx)(j.a.Fragment,null,Object(a.jsx)(c,null,Object(a.jsx)(o,null,t.map(function(e){var t=e.to,n=e.name;return Object(a.jsx)(j.a.Fragment,{key:n},Object(a.jsx)(u,{to:t,activeClassName:"active"},n.match(/^`.*`$/)?Object(a.jsx)("code",null,n.slice(1,-1)):n))})),Object(a.jsx)(g,null,n)))}},204:function(e,t,n){"use strict";n(194)("anchor",function(e){return function(t){return e(this,"a","name",t)}})},205:function(e,t,n){"use strict";var i=n(7),a=n(163),r=n.n(a),s=n(0),j=n.n(s),l=n(173),c=n(176),o=function(e){var t=e.children;return Object(i.jsx)(j.a.Fragment,null,Object(i.jsx)(l.a,null,Object(i.jsx)(c.a,{items:[{to:"/configuration/manifest",name:"Manifests"},{to:"/configuration/yarnrc",name:"Yarnrc files"}]},t)))};o.propTypes={children:r.a.node.isRequired},t.a=o}}]); -//# sourceMappingURL=component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js.map \ No newline at end of file diff --git a/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js.map b/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js.map deleted file mode 100644 index 1ab6ce49bbac..000000000000 --- a/docs/component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["webpack:///./src/components/syml.js","webpack:///./src/pages/configuration/yarnrc.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:////mnt/d/berry/.yarn/cache/core-js-npm-2.6.2-89440eeeb885141bac217d666d90e83a23d1c757163ee6adbc4d416975c98baf.zip/node_modules/core-js/modules/es6.string.anchor.js","webpack:///./src/components/layout-configuration.js"],"names":["SymlContainer","Object","styled_base_browser_esm","target","name","styles","symlKey","stringValue","booleanValue","SymlDescriptionContainer","SymlDescription","SymlKey","_ref","anchorTarget","core_browser_cjs","react_default","a","Fragment","css","href","SymlDescribe","_ref2","description","anchor","children","id","SymlStringProperty","_ref3","placeholder","syml_SymlDescribe","syml_SymlKey","JSON","stringify","SymlBooleanProperty","_ref4","YarnrcDoc","layout_configuration","syml_SymlStringProperty","syml_SymlBooleanProperty","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","NewsContainer","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","items","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","match","slice","createHTML","this","ConfigurationLayout","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__"],"mappings":"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","file":"component---src-pages-configuration-yarnrc-js-7b63a5ff01edfbf6c019.js","sourcesContent":["import {css} from '@emotion/core';\nimport styled from '@emotion/styled';\nimport React from 'react';\n\nexport const SymlContainer = styled.div`\n padding: 1.5em;\n\n font-family: \"PT Mono\";\n line-height: 1.6em;\n\n background: #3f3f3f;\n color: #ddddcc;\n\n a[href^=\"#\"] {\n border-bottom: 1px dotted #ddddcc;\n\n text-decoration: none;\n }\n\n code {\n font-family: \"PT Mono\";\n\n color: #639db1;\n }\n\n &, span {\n white-space: nowrap;\n }\n`;\n\nexport const symlKey = css`\n color: #dfc47d;\n`;\n\nexport const stringValue = css`\n color: #cc9393;\n`;\n\nexport const booleanValue = css`\n color: #eddd3d;\n`;\n\nexport const SymlDescriptionContainer = styled.div`\n padding: 1em;\n\n &:first-of-type {\n margin-top: 0;\n }\n\n &:target {\n background: #716f6f;\n }\n\n & + div {\n margin-top: -0.5em;\n }\n`;\n\nexport const SymlDescription = styled.div`\n margin-top: 1em;\n margin-bottom: 0.5em;\n\n font-family: \"Open Sans\";\n white-space: normal;\n\n &:first-of-type {\n margin-top: 0;\n }\n`;\n\nexport const SymlKey = ({name, anchorTarget}) => <>\n {name}\n;\n\nexport const SymlDescribe = ({description, anchor, children}) => description ? <>\n \n {\n {description}\n }\n {children}\n \n : children;\n\nexport const SymlStringProperty = ({name, placeholder, description}) => <>\n \n
\n : {JSON.stringify(placeholder)}\n
\n
\n;\n\nexport const SymlBooleanProperty = ({name, placeholder, description}) => <>\n \n
\n : {placeholder}\n
\n
\n;\n","import React from 'react';\n\nimport Layout from '../../components/layout-configuration';\nimport {SymlContainer} from '../../components/syml';\nimport {SymlBooleanProperty, SymlStringProperty} from '../../components/syml';\n\nconst YarnrcDoc = () => <>\n \n \n \n This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.\n }\n />\n \n The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.\n }\n />\n \n If throw (the default), Yarn will throw an exception on yarn install if it detects that a package doesn't match the checksum stored within the lockfile. If update, the lockfile checksum will be updated to match the new value. If ignore, the checksum check will not happen.\n }\n />\n \n Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.\n }\n />\n \n If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.\n }\n />\n \n If true, Yarn will disregard the cacheFolder settings and will store the cache files into a folder shared by all local projects sharing the same configuration.\n }\n />\n \n If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.\n }\n />\n \n If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.\n }\n />\n \n The path where all system-global files (for example the list of all packages registered through yarn link) are stored.\n }\n />\n \n Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).\n }\n />\n \n Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).\n }\n />\n \n Defines the name of the lockfiles that will be generated by Yarn.\n }\n />\n \n Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.\n }\n />\n \n Defines the default access to use when publishing packages to the npm registry. Valid values are public and restricted, but restricted usually requires to register for a paid plan (this is up to the registry you use).\n }\n />\n \n The location where Yarn will read and write the .pnp.meta.json file.\n }\n />\n \n If true (the default), Yarn will generate a single .pnp.js file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a .pnp.data.json file meant to be consumed by the @berry/pnp package.\n }\n />\n \n Files matching the following location (in term of relative path compared to the generated .pnp.js file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.\n }\n />\n \n The location where Yarn will read and write the .pnp.js file.\n }\n />\n \n A header that will be prepended to the generated .pnp.js file. You're allowed to write multiple lines, but this is slightly frowned upon.\n }\n />\n \n The path where unplugged packages will be stored on the disk.\n }\n />\n \n If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the yarn add command will suggest to reuse the same dependencies as other workspaces if pertinent).\n }\n />\n \n This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the YARN_RC_FILENAME variable.\n }\n />\n \n Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.\n }\n />\n \n The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with .js it will be required, and will be spawned in any other case.\n }\n />\n \n \n;\n\nexport default YarnrcDoc;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","'use strict';\n// B.2.3.2 String.prototype.anchor(name)\nrequire('./_string-html')('anchor', function (createHTML) {\n return function anchor(name) {\n return createHTML(this, 'a', 'name', name);\n };\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\n\nconst ConfigurationLayout = ({children}) => <>\n \n \n {children}\n \n \n;\n\nConfigurationLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default ConfigurationLayout;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js b/docs/component---src-pages-index-js-17467937177c835ff9f1.js similarity index 92% rename from docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js rename to docs/component---src-pages-index-js-17467937177c835ff9f1.js index ed4db1bbc75e..f6458a83cec5 100644 --- a/docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js +++ b/docs/component---src-pages-index-js-17467937177c835ff9f1.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{157:function(t,M,e){"use strict";e.r(M);var i=e(165),L=e(7),j=e(0),u=e.n(j),g=e(173),a=e(164),n=e(202),I=Object(i.a)("div",{target:"ep43e750"})({name:"6dtdwe",styles:"background:#25799f;padding:1.5em;"}),N=Object(i.a)("input",{target:"ep43e751"})({name:"13cj508",styles:"-webkit-appearance:none;width:100%;padding:.5em;font-size:inherit;border:0;border-radius:0;outline:0;background:#ffffff;"}),T=Object(i.a)("div",{target:"ep43e752"})("width:100%;padding:5em 6em;background:#2188b6;",a.b,"{padding:.5em;}"),r=Object(i.a)("div",{target:"ep43e753"})({name:"5tfwri",styles:"font-size:4em;font-weight:bold;color:#ffffff;text-shadow:5px 5px #1476a2"}),y=Object(i.a)("div",{target:"ep43e754"})({name:"1uxqs7y",styles:"max-width:800px;margin-top:40px;font-size:1.5em;font-weight:light;color:#ffffff;"});M.default=function(){return Object(L.jsx)(u.a.Fragment,null,Object(L.jsx)(g.a,null,Object(L.jsx)(n.a,{title:"Home",keywords:["gatsby","application","react"]}),Object(L.jsx)(I,null,Object(L.jsx)(N,{type:"search",placeholder:"Search packages (i.e. babel, webpack, react...)",autoFocus:!0})),Object(L.jsx)(T,null,Object(L.jsx)(r,null,"Safe, stable, reproducible projects"),Object(L.jsx)(y,null,"Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered."))))}},164:function(t,M,e){"use strict";e.d(M,"b",function(){return i}),e.d(M,"a",function(){return L});var i=function(){return"@media (max-width: 600px)"},L=function(){return"@media (min-width: 601px)"}},171:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(t,M){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(t,M,e){"use strict";var i=e(7),L=(e(177),e(163)),j=e.n(L),u=e(175),g=e(0),a=e.n(g),n=(e(178),e(167),e(165)),I=e(171),N=e(59),T=e(172),r=e.n(T),y=function(t){var M=t.align,e=t.height;return Object(i.jsx)("img",{alt:"Yarn",src:r.a,style:{height:e,verticalAlign:M}})};y.propTypes={align:j.a.string,height:j.a.oneOfType([j.a.number,j.a.string])},y.defaultProps={height:100};var c=y,A=e(164),o=Object(n.a)("div",{target:"e1e22q4b0"})(A.a,"{position:sticky;top:0;z-index:1;}"),C=Object(n.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),s=Object(n.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),x=Object(n.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",A.a,"{display:flex;}"),D=Object(n.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),O=Object(n.a)(N.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",A.b,"{margin-right:auto;padding:1em;}"),d=Object(n.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",A.a,"{display:none;}"),l=Object(n.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",A.a,"{display:flex;}",A.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),z=Object(n.a)(N.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",A.a,"{&.active{border-bottom-color:#2188b6;}}",A.b,"{width:100%;}"),S=function(){var t=I.data,M=Object(g.useState)(!1),e=M[0],L=M[1];return Object(i.jsx)(a.a.Fragment,null,Object(i.jsx)(o,null,Object(i.jsx)(C,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(s,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(x,null,Object(i.jsx)(D,null,Object(i.jsx)(O,{to:"/"},Object(i.jsx)(c,{height:"3em",align:"middle"})),Object(i.jsx)(d,{onClick:function(){return L(!e)}},"≡")),Object(i.jsx)(l,{className:e?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var M=t.name,e=t.link;return Object(i.jsx)(a.a.Fragment,{key:M},Object(i.jsx)(z,{to:e,activeClassName:"active",partiallyActive:"/"!==e},M))})))))};S.propTypes={siteTitle:j.a.string},S.defaultProps={siteTitle:""};var b=S,p=function(t){var M=t.children;return Object(i.jsx)(a.a.Fragment,null,Object(i.jsx)(u.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(b,null),Object(i.jsx)("main",null,M))};p.propTypes={children:j.a.node.isRequired};M.a=p},202:function(t,M,e){"use strict";var i=e(7),L=e(203),j=e(163),u=e.n(j),g=e(175),a=e.n(g);e(0);function n(t){var M=t.description,e=t.lang,j=t.meta,u=t.keywords,g=t.title,n=L.data.site,I=M||n.siteMetadata.description;return Object(i.jsx)(a.a,{htmlAttributes:{lang:e},title:g,titleTemplate:"%s | "+n.siteMetadata.title,meta:[{name:"description",content:I},{property:"og:title",content:g},{property:"og:description",content:I},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{name:"twitter:creator",content:n.siteMetadata.author},{name:"twitter:title",content:g},{name:"twitter:description",content:I}].concat(u.length>0?{name:"keywords",content:u.join(", ")}:[]).concat(j)})}n.defaultProps={lang:"en",meta:[],keywords:[]},n.propTypes={description:u.a.string,lang:u.a.string,meta:u.a.array,keywords:u.a.arrayOf(u.a.string),title:u.a.string.isRequired},M.a=n},203:function(t){t.exports={data:{site:{siteMetadata:{title:"Yarn - Package Manager",description:"Foo",author:""}}}}}}]); -//# sourceMappingURL=component---src-pages-index-js-c9f19eea234090f4d2b9.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{159:function(t,M,e){"use strict";e.r(M);var i=e(167),L=e(8),j=e(0),u=e.n(j),g=e(175),a=e(166),n=e(202),I=Object(i.a)("div",{target:"ep43e750"})({name:"6dtdwe",styles:"background:#25799f;padding:1.5em;"}),N=Object(i.a)("input",{target:"ep43e751"})({name:"13cj508",styles:"-webkit-appearance:none;width:100%;padding:.5em;font-size:inherit;border:0;border-radius:0;outline:0;background:#ffffff;"}),T=Object(i.a)("div",{target:"ep43e752"})("width:100%;padding:5em 6em;background:#2188b6;",a.b,"{padding:.5em;}"),r=Object(i.a)("div",{target:"ep43e753"})({name:"5tfwri",styles:"font-size:4em;font-weight:bold;color:#ffffff;text-shadow:5px 5px #1476a2"}),y=Object(i.a)("div",{target:"ep43e754"})({name:"1uxqs7y",styles:"max-width:800px;margin-top:40px;font-size:1.5em;font-weight:light;color:#ffffff;"});M.default=function(){return Object(L.jsx)(u.a.Fragment,null,Object(L.jsx)(g.a,null,Object(L.jsx)(n.a,{title:"Home",keywords:["gatsby","application","react"]}),Object(L.jsx)(I,null,Object(L.jsx)(N,{type:"search",placeholder:"Search packages (i.e. babel, webpack, react...)",autoFocus:!0})),Object(L.jsx)(T,null,Object(L.jsx)(r,null,"Safe, stable, reproducible projects"),Object(L.jsx)(y,null,"Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered."))))}},166:function(t,M,e){"use strict";e.d(M,"b",function(){return i}),e.d(M,"a",function(){return L});var i=function(){return"@media (max-width: 600px)"},L=function(){return"@media (min-width: 601px)"}},173:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(t,M){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(t,M,e){"use strict";var i=e(8),L=(e(157),e(165)),j=e.n(L),u=e(177),g=e(0),a=e.n(g),n=(e(179),e(169),e(167)),I=e(173),N=e(59),T=e(174),r=e.n(T),y=function(t){var M=t.align,e=t.height;return Object(i.jsx)("img",{alt:"Yarn",src:r.a,style:{height:e,verticalAlign:M}})};y.propTypes={align:j.a.string,height:j.a.oneOfType([j.a.number,j.a.string])},y.defaultProps={height:100};var c=y,A=e(166),o=Object(n.a)("div",{target:"e1e22q4b0"})(A.a,"{position:sticky;top:0;z-index:1;}"),C=Object(n.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),s=Object(n.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),x=Object(n.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",A.a,"{display:flex;}"),D=Object(n.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),O=Object(n.a)(N.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",A.b,"{margin-right:auto;padding:1em;}"),d=Object(n.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",A.a,"{display:none;}"),l=Object(n.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",A.a,"{display:flex;}",A.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),z=Object(n.a)(N.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",A.a,"{&.active{border-bottom-color:#2188b6;}}",A.b,"{width:100%;}"),S=function(){var t=I.data,M=Object(g.useState)(!1),e=M[0],L=M[1];return Object(i.jsx)(a.a.Fragment,null,Object(i.jsx)(o,null,Object(i.jsx)(C,{href:"https://github.com/yarnpkg/berry"},Object(i.jsx)(s,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(i.jsx)(x,null,Object(i.jsx)(D,null,Object(i.jsx)(O,{to:"/"},Object(i.jsx)(c,{height:"3em",align:"middle"})),Object(i.jsx)(d,{onClick:function(){return L(!e)}},"≡")),Object(i.jsx)(l,{className:e?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var M=t.name,e=t.link;return Object(i.jsx)(a.a.Fragment,{key:M},Object(i.jsx)(z,{to:e,activeClassName:"active",partiallyActive:"/"!==e},M))})))))};S.propTypes={siteTitle:j.a.string},S.defaultProps={siteTitle:""};var b=S,p=function(t){var M=t.children;return Object(i.jsx)(a.a.Fragment,null,Object(i.jsx)(u.Helmet,null,Object(i.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(i.jsx)(b,null),Object(i.jsx)("main",null,M))};p.propTypes={children:j.a.node.isRequired};M.a=p},202:function(t,M,e){"use strict";var i=e(8),L=e(203),j=e(165),u=e.n(j),g=e(177),a=e.n(g);e(0);function n(t){var M=t.description,e=t.lang,j=t.meta,u=t.keywords,g=t.title,n=L.data.site,I=M||n.siteMetadata.description;return Object(i.jsx)(a.a,{htmlAttributes:{lang:e},title:g,titleTemplate:"%s | "+n.siteMetadata.title,meta:[{name:"description",content:I},{property:"og:title",content:g},{property:"og:description",content:I},{property:"og:type",content:"website"},{name:"twitter:card",content:"summary"},{name:"twitter:creator",content:n.siteMetadata.author},{name:"twitter:title",content:g},{name:"twitter:description",content:I}].concat(u.length>0?{name:"keywords",content:u.join(", ")}:[]).concat(j)})}n.defaultProps={lang:"en",meta:[],keywords:[]},n.propTypes={description:u.a.string,lang:u.a.string,meta:u.a.array,keywords:u.a.arrayOf(u.a.string),title:u.a.string.isRequired},M.a=n},203:function(t){t.exports={data:{site:{siteMetadata:{title:"Yarn - Package Manager",description:"Foo",author:""}}}}}}]); +//# sourceMappingURL=component---src-pages-index-js-17467937177c835ff9f1.js.map \ No newline at end of file diff --git a/docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js.map b/docs/component---src-pages-index-js-17467937177c835ff9f1.js.map similarity index 99% rename from docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js.map rename to docs/component---src-pages-index-js-17467937177c835ff9f1.js.map index 355ab7ae8362..03ef79c715cf 100644 --- a/docs/component---src-pages-index-js-c9f19eea234090f4d2b9.js.map +++ b/docs/component---src-pages-index-js-17467937177c835ff9f1.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/pages/index.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/seo.js"],"names":["SearchContainer","Object","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","target","name","styles","SearchBar","Hero","ifMobile","HeroTitle","HeroSubtitle","IndexPage","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","a","Fragment","_components_layout__WEBPACK_IMPORTED_MODULE_3__","_components_seo__WEBPACK_IMPORTED_MODULE_5__","title","keywords","type","placeholder","autoFocus","__webpack_require__","d","__webpack_exports__","ifDesktop","module","exports","Logo","_ref","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","NewsContainer","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","react_default","href","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","SEO","description","lang","meta","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_1__","metaDescription","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","property","author","concat","length","join","array","arrayOf"],"mappings":"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","file":"component---src-pages-index-js-c9f19eea234090f4d2b9.js","sourcesContent":["import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from '../components/layout';\nimport {ifMobile} from '../components/responsive';\nimport SEO from '../components/seo';\n\nconst SearchContainer = styled.div`\n background: #25799f;\n\n padding: 1.5em;\n`;\n\nconst SearchBar = styled.input`\n -webkit-appearance: none;\n\n width: 100%;\n\n padding: .5em;\n\n font-size: inherit;\n\n border: 0;\n border-radius: 0;\n outline: 0;\n\n background: #ffffff;\n`;\n\nconst Hero = styled.div`\n width: 100%;\n\n padding: 5em 6em;\n\n background: #2188b6;\n\n ${ifMobile} {\n padding: .5em;\n }\n`;\n\nconst HeroTitle = styled.div`\n font-size: 4em;\n font-weight: bold;\n\n color: #ffffff;\n text-shadow: 5px 5px #1476a2\n`;\n\nconst HeroSubtitle = styled.div`\n max-width: 800px;\n\n margin-top: 40px;\n\n font-size: 1.5em;\n font-weight: light;\n\n color: #ffffff;\n`;\n\nconst IndexPage = () => <>\n \n \n \n \n \n \n \n Safe, stable, reproducible projects\n \n \n Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.\n \n \n \n;\n\nexport default IndexPage;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport {useStaticQuery, graphql} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport React from 'react';\n\nfunction SEO({ description, lang, meta, keywords, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n );\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n 0\n ? {\n name: `keywords`,\n content: keywords.join(`, `),\n }\n : []\n )\n .concat(meta)}\n />\n );\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n keywords: [],\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.array,\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/pages/index.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/seo.js"],"names":["SearchContainer","Object","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","target","name","styles","SearchBar","Hero","ifMobile","HeroTitle","HeroSubtitle","IndexPage","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","a","Fragment","_components_layout__WEBPACK_IMPORTED_MODULE_3__","_components_seo__WEBPACK_IMPORTED_MODULE_5__","title","keywords","type","placeholder","autoFocus","__webpack_require__","d","__webpack_exports__","ifDesktop","module","exports","Logo","_ref","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","NewsContainer","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","data","_837419984","_useState","useState","expanded","setExpanded","react_default","href","to","logo","onClick","className","site","siteMetadata","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","SEO","description","lang","meta","_public_static_d_2417117884_json__WEBPACK_IMPORTED_MODULE_1__","metaDescription","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react_helmet__WEBPACK_IMPORTED_MODULE_3___default","htmlAttributes","titleTemplate","property","author","concat","length","join","array","arrayOf"],"mappings":"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","file":"component---src-pages-index-js-17467937177c835ff9f1.js","sourcesContent":["import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from '../components/layout';\nimport {ifMobile} from '../components/responsive';\nimport SEO from '../components/seo';\n\nconst SearchContainer = styled.div`\n background: #25799f;\n\n padding: 1.5em;\n`;\n\nconst SearchBar = styled.input`\n -webkit-appearance: none;\n\n width: 100%;\n\n padding: .5em;\n\n font-size: inherit;\n\n border: 0;\n border-radius: 0;\n outline: 0;\n\n background: #ffffff;\n`;\n\nconst Hero = styled.div`\n width: 100%;\n\n padding: 5em 6em;\n\n background: #2188b6;\n\n ${ifMobile} {\n padding: .5em;\n }\n`;\n\nconst HeroTitle = styled.div`\n font-size: 4em;\n font-weight: bold;\n\n color: #ffffff;\n text-shadow: 5px 5px #1476a2\n`;\n\nconst HeroSubtitle = styled.div`\n max-width: 800px;\n\n margin-top: 40px;\n\n font-size: 1.5em;\n font-weight: light;\n\n color: #ffffff;\n`;\n\nconst IndexPage = () => <>\n \n \n \n \n \n \n \n Safe, stable, reproducible projects\n \n \n Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.\n \n \n \n;\n\nexport default IndexPage;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","/**\n * SEO component that queries for data with\n * Gatsby's useStaticQuery React hook\n *\n * See: https://www.gatsbyjs.org/docs/use-static-query/\n */\n\nimport {useStaticQuery, graphql} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport Helmet from 'react-helmet';\nimport React from 'react';\n\nfunction SEO({ description, lang, meta, keywords, title }) {\n const { site } = useStaticQuery(\n graphql`\n query {\n site {\n siteMetadata {\n title\n description\n author\n }\n }\n }\n `\n );\n\n const metaDescription = description || site.siteMetadata.description\n\n return (\n 0\n ? {\n name: `keywords`,\n content: keywords.join(`, `),\n }\n : []\n )\n .concat(meta)}\n />\n );\n}\n\nSEO.defaultProps = {\n lang: `en`,\n meta: [],\n keywords: [],\n};\n\nSEO.propTypes = {\n description: PropTypes.string,\n lang: PropTypes.string,\n meta: PropTypes.array,\n keywords: PropTypes.arrayOf(PropTypes.string),\n title: PropTypes.string.isRequired,\n};\n\nexport default SEO;\n"],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-pages-package-js-55070577169fad7f395c.js b/docs/component---src-pages-package-js-4067fd5f9d849625301e.js similarity index 91% rename from docs/component---src-pages-package-js-55070577169fad7f395c.js rename to docs/component---src-pages-package-js-4067fd5f9d849625301e.js index f7e34b5d0565..4fd5c9d789fb 100644 --- a/docs/component---src-pages-package-js-55070577169fad7f395c.js +++ b/docs/component---src-pages-package-js-4067fd5f9d849625301e.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{160:function(t,e,i){"use strict";i.r(e);i(84);var M=i(7),j=i(0),u=i.n(j),n=i(193),L=i(206),a=i(373),g=i(374),c=i.n(g);var r=i(395),I=function(){var t=Object(j.useState)(r.a.location),e=t[0],i=t[1];return Object(j.useEffect)(function(){var t=r.a.listen(function(t){var e=t.location;i(e)});return function(){t()}},[]),e};i.d(e,"PackagePage",function(){return N});var N=function(){var t=Object(j.useState)(null),e=t[0],i=t[1],g=I(),r=function(){var t=Object(j.useState)(null),e=t[0],i=t[1],M=Object(j.useState)(null),u=M[0],n=M[1],L=a.data.site.siteMetadata.algolia,g=L.appId,r=L.apiKey,I=L.indexName;return Object(j.useEffect)(function(){i(c()(g,r))},[g,r]),Object(j.useEffect)(function(){n(null!==e?e.initIndex(I):null)},[e,I]),{client:e,index:u}}().index,N=g.search.slice(1);return Object(j.useEffect)(function(){var t=!1;return null!==r?r.getObject(N).then(function(e){t||i(e)}):i(null),function(){t=!0}},[r,N]),Object(M.jsx)(u.a.Fragment,null,Object(M.jsx)(n.a,{items:[{to:"/package?"+N,name:"Information"},{to:"/package?"+N,name:"Manifest File"},{to:"/package?"+N,name:"File List"},{to:"/package?"+N,name:"Dependency Tree"}]},e&&Object(M.jsx)(L.a,null,e.readme)))};e.default=N},164:function(t,e,i){"use strict";i.d(e,"b",function(){return M}),i.d(e,"a",function(){return j});var M=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},171:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(t,e){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(t,e,i){"use strict";var M=i(7),j=(i(177),i(163)),u=i.n(j),n=i(175),L=i(0),a=i.n(L),g=(i(178),i(167),i(165)),c=i(171),r=i(59),I=i(172),N=i.n(I),o=function(t){var e=t.align,i=t.height;return Object(M.jsx)("img",{alt:"Yarn",src:N.a,style:{height:i,verticalAlign:e}})};o.propTypes={align:u.a.string,height:u.a.oneOfType([u.a.number,u.a.string])},o.defaultProps={height:100};var T=o,l=i(164),x=Object(g.a)("div",{target:"e1e22q4b0"})(l.a,"{position:sticky;top:0;z-index:1;}"),y=Object(g.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),s=Object(g.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),A=Object(g.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",l.a,"{display:flex;}"),d=Object(g.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),C=Object(g.a)(r.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",l.b,"{margin-right:auto;padding:1em;}"),O=Object(g.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",l.a,"{display:none;}"),D=Object(g.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",l.a,"{display:flex;}",l.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),b=Object(g.a)(r.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",l.a,"{&.active{border-bottom-color:#2188b6;}}",l.b,"{width:100%;}"),f=function(){var t=c.data,e=Object(L.useState)(!1),i=e[0],j=e[1];return Object(M.jsx)(a.a.Fragment,null,Object(M.jsx)(x,null,Object(M.jsx)(y,{href:"https://github.com/yarnpkg/berry"},Object(M.jsx)(s,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(M.jsx)(A,null,Object(M.jsx)(d,null,Object(M.jsx)(C,{to:"/"},Object(M.jsx)(T,{height:"3em",align:"middle"})),Object(M.jsx)(O,{onClick:function(){return j(!i)}},"≡")),Object(M.jsx)(D,{className:i?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var e=t.name,i=t.link;return Object(M.jsx)(a.a.Fragment,{key:e},Object(M.jsx)(b,{to:i,activeClassName:"active",partiallyActive:"/"!==i},e))})))))};f.propTypes={siteTitle:u.a.string},f.defaultProps={siteTitle:""};var m=f,z=function(t){var e=t.children;return Object(M.jsx)(a.a.Fragment,null,Object(M.jsx)(n.Helmet,null,Object(M.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(M.jsx)(m,null),Object(M.jsx)("main",null,e))};z.propTypes={children:u.a.node.isRequired};e.a=z},176:function(t,e,i){"use strict";i(82),i(167);var M=i(165),j=i(7),u=i(59),n=i(0),L=i.n(n),a=i(164),g=Object(M.a)("div",{target:"e136yufg0"})("position:relative;",a.a,"{padding-left:300px;}"),c=Object(M.a)("div",{target:"e136yufg1"})(a.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),r=Object(M.a)(u.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),I=Object(M.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});e.a=function(t){var e=t.items,i=t.children;return Object(j.jsx)(L.a.Fragment,null,Object(j.jsx)(g,null,Object(j.jsx)(c,null,e.map(function(t){var e=t.to,i=t.name;return Object(j.jsx)(L.a.Fragment,{key:i},Object(j.jsx)(r,{to:e,activeClassName:"active"},i.match(/^`.*`$/)?Object(j.jsx)("code",null,i.slice(1,-1)):i))})),Object(j.jsx)(I,null,i)))}},193:function(t,e,i){"use strict";i.d(e,"a",function(){return r});var M=i(165),j=i(7),u=i(0),n=i.n(u),L=i(173),a=i(176),g=i(164),c=Object(M.a)("div",{target:"e15875m70"})("padding:2em;",g.a,"{border-top:1px solid #cfdee9;text-align:justify;}"),r=function(t){var e=t.items,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(L.a,null,Object(j.jsx)(a.a,{items:e},Object(j.jsx)(c,null,Object(j.jsx)("div",{style:{maxWidth:900}},i)))))}},206:function(t,e,i){"use strict";i(82);var M=i(165),j=i(7),u=i(0),n=i.n(u),L=i(208),a=i.n(L),g=i(219),c=i.n(g),r=i(247),I=i.n(r);i.d(e,"b",function(){return l}),i.d(e,"a",function(){return x});var N=Object(M.a)("article",{target:"ej1wll30"})(),o=Object(M.a)("h1",{target:"ej1wll31"})({name:"1ry8ma5",styles:"box-sizing:border-box;margin:0;height:4rem;border-bottom:1px solid;font-weight:300;font-size:2rem;line-height:4rem;+ div > blockquote{font-style:normal;}"}),T=Object(M.a)("div",{target:"ej1wll32"})({name:"1qnhlud",styles:"blockquote{margin-left:0;border-left:3px solid #859daf;padding-left:.5em;font-style:italic;color:#859daf;}a:not(.anchor){border-bottom:1px solid;text-decoration:none;color:#007aa2;&:hover{color:#62b0ca;}}p,table{margin-bottom:1em;}table{width:100%;border-collapse:collapse;}th{color:#007aa2;}th,td{border:1px solid #007aa2;padding:.5em 1em;}h1{margin-top:0;}h2,h3,h4{border-bottom:1px solid #d1dee8;padding-bottom:0.2em;font-weight:300;}pre{padding:1em;overflow-x:auto;background:#242424;}code{display:inline-block;text-align:left;color:#007aa2;}pre code{color:#ddddcc;}"}),l=function(t){var e=t.title,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(N,null,Object(j.jsx)(o,null,e.match(/^`.*`$/)?Object(j.jsx)("code",null,e.slice(1,-1)):e),Object(j.jsx)(T,{dangerouslySetInnerHTML:{__html:i}})))},x=function(t){var e,i,M,L,g,r=t.title,N=t.children,o=(e=function(){return I()().use(a.a).use(c.a,{sanitize:!0}).process(N)},i=[N],M=Object(u.useState)(),L=M[0],g=M[1],Object(u.useEffect)(function(){var t=!1,i=e();return i&&i.then?i.then(function(e){t||g(e)}):g(i),function(){t=!0}},i),L);return o?Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(l,{title:r},String(o))):null}},373:function(t){t.exports={data:{site:{siteMetadata:{algolia:{appId:"OFCNCOG2CU",apiKey:"f54e21fa3a2a0160595bb058179bfb1e",indexName:"npm-search"}}}}}}}]); -//# sourceMappingURL=component---src-pages-package-js-55070577169fad7f395c.js.map \ No newline at end of file +(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{162:function(t,e,i){"use strict";i.r(e);i(85);var M=i(8),j=i(0),u=i.n(j),n=i(194),L=i(206),a=i(376),g=i(377),c=i.n(g);var r=i(398),I=function(){var t=Object(j.useState)(r.a.location),e=t[0],i=t[1];return Object(j.useEffect)(function(){var t=r.a.listen(function(t){var e=t.location;i(e)});return function(){t()}},[]),e};i.d(e,"PackagePage",function(){return N});var N=function(){var t=Object(j.useState)(null),e=t[0],i=t[1],g=I(),r=function(){var t=Object(j.useState)(null),e=t[0],i=t[1],M=Object(j.useState)(null),u=M[0],n=M[1],L=a.data.site.siteMetadata.algolia,g=L.appId,r=L.apiKey,I=L.indexName;return Object(j.useEffect)(function(){i(c()(g,r))},[g,r]),Object(j.useEffect)(function(){n(null!==e?e.initIndex(I):null)},[e,I]),{client:e,index:u}}().index,N=g.search.slice(1);return Object(j.useEffect)(function(){var t=!1;return null!==r?r.getObject(N).then(function(e){t||i(e)}):i(null),function(){t=!0}},[r,N]),Object(M.jsx)(u.a.Fragment,null,Object(M.jsx)(n.a,{items:[{to:"/package?"+N,name:"Information"},{to:"/package?"+N,name:"Manifest File"},{to:"/package?"+N,name:"File List"},{to:"/package?"+N,name:"Dependency Tree"}]},e&&Object(M.jsx)(L.a,null,e.readme)))};e.default=N},166:function(t,e,i){"use strict";i.d(e,"b",function(){return M}),i.d(e,"a",function(){return j});var M=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},173:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(t,e){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(t,e,i){"use strict";var M=i(8),j=(i(157),i(165)),u=i.n(j),n=i(177),L=i(0),a=i.n(L),g=(i(179),i(169),i(167)),c=i(173),r=i(59),I=i(174),N=i.n(I),o=function(t){var e=t.align,i=t.height;return Object(M.jsx)("img",{alt:"Yarn",src:N.a,style:{height:i,verticalAlign:e}})};o.propTypes={align:u.a.string,height:u.a.oneOfType([u.a.number,u.a.string])},o.defaultProps={height:100};var T=o,l=i(166),x=Object(g.a)("div",{target:"e1e22q4b0"})(l.a,"{position:sticky;top:0;z-index:1;}"),y=Object(g.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),s=Object(g.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),A=Object(g.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",l.a,"{display:flex;}"),d=Object(g.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),C=Object(g.a)(r.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",l.b,"{margin-right:auto;padding:1em;}"),O=Object(g.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",l.a,"{display:none;}"),D=Object(g.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",l.a,"{display:flex;}",l.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),b=Object(g.a)(r.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",l.a,"{&.active{border-bottom-color:#2188b6;}}",l.b,"{width:100%;}"),f=function(){var t=c.data,e=Object(L.useState)(!1),i=e[0],j=e[1];return Object(M.jsx)(a.a.Fragment,null,Object(M.jsx)(x,null,Object(M.jsx)(y,{href:"https://github.com/yarnpkg/berry"},Object(M.jsx)(s,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(M.jsx)(A,null,Object(M.jsx)(d,null,Object(M.jsx)(C,{to:"/"},Object(M.jsx)(T,{height:"3em",align:"middle"})),Object(M.jsx)(O,{onClick:function(){return j(!i)}},"≡")),Object(M.jsx)(D,{className:i?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var e=t.name,i=t.link;return Object(M.jsx)(a.a.Fragment,{key:e},Object(M.jsx)(b,{to:i,activeClassName:"active",partiallyActive:"/"!==i},e))})))))};f.propTypes={siteTitle:u.a.string},f.defaultProps={siteTitle:""};var m=f,z=function(t){var e=t.children;return Object(M.jsx)(a.a.Fragment,null,Object(M.jsx)(n.Helmet,null,Object(M.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(M.jsx)(m,null),Object(M.jsx)("main",null,e))};z.propTypes={children:u.a.node.isRequired};e.a=z},178:function(t,e,i){"use strict";i(82),i(169);var M=i(167),j=i(8),u=i(59),n=i(0),L=i.n(n),a=i(166),g=Object(M.a)("div",{target:"e136yufg0"})("position:relative;",a.a,"{padding-left:300px;}"),c=Object(M.a)("div",{target:"e136yufg1"})(a.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),r=Object(M.a)(u.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),I=Object(M.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});e.a=function(t){var e=t.items,i=t.children;return Object(j.jsx)(L.a.Fragment,null,Object(j.jsx)(g,null,Object(j.jsx)(c,null,e.map(function(t){var e=t.to,i=t.name;return Object(j.jsx)(L.a.Fragment,{key:i},Object(j.jsx)(r,{to:e,activeClassName:"active"},i.match(/^`.*`$/)?Object(j.jsx)("code",null,i.slice(1,-1)):i))})),Object(j.jsx)(I,null,i)))}},194:function(t,e,i){"use strict";i.d(e,"a",function(){return r});var M=i(167),j=i(8),u=i(0),n=i.n(u),L=i(175),a=i(178),g=i(166),c=Object(M.a)("div",{target:"e15875m70"})("padding:2em;",g.a,"{border-top:1px solid #cfdee9;text-align:justify;}"),r=function(t){var e=t.items,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(L.a,null,Object(j.jsx)(a.a,{items:e},Object(j.jsx)(c,null,Object(j.jsx)("div",{style:{maxWidth:900}},i)))))}},206:function(t,e,i){"use strict";i(82);var M=i(167),j=i(8),u=i(0),n=i.n(u),L=i(209),a=i.n(L),g=i(220),c=i.n(g),r=i(248),I=i.n(r);i.d(e,"b",function(){return l}),i.d(e,"a",function(){return x});var N=Object(M.a)("article",{target:"ej1wll30"})(),o=Object(M.a)("h1",{target:"ej1wll31"})({name:"1ry8ma5",styles:"box-sizing:border-box;margin:0;height:4rem;border-bottom:1px solid;font-weight:300;font-size:2rem;line-height:4rem;+ div > blockquote{font-style:normal;}"}),T=Object(M.a)("div",{target:"ej1wll32"})({name:"1qnhlud",styles:"blockquote{margin-left:0;border-left:3px solid #859daf;padding-left:.5em;font-style:italic;color:#859daf;}a:not(.anchor){border-bottom:1px solid;text-decoration:none;color:#007aa2;&:hover{color:#62b0ca;}}p,table{margin-bottom:1em;}table{width:100%;border-collapse:collapse;}th{color:#007aa2;}th,td{border:1px solid #007aa2;padding:.5em 1em;}h1{margin-top:0;}h2,h3,h4{border-bottom:1px solid #d1dee8;padding-bottom:0.2em;font-weight:300;}pre{padding:1em;overflow-x:auto;background:#242424;}code{display:inline-block;text-align:left;color:#007aa2;}pre code{color:#ddddcc;}"}),l=function(t){var e=t.title,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(N,null,Object(j.jsx)(o,null,e.match(/^`.*`$/)?Object(j.jsx)("code",null,e.slice(1,-1)):e),Object(j.jsx)(T,{dangerouslySetInnerHTML:{__html:i}})))},x=function(t){var e,i,M,L,g,r=t.title,N=t.children,o=(e=function(){return I()().use(a.a).use(c.a,{sanitize:!0}).process(N)},i=[N],M=Object(u.useState)(),L=M[0],g=M[1],Object(u.useEffect)(function(){var t=!1,i=e();return i&&i.then?i.then(function(e){t||g(e)}):g(i),function(){t=!0}},i),L);return o?Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(l,{title:r},String(o))):null}},376:function(t){t.exports={data:{site:{siteMetadata:{algolia:{appId:"OFCNCOG2CU",apiKey:"f54e21fa3a2a0160595bb058179bfb1e",indexName:"npm-search"}}}}}}}]); +//# sourceMappingURL=component---src-pages-package-js-4067fd5f9d849625301e.js.map \ No newline at end of file diff --git a/docs/component---src-pages-package-js-55070577169fad7f395c.js.map b/docs/component---src-pages-package-js-4067fd5f9d849625301e.js.map similarity index 99% rename from docs/component---src-pages-package-js-55070577169fad7f395c.js.map rename to docs/component---src-pages-package-js-4067fd5f9d849625301e.js.map index df0fb9ca73da..136e81eae247 100644 --- a/docs/component---src-pages-package-js-55070577169fad7f395c.js.map +++ b/docs/component---src-pages-package-js-4067fd5f9d849625301e.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/utils/useLocation.js","webpack:///./src/pages/package.js","webpack:///./src/utils/useAlgolia.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/layout-content-nav.js","webpack:///./src/components/markdown.js","webpack:///./src/utils/useCache.js"],"names":["useLocation","_useState","useState","globalHistory","location","setLocation","useEffect","removeListener","listen","_ref","PackagePage","data","setData","index","client","setClient","_useState2","setIndex","_data$site$siteMetada","_52907304","site","siteMetadata","algolia","appId","apiKey","indexName","algoliasearch","initIndex","useAlgolia","packageName","search","slice","cancelled","getObject","then","Object","core_browser_cjs","react_default","a","Fragment","layout_content_nav","items","to","name","markdown","readme","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","_837419984","expanded","setExpanded","href","logo","onClick","className","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","_ref2","match","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","LayoutContentNav","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__","maxWidth","Title","PrerenderedMarkdown","title","dangerouslySetInnerHTML","__html","Markdown","cb","dependencies","state","setState","document","unified","use","html","sanitize","process","value","realValue","markdown_PrerenderedMarkdown","String"],"mappings":"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","file":"component---src-pages-package-js-55070577169fad7f395c.js","sourcesContent":["import {globalHistory} from '@reach/router';\nimport {useEffect, useState} from 'react';\n\nconst useLocation = () => {\n const [location, setLocation] = useState(globalHistory.location);\n\n useEffect(() => {\n const removeListener = globalHistory.listen(({location}) => {\n setLocation(location);\n });\n\n return () => {\n removeListener();\n };\n }, []);\n\n return location;\n};\n\nexport default useLocation;\n","import React, {useEffect, useState} from 'react';\n\nimport {LayoutContentNav} from '../components/layout-content-nav';\nimport {Markdown} from '../components/markdown';\nimport useAlgolia from '../utils/useAlgolia';\nimport useLocation from '../utils/useLocation';\n\nexport const PackagePage = () => {\n const [data, setData] = useState(null);\n\n const location = useLocation();\n const {index} = useAlgolia();\n\n const packageName = location.search.slice(1);\n\n useEffect(() => {\n let cancelled = false;\n\n if (index !== null) {\n index.getObject(packageName).then(data => {\n if (!cancelled) {\n setData(data);\n }\n });\n } else {\n setData(null);\n }\n\n return () => {\n cancelled = true;\n };\n }, [\n index,\n packageName,\n ]);\n\n return <>\n \n {data && {data.readme}}\n \n ;\n}\n\nexport default PackagePage;\n","import algoliasearch from 'algoliasearch/lite';\nimport {graphql, useStaticQuery} from 'gatsby';\nimport {useEffect, useState} from 'react';\n\nexport default function useAlgolia() {\n const [client, setClient] = useState(null);\n const [index, setIndex] = useState(null);\n\n const data = useStaticQuery(graphql`\n query HeaderQuery {\n site {\n siteMetadata {\n algolia {\n appId\n apiKey\n indexName\n }\n }\n }\n }\n `);\n\n const {\n appId,\n apiKey,\n indexName,\n } = data.site.siteMetadata.algolia;\n\n useEffect(() => {\n setClient(algoliasearch(appId, apiKey));\n }, [\n appId,\n apiKey,\n ]);\n\n useEffect(() => {\n if (client !== null) {\n setIndex(client.initIndex(indexName));\n } else {\n setIndex(null);\n }\n }, [\n client,\n indexName,\n ]);\n\n return {client, index};\n}\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n padding: 2em;\n\n ${ifDesktop} {\n border-top: 1px solid #cfdee9;\n\n text-align: justify;\n }\n`;\n\nexport const LayoutContentNav = ({items, children}) => {\n return <>\n \n \n \n
\n {children}\n
\n
\n
\n
\n ;\n}\n","import styled from '@emotion/styled';\nimport React from 'react';\nimport markdown from 'remark-parse';\nimport html from 'remark-html';\nimport unified from 'unified';\n\nimport useCache from '../utils/useCache';\n\nconst Container = styled.article`\n`;\n\nconst Title = styled.h1`\n box-sizing: border-box;\n\n margin: 0;\n\n height: 4rem;\n\n border-bottom: 1px solid;\n\n font-weight: 300;\n font-size: 2rem;\n line-height: 4rem;\n\n + div > blockquote {\n font-style: normal;\n }\n`;\n\nconst Content = styled.div`\n blockquote {\n margin-left: 0;\n\n border-left: 3px solid #859daf;\n\n padding-left: .5em;\n\n font-style: italic;\n\n color: #859daf;\n }\n\n a:not(.anchor) {\n border-bottom: 1px solid;\n\n text-decoration: none;\n\n color: #007aa2;\n\n &:hover {\n color: #62b0ca;\n }\n }\n\n p, table {\n margin-bottom: 1em;\n }\n\n table {\n width: 100%;\n\n border-collapse: collapse;\n }\n\n th {\n color: #007aa2;\n }\n\n th, td {\n border: 1px solid #007aa2;\n\n padding: .5em 1em;\n }\n\n h1 {\n margin-top: 0;\n }\n\n h2, h3, h4 {\n border-bottom: 1px solid #d1dee8;\n\n padding-bottom: 0.2em;\n\n font-weight: 300;\n }\n\n pre {\n padding: 1em;\n\n overflow-x: auto;\n\n background: #242424;\n }\n\n code {\n display: inline-block;\n\n text-align: left;\n\n color: #007aa2;\n }\n\n pre code {\n color: #ddddcc;\n }\n`;\n\nexport const PrerenderedMarkdown = ({title, children}) => <>\n \n \n {title.match(/^`.*`$/) ? <code>{title.slice(1, -1)}</code> : title}\n \n \n \n;\n\nexport const Markdown = ({title, children}) => {\n const document = useCache(() => {\n return unified().use(markdown).use(html, {\n sanitize: true,\n }).process(children);\n }, [\n children,\n ]);\n\n return document ? <>\n \n {String(document)}\n \n : null;\n}\n","import {useEffect, useState} from 'react';\n\nexport default function useCache(cb, dependencies) {\n const [state, setState] = useState();\n\n useEffect(() => {\n let cancelled = false;\n const value = cb();\n\n if (value && value.then) {\n value.then(realValue => {\n if (!cancelled) {\n setState(realValue);\n }\n });\n } else {\n setState(value);\n }\n\n return () => {\n cancelled = true;\n };\n }, dependencies)\n\n return state;\n} "],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/utils/useLocation.js","webpack:///./src/pages/package.js","webpack:///./src/utils/useAlgolia.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/layout-content-nav.js","webpack:///./src/components/markdown.js","webpack:///./src/utils/useCache.js"],"names":["useLocation","_useState","useState","globalHistory","location","setLocation","useEffect","removeListener","listen","_ref","PackagePage","data","setData","index","client","setClient","_useState2","setIndex","_data$site$siteMetada","_52907304","site","siteMetadata","algolia","appId","apiKey","indexName","algoliasearch","initIndex","useAlgolia","packageName","search","slice","cancelled","getObject","then","Object","core_browser_cjs","react_default","a","Fragment","layout_content_nav","items","to","name","markdown","readme","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","_837419984","expanded","setExpanded","href","logo","onClick","className","menuLinks","map","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","node","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","_ref2","match","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","LayoutContentNav","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__","maxWidth","Title","PrerenderedMarkdown","title","dangerouslySetInnerHTML","__html","Markdown","cb","dependencies","state","setState","document","unified","use","html","sanitize","process","value","realValue","markdown_PrerenderedMarkdown","String"],"mappings":"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","file":"component---src-pages-package-js-4067fd5f9d849625301e.js","sourcesContent":["import {globalHistory} from '@reach/router';\nimport {useEffect, useState} from 'react';\n\nconst useLocation = () => {\n const [location, setLocation] = useState(globalHistory.location);\n\n useEffect(() => {\n const removeListener = globalHistory.listen(({location}) => {\n setLocation(location);\n });\n\n return () => {\n removeListener();\n };\n }, []);\n\n return location;\n};\n\nexport default useLocation;\n","import React, {useEffect, useState} from 'react';\n\nimport {LayoutContentNav} from '../components/layout-content-nav';\nimport {Markdown} from '../components/markdown';\nimport useAlgolia from '../utils/useAlgolia';\nimport useLocation from '../utils/useLocation';\n\nexport const PackagePage = () => {\n const [data, setData] = useState(null);\n\n const location = useLocation();\n const {index} = useAlgolia();\n\n const packageName = location.search.slice(1);\n\n useEffect(() => {\n let cancelled = false;\n\n if (index !== null) {\n index.getObject(packageName).then(data => {\n if (!cancelled) {\n setData(data);\n }\n });\n } else {\n setData(null);\n }\n\n return () => {\n cancelled = true;\n };\n }, [\n index,\n packageName,\n ]);\n\n return <>\n \n {data && {data.readme}}\n \n ;\n}\n\nexport default PackagePage;\n","import algoliasearch from 'algoliasearch/lite';\nimport {graphql, useStaticQuery} from 'gatsby';\nimport {useEffect, useState} from 'react';\n\nexport default function useAlgolia() {\n const [client, setClient] = useState(null);\n const [index, setIndex] = useState(null);\n\n const data = useStaticQuery(graphql`\n query HeaderQuery {\n site {\n siteMetadata {\n algolia {\n appId\n apiKey\n indexName\n }\n }\n }\n }\n `);\n\n const {\n appId,\n apiKey,\n indexName,\n } = data.site.siteMetadata.algolia;\n\n useEffect(() => {\n setClient(algoliasearch(appId, apiKey));\n }, [\n appId,\n apiKey,\n ]);\n\n useEffect(() => {\n if (client !== null) {\n setIndex(client.initIndex(indexName));\n } else {\n setIndex(null);\n }\n }, [\n client,\n indexName,\n ]);\n\n return {client, index};\n}\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n padding: 2em;\n\n ${ifDesktop} {\n border-top: 1px solid #cfdee9;\n\n text-align: justify;\n }\n`;\n\nexport const LayoutContentNav = ({items, children}) => {\n return <>\n \n \n \n
\n {children}\n
\n
\n
\n
\n ;\n}\n","import styled from '@emotion/styled';\nimport React from 'react';\nimport markdown from 'remark-parse';\nimport html from 'remark-html';\nimport unified from 'unified';\n\nimport useCache from '../utils/useCache';\n\nconst Container = styled.article`\n`;\n\nconst Title = styled.h1`\n box-sizing: border-box;\n\n margin: 0;\n\n height: 4rem;\n\n border-bottom: 1px solid;\n\n font-weight: 300;\n font-size: 2rem;\n line-height: 4rem;\n\n + div > blockquote {\n font-style: normal;\n }\n`;\n\nconst Content = styled.div`\n blockquote {\n margin-left: 0;\n\n border-left: 3px solid #859daf;\n\n padding-left: .5em;\n\n font-style: italic;\n\n color: #859daf;\n }\n\n a:not(.anchor) {\n border-bottom: 1px solid;\n\n text-decoration: none;\n\n color: #007aa2;\n\n &:hover {\n color: #62b0ca;\n }\n }\n\n p, table {\n margin-bottom: 1em;\n }\n\n table {\n width: 100%;\n\n border-collapse: collapse;\n }\n\n th {\n color: #007aa2;\n }\n\n th, td {\n border: 1px solid #007aa2;\n\n padding: .5em 1em;\n }\n\n h1 {\n margin-top: 0;\n }\n\n h2, h3, h4 {\n border-bottom: 1px solid #d1dee8;\n\n padding-bottom: 0.2em;\n\n font-weight: 300;\n }\n\n pre {\n padding: 1em;\n\n overflow-x: auto;\n\n background: #242424;\n }\n\n code {\n display: inline-block;\n\n text-align: left;\n\n color: #007aa2;\n }\n\n pre code {\n color: #ddddcc;\n }\n`;\n\nexport const PrerenderedMarkdown = ({title, children}) => <>\n \n \n {title.match(/^`.*`$/) ? <code>{title.slice(1, -1)}</code> : title}\n \n \n \n;\n\nexport const Markdown = ({title, children}) => {\n const document = useCache(() => {\n return unified().use(markdown).use(html, {\n sanitize: true,\n }).process(children);\n }, [\n children,\n ]);\n\n return document ? <>\n \n {String(document)}\n \n : null;\n}\n","import {useEffect, useState} from 'react';\n\nexport default function useCache(cb, dependencies) {\n const [state, setState] = useState();\n\n useEffect(() => {\n let cancelled = false;\n const value = cb();\n\n if (value && value.then) {\n value.then(realValue => {\n if (!cancelled) {\n setState(realValue);\n }\n });\n } else {\n setState(value);\n }\n\n return () => {\n cancelled = true;\n };\n }, dependencies)\n\n return state;\n} "],"sourceRoot":""} \ No newline at end of file diff --git a/docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js b/docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js deleted file mode 100644 index 5da0339ed7a8..000000000000 --- a/docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[9],{156:function(t,e,i){"use strict";i.r(e),i.d(e,"default",function(){return g}),i.d(e,"pageQuery",function(){return a});var M=i(7),j=i(0),L=i.n(j),u=i(193),n=i(206);function g(t){var e=t.data,i=(t.pageContext.category,e.allMarkdownRemark),j=e.markdownRemark,g=j.frontmatter,a=j.html;return Object(M.jsx)(L.a.Fragment,null,Object(M.jsx)(u.a,{items:i.edges.map(function(t){var e=t.node;return{to:e.frontmatter.path,name:e.frontmatter.title}})},Object(M.jsx)(n.b,{title:g.title},a)))}var a="2965834883"},164:function(t,e,i){"use strict";i.d(e,"b",function(){return M}),i.d(e,"a",function(){return j});var M=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},171:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},172:function(t,e){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},173:function(t,e,i){"use strict";var M=i(7),j=(i(177),i(163)),L=i.n(j),u=i(175),n=i(0),g=i.n(n),a=(i(178),i(167),i(165)),r=i(171),I=i(59),N=i(172),c=i.n(N),o=function(t){var e=t.align,i=t.height;return Object(M.jsx)("img",{alt:"Yarn",src:c.a,style:{height:i,verticalAlign:e}})};o.propTypes={align:L.a.string,height:L.a.oneOfType([L.a.number,L.a.string])},o.defaultProps={height:100};var T=o,y=i(164),x=Object(a.a)("div",{target:"e1e22q4b0"})(y.a,"{position:sticky;top:0;z-index:1;}"),l=Object(a.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),A=Object(a.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),s=Object(a.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",y.a,"{display:flex;}"),C=Object(a.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),d=Object(a.a)(I.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",y.b,"{margin-right:auto;padding:1em;}"),D=Object(a.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",y.a,"{display:none;}"),O=Object(a.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",y.a,"{display:flex;}",y.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),b=Object(a.a)(I.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",y.a,"{&.active{border-bottom-color:#2188b6;}}",y.b,"{width:100%;}"),f=function(){var t=r.data,e=Object(n.useState)(!1),i=e[0],j=e[1];return Object(M.jsx)(g.a.Fragment,null,Object(M.jsx)(x,null,Object(M.jsx)(l,{href:"https://github.com/yarnpkg/berry"},Object(M.jsx)(A,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(M.jsx)(s,null,Object(M.jsx)(C,null,Object(M.jsx)(d,{to:"/"},Object(M.jsx)(T,{height:"3em",align:"middle"})),Object(M.jsx)(D,{onClick:function(){return j(!i)}},"≡")),Object(M.jsx)(O,{className:i?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var e=t.name,i=t.link;return Object(M.jsx)(g.a.Fragment,{key:e},Object(M.jsx)(b,{to:i,activeClassName:"active",partiallyActive:"/"!==i},e))})))))};f.propTypes={siteTitle:L.a.string},f.defaultProps={siteTitle:""};var m=f,z=function(t){var e=t.children;return Object(M.jsx)(g.a.Fragment,null,Object(M.jsx)(u.Helmet,null,Object(M.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(M.jsx)(m,null),Object(M.jsx)("main",null,e))};z.propTypes={children:L.a.node.isRequired};e.a=z},176:function(t,e,i){"use strict";i(82),i(167);var M=i(165),j=i(7),L=i(59),u=i(0),n=i.n(u),g=i(164),a=Object(M.a)("div",{target:"e136yufg0"})("position:relative;",g.a,"{padding-left:300px;}"),r=Object(M.a)("div",{target:"e136yufg1"})(g.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),I=Object(M.a)(L.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),N=Object(M.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});e.a=function(t){var e=t.items,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(a,null,Object(j.jsx)(r,null,e.map(function(t){var e=t.to,i=t.name;return Object(j.jsx)(n.a.Fragment,{key:i},Object(j.jsx)(I,{to:e,activeClassName:"active"},i.match(/^`.*`$/)?Object(j.jsx)("code",null,i.slice(1,-1)):i))})),Object(j.jsx)(N,null,i)))}},193:function(t,e,i){"use strict";i.d(e,"a",function(){return I});var M=i(165),j=i(7),L=i(0),u=i.n(L),n=i(173),g=i(176),a=i(164),r=Object(M.a)("div",{target:"e15875m70"})("padding:2em;",a.a,"{border-top:1px solid #cfdee9;text-align:justify;}"),I=function(t){var e=t.items,i=t.children;return Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(n.a,null,Object(j.jsx)(g.a,{items:e},Object(j.jsx)(r,null,Object(j.jsx)("div",{style:{maxWidth:900}},i)))))}},206:function(t,e,i){"use strict";i(82);var M=i(165),j=i(7),L=i(0),u=i.n(L),n=i(208),g=i.n(n),a=i(219),r=i.n(a),I=i(247),N=i.n(I);i.d(e,"b",function(){return y}),i.d(e,"a",function(){return x});var c=Object(M.a)("article",{target:"ej1wll30"})(),o=Object(M.a)("h1",{target:"ej1wll31"})({name:"1ry8ma5",styles:"box-sizing:border-box;margin:0;height:4rem;border-bottom:1px solid;font-weight:300;font-size:2rem;line-height:4rem;+ div > blockquote{font-style:normal;}"}),T=Object(M.a)("div",{target:"ej1wll32"})({name:"1qnhlud",styles:"blockquote{margin-left:0;border-left:3px solid #859daf;padding-left:.5em;font-style:italic;color:#859daf;}a:not(.anchor){border-bottom:1px solid;text-decoration:none;color:#007aa2;&:hover{color:#62b0ca;}}p,table{margin-bottom:1em;}table{width:100%;border-collapse:collapse;}th{color:#007aa2;}th,td{border:1px solid #007aa2;padding:.5em 1em;}h1{margin-top:0;}h2,h3,h4{border-bottom:1px solid #d1dee8;padding-bottom:0.2em;font-weight:300;}pre{padding:1em;overflow-x:auto;background:#242424;}code{display:inline-block;text-align:left;color:#007aa2;}pre code{color:#ddddcc;}"}),y=function(t){var e=t.title,i=t.children;return Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(c,null,Object(j.jsx)(o,null,e.match(/^`.*`$/)?Object(j.jsx)("code",null,e.slice(1,-1)):e),Object(j.jsx)(T,{dangerouslySetInnerHTML:{__html:i}})))},x=function(t){var e,i,M,n,a,I=t.title,c=t.children,o=(e=function(){return N()().use(g.a).use(r.a,{sanitize:!0}).process(c)},i=[c],M=Object(L.useState)(),n=M[0],a=M[1],Object(L.useEffect)(function(){var t=!1,i=e();return i&&i.then?i.then(function(e){t||a(e)}):a(i),function(){t=!0}},i),n);return o?Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(y,{title:I},String(o))):null}}}]); -//# sourceMappingURL=component---src-templates-article-js-6eb8a5462d025bb1824c.js.map \ No newline at end of file diff --git a/docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js b/docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js new file mode 100644 index 000000000000..da737ae8b0ac --- /dev/null +++ b/docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{158:function(t,e,i){"use strict";i.r(e),i.d(e,"default",function(){return g}),i.d(e,"pageQuery",function(){return a});var M=i(8),j=i(0),L=i.n(j),u=i(194),n=i(206);function g(t){var e=t.data,i=(t.pageContext.category,e.allMarkdownRemark),j=e.markdownRemark,g=j.frontmatter,a=j.html;return Object(M.jsx)(L.a.Fragment,null,Object(M.jsx)(u.a,{items:i.edges.map(function(t){var e=t.node;return{to:e.frontmatter.path,name:e.frontmatter.title}})},Object(M.jsx)(n.b,{title:g.title},a)))}var a="2965834883"},166:function(t,e,i){"use strict";i.d(e,"b",function(){return M}),i.d(e,"a",function(){return j});var M=function(){return"@media (max-width: 600px)"},j=function(){return"@media (min-width: 601px)"}},173:function(t){t.exports={data:{site:{siteMetadata:{menuLinks:[{name:"Home",link:"/"},{name:"Getting started",link:"/getting-started"},{name:"Configuration",link:"/configuration"},{name:"Features",link:"/features"},{name:"CLI",link:"/cli/install"},{name:"Advanced",link:"/advanced/architecture"}]}}}}},174:function(t,e){t.exports="data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+"},175:function(t,e,i){"use strict";var M=i(8),j=(i(157),i(165)),L=i.n(j),u=i(177),n=i(0),g=i.n(n),a=(i(179),i(169),i(167)),r=i(173),I=i(59),N=i(174),c=i.n(N),o=function(t){var e=t.align,i=t.height;return Object(M.jsx)("img",{alt:"Yarn",src:c.a,style:{height:i,verticalAlign:e}})};o.propTypes={align:L.a.string,height:L.a.oneOfType([L.a.number,L.a.string])},o.defaultProps={height:100};var T=o,y=i(166),x=Object(a.a)("div",{target:"e1e22q4b0"})(y.a,"{position:sticky;top:0;z-index:1;}"),l=Object(a.a)("a",{target:"e1e22q4b1"})({name:"14wzgec",styles:"display:block;padding:0.8em 1em;font-weight:light;text-decoration:none;background:#2188b6;color:rgba(255,255,255,0.8);"}),A=Object(a.a)("span",{target:"e1e22q4b2"})({name:"ol3iif",styles:"font-weight:bold;color:#ffffff;"}),s=Object(a.a)("header",{target:"e1e22q4b3"})("background:#ffffff;",y.a,"{display:flex;}"),C=Object(a.a)("div",{target:"e1e22q4b4"})({name:"k008qs",styles:"display:flex;"}),d=Object(a.a)(I.Link,{target:"e1e22q4b5"})("display:flex;align-items:center;padding:0 1em;",y.b,"{margin-right:auto;padding:1em;}"),D=Object(a.a)("button",{target:"e1e22q4b6"})("margin:1em;margin-left:0;border:1px solid lightgrey;border-radius:10px;width:3em;height:3em;font-size:inherit;background:#ffffff;",y.a,"{display:none;}"),O=Object(a.a)("div",{target:"e1e22q4b7"})("background:#ffffff;",y.a,"{display:flex;}",y.b,"{position:absolute;z-index:1;width:100%;transform:scaleY(0);transform-origin:top left;transition:transform .3s;&.expanded{transform:scaleY(1);}}"),b=Object(a.a)(I.Link,{target:"e1e22q4b8"})("display:flex;align-items:center;height:4em;border:3px solid transparent;padding:0 1em;font-family:Abel;font-weight:light;text-decoration:none;text-transform:uppercase;color:#000000;",y.a,"{&.active{border-bottom-color:#2188b6;}}",y.b,"{width:100%;}"),f=function(){var t=r.data,e=Object(n.useState)(!1),i=e[0],j=e[1];return Object(M.jsx)(g.a.Fragment,null,Object(M.jsx)(x,null,Object(M.jsx)(l,{href:"https://github.com/yarnpkg/berry"},Object(M.jsx)(A,null,"Important:")," This documentation covers the v2 onwards and is actively being worked on. Come help us!"),Object(M.jsx)(s,null,Object(M.jsx)(C,null,Object(M.jsx)(d,{to:"/"},Object(M.jsx)(T,{height:"3em",align:"middle"})),Object(M.jsx)(D,{onClick:function(){return j(!i)}},"≡")),Object(M.jsx)(O,{className:i?"expanded":""},t.site.siteMetadata.menuLinks.map(function(t){var e=t.name,i=t.link;return Object(M.jsx)(g.a.Fragment,{key:e},Object(M.jsx)(b,{to:i,activeClassName:"active",partiallyActive:"/"!==i},e))})))))};f.propTypes={siteTitle:L.a.string},f.defaultProps={siteTitle:""};var m=f,z=function(t){var e=t.children;return Object(M.jsx)(g.a.Fragment,null,Object(M.jsx)(u.Helmet,null,Object(M.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1"})),Object(M.jsx)(m,null),Object(M.jsx)("main",null,e))};z.propTypes={children:L.a.node.isRequired};e.a=z},178:function(t,e,i){"use strict";i(82),i(169);var M=i(167),j=i(8),L=i(59),u=i(0),n=i.n(u),g=i(166),a=Object(M.a)("div",{target:"e136yufg0"})("position:relative;",g.a,"{padding-left:300px;}"),r=Object(M.a)("div",{target:"e136yufg1"})(g.a,"{position:fixed;left:0;width:300px;height:calc(100vh - 4em);overflow-y:auto;background:#d1dee8;}"),I=Object(M.a)(L.Link,{target:"e136yufg2"})({name:"1srnx9y",styles:'display:flex;position:relative;align-items:center;border-bottom:1px solid #cfdee9;&:first-of-type{border-top:1px solid #cfdee9;}padding:1.5em;text-decoration:none;background:#ffffff;color:#333333;&::before{content:"";position:absolute;z-index:1;top:-1px;bottom:-1px;right:0;width:5px;background:#cfdee9;}&.active::before{background:#2188b6;}'}),N=Object(M.a)("div",{target:"e136yufg3"})({name:"rnvzr0",styles:"& > *{overflow:auto;}"});e.a=function(t){var e=t.items,i=t.children;return Object(j.jsx)(n.a.Fragment,null,Object(j.jsx)(a,null,Object(j.jsx)(r,null,e.map(function(t){var e=t.to,i=t.name;return Object(j.jsx)(n.a.Fragment,{key:i},Object(j.jsx)(I,{to:e,activeClassName:"active"},i.match(/^`.*`$/)?Object(j.jsx)("code",null,i.slice(1,-1)):i))})),Object(j.jsx)(N,null,i)))}},194:function(t,e,i){"use strict";i.d(e,"a",function(){return I});var M=i(167),j=i(8),L=i(0),u=i.n(L),n=i(175),g=i(178),a=i(166),r=Object(M.a)("div",{target:"e15875m70"})("padding:2em;",a.a,"{border-top:1px solid #cfdee9;text-align:justify;}"),I=function(t){var e=t.items,i=t.children;return Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(n.a,null,Object(j.jsx)(g.a,{items:e},Object(j.jsx)(r,null,Object(j.jsx)("div",{style:{maxWidth:900}},i)))))}},206:function(t,e,i){"use strict";i(82);var M=i(167),j=i(8),L=i(0),u=i.n(L),n=i(209),g=i.n(n),a=i(220),r=i.n(a),I=i(248),N=i.n(I);i.d(e,"b",function(){return y}),i.d(e,"a",function(){return x});var c=Object(M.a)("article",{target:"ej1wll30"})(),o=Object(M.a)("h1",{target:"ej1wll31"})({name:"1ry8ma5",styles:"box-sizing:border-box;margin:0;height:4rem;border-bottom:1px solid;font-weight:300;font-size:2rem;line-height:4rem;+ div > blockquote{font-style:normal;}"}),T=Object(M.a)("div",{target:"ej1wll32"})({name:"1qnhlud",styles:"blockquote{margin-left:0;border-left:3px solid #859daf;padding-left:.5em;font-style:italic;color:#859daf;}a:not(.anchor){border-bottom:1px solid;text-decoration:none;color:#007aa2;&:hover{color:#62b0ca;}}p,table{margin-bottom:1em;}table{width:100%;border-collapse:collapse;}th{color:#007aa2;}th,td{border:1px solid #007aa2;padding:.5em 1em;}h1{margin-top:0;}h2,h3,h4{border-bottom:1px solid #d1dee8;padding-bottom:0.2em;font-weight:300;}pre{padding:1em;overflow-x:auto;background:#242424;}code{display:inline-block;text-align:left;color:#007aa2;}pre code{color:#ddddcc;}"}),y=function(t){var e=t.title,i=t.children;return Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(c,null,Object(j.jsx)(o,null,e.match(/^`.*`$/)?Object(j.jsx)("code",null,e.slice(1,-1)):e),Object(j.jsx)(T,{dangerouslySetInnerHTML:{__html:i}})))},x=function(t){var e,i,M,n,a,I=t.title,c=t.children,o=(e=function(){return N()().use(g.a).use(r.a,{sanitize:!0}).process(c)},i=[c],M=Object(L.useState)(),n=M[0],a=M[1],Object(L.useEffect)(function(){var t=!1,i=e();return i&&i.then?i.then(function(e){t||a(e)}):a(i),function(){t=!0}},i),n);return o?Object(j.jsx)(u.a.Fragment,null,Object(j.jsx)(y,{title:I},String(o))):null}}}]); +//# sourceMappingURL=component---src-templates-article-js-fe7627bfc46364e5ce39.js.map \ No newline at end of file diff --git a/docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js.map b/docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js.map similarity index 99% rename from docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js.map rename to docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js.map index 177835f9e221..799c1bb4ea4c 100644 --- a/docs/component---src-templates-article-js-6eb8a5462d025bb1824c.js.map +++ b/docs/component---src-templates-article-js-fe7627bfc46364e5ce39.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/templates/article.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/layout-content-nav.js","webpack:///./src/components/markdown.js","webpack:///./src/utils/useCache.js"],"names":["Template","_ref","data","allMarkdownRemark","pageContext","category","markdownRemark","frontmatter","html","Object","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_1___default","a","Fragment","_components_layout_content_nav__WEBPACK_IMPORTED_MODULE_2__","items","edges","map","_ref2","node","to","path","name","title","_components_markdown__WEBPACK_IMPORTED_MODULE_3__","pageQuery","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","_837419984","_useState","useState","expanded","setExpanded","react_default","href","logo","onClick","className","site","siteMetadata","menuLinks","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","match","slice","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","LayoutContentNav","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__","maxWidth","Title","PrerenderedMarkdown","dangerouslySetInnerHTML","__html","Markdown","cb","dependencies","state","setState","document","unified","use","markdown","sanitize","process","useEffect","cancelled","value","then","realValue","markdown_PrerenderedMarkdown","String"],"mappings":"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","file":"component---src-templates-article-js-6eb8a5462d025bb1824c.js","sourcesContent":["import {graphql} from 'gatsby';\nimport React from 'react';\n\nimport {LayoutContentNav} from '../components/layout-content-nav';\nimport {PrerenderedMarkdown} from '../components/markdown';\n\nexport default function Template({data, pageContext: {category}}) {\n const {allMarkdownRemark, markdownRemark} = data;\n const {frontmatter, html} = markdownRemark;\n\n return <>\n ({\n to: node.frontmatter.path,\n name: node.frontmatter.title,\n }))}>\n \n {html}\n \n \n ;\n}\n\nexport const pageQuery = graphql`\n query($path: String!, $category: String!) {\n allMarkdownRemark(\n filter: {frontmatter: {category: {eq: $category}}}\n sort: {order: ASC, fields: [frontmatter___title]}\n ) {\n edges {\n node {\n frontmatter {\n path\n title\n }\n }\n }\n }\n markdownRemark(frontmatter: {category: {eq: $category}, path: {eq: $path}}) {\n html\n frontmatter {\n path\n title\n }\n }\n }\n`;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n padding: 2em;\n\n ${ifDesktop} {\n border-top: 1px solid #cfdee9;\n\n text-align: justify;\n }\n`;\n\nexport const LayoutContentNav = ({items, children}) => {\n return <>\n \n \n \n
\n {children}\n
\n
\n
\n
\n ;\n}\n","import styled from '@emotion/styled';\nimport React from 'react';\nimport markdown from 'remark-parse';\nimport html from 'remark-html';\nimport unified from 'unified';\n\nimport useCache from '../utils/useCache';\n\nconst Container = styled.article`\n`;\n\nconst Title = styled.h1`\n box-sizing: border-box;\n\n margin: 0;\n\n height: 4rem;\n\n border-bottom: 1px solid;\n\n font-weight: 300;\n font-size: 2rem;\n line-height: 4rem;\n\n + div > blockquote {\n font-style: normal;\n }\n`;\n\nconst Content = styled.div`\n blockquote {\n margin-left: 0;\n\n border-left: 3px solid #859daf;\n\n padding-left: .5em;\n\n font-style: italic;\n\n color: #859daf;\n }\n\n a:not(.anchor) {\n border-bottom: 1px solid;\n\n text-decoration: none;\n\n color: #007aa2;\n\n &:hover {\n color: #62b0ca;\n }\n }\n\n p, table {\n margin-bottom: 1em;\n }\n\n table {\n width: 100%;\n\n border-collapse: collapse;\n }\n\n th {\n color: #007aa2;\n }\n\n th, td {\n border: 1px solid #007aa2;\n\n padding: .5em 1em;\n }\n\n h1 {\n margin-top: 0;\n }\n\n h2, h3, h4 {\n border-bottom: 1px solid #d1dee8;\n\n padding-bottom: 0.2em;\n\n font-weight: 300;\n }\n\n pre {\n padding: 1em;\n\n overflow-x: auto;\n\n background: #242424;\n }\n\n code {\n display: inline-block;\n\n text-align: left;\n\n color: #007aa2;\n }\n\n pre code {\n color: #ddddcc;\n }\n`;\n\nexport const PrerenderedMarkdown = ({title, children}) => <>\n \n \n {title.match(/^`.*`$/) ? <code>{title.slice(1, -1)}</code> : title}\n \n \n \n;\n\nexport const Markdown = ({title, children}) => {\n const document = useCache(() => {\n return unified().use(markdown).use(html, {\n sanitize: true,\n }).process(children);\n }, [\n children,\n ]);\n\n return document ? <>\n \n {String(document)}\n \n : null;\n}\n","import {useEffect, useState} from 'react';\n\nexport default function useCache(cb, dependencies) {\n const [state, setState] = useState();\n\n useEffect(() => {\n let cancelled = false;\n const value = cb();\n\n if (value && value.then) {\n value.then(realValue => {\n if (!cancelled) {\n setState(realValue);\n }\n });\n } else {\n setState(value);\n }\n\n return () => {\n cancelled = true;\n };\n }, dependencies)\n\n return state;\n} "],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./src/templates/article.js","webpack:///./src/components/responsive.js","webpack:///./src/images/yarn-kitten-full.svg","webpack:///./src/components/logo.js","webpack:///./src/components/header.js","webpack:///./src/components/layout.js","webpack:///./src/components/navigation.js","webpack:///./src/components/layout-content-nav.js","webpack:///./src/components/markdown.js","webpack:///./src/utils/useCache.js"],"names":["Template","_ref","data","allMarkdownRemark","pageContext","category","markdownRemark","frontmatter","html","Object","_emotion_core__WEBPACK_IMPORTED_MODULE_0__","react__WEBPACK_IMPORTED_MODULE_1___default","a","Fragment","_components_layout_content_nav__WEBPACK_IMPORTED_MODULE_2__","items","edges","map","_ref2","node","to","path","name","title","_components_markdown__WEBPACK_IMPORTED_MODULE_3__","pageQuery","__webpack_require__","d","__webpack_exports__","ifMobile","ifDesktop","module","exports","Logo","align","height","core_browser_cjs","alt","src","yarnKittenFull","style","verticalAlign","propTypes","PropTypes","string","oneOfType","number","defaultProps","HeaderContainer","styled_base_browser_esm","target","NewsContainer","styles","Highlight","MenuContainer","MenuTools","MenuLogo","Link","MenuToggle","MenuNavigation","MenuEntry","Header","_837419984","_useState","useState","expanded","setExpanded","react_default","href","logo","onClick","className","site","siteMetadata","menuLinks","link","key","activeClassName","partiallyActive","siteTitle","Layout","children","Helmet","content","header","isRequired","Container","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_2__","Menu","Content","Navigation","_emotion_core__WEBPACK_IMPORTED_MODULE_3__","react__WEBPACK_IMPORTED_MODULE_5___default","match","slice","_emotion_styled_base__WEBPACK_IMPORTED_MODULE_0__","LayoutContentNav","_emotion_core__WEBPACK_IMPORTED_MODULE_1__","react__WEBPACK_IMPORTED_MODULE_2___default","_layout__WEBPACK_IMPORTED_MODULE_3__","_navigation__WEBPACK_IMPORTED_MODULE_4__","maxWidth","Title","PrerenderedMarkdown","dangerouslySetInnerHTML","__html","Markdown","cb","dependencies","state","setState","document","unified","use","markdown","sanitize","process","useEffect","cancelled","value","then","realValue","markdown_PrerenderedMarkdown","String"],"mappings":"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","file":"component---src-templates-article-js-fe7627bfc46364e5ce39.js","sourcesContent":["import {graphql} from 'gatsby';\nimport React from 'react';\n\nimport {LayoutContentNav} from '../components/layout-content-nav';\nimport {PrerenderedMarkdown} from '../components/markdown';\n\nexport default function Template({data, pageContext: {category}}) {\n const {allMarkdownRemark, markdownRemark} = data;\n const {frontmatter, html} = markdownRemark;\n\n return <>\n ({\n to: node.frontmatter.path,\n name: node.frontmatter.title,\n }))}>\n \n {html}\n \n \n ;\n}\n\nexport const pageQuery = graphql`\n query($path: String!, $category: String!) {\n allMarkdownRemark(\n filter: {frontmatter: {category: {eq: $category}}}\n sort: {order: ASC, fields: [frontmatter___title]}\n ) {\n edges {\n node {\n frontmatter {\n path\n title\n }\n }\n }\n }\n markdownRemark(frontmatter: {category: {eq: $category}, path: {eq: $path}}) {\n html\n frontmatter {\n path\n title\n }\n }\n }\n`;\n","export const ifMobile = () => `@media (max-width: 600px)`;\nexport const ifDesktop = () => `@media (min-width: 601px)`;\n","module.exports = \"data:image/svg+xml;base64,PHN2ZyBpZD0iTGF5ZXJfMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2aWV3Qm94PSIwIDAgMTE1NC44IDUxOCI+PHN0eWxlPi5zdDB7ZmlsbDojMmM4ZWJifS5zdDF7ZmlsbDojZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9InN0MCIgZD0iTTcxOC42IDI1Ny44Yy04IDI3LjYtMjAuOCA0Ny42LTM1LjIgNjMuNlYxODFjMC05LjYtOC40LTE3LjYtMjEuNi0xNy42LTUuNiAwLTEwLjQgMi44LTEwLjQgNi44IDAgMi44IDEuNiA1LjIgMS42IDEyLjh2NjQuNGMtNC44IDI4LTE2LjggNTQtMzIuOCA1NC0xMS42IDAtMTguNC0xMS42LTE4LjQtMzMuMiAwLTMzLjYgNC40LTUxLjIgMTEuNi04MC44IDEuNi02IDEzLjItMjItNi40LTIyLTIxLjIgMC0xOC40IDgtMjEuMiAxNC44IDAgMC0xMy40IDQ3LjYtMTMuNCA5MCAwIDM0LjggMTQuNiA1Ny42IDQxLjQgNTcuNiAxNy4yIDAgMjkuNi0xMS42IDM5LjItMjcuNlYzNTFjLTI2LjQgMjMuMi00OS42IDQzLjYtNDkuNiA4NCAwIDI1LjYgMTYgNDYgMzguNCA0NiAyMC40IDAgNDEuNi0xNC44IDQxLjYtNTYuOFYzNTVjMjEuNi0xOC44IDQ0LjgtNDIuNCA1OC40LTg4LjguNC0xLjYuNC0zLjYuNC00IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTcuMiAzLjYtOS42IDEyem0tNzYuOCAxOThjLTYuNCAwLTEwLjQtOS42LTEwLjQtMjIgMC0yNCA4LjgtMzkuMiAyMS42LTUyLjR2NDIuOGMwIDcuNiAxLjYgMzEuNi0xMS4yIDMxLjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTgzMy40IDMwMWMtOS42IDAtMTMuNi05LjYtMTMuNi0xOC40di02NmMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHY2MS42Qzc4NSAyOTEuNCA3NzcuOCAzMDEgNzY3IDMwMWMtMTQgMC0yMi44LTEyLTIyLjgtMzIuOCAwLTU3LjYgMzUuNi04My42IDY2LTgzLjYgNCAwIDggLjggMTEuNi44IDQgMCA1LjItMi40IDUuMi05LjIgMC0xMC40LTcuNi0xNi44LTE4LjQtMTYuOC00OC44IDAtOTUuMiA0MC44LTk1LjIgMTA3LjYgMCAzNCAxNi40IDYwLjQgNDcuNiA2MC40IDE1LjIgMCAyNi40LTcuMiAzNC40LTE2LjQgNiA5LjYgMTYuOCAxNi40IDMwLjggMTYuNCAzNC40IDAgNTAuNC0zNiA1Ny4yLTYyLjQuNC0xLjYuNC0yLjQuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjggNDMuMi0yNi44IDQzLjJ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk0OSAzMjcuNGMzNC40IDAgNTAtMzYgNTcuMi02Mi40IDAtLjguNC0xLjYuNC0yLjggMC03LjYtNy42LTE2LjQtMTQtMTYuNC00IDAtOCAzLjYtOS42IDEyLTMuNiAxNy42LTEwLjQgNDMuMi0yOC44IDQzLjItMTAuOCAwLTE2LTEwLjQtMTYtMjEuNiAwLTQwIDE4LTg3LjIgMTgtOTIgMS42LTkuMi0xNC40LTIyLjQtMTkuMi0yMi40aC0yMC44Yy00IDAtOCAwLTIxLjItMS42LTQuNC0xNi40LTE1LjYtMjEuMi0yNS4yLTIxLjItMTAuNCAwLTIwIDcuMi0yMCAxOC40IDAgMTEuNiA3LjIgMjAgMTcuMiAyNS42LS40IDIwLjQtMiA1My42LTYuNCA2OS42LTMuNiAxMy42IDE3LjIgMjggMjIuNCAxMS4yIDcuMi0yMy4yIDkuNi01OCAxMC03My42aDM0LjhjLTEyLjggMzQuNC0yMCA2Mi44LTIwIDg4LjQgMCAzNS4yIDIyLjQgNDUuNiA0MS4yIDQ1LjZ6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTk4NC42IDMwOS44YzAgMTQuOCAxMS4yIDE3LjYgMTkuMiAxNy42IDExLjYgMCAxMS4yLTkuNiAxMS4yLTE3LjJ2LTU4LjRjMi44LTMxLjYgMjcuNi02NiAzOS4yLTY2IDcuNiAwIDguNCAxMC40IDguNCAyMi44djgxLjJjMCAyMC40IDEyLjQgMzcuNiAzMy42IDM3LjYgMzQuNCAwIDUxLjQtMzYgNTguMi02Mi40LjQtMS42LjQtMi40LjQtMi44IDAtNy42LTcuNi0xNi40LTE0LTE2LjQtNCAwLTggMy42LTkuNiAxMi0zLjYgMTcuNi0xMS44IDQzLjItMjcuOCA0My4yLTEwLjQgMC0xMC40LTE0LjgtMTAuNC0xOC40di04Mi44YzAtMTguNC02LjQtNDAuNC0zMy4yLTQwLjQtMTkuNiAwLTM0IDE3LjItNDQuOCAzOS42di0xOGMwLTkuNi04LjQtMTcuNi0yMS42LTE3LjYtNS42IDAtMTAuNCAyLjgtMTAuNCA2LjggMCAyLjggMS42IDUuMiAxLjYgMTIuOHYxMjYuOHpNMjU5IDBjMTQzIDAgMjU5IDExNiAyNTkgMjU5UzQwMiA1MTggMjU5IDUxOCAwIDQwMiAwIDI1OSAxMTYgMCAyNTkgMHoiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNNDM1LjIgMzM3LjVjLTEuOC0xNC4yLTEzLjgtMjQtMjkuMi0yMy44LTIzIC4zLTQyLjMgMTIuMi01NS4xIDIwLjEtNSAzLjEtOS4zIDUuNC0xMyA3LjEuOC0xMS42LjEtMjYuOC01LjktNDMuNS03LjMtMjAtMTcuMS0zMi4zLTI0LjEtMzkuNCA4LjEtMTEuOCAxOS4yLTI5IDI0LjQtNTUuNiA0LjUtMjIuNyAzLjEtNTgtNy4yLTc3LjgtMi4xLTQtNS42LTYuOS0xMC04LjEtMS44LS41LTUuMi0xLjUtMTEuOS40QzI5My4xIDk2IDI4OS42IDkzLjggMjg2LjkgOTJjLTUuNi0zLjYtMTIuMi00LjQtMTguNC0yLjEtOC4zIDMtMTUuNCAxMS0yMi4xIDI1LjItMSAyLjEtMS45IDQuMS0yLjcgNi4xLTEyLjcuOS0zMi43IDUuNS00OS42IDIzLjgtMi4xIDIuMy02LjIgNC0xMC41IDUuNmguMWMtOC44IDMuMS0xMi44IDEwLjMtMTcuNyAyMy4zLTYuOCAxOC4yLjIgMzYuMSA3LjEgNDcuNy05LjQgOC40LTIxLjkgMjEuOC0yOC41IDM3LjUtOC4yIDE5LjQtOS4xIDM4LjQtOC44IDQ4LjctNyA3LjQtMTcuOCAyMS4zLTE5IDM2LjktMS42IDIxLjggNi4zIDM2LjYgOS44IDQyIDEgMS42IDIuMSAyLjkgMy4zIDQuMi0uNCAyLjctLjUgNS42LjEgOC42IDEuMyA3IDUuNyAxMi43IDEyLjQgMTYuMyAxMy4yIDcgMzEuNiAxMCA0NS44IDIuOSA1LjEgNS40IDE0LjQgMTAuNiAzMS4zIDEwLjZoMWM0LjMgMCA1OC45LTIuOSA3NC44LTYuOCA3LjEtMS43IDEyLTQuNyAxNS4yLTcuNCAxMC4yLTMuMiAzOC40LTEyLjggNjUtMzAgMTguOC0xMi4yIDI1LjMtMTQuOCAzOS4zLTE4LjIgMTMuNi0zLjMgMjIuMS0xNS43IDIwLjQtMjkuNHptLTIzLjggMTQuN2MtMTYgMy44LTI0LjEgNy4zLTQzLjkgMjAuMi0zMC45IDIwLTY0LjcgMjkuMy02NC43IDI5LjNzLTIuOCA0LjItMTAuOSA2LjFjLTE0IDMuNC02Ni43IDYuMy03MS41IDYuNC0xMi45LjEtMjAuOC0zLjMtMjMtOC42LTYuNy0xNiA5LjYtMjMgOS42LTIzcy0zLjYtMi4yLTUuNy00LjJjLTEuOS0xLjktMy45LTUuNy00LjUtNC4zLTIuNSA2LjEtMy44IDIxLTEwLjUgMjcuNy05LjIgOS4zLTI2LjYgNi4yLTM2LjkuOC0xMS4zLTYgLjgtMjAuMS44LTIwLjFzLTYuMSAzLjYtMTEtMy44Yy00LjQtNi44LTguNS0xOC40LTcuNC0zMi43IDEuMi0xNi4zIDE5LjQtMzIuMSAxOS40LTMyLjFzLTMuMi0yNC4xIDcuMy00OC44YzkuNS0yMi41IDM1LjEtNDAuNiAzNS4xLTQwLjZzLTIxLjUtMjMuOC0xMy41LTQ1LjJjNS4yLTE0IDcuMy0xMy45IDktMTQuNSA2LTIuMyAxMS44LTQuOCAxNi4xLTkuNSAyMS41LTIzLjIgNDguOS0xOC44IDQ4LjktMTguOHMxMy0zOS41IDI1LTMxLjhjMy43IDIuNCAxNyAzMiAxNyAzMnMxNC4yLTguMyAxNS44LTUuMmM4LjYgMTYuNyA5LjYgNDguNiA1LjggNjgtNi40IDMyLTIyLjQgNDkuMi0yOC44IDYwLTEuNSAyLjUgMTcuMiAxMC40IDI5IDQzLjEgMTAuOSAyOS45IDEuMiA1NSAyLjkgNTcuOC4zLjUuNC43LjQuN3MxMi41IDEgMzcuNi0xNC41YzEzLjQtOC4zIDI5LjMtMTcuNiA0Ny40LTE3LjggMTcuNS0uMyAxOC40IDIwLjIgNS4yIDIzLjR6Ii8+PC9zdmc+\"","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport yarnKittenFull from '../images/yarn-kitten-full.svg';\n\n/*\n * This component is built using `gatsby-image` to automatically serve optimized\n * images with lazy loading and reduced file sizes. The image is loaded using a\n * `StaticQuery`, which allows us to load the image from directly within this\n * component, rather than having to pass the image data down from pages.\n *\n * For more information, see the docs:\n * - `gatsby-image`: https://gatsby.dev/gatsby-image\n * - `StaticQuery`: https://gatsby.dev/staticquery\n */\n\nconst Logo = ({align, height}) => (\n {`Yarn`}\n);\n\nLogo.propTypes = {\n align: PropTypes.string,\n height: PropTypes.oneOfType([\n PropTypes.number,\n PropTypes.string,\n ]),\n};\n\nLogo.defaultProps = {\n height: 100,\n};\n\nexport default Logo;\n","import styled from '@emotion/styled';\nimport {Link, graphql, useStaticQuery} from 'gatsby';\nimport PropTypes from 'prop-types';\nimport React, {useState} from 'react';\n\nimport Logo from './logo';\nimport {ifDesktop, ifMobile} from './responsive';\n\nconst HeaderContainer = styled.div`\n ${ifDesktop} {\n position: sticky;\n top: 0;\n z-index: 1;\n }\n`;\n\nconst NewsContainer = styled.a`\n display: block;\n\n padding: 0.8em 1em;\n\n font-weight: light;\n text-decoration: none;\n\n background: #2188b6;\n color: rgba(255, 255, 255, 0.8);\n`;\n\nconst Highlight = styled.span`\n font-weight: bold;\n\n color: #ffffff;\n`;\n\nconst MenuContainer = styled.header`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n`;\n\nconst MenuTools = styled.div`\n display: flex;\n`;\n\nconst MenuLogo = styled(Link)`\n display: flex;\n align-items: center;\n\n padding: 0 1em;\n\n ${ifMobile} {\n margin-right: auto;\n\n padding: 1em;\n }\n`;\n\nconst MenuToggle = styled.button`\n margin: 1em;\n margin-left: 0;\n\n border: 1px solid lightgrey;\n border-radius: 10px;\n\n width: 3em;\n height: 3em;\n\n font-size: inherit;\n\n background: #ffffff;\n\n ${ifDesktop} {\n display: none;\n }\n`;\n\nconst MenuNavigation = styled.div`\n background: #ffffff;\n\n ${ifDesktop} {\n display: flex;\n }\n\n ${ifMobile} {\n position: absolute;\n z-index: 1;\n\n width: 100%;\n\n transform: scaleY(0);\n transform-origin: top left;\n transition: transform .3s;\n\n &.expanded {\n transform: scaleY(1);\n }\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n align-items: center;\n\n height: 4em;\n\n border: 3px solid transparent;\n\n padding: 0 1em;\n\n font-family: Abel;\n font-weight: light;\n text-decoration: none;\n text-transform: uppercase;\n\n color: #000000;\n\n ${ifDesktop} {\n &.active {\n border-bottom-color: #2188b6;\n }\n }\n\n ${ifMobile} {\n width: 100%;\n }\n`;\n\nconst Header = () => {\n const data = useStaticQuery(graphql`\n query SiteQuery {\n site {\n siteMetadata {\n menuLinks {\n name\n link\n }\n }\n }\n }\n `);\n\n const [\n expanded,\n setExpanded,\n ] = useState(false);\n\n return <>\n \n \n Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!\n \n\n \n \n \n \n \n setExpanded(!expanded)}>\n {`≡`}\n \n \n\n \n {data.site.siteMetadata.menuLinks.map(({name, link}) => \n \n {name}\n \n )}\n \n \n \n \n};\n\nHeader.propTypes = {\n siteTitle: PropTypes.string,\n};\n\nHeader.defaultProps = {\n siteTitle: ``,\n};\n\nexport default Header;\n","/**\n * Layout component that queries for data\n * with Gatsby's StaticQuery component\n *\n * See: https://www.gatsbyjs.org/docs/static-query/\n */\n\nimport './layout.css';\n\nimport PropTypes from 'prop-types';\nimport {Helmet} from 'react-helmet';\nimport React from 'react';\n\nimport Header from './header';\n\nconst Layout = ({ children }) => <>\n \n \n \n
\n
\n {children}\n
\n;\n\nLayout.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default Layout;\n","import styled from '@emotion/styled';\nimport {Link} from 'gatsby';\nimport React from 'react';\n\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n position: relative;\n\n ${ifDesktop} {\n padding-left: 300px;\n }\n`;\n\nconst Menu = styled.div`\n ${ifDesktop} {\n position: fixed;\n left: 0;\n\n width: 300px;\n height: calc(100vh - 4em);\n overflow-y: auto;\n\n background: #d1dee8;\n }\n`;\n\nconst MenuEntry = styled(Link)`\n display: flex;\n position: relative;\n align-items: center;\n\n border-bottom: 1px solid #cfdee9;\n\n &:first-of-type {\n border-top: 1px solid #cfdee9;\n }\n\n padding: 1.5em;\n\n text-decoration: none;\n\n background: #ffffff;\n color: #333333;\n\n &::before {\n content: \"\";\n\n position: absolute;\n z-index: 1;\n top: -1px;\n bottom: -1px;\n right: 0;\n\n width: 5px;\n\n background: #cfdee9;\n }\n\n &.active::before {\n background: #2188b6;\n }\n`;\n\nconst Content = styled.div`\n & > * {\n overflow: auto;\n }\n`;\n\nconst Navigation = ({items, children}) => <>\n \n \n {items.map(({to, name}) => \n \n {name.match(/^`.*`$/) ? {name.slice(1, -1)} : name}\n \n )}\n \n \n {children}\n \n \n;\n\nexport default Navigation;\n","import styled from '@emotion/styled';\nimport React from 'react';\n\nimport Layout from './layout';\nimport Navigation from './navigation';\nimport {ifDesktop} from './responsive';\n\nconst Container = styled.div`\n padding: 2em;\n\n ${ifDesktop} {\n border-top: 1px solid #cfdee9;\n\n text-align: justify;\n }\n`;\n\nexport const LayoutContentNav = ({items, children}) => {\n return <>\n \n \n \n
\n {children}\n
\n
\n
\n
\n ;\n}\n","import styled from '@emotion/styled';\nimport React from 'react';\nimport markdown from 'remark-parse';\nimport html from 'remark-html';\nimport unified from 'unified';\n\nimport useCache from '../utils/useCache';\n\nconst Container = styled.article`\n`;\n\nconst Title = styled.h1`\n box-sizing: border-box;\n\n margin: 0;\n\n height: 4rem;\n\n border-bottom: 1px solid;\n\n font-weight: 300;\n font-size: 2rem;\n line-height: 4rem;\n\n + div > blockquote {\n font-style: normal;\n }\n`;\n\nconst Content = styled.div`\n blockquote {\n margin-left: 0;\n\n border-left: 3px solid #859daf;\n\n padding-left: .5em;\n\n font-style: italic;\n\n color: #859daf;\n }\n\n a:not(.anchor) {\n border-bottom: 1px solid;\n\n text-decoration: none;\n\n color: #007aa2;\n\n &:hover {\n color: #62b0ca;\n }\n }\n\n p, table {\n margin-bottom: 1em;\n }\n\n table {\n width: 100%;\n\n border-collapse: collapse;\n }\n\n th {\n color: #007aa2;\n }\n\n th, td {\n border: 1px solid #007aa2;\n\n padding: .5em 1em;\n }\n\n h1 {\n margin-top: 0;\n }\n\n h2, h3, h4 {\n border-bottom: 1px solid #d1dee8;\n\n padding-bottom: 0.2em;\n\n font-weight: 300;\n }\n\n pre {\n padding: 1em;\n\n overflow-x: auto;\n\n background: #242424;\n }\n\n code {\n display: inline-block;\n\n text-align: left;\n\n color: #007aa2;\n }\n\n pre code {\n color: #ddddcc;\n }\n`;\n\nexport const PrerenderedMarkdown = ({title, children}) => <>\n \n \n {title.match(/^`.*`$/) ? <code>{title.slice(1, -1)}</code> : title}\n \n \n \n;\n\nexport const Markdown = ({title, children}) => {\n const document = useCache(() => {\n return unified().use(markdown).use(html, {\n sanitize: true,\n }).process(children);\n }, [\n children,\n ]);\n\n return document ? <>\n \n {String(document)}\n \n : null;\n}\n","import {useEffect, useState} from 'react';\n\nexport default function useCache(cb, dependencies) {\n const [state, setState] = useState();\n\n useEffect(() => {\n let cancelled = false;\n const value = cb();\n\n if (value && value.then) {\n value.then(realValue => {\n if (!cancelled) {\n setState(realValue);\n }\n });\n } else {\n setState(value);\n }\n\n return () => {\n cancelled = true;\n };\n }, dependencies)\n\n return state;\n} "],"sourceRoot":""} \ No newline at end of file diff --git a/docs/configuration/manifest/index.html b/docs/configuration/manifest/index.html index 669a139aa530..1615bdb08eb0 100644 --- a/docs/configuration/manifest/index.html +++ b/docs/configuration/manifest/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ManifestsYarnrc files
The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here @scope/) is optional and is used as a namespace).
"name": "@scope/name",
The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.
"version": "1.2.3",
If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.
"private": true,
An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the initLicense settings.
"license": "MIT",
The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the publishConfig.main field.
"main": "./sources/index.js",
The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.
"module": "./sources/index.mjs",
An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.
A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the $PATH. Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).
"my-bin": "./dist/my-bin.js",
},
A field used to list small shell scripts that will be executed when running yarn run. Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing : (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).
"test": "jest",
"build": "webpack-cli --config ./webpack.config.js",
"count-words": "echo \"$@\" | wc -w",
},
The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.
"webpack": "^5.0.0",
},
Similar to the dependencies field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in "production" or "development" mode, Yarn doesn't offer a way to prevent the installation of dev dependencies at the moment.
Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.
Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The workspaces field is a list of glob pattern that match all directories that should become workspaces of your application.
"packages/*",
],
This field lists some extra information related to the dependencies listed in the dependencies and devDependencies field. In the context of a workspaced project most of these settings will affect all workspaces and as such must be specified at the root of the project (except if noted otherwise, the dependenciesMeta field will be ignored if found within a workspace).
If false, the package will never be built. When the global settings enableScripts is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.
"built": false,
If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example nan contains C++ headers).
},
},
This field lists some extra information related to the dependencies listed in the peerDependencies field.
If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.
"optional": true,
},
},
This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.
If present, the top-level main field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.
"main": "./build/index.js",
Same principle as the publishConfig.main property; this value will be used instead of the top-level module field when generating the workspace tarball.
"module": "./build/index.mjs",
},
\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ManifestsYarnrc files
Manifest files (also called package.json because of their name) contain everything needed to describe the settings unique to one particular package. Project will contain multiple such manifests if they use the workspace feature, as each workspace is described through its own manifest.
The name of the package. Used to identify it accross the application, especially amongst multiple workspaces. The first part of the name (here @scope/) is optional and is used as a namespace).
"name": "@scope/name",
The version of the package. Usually doesn't have any impact on your project, except when it is a workspace - then its version must match the specified ranges for the workspace to be selected as resolution candidate.
"version": "1.2.3",
If true, the package is considered private and Yarn will refuse to publish it regardless of the circumstances. Setting this flag also unlocks some features that wouldn't make sense in published packages, such as workspaces.
"private": true,
An SPDX identifier that indicates under which license is your package distributed. Note that the default license can be set via the initLicense settings.
"license": "MIT",
The path that will be used to resolve the qualified path to use when accessing the package by its name. This field can be modified at publish-time through the use of the publishConfig.main field.
"main": "./sources/index.js",
The path that will be used when an ES6-compatible environment will try to access the package by its name. Doesn't have any direct effect on Yarn itself.
"module": "./sources/index.mjs",
An enumeration used by the linker plugins to figure which linker should install a specific package. Only some values are allowed, consult the documentation to know more.
A field used to expose some executable Javascript files to the parent package. Any entry listed here will be made available through the $PATH. Note that it is very advised to only expose Javascript files for portability reasons (shellscripts and non-js binaries require the user to have a specific shell, and are incompatible with zip access).
"my-bin": "./dist/my-bin.js",
}
A field used to list small shell scripts that will be executed when running yarn run. Scripts are by default executed by a miniature shell, so some advanced features might not be available (if you have more complex needs, we recommend you to just execute a Javascript file). Note that scripts containing : (the colon character) are globals to your project and can be called regardless of your current workspace. Finally, be aware that scripts are always executed relative to the closest workspace (never the cwd).
"test": "jest",
"build": "webpack-cli --config ./webpack.config.js",
"count-words": "echo \"$@\" | wc -w",
}
The set of dependencies that must be made available to the current package in order for it to work properly. Consult the list of supported ranges for more information.
"webpack": "^5.0.0",
}
Similar to the dependencies field, except that these dependencies are only installed on local installs and will never be installed by the consumers of your package. Note that because that would lead to different install trees depending on whether the install is made in "production" or "development" mode, Yarn doesn't offer a way to prevent the installation of dev dependencies at the moment.
"webpack": "^5.0.0",
}
Peer dependencies are inherited dependencies - the consumer of your package will be tasked to provide them. This is typically what you want when writting plugins, for example. Be careful: listing peer dependencies will have side effects on the way your package will be executed by your consumers. Check the documentation for more information.
"react": "*",
"react-dom": "*",
}
Workspaces are an optional feature used by monorepos to split a large project into semi-independent subprojects, each one listing their own set of dependencies. The workspaces field is a list of glob pattern that match all directories that should become workspaces of your application.
"packages/*",
]
This field lists some extra information related to the dependencies listed in the dependencies and devDependencies field. In the context of a workspaced project most of these settings will affect all workspaces and as such must be specified at the root of the project (except if noted otherwise, the dependenciesMeta field will be ignored if found within a workspace).
"fsevents": {
If false, the package will never be built. When the global settings enableScripts is toggled off, setting this additional flag will also downgrade the warning into a simple notice for this specific package.
"built": false,
If true, the specified package will be automatically unplugged at install time. This should only be needed for packages that contain scripts in other languages than Javascript (for example nan contains C++ headers).
}
}
This field lists some extra information related to the dependencies listed in the peerDependencies field.
"react-dom": {
If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error.
}
}
This field allows you to instruct Yarn to use a specific resolution instead of anything the resolver would normally pick. This is useful to enforce all your packages to use a single version of a dependency, or backport a fix. The syntax for the resolution key accepts one level of specificity, so all the following examples are correct.
"relay-compiler": "3.0.0",
"webpack/memory-fs": "0.4.1",
"@babel/core/json5": "2.1.0",
"@babel/core/@babel/generator": "7.3.4",
"@babel/core@npm:7.0.0/@babel/generator": "7.3.4",
"@babel/core/@npm:babel/generator@npm:^7.0.0": "7.3.4",
}
This field contains various settings that are only taken into consideration when a package is generated from your local sources (either through yarn pack or one of the publish commands like yarn npm publish).
If present, the top-level main field from the manifest will be set to this new value before the package is packed to be shipped to remote registries. This won't modified the actual file, just the one in the tarball.
"main": "./build/index.js",
Same principle as the publishConfig.main property; this value will be used instead of the top-level module field when generating the workspace tarball.
"module": "./build/index.mjs",
}
\ No newline at end of file diff --git a/docs/configuration/yarnrc/index.html b/docs/configuration/yarnrc/index.html index e814f83f15b2..573b49a1a5d4 100644 --- a/docs/configuration/yarnrc/index.html +++ b/docs/configuration/yarnrc/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ManifestsYarnrc files
This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.
bstatePath: "./.yarn/build-state.yml"
The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.
cacheFolder: "./.yarn/cache"
If throw (the default), Yarn will throw an exception on yarn install if it detects that a package doesn't match the checksum stored within the lockfile. If update, the lockfile checksum will be updated to match the new value. If ignore, the checksum check will not happen.
Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.
If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.
enableColors: true
If true, Yarn will disregard the cacheFolder settings and will store the cache files into a folder shared by all local projects sharing the same configuration.
If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.
If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.
The path where all system-global files (for example the list of all packages registered through yarn link) are stored.
globalFolder: "./.yarn/global"
Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).
httpProxy: "http://proxy:4040"
Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).
httpsProxy: "http://proxy:4040"
Defines the name of the lockfiles that will be generated by Yarn.
lockfileFilename: "yarn.lock"
Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.
npmRegistryServer: "https://registry.yarnpkg.com"
Defines the default access to use when publishing packages to the npm registry. Valid values are public and restricted, but restricted usually requires to register for a paid plan (this is up to the registry you use).
The location where Yarn will read and write the .pnp.meta.json file.
pnpDataPath: "./.pnp.meta.json"
If true (the default), Yarn will generate a single .pnp.js file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a .pnp.data.json file meant to be consumed by the @berry/pnp package.
Files matching the following location (in term of relative path compared to the generated .pnp.js file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.
pnpIgnorePattern: "^\\./subdir/.*"
The location where Yarn will read and write the .pnp.js file.
pnpPath: "./.pnp.js"
A header that will be prepended to the generated .pnp.js file. You're allowed to write multiple lines, but this is slightly frowned upon.
pnpShebang: "#!/usr/bin/env node"
The path where unplugged packages will be stored on the disk.
pnpUnpluggedFolder: "./yarn/unplugged"
If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the yarn add command will suggest to reuse the same dependencies as other workspaces if pertinent).
This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the YARN_RC_FILENAME variable.
rcFilename: ".yarnrc"
Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.
virtualFolder: "./.yarn/virtual"
The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with .js it will be required, and will be spawned in any other case.
yarnPath: "./scripts/yarn-2.0.0-rc001.js"
\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ManifestsYarnrc files
Yarnrc files (named this way because they must be called .yarnrc) are the one place where you'll be able to configure Yarn's internal settings. While Yarn will automatically find them in the parent directories, they should usually be kept at the root of your project (often your repository). Starting from the v2, they must be written in valid Yaml.
This setting defines the location where the bstate file will be stored. The bstate file contains the current build state of each package that has build requirements in your dependencies. Removing the bstate file is safe, but will cause all your packages to be rebuilt.
bstatePath: "./.yarn/build-state.yml"
The path where the downloaded packages are stored on your system. They'll be normalized, compressed, and saved under the form of zip archives with standardized names. The cache is deemed to be relatively safe to be shared by multiple projects, even when multiple Yarn instances run at the same time on different projects.
cacheFolder: "./.yarn/cache"
If throw (the default), Yarn will throw an exception on yarn install if it detects that a package doesn't match the checksum stored within the lockfile. If update, the lockfile checksum will be updated to match the new value. If ignore, the checksum check will not happen.
Yarn is a modular package manager that can resolve packages from various sources. As such, semver ranges and tag names don't only work with the npm registry - just change the default protocol to something else and your semver ranges will be fetched from whatever source you select.
If true, Yarn will format its pretty-print its output by using colors to differentiate important parts of its messages.
If true, Yarn will disregard the cacheFolder settings and will store the cache files into a folder shared by all local projects sharing the same configuration.
If disabled, Yarn will never make any request to the network by itself, and will throw an exception rather than let it happen. It's a very useful setting for CI, which typically want to make sure they aren't loading their dependencies from the network by mistake.
If true, Yarn will print the time spent running each substep when running various commands. Disabling this feature is typically needed for testing purposes, when you want each execution to have exactly the same output as the previous ones.
The path where all system-global files (for example the list of all packages registered through yarn link) are stored.
globalFolder: "./.yarn/global"
Defines a proxy to use when making an HTTP request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).
httpProxy: "http://proxy:4040"
Defines a proxy to use when making an HTTPS request. Note that Yarn only supports HTTP proxies at the moment (help welcome!).
httpsProxy: "http://proxy:4040"
Defines the name of the lockfiles that will be generated by Yarn.
lockfileFilename: "yarn.lock"
Defines the hostname of the remote server from where Yarn should fetch the metadata and archives when querying the npm registry.
npmRegistryServer: "https://registry.yarnpkg.com"
If true, Yarn will always send the authentication credentials when making a request to the registries. This typically shouldn't be needed.
Defines the authentication credentials to use for the default registry (equivalent to _auth in the v1). This settings is discouraged in favor of npmAuthToken.
npmAuthIdent: "username:password"
Defines the authentication credentials to use for the default registry (equivalent to _authToken in the v1).
npmAuthToken: "ffffffff-ffff-ffff-ffff-ffffffffffff"
Defines the default access to use when publishing packages to the npm registry. Valid values are public and restricted, but restricted usually requires to register for a paid plan (this is up to the registry you use).
On top of the global configuration, registries can be configured on a per-scope basis (for example to instruct Yarn to use your private registry when accessing packages from a given scope). The following properties are supported:
This key represent the scope that's covered by the settings defined in the nested object. Note that it mustn't start with the @ character.
npmAuthIdent: "username:password"
npmAuthToken: "ffffffff-ffff-ffff-ffff-ffffffffffff"
The location where Yarn will read and write the .pnp.meta.json file.
pnpDataPath: "./.pnp.meta.json"
If true (the default), Yarn will generate a single .pnp.js file that contains all the required data for your project to work properly. If toggled off, Yarn will also generate a .pnp.data.json file meant to be consumed by the @berry/pnp package.
Enumeration whose values (none, dependencies-only, all) defines in which capacity should the PnP hook allow packages to rely on the builtin fallback mechanism. In dependencies-only mode (the default), your workspaces aren't allowed to use it.
pnpFallbackMode: "dependencies-only"
Files matching the following location (in term of relative path compared to the generated .pnp.js file) will not be covered by PnP and will use the regular Node resolution. Typically only needed if you have subprojects that aren't yet part of your workspace tree.
pnpIgnorePattern: "^\\./subdir/.*"
The location where Yarn will read and write the .pnp.js file.
pnpPath: "./.pnp.js"
A header that will be prepended to the generated .pnp.js file. You're allowed to write multiple lines, but this is slightly frowned upon.
pnpShebang: "#!/usr/bin/env node"
The path where unplugged packages will be stored on the disk.
pnpUnpluggedFolder: "./yarn/unplugged"
If true, Yarn will ask for your guidance when some actions would be improved by being disambiguated. Enabling this setting also unlocks some features (for example the yarn add command will suggest to reuse the same dependencies as other workspaces if pertinent).
This setting defines the name of the files that Yarn looks for when resolving the rc files. For obvious reasons this settings cannot be set within rc files, and must be defined in the environment using the YARN_RC_FILENAME variable.
rcFilename: ".yarnrc"
Due to a particularity in how Yarn install packages, some symlinks have to be created when working with packages containing peer dependencies (check this article to learn more about the subject). This setting defines where should those symlinks go. It is perfectly safe to share it between multiple projects.
virtualFolder: "./.yarn/virtual"
The path of a Yarn binary, which will be executed instead of any other (including the global one) for any command run within the directory covered by the rc file. If the file extension ends with .js it will be required, and will be spawned in any other case.
yarnPath: "./scripts/yarn-2.0.0-rc001.js"
\ No newline at end of file diff --git a/docs/features/constraints/index.html b/docs/features/constraints/index.html index cee067946adb..8c8f4d33e593 100644 --- a/docs/features/constraints/index.html +++ b/docs/features/constraints/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Constraints

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Constraints

Experimental

This feature is still incubating, and its exact API might change from a release to the next. It means it's the perfect time for you to get involved and let us hear your feedback!

-

Constraints are a solution to a very basic need: I have a lot of workspaces, and I need to make sure they use the same version of their dependencies. Or that they don't depend on a specific package. Or that they use a specific type of dependency. Anyway, you see the point: whatever is the exact logic, my goal is the same; I want to automatically enforce some kind of rule accross all my workspaces. That's exactly what constraints allow you to do.

+

Constraints are a solution to a very basic need: I have a lot of workspaces, and I need to make sure they use the same version of their dependencies. Or that they don't depend on a specific package. Or that they use a specific type of dependency. Anyway, you see the point: whatever is the exact logic, my goal is the same; I want to automatically enforce some kind of rule across all my workspaces. That's exactly what constraints allow you to do.

Creating a constraint

-

Constraints are created by adding a constraints.pro file at the root of your project (repository). The .pro extension might leave you perplex: this is because constraints aren't written in JavaScript (!) but rather in Prolog, a fact-based rule engine. The goal of this section isn't to teach you Prolog (good tutorials already exist, such as Learn Prolog in Y Minutes), +

Constraints are created by adding a constraints.pro file at the root of your project (repository). The .pro extension might leave you perplex: this is because constraints aren't written in JavaScript (!) but rather in Prolog, a fact-based rule engine. The goal of this section isn't to teach you Prolog (good tutorials already exist, such as Learn Prolog in Y Minutes), but rather to show you why we chose it and the value it brings.

-

As we mentioned, Prolog is a fact-based engine. It starts with a list of facts that are always true, and a list of predicates that basically read as "predicate f(X) is true if u(X) and v(X) are both true". By computing for which values of X are u(X) and v(X) true, Prolog is able to automatically compute the list of values for which f(X) would be true. This is particularly useful for contraints, because it allows you to write very simple but powerful rules that have the ability to affect all your workspaces in very few lines.

-

Going back to the constraint engine, the facts are the definitions created by the package manager (such as "fact: the root workspace depends on Lodash version 4.4.2 in devDependencies"), and the predicates are the set of rules that you want to enforce accross your project (check below for some recipes).

+

As we mentioned, Prolog is a fact-based engine. It starts with a list of facts that are always true, and a list of predicates that basically read as "predicate f(X) is true if u(X) and v(X) are both true". By computing for which values of X are u(X) and v(X) true, Prolog is able to automatically compute the list of values for which f(X) would be true. This is particularly useful for constraints, because it allows you to write very simple but powerful rules that have the ability to affect all your workspaces in very few lines.

+

Going back to the constraint engine, the facts are the definitions created by the package manager (such as "fact: the root workspace depends on Lodash version 4.4.2 in devDependencies"), and the predicates are the set of rules that you want to enforce across your project (check below for some recipes).

Query predicate

-

The following predicates provide information about the current state of your project and are meant to be used in the dependencies of your own rules (check the recipes for examples how to use them in practice). Note that the /<number> syntax listed at the end simply is the predicate arity (number of arguments it takes).

-

`dependency_type/1

-
dependency_type(
-  DependencyType
-).
-
-

True for only three values: dependencies, devDependencies and peerDependencies.

-

workspace/1

-
workspace(
-  WorkspaceCwd
-).
-
-

True if the workspace described by the specified WorkspaceCwd exists.

-

workspace_ident/2

-
workspace_ident(
-  WorkspaceCwd,
-  WorkspaceIdent
-).
-
-

True if the workspace described by the specified WorkspaceCwd exists and if it has the specified WorkspaceIdent.

-

workspace_version/2

-
workspace_version(
-  WorkspaceCwd,
-  WorkspaceVersion
-).
-
-

True if the workspace described by the specified WorkspacedCwd exists and if it has the specified WorkspaceVersion.

-

workspace_has_dependency/4

-
workspace_has_dependency(
-  WorkspaceCwd,
-  DependencyIdent,
-  DependencyRange,
-  DependencyType
-).
-
-

True if the workspace described by the specified WorkspaceCwd depends on the dependency described by the specified DependencyIdent and DependencyRange combination in the dependencies block of the given DependencyType.

+

The following predicates provide information about the current state of your project and are meant to be used in the dependencies of your own rules (check the recipes for examples how to use them in practice). Note that the /<number> syntax listed at the end simply is the predicate arity (number of arguments it takes).

+

The notation on this page uses -, + and ? as prefix for the predicate parameters. These values are used commonly in prolog documentation and mean

+
    +
  • +: this value is considered input and must be instantiated
  • +
  • -: this value is considered output and will be instantiated by the predicate, though you can provide a value to verify that the value matches the predicate
  • +
  • ?: this value can be instantiated or not, both will work
  • +
+

dependency_type/1

+
dependency_type(
+  -DependencyType
+).
+

True for only three values: dependencies, devDependencies and peerDependencies.

+

workspace/1

+
workspace(
+  -WorkspaceCwd
+).
+

True if the workspace described by the specified WorkspaceCwd exists.

+

workspace_ident/2

+
workspace_ident(
+  ?WorkspaceCwd,
+  ?WorkspaceIdent
+).
+

True if the workspace described by the specified WorkspaceCwd exists and if it has the specified WorkspaceIdent.

+

workspace_version/2

+
workspace_version(
+  ?WorkspaceCwd,
+  ?WorkspaceVersion
+).
+

True if the workspace described by the specified WorkspacedCwd exists and if it has the specified WorkspaceVersion.

+

workspace_has_dependency/4

+
workspace_has_dependency(
+  ?WorkspaceCwd,
+  ?DependencyIdent,
+  ?DependencyRange,
+  ?DependencyType
+).
+

True if the workspace described by the specified WorkspaceCwd depends on the dependency described by the specified DependencyIdent and DependencyRange combination in the dependencies block of the given DependencyType.

+

workspace_field/3

+
workspace_field(
+  +WorkspaceCwd,
+  +FieldPath,
+  -FieldValue
+).
+

True if the workspace described by the WorkspaceCwd has the given FieldValue in the manifest at FieldPath.

+

The FieldPath can target properties of properties via . notation, e.g. a FieldPath of 'publishConfig.registry' will set FieldValue to the value of the registry inside publishConfig.

Constraint predicates

-

The following predicates will affect the behavior of the yarn constraints check and yarn constraints fix commands.

-

gen_enforced_dependency_range/4

-
gen_enforced_dependency_range(
-  WorkspaceCwd,
-  DependencyIdent,
-  DependencyRange,
-  DependencyType
-).
-
-

The gen_enforced_dependency_range rule offers a neat way to inform the package manager that a specific workspace MUST either depend on a specific range of a specific dependency (if DependencyRange is non-null) or not depend at all on the dependency (if DependencyRange is null) in the DependencyType dependencies block.

+

The following predicates will affect the behavior of the yarn constraints check and yarn constraints fix commands.

+

The parameters to the predicates are prefixed with + and -. These have the same meaning as in the query predicates. In this context they mean

+
    +
  • - These are the output, they will not have a value when the predicate is invoked and the predicate must ensure a value is set
  • +
  • + These are the input, they will already have a value when the predicate is invoked
  • +
+

gen_enforced_dependency/4

+
gen_enforced_dependency(
+  +WorkspaceCwd,
+  -DependencyIdent,
+  -DependencyRange,
+  +DependencyType
+).
+

The gen_enforced_dependency rule offers a neat way to inform the package manager that a specific workspace MUST either depend on a specific range of a specific dependency (if DependencyRange is non-null) or not depend at all on the dependency (if DependencyRange is null) in the DependencyType dependencies block.

  • This predicate allows the package manager to autofix the problems.
-

gen_invalid_dependency/4

-
gen_invalid_dependency(
-  WorkspaceCwd,
-  DependencyIdent,
-  DependencyType,
-  Reason
-).
-
-

The gen_invalid_dependency predicate is used to inform the package manager that a specific workspace cannot depend on its current version of the package defined by DependencyIdent in the DependencyType dependencies, the Reason parameter being offered as a way to express why the dependency is invalid.

-

Contrary to gen_enforced_dependency_range, gen_invalid_dependency doesn't allow the package manager to autofix the problem. This makes gen_invalid_dependency suitable in case where the right fix would be ambiguous, and where the intervention of a human operator would be required (for example when two workspaces depend on two different versions of a same package).

+

gen_invalid_dependency/4

+
gen_invalid_dependency(
+  +WorkspaceCwd,
+  -DependencyIdent,
+  +DependencyType,
+  -Reason
+).
+

The gen_invalid_dependency predicate is used to inform the package manager that a specific workspace cannot depend on its current version of the package defined by DependencyIdent in the DependencyType dependencies, the Reason parameter being offered as a way to express why the dependency is invalid.

+

Contrary to gen_enforced_dependency, gen_invalid_dependency doesn't allow the package manager to autofix the problem. This makes gen_invalid_dependency suitable in case where the right fix would be ambiguous, and where the intervention of a human operator would be required (for example when two workspaces depend on two different versions of a same package).

  • The errors reported by this predicate cannot be auto-fixed
  • The reason parameter can be any string of your liking
+

gen_enforced_field/3

+
gen_enforced_field(
+  +WorkspaceCwd,
+  -FieldPath,
+  -FieldValue
+).
+

The gen_enforced_field predicate tells the package manager that a specific workspace must have the given FieldValue in the manifest via the FieldPath. A FieldValue of null means the field has to be absent.

Constraint recipes

The following constraints are a good starting point to figure out how to write your own rules. If you build one that you think would be a good fit for this section, open a PR and we'll add them here!

Quick note about the Prolog syntax

-

Be aware that in prolog X :- Y basically means "X is true for each Y that's true". Similarly, know that UpperCamelCase names are variables that get "replaced" by every compatible value possible. Finally, the special variable name _ simply discards the parameter value.

+

Be aware that in prolog X :- Y basically means "X is true for each Y that's true". Similarly, know that UpperCamelCase names are variables that get "replaced" by every compatible value possible. Finally, the special variable name _ simply discards the parameter value.

Prevent all workspaces from depending on a specific package

-
gen_enforced_dependency_range(WorkspaceCwd, 'tslib', null, DependencyType) :-
-  workspace_has_dependency(WorkspaceCwd, 'tslib', _, DependencyType).
-
-

We define a rule that says that for each dependency of each workspace in our project, if this dependency name is tslib, then it exists a similar rule of the gen_enforced_dependency_range type that forbids the workspace from depending on tslib. This will cause the package manager to see that the rule isn't met, and autofix it when requested by removing the dependency from the workspace.

+
gen_enforced_dependency(WorkspaceCwd, 'tslib', null, DependencyType) :-
+  workspace_has_dependency(WorkspaceCwd, 'tslib', _, DependencyType).
+

We define a rule that says that for each dependency of each workspace in our project, if this dependency name is tslib, then it exists a similar rule of the gen_enforced_dependency type that forbids the workspace from depending on tslib. This will cause the package manager to see that the rule isn't met, and autofix it when requested by removing the dependency from the workspace.

Prevent two workspaces from depending on conflicting versions of a same dependency

-
gen_invalid_dependency(WorkspaceCwd, DependencyIdent, DependencyType, 'This dependency conflicts with another one from another workspace') :-
-  workspace_has_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType),
-  workspace_has_dependency(_, DependencyIdent, DependencyRange2, _),
-  DependencyRange \= DependencyRange2.
-
-

We define a gen_invalid_dependency rule that is true for each dependency of each package (first workspace_has_dependency) if it also exists another dependency of another package (second workspace_has_dependency) that has the same name but a different range (\= operator).

+
gen_invalid_dependency(WorkspaceCwd, DependencyIdent, DependencyType, 'This dependency conflicts with another one from another workspace') :-
+  workspace_has_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType),
+  workspace_has_dependency(_, DependencyIdent, DependencyRange2, _),
+  DependencyRange \= DependencyRange2.
+

We define a gen_invalid_dependency rule that is true for each dependency of each package (first workspace_has_dependency) if it also exists another dependency of another package (second workspace_has_dependency) that has the same name but a different range (\= operator).

Force all workspace dependencies to be made explicit

-
gen_enforced_dependency_range(WorkspaceCwd, DependencyIdent, 'workspace:*', DependencyType) :-
-  workspace_ident(_, DependencyIdent),
-  workspace_has_dependency(WorkspaceCwd, DependencyIdent, _, DependencyType).
-
-

We define a gen_enforced_dependency_range that requires the dependency range workspace:* to be used if the dependency name is also the name of a valid workspace. The final workspace_has_dependency check is there to ensure that this rule is only applied on workspace that currently depend on the specified workspace in the first place (if it wasn't there, the rule would instead force all workspaces to depend on one another).

\ No newline at end of file +
gen_enforced_dependency(WorkspaceCwd, DependencyIdent, 'workspace:*', DependencyType) :-
+  workspace_ident(_, DependencyIdent),
+  workspace_has_dependency(WorkspaceCwd, DependencyIdent, _, DependencyType).
+

We define a gen_enforced_dependency that requires the dependency range workspace:* to be used if the dependency name is also the name of a valid workspace. The final workspace_has_dependency check is there to ensure that this rule is only applied on workspace that currently depend on the specified workspace in the first place (if it wasn't there, the rule would instead force all workspaces to depend on one another).

\ No newline at end of file diff --git a/docs/features/offline-cache/index.html b/docs/features/offline-cache/index.html index ff0fd6476b42..203284c6f34d 100644 --- a/docs/features/offline-cache/index.html +++ b/docs/features/offline-cache/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Offline Cache

The offline cache is a feature that allows Yarn to work just fine even should the network go down for any reason - whether it's because your employer didn't pay the utility bill or because the place where are hosted your packages becomes unavailable. It's also a critical part of Zero-Installs and doesn't store more than a single file for each package - making it suitable for being stored within a repository, as we actually do in the Yarn repository itself.

-

The way it works is simple: each time a package is downloaded from a remote location ("remote" as a generic term in this context: dependencies listed through the file: protocol also have a remote, even if it will be the local filesystem in their case) a copy will be stored within the cache. The next time this same package will need to be installed, Yarn will leverage the version stored within cache instead of downloading its original source.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Offline Cache

The offline cache is a feature that allows Yarn to work just fine even should the network go down for any reason - whether it's because your employer didn't pay the utility bill or because the place where are hosted your packages becomes unavailable. It's also a critical part of Zero-Installs and doesn't store more than a single file for each package - making it suitable for being stored within a repository, as we actually do in the Yarn repository itself.

+

The way it works is simple: each time a package is downloaded from a remote location ("remote" as a generic term in this context: dependencies listed through the file: protocol also have a remote, even if it will be the local filesystem in their case) a copy will be stored within the cache. The next time this same package will need to be installed, Yarn will leverage the version stored within cache instead of downloading its original source.

Disabling the cache

-

Because the offline cache is leveraged to power PnP (files are read directly from within the zip archives), the cache cannot be disabled. That being said it's totally safe to remove the cache folder entirely if needed - it will simply be rebuilt the next time you run yarn install.

+

Because the offline cache is leveraged to power PnP (files are read directly from within the zip archives), the cache cannot be disabled. That being said it's totally safe to remove the cache folder entirely if needed - it will simply be rebuilt the next time you run yarn install.

Cleaning the cache

-

At the moment Yarn doesn't purge your cache from unneeded packages when you remove or upgrade them. To remove such unused files just periodically run yarn cache clean. You can even make it part of your CI!

+

At the moment Yarn doesn't purge your cache from unneeded packages when you remove or upgrade them. To remove such unused files just periodically run yarn cache clean. You can even make it part of your CI!

Sharing the cache

Starting from Yarn v2, Yarn will by default configure the cache to be local to your project. This is done to make it easier for you to store it as part of your repository, which we believe is the best way to ensure .

-

Still, this might not make sense in your case. For example you might be working on a small library and not care enough to bother with checking-in your cache. If that's your case just add the following line into a .yarnrc file local to your project. It will instruct Yarn to use a special path that will be shared by all projects that list the same configuration:

-
enableGlobalCache: true
-
+

Still, this might not make sense in your case. For example you might be working on a small library and not care enough to bother with checking-in your cache. If that's your case just add the following line into a .yarnrc file local to your project. It will instruct Yarn to use a special path that will be shared by all projects that list the same configuration:

+
enableGlobalCache: true

Cache integrity

-

Because the archive checksums are stored within the lockfile, any cache corruption will be detected at install-time and you'll be asked to resolve the problem - either by removing the corrupted file, or updating the checksum. The later isn't meant to be done except for advanced users in extremely specific cases.

\ No newline at end of file +

Because the archive checksums are stored within the lockfile, any cache corruption will be detected at install-time and you'll be asked to resolve the problem - either by removing the corrupted file, or updating the checksum. The later isn't meant to be done except for advanced users in extremely specific cases.

\ No newline at end of file diff --git a/docs/features/plugins/index.html b/docs/features/plugins/index.html index ff2221ea683a..6bafa104f3a9 100644 --- a/docs/features/plugins/index.html +++ b/docs/features/plugins/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Plugins

Ever since Yarn was created, our very essence has been about experimenting, evolving, pushing the status quo - rinse and repeat, each time one step further, each time paving the way for our next move.

-

As you can guess, this philosophy (coupled with the high number of external contribution we receive) requires us to iterate fast in order to accomodate with the various experiments that we brew. In a major step forward, Yarn got redesigned in the v2 in order to leverage a new modular API that can be extended through plugins. Nowadays, most of our features are implemented through those plugins - even yarn add and yarn install are preinstalled plugins!

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Plugins

Ever since Yarn was created, our very essence has been about experimenting, evolving, pushing the status quo - rinse and repeat, each time one step further, each time paving the way for our next move.

+

As you can guess, this philosophy (coupled with the high number of external contribution we receive) requires us to iterate fast in order to accomodate with the various experiments that we brew. In a major step forward, Yarn got redesigned in the v2 in order to leverage a new modular API that can be extended through plugins. Nowadays, most of our features are implemented through those plugins - even yarn add and yarn install are preinstalled plugins!

What can plugins do?

  • -

    Plugins can add new resolvers. Resolvers are the components tasked from converting dependency ranges (for example ^1.2.0) into fully-qualified package references (for example npm:1.2.0). By implementing a resolver, you can tell Yarn which versions are valid candidates to a specific range.

    +

    Plugins can add new resolvers. Resolvers are the components tasked from converting dependency ranges (for example ^1.2.0) into fully-qualified package references (for example npm:1.2.0). By implementing a resolver, you can tell Yarn which versions are valid candidates to a specific range.

  • -

    Plugins can add new fetchers. Fetchers are the components that take the fully-qualified package references we mentioned in the previous step (for example npm:1.2.0) and know how to obtain the data of the package they belong to. Fetchers can work with remote packages (for example the npm registry), but can also find the packages directly from their location on the disk (or any other data source).

    +

    Plugins can add new fetchers. Fetchers are the components that take the fully-qualified package references we mentioned in the previous step (for example npm:1.2.0) and know how to obtain the data of the package they belong to. Fetchers can work with remote packages (for example the npm registry), but can also find the packages directly from their location on the disk (or any other data source).

  • -

    Plugins can add new linkers. Once all the packages have been located and are ready for installation, Yarn will call the linkers to generate the files needed for the install targets to work properly. As an example, the PnP linker would generate the .pnp.js manifest, and a Python linker would instead generate the virtualenv files needed.

    +

    Plugins can add new linkers. Once all the packages have been located and are ready for installation, Yarn will call the linkers to generate the files needed for the install targets to work properly. As an example, the PnP linker would generate the .pnp.js manifest, and a Python linker would instead generate the virtualenv files needed.

  • -

    Plugins can add new commands. Each plugin can ship as many commands as they see fit, which will be injected into our CLI (also making them available through yarn --help). Because the Yarn plugins are dynamically linked with the running Yarn process, they can be very small and guaranteed to share the exact same behavior as your package manager (which wouldn't be the case if you were to reimplement the workspace detection, for example).

    +

    Plugins can add new commands. Each plugin can ship as many commands as they see fit, which will be injected into our CLI (also making them available through yarn --help). Because the Yarn plugins are dynamically linked with the running Yarn process, they can be very small and guaranteed to share the exact same behavior as your package manager (which wouldn't be the case if you were to reimplement the workspace detection, for example).

How to use plugins?

-

Plugins are single-file JS scripts built via the @berry/builder tools. They are easy to use:

+

Plugins are single-file JS scripts built via the @berry/builder tools. They are easy to use:

Automatic setup

The official plugins (the ones whose development happen on the Yarn repository) can be installed using the following commands:

  • -

    yarn plugins dl --list will print the name of the available official plugins. Some of them might be marked experimental, in which case they might be subject to breaking changes between releases (they should be mostly stable in general, though).

    +

    yarn plugins dl --list will print the name of the available official plugins. Some of them might be marked experimental, in which case they might be subject to breaking changes between releases (they should be mostly stable in general, though).

  • -

    yarn plugins dl <plugin-name> will download one of the plugins from the list, store it within the .yarn/plugins directory, and modify your local .yarnrc file to reference it.

    +

    yarn plugins dl <plugin-name> will download one of the plugins from the list, store it within the .yarn/plugins directory, and modify your local .yarnrc file to reference it.

  • -

    yarn plugins dl <url> will do the same thing, but because it uses a URL it will work with any plugin regardless of where the plugin is actually hosted.

    +

    yarn plugins dl <url> will do the same thing, but because it uses a URL it will work with any plugin regardless of where the plugin is actually hosted.

Manual setup

-

The yarn plugins dl command is useful, but in case you prefer to setup your project yourself:

+

The yarn plugins dl command is useful, but in case you prefer to setup your project yourself:

  • Download the plugin you want to use and put it somewhere

  • -

    Update your project-level .yarnrc file by adding the following property:

    -
    plugins:
    -  - "./my-plugin.js"
    -
    +

    Update your project-level .yarnrc file by adding the following property:

    +
    plugins:
    +  - "./my-plugin.js"
  • -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/features/pnp/index.html b/docs/features/pnp/index.html index 533be839e94a..40c38ebdf9f3 100644 --- a/docs/features/pnp/index.html +++ b/docs/features/pnp/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Plug'n'Play

Unveiled in September 2018, Plug'n'Play is a new innovative installation strategy for Node. Based on prior works from other languages (for example autoload from PHP), it presents interesting characteristics that build upon the regular commonjs require workflow in an almost completely backward-compatible way.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Plug'n'Play

Unveiled in September 2018, Plug'n'Play is a new innovative installation strategy for Node. Based on prior works from other languages (for example autoload from PHP), it presents interesting characteristics that build upon the regular commonjs require workflow in an almost completely backward-compatible way.

The node_modules problem

-

The way installs used to work was simple: when running yarn install Yarn would generate a node_modules directory that Node was then able to consume thanks to its builtin Node Resolution Algorithm. In this context, Node didn't have to know the first thing about what a "package" was: it only reasoned in terms of files. "Does this file exists here? No? Let's look in the parent node_modules then. Does it exists here? Still no? Too bad...", and it kept going until it found the right one. This process was vastly inefficient, and for a lot of reasons:

+

The way installs used to work was simple: when running yarn install Yarn would generate a node_modules directory that Node was then able to consume thanks to its builtin Node Resolution Algorithm. In this context, Node didn't have to know the first thing about what a "package" was: it only reasoned in terms of files. "Does this file exists here? No? Let's look in the parent node_modules then. Does it exists here? Still no? Too bad...", and it kept going until it found the right one. This process was vastly inefficient, and for a lot of reasons:

  • -

    The node_modules directories typically contained gargantuan amounts of files. Generating them could make up for more than 70% of the time needed to run yarn install. Even having preexisting installations wouldn't save you, as package managers still had to diff the existing node_modules with what it should have beeen.

    +

    The node_modules directories typically contained gargantuan amounts of files. Generating them could make up for more than 70% of the time needed to run yarn install. Even having preexisting installations wouldn't save you, as package managers still had to diff the existing node_modules with what it should have beeen.

  • -

    Because the node_modules generation was an I/O-heavy operation, package managers didn't have a lot of leeway to optimize it much further than just doing a simple file copy - and even though we could have used hardlinks or copy-on-write when possible, we would still have needed to diff the current state of the filesystem before making a bunch of syscalls to manipulate the disk.

    +

    Because the node_modules generation was an I/O-heavy operation, package managers didn't have a lot of leeway to optimize it much further than just doing a simple file copy - and even though we could have used hardlinks or copy-on-write when possible, we would still have needed to diff the current state of the filesystem before making a bunch of syscalls to manipulate the disk.

  • -

    Because Node had no concept of package, it didn't know either whether a file was meant to be accessed (versus being available by the sheer virtue of hoisting). It was entirely possible that the code you wrote worked one day in development but broke later in production because you forgot to list one of your dependencies in your package.json.

    +

    Because Node had no concept of package, it didn't know either whether a file was meant to be accessed (versus being available by the sheer virtue of hoisting). It was entirely possible that the code you wrote worked one day in development but broke later in production because you forgot to list one of your dependencies in your package.json.

  • -

    Even at runtime, the Node resolution had to make a bunch of stat and readdir calls in order to figure out from where to load every single required file. It was extremely wasteful, and was part of why booting Node applications took so much time.

    +

    Even at runtime, the Node resolution had to make a bunch of stat and readdir calls in order to figure out from where to load every single required file. It was extremely wasteful, and was part of why booting Node applications took so much time.

  • -

    Finally, the very design of the node_modules folder was impractical in that it didn't allow package managers to properly dedupe packages. Even though some algorithms could be employed to optimize the tree layout (hoisting), we still ended up unable to optimize some particular patterns - causing not only the disk usage to be higher than needed, but also some packages to be instantiated multiple times in memory.

    +

    Finally, the very design of the node_modules folder was impractical in that it didn't allow package managers to properly dedupe packages. Even though some algorithms could be employed to optimize the tree layout (hoisting), we still ended up unable to optimize some particular patterns - causing not only the disk usage to be higher than needed, but also some packages to be instantiated multiple times in memory.

Fixing node_modules

When you think about it, Yarn already knows everything about your dependency tree - after all it even installs it on the disk for you. So the question becomes: why do we let it to Node to locate the packages? Why didn't we simply tell Node where to find them, and inform it that any require call to X by Y was meant to access the files from a specific set of dependencies? This is from this postulate that Plug'n'Play was created.

-

In this install mode (now the default starting from Yarn v2), Yarn generates a single .pnp.js file instead of the usual node_modules. Instead of containing the source code of the installed packages, the .pnp.js file contains a map linking a package name and version to a location on the disk, and another map linking a package name and version to its set of dependencies. Thanks to this efficient system, Node can directly know where to look for files being required - regardless who asks for them!

+

In this install mode (now the default starting from Yarn v2), Yarn generates a single .pnp.js file instead of the usual node_modules. Instead of containing the source code of the installed packages, the .pnp.js file contains a map linking a package name and version to a location on the disk, and another map linking a package name and version to its set of dependencies. Thanks to this efficient system, Node can directly know where to look for files being required - regardless who asks for them!

This approach as various benefits:

  • @@ -75,15 +75,15 @@

    Zero-Installs effort, removing the need to run yarn install in the first place.

    +

    The generated file can be checked within your repository as part of the Zero-Installs effort, removing the need to run yarn install in the first place.

  • Your applications start faster, because the Node resolution doesn't have to iterate over the filesystem hierarchy nearly as much as before (and soon won't have to do it at all!).

Caveats and work-in-progress

-

During the years that led to Plug'n'Play being designed and adopted as main install strategy, various projects came up with their own implementation of the Node Resolution Algorithm - usually to circumvent shortcomings of the require.resolve API. Such projects can be Webpack (enhanced-resolve), Babel (resolve), Jest (jest-resolve), Metro (metro-resolver), ...

-

The following compatibility table gives you an idea of the integration status with various tools from the community. Note that only CLI tools are listed there, as frontend libraries (such as react, vue, lodash, ...) don't reimplement the Node resolution and as such don't need any special logic to take advantage from Plug'n'Play:

+

During the years that led to Plug'n'Play being designed and adopted as main install strategy, various projects came up with their own implementation of the Node Resolution Algorithm - usually to circumvent shortcomings of the require.resolve API. Such projects can be Webpack (enhanced-resolve), Babel (resolve), Jest (jest-resolve), Metro (metro-resolver), ...

+

The following compatibility table gives you an idea of the integration status with various tools from the community. Note that only CLI tools are listed there, as frontend libraries (such as react, vue, lodash, ...) don't reimplement the Node resolution and as such don't need any special logic to take advantage from Plug'n'Play:

@@ -96,7 +96,7 @@

- + @@ -121,18 +121,18 @@

- + - + - +
Babel NativeStarting from resolve 1.9+Starting from resolve 1.9+
Create-React-AppRollup PluginVia rollup-plugin-pnp-resolveVia rollup-plugin-pnp-resolve
TypeScript PluginVia Webpack and ts-loaderVia Webpack and ts-loader
Webpack PluginVia pnp-webpack-pluginVia pnp-webpack-plugin
-

This list is kept up-to-date based on the latest release we've published starting from the v2. In case you notice something off in your own project please try to upgrade Yarn and the problematic package first, then feel free to an issue. And maybe a PR? 😊

\ No newline at end of file +

This list is kept up-to-date based on the latest release we've published starting from the v2. In case you notice something off in your own project please try to upgrade Yarn and the problematic package first, then feel free to an issue. And maybe a PR? 😊

\ No newline at end of file diff --git a/docs/features/protocols/index.html b/docs/features/protocols/index.html index b977e7c349fc..28bd85601749 100644 --- a/docs/features/protocols/index.html +++ b/docs/features/protocols/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Protocols

The following protocols can be used by any dependency entry listed in the dependencies or devDependencies fields. While they work regardless of the context we strongly recommend you to only use semver ranges on published packages as they are the one common protocol whose semantic is clearly defined across all package managers.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Protocols

The following protocols can be used by any dependency entry listed in the dependencies or devDependencies fields. While they work regardless of the context we strongly recommend you to only use semver ranges on published packages as they are the one common protocol whose semantic is clearly defined across all package managers.

@@ -52,42 +52,42 @@ - + - + - + - + - + - - + + - - + +
Semver^1.2.3^1.2.3 Resolves from the default registry
Taglatestlatest Resolves from the default registry
Npm aliasnpm:name@...npm:name@... Resolves from the npm registry
Github (public)github:foo/bargithub:foo/bar Downloads a public package from Github
Filefile:./my-packagefile:./my-package Copies the location into the cache
Linklink:./my-folderCreates a link to the ./my-folder folder (ignore dependencies)link:./my-folderCreates a link to the ./my-folder folder (ignore dependencies)
Portalportal:./my-folderCreates a link to the ./my-folder folder (follow dependencies)portal:./my-folderCreates a link to the ./my-folder folder (follow dependencies)
- -

The link: protocol is meant to link a package name to a folder on the disk - any folder. For example one perfect use case for the link: protocol is to map your src folder to a clearer name that you can then use from your Node applications without having to use relative paths (for example you could link my-app to link:./src so that you can call require('my-app') from any file within your application).

-

Because such destination folders typically don't contain package.json, the link: protocol doesn't even try to read them. It can cause problems when you want to link an identifier to a different package on the disk (similar to what yarn link does), because then the transitive dependencies aren't resolved.

-

In order to solve this use case, the new portal: protocol available in the v2 opens a portal to any package located on your disk. Because portals are meant to only target packages they can leverage the information from the package.json files listed within their targets to properly resolve transitive dependencies.

\ No newline at end of file + +

The link: protocol is meant to link a package name to a folder on the disk - any folder. For example one perfect use case for the link: protocol is to map your src folder to a clearer name that you can then use from your Node applications without having to use relative paths (for example you could link my-app to link:./src so that you can call require('my-app') from any file within your application).

+

Because such destination folders typically don't contain package.json, the link: protocol doesn't even try to read them. It can cause problems when you want to link an identifier to a different package on the disk (similar to what yarn link does), because then the transitive dependencies aren't resolved.

+

In order to solve this use case, the new portal: protocol available in the v2 opens a portal to any package located on your disk. Because portals are meant to only target packages they can leverage the information from the package.json files listed within their targets to properly resolve transitive dependencies.

\ No newline at end of file diff --git a/docs/features/workspaces/index.html b/docs/features/workspaces/index.html index 5e8f87fb7c42..8d9567d23b64 100644 --- a/docs/features/workspaces/index.html +++ b/docs/features/workspaces/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Workspaces

The Yarn workspaces are a feature designed to make monorepos easy to use, solving one of the main use cases for yarn link in a more declarative way. In short, they allow multiple of your projects to live together in the same repository AND to cross-reference each others.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Workspaces

The Yarn workspaces are a feature designed to make monorepos easy to use, solving one of the main use cases for yarn link in a more declarative way. In short, they allow multiple of your projects to live together in the same repository AND to cross-reference each others.

First, some vocabulary: in the context of the workspace feature, a project is the whole directory tree making up your workspaces (often the repository itself). A workspace is a specific named package stored anywhere within the project. Finally, a worktree is the name given to private packages that list their own child workspaces. A project contains one or more worktrees, which may themselves contain any number of workspaces.

How to declare a worktree?

-

Worktrees are defined through the traditional package.json files. What makes them special is that they have the following properties:

+

Worktrees are defined through the traditional package.json files. What makes them special is that they have the following properties:

  • -

    They have to be marked private: true. This requirement exists because workspaces are a client-only feature. The remote registries (such as the npm registry) have no idea what a workspace is, and neither should they. In order to prevent accidental pushes and information leaks workspaces must have their private flag set.

    +

    They have to be marked private: true. This requirement exists because workspaces are a client-only feature. The remote registries (such as the npm registry) have no idea what a workspace is, and neither should they. In order to prevent accidental pushes and information leaks workspaces must have their private flag set.

  • -

    They must declare a workspaces field which is expected to be an array of glob patterns that should be used to locate the workspaces that make up the worktree. For example, if you want all folders within the packages folder to be workspaces, just add workspaces/* to this array.

    +

    They must declare a workspaces field which is expected to be an array of glob patterns that should be used to locate the workspaces that make up the worktree. For example, if you want all folders within the packages folder to be workspaces, just add packages/* to this array.

  • -

    They must be connected in some way to the project-level package.json file. This doesn't matter in the typical workspace setup because there's usually a single worktree defined in the project-level package.json, but if you try to setup nested workspaces then you must make sure that the nested worktree is defined as a valid workspace of its parent worktree (otherwise Yarn won't find its correct parent folder).

    +

    They must be connected in some way to the project-level package.json file. This doesn't matter in the typical workspace setup because there's usually a single worktree defined in the project-level package.json, but if you try to setup nested workspaces then you must make sure that the nested worktree is defined as a valid workspace of its parent worktree (otherwise Yarn won't find its correct parent folder).

-

Note that because worktrees are defined with an otherwise regular package.json file, they also are valid workspaces themselves. If they're named, other workspaces will be able to properly cross-reference them.

+

Note that because worktrees are defined with an otherwise regular package.json file, they also are valid workspaces themselves. If they're named, other workspaces will be able to properly cross-reference them.

What does it mean to be a workspace?

Workspaces have two important properties:

  • -

    Only the dependencies depended upon by a workspace can be accessed. Said another way, we strictly enforce your workspaces dependencies. Doing this allows to cleanly decouple projects from one another, since you don't have to merge all their dependencies in one huge unmaintainable list. We still provide tools to manage dependencies from multiple workspaces at once, but they need to be explicitly used and offer a better integration (for example yarn add can make suggestions for your new dependencies based on what other workspaces use, but you can override them).

    +

    Only the dependencies depended upon by a workspace can be accessed. Said another way, we strictly enforce your workspaces dependencies. Doing this allows to cleanly decouple projects from one another, since you don't have to merge all their dependencies in one huge unmaintainable list. We still provide tools to manage dependencies from multiple workspaces at once, but they need to be explicitly used and offer a better integration (for example yarn add can make suggestions for your new dependencies based on what other workspaces use, but you can override them).

  • If the package manager was to resolve a range that a workspace could satisfy, it will prefer the workspace resolution over the remote resolution if possible. This is the pillar of the monorepo approach: rather than using the remote packages from the registry, your project packages will be interconnected and will use the code stored within your repository.

-

Workspace ranges (workspace:)

+

Workspace ranges (workspace:)

While Yarn automatically picks workspace resolutions when they match, there are times where you absolutely don't want to risk using a package from the remote registry even if the versions don't match (for example if your project isn't actually meant to be published and you just want to use the workspaces to better compartiment your code).

-

For those use cases, Yarn now supports a new resolution protocol starting from the v2: workspace:. When this protocol is used Yarn will refuse to resolve to anything else than a local workspace. This range protocol has two flavors:

+

For those use cases, Yarn now supports a new resolution protocol starting from the v2: workspace:. When this protocol is used Yarn will refuse to resolve to anything else than a local workspace. This range protocol has two flavors:

  • If a semver range, it will select the workspace matching the specified version.
  • If a project-relative path, it will select the workspace that match this path (experimental).
-

Note that the second flavor is experimental and we advise against using it for now, as some details might change in the future. Our current recommendation is to use workspace:*, which will almost always do what you expect.

+

Note that the second flavor is experimental and we advise against using it for now, as some details might change in the future. Our current recommendation is to use workspace:*, which will almost always do what you expect.

+

Publishing workspaces

+

When a workspace is packed into an archive (whether it's through yarn pack or one of the publish commands like yarn npm publish), we dynamically replace any workspace: dependency by:

+
    +
  • The corresponding version in the target workspace (if you use * or a project-relative path)
  • +
  • The associated semver range (for any other range type)
  • +
+

So for example, if we assume we have three workspaces whose current version is 1.5.0, the following:

+
{
+  "dependencies": {
+    "foo": "workspace:*",
+    "bar": "workspace:^1.2.3",
+    "baz": "workspace:path/to/baz"
+  }
+}
+

Will be transformed into:

+
{
+  "dependencies": {
+    "foo": "1.5.0",
+    "bar": "^1.2.3",
+    "baz": "1.5.0"
+  }
+}
+

This feature allows you to not have to depend on something else than your local workspaces, while still being able to publish the resulting packages to the remote registry without having to run intermediary publish steps - your consumers will be able to use your published workspaces as any other package, still benefiting from the guarantees semver offers.

Yarn Workspaces vs Lerna

-

Despite the appearances, the Yarn workspaces and Lerna don't compete. In fact, Lerna will uses Yarn's workspaces if possible. In a sense, you can see Lerna as a high-level layer on top of the low-level Yarn implementation.

\ No newline at end of file +

Despite the appearances, the Yarn workspaces and Lerna don't compete. In fact, Lerna will uses Yarn's workspaces if possible. In a sense, you can see Lerna as a high-level layer on top of the low-level Yarn implementation.

\ No newline at end of file diff --git a/docs/features/zero-installs/index.html b/docs/features/zero-installs/index.html index 6f0a06e93169..4a16d117521d 100644 --- a/docs/features/zero-installs/index.html +++ b/docs/features/zero-installs/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Zero-Installs

While not a feature in itself, the term "Zero Install" encompasses a lot of Yarn features tailored around one specific purpose: make your projects as stable and fast as they could ever be by removing one of the main entropy factor from the equation: Yarn itself.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
ConstraintsOffline CachePlug'n'PlayPluginsProtocolsWorkspacesZero-Installs

Zero-Installs

While not a feature in itself, the term "Zero Install" encompasses a lot of Yarn features tailored around one specific purpose: make your projects as stable and fast as they could ever be by removing one of the main entropy factor from the equation: Yarn itself.

How does Yarn impacts a project stability?

-

Yarn does its best to guarantee that when running yarn install twice, the result will be the same in both cases. The main way we currently achieve this purpose is through a lockfile, which gives us all the information we need to install a project in a reproducible way. But is it really enough?

-

While we do our best to guarantee that what works now will always work, there's the off chance that a future release introduces a bug that'll prevent you from installing your project. Or maybe your production machines environment change and yarn install cannot write in the temporary directory anymore, or the network falls and your packages aren't available, or your credentials rotate and you get authentication issues, or ... so many things can go wrong.

+

Yarn does its best to guarantee that when running yarn install twice, the result will be the same in both cases. The main way we currently achieve this purpose is through a lockfile, which gives us all the information we need to install a project in a reproducible way. But is it really enough?

+

While we do our best to guarantee that what works now will always work, there's the off chance that a future release introduces a bug that'll prevent you from installing your project. Or maybe your production machines environment change and yarn install cannot write in the temporary directory anymore, or the network falls and your packages aren't available, or your credentials rotate and you get authentication issues, or ... so many things can go wrong.

Finally, note that isn't only about Yarn - you probably still remember some npm bugs where system files were being removed from production servers. That's what we mean: a code that runs is a code that will eventually fail. The only definite way to prevent such issues, now and in the future, is to ensure that as few code needs to run as possible.

How to reach this "zero-install" state you're advocating for?

In order to make a project zero-install, you must be able to use it as soon as you clone it. This is very easy starting from Yarn 2!

  • -

    The cache folder is by default stored within your project folder (in .yarn/cache). Just make sure you add it to your repository (see also, Offline Cache).

    +

    The cache folder is by default stored within your project folder (in .yarn/cache). Just make sure you add it to your repository (see also, Offline Cache).

  • -

    When running yarn install, Yarn will generate a .pnp.js and a .yarn/virtuals file. Add them both to your repository (the virtuals folder contains a bunch of symlinks used to disambiguate peer dependencies - it might look weird, but it's what allows yarn link to work A-OK with peer dependencies).

    +

    When running yarn install, Yarn will generate a .pnp.js and a .yarn/virtuals file. Add them both to your repository (the virtuals folder contains a bunch of symlinks used to disambiguate peer dependencies - it might look weird, but it's what allows yarn link to work A-OK with peer dependencies).

  • -

    Depending on whether you use install scripts or not (we advise you to disable them if you write Javascript, as most use cases for native packages are better solved by wasm-powered packages anyway) also add the .yarn/unplugged and .yarn/build-state.yml entries.

    +

    Depending on whether you use install scripts or not (we advise you to disable them if you write Javascript, as most use cases for native packages are better solved by wasm-powered packages anyway) also add the .yarn/unplugged and .yarn/build-state.yml entries.

-

And that's it! Push your changes to your repository, checkout a fresh new one somewhere, and check whether running yarn start (or whatever other script you'd normally use) works.

+

And that's it! Push your changes to your repository, checkout a fresh new one somewhere, and check whether running yarn start (or whatever other script you'd normally use) works.

Security concerns

Note that, by design, this setup requires that you trust people modifying your repository. In particular projects accepting PRs from external users will have to be careful that the PRs affecting the package archives are legit (since it would otherwise be possible to a malicious user to send a PR for a new dependency after having altered its archive content). The best way to do this would be to add a CI step (for untrusted PRs only) that removes the cache before running an install:

-
$> rm -rf $(yarn cache dir)
-$> yarn install
-
-

This way Yarn will redownload the package files from whatever their remote location would be, and would report any mismatching checksum.

\ No newline at end of file +
$> rm -rf $(yarn cache dir)
+$> yarn install
+

This way Yarn will redownload the package files from whatever their remote location would be, and would report any mismatching checksum.

\ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 529cb1d81a72..c9c85d2c7798 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

1 - Introduction

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

1 - Introduction

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.

Yarn allows you to use other developers' solutions to different problems, making it easier for you to develop your software. If you have problems, you can report issues or contribute back, and when the problem is fixed, you can use Yarn to keep it all up to date.

-

Code is shared through something called a package. A package contains all the code being shared as well as a package.json file (called a manifest) which describes the package.

\ No newline at end of file +

Code is shared through something called a package. A package contains all the code being shared as well as a package.json file (called a manifest) which describes the package.

\ No newline at end of file diff --git a/docs/getting-started/install/index.html b/docs/getting-started/install/index.html index ed316bd4ddbc..e6cdee2d82d1 100644 --- a/docs/getting-started/install/index.html +++ b/docs/getting-started/install/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

2 - Installation

The version of Yarn this website is about is the v2 - being slightly experimental, its install process is different from our regular builds. In order to install it:

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

2 - Installation

The version of Yarn this website is about is the v2 - being slightly experimental, its install process is different from our regular builds. In order to install it:

  1. First install the regular Yarn by following the instructions from the v1 website.

  2. -

    Go into your project (that you created either manually or via yarn init) and run the following:

    -
    $> yarn policies set-version v2
    -
    +

    Go into your project (that you created either manually or via yarn init) and run the following:

    +
    $> yarn policies set-version v2
  3. Test that the v2 has been properly selected by running:

    -
    $> yarn --version
    -v2.0.0
    -
    +
    $> yarn --version
    +v2.0.0
  4. -
\ No newline at end of file +
\ No newline at end of file diff --git a/docs/getting-started/usage/index.html b/docs/getting-started/usage/index.html index 50e11a563c8a..aeb74a5b5dcf 100644 --- a/docs/getting-started/usage/index.html +++ b/docs/getting-started/usage/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

3 - Usage

Now that you have Yarn installed, you can start using Yarn. Here are some of the most common commands you'll need.

+
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
1 - Introduction2 - Installation3 - Usage

3 - Usage

Now that you have Yarn installed, you can start using Yarn. Here are some of the most common commands you'll need.

Starting a new project

-
$> yarn init
-
+
$> yarn init

Adding a dependency

-
$> yarn add [package]
-$> yarn add [package]@[version]
-$> yarn add [package]@[tag]
-
+
$> yarn add [package]
+$> yarn add [package]@[version]
+$> yarn add [package]@[tag]

Adding a dependency to different categories of dependencies

-

Add to respectively devDependencies or peerDependencies:

-
$> yarn add [package] --dev
-$> yarn add [package] --peer
-
+

Add to respectively devDependencies or peerDependencies:

+
$> yarn add [package] --dev
+$> yarn add [package] --peer

Upgrading a dependency

-
$> yarn up [package]
-$> yarn up [package]@[version]
-$> yarn up [package]@[tag]
-
+
$> yarn up [package]
+$> yarn up [package]@[version]
+$> yarn up [package]@[tag]

Removing a dependency

-
$> yarn remove [package]
-
+
$> yarn remove [package]

Installing all the dependencies of project

-
$> yarn
-
+
$> yarn

or

-
$> yarn install
-
\ No newline at end of file +
$> yarn install
\ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 94704a5a6970..54663be3261a 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1,4 +1,4 @@ -Home | Yarn - Package ManagerHome | Yarn - Package Manager
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
Safe, stable, reproducible projects
Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
Safe, stable, reproducible projects
Yarn is a package manager that doubles down as project manager. Whether you work on one-shot projects or large monorepos, as a hobbyist or an enterprise user, we've got you covered.
\ No newline at end of file diff --git a/docs/package/index.html b/docs/package/index.html index 87e07ce2b31b..7458dea70f0d 100644 --- a/docs/package/index.html +++ b/docs/package/index.html @@ -1,4 +1,4 @@ -
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
InformationManifest FileFile ListDependency Tree
\ No newline at end of file +
Important: This documentation covers the v2 onwards and is actively being worked on. Come help us!
Yarn
HomeGetting startedConfigurationFeaturesCLIAdvanced
InformationManifest FileFile ListDependency Tree
\ No newline at end of file diff --git a/docs/pages-manifest-248fb8983edc7c498f37.js b/docs/pages-manifest-248fb8983edc7c498f37.js new file mode 100644 index 000000000000..0b8c31ade384 --- /dev/null +++ b/docs/pages-manifest-248fb8983edc7c498f37.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[11],{161:function(e){e.exports={pages:[{componentChunkName:"component---src-pages-index-js",jsonName:"index",path:"/"},{componentChunkName:"component---src-pages-404-js",jsonName:"404-c02",path:"/404"},{componentChunkName:"component---src-pages-404-js",jsonName:"404-html-516",path:"/404.html"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-architecture-4da",path:"/advanced/architecture"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-contributing-e1d",path:"/advanced/contributing"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-error-codes-430",path:"/advanced/error-codes"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-lexicon-032",path:"/advanced/lexicon"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-migration-fac",path:"/advanced/migration"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-peer-dependencies-5c9",path:"/advanced/peer-dependencies"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-pnpify-29f",path:"/advanced/pnpify"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-add-bc7",path:"/cli/add"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-bin-98e",path:"/cli/bin"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-cache-clean-b66",path:"/cli/cache/clean"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-config-9b3",path:"/cli/config"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-config-set-0a5",path:"/cli/config/set"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-check-fe2",path:"/cli/constraints/check"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-fix-ace",path:"/cli/constraints/fix"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-query-7be",path:"/cli/constraints/query"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-source-998",path:"/cli/constraints/source"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-dlx-cbc",path:"/cli/dlx"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-help-a93",path:"/cli/help"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-init-7fc",path:"/cli/init"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-install-7b3",path:"/cli/install"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-link-701",path:"/cli/link"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-node-90e",path:"/cli/node"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-npm-login-7c8",path:"/cli/npm/login"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-npm-publish-280",path:"/cli/npm/publish"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-npm-whoami-940",path:"/cli/npm/whoami"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-pack-e86",path:"/cli/pack"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-plugin-dl-df1",path:"/cli/plugin/dl"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-plugin-list-849",path:"/cli/plugin/list"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-policies-set-resolution-0cf",path:"/cli/policies/set-resolution"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-remove-109",path:"/cli/remove"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-run-370",path:"/cli/run"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-set-version-52e",path:"/cli/set/version"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-stage-bfb",path:"/cli/stage"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-unplug-8fd",path:"/cli/unplug"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-up-6a1",path:"/cli/up"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-version-ade",path:"/cli/version"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-version-apply-6b4",path:"/cli/version/apply"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-why-122",path:"/cli/why"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-workspaces-foreach-run-f4c",path:"/cli/workspaces/foreach/run"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-workspaces-list-c8c",path:"/cli/workspaces/list"},{componentChunkName:"component---src-pages-configuration-manifest-js",jsonName:"configuration-manifest-4ad",path:"/configuration/manifest"},{componentChunkName:"component---src-pages-configuration-yarnrc-js",jsonName:"configuration-yarnrc-79d",path:"/configuration/yarnrc"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-constraints-306",path:"/features/constraints"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-offline-cache-bb0",path:"/features/offline-cache"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-plugins-33e",path:"/features/plugins"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-pnp-5ec",path:"/features/pnp"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-protocols-a2d",path:"/features/protocols"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-workspaces-a1b",path:"/features/workspaces"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-zero-installs-899",path:"/features/zero-installs"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-87c",path:"/getting-started"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-install-4be",path:"/getting-started/install"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-usage-bdd",path:"/getting-started/usage"},{componentChunkName:"component---src-pages-package-js",jsonName:"package-c19",path:"/package"}],dataPaths:{"404-c02":"198/path---404-c-02-3e9-0SUcWyAf8ecbYDsMhQkEfPzV8","404-html-516":"285/path---404-html-516-62a-0SUcWyAf8ecbYDsMhQkEfPzV8","advanced-architecture-4da":"768/path---advanced-architecture-4-da-48b-XcX0OYr9hMKbj1GBfOV3AhnoZTI","advanced-contributing-e1d":"892/path---advanced-contributing-e-1-d-e74-hX9bz04kqq4Lt0kNnhwZJXGjwRE","advanced-error-codes-430":"409/path---advanced-error-codes-430-d5e-mbC2lR02VznO0vFnrOmvX54I2OY","advanced-lexicon-032":"719/path---advanced-lexicon-032-7c6-1joe1DhC4mJxz81USCf8QmloY","advanced-migration-fac":"925/path---advanced-migration-fac-b1c-8Id7kvMFRBp87yeNU7n5BZdVQzQ","advanced-peer-dependencies-5c9":"758/path---advanced-peer-dependencies-5-c-9-ddc-dh77jdI2twhct9bgjNwPuJQUi9g","advanced-pnpify-29f":"367/path---advanced-pnpify-29-f-6d2-NyYlzogwqTEDhPH4ksjY0IvmFs","cli-add-bc7":"359/path---cli-add-bc-7-c81-PJflxpXsQMly74VYtgUuvU2Zo","cli-bin-98e":"305/path---cli-bin-98-e-a94-e8ayx95pxTAEE3Axd9TFQ7PLRw","cli-cache-clean-b66":"151/path---cli-cache-clean-b-66-4c3-G0Oy5EXE5ZOcH3Hc8rVfw2MGgn0","cli-config-9b3":"606/path---cli-config-9-b-3-d67-XQzdAfz7acxzAN7uSjtnCTQAtU","cli-config-set-0a5":"524/path---cli-config-set-0-a-5-08e-SAUIak7ZyDRFtwtPfGEnN1w10","cli-constraints-check-fe2":"200/path---cli-constraints-check-fe-2-efb-2IetZJ1XwbfsrzTNvmAhb0jH0w","cli-constraints-fix-ace":"919/path---cli-constraints-fix-ace-b88-EH6gPrU9gUaBKYRk3QsdtfiX2Hg","cli-constraints-query-7be":"882/path---cli-constraints-query-7-be-23f-jW33yBkYRfMXvh5gZw2NCY9sw","cli-constraints-source-998":"325/path---cli-constraints-source-998-562-SJ11rkE3kht5Uh49V04AqU2oO4","cli-dlx-cbc":"703/path---cli-dlx-cbc-9c6-ntBDjuXv36d3WgdYNf1weWKCiE","cli-help-a93":"399/path---cli-help-a-93-7fa-Fw6zws1XYjtfZfHYWrPfha96as","cli-init-7fc":"911/path---cli-init-7-fc-b73-A4g5nmRTkFBUPsvBxzrmitGk","cli-install-7b3":"165/path---cli-install-7-b-3-481-2XTKNmbLIr9t9PiqpXSW2oE8fWE","cli-link-701":"705/path---cli-link-701-19d-Bff5jswhLEuELUCuM1BsRC07PA","cli-node-90e":"103/path---cli-node-90-e-57f-yDy4bzEPj1SVpBBJhPHLIT93M","cli-npm-login-7c8":"407/path---cli-npm-login-7-c-8-eb1-CuFsmPTsRWMMEVeWs7S0TaXWaY8","cli-npm-publish-280":"318/path---cli-npm-publish-280-ac3-tiOkCLoGAuGIwGELNDcwKYapZs","cli-npm-whoami-940":"543/path---cli-npm-whoami-940-0c5-ZtsHPEke657EI3JJFIKlEIw8iNc","cli-pack-e86":"668/path---cli-pack-e-86-e84-m3LXZOmR32rqcKO3XoWPh1KXlr8","cli-plugin-dl-df1":"91/path---cli-plugin-dl-df-1-73c-Eqn6PjVMXU39RNQoinuGBbofB9M","cli-plugin-list-849":"412/path---cli-plugin-list-849-942-Oh3eqmO2mxBiIYWsqbWXfjEQhLg","cli-policies-set-resolution-0cf":"363/path---cli-policies-set-resolution-0-cf-ed5-WPqnlVNqHZJEz3kZkINphJNoEA","cli-remove-109":"390/path---cli-remove-109-4c1-uH3KxAAaTA15oBkB8PQoDmyBW9g","cli-run-370":"384/path---cli-run-370-a9b-ODrNllhoEQpBesgBblxpyxYjlWs","cli-set-version-52e":"930/path---cli-set-version-52-e-d8e-zBHKW2PGGHW8Btw12sSaPCRmPdo","cli-stage-bfb":"593/path---cli-stage-bfb-d03-B6uphxi4qB4dyNRt5Y1u0xmOusQ","cli-unplug-8fd":"435/path---cli-unplug-8-fd-be1-DhOSIZEMg5psigyOeEq5UWEmvsk","cli-up-6a1":"157/path---cli-up-6-a-1-a9e-oqLgyhmFjCSYDLhIl6nMtkJmqQ","cli-version-ade":"729/path---cli-version-ade-623-7NWtE66vFzwZ5kvSsDbJZUw","cli-version-apply-6b4":"399/path---cli-version-apply-6-b-4-817-fD5XXty8OYtgfxTDpuTkS37Qao","cli-why-122":"425/path---cli-why-122-81a-m2rHCpndRSyhV3c5S03an3RVqo","cli-workspaces-foreach-run-f4c":"622/path---cli-workspaces-foreach-run-f-4-c-139-L9Sn6HvnEGYvu70B2nXjLNhg9U","cli-workspaces-list-c8c":"514/path---cli-workspaces-list-c-8-c-8fe-Khf0PYtkjN442LjA1LCwXlXBU","configuration-manifest-4ad":"40/path---configuration-manifest-4-ad-bd4-0SUcWyAf8ecbYDsMhQkEfPzV8","configuration-yarnrc-79d":"432/path---configuration-yarnrc-79-d-496-0SUcWyAf8ecbYDsMhQkEfPzV8","features-constraints-306":"124/path---features-constraints-306-a6a-DnOgf7YlCFpipLvQXPGxyYKT54","features-offline-cache-bb0":"635/path---features-offline-cache-bb-0-925-Wt1YUweI9UL9PHjhjAP7HPqso","features-plugins-33e":"572/path---features-plugins-33-e-55c-BIlFl4m17MvJm9Nc00Oc41pV1U","features-pnp-5ec":"422/path---features-pnp-5-ec-806-2I3SwbXEK40sLO21eI3vqi0fJ48","features-protocols-a2d":"135/path---features-protocols-a-2-d-d3b-C16SsAtF8IwTIVOugIcRMBUiI","features-workspaces-a1b":"1/path---features-workspaces-a-1-b-90b-owfkUYP69Bj17CGiyE4NoB0WA","features-zero-installs-899":"730/path---features-zero-installs-899-701-VJaMxKRQzomR9DJw3TGLGI2rtQ","getting-started-87c":"439/path---getting-started-87-c-bba-fUQJheJGvAbZ26sjhL6Xofmg64","getting-started-install-4be":"727/path---getting-started-install-4-be-a25-41HNo5Jo3ba96gGzC7qUtxqB6Ws","getting-started-usage-bdd":"288/path---getting-started-usage-bdd-b6d-aMhjkKHcayBxbGnH6VXKGK4zQw",index:"140/path---index-6a9-0SUcWyAf8ecbYDsMhQkEfPzV8","package-c19":"330/path---package-c-19-6ce-0SUcWyAf8ecbYDsMhQkEfPzV8","sq--src-components-header-js":837419984,"sq--src-components-seo-js":2417117884,"sq--src-utils-use-algolia-js":52907304}}}}]); +//# sourceMappingURL=pages-manifest-248fb8983edc7c498f37.js.map \ No newline at end of file diff --git a/docs/pages-manifest-4091bebb6948a9eaecc8.js.map b/docs/pages-manifest-248fb8983edc7c498f37.js.map similarity index 55% rename from docs/pages-manifest-4091bebb6948a9eaecc8.js.map rename to docs/pages-manifest-248fb8983edc7c498f37.js.map index 5adc07bc9d28..eb90b2f1cbba 100644 --- a/docs/pages-manifest-4091bebb6948a9eaecc8.js.map +++ b/docs/pages-manifest-248fb8983edc7c498f37.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"pages-manifest-4091bebb6948a9eaecc8.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"pages-manifest-248fb8983edc7c498f37.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/pages-manifest-4091bebb6948a9eaecc8.js b/docs/pages-manifest-4091bebb6948a9eaecc8.js deleted file mode 100644 index fe4d1fb9782c..000000000000 --- a/docs/pages-manifest-4091bebb6948a9eaecc8.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[10],{159:function(e){e.exports={pages:[{componentChunkName:"component---src-pages-index-js",jsonName:"index",path:"/"},{componentChunkName:"component---src-pages-404-js",jsonName:"404-c02",path:"/404"},{componentChunkName:"component---src-pages-404-js",jsonName:"404-html-516",path:"/404.html"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-architecture-4da",path:"/advanced/architecture"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-contributing-e1d",path:"/advanced/contributing"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-error-codes-430",path:"/advanced/error-codes"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-lexicon-032",path:"/advanced/lexicon"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-migration-fac",path:"/advanced/migration"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-peer-dependencies-5c9",path:"/advanced/peer-dependencies"},{componentChunkName:"component---src-templates-article-js",jsonName:"advanced-pnpify-29f",path:"/advanced/pnpify"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-add-bc7",path:"/cli/add"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-bin-98e",path:"/cli/bin"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-cache-clean-b66",path:"/cli/cache/clean"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-config-9b3",path:"/cli/config"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-config-set-0a5",path:"/cli/config/set"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-check-fe2",path:"/cli/constraints/check"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-fix-ace",path:"/cli/constraints/fix"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-query-7be",path:"/cli/constraints/query"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-constraints-source-998",path:"/cli/constraints/source"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-dlx-cbc",path:"/cli/dlx"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-help-a93",path:"/cli/help"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-init-7fc",path:"/cli/init"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-install-7b3",path:"/cli/install"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-link-701",path:"/cli/link"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-node-90e",path:"/cli/node"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-npm-publish-280",path:"/cli/npm/publish"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-pack-e86",path:"/cli/pack"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-plugin-dl-df1",path:"/cli/plugin/dl"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-plugin-list-849",path:"/cli/plugin/list"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-policies-set-resolution-0cf",path:"/cli/policies/set-resolution"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-remove-109",path:"/cli/remove"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-run-370",path:"/cli/run"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-set-version-52e",path:"/cli/set/version"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-stage-bfb",path:"/cli/stage"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-unplug-8fd",path:"/cli/unplug"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-up-6a1",path:"/cli/up"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-why-122",path:"/cli/why"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-workspaces-foreach-09e",path:"/cli/workspaces/foreach"},{componentChunkName:"component---src-templates-article-js",jsonName:"cli-workspaces-list-c8c",path:"/cli/workspaces/list"},{componentChunkName:"component---src-pages-configuration-manifest-js",jsonName:"configuration-manifest-4ad",path:"/configuration/manifest"},{componentChunkName:"component---src-pages-configuration-yarnrc-js",jsonName:"configuration-yarnrc-79d",path:"/configuration/yarnrc"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-constraints-306",path:"/features/constraints"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-offline-cache-bb0",path:"/features/offline-cache"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-plugins-33e",path:"/features/plugins"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-pnp-5ec",path:"/features/pnp"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-protocols-a2d",path:"/features/protocols"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-workspaces-a1b",path:"/features/workspaces"},{componentChunkName:"component---src-templates-article-js",jsonName:"features-zero-installs-899",path:"/features/zero-installs"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-87c",path:"/getting-started"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-install-4be",path:"/getting-started/install"},{componentChunkName:"component---src-templates-article-js",jsonName:"getting-started-usage-bdd",path:"/getting-started/usage"},{componentChunkName:"component---src-pages-package-js",jsonName:"package-c19",path:"/package"}],dataPaths:{"404-c02":"198/path---404-c-02-3e9-0SUcWyAf8ecbYDsMhQkEfPzV8","404-html-516":"285/path---404-html-516-62a-0SUcWyAf8ecbYDsMhQkEfPzV8","advanced-architecture-4da":"601/path---advanced-architecture-4-da-48b-gVC3WduLoMwdtCKB5t8W2j7DJQ","advanced-contributing-e1d":"245/path---advanced-contributing-e-1-d-e74-sllanT3onY0cGtxIFTELYCzw","advanced-error-codes-430":"630/path---advanced-error-codes-430-d5e-Wqomy66tnAv6bC869A2MfUbB9U","advanced-lexicon-032":"217/path---advanced-lexicon-032-7c6-a59iRUVttCfHRgUx6xMHpnZwsGg","advanced-migration-fac":"837/path---advanced-migration-fac-b1c-Q2PgnOl6OJGzqeEfCaEZKL9vCg","advanced-peer-dependencies-5c9":"865/path---advanced-peer-dependencies-5-c-9-ddc-VMWwrqA3Lj3qLi0qUBfdnTbnSnA","advanced-pnpify-29f":"314/path---advanced-pnpify-29-f-6d2-pYeEYwSBJPYGXbdBAQMflIybHPA","cli-add-bc7":"183/path---cli-add-bc-7-c81-RQ4oJP2shWxglXXibY0gl7OCM","cli-bin-98e":"560/path---cli-bin-98-e-a94-KrOyRjfbJW9LKgXzDoHDzwnuXw","cli-cache-clean-b66":"585/path---cli-cache-clean-b-66-4c3-uqecDCWBu8bfw5wOkTmd3KCXqtc","cli-config-9b3":"726/path---cli-config-9-b-3-d67-NghFsDNzOSEqWmUWyDuWKr3is1k","cli-config-set-0a5":"747/path---cli-config-set-0-a-5-08e-DfTKDOSPXPRTlUxJvNFav9eRms","cli-constraints-check-fe2":"660/path---cli-constraints-check-fe-2-efb-mQcWPcRwQ8nP0lMHAf87uNuHEL0","cli-constraints-fix-ace":"225/path---cli-constraints-fix-ace-b88-yjZebVruvvZmttF1IER0HJ8AL4","cli-constraints-query-7be":"746/path---cli-constraints-query-7-be-23f-kGkmAaqZvw2o5gfeKJGwk7shsk","cli-constraints-source-998":"522/path---cli-constraints-source-998-562-2zv1do9LieeAV4r4Jgym6Qn50o","cli-dlx-cbc":"840/path---cli-dlx-cbc-9c6-WS0cXccvMgG10nRn9uPy70dn5Qg","cli-help-a93":"7/path---cli-help-a-93-7fa-gGMuqyclW1maehHLhVqTh9zUk","cli-init-7fc":"535/path---cli-init-7-fc-b73-7P6ncsIdCyztdkTNeYkdZ6Ocn6A","cli-install-7b3":"991/path---cli-install-7-b-3-481-TjvIybmdhSELuZ5cbXJikNT6M","cli-link-701":"781/path---cli-link-701-19d-2SToHAHIdTjkt9VWag9Wy8w4","cli-node-90e":"628/path---cli-node-90-e-57f-BAt9WMlFLpNB50J5zb9zTtiZ1s","cli-npm-publish-280":"34/path---cli-npm-publish-280-ac3-VQ2S6y6daFGsf52NULH0oUHJ5k","cli-pack-e86":"532/path---cli-pack-e-86-e84-muvxI1atsE2oSobvWN7BYp11sw","cli-plugin-dl-df1":"299/path---cli-plugin-dl-df-1-73c-8ocU44CYSs3ltXqZFomu8Xa0VUI","cli-plugin-list-849":"853/path---cli-plugin-list-849-942-cyieeqr3Ho68hQoGKRexSLuAHhE","cli-policies-set-resolution-0cf":"744/path---cli-policies-set-resolution-0-cf-ed5-VKSsTIXuXkPnCkTAKr27QyVhaWg","cli-remove-109":"409/path---cli-remove-109-4c1-j4rvERnwSv6FV4dsfvttoF0r6k","cli-run-370":"235/path---cli-run-370-a9b-mFCnpAoABlOqjo0iY75CBe7gTtQ","cli-set-version-52e":"323/path---cli-set-version-52-e-d8e-iKLeElxWp5rkRuBc914w2VSFRIE","cli-stage-bfb":"564/path---cli-stage-bfb-d03-8RRncmpTp5YyGFGvJOxjfzleY","cli-unplug-8fd":"517/path---cli-unplug-8-fd-be1-hYqCf9dugBh7lqcKeAW9jlmQUUo","cli-up-6a1":"482/path---cli-up-6-a-1-a9e-smSl4wq5FuUAmWiumruE2wgdeV8","cli-why-122":"915/path---cli-why-122-81a-95qxvbLnED2mbhG00AjySPzBWo","cli-workspaces-foreach-09e":"575/path---cli-workspaces-foreach-09-e-44f-gv86YXTED8cDmOhnKDoRSABKCcs","cli-workspaces-list-c8c":"102/path---cli-workspaces-list-c-8-c-8fe-32ZRHSWvJwqKUkjfAdcx3HVRemY","configuration-manifest-4ad":"40/path---configuration-manifest-4-ad-bd4-0SUcWyAf8ecbYDsMhQkEfPzV8","configuration-yarnrc-79d":"432/path---configuration-yarnrc-79-d-496-0SUcWyAf8ecbYDsMhQkEfPzV8","features-constraints-306":"88/path---features-constraints-306-a6a-7F22UL9Z75tJtrWZm6m2jh8XOs","features-offline-cache-bb0":"420/path---features-offline-cache-bb-0-925-un6KMa93WGg3CFkKpDhwTIAx9c","features-plugins-33e":"391/path---features-plugins-33-e-55c-bjLLOisarNBX9fAmKJMHbIfGk","features-pnp-5ec":"769/path---features-pnp-5-ec-806-OGIWypy3VekhyFC8ZuADLN7X4","features-protocols-a2d":"41/path---features-protocols-a-2-d-d3b-OwtnilEL91Npv5j4eYCahCMb9iw","features-workspaces-a1b":"363/path---features-workspaces-a-1-b-90b-3PCjAGxQF8S3CBspZvrrgwbWpNU","features-zero-installs-899":"388/path---features-zero-installs-899-701-d9FgJFaIIIMAXGffkfrCR8ZPpaI","getting-started-87c":"244/path---getting-started-87-c-bba-nvvubNrvPBdlHFxtNiJZH08A","getting-started-install-4be":"638/path---getting-started-install-4-be-a25-gyLbQsJjqmJGnQl6H5hWspJSF0","getting-started-usage-bdd":"304/path---getting-started-usage-bdd-b6d-RwNnRaGWlaugtotP9VvbaOlsE",index:"140/path---index-6a9-0SUcWyAf8ecbYDsMhQkEfPzV8","package-c19":"330/path---package-c-19-6ce-0SUcWyAf8ecbYDsMhQkEfPzV8","sq--src-components-header-js":837419984,"sq--src-components-seo-js":2417117884,"sq--src-utils-use-algolia-js":52907304}}}}]); -//# sourceMappingURL=pages-manifest-4091bebb6948a9eaecc8.js.map \ No newline at end of file diff --git a/docs/static/d/1/path---features-workspaces-a-1-b-90b-owfkUYP69Bj17CGiyE4NoB0WA.json b/docs/static/d/1/path---features-workspaces-a-1-b-90b-owfkUYP69Bj17CGiyE4NoB0WA.json new file mode 100644 index 000000000000..9334638fca3f --- /dev/null +++ b/docs/static/d/1/path---features-workspaces-a-1-b-90b-owfkUYP69Bj17CGiyE4NoB0WA.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The Yarn workspaces are a feature designed to make monorepos easy to use, solving one of the main use cases for yarn link in a more declarative way. In short, they allow multiple of your projects to live together in the same repository AND to cross-reference each others.

\n

First, some vocabulary: in the context of the workspace feature, a project is the whole directory tree making up your workspaces (often the repository itself). A workspace is a specific named package stored anywhere within the project. Finally, a worktree is the name given to private packages that list their own child workspaces. A project contains one or more worktrees, which may themselves contain any number of workspaces.

\n

How to declare a worktree?

\n

Worktrees are defined through the traditional package.json files. What makes them special is that they have the following properties:

\n
    \n
  • \n

    They have to be marked private: true. This requirement exists because workspaces are a client-only feature. The remote registries (such as the npm registry) have no idea what a workspace is, and neither should they. In order to prevent accidental pushes and information leaks workspaces must have their private flag set.

    \n
  • \n
  • \n

    They must declare a workspaces field which is expected to be an array of glob patterns that should be used to locate the workspaces that make up the worktree. For example, if you want all folders within the packages folder to be workspaces, just add packages/* to this array.

    \n
  • \n
  • \n

    They must be connected in some way to the project-level package.json file. This doesn't matter in the typical workspace setup because there's usually a single worktree defined in the project-level package.json, but if you try to setup nested workspaces then you must make sure that the nested worktree is defined as a valid workspace of its parent worktree (otherwise Yarn won't find its correct parent folder).

    \n
  • \n
\n

Note that because worktrees are defined with an otherwise regular package.json file, they also are valid workspaces themselves. If they're named, other workspaces will be able to properly cross-reference them.

\n

What does it mean to be a workspace?

\n

Workspaces have two important properties:

\n
    \n
  • \n

    Only the dependencies depended upon by a workspace can be accessed. Said another way, we strictly enforce your workspaces dependencies. Doing this allows to cleanly decouple projects from one another, since you don't have to merge all their dependencies in one huge unmaintainable list. We still provide tools to manage dependencies from multiple workspaces at once, but they need to be explicitly used and offer a better integration (for example yarn add can make suggestions for your new dependencies based on what other workspaces use, but you can override them).

    \n
  • \n
  • \n

    If the package manager was to resolve a range that a workspace could satisfy, it will prefer the workspace resolution over the remote resolution if possible. This is the pillar of the monorepo approach: rather than using the remote packages from the registry, your project packages will be interconnected and will use the code stored within your repository.

    \n
  • \n
\n

Workspace ranges (workspace:)

\n

While Yarn automatically picks workspace resolutions when they match, there are times where you absolutely don't want to risk using a package from the remote registry even if the versions don't match (for example if your project isn't actually meant to be published and you just want to use the workspaces to better compartiment your code).

\n

For those use cases, Yarn now supports a new resolution protocol starting from the v2: workspace:. When this protocol is used Yarn will refuse to resolve to anything else than a local workspace. This range protocol has two flavors:

\n
    \n
  • If a semver range, it will select the workspace matching the specified version.
  • \n
  • If a project-relative path, it will select the workspace that match this path (experimental).
  • \n
\n

Note that the second flavor is experimental and we advise against using it for now, as some details might change in the future. Our current recommendation is to use workspace:*, which will almost always do what you expect.

\n

Publishing workspaces

\n

When a workspace is packed into an archive (whether it's through yarn pack or one of the publish commands like yarn npm publish), we dynamically replace any workspace: dependency by:

\n
    \n
  • The corresponding version in the target workspace (if you use * or a project-relative path)
  • \n
  • The associated semver range (for any other range type)
  • \n
\n

So for example, if we assume we have three workspaces whose current version is 1.5.0, the following:

\n
{\n  \"dependencies\": {\n    \"foo\": \"workspace:*\",\n    \"bar\": \"workspace:^1.2.3\",\n    \"baz\": \"workspace:path/to/baz\"\n  }\n}
\n

Will be transformed into:

\n
{\n  \"dependencies\": {\n    \"foo\": \"1.5.0\",\n    \"bar\": \"^1.2.3\",\n    \"baz\": \"1.5.0\"\n  }\n}
\n

This feature allows you to not have to depend on something else than your local workspaces, while still being able to publish the resulting packages to the remote registry without having to run intermediary publish steps - your consumers will be able to use your published workspaces as any other package, still benefiting from the guarantees semver offers.

\n

Yarn Workspaces vs Lerna

\n

Despite the appearances, the Yarn workspaces and Lerna don't compete. In fact, Lerna will uses Yarn's workspaces if possible. In a sense, you can see Lerna as a high-level layer on top of the low-level Yarn implementation.

","frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/103/path---cli-node-90-e-57f-yDy4bzEPj1SVpBBJhPHLIT93M.json b/docs/static/d/103/path---cli-node-90-e-57f-yDy4bzEPj1SVpBBJhPHLIT93M.json new file mode 100644 index 000000000000..276a5c95e04d --- /dev/null +++ b/docs/static/d/103/path---cli-node-90-e-57f-yDy4bzEPj1SVpBBJhPHLIT93M.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run node with the hook already setup.

\n

Usage

\n
$> yarn node [... args]
\n

Details

\n

This command simply runs Node. It also makes sure to call it in a way that's\ncompatible with the current project (for example, on PnP projects the\nenvironment will be setup in such a way that PnP will be correctly injected into\nthe environment).

\n

The Node process will use the exact same version of Node as the one used to run\nYarn itself, which might be a good way to ensure that your commands always use a\nconsistent Node version.

\n

Examples

\n

Run a Node script\n:

\n
yarn node ./my-script.js
","frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/124/path---features-constraints-306-a6a-DnOgf7YlCFpipLvQXPGxyYKT54.json b/docs/static/d/124/path---features-constraints-306-a6a-DnOgf7YlCFpipLvQXPGxyYKT54.json new file mode 100644 index 000000000000..196b669e5f56 --- /dev/null +++ b/docs/static/d/124/path---features-constraints-306-a6a-DnOgf7YlCFpipLvQXPGxyYKT54.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"
\n

Experimental

\n

This feature is still incubating, and its exact API might change from a release to the next. It means it's the perfect time for you to get involved and let us hear your feedback!

\n
\n

Constraints are a solution to a very basic need: I have a lot of workspaces, and I need to make sure they use the same version of their dependencies. Or that they don't depend on a specific package. Or that they use a specific type of dependency. Anyway, you see the point: whatever is the exact logic, my goal is the same; I want to automatically enforce some kind of rule across all my workspaces. That's exactly what constraints allow you to do.

\n

Creating a constraint

\n

Constraints are created by adding a constraints.pro file at the root of your project (repository). The .pro extension might leave you perplex: this is because constraints aren't written in JavaScript (!) but rather in Prolog, a fact-based rule engine. The goal of this section isn't to teach you Prolog (good tutorials already exist, such as Learn Prolog in Y Minutes),\nbut rather to show you why we chose it and the value it brings.

\n

As we mentioned, Prolog is a fact-based engine. It starts with a list of facts that are always true, and a list of predicates that basically read as \"predicate f(X) is true if u(X) and v(X) are both true\". By computing for which values of X are u(X) and v(X) true, Prolog is able to automatically compute the list of values for which f(X) would be true. This is particularly useful for constraints, because it allows you to write very simple but powerful rules that have the ability to affect all your workspaces in very few lines.

\n

Going back to the constraint engine, the facts are the definitions created by the package manager (such as \"fact: the root workspace depends on Lodash version 4.4.2 in devDependencies\"), and the predicates are the set of rules that you want to enforce across your project (check below for some recipes).

\n

Query predicate

\n

The following predicates provide information about the current state of your project and are meant to be used in the dependencies of your own rules (check the recipes for examples how to use them in practice). Note that the /<number> syntax listed at the end simply is the predicate arity (number of arguments it takes).

\n

The notation on this page uses -, + and ? as prefix for the predicate parameters. These values are used commonly in prolog documentation and mean

\n
    \n
  • +: this value is considered input and must be instantiated
  • \n
  • -: this value is considered output and will be instantiated by the predicate, though you can provide a value to verify that the value matches the predicate
  • \n
  • ?: this value can be instantiated or not, both will work
  • \n
\n

dependency_type/1

\n
dependency_type(\n  -DependencyType\n).
\n

True for only three values: dependencies, devDependencies and peerDependencies.

\n

workspace/1

\n
workspace(\n  -WorkspaceCwd\n).
\n

True if the workspace described by the specified WorkspaceCwd exists.

\n

workspace_ident/2

\n
workspace_ident(\n  ?WorkspaceCwd,\n  ?WorkspaceIdent\n).
\n

True if the workspace described by the specified WorkspaceCwd exists and if it has the specified WorkspaceIdent.

\n

workspace_version/2

\n
workspace_version(\n  ?WorkspaceCwd,\n  ?WorkspaceVersion\n).
\n

True if the workspace described by the specified WorkspacedCwd exists and if it has the specified WorkspaceVersion.

\n

workspace_has_dependency/4

\n
workspace_has_dependency(\n  ?WorkspaceCwd,\n  ?DependencyIdent,\n  ?DependencyRange,\n  ?DependencyType\n).
\n

True if the workspace described by the specified WorkspaceCwd depends on the dependency described by the specified DependencyIdent and DependencyRange combination in the dependencies block of the given DependencyType.

\n

workspace_field/3

\n
workspace_field(\n  +WorkspaceCwd,\n  +FieldPath,\n  -FieldValue\n).
\n

True if the workspace described by the WorkspaceCwd has the given FieldValue in the manifest at FieldPath.

\n

The FieldPath can target properties of properties via . notation, e.g. a FieldPath of 'publishConfig.registry' will set FieldValue to the value of the registry inside publishConfig.

\n

Constraint predicates

\n

The following predicates will affect the behavior of the yarn constraints check and yarn constraints fix commands.

\n

The parameters to the predicates are prefixed with + and -. These have the same meaning as in the query predicates. In this context they mean

\n
    \n
  • - These are the output, they will not have a value when the predicate is invoked and the predicate must ensure a value is set
  • \n
  • + These are the input, they will already have a value when the predicate is invoked
  • \n
\n

gen_enforced_dependency/4

\n
gen_enforced_dependency(\n  +WorkspaceCwd,\n  -DependencyIdent,\n  -DependencyRange,\n  +DependencyType\n).
\n

The gen_enforced_dependency rule offers a neat way to inform the package manager that a specific workspace MUST either depend on a specific range of a specific dependency (if DependencyRange is non-null) or not depend at all on the dependency (if DependencyRange is null) in the DependencyType dependencies block.

\n
    \n
  • This predicate allows the package manager to autofix the problems.
  • \n
\n

gen_invalid_dependency/4

\n
gen_invalid_dependency(\n  +WorkspaceCwd,\n  -DependencyIdent,\n  +DependencyType,\n  -Reason\n).
\n

The gen_invalid_dependency predicate is used to inform the package manager that a specific workspace cannot depend on its current version of the package defined by DependencyIdent in the DependencyType dependencies, the Reason parameter being offered as a way to express why the dependency is invalid.

\n

Contrary to gen_enforced_dependency, gen_invalid_dependency doesn't allow the package manager to autofix the problem. This makes gen_invalid_dependency suitable in case where the right fix would be ambiguous, and where the intervention of a human operator would be required (for example when two workspaces depend on two different versions of a same package).

\n
    \n
  • The errors reported by this predicate cannot be auto-fixed
  • \n
  • The reason parameter can be any string of your liking
  • \n
\n

gen_enforced_field/3

\n
gen_enforced_field(\n  +WorkspaceCwd,\n  -FieldPath,\n  -FieldValue\n).
\n

The gen_enforced_field predicate tells the package manager that a specific workspace must have the given FieldValue in the manifest via the FieldPath. A FieldValue of null means the field has to be absent.

\n

Constraint recipes

\n

The following constraints are a good starting point to figure out how to write your own rules. If you build one that you think would be a good fit for this section, open a PR and we'll add them here!

\n
\n

Quick note about the Prolog syntax

\n

Be aware that in prolog X :- Y basically means \"X is true for each Y that's true\". Similarly, know that UpperCamelCase names are variables that get \"replaced\" by every compatible value possible. Finally, the special variable name _ simply discards the parameter value.

\n
\n

Prevent all workspaces from depending on a specific package

\n
gen_enforced_dependency(WorkspaceCwd, 'tslib', null, DependencyType) :-\n  workspace_has_dependency(WorkspaceCwd, 'tslib', _, DependencyType).
\n

We define a rule that says that for each dependency of each workspace in our project, if this dependency name is tslib, then it exists a similar rule of the gen_enforced_dependency type that forbids the workspace from depending on tslib. This will cause the package manager to see that the rule isn't met, and autofix it when requested by removing the dependency from the workspace.

\n

Prevent two workspaces from depending on conflicting versions of a same dependency

\n
gen_invalid_dependency(WorkspaceCwd, DependencyIdent, DependencyType, 'This dependency conflicts with another one from another workspace') :-\n  workspace_has_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType),\n  workspace_has_dependency(_, DependencyIdent, DependencyRange2, _),\n  DependencyRange \\= DependencyRange2.
\n

We define a gen_invalid_dependency rule that is true for each dependency of each package (first workspace_has_dependency) if it also exists another dependency of another package (second workspace_has_dependency) that has the same name but a different range (\\= operator).

\n

Force all workspace dependencies to be made explicit

\n
gen_enforced_dependency(WorkspaceCwd, DependencyIdent, 'workspace:*', DependencyType) :-\n  workspace_ident(_, DependencyIdent),\n  workspace_has_dependency(WorkspaceCwd, DependencyIdent, _, DependencyType).
\n

We define a gen_enforced_dependency that requires the dependency range workspace:* to be used if the dependency name is also the name of a valid workspace. The final workspace_has_dependency check is there to ensure that this rule is only applied on workspace that currently depend on the specified workspace in the first place (if it wasn't there, the rule would instead force all workspaces to depend on one another).

","frontmatter":{"path":"/features/constraints","title":"Constraints"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/135/path---features-protocols-a-2-d-d3b-C16SsAtF8IwTIVOugIcRMBUiI.json b/docs/static/d/135/path---features-protocols-a-2-d-d3b-C16SsAtF8IwTIVOugIcRMBUiI.json new file mode 100644 index 000000000000..c728e26f5640 --- /dev/null +++ b/docs/static/d/135/path---features-protocols-a-2-d-d3b-C16SsAtF8IwTIVOugIcRMBUiI.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The following protocols can be used by any dependency entry listed in the dependencies or devDependencies fields. While they work regardless of the context we strongly recommend you to only use semver ranges on published packages as they are the one common protocol whose semantic is clearly defined across all package managers.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameExampleDescription
Semver^1.2.3Resolves from the default registry
TaglatestResolves from the default registry
Npm aliasnpm:name@...Resolves from the npm registry
Github (public)github:foo/barDownloads a public package from Github
Filefile:./my-packageCopies the location into the cache
Linklink:./my-folderCreates a link to the ./my-folder folder (ignore dependencies)
Portalportal:./my-folderCreates a link to the ./my-folder folder (follow dependencies)
\n\n

The link: protocol is meant to link a package name to a folder on the disk - any folder. For example one perfect use case for the link: protocol is to map your src folder to a clearer name that you can then use from your Node applications without having to use relative paths (for example you could link my-app to link:./src so that you can call require('my-app') from any file within your application).

\n

Because such destination folders typically don't contain package.json, the link: protocol doesn't even try to read them. It can cause problems when you want to link an identifier to a different package on the disk (similar to what yarn link does), because then the transitive dependencies aren't resolved.

\n

In order to solve this use case, the new portal: protocol available in the v2 opens a portal to any package located on your disk. Because portals are meant to only target packages they can leverage the information from the package.json files listed within their targets to properly resolve transitive dependencies.

","frontmatter":{"path":"/features/protocols","title":"Protocols"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/151/path---cli-cache-clean-b-66-4c3-G0Oy5EXE5ZOcH3Hc8rVfw2MGgn0.json b/docs/static/d/151/path---cli-cache-clean-b-66-4c3-G0Oy5EXE5ZOcH3Hc8rVfw2MGgn0.json new file mode 100644 index 000000000000..934865cbd48e --- /dev/null +++ b/docs/static/d/151/path---cli-cache-clean-b-66-4c3-G0Oy5EXE5ZOcH3Hc8rVfw2MGgn0.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Remove the unused packages from the cache.

\n

Usage

\n
$> yarn cache clean [--dry-run] [--json]
\n

Details

\n

This command will locate the files that aren't used in the current project, and\nremove them (unless --dry-run is set).

\n

In order to detect whether a file is used or not the command will run a partial\ninstall where it will paint the \"fetched\" packages on top of actually\ndownloading them. Each package in the cache that hasn't been painted during the\ninstall will be reported as unused.

\n

One quirk of this system is that yarn cache clean cannot be used directly if\nyour cache is used by multiple projects, as it won't be able to detect the files\nbeing used by other projects than the current one. The best way to support\nmultiple projects with a single mirror is to use the --dry-run and --json\nflags in order to get the list of files that aren't used by one unique project.\nAfter running this command on all your projects, you'll just have to remove the\nintersection of all those file sets as they'll be guaranteed not to be used by\nany project.

\n

Examples

\n

Remove all the unused cache files from the current project\n:

\n
yarn cache clean
\n

Obtain the list of unused files from the current project\n:

\n
yarn cache clean --dry-run --json
","frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/157/path---cli-up-6-a-1-a9e-oqLgyhmFjCSYDLhIl6nMtkJmqQ.json b/docs/static/d/157/path---cli-up-6-a-1-a9e-oqLgyhmFjCSYDLhIl6nMtkJmqQ.json new file mode 100644 index 000000000000..0d39a7733ba2 --- /dev/null +++ b/docs/static/d/157/path---cli-up-6-a-1-a9e-oqLgyhmFjCSYDLhIl6nMtkJmqQ.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Upgrade dependencies accross the project.

\n

Usage

\n
$> yarn up [... packages] [-i,--interactive] [-v,--verbose] [-E,--exact] [-T,--tilde]
\n

Details

\n

This command upgrades a list of packages to their latest available version\nacross the whole project (regardless of whether they're part of dependencies\nor devDependencies - peerDependencies won't be affected). This is a\nproject-wide command: all workspaces will be upgraded in the process. Note that\nbecause such dependencies are expected to be non-upgradable, dependencies\nrelying on non-semver ranges won't be updated (this includes git dependencies\nthat use a commit hash).

\n

If -i,--interactive is set (or if the preferInteractive settings is toggled\non) the command will offer various choices, depending on the detected upgrade\npaths. Some upgrades require this flag in order to resolve ambiguities.

\n

The -E,--exact and -T,--tilde options have the same meaning as in the add\ncommand (they change the modifier used when the range is missing or a tag, and\nare ignored when the range is explicitly set).

\n

Examples

\n

Upgrade all instances of lodash to the latest release\n:

\n
yarn up lodash
\n

Upgrade all instances of lodash to the latest release, but ask confirmation for\neach\n:

\n
yarn up lodash -i
\n

Upgrade all instances of lodash to 1.2.3\n:

\n
yarn up lodash@1.2.3
","frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/165/path---cli-install-7-b-3-481-2XTKNmbLIr9t9PiqpXSW2oE8fWE.json b/docs/static/d/165/path---cli-install-7-b-3-481-2XTKNmbLIr9t9PiqpXSW2oE8fWE.json new file mode 100644 index 000000000000..77577c827f2a --- /dev/null +++ b/docs/static/d/165/path---cli-install-7-b-3-481-2XTKNmbLIr9t9PiqpXSW2oE8fWE.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Install the project dependencies.

\n

Usage

\n
$> yarn install [--frozen-lockfile] [--inline-builds]
\n

Details

\n

This command setup your project if needed. The installation is splitted in four\ndifferent steps that each have their own characteristics:

\n
    \n
  • \n

    Resolution: First the package manager will resolve your dependencies. The\nexact way a dependency version is privileged over another isn't standardized\noutside of the regular semver guarantees. If a package doesn't resolve to what\nyou would expect, check that all dependencies are correctly declared (also\ncheck our website for more information: ).

    \n
  • \n
  • \n

    Fetch: Then we download all the dependencies if needed, and make sure that\nthey're all stored within our cache (check the value of cache-folder in\nyarn config to see where are stored the cache files).

    \n
  • \n
  • \n

    Link: Then we send the dependency tree information to internal plugins\ntasked from writing them on the disk in some form (for example by generating\nthe .pnp.js file you might know).

    \n
  • \n
  • \n

    Build: Once the dependency tree has been written on the disk, the package\nmanager will now be free to run the build scripts for all packages that might\nneed it, in a topological order compatible with the way they depend on one\nanother.

    \n
  • \n
\n

Note that running this command is not part of the recommended workflow. Yarn\nsupports zero-installs, which means that as long as you store your cache and\nyour .pnp.js file inside your repository, everything will work without requiring\nany install right after cloning your repository or switching branches.

\n

If the --frozen-lockfile option is used, Yarn will abort with an error exit\ncode if anything in the install artifacts (yarn.lock, .pnp.js, ...) was to\nbe modified.

\n

If the --inline-builds option is used, Yarn will verbosely print the output of\nthe build steps of your dependencies (instead of writing them into individual\nfiles). This is likely useful mostly for debug purposes only when using\nDocker-like environments.

\n

Examples

\n

Install the project\n:

\n
yarn install
","frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/183/path---cli-add-bc-7-c81-RQ4oJP2shWxglXXibY0gl7OCM.json b/docs/static/d/183/path---cli-add-bc-7-c81-RQ4oJP2shWxglXXibY0gl7OCM.json deleted file mode 100644 index 86859f7afdc3..000000000000 --- a/docs/static/d/183/path---cli-add-bc-7-c81-RQ4oJP2shWxglXXibY0gl7OCM.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Add dependencies to the project.

\n

Usage

\n
$> yarn add [... packages] [-E,--exact] [-T,--tilde] [-D,--dev] [-P,--peer] [-i,--interactive] [-q,--quiet] [--cached]\n
\n

Details

\n

This command adds a package to the package.json for the nearest workspace.

\n
    \n
  • \n

    The package will by default be added to the regular dependencies field, but\nthis behavior can be overriden thanks to the -D,--dev flag (which will cause\nthe dependency to be added to the devDependencies field instead) and the\n-P,--peer flag (which will do the same but for peerDependencies).

    \n
  • \n
  • \n

    If the added package doesn't specify a range at all its latest tag will be\nresolved and the returned version will be used to generate a new semver range\n(using the ^ modifier by default, or the ~ modifier if -T,--tilde is\nspecified, or no modifier at all if -E,--exact is specified). Two exceptions\nto this rule: the first one is that if the package is a workspace then its\nlocal version will be used, and the second one is that if you use -P,--peer\nthe default range will be * and won't be resolved at all.

    \n
  • \n
  • \n

    If the added package specifies a tag range (such as latest or rc), Yarn\nwill resolve this tag to a semver version and use that in the resulting\npackage.json entry (meaning that yarn add foo@latest will have exactly the\nsame effect as yarn add foo).

    \n
  • \n
\n

If the -i,--interactive option is used (or if the preferInteractive settings\nis toggled on) the command will first try to check whether other workspaces in\nthe project use the specified package and, if so, will offer to reuse them.

\n

If the --cached option is used, Yarn will preferably reuse the highest version\nalready used somewhere within the project, even if through a transitive\ndependency.

\n

For a compilation of all the supported protocols, please consult the dedicated\npage from our website: .

\n

Examples

\n

Add a regular package to the current workspace\n:

\n
yarn add lodash\n
\n

Add a specific version for a package to the current workspace\n:

\n
yarn add lodash@1.2.3\n
","frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/200/path---cli-constraints-check-fe-2-efb-2IetZJ1XwbfsrzTNvmAhb0jH0w.json b/docs/static/d/200/path---cli-constraints-check-fe-2-efb-2IetZJ1XwbfsrzTNvmAhb0jH0w.json new file mode 100644 index 000000000000..04afb693a304 --- /dev/null +++ b/docs/static/d/200/path---cli-constraints-check-fe-2-efb-2IetZJ1XwbfsrzTNvmAhb0jH0w.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Check that the project constraints are met.

\n

Usage

\n
$> yarn constraints check 
\n

Details

\n

This command will run constraints on your project and emit errors for each one\nthat is found but isn't met. If any error is emitted the process will exit with\na non-zero exit code.

\n

For more information as to how to write constraints, please consult our\ndedicated page on our website: .

\n

Examples

\n

Check that all constraints are satisfied\n:

\n
yarn constraints check
","frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/217/path---advanced-lexicon-032-7c6-a59iRUVttCfHRgUx6xMHpnZwsGg.json b/docs/static/d/217/path---advanced-lexicon-032-7c6-a59iRUVttCfHRgUx6xMHpnZwsGg.json deleted file mode 100644 index 47adf2590abe..000000000000 --- a/docs/static/d/217/path---advanced-lexicon-032-7c6-a59iRUVttCfHRgUx6xMHpnZwsGg.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"\n

Descriptor

\n

A descriptor is a combination of a package name (for example lodash) and a package range (for example ^1.0.0). Descriptors are used to identify a set of packages rather than one unique package.

\n

Fetcher

\n

Fetchers are the components tasked from extracting the full package data from a reference. For example, the npm fetcher would download the package tarballs from the npm registry.

\n

See also: Architecture

\n

Linker

\n

Linkers are the components that consume both a dependency tree and a store of package data, and generate in return disk artifacts specific to the environment they target. For example, the Plug'n'Play linker generates a single .pnp.js file.

\n

See also: Architecture

\n

Locator

\n

A locator is a combination of a package name (for example lodash) and a package reference (for example 1.2.3). Locators are used to identify a single unique package (interestingly, all valid locators also are valid descriptors).

\n

Manifest

\n

A manifest is a package.json file.

\n

Plugin

\n

Plugins are a new concept introduced in Yarn 2+. Through the use of plugins Yarn can be extended and made even more powerful - whether it's through the addition of new resolvers, fetchers, or linkers.

\n

See also: Plugins

\n

Plug'n'Play

\n

Plug'n'Play is an alternative installation strategy that, instead of generating the typical node_modules directories, generate one single file that is then injected into Node to let it know where to find the installed packages. Starting from the v2, Plug'n'Play became the default strategy for Javascript projects.

\n

See also: Plug'n'Play

\n

PnP

\n

See Plug'n'Play

\n

Project

\n

The term project is used to encompass all the worktrees that belong to the same dependency tree.

\n

See also: Workspaces

\n

Range

\n

A range is a string that, when combined with a package name, can be used to select multiple versions of a single package. Ranges typically follow semver, but can use any of the supported Yarn protocols.

\n

See also: Protocols

\n

Reference

\n

A reference is a string that, when combined with a package name, can be used to select one single version of a single package. References typically follow semver, but can use any of the supported Yarn protocols.

\n

See also: Protocols

\n

Resolver

\n

Resolvers are the components tasked from converting descriptors into locators, and extracting the package manifests from the package locators. For example, the npm resolver would check what versions are available on the npm registry and return all the candidates that satisfy the semver requirements, then would query the npm registry to fetch the full metadata associated to the selected resolution.

\n

See also: Architecture

\n

Scope

\n

Scopes are a term linked inherited from the npm registry; they are used to describe a set of packages that all belong to the same entity. For example, all the Yarn packages related to the v2 belong to the berry scope on the npm registry. Scopes are traditionally prefixed with the @ symbol.

\n

Yarn

\n

Yarn is a command line tool used to manage programming environments. Written in Javascript, it is mostly used along with others Javascript projects, but has capabilities that make it suitable to be used in various situations.

\n

Workspace

\n

Generally speaking, workspaces are a Yarn features used to work on multiple projects stored within the same repository.

\n

In the context of Yarn's vocabulary, workspaces are packages that are of a single project.

\n

See also: Workspaces

\n

Worktree

\n

A worktree is a private workspace that adds new child workspaces to the current project.

\n

See also: Workspaces

\n

Zero-Install

\n

See also: Zero-Install

","frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/225/path---cli-constraints-fix-ace-b88-yjZebVruvvZmttF1IER0HJ8AL4.json b/docs/static/d/225/path---cli-constraints-fix-ace-b88-yjZebVruvvZmttF1IER0HJ8AL4.json deleted file mode 100644 index c0c0056dec28..000000000000 --- a/docs/static/d/225/path---cli-constraints-fix-ace-b88-yjZebVruvvZmttF1IER0HJ8AL4.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Make the project constraint-compliant if possible.

\n

Usage

\n
$> yarn constraints fix \n
\n

Details

\n

This command will run constraints on your project and try its best to\nautomatically fix any error it finds. If some errors cannot be automatically\nfixed (in particular all errors triggered by gen_invalid_dependency rules) the\nprocess will exit with a non-zero exit code, and an install will be\nautomatically be ran otherwise.

\n

For more information as to how to write constraints, please consult our\ndedicated page on our website: .

\n

Examples

\n

Automatically fix as many things as possible in your project\n:

\n
yarn constraints fix\n
","frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/235/path---cli-run-370-a9b-mFCnpAoABlOqjo0iY75CBe7gTtQ.json b/docs/static/d/235/path---cli-run-370-a9b-mFCnpAoABlOqjo0iY75CBe7gTtQ.json deleted file mode 100644 index c22484c11af9..000000000000 --- a/docs/static/d/235/path---cli-run-370-a9b-mFCnpAoABlOqjo0iY75CBe7gTtQ.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a script defined in the package.json.

\n

Usage

\n
$> yarn run <name> [... args] [-T,--top-level]\n
\n

Details

\n

This command will run a tool. The exact tool that will be executed will depend\non the current state of your workspace:

\n
    \n
  • \n

    If the scripts field from your local package.json contains a matching script\nname, its definition will get executed.

    \n
  • \n
  • \n

    Otherwise, if one of the local workspace's dependencies exposes a binary with\na matching name, this binary will get executed.

    \n
  • \n
  • \n

    Otherwise, if the specified name contains a colon character and if one of the\nworkspaces in the project contains exactly one script with a matching name,\nthen this script will get executed.

    \n
  • \n
\n

Whatever happens, the cwd of the spawned process will be the workspace that\ndeclares the script (which makes it possible to call commands cross-workspaces\nusing the third syntax).

\n

Examples

\n

Run the tests from the local workspace\n:

\n
yarn run test\n
\n

Same thing, but without the \"run\" keyword\n:

\n
yarn test\n
","frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/245/path---advanced-contributing-e-1-d-e74-sllanT3onY0cGtxIFTELYCzw.json b/docs/static/d/245/path---advanced-contributing-e-1-d-e74-sllanT3onY0cGtxIFTELYCzw.json deleted file mode 100644 index 40495b6b8810..000000000000 --- a/docs/static/d/245/path---advanced-contributing-e-1-d-e74-sllanT3onY0cGtxIFTELYCzw.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"

Thanks for being here! Yarn gives a lot of importance to being a community project, and we rely on your help as much as you rely on ours. In order to help you help us we've invested in an infra and documentation that should make contributing to Yarn very easy. If you have any feedback on what we could improve, please open an issue to discuss it!

\n

Building the bundle

\n

The standard bundle is built using the following command from anywhere in the repository:

\n
$> yarn build:cli\n
\n

The standard bundle uses a predefined set of plugins defined in packages/berry-cli/package.json. If your PR aims to add a new plugin to the standard build you'll need to add it there (note that this decision should be left to core maintainers - please don't modify this settings yourself).

\n

For development purposes, you can build your plugin as part of your local bundle by using the --plugin option in the command line:

\n
$> yarn build:cli --plugin @berry/typescript\n
\n

Testing your code

\n

We currently have two testsuites, built for different purposes. The first one are unit tests and can be triggered by running the following command from anywhere within the repository:

\n
$> yarn test:unit\n
\n

Those unit tests can typically be found in the packages/*/tests directory.

\n

While various subcomponents are tested via unit tests (for example the portable shell library), Yarn itself isn't tested through unit tests - we instead rely on integration tests which are much closer from our users setup. Those tests can be triggered through the following command (again, from anywhere within the repository):

\n
$> yarn test:integration\n
\n

In both cases the underlying framework we use is Jest, which means that you can filter the tests you want to run by using the -t flag (or simply the file path):

\n
$> yarn test:unit berry-shell\n$> yarn test:integration -t 'it should correctly install a single dependency that contains no sub-dependencies'\n
\n

Don't forget that your PR will require all the tests to pass before being merged!

\n

Formatting your code

\n

Before submitting your code for review, please make sure your code is properly formatted by using the following command from anywhere within the repository:

\n
$> yarn test:lint\n
\n

We use ESLint to check this, so using the --fix flag will cause ESLint to attempt to automatically correct most errors that might be left in your code:

\n
$> yarn test:lint --fix\n
","frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/288/path---getting-started-usage-bdd-b6d-aMhjkKHcayBxbGnH6VXKGK4zQw.json b/docs/static/d/288/path---getting-started-usage-bdd-b6d-aMhjkKHcayBxbGnH6VXKGK4zQw.json new file mode 100644 index 000000000000..9ed78aad4819 --- /dev/null +++ b/docs/static/d/288/path---getting-started-usage-bdd-b6d-aMhjkKHcayBxbGnH6VXKGK4zQw.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

Now that you have Yarn installed, you can start using Yarn. Here are some of the most common commands you'll need.

\n

Starting a new project

\n
$> yarn init
\n

Adding a dependency

\n
$> yarn add [package]\n$> yarn add [package]@[version]\n$> yarn add [package]@[tag]
\n

Adding a dependency to different categories of dependencies

\n

Add to respectively devDependencies or peerDependencies:

\n
$> yarn add [package] --dev\n$> yarn add [package] --peer
\n

Upgrading a dependency

\n
$> yarn up [package]\n$> yarn up [package]@[version]\n$> yarn up [package]@[tag]
\n

Removing a dependency

\n
$> yarn remove [package]
\n

Installing all the dependencies of project

\n
$> yarn
\n

or

\n
$> yarn install
","frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file diff --git a/docs/static/d/299/path---cli-plugin-dl-df-1-73c-8ocU44CYSs3ltXqZFomu8Xa0VUI.json b/docs/static/d/299/path---cli-plugin-dl-df-1-73c-8ocU44CYSs3ltXqZFomu8Xa0VUI.json deleted file mode 100644 index 5fb9c1ec4d83..000000000000 --- a/docs/static/d/299/path---cli-plugin-dl-df-1-73c-8ocU44CYSs3ltXqZFomu8Xa0VUI.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List the active plugins.

\n

Usage

\n
$> yarn plugin dl [name] [-l,--list]\n
\n

Details

\n

This command download the specified plugin from its remote location and updates\nthe configuration to reference it in further CLI invocations.

\n

If the -l,--list option is present, Yarn will print the list of plugins\navailable from the official Yarn repository. Those plugins are not mandatory or\nnecessarily better than the ones provided by the community.

\n

Examples

\n

Download and activate the \"@berry/plugin-exec\" plugin\n:

\n
yarn plugin dl @berry/plugin-exec\n
\n

Download and activate a community plugin\n:

\n
yarn plugin dl https://example.org/path/to/plugin.js\n
\n

List the official plugins\n:

\n
yarn plugin dl --list\n
","frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/304/path---getting-started-usage-bdd-b6d-RwNnRaGWlaugtotP9VvbaOlsE.json b/docs/static/d/304/path---getting-started-usage-bdd-b6d-RwNnRaGWlaugtotP9VvbaOlsE.json deleted file mode 100644 index f21bdc6a2f84..000000000000 --- a/docs/static/d/304/path---getting-started-usage-bdd-b6d-RwNnRaGWlaugtotP9VvbaOlsE.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

Now that you have Yarn installed, you can start using Yarn. Here are some of the most common commands you'll need.

\n

Starting a new project

\n
$> yarn init\n
\n

Adding a dependency

\n
$> yarn add [package]\n$> yarn add [package]@[version]\n$> yarn add [package]@[tag]\n
\n

Adding a dependency to different categories of dependencies

\n

Add to respectively devDependencies or peerDependencies:

\n
$> yarn add [package] --dev\n$> yarn add [package] --peer\n
\n

Upgrading a dependency

\n
$> yarn up [package]\n$> yarn up [package]@[version]\n$> yarn up [package]@[tag]\n
\n

Removing a dependency

\n
$> yarn remove [package]\n
\n

Installing all the dependencies of project

\n
$> yarn\n
\n

or

\n
$> yarn install\n
","frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file diff --git a/docs/static/d/305/path---cli-bin-98-e-a94-e8ayx95pxTAEE3Axd9TFQ7PLRw.json b/docs/static/d/305/path---cli-bin-98-e-a94-e8ayx95pxTAEE3Axd9TFQ7PLRw.json new file mode 100644 index 000000000000..42478c37b8ab --- /dev/null +++ b/docs/static/d/305/path---cli-bin-98-e-a94-e8ayx95pxTAEE3Axd9TFQ7PLRw.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Get the path to a binary script.

\n

Usage

\n
$> yarn bin [name] [-v,--verbose]
\n

Details

\n

When used without arguments, this command will print the list of all the\nbinaries available in the current workspace. Adding the -v,--verbose flag will\ncause the output to contain both the binary name and the locator of the package\nthat provides the binary.

\n

When an argument is specified, this command will just print the path to the\nbinary on the standard output and exit. Note that the reported path may be\nstored within a zip archive.

\n

Examples

\n

List all the available binaries\n:

\n
yarn bin
\n

Print the path to a specific binary\n:

\n
yarn bin eslint
","frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/314/path---advanced-pnpify-29-f-6d2-pYeEYwSBJPYGXbdBAQMflIybHPA.json b/docs/static/d/314/path---advanced-pnpify-29-f-6d2-pYeEYwSBJPYGXbdBAQMflIybHPA.json deleted file mode 100644 index c963a6cecdb4..000000000000 --- a/docs/static/d/314/path---advanced-pnpify-29-f-6d2-pYeEYwSBJPYGXbdBAQMflIybHPA.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"

Motivation

\n

Plug'n'Play is, by design, compatible with all projects that only make use of the require API - whether it's require require.resolve, or createRequireFromPath. However, some projects like to reimplement the resolution themselves and aren't compatible by default with Plug'n'Play environments (unless they add some specific logic into their resolution). One such project is for example TypeScript, which doesn't natively supports Plug'n'Play yet in its tsc binary.

\n

PnPify

\n

PnPify is a tool designed to workaround this compatibility problem. It's not a perfect solution in that it brings its own set of caveats, but it's often good enough for most use cases. How it works is simple: when a non-PnP compliant project tries to access the node_modules directories (for example through readdir or readFile), PnPify intercepts those calls and converts them into calls to the PnP API. Then, based on the result, it simulates an actual filesystem for the underlying tool to use.

\n

Usage

\n

Add PnPify to your dependencies:

\n
$> yarn add @berry/pnpify\n
\n

Use pnpify to run the incompatible tool:

\n
$> yarn pnpify tsc\n
\n

That's all!

\n

Caveat

\n

Because PnPify doesn't try to do any kind of hoisting, relying exclusively on its fake filesystem might lead to subtle performance issues where, amongst other issues, one package would be instantiated more times than would be needed otherwise. This is only a problem for bundlers like Webpack; tools like tsc don't suffer from it, because they only need to know about the structural file content and don't actually instantiate the files.

\n

If you want to use PnP with a bundler that doesn't natively support it, we currently recommend you to use the dedicated plugins that we've provided: pnp-webpack-plugin for Webpack, or rollup-pnp-resolver for Rollup. Those plugins use the PnP API as it is, and thus don't suffer from this optimization problem.

","frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/318/path---cli-npm-publish-280-ac3-tiOkCLoGAuGIwGELNDcwKYapZs.json b/docs/static/d/318/path---cli-npm-publish-280-ac3-tiOkCLoGAuGIwGELNDcwKYapZs.json new file mode 100644 index 000000000000..3c4079ba6db4 --- /dev/null +++ b/docs/static/d/318/path---cli-npm-publish-280-ac3-tiOkCLoGAuGIwGELNDcwKYapZs.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Publish the active workspace to the npm registry.

\n

Usage

\n
$> yarn npm publish [--access ACCESS] [--tag TAG] [--tolerate-republish]
\n

Details

\n

This command will pack the active workspace into a fresh archive and upload it\nto the npm registry.

\n

The package will by default be attached to the latest tag on the registry, but\nthis behavior can be overriden by using the --tag option.

\n

Note that for legacy reasons scoped packages are by default published with an\naccess set to restricted (aka \"private packages\"). This requires you to\nregister for a paid npm plan. In case you simply wish to publish a public scoped\npackage to the registry (for free), just add the --access public flag. This\nbehavior can be enabled by default through the npmPublishAccess settings.

\n

Examples

\n

Publish the active workspace\n:

\n
yarn npm publish
","frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/323/path---cli-set-version-52-e-d8e-iKLeElxWp5rkRuBc914w2VSFRIE.json b/docs/static/d/323/path---cli-set-version-52-e-d8e-iKLeElxWp5rkRuBc914w2VSFRIE.json deleted file mode 100644 index d92f2fb24730..000000000000 --- a/docs/static/d/323/path---cli-set-version-52-e-d8e-iKLeElxWp5rkRuBc914w2VSFRIE.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Lock the Yarn version used by the project.

\n

Usage

\n
$> yarn set version <range> [--allow-rc] [--dry-run]\n
\n

Details

\n

This command will download a specific release of Yarn directly from the Yarn\nGithub repository, will store it inside your project, and will change the\nyarn-path settings from your project .yarnrc file to point to the new file.

\n

A very good use case for this command is to enforce the version of Yarn used by\nthe any single member of your team inside a same project - by doing this you\nensure that you have control on Yarn upgrades and downgrades (including on your\ndeployment servers), and get rid of most of the headaches related to someone\nusing a slightly different version and getting a different behavior than you.

\n

The command will by default only consider stable releases as valid candidates,\nbut releases candidates can be downloaded as well provided you add the\n--allow-rc flag or use an exact tag.

\n

Note that because you're on the v2 alpha trunk, running the command without\nparameter will always download the latest build straight from the repository.\nThis behavior will be tweaked near the release to only download stable releases\nonce more.

\n

Adding the --dry-run flag will cause Yarn not to persist the changes on the\ndisk.

\n

Examples

\n

Download the latest release from the Yarn repository\n:

\n
yarn set version latest\n
\n

Download the latest nightly release from the Yarn repository\n:

\n
yarn set version nightly\n
\n

Switch back to Yarn v1\n:

\n
yarn set version ^1\n
\n

Switch back to a specific release\n:

\n
yarn set version 1.14.0\n
","frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/325/path---cli-constraints-source-998-562-SJ11rkE3kht5Uh49V04AqU2oO4.json b/docs/static/d/325/path---cli-constraints-source-998-562-SJ11rkE3kht5Uh49V04AqU2oO4.json new file mode 100644 index 000000000000..11d39123a4d9 --- /dev/null +++ b/docs/static/d/325/path---cli-constraints-source-998-562-SJ11rkE3kht5Uh49V04AqU2oO4.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Print the source code for the constraints.

\n

Usage

\n
$> yarn constraints source [-v,--verbose]
\n

Details

\n

This command will print the Prolog source code used by the constraints engine.\nAdding the -v,--verbose flag will print the full source code, including the\nfact database automatically compiled from your workspaces manifests.

\n

Examples

\n

Prints the source code\n:

\n
yarn constraints source
\n

Print the source code and the fact database\n:

\n
yarn constraints source -v
","frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/34/path---cli-npm-publish-280-ac3-VQ2S6y6daFGsf52NULH0oUHJ5k.json b/docs/static/d/34/path---cli-npm-publish-280-ac3-VQ2S6y6daFGsf52NULH0oUHJ5k.json deleted file mode 100644 index fd1b3116a3e7..000000000000 --- a/docs/static/d/34/path---cli-npm-publish-280-ac3-VQ2S6y6daFGsf52NULH0oUHJ5k.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Send the workspace package to the npm registry.

\n

Usage

\n
$> yarn npm publish [--access ACCESS] [--tag TAG] [-i,--interactive]\n
\n

Details

\n

This command will pack the active workspace into a fresh archive and upload it\nto the npm registry.

\n

The package will by default be attached to the latest tag on the registry, but\nthis behavior can be overriden by using the --tag option.

\n

Note that for legacy reasons scoped packages are by default published with an\naccess set to restricted (aka \"private packages\"). This requires you to\nregister for a paid npm plan. In case you simply wish to publish a public scoped\npackage to the registry (for free), just add the --access public flag. This\nbehavior can be enabled by default through the npmPublishAccess settings.

\n

Examples

\n

Publish the active workspace\n:

\n
yarn npm publish\n
","frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/359/path---cli-add-bc-7-c81-PJflxpXsQMly74VYtgUuvU2Zo.json b/docs/static/d/359/path---cli-add-bc-7-c81-PJflxpXsQMly74VYtgUuvU2Zo.json new file mode 100644 index 000000000000..51a88e12b8e9 --- /dev/null +++ b/docs/static/d/359/path---cli-add-bc-7-c81-PJflxpXsQMly74VYtgUuvU2Zo.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Add dependencies to the project.

\n

Usage

\n
$> yarn add [... packages] [-E,--exact] [-T,--tilde] [-D,--dev] [-P,--peer] [-i,--interactive] [-q,--quiet] [--cached]
\n

Details

\n

This command adds a package to the package.json for the nearest workspace.

\n
    \n
  • \n

    The package will by default be added to the regular dependencies field, but\nthis behavior can be overriden thanks to the -D,--dev flag (which will cause\nthe dependency to be added to the devDependencies field instead) and the\n-P,--peer flag (which will do the same but for peerDependencies).

    \n
  • \n
  • \n

    If the added package doesn't specify a range at all its latest tag will be\nresolved and the returned version will be used to generate a new semver range\n(using the ^ modifier by default, or the ~ modifier if -T,--tilde is\nspecified, or no modifier at all if -E,--exact is specified). Two exceptions\nto this rule: the first one is that if the package is a workspace then its\nlocal version will be used, and the second one is that if you use -P,--peer\nthe default range will be * and won't be resolved at all.

    \n
  • \n
  • \n

    If the added package specifies a tag range (such as latest or rc), Yarn\nwill resolve this tag to a semver version and use that in the resulting\npackage.json entry (meaning that yarn add foo@latest will have exactly the\nsame effect as yarn add foo).

    \n
  • \n
\n

If the -i,--interactive option is used (or if the preferInteractive settings\nis toggled on) the command will first try to check whether other workspaces in\nthe project use the specified package and, if so, will offer to reuse them.

\n

If the --cached option is used, Yarn will preferably reuse the highest version\nalready used somewhere within the project, even if through a transitive\ndependency.

\n

For a compilation of all the supported protocols, please consult the dedicated\npage from our website: .

\n

Examples

\n

Add a regular package to the current workspace\n:

\n
yarn add lodash
\n

Add a specific version for a package to the current workspace\n:

\n
yarn add lodash@1.2.3
","frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/363/path---cli-policies-set-resolution-0-cf-ed5-WPqnlVNqHZJEz3kZkINphJNoEA.json b/docs/static/d/363/path---cli-policies-set-resolution-0-cf-ed5-WPqnlVNqHZJEz3kZkINphJNoEA.json new file mode 100644 index 000000000000..b4dc899475d5 --- /dev/null +++ b/docs/static/d/363/path---cli-policies-set-resolution-0-cf-ed5-WPqnlVNqHZJEz3kZkINphJNoEA.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Enforce a package resolution.

\n

Usage

\n
$> yarn policies set-resolution <descriptor> <resolution> [-s,--save]
\n

Details

\n

This command updates the resolution table so that descriptor is resolved by\nresolution.

\n

Note that by default this command only affect the current resolution table -\nmeaning that this \"manual override\" will disappear if you remove the lockfile,\nor if the package disappear from the table. If you wish to make the enforced\nresolution persist whatever happens, add the -s,--save flag which will also\nedit the resolutions field from your top-level manifest.

\n

Note that no attempt is made at validating that resolution is a valid\nresolution entry for descriptor.

\n

Examples

\n

Force all instances of lodash@^1.2.3 to resolve to 1.5.0\n:

\n
yarn set resolution lodash@^1.2.3 1.5.0
","frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/363/path---features-workspaces-a-1-b-90b-3PCjAGxQF8S3CBspZvrrgwbWpNU.json b/docs/static/d/363/path---features-workspaces-a-1-b-90b-3PCjAGxQF8S3CBspZvrrgwbWpNU.json deleted file mode 100644 index 1a8909ad78fb..000000000000 --- a/docs/static/d/363/path---features-workspaces-a-1-b-90b-3PCjAGxQF8S3CBspZvrrgwbWpNU.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The Yarn workspaces are a feature designed to make monorepos easy to use, solving one of the main use cases for yarn link in a more declarative way. In short, they allow multiple of your projects to live together in the same repository AND to cross-reference each others.

\n

First, some vocabulary: in the context of the workspace feature, a project is the whole directory tree making up your workspaces (often the repository itself). A workspace is a specific named package stored anywhere within the project. Finally, a worktree is the name given to private packages that list their own child workspaces. A project contains one or more worktrees, which may themselves contain any number of workspaces.

\n

How to declare a worktree?

\n

Worktrees are defined through the traditional package.json files. What makes them special is that they have the following properties:

\n
    \n
  • \n

    They have to be marked private: true. This requirement exists because workspaces are a client-only feature. The remote registries (such as the npm registry) have no idea what a workspace is, and neither should they. In order to prevent accidental pushes and information leaks workspaces must have their private flag set.

    \n
  • \n
  • \n

    They must declare a workspaces field which is expected to be an array of glob patterns that should be used to locate the workspaces that make up the worktree. For example, if you want all folders within the packages folder to be workspaces, just add workspaces/* to this array.

    \n
  • \n
  • \n

    They must be connected in some way to the project-level package.json file. This doesn't matter in the typical workspace setup because there's usually a single worktree defined in the project-level package.json, but if you try to setup nested workspaces then you must make sure that the nested worktree is defined as a valid workspace of its parent worktree (otherwise Yarn won't find its correct parent folder).

    \n
  • \n
\n

Note that because worktrees are defined with an otherwise regular package.json file, they also are valid workspaces themselves. If they're named, other workspaces will be able to properly cross-reference them.

\n

What does it mean to be a workspace?

\n

Workspaces have two important properties:

\n
    \n
  • \n

    Only the dependencies depended upon by a workspace can be accessed. Said another way, we strictly enforce your workspaces dependencies. Doing this allows to cleanly decouple projects from one another, since you don't have to merge all their dependencies in one huge unmaintainable list. We still provide tools to manage dependencies from multiple workspaces at once, but they need to be explicitly used and offer a better integration (for example yarn add can make suggestions for your new dependencies based on what other workspaces use, but you can override them).

    \n
  • \n
  • \n

    If the package manager was to resolve a range that a workspace could satisfy, it will prefer the workspace resolution over the remote resolution if possible. This is the pillar of the monorepo approach: rather than using the remote packages from the registry, your project packages will be interconnected and will use the code stored within your repository.

    \n
  • \n
\n

Workspace ranges (workspace:)

\n

While Yarn automatically picks workspace resolutions when they match, there are times where you absolutely don't want to risk using a package from the remote registry even if the versions don't match (for example if your project isn't actually meant to be published and you just want to use the workspaces to better compartiment your code).

\n

For those use cases, Yarn now supports a new resolution protocol starting from the v2: workspace:. When this protocol is used Yarn will refuse to resolve to anything else than a local workspace. This range protocol has two flavors:

\n
    \n
  • If a semver range, it will select the workspace matching the specified version.
  • \n
  • If a project-relative path, it will select the workspace that match this path (experimental).
  • \n
\n

Note that the second flavor is experimental and we advise against using it for now, as some details might change in the future. Our current recommendation is to use workspace:*, which will almost always do what you expect.

\n

Yarn Workspaces vs Lerna

\n

Despite the appearances, the Yarn workspaces and Lerna don't compete. In fact, Lerna will uses Yarn's workspaces if possible. In a sense, you can see Lerna as a high-level layer on top of the low-level Yarn implementation.

","frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/367/path---advanced-pnpify-29-f-6d2-NyYlzogwqTEDhPH4ksjY0IvmFs.json b/docs/static/d/367/path---advanced-pnpify-29-f-6d2-NyYlzogwqTEDhPH4ksjY0IvmFs.json new file mode 100644 index 000000000000..fbb095b679ca --- /dev/null +++ b/docs/static/d/367/path---advanced-pnpify-29-f-6d2-NyYlzogwqTEDhPH4ksjY0IvmFs.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"

Motivation

\n

Plug'n'Play is, by design, compatible with all projects that only make use of the require API - whether it's require, require.resolve, or createRequireFromPath. However, some projects like to reimplement the resolution themselves and aren't compatible by default with our environment (unless they add some specific lines into their resolution logic). One such project is for example TypeScript, which doesn't natively supports Plug'n'Play in its tsc binary at the time of this writing (#28289).

\n

PnPify

\n

PnPify is a tool designed to workaround these compatibility issues. It's not perfect in that it brings its own set of caveats and doesn't allow you to leverage all the features that PnP has to offer, but it's often good enough to unblock you until better solutions are implemented.

\n

How it works is simple: when a non-PnP-compliant project tries to access the node_modules directories (for example through readdir or readFile), PnPify intercepts those calls and converts them into calls to the PnP API. Then, based on the result, it simulates an actual filesystem for the underlying tool to use.

\n

Usage

\n
    \n
  1. \n

    Add PnPify to your dependencies:

    \n
    $> yarn add @berry/pnpify
    \n
  2. \n
  3. \n

    Use pnpify to run the incompatible tool:

    \n
    $> yarn pnpify tsc
    \n
  4. \n
\n

VSCode Support

\n

PnPify also is compatible with VSCode! Follow those steps to enable it:

\n
    \n
  1. \n

    Add PnPify to your dependencies:

    \n
    $> yarn add @berry/pnpify
    \n
  2. \n
  3. \n

    Run the following command, which will generate a new directory called tssdk:

    \n
    $> yarn pnpify --sdk
    \n
  4. \n
  5. \n

    For safety reason VSCode requires you to explicitly activate the custom TS settings:

    \n
      \n
    1. Press ctrl+shift+p in a TypeScript file
    2. \n
    3. Choose \"Select TypeScript Version\"
    4. \n
    5. Pick \"Use Workspace Version\"
    6. \n
    \n
  6. \n
\n

Your VSCode project is now configured to use the exact same version of TypeScript as the one you usually use, except that it will now be able to properly resolve the type definitions!

\n

Note that VSCode might ask you to do Step 4 again from time to time, but apart from that your experience should be the same as usual. Happy development!

\n

Caveat

\n
    \n
  • \n

    Due to how PnPify emulates the node_modules directory, some problems are to be expected with packages listing peer dependencies.

    \n
  • \n
  • \n

    Since the files don't actually exist on the disk, it will mess with watch mechanisms (modifications in files from your project will be properly picked up, but dependencies being added or removed might not be picked up by the engine). We're considering adding support for fs.watchFile even for dependencies, but it will require significant work.

    \n
  • \n
\n

Alternatives

\n","frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/384/path---cli-run-370-a9b-ODrNllhoEQpBesgBblxpyxYjlWs.json b/docs/static/d/384/path---cli-run-370-a9b-ODrNllhoEQpBesgBblxpyxYjlWs.json new file mode 100644 index 000000000000..7b08ffb095c2 --- /dev/null +++ b/docs/static/d/384/path---cli-run-370-a9b-ODrNllhoEQpBesgBblxpyxYjlWs.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a script defined in the package.json.

\n

Usage

\n
$> yarn run <name> [... args] [-T,--top-level]
\n

Details

\n

This command will run a tool. The exact tool that will be executed will depend\non the current state of your workspace:

\n
    \n
  • \n

    If the scripts field from your local package.json contains a matching script\nname, its definition will get executed.

    \n
  • \n
  • \n

    Otherwise, if one of the local workspace's dependencies exposes a binary with\na matching name, this binary will get executed.

    \n
  • \n
  • \n

    Otherwise, if the specified name contains a colon character and if one of the\nworkspaces in the project contains exactly one script with a matching name,\nthen this script will get executed.

    \n
  • \n
\n

Whatever happens, the cwd of the spawned process will be the workspace that\ndeclares the script (which makes it possible to call commands cross-workspaces\nusing the third syntax).

\n

Examples

\n

Run the tests from the local workspace\n:

\n
yarn run test
\n

Same thing, but without the \"run\" keyword\n:

\n
yarn test
","frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/388/path---features-zero-installs-899-701-d9FgJFaIIIMAXGffkfrCR8ZPpaI.json b/docs/static/d/388/path---features-zero-installs-899-701-d9FgJFaIIIMAXGffkfrCR8ZPpaI.json deleted file mode 100644 index d557e1fb4d4d..000000000000 --- a/docs/static/d/388/path---features-zero-installs-899-701-d9FgJFaIIIMAXGffkfrCR8ZPpaI.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

While not a feature in itself, the term \"Zero Install\" encompasses a lot of Yarn features tailored around one specific purpose: make your projects as stable and fast as they could ever be by removing one of the main entropy factor from the equation: Yarn itself.

\n

How does Yarn impacts a project stability?

\n

Yarn does its best to guarantee that when running yarn install twice, the result will be the same in both cases. The main way we currently achieve this purpose is through a lockfile, which gives us all the information we need to install a project in a reproducible way. But is it really enough?

\n

While we do our best to guarantee that what works now will always work, there's the off chance that a future release introduces a bug that'll prevent you from installing your project. Or maybe your production machines environment change and yarn install cannot write in the temporary directory anymore, or the network falls and your packages aren't available, or your credentials rotate and you get authentication issues, or ... so many things can go wrong.

\n

Finally, note that isn't only about Yarn - you probably still remember some npm bugs where system files were being removed from production servers. That's what we mean: a code that runs is a code that will eventually fail. The only definite way to prevent such issues, now and in the future, is to ensure that as few code needs to run as possible.

\n

How to reach this \"zero-install\" state you're advocating for?

\n

In order to make a project zero-install, you must be able to use it as soon as you clone it. This is very easy starting from Yarn 2!

\n
    \n
  • \n

    The cache folder is by default stored within your project folder (in .yarn/cache). Just make sure you add it to your repository (see also, Offline Cache).

    \n
  • \n
  • \n

    When running yarn install, Yarn will generate a .pnp.js and a .yarn/virtuals file. Add them both to your repository (the virtuals folder contains a bunch of symlinks used to disambiguate peer dependencies - it might look weird, but it's what allows yarn link to work A-OK with peer dependencies).

    \n
  • \n
  • \n

    Depending on whether you use install scripts or not (we advise you to disable them if you write Javascript, as most use cases for native packages are better solved by wasm-powered packages anyway) also add the .yarn/unplugged and .yarn/build-state.yml entries.

    \n
  • \n
\n

And that's it! Push your changes to your repository, checkout a fresh new one somewhere, and check whether running yarn start (or whatever other script you'd normally use) works.

\n

Security concerns

\n

Note that, by design, this setup requires that you trust people modifying your repository. In particular projects accepting PRs from external users will have to be careful that the PRs affecting the package archives are legit (since it would otherwise be possible to a malicious user to send a PR for a new dependency after having altered its archive content). The best way to do this would be to add a CI step (for untrusted PRs only) that removes the cache before running an install:

\n
$> rm -rf $(yarn cache dir)\n$> yarn install\n
\n

This way Yarn will redownload the package files from whatever their remote location would be, and would report any mismatching checksum.

","frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/390/path---cli-remove-109-4c1-uH3KxAAaTA15oBkB8PQoDmyBW9g.json b/docs/static/d/390/path---cli-remove-109-4c1-uH3KxAAaTA15oBkB8PQoDmyBW9g.json new file mode 100644 index 000000000000..7a7416206952 --- /dev/null +++ b/docs/static/d/390/path---cli-remove-109-4c1-uH3KxAAaTA15oBkB8PQoDmyBW9g.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Remove dependencies from the project.

\n

Usage

\n
$> yarn remove [... names] [-A,--all]
\n

Details

\n

This command will remove the specified packages from the current workspace. If\nthe -A,--all option is set, the operation will be applied to all workspaces\nfrom the current project.

\n

Examples

\n

Remove a dependency from the current project\n:

\n
yarn remove lodash
\n

Remove a dependency from all workspaces at once\n:

\n
yarn remove lodash --all
","frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/391/path---features-plugins-33-e-55c-bjLLOisarNBX9fAmKJMHbIfGk.json b/docs/static/d/391/path---features-plugins-33-e-55c-bjLLOisarNBX9fAmKJMHbIfGk.json deleted file mode 100644 index 8c1eb05f7216..000000000000 --- a/docs/static/d/391/path---features-plugins-33-e-55c-bjLLOisarNBX9fAmKJMHbIfGk.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

Ever since Yarn was created, our very essence has been about experimenting, evolving, pushing the status quo - rinse and repeat, each time one step further, each time paving the way for our next move.

\n

As you can guess, this philosophy (coupled with the high number of external contribution we receive) requires us to iterate fast in order to accomodate with the various experiments that we brew. In a major step forward, Yarn got redesigned in the v2 in order to leverage a new modular API that can be extended through plugins. Nowadays, most of our features are implemented through those plugins - even yarn add and yarn install are preinstalled plugins!

\n

What can plugins do?

\n
    \n
  • \n

    Plugins can add new resolvers. Resolvers are the components tasked from converting dependency ranges (for example ^1.2.0) into fully-qualified package references (for example npm:1.2.0). By implementing a resolver, you can tell Yarn which versions are valid candidates to a specific range.

    \n
  • \n
  • \n

    Plugins can add new fetchers. Fetchers are the components that take the fully-qualified package references we mentioned in the previous step (for example npm:1.2.0) and know how to obtain the data of the package they belong to. Fetchers can work with remote packages (for example the npm registry), but can also find the packages directly from their location on the disk (or any other data source).

    \n
  • \n
  • \n

    Plugins can add new linkers. Once all the packages have been located and are ready for installation, Yarn will call the linkers to generate the files needed for the install targets to work properly. As an example, the PnP linker would generate the .pnp.js manifest, and a Python linker would instead generate the virtualenv files needed.

    \n
  • \n
  • \n

    Plugins can add new commands. Each plugin can ship as many commands as they see fit, which will be injected into our CLI (also making them available through yarn --help). Because the Yarn plugins are dynamically linked with the running Yarn process, they can be very small and guaranteed to share the exact same behavior as your package manager (which wouldn't be the case if you were to reimplement the workspace detection, for example).

    \n
  • \n
\n

How to use plugins?

\n

Plugins are single-file JS scripts built via the @berry/builder tools. They are easy to use:

\n

Automatic setup

\n

The official plugins (the ones whose development happen on the Yarn repository) can be installed using the following commands:

\n
    \n
  • \n

    yarn plugins dl --list will print the name of the available official plugins. Some of them might be marked experimental, in which case they might be subject to breaking changes between releases (they should be mostly stable in general, though).

    \n
  • \n
  • \n

    yarn plugins dl <plugin-name> will download one of the plugins from the list, store it within the .yarn/plugins directory, and modify your local .yarnrc file to reference it.

    \n
  • \n
  • \n

    yarn plugins dl <url> will do the same thing, but because it uses a URL it will work with any plugin regardless of where the plugin is actually hosted.

    \n
  • \n
\n

Manual setup

\n

The yarn plugins dl command is useful, but in case you prefer to setup your project yourself:

\n
    \n
  • \n

    Download the plugin you want to use and put it somewhere

    \n
  • \n
  • \n

    Update your project-level .yarnrc file by adding the following property:

    \n
    plugins:\n  - \"./my-plugin.js\"\n
    \n
  • \n
","frontmatter":{"path":"/features/plugins","title":"Plugins"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/102/path---cli-workspaces-list-c-8-c-8fe-32ZRHSWvJwqKUkjfAdcx3HVRemY.json b/docs/static/d/399/path---cli-help-a-93-7fa-Fw6zws1XYjtfZfHYWrPfha96as.json similarity index 50% rename from docs/static/d/102/path---cli-workspaces-list-c-8-c-8fe-32ZRHSWvJwqKUkjfAdcx3HVRemY.json rename to docs/static/d/399/path---cli-help-a-93-7fa-Fw6zws1XYjtfZfHYWrPfha96as.json index b267aae79dfc..efa071a7404a 100644 --- a/docs/static/d/102/path---cli-workspaces-list-c-8-c-8fe-32ZRHSWvJwqKUkjfAdcx3HVRemY.json +++ b/docs/static/d/399/path---cli-help-a-93-7fa-Fw6zws1XYjtfZfHYWrPfha96as.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List all available workspaces.

\n

Usage

\n
$> yarn workspaces list [-v,--verbose] [--json]\n
","frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Print the program usage.

\n

Usage

\n
$> yarn help [command]
","frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/399/path---cli-version-apply-6-b-4-817-fD5XXty8OYtgfxTDpuTkS37Qao.json b/docs/static/d/399/path---cli-version-apply-6-b-4-817-fD5XXty8OYtgfxTDpuTkS37Qao.json new file mode 100644 index 000000000000..eee0263bbfd1 --- /dev/null +++ b/docs/static/d/399/path---cli-version-apply-6-b-4-817-fD5XXty8OYtgfxTDpuTkS37Qao.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Apply all the deferred version bumps at once.

\n

Usage

\n
$> yarn version apply [--all]
\n

Details

\n

This command will apply the deferred version changes (scheduled via yarn \nversion major|minor|patch) on the current workspace (or all of them if --all)\nis specified.

\n

It will also update the workspace: references across all your local workspaces\nso that they keep refering to the same workspace even after the version bump.

\n

Examples

\n

Apply the version change to the local workspace\n:

\n
yarn version apply
\n

Apply the version change to all the workspaces in the local workspace\n:

\n
yarn version apply --all
","frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/407/path---cli-npm-login-7-c-8-eb1-CuFsmPTsRWMMEVeWs7S0TaXWaY8.json b/docs/static/d/407/path---cli-npm-login-7-c-8-eb1-CuFsmPTsRWMMEVeWs7S0TaXWaY8.json new file mode 100644 index 000000000000..9163a73d8dd4 --- /dev/null +++ b/docs/static/d/407/path---cli-npm-login-7-c-8-eb1-CuFsmPTsRWMMEVeWs7S0TaXWaY8.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Store new login info to access the npm registry.

\n

Usage

\n
$> yarn npm login [-s,--scope SCOPE]
\n

Details

\n

This command will ask you for your username, password, and 2FA One-Time Password\n(when it applies). It will then modify your local configuration (in your home\nfolder) to reference the new tokens thus generated.

\n

Adding the -s,--scope flag will cause the authentication to be done against\nwhatever registry is configured for the associated scope (see also npmScopes).

\n

Examples

\n

Login to the default registry\n:

\n
yarn npm login
\n

Login to a scoped registry\n:

\n
yarn npm login --scope my-scope
","frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/409/path---advanced-error-codes-430-d5e-mbC2lR02VznO0vFnrOmvX54I2OY.json b/docs/static/d/409/path---advanced-error-codes-430-d5e-mbC2lR02VznO0vFnrOmvX54I2OY.json new file mode 100644 index 000000000000..4441dc14043a --- /dev/null +++ b/docs/static/d/409/path---advanced-error-codes-430-d5e-mbC2lR02VznO0vFnrOmvX54I2OY.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"\n
\n

Are you a plugin author and want to declare your own error codes that don't match the semantic of the ones provided here? Please relinquish one character and use the YNX prefix (ex YNX001) instead of YN0!

\n

Keeping this convention will help our users to figure out which error codes can be found on this documentation and which ones should instead be checked against the individual documentation of the plugins they use.

\n
\n

YN0000 - UNNAMED

\n

This code is used to log regular messages, mostly to align all the lines in the Yarn output. No worry!

\n

YN0001 - EXCEPTION

\n

An exception had be thrown by the program.

\n

This error typically should never happen (it should instead point to a different error message from this page so that it can be properly documented), so it should be considered a bug in Yarn. Feel free to open an issue or, even better, a pull request aiming to fix it.

\n

YN0002 - MISSING_PEER_DEPENDENCY

\n

A package requests a peer dependency, but its parent in the dependency tree doesn't provide it.

\n

This error occurs when a package peer dependencies cannot be satisfied. If the peer dependency is optional and shouldn't trigger such warnings, then mark it as such using the optional peer dependencies feature.

\n

Note that Yarn enforces peer dependencies at every level of the dependency tree - meaning that if A depends on B+X, and B depends on C, and C has a peer dependency on X, then a warning will be emitted (because B doesn't fulfill the peer dependendy request). The best way to solve this is to explicitly list the transitive peer dependency on X in B has well.

\n

YN0003 - CYCLIC_DEPENDENCIES

\n

Two packages with build scripts have cyclic dependencies.

\n

Cyclic dependencies are a can of worm. They happen when a package A depends on a package B and vice-versa Sometime can arise through a chain of multiple packages - for example when A depends on B, which depends on C, which depends on A.

\n

While cyclic dependencies may work fine in the general Javascript case (and in fact Yarn won't warn you about it in most cases), they can cause issues as soon as build scripts are involved. Indeed, in order to build a package, we first must make sure that its own dependencies have been properly built. How can we do that when two packages reference each other? Since the first one to build cannot be deduced, such patterns will cause the build scripts of every affected packages to simply be ignored (and a warning emitted).

\n

There's already good documentation online explaining how to get rid of cyclic dependencies, the simplest one being to extract the shared part of your program into a third package without dependencies. So the first case we described would become A depends on C, B depends on C, C doesn't depend on anything.

\n

YN0004 - DISABLED_BUILD_SCRIPTS

\n

A package has build scripts, but they've been disabled across the project.

\n

Build scripts can be disabled on a global basis through the use of the enable-scripts settings. When it happens, a warning is still emitted to let you know that the installation might not be complete.

\n

The safest way to downgrade the warning into a notification is to explicitly disable build scripts for the affected packages through the use of the dependenciesMeta[].build key.

\n

YN0005 - BUILD_DISABLED

\n

A package has build scripts, but they've been disabled through its configuration.

\n

Build scripts can be disabled on a per-project basis through the use of the dependenciesMeta settings from the package.json file. When it happens, a notification is still emitted to let you know that the installation might not be complete.

\n\n

A package has build scripts, but is linked through a soft link.

\n

For Yarn, a hard link is when a package is owned by the package manager. In these instances Yarn will typically copy packages having build scripts into a project-local cache so that multiple projects with multiple dependency trees don't use the same build artifacts. So what's the problem with so-called \"soft links\"?

\n

Soft links are when the package manager doesn't own the package source. An example is a workspace, or a dependency referenced through the portal: specifier. In these instances Yarn cannot safely assume that executing build scripts there is the intended behavior, because it would likely involve mutating your project or, even worse, an external location on your disk that might be shared by multiple projects. Since Yarn avoids doing anything unsafe, it cannot run build scripts on soft links.

\n

There are a few workarounds:

\n
    \n
  • \n

    Using file: instead of portal: will cause a hard link to be used instead of a soft link. The other side of the coin will be that the packages will be copied into the cache as well, meaning that changing the package source will require you to run YARN_UPDATE_FILE_CACHE=1 yarn install for your changes to be taken into account.

    \n
  • \n
  • \n

    You can manually run yarn run postinstall (or whatever is named your build script) from the directory of the affected packages. This requires you to know in which order they'll have to be called, but is generally the safest option.

    \n
  • \n
  • \n

    You can simply abstain from using build scripts with soft links. While this suggestion might seem like a bad case of \"fix a problem by not encountering the problem\", consider that build scripts in development might not be of the best effect from a developer experience perspective - they usually mean that you'll need to run a script before being able to see your changes, which is often not what you seek.

    \n
  • \n
\n

YN0007 - MUST_BUILD

\n

A package must be built.

\n

This informational message occurs when Yarn wishes to let you know that a package will need to be built in order for the installation to complete. This usually occurs in only two cases: either the package never has been built before, or its previous build failed (returned a non-zero exit code).

\n

YN0008 - MUST_REBUILD

\n

A package must be rebuilt.

\n

This information message occurs when Yarn wishes to let you know that a package will need to be rebuilt in order for the installation to complete. This usually occurs in a single case: when the package's dependency tree has changed. Note that this also include its transitive dependencies, which sometimes may cause surprising rebuilds (for example, if A depends on B that depends on C@1, and if Yarn decides for some reason that C should be bumped to C@2, then A will need to be rebuilt).

\n

YN0009 - BUILD_FAILED

\n

A package build failed.

\n

This problem typically doesn't come from Yarn itself, and simply means that a package described as having build directives couldn't get built successfully.

\n

To see the actual error message, read the file linked in the report. It will contain the full output of the failing script.

\n

YN0010 - RESOLVER_NOT_FOUND

\n

A resolver cannot be found for the given package.

\n

Resolvers are the components tasked from converting ranges (^1.0.0) into references (1.2.3). They each contain their own logic to do so - the semver resolver is the most famous one but far from being the only one. The GitHub resolver transforms GitHub repositories into tarball urls, the Git resolver normalizes the paths sent to git, ... each resolver takes care of a different resolution strategy. A missing resolver means that one of those strategies is missing.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0011 - FETCHER_NOT_FOUND

\n

A fetcher cannot be found for the given package.

\n

Fetchers are the components that take references and fetch the source code from the remote location. A semver fetcher would likely fetch the packages from some registry, while a workspace fetcher would simply redirect to the location on the disk where the sources can be found.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0012 - LINKER_NOT_FOUND

\n

A linker cannot be found for the given package.

\n

Linkers are the components tasked from extracting the sources from the artifacts returned by the fetchers and putting them on the disk in a manner that can be understood by the target environment. The Node linker would use the Plug'n'Play strategy, while a PHP linker would use an autoload strategy instead.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0013 - FETCH_NOT_CACHED

\n

A package cannot be found in the cache for the given package and will be fetched from its remote location.

\n

When a package is downloaded from whatever its remote location is, Yarn stores it in a specific folder called then cache. Then, the next time this package was to be downloaded, Yarn simply check this directory and use the stored package if available. This message simply means that the package couldn't be found there. It's not a huge issue, but you probably should try to limit it as much as possible - for example by using Zero-Installs.

\n

YN0014 - YARN_IMPORT_FAILED

\n

A lockfile couldn't be properly imported from a v1 lockfile.

\n

The v2 release contains major changes in the way Yarn is design, and the lockfile format is one of them. In some rare cases, the data contained in the v1 lockfile aren't compatible with the ones we stored within the v2 files. When it happens, Yarn will emit this warning and resolve the package descriptor again. Only this package will be affected; all others will continue to be imported as expected.

\n

YN0015 - REMOTE_INVALID

\n

The remote source returned invalid data.

\n

This error is thrown by the resolvers and fetchers when the remote sources they communicate with return values that aren't consistent with what we would expect (for example because they are missing fields).

\n

YN0016 - REMOTE_NOT_FOUND

\n

The remote source returned valid data, but told us the package couldn't be found.

\n

This error is thrown by the resolvers and fetchers when the remote sources they communicate with inform them that the package against which have been made the request doesn't exist. This might happen if the package has been unpublished, and there's usually nothing Yarn can do.

\n

YN0017 - RESOLUTION_PACK

\n

This error code isn't used at the moment (it used to print the number of packages that took part in each pass of the resolution algorithm, but was deemed too verbose compared to its usefulness).

\n

YN0018 - CACHE_CHECKSUM_MISMATCH

\n

The checksum of a package from the cache doesn't match what the lockfile expects.

\n

This situation usually happens after you've modified the zip archives from your cache by editing the files it contains for debug purposes. Use one of the two following commands in order to bypass it:

\n
    \n
  • YARN_CHECKSUM_BEHAVIOR=reset will remove the files from the cache and download them again
  • \n
  • YARN_CHECKSUM_BEHAVIOR=update will update the lockfile to contain the new checksum
  • \n
  • YARN_CHECKSUM_BEHAVIOR=ignore will use the existing files but won't update the lockfile
  • \n
\n

YN0019 - UNUSED_CACHE_ENTRY

\n

A file from the cache has been detected unused by yarn cache clean.

\n

After removing or upgrading a dependency you'll find that Yarn won't automatically remove the now obsolete files from your cache (this is because your cache might be shared by multiple projects, and in order to keep the history less messy). Running yarn cache clean will cause Yarn to try to figure out which packages from the cache aren't referenced by the current lockfile.

\n

YN0020 - MISSING_LOCKFILE_ENTRY

\n

A package descriptor cannot be found in the lockfile.

\n

A lot of commands (for example yarn run) require the lockfile to be in a state consistent with the current project in order to behave properly. This error will be generated when Yarn detects that your project references a package that isn't listed within the lockfile (usually because you modified a dependencies field without running yarn install, or because you added a new workspace). Running yarn install will almost certainly fix this particular error.

\n

YN0021 - WORKSPACE_NOT_FOUND

\n

A dependency uses a workspace: range that cannot be resolved to an existing workspace.

\n

The workspace: protocol is a new feature that appeared in Yarn v2 that allows to target a specific workspace of the current project without risking to ever pull data from other sources in case the workspace doesn't exist. This error precisely means that the workspace doesn't exist for the reason described in the error message.

\n

YN0022 - TOO_MANY_MATCHING_WORKSPACES

\n

This error should be considered obsolete and not exist; open an issue if you have it.

\n

YN0023 - CONSTRAINTS_MISSING_DEPENDENCY

\n

One of your workspaces should depend on a dependency but doesn't.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0024 - CONSTRAINTS_INCOMPATIBLE_DEPENDENCY

\n

One of your workspaces should depend on a specific version of a dependency but doesn't.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0025 - CONSTRAINTS_EXTRANEOUS_DEPENDENCY

\n

One of your workspaces shouldn't depend on one of the dependencies it lists.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0026 - CONSTRAINTS_INVALID_DEPENDENCY

\n

One of your workspaces lists an invalid dependency.

\n

A constraint has been put into effect that declares that the specified workspace probably shouldn't depend on the specified dependency in its current state. Since it currently does, Yarn emits this error when running yarn constraints check. Fixing this error require manual intervention as the fix is ambiguous from Yarn's point of view.

\n

YN0027 - CANT_SUGGEST_RESOLUTIONS

\n

Yarn cannot figure out proper range suggestions for the packages you're adding to your project.

\n

When running yarn add without adding explicit ranges to the packages to add, Yarn will try to find versions that match your intent. Generally it means that it will prefer project workspaces and, if it cannot find any, will instead try to query the npm registry for the list of published releases and use whatever is the highest one. This error means that this process failed and Yarn cannot successfully figure out which version of the package should be added to your project.

\n

YN0028 - FROZEN_LOCKFILE_EXCEPTION

\n

Your lockfile would be modified if Yarn was to finish the install.

\n

When passing the --frozen-lockfile option to yarn install, Yarn will ensure that the lockfile isn't modified in the process and will instead throw an exception if this situation was to happen (for example if a newly added package was missing from the lockfile, or if the current Yarn release required some kind of migration before being able to work with the lockfile).

\n

This option is typically meant to be used on your CI and production servers, and fixing this error should simply be a matter of running yarn install on your local development environment and submitting a PR containing the updated lockfile.

\n

YN0029 - CROSS_DRIVE_VIRTUAL_LOCAL

\n

The virtual package folder is located on a different disk than files referenced by your project.

\n

For technical reasons, and only on Windows, the virtual package folder (defined through the virtualFolder settings) usually cannot be set on a different drive than the files it references (which can potentially come from a whole variety of locations through the use of the portal: protocol, but usually come from either your cache and/or your project).

\n

To fix this, either move the virtual package folder to the same drive as the rest of your data or use the hidden enableAbsoluteVirtuals settings (this settings is hidden because it will cause Yarn to use absolute symlinks when generating the virtual links, which are likely to cause portability issues across systems and machines).

\n

YN0030 - FETCH_FAILED

\n

This error code isn't used at the moment; we ideally want to explain why did the fetch fail rather than .

\n

YN0031 - DANGEROUS_NODE_MODULES

\n

Yarn is installing packages using Plug'n'Play, but a node_modules folder has been found.

\n

This warning is emitted when your project is detected as containing node_modules folders that actually seem to contain packages. This is not advised as they're likely relicts of whatever package manager you used before, and might confuse your tools and lead you into \"works on my machine\" situations.

\n

YN0032 - NODE_GYP_INJECTED

\n

In some situation Yarn might detect that node-gyp is required by a package without this package explicitly listing the dependency. This behavior is there for legacy reason and should not be relied upon for the following reasons:

\n
    \n
  • \n

    The main way to detect whether node-gyp is implicitly required is to check whether the package contains a bindings.gyp file. However, doing this check implies that the package listing is known at the time Yarn resolves the dependency tree. This would require to fetch all npm archives as part of the resolution step (rather than wait until the dedicated fetch step), and all that just for the sake of this problematic feature.

    \n
  • \n
  • \n

    Implicit dependencies on node-gyp don't provide any hint to the package manager as to which versions of node-gyp are compatible with the package being built. Yarn does its best by adding an implicit dependency on npm:*, but it might be wrong and we'll have no way to know it - your installs will just crash unexpectedly when compiled with incompatible versions.

    \n
  • \n
\n

Packages omitting node-gyp usually do so in order to decrease the amount of packages in the final dependency tree when building the package isn't required (prebuilt binaries). While a reasonable wish, doing this goes against the package manager rules and we would prefer to solve this through a dedicated feature rather than through such hacks. In the meantime we strongly recommend to consider prebuilding native dependencies via WebAssembly if possible - then the node-gyp problem completely disappears.

","frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/409/path---cli-remove-109-4c1-j4rvERnwSv6FV4dsfvttoF0r6k.json b/docs/static/d/409/path---cli-remove-109-4c1-j4rvERnwSv6FV4dsfvttoF0r6k.json deleted file mode 100644 index b5e1239f399a..000000000000 --- a/docs/static/d/409/path---cli-remove-109-4c1-j4rvERnwSv6FV4dsfvttoF0r6k.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Remove dependencies from the project.

\n

Usage

\n
$> yarn remove [... names] [-A,--all]\n
\n

Details

\n

This command will remove the specified packages from the current workspace. If\nthe -A,--all option is set, the operation will be applied to all workspaces\nfrom the current project.

\n

Examples

\n

Remove a dependency from the current project\n:

\n
yarn remove lodash\n
\n

Remove a dependency from all workspaces at once\n:

\n
yarn remove lodash --all\n
","frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/41/path---features-protocols-a-2-d-d3b-OwtnilEL91Npv5j4eYCahCMb9iw.json b/docs/static/d/41/path---features-protocols-a-2-d-d3b-OwtnilEL91Npv5j4eYCahCMb9iw.json deleted file mode 100644 index ff1fa1769f7a..000000000000 --- a/docs/static/d/41/path---features-protocols-a-2-d-d3b-OwtnilEL91Npv5j4eYCahCMb9iw.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The following protocols can be used by any dependency entry listed in the dependencies or devDependencies fields. While they work regardless of the context we strongly recommend you to only use semver ranges on published packages as they are the one common protocol whose semantic is clearly defined across all package managers.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
NameExampleDescription
Semver^1.2.3Resolves from the default registry
TaglatestResolves from the default registry
Npm aliasnpm:name@...Resolves from the npm registry
Github (public)github:foo/barDownloads a public package from Github
Filefile:./my-packageCopies the location into the cache
Linklink:./my-folderCreates a link to the ./my-folder folder (ignore dependencies)
Portalportal:./my-folderCreates a link to the ./my-folder folder (follow dependencies)
\n\n

The link: protocol is meant to link a package name to a folder on the disk - any folder. For example one perfect use case for the link: protocol is to map your src folder to a clearer name that you can then use from your Node applications without having to use relative paths (for example you could link my-app to link:./src so that you can call require('my-app') from any file within your application).

\n

Because such destination folders typically don't contain package.json, the link: protocol doesn't even try to read them. It can cause problems when you want to link an identifier to a different package on the disk (similar to what yarn link does), because then the transitive dependencies aren't resolved.

\n

In order to solve this use case, the new portal: protocol available in the v2 opens a portal to any package located on your disk. Because portals are meant to only target packages they can leverage the information from the package.json files listed within their targets to properly resolve transitive dependencies.

","frontmatter":{"path":"/features/protocols","title":"Protocols"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/412/path---cli-plugin-list-849-942-Oh3eqmO2mxBiIYWsqbWXfjEQhLg.json b/docs/static/d/412/path---cli-plugin-list-849-942-Oh3eqmO2mxBiIYWsqbWXfjEQhLg.json new file mode 100644 index 000000000000..46b17ea6115f --- /dev/null +++ b/docs/static/d/412/path---cli-plugin-list-849-942-Oh3eqmO2mxBiIYWsqbWXfjEQhLg.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List the active plugins.

\n

Usage

\n
$> yarn plugin list 
\n

Details

\n

This command prints the currently active plugins. Will be displayed both builtin\nplugins and external plugins.

\n

Examples

\n

List the currently active plugins\n:

\n
yarn plugin list
","frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/420/path---features-offline-cache-bb-0-925-un6KMa93WGg3CFkKpDhwTIAx9c.json b/docs/static/d/420/path---features-offline-cache-bb-0-925-un6KMa93WGg3CFkKpDhwTIAx9c.json deleted file mode 100644 index 9f5b2a9456c5..000000000000 --- a/docs/static/d/420/path---features-offline-cache-bb-0-925-un6KMa93WGg3CFkKpDhwTIAx9c.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The offline cache is a feature that allows Yarn to work just fine even should the network go down for any reason - whether it's because your employer didn't pay the utility bill or because the place where are hosted your packages becomes unavailable. It's also a critical part of Zero-Installs and doesn't store more than a single file for each package - making it suitable for being stored within a repository, as we actually do in the Yarn repository itself.

\n

The way it works is simple: each time a package is downloaded from a remote location (\"remote\" as a generic term in this context: dependencies listed through the file: protocol also have a remote, even if it will be the local filesystem in their case) a copy will be stored within the cache. The next time this same package will need to be installed, Yarn will leverage the version stored within cache instead of downloading its original source.

\n

Disabling the cache

\n

Because the offline cache is leveraged to power PnP (files are read directly from within the zip archives), the cache cannot be disabled. That being said it's totally safe to remove the cache folder entirely if needed - it will simply be rebuilt the next time you run yarn install.

\n

Cleaning the cache

\n

At the moment Yarn doesn't purge your cache from unneeded packages when you remove or upgrade them. To remove such unused files just periodically run yarn cache clean. You can even make it part of your CI!

\n

Sharing the cache

\n

Starting from Yarn v2, Yarn will by default configure the cache to be local to your project. This is done to make it easier for you to store it as part of your repository, which we believe is the best way to ensure .

\n

Still, this might not make sense in your case. For example you might be working on a small library and not care enough to bother with checking-in your cache. If that's your case just add the following line into a .yarnrc file local to your project. It will instruct Yarn to use a special path that will be shared by all projects that list the same configuration:

\n
enableGlobalCache: true\n
\n

Cache integrity

\n

Because the archive checksums are stored within the lockfile, any cache corruption will be detected at install-time and you'll be asked to resolve the problem - either by removing the corrupted file, or updating the checksum. The later isn't meant to be done except for advanced users in extremely specific cases.

","frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/422/path---features-pnp-5-ec-806-2I3SwbXEK40sLO21eI3vqi0fJ48.json b/docs/static/d/422/path---features-pnp-5-ec-806-2I3SwbXEK40sLO21eI3vqi0fJ48.json new file mode 100644 index 000000000000..1d430da2c4ba --- /dev/null +++ b/docs/static/d/422/path---features-pnp-5-ec-806-2I3SwbXEK40sLO21eI3vqi0fJ48.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

Unveiled in September 2018, Plug'n'Play is a new innovative installation strategy for Node. Based on prior works from other languages (for example autoload from PHP), it presents interesting characteristics that build upon the regular commonjs require workflow in an almost completely backward-compatible way.

\n

The node_modules problem

\n

The way installs used to work was simple: when running yarn install Yarn would generate a node_modules directory that Node was then able to consume thanks to its builtin Node Resolution Algorithm. In this context, Node didn't have to know the first thing about what a \"package\" was: it only reasoned in terms of files. \"Does this file exists here? No? Let's look in the parent node_modules then. Does it exists here? Still no? Too bad...\", and it kept going until it found the right one. This process was vastly inefficient, and for a lot of reasons:

\n
    \n
  • \n

    The node_modules directories typically contained gargantuan amounts of files. Generating them could make up for more than 70% of the time needed to run yarn install. Even having preexisting installations wouldn't save you, as package managers still had to diff the existing node_modules with what it should have beeen.

    \n
  • \n
  • \n

    Because the node_modules generation was an I/O-heavy operation, package managers didn't have a lot of leeway to optimize it much further than just doing a simple file copy - and even though we could have used hardlinks or copy-on-write when possible, we would still have needed to diff the current state of the filesystem before making a bunch of syscalls to manipulate the disk.

    \n
  • \n
  • \n

    Because Node had no concept of package, it didn't know either whether a file was meant to be accessed (versus being available by the sheer virtue of hoisting). It was entirely possible that the code you wrote worked one day in development but broke later in production because you forgot to list one of your dependencies in your package.json.

    \n
  • \n
  • \n

    Even at runtime, the Node resolution had to make a bunch of stat and readdir calls in order to figure out from where to load every single required file. It was extremely wasteful, and was part of why booting Node applications took so much time.

    \n
  • \n
  • \n

    Finally, the very design of the node_modules folder was impractical in that it didn't allow package managers to properly dedupe packages. Even though some algorithms could be employed to optimize the tree layout (hoisting), we still ended up unable to optimize some particular patterns - causing not only the disk usage to be higher than needed, but also some packages to be instantiated multiple times in memory.

    \n
  • \n
\n

Fixing node_modules

\n

When you think about it, Yarn already knows everything about your dependency tree - after all it even installs it on the disk for you. So the question becomes: why do we let it to Node to locate the packages? Why didn't we simply tell Node where to find them, and inform it that any require call to X by Y was meant to access the files from a specific set of dependencies? This is from this postulate that Plug'n'Play was created.

\n

In this install mode (now the default starting from Yarn v2), Yarn generates a single .pnp.js file instead of the usual node_modules. Instead of containing the source code of the installed packages, the .pnp.js file contains a map linking a package name and version to a location on the disk, and another map linking a package name and version to its set of dependencies. Thanks to this efficient system, Node can directly know where to look for files being required - regardless who asks for them!

\n

This approach as various benefits:

\n
    \n
  • \n

    Since we only need to generate a single text file instead of tens of thousands, installs are now pretty much instantaneous - the main bottleneck becomes the number of dependencies in your project rather than your disk performances.

    \n
  • \n
  • \n

    Our installs are made stabler, as I/O operations are prone to fail (like on Windows, where writing and removing files in batch may trigger various unintended interactions with Windows Defender and similar tools).

    \n
  • \n
  • \n

    Since we aren't supported by a filesystem hierarchy anymore we can guarantee not only a perfect optimization of the dependency tree (aka perfect hoisting), but also predictable package instantiations.

    \n
  • \n
  • \n

    The generated file can be checked within your repository as part of the Zero-Installs effort, removing the need to run yarn install in the first place.

    \n
  • \n
  • \n

    Your applications start faster, because the Node resolution doesn't have to iterate over the filesystem hierarchy nearly as much as before (and soon won't have to do it at all!).

    \n
  • \n
\n

Caveats and work-in-progress

\n

During the years that led to Plug'n'Play being designed and adopted as main install strategy, various projects came up with their own implementation of the Node Resolution Algorithm - usually to circumvent shortcomings of the require.resolve API. Such projects can be Webpack (enhanced-resolve), Babel (resolve), Jest (jest-resolve), Metro (metro-resolver), ...

\n

The following compatibility table gives you an idea of the integration status with various tools from the community. Note that only CLI tools are listed there, as frontend libraries (such as react, vue, lodash, ...) don't reimplement the Node resolution and as such don't need any special logic to take advantage from Plug'n'Play:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Project nameStatusNote
BabelNativeStarting from resolve 1.9+
Create-React-AppNativeStarting from 2.0+
ESLintNativeSome compatibility issues when used w/ shared configs
GatsbyNativeCurrently
JestNativeStarting from 24.1+
RollupPluginVia rollup-plugin-pnp-resolve
TypeScriptPluginVia Webpack and ts-loader
WebpackPluginVia pnp-webpack-plugin
\n

This list is kept up-to-date based on the latest release we've published starting from the v2. In case you notice something off in your own project please try to upgrade Yarn and the problematic package first, then feel free to an issue. And maybe a PR? 😊

","frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/425/path---cli-why-122-81a-m2rHCpndRSyhV3c5S03an3RVqo.json b/docs/static/d/425/path---cli-why-122-81a-m2rHCpndRSyhV3c5S03an3RVqo.json new file mode 100644 index 000000000000..eceac5c7ea1d --- /dev/null +++ b/docs/static/d/425/path---cli-why-122-81a-m2rHCpndRSyhV3c5S03an3RVqo.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Display the reason why a package is needed.

\n

Usage

\n
$> yarn why <package> [--peers]
\n

Details

\n

This command prints the exact reasons why a package appears in the dependency\ntree.

\n

If --peers is set, the command will also print the peer dependencies that\nmatch the specified name.

\n

Examples

\n

Explain why lodash is used in your project\n:

\n
yarn why lodash
","frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/435/path---cli-unplug-8-fd-be1-DhOSIZEMg5psigyOeEq5UWEmvsk.json b/docs/static/d/435/path---cli-unplug-8-fd-be1-DhOSIZEMg5psigyOeEq5UWEmvsk.json new file mode 100644 index 000000000000..0406a5241e9c --- /dev/null +++ b/docs/static/d/435/path---cli-unplug-8-fd-be1-DhOSIZEMg5psigyOeEq5UWEmvsk.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Force the unpacking of a list of packages.

\n

Usage

\n
$> yarn unplug [... patterns]
\n

Details

\n

This command will add the specified selectors to the list of packages that must\nbe unplugged when installed.

\n

A package being unplugged means that instead of being referenced directly\nthrough its archive, it will be unpacked at install time in the directory\nconfigured via virtualFolder.

\n

Unpacking a package isn't advised as a general tool because it makes it harder\nto store your packages within the repository. However, it's a good approach to\nquickly and safely debug some packages, and can even sometimes be required\ndepending on the context (for example when the package contains shellscripts).

\n

The unplug command sets a flag that's persisted in your top-level package.json\nthrough the dependenciesMeta field. As such, to undo its effects, just revert\nthe changes made to the manifest and run yarn install.

\n

Examples

\n

Unplug lodash\n:

\n
yarn unplug lodash
\n

Unplug one specific version of lodash\n:

\n
yarn unplug lodash@1.2.3
","frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/244/path---getting-started-87-c-bba-nvvubNrvPBdlHFxtNiJZH08A.json b/docs/static/d/439/path---getting-started-87-c-bba-fUQJheJGvAbZ26sjhL6Xofmg64.json similarity index 74% rename from docs/static/d/244/path---getting-started-87-c-bba-nvvubNrvPBdlHFxtNiJZH08A.json rename to docs/static/d/439/path---getting-started-87-c-bba-fUQJheJGvAbZ26sjhL6Xofmg64.json index bbf3df0c80e4..112558dd78ae 100644 --- a/docs/static/d/244/path---getting-started-87-c-bba-nvvubNrvPBdlHFxtNiJZH08A.json +++ b/docs/static/d/439/path---getting-started-87-c-bba-fUQJheJGvAbZ26sjhL6Xofmg64.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.

\n

Yarn allows you to use other developers' solutions to different problems, making it easier for you to develop your software. If you have problems, you can report issues or contribute back, and when the problem is fixed, you can use Yarn to keep it all up to date.

\n

Code is shared through something called a package. A package contains all the code being shared as well as a package.json file (called a manifest) which describes the package.

","frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

Yarn is a package manager for your code. It allows you to use and share code with other developers from around the world. Yarn does this quickly, securely, and reliably so you don't ever have to worry.

\n

Yarn allows you to use other developers' solutions to different problems, making it easier for you to develop your software. If you have problems, you can report issues or contribute back, and when the problem is fixed, you can use Yarn to keep it all up to date.

\n

Code is shared through something called a package. A package contains all the code being shared as well as a package.json file (called a manifest) which describes the package.

","frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file diff --git a/docs/static/d/482/path---cli-up-6-a-1-a9e-smSl4wq5FuUAmWiumruE2wgdeV8.json b/docs/static/d/482/path---cli-up-6-a-1-a9e-smSl4wq5FuUAmWiumruE2wgdeV8.json deleted file mode 100644 index 6632c3198e7f..000000000000 --- a/docs/static/d/482/path---cli-up-6-a-1-a9e-smSl4wq5FuUAmWiumruE2wgdeV8.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Upgrade dependencies accross the project.

\n

Usage

\n
$> yarn up [... packages] [-i,--interactive] [-v,--verbose] [-E,--exact] [-T,--tilde]\n
\n

Details

\n

This command upgrades a list of packages to their latest available version\nacross the whole project (regardless of whether they're part of dependencies\nor devDependencies - peerDependencies won't be affected). This is a\nproject-wide command: all workspaces will be upgraded in the process. Note that\nbecause such dependencies are expected to be non-upgradable, dependencies\nrelying on non-semver ranges won't be updated (this includes git dependencies\nthat use a commit hash).

\n

If -i,--interactive is set (or if the preferInteractive settings is toggled\non) the command will offer various choices, depending on the detected upgrade\npaths. Some upgrades require this flag in order to resolve ambiguities.

\n

The -E,--exact and -T,--tilde options have the same meaning as in the add\ncommand (they change the modifier used when the range is missing or a tag, and\nare ignored when the range is explicitly set).

\n

Examples

\n

Upgrade all instances of lodash to the latest release\n:

\n
yarn up lodash\n
\n

Upgrade all instances of lodash to the latest release, but ask confirmation for\neach\n:

\n
yarn up lodash -i\n
\n

Upgrade all instances of lodash to 1.2.3\n:

\n
yarn up lodash@1.2.3\n
","frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/514/path---cli-workspaces-list-c-8-c-8fe-Khf0PYtkjN442LjA1LCwXlXBU.json b/docs/static/d/514/path---cli-workspaces-list-c-8-c-8fe-Khf0PYtkjN442LjA1LCwXlXBU.json new file mode 100644 index 000000000000..90a31690b852 --- /dev/null +++ b/docs/static/d/514/path---cli-workspaces-list-c-8-c-8fe-Khf0PYtkjN442LjA1LCwXlXBU.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List all available workspaces.

\n

Usage

\n
$> yarn workspaces list [-v,--verbose] [--json]
","frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/517/path---cli-unplug-8-fd-be1-hYqCf9dugBh7lqcKeAW9jlmQUUo.json b/docs/static/d/517/path---cli-unplug-8-fd-be1-hYqCf9dugBh7lqcKeAW9jlmQUUo.json deleted file mode 100644 index 07319229cc52..000000000000 --- a/docs/static/d/517/path---cli-unplug-8-fd-be1-hYqCf9dugBh7lqcKeAW9jlmQUUo.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Force the unpacking of a list of packages.

\n

Usage

\n
$> yarn unplug [... patterns]\n
\n

Details

\n

This command will add the specified selectors to the list of packages that must\nbe unplugged when installed.

\n

A package being unplugged means that instead of being referenced directly\nthrough its archive, it will be unpacked at install time in the directory\nconfigured via virtualFolder.

\n

Unpacking a package isn't advised as a general tool because it makes it harder\nto store your packages within the repository. However, it's a good approach to\nquickly and safely debug some packages, and can even sometimes be required\ndepending on the context (for example when the package contains shellscripts).

\n

The unplug command sets a flag that's persisted in your top-level package.json\nthrough the dependenciesMeta field. As such, to undo its effects, just revert\nthe changes made to the manifest and run yarn install.

\n

Examples

\n

Unplug lodash\n:

\n
yarn unplug lodash\n
\n

Unplug one specific version of lodash\n:

\n
yarn unplug lodash@1.2.3\n
","frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/522/path---cli-constraints-source-998-562-2zv1do9LieeAV4r4Jgym6Qn50o.json b/docs/static/d/522/path---cli-constraints-source-998-562-2zv1do9LieeAV4r4Jgym6Qn50o.json deleted file mode 100644 index 030d0f8fb92e..000000000000 --- a/docs/static/d/522/path---cli-constraints-source-998-562-2zv1do9LieeAV4r4Jgym6Qn50o.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Print the source code for the constraints.

\n

Usage

\n
$> yarn constraints source [-v,--verbose]\n
\n

Details

\n

This command will print the Prolog source code used by the constraints engine.\nAdding the -v,--verbose flag will print the full source code, including the\nfact database automatically compiled from your workspaces manifests.

\n

Examples

\n

Prints the source code\n:

\n
yarn constraints source\n
\n

Print the source code and the fact database\n:

\n
yarn constraints source -v\n
","frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/524/path---cli-config-set-0-a-5-08e-SAUIak7ZyDRFtwtPfGEnN1w10.json b/docs/static/d/524/path---cli-config-set-0-a-5-08e-SAUIak7ZyDRFtwtPfGEnN1w10.json new file mode 100644 index 000000000000..793e2385d6eb --- /dev/null +++ b/docs/static/d/524/path---cli-config-set-0-a-5-08e-SAUIak7ZyDRFtwtPfGEnN1w10.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Change a configuration settings.

\n

Usage

\n
$> yarn config set <name> <value>
","frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/532/path---cli-pack-e-86-e84-muvxI1atsE2oSobvWN7BYp11sw.json b/docs/static/d/532/path---cli-pack-e-86-e84-muvxI1atsE2oSobvWN7BYp11sw.json deleted file mode 100644 index d1a1e7aaa3bc..000000000000 --- a/docs/static/d/532/path---cli-pack-e-86-e84-muvxI1atsE2oSobvWN7BYp11sw.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Bundle local packages for publishing.

\n

Usage

\n
$> yarn pack [-n,--dry-run] [--json]\n
\n

Details

\n

This command will turn the local workspace into a compressed archive suitable\nfor publishing.

\n

If the -n,--dry-run flag is set the command will just print the file paths\nwithout actually generating the package archive.

\n

If the --json flag is set the output will follow a JSON-stream output format\ninstead of the regular user-readable one.

\n

Examples

\n

Create an archive from the active workspace\n:

\n
yarn pack\n
\n

List the files that would be made part of the workspace's archive\n:

\n
yarn pack --dry-run\n
","frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/535/path---cli-init-7-fc-b73-7P6ncsIdCyztdkTNeYkdZ6Ocn6A.json b/docs/static/d/535/path---cli-init-7-fc-b73-7P6ncsIdCyztdkTNeYkdZ6Ocn6A.json deleted file mode 100644 index d07c31fcd1dc..000000000000 --- a/docs/static/d/535/path---cli-init-7-fc-b73-7P6ncsIdCyztdkTNeYkdZ6Ocn6A.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Create a new package.

\n

Usage

\n
$> yarn init [-p,--private]\n
\n

Details

\n

This command will setup a new package in your local directory.

\n

If the -p,--private option is set, the package will be private by default.

\n

The following settings can be used in order to affect what the generated\npackage.json will look like:

\n
    \n
  • initLicense- initScope- initVersion
  • \n
\n

Examples

\n

Create a new package in the local directory\n:

\n
yarn init\n
\n

Create a new private package in the local directory\n:

\n
yarn init -p\n
","frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/543/path---cli-npm-whoami-940-0c5-ZtsHPEke657EI3JJFIKlEIw8iNc.json b/docs/static/d/543/path---cli-npm-whoami-940-0c5-ZtsHPEke657EI3JJFIKlEIw8iNc.json new file mode 100644 index 000000000000..2a7112629170 --- /dev/null +++ b/docs/static/d/543/path---cli-npm-whoami-940-0c5-ZtsHPEke657EI3JJFIKlEIw8iNc.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Display the name of the authenticated user.

\n

Usage

\n
$> yarn npm whoami [-s,--scope SCOPE]
\n

Details

\n

Print the username associated with the current authentication settings to the\nstandard output.

\n

When using -s,--scope, the username printed will be the one that matches the\nauthentication for the specific scope (they can be overriden using the\nnpmScopes settings).

\n

Examples

\n

Print username for the default registry\n:

\n
yarn npm whoami
\n

Print username for the registry on a given scope\n:

\n
yarn npm whoami --scope company
","frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/560/path---cli-bin-98-e-a94-KrOyRjfbJW9LKgXzDoHDzwnuXw.json b/docs/static/d/560/path---cli-bin-98-e-a94-KrOyRjfbJW9LKgXzDoHDzwnuXw.json deleted file mode 100644 index 5791d9913e5c..000000000000 --- a/docs/static/d/560/path---cli-bin-98-e-a94-KrOyRjfbJW9LKgXzDoHDzwnuXw.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Get the path to a binary script.

\n

Usage

\n
$> yarn bin [name] [-v,--verbose]\n
\n

Details

\n

When used without arguments, this command will print the list of all the\nbinaries available in the current workspace. Adding the -v,--verbose flag will\ncause the output to contain both the binary name and the locator of the package\nthat provides the binary.

\n

When an argument is specified, this command will just print the path to the\nbinary on the standard output and exit. Note that the reported path may be\nstored within a zip archive.

\n

Examples

\n

List all the available binaries\n:

\n
yarn bin\n
\n

Print the path to a specific binary\n:

\n
yarn bin eslint\n
","frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/564/path---cli-stage-bfb-d03-8RRncmpTp5YyGFGvJOxjfzleY.json b/docs/static/d/564/path---cli-stage-bfb-d03-8RRncmpTp5YyGFGvJOxjfzleY.json deleted file mode 100644 index c2b6f69dbf77..000000000000 --- a/docs/static/d/564/path---cli-stage-bfb-d03-8RRncmpTp5YyGFGvJOxjfzleY.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Add all yarn files to your vcs.

\n

Usage

\n
$> yarn stage [-c,--commit] [-r,--reset] [-u,--update] [-n,--dry-run]\n
\n

Details

\n

This command will add to your staging area the files belonging to Yarn\n(typically any modified package.json and .yarnrc files, but also\nlinker-generated files, cache data, etc). It will take your ignore list into\naccount, so the cache files won't be added if the cache is ignored in a\n.gitignore file (assuming you use Git).

\n

Running --reset will instead remove them from the staging area (the changes\nwill still be there, but won't be committed until you stage them back).

\n

Since the staging area is a non-existent concept in Mercurial, Yarn will always\ncreate a new commit when running this command on Mercurial repositories. You can\nget this behavior when using Git by using the --commit flag which will\ndirectly create a commit.

\n

Examples

\n

Adds all modified project files to the staging area\n:

\n
yarn stage\n
\n

Creates a new commit containing all modified project files\n:

\n
yarn stage --commit\n
","frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/572/path---features-plugins-33-e-55c-BIlFl4m17MvJm9Nc00Oc41pV1U.json b/docs/static/d/572/path---features-plugins-33-e-55c-BIlFl4m17MvJm9Nc00Oc41pV1U.json new file mode 100644 index 000000000000..d4793a773afb --- /dev/null +++ b/docs/static/d/572/path---features-plugins-33-e-55c-BIlFl4m17MvJm9Nc00Oc41pV1U.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

Ever since Yarn was created, our very essence has been about experimenting, evolving, pushing the status quo - rinse and repeat, each time one step further, each time paving the way for our next move.

\n

As you can guess, this philosophy (coupled with the high number of external contribution we receive) requires us to iterate fast in order to accomodate with the various experiments that we brew. In a major step forward, Yarn got redesigned in the v2 in order to leverage a new modular API that can be extended through plugins. Nowadays, most of our features are implemented through those plugins - even yarn add and yarn install are preinstalled plugins!

\n

What can plugins do?

\n
    \n
  • \n

    Plugins can add new resolvers. Resolvers are the components tasked from converting dependency ranges (for example ^1.2.0) into fully-qualified package references (for example npm:1.2.0). By implementing a resolver, you can tell Yarn which versions are valid candidates to a specific range.

    \n
  • \n
  • \n

    Plugins can add new fetchers. Fetchers are the components that take the fully-qualified package references we mentioned in the previous step (for example npm:1.2.0) and know how to obtain the data of the package they belong to. Fetchers can work with remote packages (for example the npm registry), but can also find the packages directly from their location on the disk (or any other data source).

    \n
  • \n
  • \n

    Plugins can add new linkers. Once all the packages have been located and are ready for installation, Yarn will call the linkers to generate the files needed for the install targets to work properly. As an example, the PnP linker would generate the .pnp.js manifest, and a Python linker would instead generate the virtualenv files needed.

    \n
  • \n
  • \n

    Plugins can add new commands. Each plugin can ship as many commands as they see fit, which will be injected into our CLI (also making them available through yarn --help). Because the Yarn plugins are dynamically linked with the running Yarn process, they can be very small and guaranteed to share the exact same behavior as your package manager (which wouldn't be the case if you were to reimplement the workspace detection, for example).

    \n
  • \n
\n

How to use plugins?

\n

Plugins are single-file JS scripts built via the @berry/builder tools. They are easy to use:

\n

Automatic setup

\n

The official plugins (the ones whose development happen on the Yarn repository) can be installed using the following commands:

\n
    \n
  • \n

    yarn plugins dl --list will print the name of the available official plugins. Some of them might be marked experimental, in which case they might be subject to breaking changes between releases (they should be mostly stable in general, though).

    \n
  • \n
  • \n

    yarn plugins dl <plugin-name> will download one of the plugins from the list, store it within the .yarn/plugins directory, and modify your local .yarnrc file to reference it.

    \n
  • \n
  • \n

    yarn plugins dl <url> will do the same thing, but because it uses a URL it will work with any plugin regardless of where the plugin is actually hosted.

    \n
  • \n
\n

Manual setup

\n

The yarn plugins dl command is useful, but in case you prefer to setup your project yourself:

\n
    \n
  • \n

    Download the plugin you want to use and put it somewhere

    \n
  • \n
  • \n

    Update your project-level .yarnrc file by adding the following property:

    \n
    plugins:\n  - "./my-plugin.js"
    \n
  • \n
","frontmatter":{"path":"/features/plugins","title":"Plugins"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/575/path---cli-workspaces-foreach-09-e-44f-gv86YXTED8cDmOhnKDoRSABKCcs.json b/docs/static/d/575/path---cli-workspaces-foreach-09-e-44f-gv86YXTED8cDmOhnKDoRSABKCcs.json deleted file mode 100644 index e307c4229b60..000000000000 --- a/docs/static/d/575/path---cli-workspaces-foreach-09-e-44f-gv86YXTED8cDmOhnKDoRSABKCcs.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a command on all workspaces.

\n

Usage

\n
$> yarn workspaces foreach [... args]\n
","frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/585/path---cli-cache-clean-b-66-4c3-uqecDCWBu8bfw5wOkTmd3KCXqtc.json b/docs/static/d/585/path---cli-cache-clean-b-66-4c3-uqecDCWBu8bfw5wOkTmd3KCXqtc.json deleted file mode 100644 index 6d23c97dd5e0..000000000000 --- a/docs/static/d/585/path---cli-cache-clean-b-66-4c3-uqecDCWBu8bfw5wOkTmd3KCXqtc.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Remove the unused packages from the cache.

\n

Usage

\n
$> yarn cache clean [--dry-run] [--json]\n
\n

Details

\n

This command will locate the files that aren't used in the current project, and\nremove them (unless --dry-run is set).

\n

In order to detect whether a file is used or not the command will run a partial\ninstall where it will paint the \"fetched\" packages on top of actually\ndownloading them. Each package in the cache that hasn't been painted during the\ninstall will be reported as unused.

\n

One quirk of this system is that yarn cache clean cannot be used directly if\nyour cache is used by multiple projects, as it won't be able to detect the files\nbeing used by other projects than the current one. The best way to support\nmultiple projects with a single mirror is to use the --dry-run and --json\nflags in order to get the list of files that aren't used by one unique project.\nAfter running this command on all your projects, you'll just have to remove the\nintersection of all those file sets as they'll be guaranteed not to be used by\nany project.

\n

Examples

\n

Remove all the unused cache files from the current project\n:

\n
yarn cache clean\n
\n

Obtain the list of unused files from the current project\n:

\n
yarn cache clean --dry-run --json\n
","frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/593/path---cli-stage-bfb-d03-B6uphxi4qB4dyNRt5Y1u0xmOusQ.json b/docs/static/d/593/path---cli-stage-bfb-d03-B6uphxi4qB4dyNRt5Y1u0xmOusQ.json new file mode 100644 index 000000000000..1b3338ab525d --- /dev/null +++ b/docs/static/d/593/path---cli-stage-bfb-d03-B6uphxi4qB4dyNRt5Y1u0xmOusQ.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Add all yarn files to your vcs.

\n

Usage

\n
$> yarn stage [-c,--commit] [-r,--reset] [-u,--update] [-n,--dry-run]
\n

Details

\n

This command will add to your staging area the files belonging to Yarn\n(typically any modified package.json and .yarnrc files, but also\nlinker-generated files, cache data, etc). It will take your ignore list into\naccount, so the cache files won't be added if the cache is ignored in a\n.gitignore file (assuming you use Git).

\n

Running --reset will instead remove them from the staging area (the changes\nwill still be there, but won't be committed until you stage them back).

\n

Since the staging area is a non-existent concept in Mercurial, Yarn will always\ncreate a new commit when running this command on Mercurial repositories. You can\nget this behavior when using Git by using the --commit flag which will\ndirectly create a commit.

\n

Examples

\n

Adds all modified project files to the staging area\n:

\n
yarn stage
\n

Creates a new commit containing all modified project files\n:

\n
yarn stage --commit
","frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/601/path---advanced-architecture-4-da-48b-gVC3WduLoMwdtCKB5t8W2j7DJQ.json b/docs/static/d/601/path---advanced-architecture-4-da-48b-gVC3WduLoMwdtCKB5t8W2j7DJQ.json deleted file mode 100644 index dd0719e9a8ac..000000000000 --- a/docs/static/d/601/path---advanced-architecture-4-da-48b-gVC3WduLoMwdtCKB5t8W2j7DJQ.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"

General architecture

\n

Yarn works through a core package (published as @berry/core) that exposes the various base components that make up a project. Some of components are classes that you might recognize from the API: Configuration, Project, Workspace, Cache, Manifest, and others. All those are provided by the core package.

\n

The core itself doesn't do much - it merely contains the logic required to manage a project. In order to use this logic from the command-line Yarn provides an indirection called @berry/cli which, interestingly, doesn't do much either. It however has two very important responsibilities: it hydrates a project instance based on the current directory (cwd), and inject the prebuilt Yarn plugins into the environment.

\n

See, Yarn is built in modular way that allow most of the business logic related to third-party interactions to be externalized inside their own package - for example the npm resolver is but one plugin amongst many others. This design gives us a much simpler codebase to work with (hence an increased development speed and stabler product), and offers plugin authors the ability to write their own external logic without having to modify the Yarn codebase itself.

\n

Install architecture

\n

What happens when running yarn install can be summarized in a few different steps:

\n
    \n
  1. \n

    First we enter the \"resolution step\":

    \n
      \n
    • \n

      First we load the entries stored within the lockfile, then based on those data and the current state of the project (that it figures out by reading the manifest files, aka package.json) the core runs an internal algorithm to find out which entries are missing.

      \n
    • \n
    • \n

      For each of those missing entries, it queries the plugins using the Resolver interface, and asks them whether they would know about a package that would match the given descriptor (supportsDescriptor) and its exact identity (getCandidates) and transitive dependency list (resolve).

      \n
    • \n
    • \n

      Once it has obtained a new list of package metadata, the core starts a new resolution pass on the transitive dependencies of the newly added packages. This will be repeated until it figures out that all packages from the dependency tree now have their metadata stored within the lockfile.

      \n
    • \n
    • \n

      Finally, once every package range from the dependency tree has been resolved into metadata, the core builds the tree in memory one last time in order to generate what we call \"virtual packages\". In short those virtual packages are split instances of a same base package - we use them to disambiguate all packages that list peer dependencies, whose dependency set would change depending on their location in the dependency tree (consult this advanced article for more information).

      \n
    • \n
    \n
  2. \n
  3. \n

    Once the resolution is done, we enter the \"fetch step\":

    \n
      \n
    • \n

      Now that we have the exact set of packages that make up our dependency tree, we iterate over it and for each of them we start a new request to the cache to know whether the package if anywhere to be found. If it isn't we do just like we did in the previous step and we ask our plugins (through the Fetcher interface) whether they know about the package (supports) and if so to retrieve it from whatever its remote location is (fetch).

      \n
    • \n
    • \n

      Interesting tidbit regarding the fetchers: they communicate with the core through an abstraction layer over fs. We do this so that our packages can come from many different sources - it can be from a zip archive for packages downloaded from a registry, or from an actual directory on the disk for portal: dependencies.

      \n
    • \n
    \n
  4. \n
  5. \n

    And finally, once all the packages are ready for consumption, comes the \"link step\":

    \n
      \n
    • \n

      In order to work properly, the packages you use must be installed on the disk in some way. For example, in the case of a native Node application, your packages would have to be installed into a set of node_modules directories so that they could be located by the interpreter. That's what the linker is about. Through the Linker and Installer interfaces the Yarn core will communicate with the registered plugins to let them know about the packages listed in the dependency tree, and describe their relationships (for example it would tell them that tapable is a dependency of webpack). The plugins can then decide what to do of these information in whatever they see fit.

      \n
    • \n
    • \n

      Doing this means that new linkers can be created for other programming languages pretty easily - you just need to write your own logic regarding what should happen from the packages provided by Yarn. Want to generate an __autoload.php? Do it! Want to setup a Python virtual env? No problemo!

      \n
    • \n
    • \n

      Something else that's pretty cool is that the packages from within the dependency tree don't have to all be of the same type. Our plugin design allows instantiating multiple linkers simultaneously. Even better - the packages can depend on one another across linkers! You could have a JavaScript package depending on a Python package (which is technically the case of node-gyp, for example).

      \n
    • \n
    \n
  6. \n
","frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/606/path---cli-config-9-b-3-d67-XQzdAfz7acxzAN7uSjtnCTQAtU.json b/docs/static/d/606/path---cli-config-9-b-3-d67-XQzdAfz7acxzAN7uSjtnCTQAtU.json new file mode 100644 index 000000000000..5e9b9c9a5d7b --- /dev/null +++ b/docs/static/d/606/path---cli-config-9-b-3-d67-XQzdAfz7acxzAN7uSjtnCTQAtU.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Display the current configuration.

\n

Usage

\n
$> yarn config [-v,--verbose] [--why] [--json]
\n

Details

\n

This command prints the current active configuration settings.

\n

When used together with the -v,--verbose option, the output will contain the\nsettings description on top of the regular key/value information.

\n

When used together with the --why flag, the output will also contain the\nreason why a settings is set a particular way.

\n

Note that the paths settings will be normalized - especially on Windows. It\nmeans that paths such as C:\\project will be transparently shown as\n/mnt/c/project.

\n

Examples

\n

Print the active configuration settings\n:

\n
yarn config
","frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/622/path---cli-workspaces-foreach-run-f-4-c-139-L9Sn6HvnEGYvu70B2nXjLNhg9U.json b/docs/static/d/622/path---cli-workspaces-foreach-run-f-4-c-139-L9Sn6HvnEGYvu70B2nXjLNhg9U.json new file mode 100644 index 000000000000..3e59ee45608b --- /dev/null +++ b/docs/static/d/622/path---cli-workspaces-foreach-run-f-4-c-139-L9Sn6HvnEGYvu70B2nXjLNhg9U.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a command on all workspaces.

\n

Usage

\n
$> yarn workspaces foreach run <command> [... args] [-v,--verbose] [-p,--parallel] [-i,--interlaced] [-j,--jobs JOBS] [--topological] [--topological-dev] [--include WORKSPACES] [--exclude WORKSPACES]
\n

Details

\n

This command will run a given sub-command on all workspaces that define it (any\nworkspace that doesn't define it will be just skiped). Various flags can alter\nthe exact behavior of the command:

\n
    \n
  • \n

    If -p,--parallel is set, the commands will run in parallel; they'll by\ndefault be limited to a number of parallel tasks roughly equal to half your\ncore number, but that can be overriden via -j,--jobs.

    \n
  • \n
  • \n

    If -p,--parallel and -i,--interlaced are both set, Yarn will print the\nlines from the output as it receives them. If -i,--interlaced wasn't set, it\nwould instead buffer the output from each process and print the resulting\nbuffers only after their source processes have exited.

    \n
  • \n
  • \n

    If --topological is set, Yarn will only run a command after all workspaces\nthat depend on it through the dependencies field have successfully finished\nexecuting. If --tological-dev is set, both the dependencies and\ndevDependencies fields will be considered when figuring out the wait points.

    \n
  • \n
  • \n

    The command may apply to only some workspaces through the use of --include\nwhich acts as a whitelist. The --exclude flag will do the opposite and will\nbe a list of packages that musn't execute the script.

    \n
  • \n
\n

Adding the -v,--verbose flag will cause Yarn to print more information; in\nparticular the name of the workspace that generated the output will be printed\nat the front of each line.

","frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/628/path---cli-node-90-e-57f-BAt9WMlFLpNB50J5zb9zTtiZ1s.json b/docs/static/d/628/path---cli-node-90-e-57f-BAt9WMlFLpNB50J5zb9zTtiZ1s.json deleted file mode 100644 index 031085e57798..000000000000 --- a/docs/static/d/628/path---cli-node-90-e-57f-BAt9WMlFLpNB50J5zb9zTtiZ1s.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run node with the hook already setup.

\n

Usage

\n
$> yarn node [... args]\n
\n

Details

\n

This command simply runs Node. It also makes sure to call it in a way that's\ncompatible with the current project (for example, on PnP projects the\nenvironment will be setup in such a way that PnP will be correctly injected into\nthe environment).

\n

The Node process will use the exact same version of Node as the one used to run\nYarn itself, which might be a good way to ensure that your commands always use a\nconsistent Node version.

\n

Examples

\n

Run a Node script\n:

\n
yarn node ./my-script.js\n
","frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/630/path---advanced-error-codes-430-d5e-Wqomy66tnAv6bC869A2MfUbB9U.json b/docs/static/d/630/path---advanced-error-codes-430-d5e-Wqomy66tnAv6bC869A2MfUbB9U.json deleted file mode 100644 index a8dfb02fe3d3..000000000000 --- a/docs/static/d/630/path---advanced-error-codes-430-d5e-Wqomy66tnAv6bC869A2MfUbB9U.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"\n
\n

Are you a plugin author and want to declare your own error codes that don't match the semantic of the ones provided here? Please relinquish one character and use the YNX prefix (ex YNX001) instead of YN0!

\n

Keeping this convention will help our users to figure out which error codes can be found on this documentation and which ones should instead be checked against the individual documentation of the plugins they use.

\n
\n

YN0000 - UNNAMED

\n

This code is used to log regular messages, mostly to align all the lines in the Yarn output. No worry!

\n

YN0001 - EXCEPTION

\n

An exception had be thrown by the program.

\n

This error typically should never happen (it should instead point to a different error message from this page so that it can be properly documented), so it should be considered a bug in Yarn. Feel free to open an issue or, even better, a pull request aiming to fix it.

\n

YN0002 - MISSING_PEER_DEPENDENCY

\n

A package requests a peer dependency, but its parent in the dependency tree doesn't provide it.

\n

This error occurs when a package peer dependencies cannot be satisfied. If the peer dependency is optional and shouldn't trigger such warnings, then mark it as such using the optional peer dependencies feature.

\n

Note that Yarn enforces peer dependencies at every level of the dependency tree - meaning that if A depends on B+X, and B depends on C, and C has a peer dependency on X, then a warning will be emitted (because B doesn't fulfill the peer dependendy request). The best way to solve this is to explicitly list the transitive peer dependency on X in B has well.

\n

YN0003 - CYCLIC_DEPENDENCIES

\n

Two packages with build scripts have cyclic dependencies.

\n

Cyclic dependencies are a can of worm. They happen when a package A depends on a package B and vice-versa Sometime can arise through a chain of multiple packages - for example when A depends on B, which depends on C, which depends on A.

\n

While cyclic dependencies may work fine in the general Javascript case (and in fact Yarn won't warn you about it in most cases), they can cause issues as soon as build scripts are involved. Indeed, in order to build a package, we first must make sure that its own dependencies have been properly built. How can we do that when two packages reference each other? Since the first one to build cannot be deduced, such patterns will cause the build scripts of every affected packages to simply be ignored (and a warning emitted).

\n

There's already good documentation online explaining how to get rid of cyclic dependencies, the simplest one being to extract the shared part of your program into a third package without dependencies. So the first case we described would become A depends on C, B depends on C, C doesn't depend on anything.

\n

YN0004 - DISABLED_BUILD_SCRIPTS

\n

A package has build scripts, but they've been disabled across the project.

\n

Build scripts can be disabled on a global basis through the use of the enable-scripts settings. When it happens, a warning is still emitted to let you know that the installation might not be complete.

\n

The safest way to downgrade the warning into a notification is to explicitly disable build scripts for the affected packages through the use of the dependenciesMeta[].build key.

\n

YN0005 - BUILD_DISABLED

\n

A package has build scripts, but they've been disabled through its configuration.

\n

Build scripts can be disabled on a per-project basis through the use of the dependenciesMeta settings from the package.json file. When it happens, a notification is still emitted to let you know that the installation might not be complete.

\n\n

A package has build scripts, but is linked through a soft link.

\n

For Yarn, a hard link is when a package is owned by the package manager. In these instances Yarn will typically copy packages having build scripts into a project-local cache so that multiple projects with multiple dependency trees don't use the same build artifacts. So what's the problem with so-called \"soft links\"?

\n

Soft links are when the package manager doesn't own the package source. An example is a workspace, or a dependency referenced through the portal: specifier. In these instances Yarn cannot safely assume that executing build scripts there is the intended behavior, because it would likely involve mutating your project or, even worse, an external location on your disk that might be shared by multiple projects. Since Yarn avoids doing anything unsafe, it cannot run build scripts on soft links.

\n

There are a few workarounds:

\n
    \n
  • \n

    Using file: instead of portal: will cause a hard link to be used instead of a soft link. The other side of the coin will be that the packages will be copied into the cache as well, meaning that changing the package source will require you to run YARN_UPDATE_FILE_CACHE=1 yarn install for your changes to be taken into account.

    \n
  • \n
  • \n

    You can manually run yarn run postinstall (or whatever is named your build script) from the directory of the affected packages. This requires you to know in which order they'll have to be called, but is generally the safest option.

    \n
  • \n
  • \n

    You can simply abstain from using build scripts with soft links. While this suggestion might seem like a bad case of \"fix a problem by not encountering the problem\", consider that build scripts in development might not be of the best effect from a developer experience perspective - they usually mean that you'll need to run a script before being able to see your changes, which is often not what you seek.

    \n
  • \n
\n

YN0007 - MUST_BUILD

\n

A package must be built.

\n

This informational message occurs when Yarn wishes to let you know that a package will need to be built in order for the installation to complete. This usually occurs in only two cases: either the package never has been built before, or its previous build failed (returned a non-zero exit code).

\n

YN0008 - MUST_REBUILD

\n

A package must be rebuilt.

\n

This information message occurs when Yarn wishes to let you know that a package will need to be rebuilt in order for the installation to complete. This usually occurs in a single case: when the package's dependency tree has changed. Note that this also include its transitive dependencies, which sometimes may cause surprising rebuilds (for example, if A depends on B that depends on C@1, and if Yarn decides for some reason that C should be bumped to C@2, then A will need to be rebuilt).

\n

YN0009 - BUILD_FAILED

\n

A package build failed.

\n

This problem typically doesn't come from Yarn itself, and simply means that a package described as having build directives couldn't get built successfully.

\n

To see the actual error message, read the file linked in the report. It will contain the full output of the failing script.

\n

YN0010 - RESOLVER_NOT_FOUND

\n

A resolver cannot be found for the given package.

\n

Resolvers are the components tasked from converting ranges (^1.0.0) into references (1.2.3). They each contain their own logic to do so - the semver resolver is the most famous one but far from being the only one. The GitHub resolver transforms GitHub repositories into tarball urls, the Git resolver normalizes the paths sent to git, ... each resolver takes care of a different resolution strategy. A missing resolver means that one of those strategies is missing.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0011 - FETCHER_NOT_FOUND

\n

A fetcher cannot be found for the given package.

\n

Fetchers are the components that take references and fetch the source code from the remote location. A semver fetcher would likely fetch the packages from some registry, while a workspace fetcher would simply redirect to the location on the disk where the sources can be found.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0012 - LINKER_NOT_FOUND

\n

A linker cannot be found for the given package.

\n

Linkers are the components tasked from extracting the sources from the artifacts returned by the fetchers and putting them on the disk in a manner that can be understood by the target environment. The Node linker would use the Plug'n'Play strategy, while a PHP linker would use an autoload strategy instead.

\n

This error is usually caused by a Yarn plugin being missing.

\n

YN0013 - FETCH_NOT_CACHED

\n

A package cannot be found in the cache for the given package and will be fetched from its remote location.

\n

When a package is downloaded from whatever its remote location is, Yarn stores it in a specific folder called then cache. Then, the next time this package was to be downloaded, Yarn simply check this directory and use the stored package if available. This message simply means that the package couldn't be found there. It's not a huge issue, but you probably should try to limit it as much as possible - for example by using Zero-Installs.

\n

YN0014 - YARN_IMPORT_FAILED

\n

A lockfile couldn't be properly imported from a v1 lockfile.

\n

The v2 release contains major changes in the way Yarn is design, and the lockfile format is one of them. In some rare cases, the data contained in the v1 lockfile aren't compatible with the ones we stored within the v2 files. When it happens, Yarn will emit this warning and resolve the package descriptor again. Only this package will be affected; all others will continue to be imported as expected.

\n

YN0015 - REMOTE_INVALID

\n

The remote source returned invalid data.

\n

This error is thrown by the resolvers and fetchers when the remote sources they communicate with return values that aren't consistent with what we would expect (for example because they are missing fields).

\n

YN0016 - REMOTE_NOT_FOUND

\n

The remote source returned valid data, but told us the package couldn't be found.

\n

This error is thrown by the resolvers and fetchers when the remote sources they communicate with inform them that the package against which have been made the request doesn't exist. This might happen if the package has been unpublished, and there's usually nothing Yarn can do.

\n

YN0017 - RESOLUTION_PACK

\n

This error code isn't used at the moment (it used to print the number of packages that took part in each pass of the resolution algorithm, but was deemed too verbose compared to its usefulness).

\n

YN0018 - CACHE_CHECKSUM_MISMATCH

\n

The checksum of a package from the cache doesn't match what the lockfile expects.

\n

This situation usually happens after you've modified the zip archives from your cache by editing the files it contains for debug purposes. Use one of the two following commands in order to bypass it:

\n
    \n
  • YARN_CHECKSUM_BEHAVIOR=reset will remove the files from the cache and download them again
  • \n
  • YARN_CHECKSUM_BEHAVIOR=update will update the lockfile to contain the new checksum
  • \n
  • YARN_CHECKSUM_BEHAVIOR=ignore will use the existing files but won't update the lockfile
  • \n
\n

YN0019 - UNUSED_CACHE_ENTRY

\n

A file from the cache has been detected unused by yarn cache clean.

\n

After removing or upgrading a dependency you'll find that Yarn won't automatically remove the now obsolete files from your cache (this is because your cache might be shared by multiple projects, and in order to keep the history less messy). Running yarn cache clean will cause Yarn to try to figure out which packages from the cache aren't referenced by the current lockfile.

\n

YN0020 - MISSING_LOCKFILE_ENTRY

\n

A package descriptor cannot be found in the lockfile.

\n

A lot of commands (for example yarn run) require the lockfile to be in a state consistent with the current project in order to behave properly. This error will be generated when Yarn detects that your project references a package that isn't listed within the lockfile (usually because you modified a dependencies field without running yarn install, or because you added a new workspace). Running yarn install will almost certainly fix this particular error.

\n

YN0021 - WORKSPACE_NOT_FOUND

\n

A dependency uses a workspace: range that cannot be resolved to an existing workspace.

\n

The workspace: protocol is a new feature that appeared in Yarn v2 that allows to target a specific workspace of the current project without risking to ever pull data from other sources in case the workspace doesn't exist. This error precisely means that the workspace doesn't exist for the reason described in the error message.

\n

YN0022 - TOO_MANY_MATCHING_WORKSPACES

\n

This error should be considered obsolete and not exist; open an issue if you have it.

\n

YN0023 - CONSTRAINTS_MISSING_DEPENDENCY

\n

One of your workspaces should depend on a dependency but doesn't.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0024 - CONSTRAINTS_INCOMPATIBLE_DEPENDENCY

\n

One of your workspaces should depend on a specific version of a dependency but doesn't.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0025 - CONSTRAINTS_EXTRANEOUS_DEPENDENCY

\n

One of your workspaces shouldn't depend on one of the dependencies it lists.

\n

A constraint has been put into effect that declares that the specified workspace must depend on the specified range of the specified dependency. Since it currently doesn't, Yarn emits this error when running yarn constraints check. In order to fix it simply run yarn constraints fix which will autofix all such errors.

\n

YN0026 - CONSTRAINTS_INVALID_DEPENDENCY

\n

One of your workspaces lists an invalid dependency.

\n

A constraint has been put into effect that declares that the specified workspace probably shouldn't depend on the specified dependency in its current state. Since it currently does, Yarn emits this error when running yarn constraints check. Fixing this error require manual intervention as the fix is ambiguous from Yarn's point of view.

\n

YN0027 - CANT_SUGGEST_RESOLUTIONS

\n

Yarn cannot figure out proper range suggestions for the packages you're adding to your project.

\n

When running yarn add without adding explicit ranges to the packages to add, Yarn will try to find versions that match your intent. Generally it means that it will prefer project workspaces and, if it cannot find any, will instead try to query the npm registry for the list of published releases and use whatever is the highest one. This error means that this process failed and Yarn cannot successfully figure out which version of the package should be added to your project.

\n

YN0028 - FROZEN_LOCKFILE_EXCEPTION

\n

Your lockfile would be modified if Yarn was to finish the install.

\n

When passing the --frozen-lockfile option to yarn install, Yarn will ensure that the lockfile isn't modified in the process and will instead throw an exception if this situation was to happen (for example if a newly added package was missing from the lockfile, or if the current Yarn release required some kind of migration before being able to work with the lockfile).

\n

This option is typically meant to be used on your CI and production servers, and fixing this error should simply be a matter of running yarn install on your local development environment and submitting a PR containing the updated lockfile.

\n

YN0029 - CROSS_DRIVE_VIRTUAL_LOCAL

\n

The virtual package folder is located on a different disk than files referenced by your project.

\n

For technical reasons, and only on Windows, the virtual package folder (defined through the virtualFolder settings) usually cannot be set on a different drive than the files it references (which can potentially come from a whole variety of locations through the use of the portal: protocol, but usually come from either your cache and/or your project).

\n

To fix this, either move the virtual package folder to the same drive as the rest of your data or use the hidden enableAbsoluteVirtuals settings (this settings is hidden because it will cause Yarn to use absolute symlinks when generating the virtual links, which are likely to cause portability issues across systems and machines).

\n

YN0030 - FETCH_FAILED

\n

This error code isn't used at the moment; we ideally want to explain why did the fetch fail rather than .

\n

YN0031 - DANGEROUS_NODE_MODULES

\n

Yarn is installing packages using Plug'n'Play, but a node_modules folder has been found.

\n

This warning is emitted when your project is detected as containing node_modules folders that actually seem to contain packages. This is not advised as they're likely relicates of whatever package manager you used before, and might confuse your tools and lead you into \"works on my machine\" situations.

\n

YN0032 - NODE_GYP_INJECTED

\n

In some situation Yarn might detect that node-gyp is required by a package without this package explicitly listing the dependency. This behavior is there for legacy reason and should not be relied upon for the following reasons:

\n
    \n
  • \n

    The main way to detect whether node-gyp is implicitly required is to check whether the package contains a bindings.gyp file. However, doing this check implies that the package listing is known at the time Yarn resolves the dependency tree. This would require to fetch all npm archives as part of the resolution step (rather than wait until the dedicated fetch step), and all that just for the sake of this problematic feature.

    \n
  • \n
  • \n

    Implicit dependencies on node-gyp don't provide any hint to the package manager as to which versions of node-gyp are compatible with the package being built. Yarn does its best by adding an implicit dependency on npm:*, but it might be wrong and we'll have no way to know it - your installs will just crash unexpectedly when compiled with incompatible versions.

    \n
  • \n
\n

Packages omitting node-gyp usually do so in order to decrease the amount of packages in the final dependency tree when building the package isn't required (prebuilt binaries). While a reasonable wish, doing this goes against the package manager rules and we would prefer to solve this through a dedicated feature rather than through such hacks. In the meantime we strongly recommend to consider prebuilding native dependencies via WebAssembly if possible - then the node-gyp problem completely disappears.

","frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/635/path---features-offline-cache-bb-0-925-Wt1YUweI9UL9PHjhjAP7HPqso.json b/docs/static/d/635/path---features-offline-cache-bb-0-925-Wt1YUweI9UL9PHjhjAP7HPqso.json new file mode 100644 index 000000000000..5a138db88896 --- /dev/null +++ b/docs/static/d/635/path---features-offline-cache-bb-0-925-Wt1YUweI9UL9PHjhjAP7HPqso.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

The offline cache is a feature that allows Yarn to work just fine even should the network go down for any reason - whether it's because your employer didn't pay the utility bill or because the place where are hosted your packages becomes unavailable. It's also a critical part of Zero-Installs and doesn't store more than a single file for each package - making it suitable for being stored within a repository, as we actually do in the Yarn repository itself.

\n

The way it works is simple: each time a package is downloaded from a remote location (\"remote\" as a generic term in this context: dependencies listed through the file: protocol also have a remote, even if it will be the local filesystem in their case) a copy will be stored within the cache. The next time this same package will need to be installed, Yarn will leverage the version stored within cache instead of downloading its original source.

\n

Disabling the cache

\n

Because the offline cache is leveraged to power PnP (files are read directly from within the zip archives), the cache cannot be disabled. That being said it's totally safe to remove the cache folder entirely if needed - it will simply be rebuilt the next time you run yarn install.

\n

Cleaning the cache

\n

At the moment Yarn doesn't purge your cache from unneeded packages when you remove or upgrade them. To remove such unused files just periodically run yarn cache clean. You can even make it part of your CI!

\n

Sharing the cache

\n

Starting from Yarn v2, Yarn will by default configure the cache to be local to your project. This is done to make it easier for you to store it as part of your repository, which we believe is the best way to ensure .

\n

Still, this might not make sense in your case. For example you might be working on a small library and not care enough to bother with checking-in your cache. If that's your case just add the following line into a .yarnrc file local to your project. It will instruct Yarn to use a special path that will be shared by all projects that list the same configuration:

\n
enableGlobalCache: true
\n

Cache integrity

\n

Because the archive checksums are stored within the lockfile, any cache corruption will be detected at install-time and you'll be asked to resolve the problem - either by removing the corrupted file, or updating the checksum. The later isn't meant to be done except for advanced users in extremely specific cases.

","frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/660/path---cli-constraints-check-fe-2-efb-mQcWPcRwQ8nP0lMHAf87uNuHEL0.json b/docs/static/d/660/path---cli-constraints-check-fe-2-efb-mQcWPcRwQ8nP0lMHAf87uNuHEL0.json deleted file mode 100644 index 3f73f5646f9a..000000000000 --- a/docs/static/d/660/path---cli-constraints-check-fe-2-efb-mQcWPcRwQ8nP0lMHAf87uNuHEL0.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Check that the project constraints are met.

\n

Usage

\n
$> yarn constraints check \n
\n

Details

\n

This command will run constraints on your project and emit errors for each one\nthat is found but isn't met. If any error is emitted the process will exit with\na non-zero exit code.

\n

For more information as to how to write constraints, please consult our\ndedicated page on our website: .

\n

Examples

\n

Check that all constraints are satisfied\n:

\n
yarn constraints check\n
","frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/668/path---cli-pack-e-86-e84-m3LXZOmR32rqcKO3XoWPh1KXlr8.json b/docs/static/d/668/path---cli-pack-e-86-e84-m3LXZOmR32rqcKO3XoWPh1KXlr8.json new file mode 100644 index 000000000000..c730c18e9895 --- /dev/null +++ b/docs/static/d/668/path---cli-pack-e-86-e84-m3LXZOmR32rqcKO3XoWPh1KXlr8.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Bundle local packages for publishing.

\n

Usage

\n
$> yarn pack [-n,--dry-run] [--json]
\n

Details

\n

This command will turn the local workspace into a compressed archive suitable\nfor publishing.

\n

If the -n,--dry-run flag is set the command will just print the file paths\nwithout actually generating the package archive.

\n

If the --json flag is set the output will follow a JSON-stream output format\ninstead of the regular user-readable one.

\n

Examples

\n

Create an archive from the active workspace\n:

\n
yarn pack
\n

List the files that would be made part of the workspace's archive\n:

\n
yarn pack --dry-run
","frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/7/path---cli-help-a-93-7fa-gGMuqyclW1maehHLhVqTh9zUk.json b/docs/static/d/7/path---cli-help-a-93-7fa-gGMuqyclW1maehHLhVqTh9zUk.json deleted file mode 100644 index b7361396337a..000000000000 --- a/docs/static/d/7/path---cli-help-a-93-7fa-gGMuqyclW1maehHLhVqTh9zUk.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Print the program usage.

\n

Usage

\n
$> yarn help [command]\n
","frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/703/path---cli-dlx-cbc-9c6-ntBDjuXv36d3WgdYNf1weWKCiE.json b/docs/static/d/703/path---cli-dlx-cbc-9c6-ntBDjuXv36d3WgdYNf1weWKCiE.json new file mode 100644 index 000000000000..fc7ceb8b8e3f --- /dev/null +++ b/docs/static/d/703/path---cli-dlx-cbc-9c6-ntBDjuXv36d3WgdYNf1weWKCiE.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a package in a temporary environment.

\n

Usage

\n
$> yarn dlx <command> [... args] [-p,--package NAME] [-q,--quiet]
\n

Details

\n

This command will install a package within a temporary environment, and run its\nbinary script if it contains any. The binary will run within the current cwd.

\n

By default Yarn will download the package named command, but this can be\nchanged through the use of the -p,--package flag which will instruct Yarn to\nstill run the same command but from a different package.

\n

Also by default Yarn will print the full install logs when installing the given\npackage. This behavior can be disabled by using the -q,--quiet flag which will\ninstruct Yarn to only report critical errors.

\n

Using yarn dlx as a replacement of yarn add isn't recommended, as it makes\nyour project non-deterministic (Yarn doesn't keep track of the packages\ninstalled through dlx - neither their name, nor their version).

\n

Examples

\n

Use create-react-app to create a new React app\n:

\n
yarn dlx create-react-app ./my-app
","frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/705/path---cli-link-701-19d-Bff5jswhLEuELUCuM1BsRC07PA.json b/docs/static/d/705/path---cli-link-701-19d-Bff5jswhLEuELUCuM1BsRC07PA.json new file mode 100644 index 000000000000..0f70e9c42af6 --- /dev/null +++ b/docs/static/d/705/path---cli-link-701-19d-Bff5jswhLEuELUCuM1BsRC07PA.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Connect the local project to another one.

\n

Usage

\n
$> yarn link <destination> [--all] [-p,--private] [-r,--relative]
\n

Details

\n

This command will set a new resolutions field in the project-level manifest\nand point it to the workspace at the specified location (even if part of another\nproject).

\n

If the --all option is set, all workspaces belonging to the target project\nwill be linked to the current one.

\n

There is no yarn unlink command. To unlink the workspaces from the current\nproject one must revert the changes made to the resolutions field.

\n

Examples

\n

Register a remote workspace for use in the current project\n:

\n
yarn link ~/ts-loader
\n

Register all workspaces from a remote project for use in the current project\n:

\n
yarn link ~/jest --all
","frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/719/path---advanced-lexicon-032-7c6-1joe1DhC4mJxz81USCf8QmloY.json b/docs/static/d/719/path---advanced-lexicon-032-7c6-1joe1DhC4mJxz81USCf8QmloY.json new file mode 100644 index 000000000000..22226d59d23a --- /dev/null +++ b/docs/static/d/719/path---advanced-lexicon-032-7c6-1joe1DhC4mJxz81USCf8QmloY.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"\n

Descriptor

\n

A descriptor is a combination of a package name (for example lodash) and a package range (for example ^1.0.0). Descriptors are used to identify a set of packages rather than one unique package.

\n

Fetcher

\n

Fetchers are the components tasked from extracting the full package data from a reference. For example, the npm fetcher would download the package tarballs from the npm registry.

\n

See also: Architecture

\n

Linker

\n

Linkers are the components that consume both a dependency tree and a store of package data, and generate in return disk artifacts specific to the environment they target. For example, the Plug'n'Play linker generates a single .pnp.js file.

\n

See also: Architecture

\n

Locator

\n

A locator is a combination of a package name (for example lodash) and a package reference (for example 1.2.3). Locators are used to identify a single unique package (interestingly, all valid locators also are valid descriptors).

\n

Manifest

\n

A manifest is a package.json file.

\n

Plugin

\n

Plugins are a new concept introduced in Yarn 2+. Through the use of plugins Yarn can be extended and made even more powerful - whether it's through the addition of new resolvers, fetchers, or linkers.

\n

See also: Plugins

\n

Plug'n'Play

\n

Plug'n'Play is an alternative installation strategy that, instead of generating the typical node_modules directories, generate one single file that is then injected into Node to let it know where to find the installed packages. Starting from the v2, Plug'n'Play became the default strategy for Javascript projects.

\n

See also: Plug'n'Play

\n

PnP

\n

See Plug'n'Play

\n

Project

\n

The term project is used to encompass all the worktrees that belong to the same dependency tree.

\n

See also: Workspaces

\n

Range

\n

A range is a string that, when combined with a package name, can be used to select multiple versions of a single package. Ranges typically follow semver, but can use any of the supported Yarn protocols.

\n

See also: Protocols

\n

Reference

\n

A reference is a string that, when combined with a package name, can be used to select one single version of a single package. References typically follow semver, but can use any of the supported Yarn protocols.

\n

See also: Protocols

\n

Resolver

\n

Resolvers are the components tasked from converting descriptors into locators, and extracting the package manifests from the package locators. For example, the npm resolver would check what versions are available on the npm registry and return all the candidates that satisfy the semver requirements, then would query the npm registry to fetch the full metadata associated to the selected resolution.

\n

See also: Architecture

\n

Scope

\n

Scopes are a term linked inherited from the npm registry; they are used to describe a set of packages that all belong to the same entity. For example, all the Yarn packages related to the v2 belong to the berry scope on the npm registry. Scopes are traditionally prefixed with the @ symbol.

\n

Yarn

\n

Yarn is a command line tool used to manage programming environments. Written in Javascript, it is mostly used along with others Javascript projects, but has capabilities that make it suitable to be used in various situations.

\n

Workspace

\n

Generally speaking, workspaces are a Yarn features used to work on multiple projects stored within the same repository.

\n

In the context of Yarn's vocabulary, workspaces are packages that are of a single project.

\n

See also: Workspaces

\n

Worktree

\n

A worktree is a private workspace that adds new child workspaces to the current project.

\n

See also: Workspaces

\n

Zero-Install

\n

See also: Zero-Install

","frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/726/path---cli-config-9-b-3-d67-NghFsDNzOSEqWmUWyDuWKr3is1k.json b/docs/static/d/726/path---cli-config-9-b-3-d67-NghFsDNzOSEqWmUWyDuWKr3is1k.json deleted file mode 100644 index d61f57080953..000000000000 --- a/docs/static/d/726/path---cli-config-9-b-3-d67-NghFsDNzOSEqWmUWyDuWKr3is1k.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Display the current configuration.

\n

Usage

\n
$> yarn config [-v,--verbose] [--why] [--json]\n
\n

Details

\n

This command prints the current active configuration settings.

\n

When used together with the -v,--verbose option, the output will contain the\nsettings description on top of the regular key/value information.

\n

When used together with the --why flag, the output will also contain the\nreason why a settings is set a particular way.

\n

Note that the paths settings will be normalized - especially on Windows. It\nmeans that paths such as C:\\project will be transparently shown as\n/mnt/c/project.

\n

Examples

\n

Print the active configuration settings\n:

\n
yarn config\n
","frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/638/path---getting-started-install-4-be-a25-gyLbQsJjqmJGnQl6H5hWspJSF0.json b/docs/static/d/727/path---getting-started-install-4-be-a25-41HNo5Jo3ba96gGzC7qUtxqB6Ws.json similarity index 50% rename from docs/static/d/638/path---getting-started-install-4-be-a25-gyLbQsJjqmJGnQl6H5hWspJSF0.json rename to docs/static/d/727/path---getting-started-install-4-be-a25-41HNo5Jo3ba96gGzC7qUtxqB6Ws.json index b505399dea4f..2daed375d800 100644 --- a/docs/static/d/638/path---getting-started-install-4-be-a25-gyLbQsJjqmJGnQl6H5hWspJSF0.json +++ b/docs/static/d/727/path---getting-started-install-4-be-a25-41HNo5Jo3ba96gGzC7qUtxqB6Ws.json @@ -1 +1 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

The version of Yarn this website is about is the v2 - being slightly experimental, its install process is different from our regular builds. In order to install it:

\n
    \n
  1. \n

    First install the regular Yarn by following the instructions from the v1 website.

    \n
  2. \n
  3. \n

    Go into your project (that you created either manually or via yarn init) and run the following:

    \n
    $> yarn policies set-version v2\n
    \n
  4. \n
  5. \n

    Test that the v2 has been properly selected by running:

    \n
    $> yarn --version\nv2.0.0\n
    \n
  6. \n
","frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/getting-started","title":"1 - Introduction"}}},{"node":{"frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},{"node":{"frontmatter":{"path":"/getting-started/usage","title":"3 - Usage"}}}]},"markdownRemark":{"html":"

The version of Yarn this website is about is the v2 - being slightly experimental, its install process is different from our regular builds. In order to install it:

\n
    \n
  1. \n

    First install the regular Yarn by following the instructions from the v1 website.

    \n
  2. \n
  3. \n

    Go into your project (that you created either manually or via yarn init) and run the following:

    \n
    $> yarn policies set-version v2
    \n
  4. \n
  5. \n

    Test that the v2 has been properly selected by running:

    \n
    $> yarn --version\nv2.0.0
    \n
  6. \n
","frontmatter":{"path":"/getting-started/install","title":"2 - Installation"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"getting-started"}} \ No newline at end of file diff --git a/docs/static/d/729/path---cli-version-ade-623-7NWtE66vFzwZ5kvSsDbJZUw.json b/docs/static/d/729/path---cli-version-ade-623-7NWtE66vFzwZ5kvSsDbJZUw.json new file mode 100644 index 000000000000..46d5ecd5b8a9 --- /dev/null +++ b/docs/static/d/729/path---cli-version-ade-623-7NWtE66vFzwZ5kvSsDbJZUw.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Apply a new version to the current package.

\n

Usage

\n
$> yarn version [strategy] [-d,--deferred]
\n

Details

\n

This command will bump the version number for the given package, following the\nspecified strategy:

\n
    \n
  • If major, the first number from the semver range will be increased\n(X.0.0).- If minor, the second number from the semver range will be\nincreased (0.X.0).- If patch, the third number from the semver range will\nbe increased (0.0.X).- If prefixed by pre (premajor, ...), a -0 suffix\nwill be set (0.0.0-0).- If prerelease, the suffix will be increased\n(0.0.0-X); the third number from the semver range will also be increased if\nthere was no suffix in the previous version.- If a valid semver range, it will\nbe used as new version.- If unspecified, Yarn will ask you for guidance.
  • \n
\n

Adding the --deferred flag will cause Yarn to \"buffer\" the version bump and\nonly apply it during the next call to yarn version apply. This is recommended\nfor monorepos that receive contributions from the open-source, as Yarn will\nremember multiple invocations to yarn version <strategy> and only apply the\nhighest bump needed (so for example running yarn version major --deferred\ntwice would only increase the first number of the semver range by a single\nincrement).

\n

Note that the deferred value is lost when you call yarn version without the\n--deferred flag.

\n

Examples

\n

Immediatly bump the version to the next major\n:

\n
yarn version major
\n

Prepare the version to be bumped to the next major\n:

\n
yarn version major --deferred
","frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/730/path---features-zero-installs-899-701-VJaMxKRQzomR9DJw3TGLGI2rtQ.json b/docs/static/d/730/path---features-zero-installs-899-701-VJaMxKRQzomR9DJw3TGLGI2rtQ.json new file mode 100644 index 000000000000..73ac5e65a39b --- /dev/null +++ b/docs/static/d/730/path---features-zero-installs-899-701-VJaMxKRQzomR9DJw3TGLGI2rtQ.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

While not a feature in itself, the term \"Zero Install\" encompasses a lot of Yarn features tailored around one specific purpose: make your projects as stable and fast as they could ever be by removing one of the main entropy factor from the equation: Yarn itself.

\n

How does Yarn impacts a project stability?

\n

Yarn does its best to guarantee that when running yarn install twice, the result will be the same in both cases. The main way we currently achieve this purpose is through a lockfile, which gives us all the information we need to install a project in a reproducible way. But is it really enough?

\n

While we do our best to guarantee that what works now will always work, there's the off chance that a future release introduces a bug that'll prevent you from installing your project. Or maybe your production machines environment change and yarn install cannot write in the temporary directory anymore, or the network falls and your packages aren't available, or your credentials rotate and you get authentication issues, or ... so many things can go wrong.

\n

Finally, note that isn't only about Yarn - you probably still remember some npm bugs where system files were being removed from production servers. That's what we mean: a code that runs is a code that will eventually fail. The only definite way to prevent such issues, now and in the future, is to ensure that as few code needs to run as possible.

\n

How to reach this \"zero-install\" state you're advocating for?

\n

In order to make a project zero-install, you must be able to use it as soon as you clone it. This is very easy starting from Yarn 2!

\n
    \n
  • \n

    The cache folder is by default stored within your project folder (in .yarn/cache). Just make sure you add it to your repository (see also, Offline Cache).

    \n
  • \n
  • \n

    When running yarn install, Yarn will generate a .pnp.js and a .yarn/virtuals file. Add them both to your repository (the virtuals folder contains a bunch of symlinks used to disambiguate peer dependencies - it might look weird, but it's what allows yarn link to work A-OK with peer dependencies).

    \n
  • \n
  • \n

    Depending on whether you use install scripts or not (we advise you to disable them if you write Javascript, as most use cases for native packages are better solved by wasm-powered packages anyway) also add the .yarn/unplugged and .yarn/build-state.yml entries.

    \n
  • \n
\n

And that's it! Push your changes to your repository, checkout a fresh new one somewhere, and check whether running yarn start (or whatever other script you'd normally use) works.

\n

Security concerns

\n

Note that, by design, this setup requires that you trust people modifying your repository. In particular projects accepting PRs from external users will have to be careful that the PRs affecting the package archives are legit (since it would otherwise be possible to a malicious user to send a PR for a new dependency after having altered its archive content). The best way to do this would be to add a CI step (for untrusted PRs only) that removes the cache before running an install:

\n
$> rm -rf $(yarn cache dir)\n$> yarn install
\n

This way Yarn will redownload the package files from whatever their remote location would be, and would report any mismatching checksum.

","frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/744/path---cli-policies-set-resolution-0-cf-ed5-VKSsTIXuXkPnCkTAKr27QyVhaWg.json b/docs/static/d/744/path---cli-policies-set-resolution-0-cf-ed5-VKSsTIXuXkPnCkTAKr27QyVhaWg.json deleted file mode 100644 index f21082125db0..000000000000 --- a/docs/static/d/744/path---cli-policies-set-resolution-0-cf-ed5-VKSsTIXuXkPnCkTAKr27QyVhaWg.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Enforce a package resolution.

\n

Usage

\n
$> yarn policies set-resolution <descriptor> <resolution> [-s,--save]\n
\n

Details

\n

This command updates the resolution table so that descriptor is resolved by\nresolution.

\n

Note that by default this command only affect the current resolution table -\nmeaning that this \"manual override\" will disappear if you remove the lockfile,\nor if the package disappear from the table. If you wish to make the enforced\nresolution persist whatever happens, add the -s,--save flag which will also\nedit the resolutions field from your top-level manifest.

\n

Note that no attempt is made at validating that resolution is a valid\nresolution entry for descriptor.

\n

Examples

\n

Force all instances of lodash@^1.2.3 to resolve to 1.5.0\n:

\n
yarn set resolution lodash@^1.2.3 1.5.0\n
","frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/746/path---cli-constraints-query-7-be-23f-kGkmAaqZvw2o5gfeKJGwk7shsk.json b/docs/static/d/746/path---cli-constraints-query-7-be-23f-kGkmAaqZvw2o5gfeKJGwk7shsk.json deleted file mode 100644 index 401f16f99b33..000000000000 --- a/docs/static/d/746/path---cli-constraints-query-7-be-23f-kGkmAaqZvw2o5gfeKJGwk7shsk.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Query the constraints.

\n

Usage

\n
$> yarn constraints query <query>\n
\n

Details

\n

This command will output all matches to the given prolog query

\n

Examples

\n

List all dependencies throughout the workspace\n:

\n
yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'\n
","frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/747/path---cli-config-set-0-a-5-08e-DfTKDOSPXPRTlUxJvNFav9eRms.json b/docs/static/d/747/path---cli-config-set-0-a-5-08e-DfTKDOSPXPRTlUxJvNFav9eRms.json deleted file mode 100644 index 4a6e6798e0b0..000000000000 --- a/docs/static/d/747/path---cli-config-set-0-a-5-08e-DfTKDOSPXPRTlUxJvNFav9eRms.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Change a configuration settings.

\n

Usage

\n
$> yarn config set <name> <value>\n
","frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/758/path---advanced-peer-dependencies-5-c-9-ddc-dh77jdI2twhct9bgjNwPuJQUi9g.json b/docs/static/d/758/path---advanced-peer-dependencies-5-c-9-ddc-dh77jdI2twhct9bgjNwPuJQUi9g.json new file mode 100644 index 000000000000..7704a1ef86eb --- /dev/null +++ b/docs/static/d/758/path---advanced-peer-dependencies-5-c-9-ddc-dh77jdI2twhct9bgjNwPuJQUi9g.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"

The PnP linker guarantees that each combination of package name / version will only be instantiated once, except in one documented case: if a package has peer dependencies. Such ones will be instantiated once for each time a hard dependency is found in the dependency tree.

\n

For example, let's say you have react and react-dom. Since the react package doesn't list any peer dependencies, a same version of react will only ever be instantiated once regardless how many dependent packages list it in their dependencies field. However, because react-dom lists react within its peerDependencies field, Yarn will need to install it in such a way that it will be instantiated exactly once for each package that list it in their dependencies field.

\n

Why does it work this way?

\n

Let's say you have package-a and package-b. Both of them depend on the same package child, which has a peer dependency on peer. Now, imagine that package-a depends on peer@1 while package-b depends on peer@2. In this instance, in order to respect the peer dependency requirement, child will have to be instantiated - it wouldn't be possible otherwise for child to simultaneously use both package-a and package-b.

\n

In order to make sure that child will get instantiated twice, we generate what we call \"virtual packages\". A virtual packages simply is an additional instance of a package, that points to the same location on the disk but will have its own in-memory representation. In order to generate those virtual packages, we need them to give each of them a unique identifier. Now, what information could we use to do this?

\n

The first thing you might think of could be something along those lines: \"the unique identifier for a virtual package must be based on its set of inherited dependencies\". So in our example, since child has two sets of inherited dependencies, it would get two unique identifiers, would be instantiated twice, and everything would work. Additionally, if package-a and package-b happened to depend on the same version of peer then we would only generate one virtual package, which would decrease the tree complexity. Unfortunately, it's not so simple.

\n

Problems arise when you consider circular dependencies. Let's imagine a different scenario: package depends on child-a and child-b. The child-a package has a peer dependency on child-b, and child-b has a peer dependency on child-a. In this situation, per the wording described above, we would need to generate the unique identifier for child-a based on the set of its dependencies, which includes child-b. But since the unique identifier for child-b depends on the one from child-a, we cannot do that! The loop cannot be broken this way.

\n

The solution to this issue is to say that the unique identifier for a package with peer dependencies is based on the unique identifier of its direct parent. Since a package unique identifier is always computed before its children (which also happens to be the reason why peer dependencies must be explicitly listed at every level of the dependency hierarchy), we cannot have a cyclic dependency.

\n

How to prevent multiple instantiation?

\n

In some cases you really don't want a package to be instantiated twice. It can be because you're using instanceof on user-provided objects (which would break for similar objects from different instances), or because your code has side effects (for example by having a singleton).

\n

In general we simply discourage the use of these patterns. They are quite dangerous, and it's hard to know for sure whether your package will really be instantiated once (while Yarn can make such guarantees, other package managers might not). Still, it might also be difficult to change immediatly, so you have a few tools at your disposal:

\n
    \n
  • \n

    You can move the code managing your singleton inside its own package. So for example in the case of relay-runtime (which has a singleton and a peer dependency on relay-compiler) one solution would to move the singleton into a dedicated package that wouldn't have any peer dependency. Since Yarn guarantees that a single package name / version is always instantiated once in such cases, your singleton would be safe.

    \n
  • \n
  • \n

    Maybe simpler, your singleton can also be stored within the global context, using an identifier unique to your application. This might actually be even safer than what you currently do, because you'd then be able to properly check for multiple conflicting versions being used:

    \n
    const myVersion = require('./package.json').version;\n\nfunction makeSingleton() {\n  return {\n    value: new Something(),\n    version: myVersion,\n  };\n}\n\nexport function getSingleton() {\n  // Note that symbols cannot be used, as each package instance would have\n  // a different symbol instance\n  if (!global.singleton)\n    global.singleton = makeSingleton();\n\n  const {value, version} = global.singleton;\n  console.assert(version === myVersion);\n\n  return value;\n}
    \n
  • \n
","frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/768/path---advanced-architecture-4-da-48b-XcX0OYr9hMKbj1GBfOV3AhnoZTI.json b/docs/static/d/768/path---advanced-architecture-4-da-48b-XcX0OYr9hMKbj1GBfOV3AhnoZTI.json new file mode 100644 index 000000000000..3db09688ab3d --- /dev/null +++ b/docs/static/d/768/path---advanced-architecture-4-da-48b-XcX0OYr9hMKbj1GBfOV3AhnoZTI.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"

General architecture

\n

Yarn works through a core package (published as @berry/core) that exposes the various base components that make up a project. Some of components are classes that you might recognize from the API: Configuration, Project, Workspace, Cache, Manifest, and others. All those are provided by the core package.

\n

The core itself doesn't do much - it merely contains the logic required to manage a project. In order to use this logic from the command-line Yarn provides an indirection called @berry/cli which, interestingly, doesn't do much either. It however has two very important responsibilities: it hydrates a project instance based on the current directory (cwd), and inject the prebuilt Yarn plugins into the environment.

\n

See, Yarn is built in modular way that allow most of the business logic related to third-party interactions to be externalized inside their own package - for example the npm resolver is but one plugin amongst many others. This design gives us a much simpler codebase to work with (hence an increased development speed and stabler product), and offers plugin authors the ability to write their own external logic without having to modify the Yarn codebase itself.

\n

Install architecture

\n

What happens when running yarn install can be summarized in a few different steps:

\n
    \n
  1. \n

    First we enter the \"resolution step\":

    \n
      \n
    • \n

      First we load the entries stored within the lockfile, then based on those data and the current state of the project (that it figures out by reading the manifest files, aka package.json) the core runs an internal algorithm to find out which entries are missing.

      \n
    • \n
    • \n

      For each of those missing entries, it queries the plugins using the Resolver interface, and asks them whether they would know about a package that would match the given descriptor (supportsDescriptor) and its exact identity (getCandidates) and transitive dependency list (resolve).

      \n
    • \n
    • \n

      Once it has obtained a new list of package metadata, the core starts a new resolution pass on the transitive dependencies of the newly added packages. This will be repeated until it figures out that all packages from the dependency tree now have their metadata stored within the lockfile.

      \n
    • \n
    • \n

      Finally, once every package range from the dependency tree has been resolved into metadata, the core builds the tree in memory one last time in order to generate what we call \"virtual packages\". In short those virtual packages are split instances of a same base package - we use them to disambiguate all packages that list peer dependencies, whose dependency set would change depending on their location in the dependency tree (consult this advanced article for more information).

      \n
    • \n
    \n
  2. \n
  3. \n

    Once the resolution is done, we enter the \"fetch step\":

    \n
      \n
    • \n

      Now that we have the exact set of packages that make up our dependency tree, we iterate over it and for each of them we start a new request to the cache to know whether the package if anywhere to be found. If it isn't we do just like we did in the previous step and we ask our plugins (through the Fetcher interface) whether they know about the package (supports) and if so to retrieve it from whatever its remote location is (fetch).

      \n
    • \n
    • \n

      Interesting tidbit regarding the fetchers: they communicate with the core through an abstraction layer over fs. We do this so that our packages can come from many different sources - it can be from a zip archive for packages downloaded from a registry, or from an actual directory on the disk for portal: dependencies.

      \n
    • \n
    \n
  4. \n
  5. \n

    And finally, once all the packages are ready for consumption, comes the \"link step\":

    \n
      \n
    • \n

      In order to work properly, the packages you use must be installed on the disk in some way. For example, in the case of a native Node application, your packages would have to be installed into a set of node_modules directories so that they could be located by the interpreter. That's what the linker is about. Through the Linker and Installer interfaces the Yarn core will communicate with the registered plugins to let them know about the packages listed in the dependency tree, and describe their relationships (for example it would tell them that tapable is a dependency of webpack). The plugins can then decide what to do of these information in whatever they see fit.

      \n
    • \n
    • \n

      Doing this means that new linkers can be created for other programming languages pretty easily - you just need to write your own logic regarding what should happen from the packages provided by Yarn. Want to generate an __autoload.php? Do it! Want to setup a Python virtual env? No problemo!

      \n
    • \n
    • \n

      Something else that's pretty cool is that the packages from within the dependency tree don't have to all be of the same type. Our plugin design allows instantiating multiple linkers simultaneously. Even better - the packages can depend on one another across linkers! You could have a JavaScript package depending on a Python package (which is technically the case of node-gyp, for example).

      \n
    • \n
    \n
  6. \n
","frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/769/path---features-pnp-5-ec-806-OGIWypy3VekhyFC8ZuADLN7X4.json b/docs/static/d/769/path---features-pnp-5-ec-806-OGIWypy3VekhyFC8ZuADLN7X4.json deleted file mode 100644 index cc04eb813e87..000000000000 --- a/docs/static/d/769/path---features-pnp-5-ec-806-OGIWypy3VekhyFC8ZuADLN7X4.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"

Unveiled in September 2018, Plug'n'Play is a new innovative installation strategy for Node. Based on prior works from other languages (for example autoload from PHP), it presents interesting characteristics that build upon the regular commonjs require workflow in an almost completely backward-compatible way.

\n

The node_modules problem

\n

The way installs used to work was simple: when running yarn install Yarn would generate a node_modules directory that Node was then able to consume thanks to its builtin Node Resolution Algorithm. In this context, Node didn't have to know the first thing about what a \"package\" was: it only reasoned in terms of files. \"Does this file exists here? No? Let's look in the parent node_modules then. Does it exists here? Still no? Too bad...\", and it kept going until it found the right one. This process was vastly inefficient, and for a lot of reasons:

\n
    \n
  • \n

    The node_modules directories typically contained gargantuan amounts of files. Generating them could make up for more than 70% of the time needed to run yarn install. Even having preexisting installations wouldn't save you, as package managers still had to diff the existing node_modules with what it should have beeen.

    \n
  • \n
  • \n

    Because the node_modules generation was an I/O-heavy operation, package managers didn't have a lot of leeway to optimize it much further than just doing a simple file copy - and even though we could have used hardlinks or copy-on-write when possible, we would still have needed to diff the current state of the filesystem before making a bunch of syscalls to manipulate the disk.

    \n
  • \n
  • \n

    Because Node had no concept of package, it didn't know either whether a file was meant to be accessed (versus being available by the sheer virtue of hoisting). It was entirely possible that the code you wrote worked one day in development but broke later in production because you forgot to list one of your dependencies in your package.json.

    \n
  • \n
  • \n

    Even at runtime, the Node resolution had to make a bunch of stat and readdir calls in order to figure out from where to load every single required file. It was extremely wasteful, and was part of why booting Node applications took so much time.

    \n
  • \n
  • \n

    Finally, the very design of the node_modules folder was impractical in that it didn't allow package managers to properly dedupe packages. Even though some algorithms could be employed to optimize the tree layout (hoisting), we still ended up unable to optimize some particular patterns - causing not only the disk usage to be higher than needed, but also some packages to be instantiated multiple times in memory.

    \n
  • \n
\n

Fixing node_modules

\n

When you think about it, Yarn already knows everything about your dependency tree - after all it even installs it on the disk for you. So the question becomes: why do we let it to Node to locate the packages? Why didn't we simply tell Node where to find them, and inform it that any require call to X by Y was meant to access the files from a specific set of dependencies? This is from this postulate that Plug'n'Play was created.

\n

In this install mode (now the default starting from Yarn v2), Yarn generates a single .pnp.js file instead of the usual node_modules. Instead of containing the source code of the installed packages, the .pnp.js file contains a map linking a package name and version to a location on the disk, and another map linking a package name and version to its set of dependencies. Thanks to this efficient system, Node can directly know where to look for files being required - regardless who asks for them!

\n

This approach as various benefits:

\n
    \n
  • \n

    Since we only need to generate a single text file instead of tens of thousands, installs are now pretty much instantaneous - the main bottleneck becomes the number of dependencies in your project rather than your disk performances.

    \n
  • \n
  • \n

    Our installs are made stabler, as I/O operations are prone to fail (like on Windows, where writing and removing files in batch may trigger various unintended interactions with Windows Defender and similar tools).

    \n
  • \n
  • \n

    Since we aren't supported by a filesystem hierarchy anymore we can guarantee not only a perfect optimization of the dependency tree (aka perfect hoisting), but also predictable package instantiations.

    \n
  • \n
  • \n

    The generated file can be checked within your repository as part of the Zero-Installs effort, removing the need to run yarn install in the first place.

    \n
  • \n
  • \n

    Your applications start faster, because the Node resolution doesn't have to iterate over the filesystem hierarchy nearly as much as before (and soon won't have to do it at all!).

    \n
  • \n
\n

Caveats and work-in-progress

\n

During the years that led to Plug'n'Play being designed and adopted as main install strategy, various projects came up with their own implementation of the Node Resolution Algorithm - usually to circumvent shortcomings of the require.resolve API. Such projects can be Webpack (enhanced-resolve), Babel (resolve), Jest (jest-resolve), Metro (metro-resolver), ...

\n

The following compatibility table gives you an idea of the integration status with various tools from the community. Note that only CLI tools are listed there, as frontend libraries (such as react, vue, lodash, ...) don't reimplement the Node resolution and as such don't need any special logic to take advantage from Plug'n'Play:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
Project nameStatusNote
BabelNativeStarting from resolve 1.9+
Create-React-AppNativeStarting from 2.0+
ESLintNativeSome compatibility issues when used w/ shared configs
GatsbyNativeCurrently
JestNativeStarting from 24.1+
RollupPluginVia rollup-plugin-pnp-resolve
TypeScriptPluginVia Webpack and ts-loader
WebpackPluginVia pnp-webpack-plugin
\n

This list is kept up-to-date based on the latest release we've published starting from the v2. In case you notice something off in your own project please try to upgrade Yarn and the problematic package first, then feel free to an issue. And maybe a PR? 😊

","frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/781/path---cli-link-701-19d-2SToHAHIdTjkt9VWag9Wy8w4.json b/docs/static/d/781/path---cli-link-701-19d-2SToHAHIdTjkt9VWag9Wy8w4.json deleted file mode 100644 index aef1f3446f5f..000000000000 --- a/docs/static/d/781/path---cli-link-701-19d-2SToHAHIdTjkt9VWag9Wy8w4.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Connect the local project to another one.

\n

Usage

\n
$> yarn link <destination> [--all] [-p,--private] [-r,--relative]\n
\n

Details

\n

This command will set a new resolutions field in the project-level manifest\nand point it to the workspace at the specified location (even if part of another\nproject).

\n

If the --all option is set, all workspaces belonging to the target project\nwill be linked to the current one.

\n

There is no yarn unlink command. To unlink the workspaces from the current\nproject one must revert the changes made to the resolutions field.

\n

Examples

\n

Register a remote workspace for use in the current project\n:

\n
yarn link ~/ts-loader\n
\n

Register all workspaces from a remote project for use in the current project\n:

\n
yarn link ~/jest --all\n
","frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/837/path---advanced-migration-fac-b1c-Q2PgnOl6OJGzqeEfCaEZKL9vCg.json b/docs/static/d/837/path---advanced-migration-fac-b1c-Q2PgnOl6OJGzqeEfCaEZKL9vCg.json deleted file mode 100644 index 4f235f5d17a6..000000000000 --- a/docs/static/d/837/path---advanced-migration-fac-b1c-Q2PgnOl6OJGzqeEfCaEZKL9vCg.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"

Yarn v2 is a very different software from the v1. While one of our aim is to make the transition as easy as possible, some behaviors needed to be tweaked. To make things easier we've documented the most common problems that may arise when porting from one project to the other, along with suggestions to keep moving forward.

\n

A package is trying to access another package

\n
\n

A package is trying to access another package without the second one being listed as a dependency of the first one

\n
\n

Some packages don't properly list their actual dependencies for a reason or another. Now that we've fully switched to Plug'n'Play and actually enforce dependency visibility, this might become more apparent than it previously was, and this error might start to appear.

\n

The long term fix is of course to submit a pull request upstream to add the missing dependency to the package listing. Given that it sometimes might take sometime before they get merged, we also have a more short-term fix available: open your yarn.lock file, locate the entry for the faulty package, manually add a new dependencies entry with the missing dependency, then run yarn install to apply your changes.

\n

Note that the short-term fix isn't meant to be long-term: you'll need to reapply it each time the package version changes and its metadata are downloaded from the registry again.

\n

Yarnrc file detection

\n

The Yarnrc files mechanisms have been changed and simplified. In particular:

\n
    \n
  • \n

    Yarn doesn't use the configuration from your .npmrc files anymore; we instead read all of our configuration from the .yarnrc files whose available settings can be found in our documentation.

    \n
  • \n
  • \n

    All environment variables prefixed with YARN_ are automatically used to override the matching configuration settings. So for example, adding YARN_NPM_REGISTRY_SERVER into your environment will change the value of npmRegistryServer.

    \n
  • \n
\n

Yarnrc settings

\n

The settings available in the yarnrc file have changed. Using old, unsupported settings will cause Yarn to throw an exception at boot time unless properly guarded.

\n

We recommend you to make sure you only use modern settings if possible. In case a particular feature you relied on in the v1 is missing in the v2, feel free to open an issue on our repository to discuss whether we should add it back.

\n

If you absolutely need to keep in your file hierarchy both v1 and v2 settings, you can use the special field named berry. Should Yarn v2+ find this field, it will use its content and ignore any other field. For example, the following file will work as expected on both the v1 and v2+ releases:

\n
# v1 settings\nworkspaces-experimental true\n\nberry:\n  # v2 settings\n  enable-global-cache true\n
\n

Plug'n'Play

\n

Starting from the v2, Plug'n'Play is enabled by default. This might cause compatibility issues in a few corner cases for projects that kept relying on unsafe patterns. Keep an eye on the dedicated page, and try to avoid those projects until they correct the situation. Also feel free to open an issue on Yarn's repository as well so that we can keep track of them and offer our help.

\n

TypeScript

\n

If you're using TypeScript and particularly the tsc binary, read on the /advanced/pnpify page to learn more about a way to transparently make tsc compatible with Plug'n'Play. We actually use it on the Yarn repository itself!

","frontmatter":{"path":"/advanced/migration","title":"Migration"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/840/path---cli-dlx-cbc-9c6-WS0cXccvMgG10nRn9uPy70dn5Qg.json b/docs/static/d/840/path---cli-dlx-cbc-9c6-WS0cXccvMgG10nRn9uPy70dn5Qg.json deleted file mode 100644 index ff96821b4963..000000000000 --- a/docs/static/d/840/path---cli-dlx-cbc-9c6-WS0cXccvMgG10nRn9uPy70dn5Qg.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Run a package in a temporary environment.

\n

Usage

\n
$> yarn dlx <command> [... args] [-p,--package NAME] [-q,--quiet]\n
\n

Details

\n

This command will install a package within a temporary environment, and run its\nbinary script if it contains any. The binary will run within the current cwd.

\n

By default Yarn will download the package named command, but this can be\nchanged through the use of the -p,--package flag which will instruct Yarn to\nstill run the same command but from a different package.

\n

Also by default Yarn will print the full install logs when installing the given\npackage. This behavior can be disabled by using the -q,--quiet flag which will\ninstruct Yarn to only report critical errors.

\n

Using yarn dlx as a replacement of yarn add isn't recommended, as it makes\nyour project non-deterministic (Yarn doesn't keep track of the packages\ninstalled through dlx - neither their name, nor their version).

\n

Examples

\n

Use create-react-app to create a new React app\n:

\n
yarn dlx create-react-app ./my-app\n
","frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/853/path---cli-plugin-list-849-942-cyieeqr3Ho68hQoGKRexSLuAHhE.json b/docs/static/d/853/path---cli-plugin-list-849-942-cyieeqr3Ho68hQoGKRexSLuAHhE.json deleted file mode 100644 index 3048e61af0ee..000000000000 --- a/docs/static/d/853/path---cli-plugin-list-849-942-cyieeqr3Ho68hQoGKRexSLuAHhE.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List the active plugins.

\n

Usage

\n
$> yarn plugin list \n
\n

Details

\n

This command prints the currently active plugins. Will be displayed both builtin\nplugins and external plugins.

\n

Examples

\n

List the currently active plugins\n:

\n
yarn plugin list\n
","frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/865/path---advanced-peer-dependencies-5-c-9-ddc-VMWwrqA3Lj3qLi0qUBfdnTbnSnA.json b/docs/static/d/865/path---advanced-peer-dependencies-5-c-9-ddc-VMWwrqA3Lj3qLi0qUBfdnTbnSnA.json deleted file mode 100644 index 1bc493d30683..000000000000 --- a/docs/static/d/865/path---advanced-peer-dependencies-5-c-9-ddc-VMWwrqA3Lj3qLi0qUBfdnTbnSnA.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"Pnpify"}}}]},"markdownRemark":{"html":"

The PnP linker guarantees that each combination of package name / version will only be instantiated once, except in one documented case: if a package has peer dependencies. Such ones will be instantiated once for each time a hard dependency is found in the dependency tree.

\n

For example, let's say you have react and react-dom. Since the react package doesn't list any peer dependencies, a same version of react will only ever be instantiated once regardless how many dependent packages list it in their dependencies field. However, because react-dom lists react within its peerDependencies field, Yarn will need to install it in such a way that it will be instantiated exactly once for each package that list it in their dependencies field.

\n

Why does it work this way?

\n

Let's say you have package-a and package-b. Both of them depend on the same package child, which has a peer dependency on peer. Now, imagine that package-a depends on peer@1 while package-b depends on peer@2. In this instance, in order to respect the peer dependency requirement, child will have to be instantiated - it wouldn't be possible otherwise for child to simultaneously use both package-a and package-b.

\n

In order to make sure that child will get instatiated twice, we generate what we call \"virtual packages\". A virtual packages simply is an additional instance of a package, that points to the same location on the disk but will have its own in-memory representation. In order to generate those virtual packages, we need them to give each of them a unique identifier. Now, what information could we use to do this?

\n

The first thing you might think of could be something along those lines: \"the unique identifier for a virtual package must be based on its set of inherited dependencies\". So in our example, since child has two sets of inherited dependencies, it would get two unique identifiers, would be instantiated twice, and everything would work. Additionally, if package-a and package-b happened to depend on the same version of peer then we would only generate one virtual package, which would decrease the tree complexity. Unfortunately, it's not so simple.

\n

Problems arise when you consider circular dependencies. Let's imagine a different scenario: package depends on child-a and child-b. The child-a package has a peer dependency on child-b, and child-b has a peer dependency on child-a. In this situation, per the wording described above, we would need to generate the unique identifier for child-a based on the set of its dependencies, which includes child-b. But since the unique identifier for child-b depends on the one from child-a, we cannot do that! The loop cannot be broken this way.

\n

The solution to this issue is to say that the unique identifier for a package with peer dependencies is based on the unique identifier of its direct parent. Since a package unique identifier is always computed before its children (which also happens to be the reason why peer dependencies must be explicitly listed at every level of the dependency hierarchy), we cannot have a cyclic dependency.

\n

How to prevent multiple instantiation?

\n

In some cases you really don't want a package to be instantiated twice. It can be because you're using instanceof on user-provided objects (which would break for similar objects from different instances), or because your code has side effects (for example by having a singleton).

\n

In general we simply discourage the use of these patterns. They are quite dangerous, and it's hard to know for sure whether your package will really be instantiated once (while Yarn can make such guarantees, other package managers might not). Still, it might also be difficult to change immediatly, so you have a few tools at your disposal:

\n
    \n
  • \n

    You can move the code managing your singleton inside its own package. So for example in the case of relay-runtime (which has a singleton and a peer dependency on relay-compiler) one solution would to move the singleton into a dedicated package that wouldn't have any peer dependency. Since Yarn guarantees that a single package name / version is always instantiated once in such cases, your singleton would be safe.

    \n
  • \n
  • \n

    Maybe simpler, your singleton can also be stored within the global context, using an identifier unique to your application. This might actually be even safer than what you currently do, because you'd then be able to properly check for multiple conflicting versions being used:

    \n
    const myVersion = require('./package.json').version;\n\nfunction makeSingleton() {\n  return {\n    value: new Something(),\n    version: myVersion,\n  };\n}\n\nexport function getSingleton() {\n  // Note that symbols cannot be used, as each package instance would have\n  // a different symbol instance\n  if (!global.singleton)\n    global.singleton = makeSingleton();\n\n  const {value, version} = global.singleton;\n  console.assert(version === myVersion);\n\n  return value;\n}\n
    \n
  • \n
","frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/88/path---features-constraints-306-a6a-7F22UL9Z75tJtrWZm6m2jh8XOs.json b/docs/static/d/88/path---features-constraints-306-a6a-7F22UL9Z75tJtrWZm6m2jh8XOs.json deleted file mode 100644 index 2b14a431ac1c..000000000000 --- a/docs/static/d/88/path---features-constraints-306-a6a-7F22UL9Z75tJtrWZm6m2jh8XOs.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/features/constraints","title":"Constraints"}}},{"node":{"frontmatter":{"path":"/features/offline-cache","title":"Offline Cache"}}},{"node":{"frontmatter":{"path":"/features/pnp","title":"Plug'n'Play"}}},{"node":{"frontmatter":{"path":"/features/plugins","title":"Plugins"}}},{"node":{"frontmatter":{"path":"/features/protocols","title":"Protocols"}}},{"node":{"frontmatter":{"path":"/features/workspaces","title":"Workspaces"}}},{"node":{"frontmatter":{"path":"/features/zero-installs","title":"Zero-Installs"}}}]},"markdownRemark":{"html":"
\n

Experimental

\n

This feature is still incubating, and its exact API might change from a release to the next. It means it's the perfect time for you to get involved and let us hear your feedback!

\n
\n

Constraints are a solution to a very basic need: I have a lot of workspaces, and I need to make sure they use the same version of their dependencies. Or that they don't depend on a specific package. Or that they use a specific type of dependency. Anyway, you see the point: whatever is the exact logic, my goal is the same; I want to automatically enforce some kind of rule accross all my workspaces. That's exactly what constraints allow you to do.

\n

Creating a constraint

\n

Constraints are created by adding a constraints.pro file at the root of your project (repository). The .pro extension might leave you perplex: this is because constraints aren't written in JavaScript (!) but rather in Prolog, a fact-based rule engine. The goal of this section isn't to teach you Prolog (good tutorials already exist, such as Learn Prolog in Y Minutes),\nbut rather to show you why we chose it and the value it brings.

\n

As we mentioned, Prolog is a fact-based engine. It starts with a list of facts that are always true, and a list of predicates that basically read as \"predicate f(X) is true if u(X) and v(X) are both true\". By computing for which values of X are u(X) and v(X) true, Prolog is able to automatically compute the list of values for which f(X) would be true. This is particularly useful for contraints, because it allows you to write very simple but powerful rules that have the ability to affect all your workspaces in very few lines.

\n

Going back to the constraint engine, the facts are the definitions created by the package manager (such as \"fact: the root workspace depends on Lodash version 4.4.2 in devDependencies\"), and the predicates are the set of rules that you want to enforce accross your project (check below for some recipes).

\n

Query predicate

\n

The following predicates provide information about the current state of your project and are meant to be used in the dependencies of your own rules (check the recipes for examples how to use them in practice). Note that the /<number> syntax listed at the end simply is the predicate arity (number of arguments it takes).

\n

`dependency_type/1

\n
dependency_type(\n  DependencyType\n).\n
\n

True for only three values: dependencies, devDependencies and peerDependencies.

\n

workspace/1

\n
workspace(\n  WorkspaceCwd\n).\n
\n

True if the workspace described by the specified WorkspaceCwd exists.

\n

workspace_ident/2

\n
workspace_ident(\n  WorkspaceCwd,\n  WorkspaceIdent\n).\n
\n

True if the workspace described by the specified WorkspaceCwd exists and if it has the specified WorkspaceIdent.

\n

workspace_version/2

\n
workspace_version(\n  WorkspaceCwd,\n  WorkspaceVersion\n).\n
\n

True if the workspace described by the specified WorkspacedCwd exists and if it has the specified WorkspaceVersion.

\n

workspace_has_dependency/4

\n
workspace_has_dependency(\n  WorkspaceCwd,\n  DependencyIdent,\n  DependencyRange,\n  DependencyType\n).\n
\n

True if the workspace described by the specified WorkspaceCwd depends on the dependency described by the specified DependencyIdent and DependencyRange combination in the dependencies block of the given DependencyType.

\n

Constraint predicates

\n

The following predicates will affect the behavior of the yarn constraints check and yarn constraints fix commands.

\n

gen_enforced_dependency_range/4

\n
gen_enforced_dependency_range(\n  WorkspaceCwd,\n  DependencyIdent,\n  DependencyRange,\n  DependencyType\n).\n
\n

The gen_enforced_dependency_range rule offers a neat way to inform the package manager that a specific workspace MUST either depend on a specific range of a specific dependency (if DependencyRange is non-null) or not depend at all on the dependency (if DependencyRange is null) in the DependencyType dependencies block.

\n
    \n
  • This predicate allows the package manager to autofix the problems.
  • \n
\n

gen_invalid_dependency/4

\n
gen_invalid_dependency(\n  WorkspaceCwd,\n  DependencyIdent,\n  DependencyType,\n  Reason\n).\n
\n

The gen_invalid_dependency predicate is used to inform the package manager that a specific workspace cannot depend on its current version of the package defined by DependencyIdent in the DependencyType dependencies, the Reason parameter being offered as a way to express why the dependency is invalid.

\n

Contrary to gen_enforced_dependency_range, gen_invalid_dependency doesn't allow the package manager to autofix the problem. This makes gen_invalid_dependency suitable in case where the right fix would be ambiguous, and where the intervention of a human operator would be required (for example when two workspaces depend on two different versions of a same package).

\n
    \n
  • The errors reported by this predicate cannot be auto-fixed
  • \n
  • The reason parameter can be any string of your liking
  • \n
\n

Constraint recipes

\n

The following constraints are a good starting point to figure out how to write your own rules. If you build one that you think would be a good fit for this section, open a PR and we'll add them here!

\n
\n

Quick note about the Prolog syntax

\n

Be aware that in prolog X :- Y basically means \"X is true for each Y that's true\". Similarly, know that UpperCamelCase names are variables that get \"replaced\" by every compatible value possible. Finally, the special variable name _ simply discards the parameter value.

\n
\n

Prevent all workspaces from depending on a specific package

\n
gen_enforced_dependency_range(WorkspaceCwd, 'tslib', null, DependencyType) :-\n  workspace_has_dependency(WorkspaceCwd, 'tslib', _, DependencyType).\n
\n

We define a rule that says that for each dependency of each workspace in our project, if this dependency name is tslib, then it exists a similar rule of the gen_enforced_dependency_range type that forbids the workspace from depending on tslib. This will cause the package manager to see that the rule isn't met, and autofix it when requested by removing the dependency from the workspace.

\n

Prevent two workspaces from depending on conflicting versions of a same dependency

\n
gen_invalid_dependency(WorkspaceCwd, DependencyIdent, DependencyType, 'This dependency conflicts with another one from another workspace') :-\n  workspace_has_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType),\n  workspace_has_dependency(_, DependencyIdent, DependencyRange2, _),\n  DependencyRange \\= DependencyRange2.\n
\n

We define a gen_invalid_dependency rule that is true for each dependency of each package (first workspace_has_dependency) if it also exists another dependency of another package (second workspace_has_dependency) that has the same name but a different range (\\= operator).

\n

Force all workspace dependencies to be made explicit

\n
gen_enforced_dependency_range(WorkspaceCwd, DependencyIdent, 'workspace:*', DependencyType) :-\n  workspace_ident(_, DependencyIdent),\n  workspace_has_dependency(WorkspaceCwd, DependencyIdent, _, DependencyType).\n
\n

We define a gen_enforced_dependency_range that requires the dependency range workspace:* to be used if the dependency name is also the name of a valid workspace. The final workspace_has_dependency check is there to ensure that this rule is only applied on workspace that currently depend on the specified workspace in the first place (if it wasn't there, the rule would instead force all workspaces to depend on one another).

","frontmatter":{"path":"/features/constraints","title":"Constraints"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"features"}} \ No newline at end of file diff --git a/docs/static/d/882/path---cli-constraints-query-7-be-23f-jW33yBkYRfMXvh5gZw2NCY9sw.json b/docs/static/d/882/path---cli-constraints-query-7-be-23f-jW33yBkYRfMXvh5gZw2NCY9sw.json new file mode 100644 index 000000000000..62127fc821a0 --- /dev/null +++ b/docs/static/d/882/path---cli-constraints-query-7-be-23f-jW33yBkYRfMXvh5gZw2NCY9sw.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Query the constraints fact database.

\n

Usage

\n
$> yarn constraints query <query>
\n

Details

\n

This command will output all matches to the given prolog query

\n

Examples

\n

List all dependencies throughout the workspace\n:

\n
yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'
","frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/892/path---advanced-contributing-e-1-d-e74-hX9bz04kqq4Lt0kNnhwZJXGjwRE.json b/docs/static/d/892/path---advanced-contributing-e-1-d-e74-hX9bz04kqq4Lt0kNnhwZJXGjwRE.json new file mode 100644 index 000000000000..306a376ab8ba --- /dev/null +++ b/docs/static/d/892/path---advanced-contributing-e-1-d-e74-hX9bz04kqq4Lt0kNnhwZJXGjwRE.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"

Thanks for being here! Yarn gives a lot of importance to being a community project, and we rely on your help as much as you rely on ours. In order to help you help us we've invested in an infra and documentation that should make contributing to Yarn very easy. If you have any feedback on what we could improve, please open an issue to discuss it!

\n

Building the bundle

\n

The standard bundle is built using the following command from anywhere in the repository:

\n
$> yarn build:cli
\n

The standard bundle uses a predefined set of plugins defined in packages/berry-cli/package.json. If your PR aims to add a new plugin to the standard build you'll need to add it there (note that this decision should be left to core maintainers - please don't modify this settings yourself).

\n

For development purposes, you can build your plugin as part of your local bundle by using the --plugin option in the command line:

\n
$> yarn build:cli --plugin @berry/typescript
\n

Testing your code

\n

We currently have two testsuites, built for different purposes. The first one are unit tests and can be triggered by running the following command from anywhere within the repository:

\n
$> yarn test:unit
\n

Those unit tests can typically be found in the packages/*/tests directory.

\n

While various subcomponents are tested via unit tests (for example the portable shell library), Yarn itself isn't tested through unit tests - we instead rely on integration tests which are much closer from our users setup. Those tests can be triggered through the following command (again, from anywhere within the repository):

\n
$> yarn test:integration
\n

In both cases the underlying framework we use is Jest, which means that you can filter the tests you want to run by using the -t flag (or simply the file path):

\n
$> yarn test:unit berry-shell\n$> yarn test:integration -t 'it should correctly install a single dependency that contains no sub-dependencies'
\n

Don't forget that your PR will require all the tests to pass before being merged!

\n

Formatting your code

\n

Before submitting your code for review, please make sure your code is properly formatted by using the following command from anywhere within the repository:

\n
$> yarn test:lint
\n

We use ESLint to check this, so using the --fix flag will cause ESLint to attempt to automatically correct most errors that might be left in your code:

\n
$> yarn test:lint --fix
","frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/91/path---cli-plugin-dl-df-1-73c-Eqn6PjVMXU39RNQoinuGBbofB9M.json b/docs/static/d/91/path---cli-plugin-dl-df-1-73c-Eqn6PjVMXU39RNQoinuGBbofB9M.json new file mode 100644 index 000000000000..1ed41fcd107b --- /dev/null +++ b/docs/static/d/91/path---cli-plugin-dl-df-1-73c-Eqn6PjVMXU39RNQoinuGBbofB9M.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

List the active plugins.

\n

Usage

\n
$> yarn plugin dl [name] [-l,--list]
\n

Details

\n

This command download the specified plugin from its remote location and updates\nthe configuration to reference it in further CLI invocations.

\n

If the -l,--list option is present, Yarn will print the list of plugins\navailable from the official Yarn repository. Those plugins are not mandatory or\nnecessarily better than the ones provided by the community.

\n

Examples

\n

Download and activate the \"@berry/plugin-exec\" plugin\n:

\n
yarn plugin dl @berry/plugin-exec
\n

Download and activate a community plugin\n:

\n
yarn plugin dl https://example.org/path/to/plugin.js
\n

List the official plugins\n:

\n
yarn plugin dl --list
","frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/911/path---cli-init-7-fc-b73-A4g5nmRTkFBUPsvBxzrmitGk.json b/docs/static/d/911/path---cli-init-7-fc-b73-A4g5nmRTkFBUPsvBxzrmitGk.json new file mode 100644 index 000000000000..29340a525b6b --- /dev/null +++ b/docs/static/d/911/path---cli-init-7-fc-b73-A4g5nmRTkFBUPsvBxzrmitGk.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Create a new package.

\n

Usage

\n
$> yarn init [-p,--private]
\n

Details

\n

This command will setup a new package in your local directory.

\n

If the -p,--private option is set, the package will be private by default.

\n

The following settings can be used in order to affect what the generated\npackage.json will look like:

\n
    \n
  • initLicense- initScope- initVersion
  • \n
\n

Examples

\n

Create a new package in the local directory\n:

\n
yarn init
\n

Create a new private package in the local directory\n:

\n
yarn init -p
","frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/915/path---cli-why-122-81a-95qxvbLnED2mbhG00AjySPzBWo.json b/docs/static/d/915/path---cli-why-122-81a-95qxvbLnED2mbhG00AjySPzBWo.json deleted file mode 100644 index 6adad4734886..000000000000 --- a/docs/static/d/915/path---cli-why-122-81a-95qxvbLnED2mbhG00AjySPzBWo.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Display the reason why a package is needed.

\n

Usage

\n
$> yarn why <package> [--peers]\n
\n

Details

\n

This command prints the exact reasons why a package appears in the dependency\ntree.

\n

If --peers is set, the command will also print the peer dependencies that\nmatch the specified name.

\n

Examples

\n

Explain why lodash is used in your project\n:

\n
yarn why lodash\n
","frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/919/path---cli-constraints-fix-ace-b88-EH6gPrU9gUaBKYRk3QsdtfiX2Hg.json b/docs/static/d/919/path---cli-constraints-fix-ace-b88-EH6gPrU9gUaBKYRk3QsdtfiX2Hg.json new file mode 100644 index 000000000000..79430761d604 --- /dev/null +++ b/docs/static/d/919/path---cli-constraints-fix-ace-b88-EH6gPrU9gUaBKYRk3QsdtfiX2Hg.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Make the project constraint-compliant if possible.

\n

Usage

\n
$> yarn constraints fix 
\n

Details

\n

This command will run constraints on your project and try its best to\nautomatically fix any error it finds. If some errors cannot be automatically\nfixed (in particular all errors triggered by gen_invalid_dependency rules) the\nprocess will exit with a non-zero exit code, and an install will be\nautomatically be ran otherwise.

\n

For more information as to how to write constraints, please consult our\ndedicated page on our website: .

\n

Examples

\n

Automatically fix as many things as possible in your project\n:

\n
yarn constraints fix
","frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/925/path---advanced-migration-fac-b1c-8Id7kvMFRBp87yeNU7n5BZdVQzQ.json b/docs/static/d/925/path---advanced-migration-fac-b1c-8Id7kvMFRBp87yeNU7n5BZdVQzQ.json new file mode 100644 index 000000000000..ba96311e136a --- /dev/null +++ b/docs/static/d/925/path---advanced-migration-fac-b1c-8Id7kvMFRBp87yeNU7n5BZdVQzQ.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/advanced/architecture","title":"Architecture"}}},{"node":{"frontmatter":{"path":"/advanced/contributing","title":"Contributing"}}},{"node":{"frontmatter":{"path":"/advanced/error-codes","title":"Error Codes"}}},{"node":{"frontmatter":{"path":"/advanced/lexicon","title":"Lexicon"}}},{"node":{"frontmatter":{"path":"/advanced/migration","title":"Migration"}}},{"node":{"frontmatter":{"path":"/advanced/peer-dependencies","title":"Peer Dependencies"}}},{"node":{"frontmatter":{"path":"/advanced/pnpify","title":"PnPify"}}}]},"markdownRemark":{"html":"

Yarn v2 is a very different software from the v1. While one of our aim is to make the transition as easy as possible, some behaviors needed to be tweaked. To make things easier we've documented the most common problems that may arise when porting from one project to the other, along with suggestions to keep moving forward.

\n

A package is trying to access another package

\n
\n

A package is trying to access another package without the second one being listed as a dependency of the first one

\n
\n

Some packages don't properly list their actual dependencies for a reason or another. Now that we've fully switched to Plug'n'Play and actually enforce dependency visibility, this might become more apparent than it previously was, and this error might start to appear.

\n

The long term fix is of course to submit a pull request upstream to add the missing dependency to the package listing. Given that it sometimes might take sometime before they get merged, we also have a more short-term fix available: open your yarn.lock file, locate the entry for the faulty package, manually add a new dependencies entry with the missing dependency, then run yarn install to apply your changes.

\n

Note that the short-term fix isn't meant to be long-term: you'll need to reapply it each time the package version changes and its metadata are downloaded from the registry again.

\n

Yarnrc file detection

\n

The Yarnrc files mechanisms have been changed and simplified. In particular:

\n
    \n
  • \n

    Yarn doesn't use the configuration from your .npmrc files anymore; we instead read all of our configuration from the .yarnrc files whose available settings can be found in our documentation.

    \n
  • \n
  • \n

    All environment variables prefixed with YARN_ are automatically used to override the matching configuration settings. So for example, adding YARN_NPM_REGISTRY_SERVER into your environment will change the value of npmRegistryServer.

    \n
  • \n
\n

Yarnrc settings

\n

The settings available in the yarnrc file have changed. Using old, unsupported settings will cause Yarn to throw an exception at boot time unless properly guarded.

\n

We recommend you to make sure you only use modern settings if possible. In case a particular feature you relied on in the v1 is missing in the v2, feel free to open an issue on our repository to discuss whether we should add it back.

\n

If you absolutely need to keep in your file hierarchy both v1 and v2 settings, you can use the special field named berry. Should Yarn v2+ find this field, it will use its content and ignore any other field. For example, the following file will work as expected on both the v1 and v2+ releases:

\n
# v1 settings\nworkspaces-experimental true\n\nberry:\n  # v2 settings\n  enable-global-cache true
\n

Plug'n'Play

\n

Starting from the v2, Plug'n'Play is enabled by default. This might cause compatibility issues in a few corner cases for projects that kept relying on unsafe patterns. Keep an eye on the dedicated page, and try to avoid those projects until they correct the situation. Also feel free to open an issue on Yarn's repository as well so that we can keep track of them and offer our help.

\n

TypeScript

\n

If you're using TypeScript and particularly the tsc binary, read on the /advanced/pnpify page to learn more about a way to transparently make tsc compatible with Plug'n'Play. We actually use it on the Yarn repository itself!

","frontmatter":{"path":"/advanced/migration","title":"Migration"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"advanced"}} \ No newline at end of file diff --git a/docs/static/d/930/path---cli-set-version-52-e-d8e-zBHKW2PGGHW8Btw12sSaPCRmPdo.json b/docs/static/d/930/path---cli-set-version-52-e-d8e-zBHKW2PGGHW8Btw12sSaPCRmPdo.json new file mode 100644 index 000000000000..2d77c1cc073d --- /dev/null +++ b/docs/static/d/930/path---cli-set-version-52-e-d8e-zBHKW2PGGHW8Btw12sSaPCRmPdo.json @@ -0,0 +1 @@ +{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/login","title":"`yarn npm login`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/npm/whoami","title":"`yarn npm whoami`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/version/apply","title":"`yarn version apply`"}}},{"node":{"frontmatter":{"path":"/cli/version","title":"`yarn version`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach/run","title":"`yarn workspaces foreach run`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Lock the Yarn version used by the project.

\n

Usage

\n
$> yarn set version <range> [--allow-rc] [--dry-run]
\n

Details

\n

This command will download a specific release of Yarn directly from the Yarn\nGithub repository, will store it inside your project, and will change the\nyarn-path settings from your project .yarnrc file to point to the new file.

\n

A very good use case for this command is to enforce the version of Yarn used by\nthe any single member of your team inside a same project - by doing this you\nensure that you have control on Yarn upgrades and downgrades (including on your\ndeployment servers), and get rid of most of the headaches related to someone\nusing a slightly different version and getting a different behavior than you.

\n

The command will by default only consider stable releases as valid candidates,\nbut releases candidates can be downloaded as well provided you add the\n--allow-rc flag or use an exact tag.

\n

Note that because you're on the v2 alpha trunk, running the command without\nparameter will always download the latest build straight from the repository.\nThis behavior will be tweaked near the release to only download stable releases\nonce more.

\n

Adding the --dry-run flag will cause Yarn not to persist the changes on the\ndisk.

\n

Examples

\n

Download the latest release from the Yarn repository\n:

\n
yarn set version latest
\n

Download the latest nightly release from the Yarn repository\n:

\n
yarn set version nightly
\n

Switch back to Yarn v1\n:

\n
yarn set version ^1
\n

Switch back to a specific release\n:

\n
yarn set version 1.14.0
","frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/static/d/991/path---cli-install-7-b-3-481-TjvIybmdhSELuZ5cbXJikNT6M.json b/docs/static/d/991/path---cli-install-7-b-3-481-TjvIybmdhSELuZ5cbXJikNT6M.json deleted file mode 100644 index 7c89e70ccf67..000000000000 --- a/docs/static/d/991/path---cli-install-7-b-3-481-TjvIybmdhSELuZ5cbXJikNT6M.json +++ /dev/null @@ -1 +0,0 @@ -{"data":{"allMarkdownRemark":{"edges":[{"node":{"frontmatter":{"path":"/cli/add","title":"`yarn add`"}}},{"node":{"frontmatter":{"path":"/cli/bin","title":"`yarn bin`"}}},{"node":{"frontmatter":{"path":"/cli/cache/clean","title":"`yarn cache clean`"}}},{"node":{"frontmatter":{"path":"/cli/config/set","title":"`yarn config set`"}}},{"node":{"frontmatter":{"path":"/cli/config","title":"`yarn config`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/check","title":"`yarn constraints check`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/fix","title":"`yarn constraints fix`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/query","title":"`yarn constraints query`"}}},{"node":{"frontmatter":{"path":"/cli/constraints/source","title":"`yarn constraints source`"}}},{"node":{"frontmatter":{"path":"/cli/dlx","title":"`yarn dlx`"}}},{"node":{"frontmatter":{"path":"/cli/help","title":"`yarn help`"}}},{"node":{"frontmatter":{"path":"/cli/init","title":"`yarn init`"}}},{"node":{"frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},{"node":{"frontmatter":{"path":"/cli/link","title":"`yarn link`"}}},{"node":{"frontmatter":{"path":"/cli/node","title":"`yarn node`"}}},{"node":{"frontmatter":{"path":"/cli/npm/publish","title":"`yarn npm publish`"}}},{"node":{"frontmatter":{"path":"/cli/pack","title":"`yarn pack`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/dl","title":"`yarn plugin dl`"}}},{"node":{"frontmatter":{"path":"/cli/plugin/list","title":"`yarn plugin list`"}}},{"node":{"frontmatter":{"path":"/cli/policies/set-resolution","title":"`yarn policies set-resolution`"}}},{"node":{"frontmatter":{"path":"/cli/remove","title":"`yarn remove`"}}},{"node":{"frontmatter":{"path":"/cli/run","title":"`yarn run`"}}},{"node":{"frontmatter":{"path":"/cli/set/version","title":"`yarn set version`"}}},{"node":{"frontmatter":{"path":"/cli/stage","title":"`yarn stage`"}}},{"node":{"frontmatter":{"path":"/cli/unplug","title":"`yarn unplug`"}}},{"node":{"frontmatter":{"path":"/cli/up","title":"`yarn up`"}}},{"node":{"frontmatter":{"path":"/cli/why","title":"`yarn why`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/foreach","title":"`yarn workspaces foreach`"}}},{"node":{"frontmatter":{"path":"/cli/workspaces/list","title":"`yarn workspaces list`"}}}]},"markdownRemark":{"html":"

Install the project dependencies.

\n

Usage

\n
$> yarn install [--frozen-lockfile]\n
\n

Details

\n

This command setup your project if needed. The installation is splitted in four\ndifferent steps that each have their own characteristics:

\n
    \n
  • \n

    Resolution: First the package manager will resolve your dependencies. The\nexact way a dependency version is privileged over another isn't standardized\noutside of the regular semver guarantees. If a package doesn't resolve to what\nyou would expect, check that all dependencies are correctly declared (also\ncheck our website for more information: ).

    \n
  • \n
  • \n

    Fetch: Then we download all the dependencies if needed, and make sure that\nthey're all stored within our cache (check the value of cache-folder in\nyarn config to see where are stored the cache files).

    \n
  • \n
  • \n

    Link: Then we send the dependency tree information to internal plugins\ntasked from writing them on the disk in some form (for example by generating\nthe .pnp.js file you might know).

    \n
  • \n
  • \n

    Build: Once the dependency tree has been written on the disk, the package\nmanager will now be free to run the build scripts for all packages that might\nneed it, in a topological order compatible with the way they depend on one\nanother.

    \n
  • \n
\n

Note that running this command is not part of the recommended workflow. Yarn\nsupports zero-installs, which means that as long as you store your cache and\nyour .pnp.js file inside your repository, everything will work without requiring\nany install right after cloning your repository or switching branches.

\n

Examples

\n

Install the project\n:

\n
yarn install\n
","frontmatter":{"path":"/cli/install","title":"`yarn install`"}}},"pageContext":{"isCreatedByStatefulCreatePages":false,"category":"cli"}} \ No newline at end of file diff --git a/docs/styles-33bb4e0c7191f87f28e5.js b/docs/styles-33bb4e0c7191f87f28e5.js new file mode 100644 index 000000000000..16c6a9939886 --- /dev/null +++ b/docs/styles-33bb4e0c7191f87f28e5.js @@ -0,0 +1,2 @@ +(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{139:function(n,o,w){},157:function(n,o,w){}}]); +//# sourceMappingURL=styles-33bb4e0c7191f87f28e5.js.map \ No newline at end of file diff --git a/docs/styles-ae27307e11a7e368ed31.js.map b/docs/styles-33bb4e0c7191f87f28e5.js.map similarity index 59% rename from docs/styles-ae27307e11a7e368ed31.js.map rename to docs/styles-33bb4e0c7191f87f28e5.js.map index 1ddefe92e40b..b326db88e385 100644 --- a/docs/styles-ae27307e11a7e368ed31.js.map +++ b/docs/styles-33bb4e0c7191f87f28e5.js.map @@ -1 +1 @@ -{"version":3,"sources":[],"names":[],"mappings":"","file":"styles-ae27307e11a7e368ed31.js","sourceRoot":""} \ No newline at end of file +{"version":3,"sources":[],"names":[],"mappings":"","file":"styles-33bb4e0c7191f87f28e5.js","sourceRoot":""} \ No newline at end of file diff --git a/docs/styles-ae27307e11a7e368ed31.js b/docs/styles-ae27307e11a7e368ed31.js deleted file mode 100644 index 4f002bc4ddeb..000000000000 --- a/docs/styles-ae27307e11a7e368ed31.js +++ /dev/null @@ -1,2 +0,0 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[0],{177:function(n,w,o){}}]); -//# sourceMappingURL=styles-ae27307e11a7e368ed31.js.map \ No newline at end of file diff --git a/docs/styles.ded5aee70e76278d80e9.css b/docs/styles.ded5aee70e76278d80e9.css new file mode 100644 index 000000000000..d248eb71dcbe --- /dev/null +++ b/docs/styles.ded5aee70e76278d80e9.css @@ -0,0 +1 @@ +*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0;font-family:Open Sans;line-height:1.5}code{font-family:PT Mono}:not(pre)>code[class*=language-]{background:transparent;padding:unset}code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.block-comment,.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#999}.token.punctuation{color:#ccc}.token.attr-name,.token.deleted,.token.namespace,.token.tag{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.function,.token.number{color:#f08d49}.token.class-name,.token.constant,.token.property,.token.symbol{color:#f8c555}.token.atrule,.token.builtin,.token.important,.token.keyword,.token.selector{color:#cc99cd}.token.attr-value,.token.char,.token.regex,.token.string,.token.variable{color:#7ec699}.token.entity,.token.operator,.token.url{color:#67cdcc}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green} \ No newline at end of file diff --git a/docs/styles.dfc05131508d0b4d0d62.css b/docs/styles.dfc05131508d0b4d0d62.css deleted file mode 100644 index 3b7896105282..000000000000 --- a/docs/styles.dfc05131508d0b4d0d62.css +++ /dev/null @@ -1 +0,0 @@ -*{box-sizing:border-box}body,html{height:100%;margin:0;padding:0;font-family:Open Sans;line-height:1.5}code{font-family:PT Mono} \ No newline at end of file diff --git a/docs/webpack-runtime-0343150c08ac61cee6d3.js b/docs/webpack-runtime-0343150c08ac61cee6d3.js new file mode 100644 index 000000000000..c881a96c39f4 --- /dev/null +++ b/docs/webpack-runtime-0343150c08ac61cee6d3.js @@ -0,0 +1,2 @@ +!function(e){function n(n){for(var t,a,f=n[0],i=n[1],u=n[2],p=0,l=[];p