youtil 3.0.6 → 3.1.0-beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.mjs +55 -0
- package/package.json +67 -69
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# youtil
|
|
2
2
|
|
|
3
|
-
`youtil`,发音同`util`,中文可以叫做`油梯`,一个与框架(`Vue`、`React`等)、环境(`Nodejs`、`Browser`等)无关的小巧、精简、实用、不依赖任何第三方库的`JavaScript
|
|
3
|
+
`youtil`,发音同`util`,中文可以叫做`油梯`,一个与框架(`Vue`、`React`等)、环境(`Nodejs`、`Browser`等)无关的小巧、精简、实用、不依赖任何第三方库的`JavaScript`工具库,官网:[youtil.haoji.me](https://youtil.haoji.me)。
|
|
4
4
|
|
|
5
5
|
> 1. 代码还在不断补充完善,敬请期待!
|
|
6
6
|
> 2. 少数方法可能依赖DOM,例如`showLoading`;
|
package/dist/index.mjs
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
var P=Object.defineProperty,D=Object.defineProperties;var _=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var F=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var q=(e,n,t)=>n in e?P(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,O=(e,n)=>{for(var t in n||(n={}))F.call(n,t)&&q(e,t,n[t]);if(S)for(var t of S(n))U.call(n,t)&&q(e,t,n[t]);return e},L=(e,n)=>D(e,_(n));function X(e){let n=[...e];return e.forEach(t=>{n[t.key]=t.value}),n.pick=t=>e.find(r=>r.key===t||r.value===t),n.pickLabel=t=>{var r;return(r=n.pick(t))==null?void 0:r.label},n.pickValue=t=>{var r;return(r=n.pick(t))==null?void 0:r.value},n.pickKey=t=>{var r;return(r=n.pick(t))==null?void 0:r.key},n}var Z=(e="\u8BF7\u7A0D\u5019",n=10,t={})=>{t=Object.assign({},{hasMask:!1,maskColor:"#00000070",onCancel:null,cancelInline:!1,id:"com_global_page_loading"},t);let{id:s,hasMask:c,maskColor:l,onCancel:d,cancelInline:w}=t,x=`_${s}_timeout`;window[x]&&clearTimeout(window[x]);let u=document.getElementById(s);u||(u=document.createElement("div"),u.id=s,u.className=s,document.body.append(u));let a=`${s}_style`;if(!document.getElementById(a)){let i=document.createElement("style");i.id=a,i.innerHTML=`
|
|
2
|
+
.${s} {
|
|
3
|
+
position: fixed;
|
|
4
|
+
left: 0;
|
|
5
|
+
top: 0;
|
|
6
|
+
width: 100vw;
|
|
7
|
+
height: 100vh;
|
|
8
|
+
display: flex;
|
|
9
|
+
justify-content: center;
|
|
10
|
+
align-items: center;
|
|
11
|
+
pointer-events: none;
|
|
12
|
+
z-index: 10000;
|
|
13
|
+
}
|
|
14
|
+
.${s}.show-mask {
|
|
15
|
+
pointer-events: unset;
|
|
16
|
+
background: #00000070;
|
|
17
|
+
}
|
|
18
|
+
.${s} .mask-wrapper {
|
|
19
|
+
position: fixed;
|
|
20
|
+
}
|
|
21
|
+
.${s} .loading-wrapper {
|
|
22
|
+
width: 120px;
|
|
23
|
+
height: 120px;
|
|
24
|
+
z-index: 8000;
|
|
25
|
+
background: rgba(0, 0, 0, 0.6);
|
|
26
|
+
border-radius: 8px;
|
|
27
|
+
text-align: center;
|
|
28
|
+
color: white;
|
|
29
|
+
display: flex;
|
|
30
|
+
justify-content: center;
|
|
31
|
+
flex-direction: column;
|
|
32
|
+
align-items: center;
|
|
33
|
+
pointer-events: initial;
|
|
34
|
+
line-height: 1.3;
|
|
35
|
+
}
|
|
36
|
+
.${s} .loading-wrapper img {
|
|
37
|
+
width: 50px;
|
|
38
|
+
height: 50px;
|
|
39
|
+
margin-bottom: 10px;
|
|
40
|
+
}
|
|
41
|
+
.${s} .loading-wrapper a {
|
|
42
|
+
color: #6ab2ff;
|
|
43
|
+
}`,document.head.appendChild(i)}if(u.innerHTML=`
|
|
44
|
+
<div class="loading-wrapper">
|
|
45
|
+
<img src="https://img.alicdn.com/tfs/TB1bnUsQBLoK1RjSZFuXXXn0XXa-32-32.svg" alt="\u52A0\u8F7D\u4E2D">
|
|
46
|
+
<div>
|
|
47
|
+
<span>${e}</span>
|
|
48
|
+
${w?"":"<br />"}
|
|
49
|
+
${d?'<a href="javascript:;" class="cancel">\u53D6\u6D88</a>':""}
|
|
50
|
+
</div>
|
|
51
|
+
</div>`,d){let i=u.querySelector(".cancel");i&&i.addEventListener("click",()=>{I(),d()})}u.addEventListener("click",()=>{I()}),u.style.display="flex",u.style.background=c?l:"transparent",u.className=`${s} ${c?"show-mask":""}`,n>0&&(window[x]=setTimeout(()=>{I()},n*1e3))},I=()=>{let n=document.getElementById("com_global_page_loading");n&&(n.style.display="none")};function Y(e,n){!n&&window!==window.parent&&(n=window.parent),!n&&window.opener&&(n=window.opener);let t=new Map,r=new Map,s=()=>Math.random().toString(36).substring(2),c={},l="_local_function_";function d(a){let i=`${l}${s()}`;return c[i]=a,i}let w=(a,i)=>(a==null?void 0:a.map(g=>{if(typeof g=="object")for(let k in g)g[k]=i(g[k]);return i(g)}))||[];function x(a,...i){if(!n){console.warn("TargetWindow is null.");return}return new Promise((g,k)=>{let f=s();t.set(f,{resolve:g,reject:k}),n.postMessage({scene:e,type:"event",eventName:a,payload:w(i,y=>typeof y=="function"?d(y):y),callbackId:f},"*")})}window.addEventListener("message",async a=>{if(!a.data||a.data.scene!==e)return;n=a.source;let{type:i,eventName:g,payload:k,callbackId:f}=a.data;if(i==="event"){let y=w(k,m=>{if(typeof m=="string"&&m.startsWith(l)){let p=`getFn_${m}`;return(...b)=>x("executeLocalFunction",p,...b)}return m}),h=r.get(g)||[],v=r.get("*")||[];try{let m=await Promise.all(h.map(b=>Promise.resolve(b(...y)))),p=await Promise.all(v.map(b=>Promise.resolve(b(g,...y))));if(f){let b=m[m.length-1]||p[p.length-1];if(!h.length&&!b)return;n.postMessage({scene:e,type:"callback",callbackId:f,payload:b},"*")}}catch(m){console.error(m),f&&n.postMessage({scene:e,type:"callback",callbackId:f,error:m||"unknown error"},"*")}}else if(i==="callback"&&f){let y=t.get(f);y&&(a.data.error?y.reject(a.data.error):y.resolve(a.data.payload),t.delete(f))}});function u(a,i){r.has(a)||r.set(a,[]),r.get(a).push(i)}return u("executeLocalFunction",(a,...i)=>{if(a=(a==null?void 0:a.replace("getFn_",""))||"",!c[a])throw new Error(`\u672A\u627E\u5230\u672C\u5730\u7F13\u5B58\u65B9\u6CD5\uFF1A${a}`);return c[a](...i)}),x("auto-connect"),{postMessage:x,onMessage:u}}var Q=e=>!e||typeof e!="object"?e:JSON.parse(JSON.stringify(e)),A=e=>{if(typeof e=="string"){let n=document.createElement("div");return n.innerText=e,n.innerHTML}else if(typeof e=="object"&&e)for(let n in e)e[n]=A(e[n]);return e},B=e=>{if(typeof e=="string"){let n=document.createElement("div");return n.innerHTML=e,n.innerText}else if(typeof e=="object"&&e)for(let n in e)e[n]=B(e[n]);return e},W=(e,n,t)=>{if(!e)throw new Error("text can not be empty.");return n=n||(r=>console.error(`\u590D\u5236\u5230\u526A\u8D34\u677F\u5931\u8D25\uFF1A${r||""}`)),navigator.clipboard&&!t?navigator.clipboard.writeText(e).catch(r=>{throw n(r.message),r}):new Promise((r,s)=>{let c=document.createElement("input");c.value=e,c.style.cssText="position:fixed;left:0;top:0;opacity:0;",document.body.appendChild(c),c.select();try{if(document.execCommand("copy"))r();else{let l="Failed to execute 'document.execCommand'.";n(l),s(new Error(l))}}catch(l){n(l.message),s(l)}finally{document.body.removeChild(c)}})},K=e=>{if(!e||e.length<17)throw new Error("\u4F20\u5165\u7684\u8EAB\u4EFD\u8BC1\u53F7\u957F\u5EA6\u5FC5\u987B>=17");let n=[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],t=["1","0","X","9","8","7","6","5","4","3","2"],r=0;for(let s=0;s<17;s++)r+=parseInt(e.charAt(s),10)*n[s];return t[r%11]},ee=e=>!e||e.length!==18?(console.error("\u8EAB\u4EFD\u8BC1\u53F7\u4E0D\u662F18\u4F4D\uFF01"),!1):`${K(e)}`===e.charAt(17),ne=(()=>{let e={backspace:8,tab:9,clear:12,enter:13,shift:16,ctrl:17,alt:18,esc:27,space:32,pageup:33,pagedown:34,end:35,home:36,left:37,up:38,right:39,down:40,insert:45,delete:46};for(let n=48;n<=57;n++)e[String.fromCharCode(n)]=n;for(let n=65;n<=90;n++)e[String.fromCharCode(n).toLowerCase()]=n;for(let n=96;n<=105;n++)e[`num${n-96}`]=n;for(let n=112;n<=123;n++)e[`f${n-111}`]=n;return e})();var H=(e,n=location.search)=>(new RegExp(`(^|\\?|&)${e}=(.*?)(?=&|#|$)`,"g").exec(n)||[])[2],re=(e,n=location.search)=>parseInt(H(e,n)||"0",10),se=(e=location.search)=>{let n=((e||"").split("?").pop()||"").split("#")[0]||"",t={};return n.split("&").map(r=>r.split("=")).forEach(([r,s])=>{t[r]=s||""}),t},oe=(e,n,t)=>{if(t=t||`${location.pathname}${location.search}`,H(e,t)!==void 0)return t.replace(new RegExp(`(^|\\?|&)${e}=(.*?)(?=&|#|$)`,"g"),`$1${e}=${n}`);let[r,s]=t.split("#");return`${r}${r.indexOf("?")<0?"?":"&"}${e}=${n}${s?"#":""}${s||""}`},ae=(e,n)=>(n=n||`${location.pathname}${location.search}`,n.replace(new RegExp(`(^|\\?|&)${e}=.*?(&|#|$)`,"g"),(t,r,s)=>s==="&"?r:s)),M=e=>Object.keys(e||{}).filter(n=>e[n]!==void 0).map(n=>{let t=typeof e[n]=="object"?JSON.stringify(e[n]):e[n];return`${encodeURIComponent(n)}=${encodeURIComponent(t)}`}).join("&");var T=(e,n)=>{let t=Object.assign({},(e==null?void 0:e.headers)||{},(n==null?void 0:n.headers)||{}),r=Object.assign({},(e==null?void 0:e.fetchOptions)||{},(n==null?void 0:n.fetchOptions)||{});return Object.assign({},e||{},n||{},{headers:t,fetchOptions:r})},E=class extends Error{constructor(n,t){super(n),Object.assign(this,t||{})}},R=async(e,n)=>{var b,C;n=T({errorMessage:"\u7CFB\u7EDF\u7E41\u5FD9\uFF0C\u8BF7\u7A0D\u540E\u518D\u8BD5",errorHandler:o=>{var $;throw!(n!=null&&n.silent)&&o&&(($=n==null?void 0:n.toastHandler)==null||$.call(n,o)),new Error(o)},baseUrl:"",headers:{},fetchOptions:{credentials:"include"},checkSuccess:o=>(o==null?void 0:o.code)==0||(o==null?void 0:o.code)==200,toastHandler:o=>console.error(`[\u60A8\u8FD8\u6CA1\u6709\u914D\u7F6EtoastHandler\uFF0C\u8BF7\u6839\u636E\u60A8\u7684UI\u7EC4\u4EF6\u5E93\u914D\u7F6E\u5408\u9002\u7684\u63D0\u793A\u65B9\u6CD5] ${o||""}`),onFetchResponse:o=>{if(o.status===200)return o.json();throw new E(o.statusText,{response:L(O({},o),{code:o.status,message:o.statusText,isHttpResponse:!0})})}},n);let{params:r,data:s,formData:c,json:l,method:d,headers:w,baseUrl:x,fetchOptions:u,checkSuccess:a,afterRequest:i,errorHandler:g,errorMessage:k,responseConverter:f,onFetchResponse:y,setLoading:h,overrideMessage:v}=n||{},m=(n==null?void 0:n.defaultErrorMessage)||k;if(u.headers=O(O({},w||{}),u.headers||{}),r&&(u.method=d||"GET",e=`${e}${e.indexOf("?")>=0?"&":"?"}${M(r)}`),s)Object.assign(u,{method:d||"POST",body:M(s),headers:O({"Content-Type":"application/x-www-form-urlencoded;charset=utf-8"},u.headers||{})});else if(c){let o=c;if(!(c instanceof FormData)){o=new FormData;for(let $ in c)o.append($,c[$])}Object.assign(u,{method:d||"POST",body:o})}else l&&Object.assign(u,{method:d||"POST",body:JSON.stringify(l),headers:O({"Content-Type":"application/json;charset=utf-8"},u.headers||{})});let p=null;h==null||h(!0);try{let o=`${/^(http|\/\/)/g.test(e)?"":x||""}${e}`;o.indexOf("//")===0&&location.protocol==="blob:"&&(o=`${(b=location.pathname.split(":"))==null?void 0:b[0]}:${o}`),p=await fetch(o,u).then(y)}catch(o){console.error(o),h==null||h(!1),i==null||i(!1,o.response);let $=typeof v=="function"?v(o.response):v;g==null||g($!=null?$:((C=o.response)==null?void 0:C.message)||m,o.response,n);return}if(h==null||h(!1),p=f?f(p):p,a!=null&&a(p))return i==null||i(!0,p),p.data;{i==null||i(!1,p);let o=typeof v=="function"?v(p):v;g==null||g(o!=null?o:p.message||m,p,n);return}},j=function(e){let n=T(this.overrideDefaultOptions,e),t=(r,s)=>R(r,T(n,s));return t.overrideDefaultOptions=n,t.create=j.bind(t),t};R.create=j.bind(R);var le=function(e,n){let t=n;return n||(t=e,e=R),(r,s)=>e(r,O(O({},t||{}),s||{}))};var ge=(e,n)=>{if(!e)return"";if(typeof e=="number")e=new Date(e);else if(typeof e=="string")if(/^\d{12,13}$/g.test(e))e=new Date(parseInt(e,10));else if(/^.{10}T.{8,12}Z?$/g.test(e))e=new Date(e);else return e;if(!(e instanceof Date))throw new Error("formatDate error: not date.");if(isNaN(e==null?void 0:e.getFullYear()))throw new Error("formatDate error: invalid date.");n=n||"yyyy-MM-dd HH:mm:ss";let t={y:e.getFullYear(),M:e.getMonth()+1,d:e.getDate(),q:Math.floor((e.getMonth()+3)/3),w:e.getDay(),H:e.getHours(),h:e.getHours()%12===0?12:e.getHours()%12,m:e.getMinutes(),s:e.getSeconds(),S:e.getMilliseconds()},r=["\u5929","\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D"];for(let s in t)n=n.replace(new RegExp(`${s}+`,"g"),c=>{let l=`${t[s]}`;if(s==="w")return`${c.length>2?"\u661F\u671F":"\u5468"}${r[l]}`;for(let d=0,w=l.length;d<c.length-w;d++)l=`0${l}`;return c.length===1?l:l.substring(l.length-c.length)});return n},pe=(e,n)=>{n=n||"yyyy-MM-dd";let t={y:0,M:1,d:0,H:0,h:0,m:0,s:0,S:0};n.replace(/([^yMdHmsS]*?)(([yMdHmsS])\3*)([^yMdHmsS]*?)/g,(s,c,l,d,w)=>(e=e.replace(new RegExp(`${c}(\\d{${l.length}})${w}`),(x,u)=>(t[d]=parseInt(u,10),"")),"")),t.M--;let r=new Date(t.y,t.M,t.d,t.H,t.m,t.s);return t.S!==0&&r.setMilliseconds(t.S),r},fe=e=>new Promise(n=>setTimeout(n,e||0));var ye=(json,indent,leftBracesInSameLine)=>{function getIndentStr(e){let n="";for(let t=0;t<e;t++)n+=indent||" ";return n}function format(e,n){n=n===void 0?0:n;let t="";if(typeof e=="object"&&e!=null){let r=e instanceof Array,s=0;t+=`${r?"[":"{"}
|
|
52
|
+
`;for(let c in e){t+=s++>0?`,
|
|
53
|
+
`:"";let l=typeof e[c]=="object"&&e[c]!=null,d=getIndentStr(n+1);t+=r&&l?"":d,t+=r?"":`"${c}": ${l&&!leftBracesInSameLine?`
|
|
54
|
+
`:""}`,t+=!l||l&&leftBracesInSameLine&&!r?"":d,t+=format(e[c],n+1)}t+=`
|
|
55
|
+
${getIndentStr(n)}${r?"]":"}"}`}else{let r=typeof e=="string"?'"':"";t+=`${r}${e}${r}`}return t}return format(eval(`(${json})`))},N=(e,n)=>typeof e=="number"?(typeof n=="undefined"&&(n=e,e=0),e+Math.floor(Math.random()*(n-e))):e instanceof Array?typeof n=="undefined"?e.length===0?null:e.length===1?e[0]:e[Math.floor(Math.random()*e.length)]:(e.sort(()=>Math.random()>.5?1:-1),e.slice(0,n)):Math.random(),he=(e,n)=>{e=e||18;let t="ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz0123456789".split("");n==="number"&&(t="0123456789".split(""));let r="";for(let s=0;s<e;s++)r+=N(t);return r},be=(e,n)=>e.replace(/([A-Z])/g,(t,r)=>`${n||"_"}${r.toLowerCase()}`),we=(e,n)=>e.replace(new RegExp(`${n||"_"}(\\w)`,"g"),(t,r)=>r.toUpperCase());export{le as Request,W as copyToClipboard,X as createEnum,B as decodeHtml,Q as deepCopy,ae as delParam,A as encodeHtml,ge as formatDate,ye as formatJson,K as getIdCardLastChar,H as getParam,re as getParamInt,se as getParams,N as getRandom,he as getRandomStr,I as hideLoading,Y as initWindowMessage,ne as keyCodes,pe as parseDate,R as request,oe as setParam,Z as showLoading,fe as sleep,we as toHump,be as toUnderline,M as toUrlParams,ee as validateIdCard};
|
package/package.json
CHANGED
|
@@ -1,72 +1,70 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
2
|
+
"name": "youtil",
|
|
3
|
+
"version": "3.1.0-beta1",
|
|
4
|
+
"description": "油梯,一个与框架、环境无关的小巧、精简、实用的JavaScript工具库",
|
|
5
|
+
"files": [
|
|
6
|
+
"es",
|
|
7
|
+
"esm",
|
|
8
|
+
"cjs",
|
|
9
|
+
"docs",
|
|
10
|
+
"umd"
|
|
11
|
+
],
|
|
12
|
+
"main": "dist/index.mjs",
|
|
13
|
+
"module": "dist/index.mjs",
|
|
14
|
+
"types": "dist/types/index.d.ts",
|
|
15
|
+
"exports": {
|
|
16
|
+
".": {
|
|
17
|
+
"types": "./dist/types/index.d.ts",
|
|
18
|
+
"require": "./dist/index.mjs",
|
|
19
|
+
"import": "./dist/index.mjs"
|
|
20
|
+
}
|
|
20
21
|
},
|
|
21
|
-
"
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
"
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
|
|
69
|
-
"author": "sxei",
|
|
70
|
-
"license": "MIT",
|
|
71
|
-
"homepage": "https://youtil.haoji.me"
|
|
22
|
+
"sideEffects": [
|
|
23
|
+
"es/*"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"dev": "concurrently \"typedoc --watch\" \"ice-pkg start\"",
|
|
27
|
+
"_build": "typedoc && ice-pkg build && node after-build.mjs",
|
|
28
|
+
"build": "node esbuild.config.mjs",
|
|
29
|
+
"prepublishOnly": "npm run build",
|
|
30
|
+
"after-publish": "node after-publish.mjs",
|
|
31
|
+
"test": "jest",
|
|
32
|
+
"eslint": "eslint --cache --ext .js,.jsx,.ts,.tsx ./",
|
|
33
|
+
"eslint:fix": "npm run eslint -- --fix",
|
|
34
|
+
"stylelint": "stylelint \"**/*.{css,scss,less}\"",
|
|
35
|
+
"lint": "npm run eslint && npm run stylelint"
|
|
36
|
+
},
|
|
37
|
+
"keywords": [
|
|
38
|
+
"youtil"
|
|
39
|
+
],
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"@swc/helpers": "0.4.14"
|
|
42
|
+
},
|
|
43
|
+
"devDependencies": {
|
|
44
|
+
"@ice/jsx-runtime": "^0.2.0",
|
|
45
|
+
"@ice/pkg": "1.5.5",
|
|
46
|
+
"@ice/pkg-plugin-docusaurus": "^1.4.18",
|
|
47
|
+
"@iceworks/spec": "^1.0.0",
|
|
48
|
+
"concurrently": "^9.1.2",
|
|
49
|
+
"esbuild": "^0.25.8",
|
|
50
|
+
"esbuild-plugin-d.ts": "^1.3.1",
|
|
51
|
+
"eslint": "^7.0.0",
|
|
52
|
+
"jest": "^29.5.0",
|
|
53
|
+
"react": "^16",
|
|
54
|
+
"react-dom": "^16",
|
|
55
|
+
"stylelint": "^13.7.2",
|
|
56
|
+
"ts-jest": "^29.0.5",
|
|
57
|
+
"typedoc": "^0.28.1",
|
|
58
|
+
"typedoc-plugin-markdown": "^4.6.0"
|
|
59
|
+
},
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public"
|
|
62
|
+
},
|
|
63
|
+
"repository": {
|
|
64
|
+
"type": "git",
|
|
65
|
+
"url": "github.com/sxei/youtil"
|
|
66
|
+
},
|
|
67
|
+
"author": "sxei",
|
|
68
|
+
"license": "MIT",
|
|
69
|
+
"homepage": "https://youtil.haoji.me"
|
|
72
70
|
}
|