├── .gitignore ├── LICENSE ├── README.md ├── dist ├── github-card-playground.min.js └── github-card.min.js ├── examples └── test.html ├── github-card.svg ├── package-lock.json ├── package.json ├── public └── index.html ├── rollup.config.js └── src ├── App.svelte ├── GithubCard.svelte └── main.js /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | /public/build/ 3 | 4 | .DS_Store 5 | .idea -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 reddec 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Custom element tag for github repository 2 | 3 | [![demo](https://img.shields.io/badge/documentation-latest-green)](https://reddec.net/demo/github-card/) 4 | [![license](https://img.shields.io/github/license/reddec/github-card.svg)](https://github.com/reddec/github-card) 5 | [![donate](https://img.shields.io/badge/help_by️-donate❤-ff69b4)](http://reddec.net/about/#donate) 6 | 7 | ![github-card](https://user-images.githubusercontent.com/6597086/97158487-776b3980-17b4-11eb-80d3-4989c5e61785.png) 8 | 9 | 10 | [Check online DEMO](https://reddec.net/demo/github-card/) 11 | 12 | ![image](https://user-images.githubusercontent.com/6597086/81782278-2c25dd00-952c-11ea-9d39-307a756733ee.png) 13 | 14 | Minimal sample for embedding for the `sveltejs/svelte` repo 15 | 16 | ```html 17 | 18 | 19 | 20 | ``` 21 | 22 | Additional flags: 23 | 24 | * `flat="yes"` - disables card shadow 25 | * `plain="yes"` - disables logo for the repository 26 | 27 | ## Features 28 | 29 | * ultra light - 12KB without gzip (4.5KB - gzipped) 30 | * easy to use 31 | * caches information 32 | * provides fallback if no JS available (or for old browsers) 33 | * powered by Svelte 34 | 35 | ## Reason 36 | 37 | I wanted to add nice Github card to my blog, but I didn't want to learn PHP (wordpress). 38 | 39 | 40 | [![bymeacoffee](https://cdn.buymeacoffee.com/buttons/default-orange.png)](https://www.buymeacoffee.com/reddec) 41 | -------------------------------------------------------------------------------- /dist/github-card-playground.min.js: -------------------------------------------------------------------------------- 1 | !function(){"use strict";function e(){}function t(e){return e()}function n(){return Object.create(null)}function l(e){e.forEach(t)}function o(e){return"function"==typeof e}function c(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function s(e,t){e.appendChild(t)}function i(e,t,n){e.insertBefore(t,n||null)}function r(e){e.parentNode.removeChild(e)}function a(e){return document.createElement(e)}function d(e){return document.createTextNode(e)}function u(){return d(" ")}function h(){return d("")}function g(e,t,n,l){return e.addEventListener(t,n,l),()=>e.removeEventListener(t,n,l)}function f(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function p(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function v(e,t){e.value=null==t?"":t}function b(e,t,n,l){e.style.setProperty(t,n,l?"important":"")}function m(e,t,n){e.classList[n?"add":"remove"](t)}let y;function j(e){y=e}function x(){if(!y)throw new Error("Function called outside component initialization");return y}const k=[],w=[],$=[],_=[],C=Promise.resolve();let E=!1;function S(e){$.push(e)}let z=!1;const N=new Set;function B(){if(!z){z=!0;do{for(let e=0;e{O.delete(e),l&&(n&&e.d(1),l())}),e.o(t)}}function A(e,t){const n=t.token={};function l(e,l,o,c){if(t.token!==n)return;t.resolved=c;let s=t.ctx;void 0!==o&&(s=s.slice(),s[o]=c);const i=e&&(t.current=e)(s);let r=!1;t.block&&(t.blocks?t.blocks.forEach((e,n)=>{n!==l&&e&&(L(),T(e,1,1,()=>{t.blocks[n]===e&&(t.blocks[n]=null)}),F())}):t.block.d(1),i.c(),P(i,1),i.m(t.mount(),t.anchor),r=!0),t.block=i,t.blocks&&(t.blocks[l]=i),r&&B()}if((o=e)&&"object"==typeof o&&"function"==typeof o.then){const n=x();if(e.then(e=>{j(n),l(t.then,1,t.value,e),j(null)},e=>{if(j(n),l(t.catch,2,t.error,e),j(null),!t.hasCatch)throw e}),t.current!==t.pending)return l(t.pending,0),!0}else{if(t.current!==t.then)return l(t.then,1,t.value,e),!0;t.resolved=e}var o}function H(e,n,c,s){const{fragment:i,on_mount:r,on_destroy:a,after_update:d}=e.$$;i&&i.m(n,c),s||S(()=>{const n=r.map(t).filter(o);a?a.push(...n):l(n),e.$$.on_mount=[]}),d.forEach(S)}function U(e,t){const n=e.$$;null!==n.fragment&&(l(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function R(e,t){-1===e.$$.dirty[0]&&(k.push(e),E||(E=!0,C.then(B)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const o=l.length?l[0]:n;return h.ctx&&i(h.ctx[e],h.ctx[e]=o)&&(!h.skip_bound&&h.bound[e]&&h.bound[e](o),g&&R(t,e)),n}):[],h.update(),g=!0,l(h.before_update),h.fragment=!!s&&s(h.ctx),o.target){if(o.hydrate){const e=function(e){return Array.from(e.childNodes)}(o.target);h.fragment&&h.fragment.l(e),e.forEach(r)}else h.fragment&&h.fragment.c();o.intro&&P(t.$$.fragment),H(t,o.target,o.anchor,o.customElement),B()}j(u)}class J{$destroy(){U(this,1),this.$destroy=e}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){var t;this.$$set&&(t=e,0!==Object.keys(t).length)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function q(e){let t,n,l,o,c,h,g,v,b,m,y,j=e[7]+"";return{c(){t=a("p"),n=a("a"),l=d("https://github.com/"),o=d(e[0]),h=u(),g=a("br"),v=u(),b=a("small"),m=d("oops... load failed "),y=d(j),f(n,"href",c="https://github.com/"+e[0])},m(e,c){i(e,t,c),s(t,n),s(n,l),s(n,o),s(t,h),s(t,g),s(t,v),s(t,b),s(b,m),s(b,y)},p(e,t){1&t&&p(o,e[0]),1&t&&c!==(c="https://github.com/"+e[0])&&f(n,"href",c),1&t&&j!==(j=e[7]+"")&&p(y,j)},d(e){e&&r(t)}}}function G(e){let t,n,l,o,c,h,g,v,b,y,j,x,k,w,$,_,C,E,S,z,N,B,M,O,I,L,F,P,T,A,H,U,R,D,J,q,G,K,Q,V,X,Y,Z,ee,te=e[6].name+"",ne=e[6].language+"",le=e[6].license.spdx_id+"",oe=e[6].stargazers_count+"",ce=e[6].subscribers_count+"",se=e[6].description+"",ie=e[6].owner.login+"",re=!e[2]&&W(e);return{c(){t=a("div"),n=a("div"),re&&re.c(),l=u(),o=a("div"),c=a("div"),h=a("div"),g=a("a"),v=d(te),y=u(),j=a("div"),x=a("div"),k=d(ne),w=u(),$=a("div"),_=d(le),C=u(),E=a("div"),S=a("a"),z=a("div"),N=a("div"),N.innerHTML=' \n Star',B=u(),M=a("div"),O=d(oe),L=u(),F=a("a"),P=a("div"),T=a("div"),T.innerHTML=' \n Follow',A=u(),H=a("div"),U=d(ce),D=u(),J=a("p"),q=d(se),G=u(),K=a("div"),Q=a("a"),V=d("by "),X=d(ie),Z=u(),ee=a("a"),ee.textContent="widget by reddec",f(g,"target","_blank"),f(g,"href",b=e[6].html_url),f(g,"class","svelte-oc8ljn"),f(h,"class","github-title svelte-oc8ljn"),f(x,"class","github-language svelte-oc8ljn"),f($,"class","github-license svelte-oc8ljn"),f(j,"class","github-tags svelte-oc8ljn"),f(c,"class","github-head svelte-oc8ljn"),f(N,"class","github-badge-title svelte-oc8ljn"),f(M,"class","github-badge-content svelte-oc8ljn"),f(z,"class","github-badge svelte-oc8ljn"),f(S,"href",I=e[6].html_url),f(S,"target","_blank"),f(S,"class","svelte-oc8ljn"),f(T,"class","github-badge-title svelte-oc8ljn"),f(H,"class","github-badge-content svelte-oc8ljn"),f(P,"class","github-badge svelte-oc8ljn"),f(F,"href",R=e[6].html_url),f(F,"target","_blank"),f(F,"class","svelte-oc8ljn"),f(E,"class","github-meta svelte-oc8ljn"),f(J,"class","github-description svelte-oc8ljn"),f(o,"class","github-content svelte-oc8ljn"),f(n,"class","github-card svelte-oc8ljn"),f(Q,"class","github-author svelte-oc8ljn"),f(Q,"href",Y=e[6].owner.html_url),f(Q,"target","_blank"),f(ee,"class","github-made svelte-oc8ljn"),f(ee,"href","https://github.com/reddec/github-card"),f(K,"class","github-footer svelte-oc8ljn"),f(t,"class","github svelte-oc8ljn"),m(t,"shadow",!e[3]),m(t,"block",e[1]),m(t,"inline-block",!e[1])},m(e,r){i(e,t,r),s(t,n),re&&re.m(n,null),s(n,l),s(n,o),s(o,c),s(c,h),s(h,g),s(g,v),s(c,y),s(c,j),s(j,x),s(x,k),s(j,w),s(j,$),s($,_),s(o,C),s(o,E),s(E,S),s(S,z),s(z,N),s(z,B),s(z,M),s(M,O),s(E,L),s(E,F),s(F,P),s(P,T),s(P,A),s(P,H),s(H,U),s(o,D),s(o,J),s(J,q),s(t,G),s(t,K),s(K,Q),s(Q,V),s(Q,X),s(K,Z),s(K,ee)},p(e,o){e[2]?re&&(re.d(1),re=null):re?re.p(e,o):(re=W(e),re.c(),re.m(n,l)),1&o&&te!==(te=e[6].name+"")&&p(v,te),1&o&&b!==(b=e[6].html_url)&&f(g,"href",b),1&o&&ne!==(ne=e[6].language+"")&&p(k,ne),1&o&&le!==(le=e[6].license.spdx_id+"")&&p(_,le),1&o&&oe!==(oe=e[6].stargazers_count+"")&&p(O,oe),1&o&&I!==(I=e[6].html_url)&&f(S,"href",I),1&o&&ce!==(ce=e[6].subscribers_count+"")&&p(U,ce),1&o&&R!==(R=e[6].html_url)&&f(F,"href",R),1&o&&se!==(se=e[6].description+"")&&p(q,se),1&o&&ie!==(ie=e[6].owner.login+"")&&p(X,ie),1&o&&Y!==(Y=e[6].owner.html_url)&&f(Q,"href",Y),8&o&&m(t,"shadow",!e[3]),2&o&&m(t,"block",e[1]),2&o&&m(t,"inline-block",!e[1])},d(e){e&&r(t),re&&re.d()}}}function W(e){let t,n,l,o,c,d;return{c(){t=a("div"),n=a("a"),l=a("img"),f(l,"alt",o=e[6].owner.login+" logo"),l.src!==(c=e[6].owner.avatar_url)&&f(l,"src",c),f(l,"class","svelte-oc8ljn"),f(n,"target","_blank"),f(n,"href",d=e[6].html_url),f(t,"class","github-logo svelte-oc8ljn")},m(e,o){i(e,t,o),s(t,n),s(n,l)},p(e,t){1&t&&o!==(o=e[6].owner.login+" logo")&&f(l,"alt",o),1&t&&l.src!==(c=e[6].owner.avatar_url)&&f(l,"src",c),1&t&&d!==(d=e[6].html_url)&&f(n,"href",d)},d(e){e&&r(t)}}}function K(e){let t,n,l,o,c,h,g,v,b;return{c(){t=a("p"),n=a("a"),l=d("https://github.com/"),o=d(e[0]),h=u(),g=a("br"),v=u(),b=a("small"),b.textContent="loading...",f(n,"href",c="https://github.com/"+e[0])},m(e,c){i(e,t,c),s(t,n),s(n,l),s(n,o),s(t,h),s(t,g),s(t,v),s(t,b)},p(e,t){1&t&&p(o,e[0]),1&t&&c!==(c="https://github.com/"+e[0])&&f(n,"href",c)},d(e){e&&r(t)}}}function Q(t){let n,l,o={ctx:t,current:null,token:null,hasCatch:!0,pending:K,then:G,catch:q,value:6,error:7};return A(l=t[4](t[0]),o),{c(){n=h(),o.block.c()},m(e,t){i(e,n,t),o.block.m(e,o.anchor=t),o.mount=()=>n.parentNode,o.anchor=n},p(e,[n]){if(t=e,o.ctx=t,1&n&&l!==(l=t[4](t[0]))&&A(l,o));else{const e=t.slice();e[6]=e[7]=o.resolved,o.block.p(e,n)}},i:e,o:e,d(e){e&&r(n),o.block.d(e),o.token=null,o=null}}}function V(e,t,n){let{repo:l}=t,{wide:o=!1}=t,{plain:c=!1}=t,{flat:s=!1}=t,{keepalive:i=36e5}=t;return e.$$set=e=>{"repo"in e&&n(0,l=e.repo),"wide"in e&&n(1,o=e.wide),"plain"in e&&n(2,c=e.plain),"flat"in e&&n(3,s=e.flat),"keepalive"in e&&n(5,i=e.keepalive)},[l,o,c,s,async function(e){if(!e)throw new Error("no repo defined");let t=localStorage.getItem(e);if(t)try{let{at:e,info:n}=JSON.parse(t);if(Date.now()-e\n"),z&&z.c(),$=d('\n 7 | 8 | 9 | 10 | 11 | 12 |
13 | 20 | 21 | -------------------------------------------------------------------------------- /github-card.svg: -------------------------------------------------------------------------------- 1 | GcJSWEBgithub-card -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-card", 3 | "version": "1.0.3", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@babel/code-frame": { 8 | "version": "7.12.13", 9 | "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", 10 | "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", 11 | "dev": true, 12 | "requires": { 13 | "@babel/highlight": "^7.12.13" 14 | } 15 | }, 16 | "@babel/helper-validator-identifier": { 17 | "version": "7.12.11", 18 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", 19 | "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", 20 | "dev": true 21 | }, 22 | "@babel/highlight": { 23 | "version": "7.13.10", 24 | "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.13.10.tgz", 25 | "integrity": "sha512-5aPpe5XQPzflQrFwL1/QoeHkP2MsA4JCntcXHRhEsdsfPVkvPi2w7Qix4iV7t5S/oC9OodGrggd8aco1g3SZFg==", 26 | "dev": true, 27 | "requires": { 28 | "@babel/helper-validator-identifier": "^7.12.11", 29 | "chalk": "^2.0.0", 30 | "js-tokens": "^4.0.0" 31 | } 32 | }, 33 | "@rollup/plugin-commonjs": { 34 | "version": "17.1.0", 35 | "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz", 36 | "integrity": "sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew==", 37 | "dev": true, 38 | "requires": { 39 | "@rollup/pluginutils": "^3.1.0", 40 | "commondir": "^1.0.1", 41 | "estree-walker": "^2.0.1", 42 | "glob": "^7.1.6", 43 | "is-reference": "^1.2.1", 44 | "magic-string": "^0.25.7", 45 | "resolve": "^1.17.0" 46 | } 47 | }, 48 | "@rollup/plugin-node-resolve": { 49 | "version": "11.2.0", 50 | "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.0.tgz", 51 | "integrity": "sha512-qHjNIKYt5pCcn+5RUBQxK8krhRvf1HnyVgUCcFFcweDS7fhkOLZeYh0mhHK6Ery8/bb9tvN/ubPzmfF0qjDCTA==", 52 | "dev": true, 53 | "requires": { 54 | "@rollup/pluginutils": "^3.1.0", 55 | "@types/resolve": "1.17.1", 56 | "builtin-modules": "^3.1.0", 57 | "deepmerge": "^4.2.2", 58 | "is-module": "^1.0.0", 59 | "resolve": "^1.19.0" 60 | } 61 | }, 62 | "@rollup/pluginutils": { 63 | "version": "3.1.0", 64 | "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", 65 | "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", 66 | "dev": true, 67 | "requires": { 68 | "@types/estree": "0.0.39", 69 | "estree-walker": "^1.0.1", 70 | "picomatch": "^2.2.2" 71 | }, 72 | "dependencies": { 73 | "estree-walker": { 74 | "version": "1.0.1", 75 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", 76 | "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", 77 | "dev": true 78 | } 79 | } 80 | }, 81 | "@types/estree": { 82 | "version": "0.0.39", 83 | "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", 84 | "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", 85 | "dev": true 86 | }, 87 | "@types/node": { 88 | "version": "14.14.33", 89 | "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.33.tgz", 90 | "integrity": "sha512-oJqcTrgPUF29oUP8AsUqbXGJNuPutsetaa9kTQAQce5Lx5dTYWV02ScBiT/k1BX/Z7pKeqedmvp39Wu4zR7N7g==", 91 | "dev": true 92 | }, 93 | "@types/resolve": { 94 | "version": "1.17.1", 95 | "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", 96 | "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", 97 | "dev": true, 98 | "requires": { 99 | "@types/node": "*" 100 | } 101 | }, 102 | "ansi-styles": { 103 | "version": "3.2.1", 104 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", 105 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", 106 | "dev": true, 107 | "requires": { 108 | "color-convert": "^1.9.0" 109 | } 110 | }, 111 | "anymatch": { 112 | "version": "3.1.1", 113 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", 114 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", 115 | "dev": true, 116 | "requires": { 117 | "normalize-path": "^3.0.0", 118 | "picomatch": "^2.0.4" 119 | } 120 | }, 121 | "balanced-match": { 122 | "version": "1.0.0", 123 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 124 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", 125 | "dev": true 126 | }, 127 | "binary-extensions": { 128 | "version": "2.2.0", 129 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", 130 | "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", 131 | "dev": true 132 | }, 133 | "brace-expansion": { 134 | "version": "1.1.11", 135 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", 136 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", 137 | "dev": true, 138 | "requires": { 139 | "balanced-match": "^1.0.0", 140 | "concat-map": "0.0.1" 141 | } 142 | }, 143 | "braces": { 144 | "version": "3.0.3", 145 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", 146 | "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", 147 | "dev": true, 148 | "requires": { 149 | "fill-range": "^7.1.1" 150 | }, 151 | "dependencies": { 152 | "fill-range": { 153 | "version": "7.1.1", 154 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", 155 | "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", 156 | "dev": true, 157 | "requires": { 158 | "to-regex-range": "^5.0.1" 159 | } 160 | } 161 | } 162 | }, 163 | "buffer-from": { 164 | "version": "1.1.1", 165 | "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 166 | "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", 167 | "dev": true 168 | }, 169 | "builtin-modules": { 170 | "version": "3.2.0", 171 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.2.0.tgz", 172 | "integrity": "sha512-lGzLKcioL90C7wMczpkY0n/oART3MbBa8R9OFGE1rJxoVI86u4WAGfEk8Wjv10eKSyTHVGkSo3bvBylCEtk7LA==", 173 | "dev": true 174 | }, 175 | "chalk": { 176 | "version": "2.4.2", 177 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", 178 | "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", 179 | "dev": true, 180 | "requires": { 181 | "ansi-styles": "^3.2.1", 182 | "escape-string-regexp": "^1.0.5", 183 | "supports-color": "^5.3.0" 184 | } 185 | }, 186 | "chokidar": { 187 | "version": "3.5.1", 188 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", 189 | "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", 190 | "dev": true, 191 | "requires": { 192 | "anymatch": "~3.1.1", 193 | "braces": "~3.0.2", 194 | "fsevents": "~2.3.1", 195 | "glob-parent": "~5.1.0", 196 | "is-binary-path": "~2.1.0", 197 | "is-glob": "~4.0.1", 198 | "normalize-path": "~3.0.0", 199 | "readdirp": "~3.5.0" 200 | } 201 | }, 202 | "color-convert": { 203 | "version": "1.9.3", 204 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", 205 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", 206 | "dev": true, 207 | "requires": { 208 | "color-name": "1.1.3" 209 | } 210 | }, 211 | "color-name": { 212 | "version": "1.1.3", 213 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", 214 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", 215 | "dev": true 216 | }, 217 | "commander": { 218 | "version": "2.20.3", 219 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", 220 | "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", 221 | "dev": true 222 | }, 223 | "commondir": { 224 | "version": "1.0.1", 225 | "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", 226 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", 227 | "dev": true 228 | }, 229 | "concat-map": { 230 | "version": "0.0.1", 231 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 232 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", 233 | "dev": true 234 | }, 235 | "deepmerge": { 236 | "version": "4.2.2", 237 | "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", 238 | "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", 239 | "dev": true 240 | }, 241 | "escape-string-regexp": { 242 | "version": "1.0.5", 243 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 244 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", 245 | "dev": true 246 | }, 247 | "estree-walker": { 248 | "version": "2.0.2", 249 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", 250 | "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", 251 | "dev": true 252 | }, 253 | "fs.realpath": { 254 | "version": "1.0.0", 255 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 256 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", 257 | "dev": true 258 | }, 259 | "fsevents": { 260 | "version": "2.3.2", 261 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", 262 | "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", 263 | "dev": true, 264 | "optional": true 265 | }, 266 | "function-bind": { 267 | "version": "1.1.1", 268 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 269 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", 270 | "dev": true 271 | }, 272 | "glob": { 273 | "version": "7.1.6", 274 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", 275 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", 276 | "dev": true, 277 | "requires": { 278 | "fs.realpath": "^1.0.0", 279 | "inflight": "^1.0.4", 280 | "inherits": "2", 281 | "minimatch": "^3.0.4", 282 | "once": "^1.3.0", 283 | "path-is-absolute": "^1.0.0" 284 | } 285 | }, 286 | "glob-parent": { 287 | "version": "5.1.2", 288 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", 289 | "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", 290 | "dev": true, 291 | "requires": { 292 | "is-glob": "^4.0.1" 293 | } 294 | }, 295 | "has": { 296 | "version": "1.0.3", 297 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", 298 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", 299 | "dev": true, 300 | "requires": { 301 | "function-bind": "^1.1.1" 302 | } 303 | }, 304 | "has-flag": { 305 | "version": "3.0.0", 306 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", 307 | "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", 308 | "dev": true 309 | }, 310 | "inflight": { 311 | "version": "1.0.6", 312 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 313 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 314 | "dev": true, 315 | "requires": { 316 | "once": "^1.3.0", 317 | "wrappy": "1" 318 | } 319 | }, 320 | "inherits": { 321 | "version": "2.0.4", 322 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", 323 | "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", 324 | "dev": true 325 | }, 326 | "is-binary-path": { 327 | "version": "2.1.0", 328 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", 329 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", 330 | "dev": true, 331 | "requires": { 332 | "binary-extensions": "^2.0.0" 333 | } 334 | }, 335 | "is-core-module": { 336 | "version": "2.2.0", 337 | "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", 338 | "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", 339 | "dev": true, 340 | "requires": { 341 | "has": "^1.0.3" 342 | } 343 | }, 344 | "is-extglob": { 345 | "version": "2.1.1", 346 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", 347 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", 348 | "dev": true 349 | }, 350 | "is-glob": { 351 | "version": "4.0.1", 352 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", 353 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", 354 | "dev": true, 355 | "requires": { 356 | "is-extglob": "^2.1.1" 357 | } 358 | }, 359 | "is-module": { 360 | "version": "1.0.0", 361 | "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", 362 | "integrity": "sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=", 363 | "dev": true 364 | }, 365 | "is-number": { 366 | "version": "7.0.0", 367 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", 368 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", 369 | "dev": true 370 | }, 371 | "is-reference": { 372 | "version": "1.2.1", 373 | "resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz", 374 | "integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==", 375 | "dev": true, 376 | "requires": { 377 | "@types/estree": "*" 378 | } 379 | }, 380 | "jest-worker": { 381 | "version": "26.6.2", 382 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", 383 | "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", 384 | "dev": true, 385 | "requires": { 386 | "@types/node": "*", 387 | "merge-stream": "^2.0.0", 388 | "supports-color": "^7.0.0" 389 | }, 390 | "dependencies": { 391 | "has-flag": { 392 | "version": "4.0.0", 393 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", 394 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", 395 | "dev": true 396 | }, 397 | "supports-color": { 398 | "version": "7.2.0", 399 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", 400 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", 401 | "dev": true, 402 | "requires": { 403 | "has-flag": "^4.0.0" 404 | } 405 | } 406 | } 407 | }, 408 | "js-tokens": { 409 | "version": "4.0.0", 410 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 411 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", 412 | "dev": true 413 | }, 414 | "livereload": { 415 | "version": "0.9.2", 416 | "resolved": "https://registry.npmjs.org/livereload/-/livereload-0.9.2.tgz", 417 | "integrity": "sha512-pDsYKwFBCm663fyYBgqQP8oHvJyL2YPHeVLnrDoWAL7p9Tz1ep/P5LCKL5EfmGmBsFok3N5ZqvBYgoUdod5slg==", 418 | "dev": true, 419 | "requires": { 420 | "chokidar": "^3.5.0", 421 | "livereload-js": "^3.3.1", 422 | "opts": ">= 1.2.0", 423 | "ws": "^7.4.3" 424 | } 425 | }, 426 | "livereload-js": { 427 | "version": "3.3.2", 428 | "resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-3.3.2.tgz", 429 | "integrity": "sha512-w677WnINxFkuixAoUEXOStewzLYGI76XVag+0JWMMEyjJQKs0ibWZMxkTlB96Lm3EjZ7IeOxVziBEbtxVQqQZA==", 430 | "dev": true 431 | }, 432 | "magic-string": { 433 | "version": "0.25.7", 434 | "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", 435 | "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", 436 | "dev": true, 437 | "requires": { 438 | "sourcemap-codec": "^1.4.4" 439 | } 440 | }, 441 | "merge-stream": { 442 | "version": "2.0.0", 443 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", 444 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", 445 | "dev": true 446 | }, 447 | "minimatch": { 448 | "version": "3.0.4", 449 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 450 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 451 | "dev": true, 452 | "requires": { 453 | "brace-expansion": "^1.1.7" 454 | } 455 | }, 456 | "normalize-path": { 457 | "version": "3.0.0", 458 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", 459 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", 460 | "dev": true 461 | }, 462 | "once": { 463 | "version": "1.4.0", 464 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 465 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 466 | "dev": true, 467 | "requires": { 468 | "wrappy": "1" 469 | } 470 | }, 471 | "opts": { 472 | "version": "2.0.2", 473 | "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", 474 | "integrity": "sha512-k41FwbcLnlgnFh69f4qdUfvDQ+5vaSDnVPFI/y5XuhKRq97EnVVneO9F1ESVCdiVu4fCS2L8usX3mU331hB7pg==", 475 | "dev": true 476 | }, 477 | "path-is-absolute": { 478 | "version": "1.0.1", 479 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 480 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", 481 | "dev": true 482 | }, 483 | "path-parse": { 484 | "version": "1.0.7", 485 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", 486 | "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", 487 | "dev": true 488 | }, 489 | "picomatch": { 490 | "version": "2.2.2", 491 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", 492 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", 493 | "dev": true 494 | }, 495 | "randombytes": { 496 | "version": "2.1.0", 497 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", 498 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", 499 | "dev": true, 500 | "requires": { 501 | "safe-buffer": "^5.1.0" 502 | } 503 | }, 504 | "readdirp": { 505 | "version": "3.5.0", 506 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", 507 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", 508 | "dev": true, 509 | "requires": { 510 | "picomatch": "^2.2.1" 511 | } 512 | }, 513 | "require-relative": { 514 | "version": "0.8.7", 515 | "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", 516 | "integrity": "sha1-eZlTn8ngR6N5KPoZb44VY9q9Nt4=", 517 | "dev": true 518 | }, 519 | "resolve": { 520 | "version": "1.20.0", 521 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", 522 | "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", 523 | "dev": true, 524 | "requires": { 525 | "is-core-module": "^2.2.0", 526 | "path-parse": "^1.0.6" 527 | } 528 | }, 529 | "rollup": { 530 | "version": "2.41.1", 531 | "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.41.1.tgz", 532 | "integrity": "sha512-nepLFAW5W71/MWpS2Yr7r31eS7HRfYg2RXnxb6ehqN9zY42yACxKtEfb4xq8SmNfUohAzGMcyl6jkwdLOAiUbg==", 533 | "dev": true, 534 | "requires": { 535 | "fsevents": "~2.3.1" 536 | } 537 | }, 538 | "rollup-plugin-livereload": { 539 | "version": "2.0.0", 540 | "resolved": "https://registry.npmjs.org/rollup-plugin-livereload/-/rollup-plugin-livereload-2.0.0.tgz", 541 | "integrity": "sha512-oC/8NqumGYuphkqrfszOHUUIwzKsaHBICw6QRwT5uD07gvePTS+HW+GFwu6f9K8W02CUuTvtIM9AWJrbj4wE1A==", 542 | "dev": true, 543 | "requires": { 544 | "livereload": "^0.9.1" 545 | } 546 | }, 547 | "rollup-plugin-svelte": { 548 | "version": "6.1.1", 549 | "resolved": "https://registry.npmjs.org/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz", 550 | "integrity": "sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow==", 551 | "dev": true, 552 | "requires": { 553 | "require-relative": "^0.8.7", 554 | "rollup-pluginutils": "^2.8.2", 555 | "sourcemap-codec": "^1.4.8" 556 | } 557 | }, 558 | "rollup-plugin-terser": { 559 | "version": "6.1.0", 560 | "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-6.1.0.tgz", 561 | "integrity": "sha512-4fB3M9nuoWxrwm39habpd4hvrbrde2W2GG4zEGPQg1YITNkM3Tqur5jSuXlWNzbv/2aMLJ+dZJaySc3GCD8oDw==", 562 | "dev": true, 563 | "requires": { 564 | "@babel/code-frame": "^7.8.3", 565 | "jest-worker": "^26.0.0", 566 | "serialize-javascript": "^3.0.0", 567 | "terser": "^4.7.0" 568 | } 569 | }, 570 | "rollup-pluginutils": { 571 | "version": "2.8.2", 572 | "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", 573 | "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", 574 | "dev": true, 575 | "requires": { 576 | "estree-walker": "^0.6.1" 577 | }, 578 | "dependencies": { 579 | "estree-walker": { 580 | "version": "0.6.1", 581 | "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", 582 | "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", 583 | "dev": true 584 | } 585 | } 586 | }, 587 | "safe-buffer": { 588 | "version": "5.2.1", 589 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", 590 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", 591 | "dev": true 592 | }, 593 | "serialize-javascript": { 594 | "version": "3.1.0", 595 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", 596 | "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", 597 | "dev": true, 598 | "requires": { 599 | "randombytes": "^2.1.0" 600 | } 601 | }, 602 | "source-map": { 603 | "version": "0.6.1", 604 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", 605 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", 606 | "dev": true 607 | }, 608 | "source-map-support": { 609 | "version": "0.5.19", 610 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", 611 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", 612 | "dev": true, 613 | "requires": { 614 | "buffer-from": "^1.0.0", 615 | "source-map": "^0.6.0" 616 | } 617 | }, 618 | "sourcemap-codec": { 619 | "version": "1.4.8", 620 | "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", 621 | "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", 622 | "dev": true 623 | }, 624 | "supports-color": { 625 | "version": "5.5.0", 626 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", 627 | "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", 628 | "dev": true, 629 | "requires": { 630 | "has-flag": "^3.0.0" 631 | } 632 | }, 633 | "svelte": { 634 | "version": "3.35.0", 635 | "resolved": "https://registry.npmjs.org/svelte/-/svelte-3.35.0.tgz", 636 | "integrity": "sha512-gknlZkR2sXheu/X+B7dDImwANVvK1R0QGQLd8CNIfxxGPeXBmePnxfzb6fWwTQRsYQG7lYkZXvpXJvxvpsoB7g==", 637 | "dev": true 638 | }, 639 | "terser": { 640 | "version": "4.8.1", 641 | "resolved": "https://registry.npmjs.org/terser/-/terser-4.8.1.tgz", 642 | "integrity": "sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==", 643 | "dev": true, 644 | "requires": { 645 | "commander": "^2.20.0", 646 | "source-map": "~0.6.1", 647 | "source-map-support": "~0.5.12" 648 | } 649 | }, 650 | "to-regex-range": { 651 | "version": "5.0.1", 652 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", 653 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", 654 | "dev": true, 655 | "requires": { 656 | "is-number": "^7.0.0" 657 | } 658 | }, 659 | "wrappy": { 660 | "version": "1.0.2", 661 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 662 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", 663 | "dev": true 664 | }, 665 | "ws": { 666 | "version": "7.5.10", 667 | "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.10.tgz", 668 | "integrity": "sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==", 669 | "dev": true 670 | } 671 | } 672 | } 673 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-card", 3 | "version": "1.0.3", 4 | "author": { 5 | "url": "https://reddec.net", 6 | "email": "owner@reddec.net", 7 | "name": "Baryshnikov Aleksandr (reddec)" 8 | }, 9 | "repository": "https://github.com/reddec/github-card", 10 | "scripts": { 11 | "build": "rollup -c", 12 | "dev": "rollup -c -w", 13 | "start": "sirv public" 14 | }, 15 | "devDependencies": { 16 | "@rollup/plugin-commonjs": "~17.1.0", 17 | "@rollup/plugin-node-resolve": "~11.2.0", 18 | "rollup": "~2.41.1", 19 | "rollup-plugin-livereload": "~2.0.0", 20 | "rollup-plugin-svelte": "~6.1.1", 21 | "rollup-plugin-terser": "~6.1.0", 22 | "svelte": "~3.35.0" 23 | }, 24 | "dependencies": {} 25 | } 26 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Github card demo test 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import svelte from 'rollup-plugin-svelte'; 2 | import resolve from '@rollup/plugin-node-resolve'; 3 | import commonjs from '@rollup/plugin-commonjs'; 4 | import livereload from 'rollup-plugin-livereload'; 5 | import {terser} from 'rollup-plugin-terser'; 6 | 7 | const production = !process.env.ROLLUP_WATCH; 8 | 9 | export default [ 10 | // try-it page 11 | { 12 | input: 'src/main.js', 13 | output: { 14 | sourcemap: false, 15 | format: 'iife', 16 | name: 'app', 17 | file: 'dist/github-card-playground.min.js' 18 | }, 19 | plugins: [ 20 | svelte({ 21 | // enable run-time checks when not in production 22 | dev: !production, 23 | }), 24 | resolve({ 25 | browser: true, 26 | dedupe: ['svelte'] 27 | }), 28 | commonjs(), 29 | 30 | // In dev mode, call `npm run start` once 31 | // the bundle has been generated 32 | !production && serve(), 33 | 34 | // Watch the `public` directory and refresh the 35 | // browser on changes when not in production 36 | !production && livereload('public'), 37 | 38 | // If we're building for production (npm run build 39 | // instead of npm run dev), minify 40 | production && terser() 41 | ], 42 | watch: { 43 | clearScreen: false 44 | } 45 | }, 46 | // production widget 47 | { 48 | input: 'src/GithubCard.svelte', 49 | output: { 50 | sourcemap: false, 51 | format: 'iife', 52 | name: 'app', 53 | file: 'dist/github-card.min.js' 54 | }, 55 | plugins: [ 56 | svelte({ 57 | dev: false, 58 | customElement: true 59 | }), 60 | resolve({ 61 | browser: true, 62 | dedupe: ['svelte'] 63 | }), 64 | commonjs(), 65 | terser() 66 | ] 67 | } 68 | ]; 69 | 70 | function serve() { 71 | let started = false; 72 | 73 | return { 74 | writeBundle() { 75 | if (!started) { 76 | started = true; 77 | 78 | require('child_process').spawn('npm', ['run', 'start', '--', '--dev'], { 79 | stdio: ['ignore', 'inherit', 'inherit'], 80 | shell: true 81 | }); 82 | } 83 | } 84 | }; 85 | } 86 | -------------------------------------------------------------------------------- /src/App.svelte: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 |
5 |

Params

6 | 10 |
11 | 15 | 19 | 23 | 27 |
28 | {#if repo} 29 |

Preview

30 |
31 | 32 |
33 |

Code for embedding

34 |
35 | <github-card repo="{repo}"{#if flat} flat="yes"{/if}{#if plain} plain="yes"{/if}{#if wide} wide="yes"{/if}>
36 | {#if fallback}
37 | <a href="https://github.com/{repo}">https://github.com/{repo}</a>
38 | {/if}
39 | <script defer src="https://cdn.jsdelivr.net/gh/reddec/github-card@1/dist/github-card.min.js"></script>
40 | </github-card>
41 |             
42 | {/if} 43 |
44 |
45 | 58 | -------------------------------------------------------------------------------- /src/GithubCard.svelte: -------------------------------------------------------------------------------- 1 | 2 | {#await getInfo(repo)} 3 |

4 | https://github.com/{repo} 5 |
6 | loading... 7 |

8 | {:then info} 9 |
10 |
11 | {#if !plain} 12 | 18 | {/if} 19 |
20 |
21 |
22 | {info.name} 23 |
24 |
25 |
{info.language}
26 |
{info.license.spdx_id}
27 |
28 |
29 | 30 | 60 |

61 | {info.description} 62 |

63 | 64 |
65 |
66 | 72 | 73 |
74 | 75 | {:catch error} 76 |

77 | https://github.com/{repo} 78 |
79 | oops... load failed {error} 80 |

81 | {/await} 82 | 235 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | import App from './App.svelte'; 2 | 3 | 4 | window.GithubCardPlayground = function (options) { 5 | return new App(options) 6 | } 7 | --------------------------------------------------------------------------------