@blocklet/pages-kit-inner-components 0.4.131 → 0.4.133
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/lib/cjs/chunks/home-DSfBtFst.js +38 -0
- package/lib/cjs/chunks/{publish-button-kozBI0aZ.js → publish-button-Cd5c5JJ4.js} +1 -1
- package/lib/cjs/chunks/site-state-DM1kpHq_.js +57 -0
- package/lib/cjs/components.js +1 -1
- package/lib/cjs/home.js +1 -1
- package/lib/cjs/project-html.js +1 -1
- package/lib/cjs/resources.js +1 -1
- package/lib/cjs/site-state.js +1 -1
- package/lib/es/chunks/{home-qQe9H8C9.js → home-Bnr_eVpB.js} +184 -181
- package/lib/es/chunks/{publish-button-DMQRXAVS.js → publish-button-BPU8djxy.js} +1 -1
- package/lib/es/chunks/{site-state-qF6lXjrQ.js → site-state-iOveH30c.js} +372 -378
- package/lib/es/components.js +1 -1
- package/lib/es/home.js +1 -1
- package/lib/es/project-html.js +1 -1
- package/lib/es/resources.js +1 -1
- package/lib/es/site-state.js +1 -1
- package/package.json +3 -3
- package/lib/cjs/chunks/home-BWklFLCu.js +0 -38
- package/lib/cjs/chunks/site-state-C8qhC6pw.js +0 -57
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),E=require("./state-DPSTH2vo.js"),X=require("@arcblock/ux/lib/Locale/context"),ce=require("@arcblock/ux/lib/Result"),le=require("@blocklet/pages-kit/builtin/page/header"),ue=require("@blocklet/pages-kit/contexts/color"),Y=require("@blocklet/pages-kit/utils/data-source"),de=require("@blocklet/pages-kit/utils/route"),pe=require("@blocklet/ui-react/lib/Header"),J=require("@emotion/css"),N=require("@emotion/react"),ge=require("@emotion/styled"),P=require("@mui/material"),z=require("ahooks"),me=require("isomorphic-dompurify"),fe=require("lodash/cloneDeep"),he=require("lodash/isEmpty"),xe=require("lodash/isEqual"),g=require("react"),je=require("react-helmet"),w=require("react-router-dom"),Z=require("react-use"),M=require("ufo"),I=require("./array-D-LDfLBW.js"),G=require("@arcblock/ux/lib/Theme"),ye=require("@blocklet/ui-react/lib/Footer");require("webfontloader");const be=require("@arcblock/did-connect/lib/Session"),k=t=>t&&t.__esModule?t:{default:t},ee=k(ce),ve=k(pe),te=k(ge),we=k(me),V=k(fe),Pe=k(he),ne=k(xe),Se=k(ye),Re=G.styled(Se.default,{shouldForwardProp:t=>!!t})`
|
|
2
|
+
& > div > .MuiContainer-root {
|
|
3
|
+
max-width: unset;
|
|
4
|
+
}
|
|
5
|
+
`;function ke({meta:t,...n}){const r=G.useTheme();return e.jsx(Re,{...n,meta:t,theme:r||{}})}function oe(t){return e.jsx(P.Box,{display:"flex",flex:1,height:"100%",alignItems:"center",justifyContent:"center",...t,children:e.jsx(P.CircularProgress,{size:30})})}function Ce(t){return e.jsx(qe,{...t})}const qe=G.styled(P.Box)`
|
|
6
|
+
position: fixed;
|
|
7
|
+
left: 0;
|
|
8
|
+
top: 0;
|
|
9
|
+
z-index: 999999999999;
|
|
10
|
+
width: 80px;
|
|
11
|
+
font-size: 12px;
|
|
12
|
+
text-align: center;
|
|
13
|
+
opacity: 0.7;
|
|
14
|
+
transform: translateX(-23%) translateY(70%) rotate(-45deg);
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
`,_e=`Avenir, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
|
|
17
|
+
sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol'`;function Me({titleFontFamily:t,descriptionFontFamily:n}){var o;const r=P.useTheme(),a=(o=r==null?void 0:r.typography)==null?void 0:o.fontFamily;g.useEffect(()=>{},[t,n]);const s=`${a}, ${_e}`;return e.jsx(N.Global,{styles:N.css`
|
|
18
|
+
#app {
|
|
19
|
+
font-family: ${s};
|
|
20
|
+
|
|
21
|
+
.page-kit-section__title {
|
|
22
|
+
font-family: ${s};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.page-kit-section__description {
|
|
26
|
+
font-family: ${s};
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
`})}const{SessionProvider:Ue,SessionContext:Ee,SessionConsumer:Ae,withSession:Ne}=be.createAuthServiceSessionContext();function W(){return g.useContext(Ee)}function Ie(...t){var r;const{session:n}=W();return t.includes((r=n.user)==null?void 0:r.role)}function Be(...t){var a;const{session:n}=W(),r=Ie(...t);return((a=window.blocklet)==null?void 0:a.tenantMode)==="multiple"?!!n.user:r}function Le(){const[t]=w.useSearchParams(),{session:n}=W(),r=Be("owner","admin","pagesEditor","member"),a=g.useMemo(()=>{const o=t.get("mode");return I.STATE_MODES.includes(o)?o:"production"},[t]),s=a==="production"?a:n.user?r?a:"production":null;return s?e.jsx(se,{mode:s}):null}function se({mode:t}){if(t!=="draft"){const n=window.__PAGE_STATE__;return n?e.jsx(A,{mode:t,state:n}):e.jsx(De,{mode:t,children:({state:r})=>e.jsx(A,{mode:t,state:r})})}return e.jsx(Te,{children:({state:n})=>e.jsx(A,{mode:t,state:n})})}const Te=g.lazy(()=>Promise.resolve().then(()=>require("./draft-data-C-aBMmuZ.js")));function De({mode:t,children:n}){const r=document.querySelector('meta[property="pages:version"]'),a=r==null?void 0:r.content,s=E.useProjectId(),o=g.useMemo(()=>{if(a==="{{pagesPublishedAt}}"){const l=localStorage.getItem(E.getProjectPageVersionKey(s??""));return Number(l)?Number(l):new Date().getTime()}return Number(a)},[a]),{loading:m,value:c}=Z.useAsync(()=>I.getPages({mode:t,version:o}),[t,o]);return m?e.jsx(oe,{}):c?n({state:c}):null}function A({mode:t,state:n}){const{t:r,locale:a}=X.useLocaleContext(),[s]=w.useSearchParams(),o=s.get("hiddenBadge")==="true",m=s.get("showPublish")==="true",{pageIds:c,pages:l,routeIds:f,routes:p,supportedLocales:u,config:{defaultLocale:j},resources:b}=n,v=E.getAllComponents(n),y=g.useMemo(()=>u!=null&&u.some(d=>d.locale===a)?a:void 0,[a,u]),h=Object.values(l).find(d=>(d==null?void 0:d.slug)==="/")?void 0:Object.values(l)[0],H=g.useMemo(()=>c.map(d=>{const i=l[d];return i&&{id:i.id,path:M.joinURL("/",y||"",i.slug,t!=="production"?`?mode=${t}`:"")}}).filter(I.nonNullable),[c,l,y,t]),C=([...d])=>(t!=="production"&&m&&d.unshift(e.jsx(g.Suspense,{fallback:e.jsx("div",{}),children:e.jsx(Oe,{mode:"production",state:n})})),d);return e.jsxs(I.Provider,{value:{pages:H},children:[e.jsxs(w.Routes,{children:[h&&e.jsx(w.Route,{index:!0,element:e.jsx(w.Navigate,{to:M.joinURL("/",y||"",h.slug)})}),f==null?void 0:f.map(d=>{var B,L,T,S;const i=p==null?void 0:p[d];if(!i||!i.displayTemplateId)return null;const q=l[i.displayTemplateId];if(!q)return null;let _=[];if(i.params&&i.params.length>0){const x=de.generateParamCombinations({basePath:i.path,params:i.params,routeId:i.id,paramsOptions:i.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});_=x==null?void 0:x.map(R=>{var D,F,K,Q;const U=R.paramOptionIds.join("-");return e.jsx(w.Route,{path:M.joinURL(":projectIdOrSlug?",R.path),element:e.jsx($,{mode:t,components:v,page:q,locale:y,defaultLocale:j,headerAddons:C,state:n,pageData:(Q=(K=(F=(D=i.dataSource)==null?void 0:D.pathDataMappings)==null?void 0:F[U])==null?void 0:K.dataCache)==null?void 0:Q[y||j||"en"]})},U)})}return _.push(e.jsx(w.Route,{path:M.joinURL(":projectIdOrSlug?",i.path),element:e.jsx($,{mode:t,components:v,page:q,locale:y,defaultLocale:j,headerAddons:C,state:n,pageData:(S=(T=(L=(B=i.dataSource)==null?void 0:B.pathDataMappings)==null?void 0:L[i.id])==null?void 0:T.dataCache)==null?void 0:S[y||j||"en"]})},i.id)),_}),c.map(d=>{const i=l[d];return i?e.jsx(w.Route,{path:M.joinURL(":projectIdOrSlug?",i.slug),element:e.jsx(O,{mode:t,components:v,page:i,locale:y,defaultLocale:j,headerAddons:C})},i.id):null}),b.pages&&Object.values(b.pages).map(({blockletId:d,page:i})=>e.jsx(w.Route,{path:M.joinURL("/",`@${d}`,i.slug),element:e.jsx(O,{mode:t,components:v,page:i,locale:y,defaultLocale:j,headerAddons:C})},i.id)),e.jsx(w.Route,{path:"*",element:e.jsx(P.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(ee.default,{status:404,extra:e.jsx(ie,{href:"/",children:r("common.back")})})})})]}),t!=="production"&&!o&&e.jsx(Ce,{sx:{bgcolor:"info.light"},children:t}),e.jsx(Me,{})]})}function $({mode:t,pageData:n,components:r,page:a,locale:s,defaultLocale:o,headerAddons:m,state:c}){const l=z.useReactive({page:null});g.useEffect(()=>{const p=a||null;p?l.page=V.default(p):l.page=null},[a,l]);const f=g.useRef();return g.useEffect(()=>{ne.default(n,f.current)||n&&l.page&&(Y.setPageDataSource(l.page,c,s,n),f.current=V.default(n))},[l.page,n,s,c]),l.page?e.jsx(O,{mode:t,components:r,page:l.page,locale:s,defaultLocale:o,headerAddons:m}):null}function Fe({mode:t,state:n,path:r,pageData:a}){const{t:s,locale:o}=X.useLocaleContext(),{pages:m,supportedLocales:c,config:{defaultLocale:l},resources:f}=n,p=Object.values(m).find(h=>(h==null?void 0:h.slug)===r),u=Object.values(f.pages||{}).find(h=>h.page.slug===r),j=g.useMemo(()=>c!=null&&c.some(h=>h.locale===o)?o:void 0,[o,c]),b=z.useReactive({page:null});g.useEffect(()=>{const h=p||(u==null?void 0:u.page)||null;h?b.page=V.default(h):b.page=null},[p,u]);const v=g.useRef();if(g.useEffect(()=>{ne.default(a,v.current)||a&&b.page&&(Y.setPageDataSource(b.page,n,j,a),v.current=V.default(a))},[{}]),!p&&!(u!=null&&u.page))return e.jsx(P.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(ee.default,{style:{background:"inherit"},status:404,extra:e.jsx(ie,{href:"/",children:s("common.back")})})});const y=E.getAllComponents(n);return b.page?e.jsx(O,{mode:t,components:y,page:b.page,locale:j,defaultLocale:l}):null}function O({mode:t,components:n,page:r,locale:a,defaultLocale:s,headerAddons:o}){var H,C,d,i,q,_,B,L,T;const m=ue.useColorConvert(),c=((H=r.locales)==null?void 0:H[a])??((C=r.locales)==null?void 0:C[s])??{},l=c.title||((d=window.blocklet)==null?void 0:d.appName),f=c.description||((i=window.blocklet)==null?void 0:i.appDescription),p=E.autoResizeImage(E.getImageAbsoluteUrl(c.image),540),{logo:u,brand:j,description:b,...v}=le.useHeaderState(),y=g.useMemo(()=>S=>{var R;let x=(o==null?void 0:o(S))??S;return x=((R=v.addons)==null?void 0:R.call(v,x))??x,x},[v.addons,o]),h=(q=c.header)!=null&&q.translucent?ae:re;return e.jsxs(I.PageProvider,{page:r,defaultLocale:s,currentLocale:a,children:[e.jsx(N.Global,{styles:N.css`
|
|
30
|
+
body {
|
|
31
|
+
background-color: ${m(!c.backgroundColor||c.backgroundColor==="transparent"?"background.default":c.backgroundColor)} !important;
|
|
32
|
+
}
|
|
33
|
+
`}),e.jsx(h,{hideNavMenu:!!((_=c.header)!=null&&_.hideNavMenus),translucentTextColor:(B=c.header)==null?void 0:B.translucentTextColor,...u?{logo:u}:{},...j?{brand:j}:{},...b?{description:b}:{},className:J.cx(((L=c.header)==null?void 0:L.sticky)&&"sticky","page-header"),maxWidth:!1,addons:y}),e.jsx(w.ScrollRestoration,{}),e.jsxs(je.Helmet,{children:[e.jsx("title",{children:l}),e.jsx("meta",{name:"og:title",content:l}),e.jsx("meta",{name:"og:description",content:f}),e.jsx("meta",{name:"og:image",content:p}),e.jsx("meta",{name:"twitter:image:src",content:p}),e.jsx("meta",{name:"twitter:image",content:p}),e.jsx("meta",{property:"twitter:description",content:f}),e.jsx("meta",{property:"twitter:title",content:l}),e.jsx("meta",{name:"description",content:f})]}),e.jsx(P.Stack,{flexGrow:1,className:"PageView-root",sx:{"& .BlockBase-root:first-child":{pt:"0 !important"}},children:r.sectionIds.map(S=>{var D,F;const x=r.sections[S];if(!x||x.visibility==="hidden")return null;const R=(D=x.locales)==null?void 0:D[a],U=((F=x.locales)==null?void 0:F[s])??{};return e.jsx(I.BlockRenderer,{id:S,type:x.component,mode:t,section:x,config:{...Pe.default(R)?U:R,locale:a,dev:t==="draft"?{mode:t,components:n,defaultLocale:s}:{mode:t}}},S)})}),!((T=c.footer)!=null&&T.hidden)&&e.jsx(ke,{})]})}const Oe=g.lazy(()=>Promise.resolve().then(()=>require("./publish-button-Cd5c5JJ4.js"))),re=te.default(ve.default)`
|
|
34
|
+
&.sticky {
|
|
35
|
+
position: sticky;
|
|
36
|
+
top: 0;
|
|
37
|
+
}
|
|
38
|
+
`;function He({logo:t}){const[n,r]=g.useState(),a=P.useMediaQuery(o=>o.breakpoints.down("sm")),{value:s}=Z.useAsync(()=>{var c,l;const o=new URL(a?((c=window==null?void 0:window.blocklet)==null?void 0:c.appLogo)||"/.well-known/service/blocklet/logo":((l=window==null?void 0:window.blocklet)==null?void 0:l.appLogoRect)||"/.well-known/service/blocklet/logo-rect",window.location.origin);o.searchParams.delete("imageFilter"),o.searchParams.delete("f");const m=o.toString();return new Promise(f=>{fetch(m).then(p=>{const u=p.headers.get("content-type");u!=null&&u.includes("svg")&&p.text().then(j=>{r(j),f(null)}),f(p.url)})})},[a]);if(t)return t;if(n)return e.jsx(P.Box,{sx:{filter:"initial !important"},dangerouslySetInnerHTML:{__html:we.default.sanitize(n)}});if(s){const o=new URL(s);o.searchParams.set("imageFilter","convert"),o.searchParams.set("f","png"),o.searchParams.set("h","80");const m=o.toString();return e.jsx("img",{src:m,alt:"logo"})}return null}function ae({logo:t,translucentTextColor:n,...r}){const{top:a=0}=z.useScroll(()=>document.getElementById("app"))||{};let s=Math.min(a/800,1),o="";if(s>.1){s=Math.max(s,.6);const m=Math.round(255*Math.min(1-s,.2));o=`rgb(${m}, ${m}, ${m})`}else o=n||"#EEEEEE";return e.jsx(re,{logo:e.jsx(He,{logo:t}),...r,className:J.cx(s<=.7&&"reverse-color"),style:{backgroundColor:`rgba(255,255,255,${s})`,"--logo-invert":s<=.7?1-s/6:1-s},sx:{backdropFilter:s>=.6?"blur(10px)":"blur(0px)",transition:"all 0.3s ease",position:"fixed !important",left:0,top:0,right:0,bgcolor:"transparent","&.reverse-color":{".navmenu-root>.navmenu-sub>span,\n .navmenu-root>.navmenu-item,\n .header-addons>button,\n .header-addons>a,\n .header-addons>div>button":{color:`${o} !important`}},".header-logo > div":{filter:"invert(var(--logo-invert))"},".header-logo":{color:o}}})}const ie=te.default(P.Button)``;exports.Home=Le;exports.HomeView=se;exports.Loading=oe;exports.PageRoutes=A;exports.PageView=O;exports.PageViewByPath=Fe;exports.PageViewWithDataSource=$;exports.TranslucentHeader=ae;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),F=require("./state-DPSTH2vo.js"),$=require("@arcblock/ux/lib/Locale/context"),ee=require("@arcblock/ux/lib/Toast"),te=require("@blocklet/pages-kit/utils/route"),P=require("@mui/icons-material"),J=require("@mui/lab"),s=require("@mui/material"),se=require("immer"),ne=require("lodash/difference"),l=require("react"),ie=require("react-use"),re=require("./home-BWklFLCu.js"),U=require("./array-D-LDfLBW.js"),G=r=>r&&r.__esModule?r:{default:r},W=G(ee),H=G(ne);function oe(r){const[j,k]=l.useState(!1);return e.jsx(J.LoadingButton,{...r,loading:r.loading||j,onClick:u=>{var b;const p=(b=r.onClick)==null?void 0:b.call(r,u);p instanceof Promise&&(k(!0),p.finally(()=>{k(!1)}))}})}const ae=s.createSvgIcon(e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M7.75732 16.2426L16.2426 7.75736",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M16.2426 16.2426L7.75732 7.75735",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),"Close");function le(){const[r,j]=l.useState(),k=l.useMemo(()=>r?e.jsx(s.Dialog,{...r}):null,[r]),u=l.useCallback(()=>{j(void 0)},[]),p=l.useCallback(({title:b,content:d,cancelText:S="Cancel",okText:f="Ok",onOk:g,onClose:c,okIcon:O,okColor:w="primary",cancelColor:y="primary",DialogContentProps:A,form:M,...z})=>{j({...z,open:!0,children:e.jsxs("form",{onSubmit:R=>R.preventDefault(),children:[b&&e.jsxs(s.DialogTitle,{className:"between",zIndex:"appBar",bgcolor:"background.paper",sx:{borderBottom:"1px solid #E5E7EB"},children:[e.jsx(s.Box,{children:b}),e.jsx(s.IconButton,{size:"small",onClick:async()=>{u(),c==null||c()},children:e.jsx(ae,{})})]}),d&&e.jsx(s.DialogContent,{...A,sx:{mt:-3,...A==null?void 0:A.sx},children:e.jsx(s.Box,{pt:3,children:d})}),e.jsxs(s.DialogActions,{children:[e.jsx(s.Button,{variant:"outlined",color:y||"primary",onClick:c??u,children:S}),e.jsx(oe,{variant:"contained",color:w||"primary",startIcon:O,loadingPosition:O?"start":"center",onClick:async()=>{await(g==null?void 0:g()),u()},type:"submit",children:f})]})]}),onClose:c??u})},[u]);return{dialog:k,showDialog:p,closeDialog:u}}const ce=l.forwardRef(({mode:r,state:j},k)=>{const{t:u}=$.useLocaleContext(),[p,b]=l.useState(!1),{dialog:d,showDialog:S}=le(),f=F.useProjectId(),g=l.useCallback(O=>{let w=[];S({title:u("maker.publishToProduction"),content:e.jsxs(s.Box,{sx:{minWidth:300},children:[e.jsx(s.Alert,{color:"warning",icon:e.jsx(P.Warning,{}),children:u("maker.publishToProductionTip")}),e.jsx(s.Box,{maxHeight:"50vh",overflow:"auto",mt:2,children:e.jsx(de,{state:j,toMode:r,onChange:y=>w=y,defaultRouteIds:O})})]}),okText:u("maker.publish"),cancelText:u("common.cancel"),onOk:async()=>{if((w==null?void 0:w.length)===0){const y=u("maker.publishSelectPagesMessage");throw W.default.error(y),new Error(y)}localStorage.setItem(F.getProjectPageVersionKey(f??""),String(new Date().getTime())),b(!0);try{await U.publishPages({mode:r,routes:w}),W.default.success(u("maker.publishSuccessMessage"))}catch(y){throw W.default.error(y.message),y}finally{b(!1)}}})},[r,j,u,f,S]);l.useImperativeHandle(k,()=>({openPublishDialog:g}));const c=l.useCallback(()=>{g()},[g]);return e.jsxs(e.Fragment,{children:[e.jsx(J.LoadingButton,{color:"primary",variant:"contained",size:"small",sx:{mr:1},onClick:c,loading:p,disabled:p,children:u("maker.publishToProduction")}),d]})});function ue({routePathInfo:r,checked:j,onClick:k,route:u}){var d,S,f,g,c;const{t:p}=$.useLocaleContext(),b=!((d=r.routeMetaData)!=null&&d.publishedAt)||((S=r.routeMetaData)==null?void 0:S.updatedAt)&&new Date((f=r.routeMetaData)==null?void 0:f.updatedAt)>new Date((g=r.routeMetaData)==null?void 0:g.publishedAt);return e.jsx(s.ListItem,{sx:{pl:4,pr:3},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{display:"flex",alignItems:"center",sx:{minWidth:"auto"},children:[b&&e.jsx(s.Box,{mr:.35,className:"visible",color:"warning.main",sx:{display:"flex",alignItems:"center"},title:p("maker.pages.needPublish"),children:e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{fontSize:"16px"}})})}),(!((c=r.routeMetaData)!=null&&c.isPublic)||!u.isPublic)&&e.jsx(s.Box,{className:"visible",color:"warning.main",children:e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{fontSize:"16px"}})})})]}),children:e.jsxs(s.ListItemButton,{onClick:k,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:j,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:r.path,primaryTypographyProps:{fontSize:"0.8rem",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",pr:1}})]})})}function de({state:r,toMode:j,onChange:k,defaultRouteIds:u}){const{t:p,locale:b}=$.useLocaleContext(),[d,S]=l.useState(!1),[f,g]=l.useState(()=>u?Object.fromEntries(u.filter(t=>!t.includes("-")).map(t=>[t,!0])):{}),[c,O]=l.useState({}),[w,y]=l.useState(()=>u?Object.fromEntries(u.filter(t=>t.includes("-")).map(t=>[t,!0])):{}),[A,M]=l.useState({}),{loading:z,error:R,value:x}=ie.useAsync(()=>U.getPages({mode:j}),[j]);if(R)throw R;const T=l.useMemo(()=>r.routeIds||[],[r]),I=l.useMemo(()=>(x==null?void 0:x.pageIds)||[],[x]),D=l.useMemo(()=>!T||!r.routes?[]:JSON.parse(JSON.stringify(T)).sort((o,i)=>{var h,m;const n=(h=r.routes)==null?void 0:h[o],a=(m=r.routes)==null?void 0:m[i];return n!=null&&n.publishedAt&&new Date(n.publishedAt).getTime()<new Date(n.updatedAt).getTime()?-1:a!=null&&a.publishedAt&&new Date(a.publishedAt).getTime()<new Date(a.updatedAt).getTime()?1:new Date((n==null?void 0:n.updatedAt)??"").getTime()-new Date((a==null?void 0:a.updatedAt)??"").getTime()}),[r,T]),q=l.useMemo(()=>{if(!D)return[];if(!c)return D;const t=[...D].filter(o=>!c[o]);return Object.values(c).forEach(o=>{o.forEach(i=>{t.push(`${i.originalRouteId}-${i.paramOptionIds.join("-")}`)})}),t},[D,c]),L=l.useMemo(()=>!x||!I||!q?[]:H.default(I,q),[q,x,I]),C=l.useMemo(()=>T?[...T].concat(L):L,[T,L]),_=l.useCallback(()=>{const t={};D==null||D.forEach(o=>{var n;const i=(n=r.routes)==null?void 0:n[o];if(i&&i.params&&i.params.length>0&&i.paramsOptions&&i.paramsOptions.length>0){const a=te.generateParamCombinations({basePath:i.path,params:i.params,routeId:i.id,paramsOptions:i.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});a.length>0&&(t[i.id]=a)}}),O(t)},[D,r.routes]);l.useEffect(()=>{_()},[_]),l.useEffect(()=>{M(t=>{const o={...t};return Object.keys(c).forEach(i=>{var n;c[i]&&((n=c[i])==null?void 0:n.length)>0&&o[i]===void 0&&(o[i]=!0)}),o})},[c]);const K=l.useRef(!0);l.useEffect(()=>{y(t=>{const o={...t};return Object.keys(c).length===0||(Object.keys(c).forEach(i=>{const n=c[i]||[],a=d||!!f[i];n.forEach(h=>{const m=`${i}-${h.paramOptionIds.join("-")}`;K.current?o[m]=a||t[m]||!1:o[m]=a})}),K.current=!1),o})},[f,c,d]);const Q=(t,o)=>{o.stopPropagation(),M(i=>{const n={...i};return n[t]=!n[t],n})},N=l.useCallback(t=>{g(o=>{const i=se.produce(o,n=>{d?(Object.assign(n,Object.fromEntries(C.map(a=>[a,!0]))),delete n[t]):n[t]?(delete n[t],L.includes(t)&&(T||[]).filter(a=>{var h,m;return((h=r.pages[a])==null?void 0:h.slug)===((m=x==null?void 0:x.pages[t])==null?void 0:m.slug)}).forEach(a=>{delete n[a]})):(n[t]=!0,T&&T.includes(t)&&L.filter(a=>{var h,m;return((h=x==null?void 0:x.pages[a])==null?void 0:h.slug)===((m=r.pages[t])==null?void 0:m.slug)}).forEach(a=>{n[a]=!0}))});return S(H.default(C,Object.keys(i)).length===0),i})},[d,C,L,r,x,T]),X=l.useCallback((t,o)=>{const i=`${t}-${o.paramOptionIds.join("-")}`;y(n=>{var m;const a={...n};a[i]=!a[i];const h=((m=c[t])==null?void 0:m.every(B=>a[`${t}-${B.paramOptionIds.join("-")}`]))??!1;return g(B=>{if(h&&!B[t])return{...B,[t]:!0};if(!h&&B[t]){const v={...B};return delete v[t],v}return B}),a})},[c]),Y=l.useCallback(()=>{S(t=>(t&&g({}),!t))},[]);return l.useEffect(()=>{const t=d?C:Object.keys(f),o=Object.entries(w).filter(([,n])=>n).map(([n])=>n).filter(n=>n!==void 0),i=Array.from(new Set([...t,...o]));k(d?null:i)},[d,f,w,C,k]),z?e.jsx(re.Loading,{sx:{my:4}}):e.jsxs(s.List,{disablePadding:!0,sx:{maxWidth:700},children:[e.jsx(s.ListItem,{sx:{position:"sticky",top:0,bgcolor:"background.paper",zIndex:1},disablePadding:!0,children:e.jsxs(s.ListItemButton,{onClick:Y,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:p("common.all")})]})}),D.map(t=>{var B,v;const o=(B=r.routes)==null?void 0:B[t];if(!o)return null;const i=!1,n=c&&c[t]&&((v=c[t])==null?void 0:v.length)>0,a=A[t]!==!1,h=c[t]||[],m=!o.publishedAt||o.updatedAt&&new Date(o.updatedAt).getTime()>new Date(o.publishedAt).getTime();return e.jsxs(s.Box,{children:[e.jsx(s.ListItem,{sx:{pr:4},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{sx:{display:"flex",alignItems:"center"},children:[m&&e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),!o.isPublic&&e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),i,n&&e.jsx(s.Box,{onClick:E=>Q(t,E),sx:{display:"inline-flex",alignItems:"center",mr:.35,cursor:"pointer",color:"info.main"},children:a?e.jsx(P.KeyboardArrowDown,{fontSize:"small",sx:{fontSize:"18px"}}):e.jsx(P.KeyboardArrowRight,{fontSize:"small",sx:{fontSize:"18px"}})})]}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.path,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})}),n&&e.jsx(s.Collapse,{in:a,children:e.jsx(s.Box,{children:h.map(E=>{const V=`${t}-${E.paramOptionIds.join("-")}`,Z=w[V]||!1;return e.jsx(ue,{routePathInfo:E,checked:d||Z,onClick:()=>X(t,E),route:o},V)})})})]},t)}),L.map(t=>{var i,n;const o=x==null?void 0:x.pages[t];return o?e.jsx(s.ListItem,{disablePadding:!0,secondaryAction:e.jsx(s.Chip,{color:"warning",label:"deleted",size:"small"}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.slug,secondary:(n=(i=o.locales)==null?void 0:i[b])==null?void 0:n.title,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})},t):null})]})}exports.default=ce;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),F=require("./state-DPSTH2vo.js"),$=require("@arcblock/ux/lib/Locale/context"),ee=require("@arcblock/ux/lib/Toast"),te=require("@blocklet/pages-kit/utils/route"),P=require("@mui/icons-material"),J=require("@mui/lab"),s=require("@mui/material"),se=require("immer"),ne=require("lodash/difference"),l=require("react"),ie=require("react-use"),re=require("./home-DSfBtFst.js"),U=require("./array-D-LDfLBW.js"),G=r=>r&&r.__esModule?r:{default:r},W=G(ee),H=G(ne);function oe(r){const[j,k]=l.useState(!1);return e.jsx(J.LoadingButton,{...r,loading:r.loading||j,onClick:u=>{var b;const p=(b=r.onClick)==null?void 0:b.call(r,u);p instanceof Promise&&(k(!0),p.finally(()=>{k(!1)}))}})}const ae=s.createSvgIcon(e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e.jsx("path",{d:"M7.75732 16.2426L16.2426 7.75736",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M16.2426 16.2426L7.75732 7.75735",stroke:"#4B5563",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})]}),"Close");function le(){const[r,j]=l.useState(),k=l.useMemo(()=>r?e.jsx(s.Dialog,{...r}):null,[r]),u=l.useCallback(()=>{j(void 0)},[]),p=l.useCallback(({title:b,content:d,cancelText:S="Cancel",okText:f="Ok",onOk:g,onClose:c,okIcon:O,okColor:w="primary",cancelColor:y="primary",DialogContentProps:A,form:M,...z})=>{j({...z,open:!0,children:e.jsxs("form",{onSubmit:R=>R.preventDefault(),children:[b&&e.jsxs(s.DialogTitle,{className:"between",zIndex:"appBar",bgcolor:"background.paper",sx:{borderBottom:"1px solid #E5E7EB"},children:[e.jsx(s.Box,{children:b}),e.jsx(s.IconButton,{size:"small",onClick:async()=>{u(),c==null||c()},children:e.jsx(ae,{})})]}),d&&e.jsx(s.DialogContent,{...A,sx:{mt:-3,...A==null?void 0:A.sx},children:e.jsx(s.Box,{pt:3,children:d})}),e.jsxs(s.DialogActions,{children:[e.jsx(s.Button,{variant:"outlined",color:y||"primary",onClick:c??u,children:S}),e.jsx(oe,{variant:"contained",color:w||"primary",startIcon:O,loadingPosition:O?"start":"center",onClick:async()=>{await(g==null?void 0:g()),u()},type:"submit",children:f})]})]}),onClose:c??u})},[u]);return{dialog:k,showDialog:p,closeDialog:u}}const ce=l.forwardRef(({mode:r,state:j},k)=>{const{t:u}=$.useLocaleContext(),[p,b]=l.useState(!1),{dialog:d,showDialog:S}=le(),f=F.useProjectId(),g=l.useCallback(O=>{let w=[];S({title:u("maker.publishToProduction"),content:e.jsxs(s.Box,{sx:{minWidth:300},children:[e.jsx(s.Alert,{color:"warning",icon:e.jsx(P.Warning,{}),children:u("maker.publishToProductionTip")}),e.jsx(s.Box,{maxHeight:"50vh",overflow:"auto",mt:2,children:e.jsx(de,{state:j,toMode:r,onChange:y=>w=y,defaultRouteIds:O})})]}),okText:u("maker.publish"),cancelText:u("common.cancel"),onOk:async()=>{if((w==null?void 0:w.length)===0){const y=u("maker.publishSelectPagesMessage");throw W.default.error(y),new Error(y)}localStorage.setItem(F.getProjectPageVersionKey(f??""),String(new Date().getTime())),b(!0);try{await U.publishPages({mode:r,routes:w}),W.default.success(u("maker.publishSuccessMessage"))}catch(y){throw W.default.error(y.message),y}finally{b(!1)}}})},[r,j,u,f,S]);l.useImperativeHandle(k,()=>({openPublishDialog:g}));const c=l.useCallback(()=>{g()},[g]);return e.jsxs(e.Fragment,{children:[e.jsx(J.LoadingButton,{color:"primary",variant:"contained",size:"small",sx:{mr:1},onClick:c,loading:p,disabled:p,children:u("maker.publishToProduction")}),d]})});function ue({routePathInfo:r,checked:j,onClick:k,route:u}){var d,S,f,g,c;const{t:p}=$.useLocaleContext(),b=!((d=r.routeMetaData)!=null&&d.publishedAt)||((S=r.routeMetaData)==null?void 0:S.updatedAt)&&new Date((f=r.routeMetaData)==null?void 0:f.updatedAt)>new Date((g=r.routeMetaData)==null?void 0:g.publishedAt);return e.jsx(s.ListItem,{sx:{pl:4,pr:3},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{display:"flex",alignItems:"center",sx:{minWidth:"auto"},children:[b&&e.jsx(s.Box,{mr:.35,className:"visible",color:"warning.main",sx:{display:"flex",alignItems:"center"},title:p("maker.pages.needPublish"),children:e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{fontSize:"16px"}})})}),(!((c=r.routeMetaData)!=null&&c.isPublic)||!u.isPublic)&&e.jsx(s.Box,{className:"visible",color:"warning.main",children:e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{fontSize:"16px"}})})})]}),children:e.jsxs(s.ListItemButton,{onClick:k,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:j,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:r.path,primaryTypographyProps:{fontSize:"0.8rem",fontStyle:"italic",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",pr:1}})]})})}function de({state:r,toMode:j,onChange:k,defaultRouteIds:u}){const{t:p,locale:b}=$.useLocaleContext(),[d,S]=l.useState(!1),[f,g]=l.useState(()=>u?Object.fromEntries(u.filter(t=>!t.includes("-")).map(t=>[t,!0])):{}),[c,O]=l.useState({}),[w,y]=l.useState(()=>u?Object.fromEntries(u.filter(t=>t.includes("-")).map(t=>[t,!0])):{}),[A,M]=l.useState({}),{loading:z,error:R,value:x}=ie.useAsync(()=>U.getPages({mode:j}),[j]);if(R)throw R;const T=l.useMemo(()=>r.routeIds||[],[r]),I=l.useMemo(()=>(x==null?void 0:x.pageIds)||[],[x]),D=l.useMemo(()=>!T||!r.routes?[]:JSON.parse(JSON.stringify(T)).sort((o,i)=>{var h,m;const n=(h=r.routes)==null?void 0:h[o],a=(m=r.routes)==null?void 0:m[i];return n!=null&&n.publishedAt&&new Date(n.publishedAt).getTime()<new Date(n.updatedAt).getTime()?-1:a!=null&&a.publishedAt&&new Date(a.publishedAt).getTime()<new Date(a.updatedAt).getTime()?1:new Date((n==null?void 0:n.updatedAt)??"").getTime()-new Date((a==null?void 0:a.updatedAt)??"").getTime()}),[r,T]),q=l.useMemo(()=>{if(!D)return[];if(!c)return D;const t=[...D].filter(o=>!c[o]);return Object.values(c).forEach(o=>{o.forEach(i=>{t.push(`${i.originalRouteId}-${i.paramOptionIds.join("-")}`)})}),t},[D,c]),L=l.useMemo(()=>!x||!I||!q?[]:H.default(I,q),[q,x,I]),C=l.useMemo(()=>T?[...T].concat(L):L,[T,L]),_=l.useCallback(()=>{const t={};D==null||D.forEach(o=>{var n;const i=(n=r.routes)==null?void 0:n[o];if(i&&i.params&&i.params.length>0&&i.paramsOptions&&i.paramsOptions.length>0){const a=te.generateParamCombinations({basePath:i.path,params:i.params,routeId:i.id,paramsOptions:i.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});a.length>0&&(t[i.id]=a)}}),O(t)},[D,r.routes]);l.useEffect(()=>{_()},[_]),l.useEffect(()=>{M(t=>{const o={...t};return Object.keys(c).forEach(i=>{var n;c[i]&&((n=c[i])==null?void 0:n.length)>0&&o[i]===void 0&&(o[i]=!0)}),o})},[c]);const K=l.useRef(!0);l.useEffect(()=>{y(t=>{const o={...t};return Object.keys(c).length===0||(Object.keys(c).forEach(i=>{const n=c[i]||[],a=d||!!f[i];n.forEach(h=>{const m=`${i}-${h.paramOptionIds.join("-")}`;K.current?o[m]=a||t[m]||!1:o[m]=a})}),K.current=!1),o})},[f,c,d]);const Q=(t,o)=>{o.stopPropagation(),M(i=>{const n={...i};return n[t]=!n[t],n})},N=l.useCallback(t=>{g(o=>{const i=se.produce(o,n=>{d?(Object.assign(n,Object.fromEntries(C.map(a=>[a,!0]))),delete n[t]):n[t]?(delete n[t],L.includes(t)&&(T||[]).filter(a=>{var h,m;return((h=r.pages[a])==null?void 0:h.slug)===((m=x==null?void 0:x.pages[t])==null?void 0:m.slug)}).forEach(a=>{delete n[a]})):(n[t]=!0,T&&T.includes(t)&&L.filter(a=>{var h,m;return((h=x==null?void 0:x.pages[a])==null?void 0:h.slug)===((m=r.pages[t])==null?void 0:m.slug)}).forEach(a=>{n[a]=!0}))});return S(H.default(C,Object.keys(i)).length===0),i})},[d,C,L,r,x,T]),X=l.useCallback((t,o)=>{const i=`${t}-${o.paramOptionIds.join("-")}`;y(n=>{var m;const a={...n};a[i]=!a[i];const h=((m=c[t])==null?void 0:m.every(B=>a[`${t}-${B.paramOptionIds.join("-")}`]))??!1;return g(B=>{if(h&&!B[t])return{...B,[t]:!0};if(!h&&B[t]){const v={...B};return delete v[t],v}return B}),a})},[c]),Y=l.useCallback(()=>{S(t=>(t&&g({}),!t))},[]);return l.useEffect(()=>{const t=d?C:Object.keys(f),o=Object.entries(w).filter(([,n])=>n).map(([n])=>n).filter(n=>n!==void 0),i=Array.from(new Set([...t,...o]));k(d?null:i)},[d,f,w,C,k]),z?e.jsx(re.Loading,{sx:{my:4}}):e.jsxs(s.List,{disablePadding:!0,sx:{maxWidth:700},children:[e.jsx(s.ListItem,{sx:{position:"sticky",top:0,bgcolor:"background.paper",zIndex:1},disablePadding:!0,children:e.jsxs(s.ListItemButton,{onClick:Y,dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d,tabIndex:-1})}),e.jsx(s.ListItemText,{primary:p("common.all")})]})}),D.map(t=>{var B,v;const o=(B=r.routes)==null?void 0:B[t];if(!o)return null;const i=!1,n=c&&c[t]&&((v=c[t])==null?void 0:v.length)>0,a=A[t]!==!1,h=c[t]||[],m=!o.publishedAt||o.updatedAt&&new Date(o.updatedAt).getTime()>new Date(o.publishedAt).getTime();return e.jsxs(s.Box,{children:[e.jsx(s.ListItem,{sx:{pr:4},disablePadding:!0,secondaryAction:e.jsxs(s.Box,{sx:{display:"flex",alignItems:"center"},children:[m&&e.jsx(s.Tooltip,{title:p("maker.pages.needPublish"),children:e.jsx(P.Sync,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),!o.isPublic&&e.jsx(s.Tooltip,{title:p("maker.pages.notPublic"),children:e.jsx(P.VisibilityOff,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),i,n&&e.jsx(s.Box,{onClick:E=>Q(t,E),sx:{display:"inline-flex",alignItems:"center",mr:.35,cursor:"pointer",color:"info.main"},children:a?e.jsx(P.KeyboardArrowDown,{fontSize:"small",sx:{fontSize:"18px"}}):e.jsx(P.KeyboardArrowRight,{fontSize:"small",sx:{fontSize:"18px"}})})]}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.path,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})}),n&&e.jsx(s.Collapse,{in:a,children:e.jsx(s.Box,{children:h.map(E=>{const V=`${t}-${E.paramOptionIds.join("-")}`,Z=w[V]||!1;return e.jsx(ue,{routePathInfo:E,checked:d||Z,onClick:()=>X(t,E),route:o},V)})})})]},t)}),L.map(t=>{var i,n;const o=x==null?void 0:x.pages[t];return o?e.jsx(s.ListItem,{disablePadding:!0,secondaryAction:e.jsx(s.Chip,{color:"warning",label:"deleted",size:"small"}),children:e.jsxs(s.ListItemButton,{onClick:()=>N(t),dense:!0,children:[e.jsx(s.ListItemIcon,{children:e.jsx(s.Checkbox,{edge:"start",checked:d||!!f[t],tabIndex:-1})}),e.jsx(s.ListItemText,{primary:o.slug,secondary:(n=(i=o.locales)==null?void 0:i[b])==null?void 0:n.title,primaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"},secondaryTypographyProps:{noWrap:!0,textOverflow:"ellipsis"}})]})},t):null})]})}exports.default=ce;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";var Et=Object.defineProperty;var It=(t,s,e)=>s in t?Et(t,s,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[s]=e;var x=(t,s,e)=>It(t,typeof s!="symbol"?s+"":s,e);const Ot=require("@blocklet/pages-kit/builtin/utils"),he=require("@blocklet/pages-kit/types"),re=require("@blocklet/pages-kit/utils/property"),Q=require("@blocklet/quickjs"),At=require("@blocklet/sdk/lib/config"),Ue=require("lru-cache"),tt=require("node-fetch"),M=require("ufo"),Oe=require("crypto"),Tt=require("@blocklet/logger"),Pt=require("@blocklet/pages-kit/utils/builtin"),st=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),Fe=require("@blocklet/sdk/lib/component"),jt=require("autoprefixer"),_t=require("esbuild"),b=require("fs"),Ct=require("postcss"),Dt=require("tailwindcss"),vt=require("typescript"),xt=require("@blocklet/pages-kit/utils/data-source"),ye=require("@blocklet/pages-kit/utils/route"),kt=require("@reactivedata/reactive"),W=require("@syncedstore/core"),xe=require("glob"),Nt=require("lib0/decoding"),Rt=require("lib0/encoding"),Lt=require("lodash/cloneDeep"),Mt=require("lodash/debounce"),Ut=require("lodash/get"),Ft=require("lodash/isEmpty"),qt=require("lodash/pick"),$t=require("lodash/set"),Bt=require("lodash/union"),Gt=require("nanoid"),Vt=require("p-limit"),S=require("path"),Ht=require("stream/promises"),Jt=require("tar"),zt=require("wait-on"),se=require("y-protocols/awareness"),_e=require("y-protocols/sync"),Kt=require("yaml"),Yt=require("yjs"),Wt=require("lodash/isNil"),C=require("sequelize");require("sqlite3");require("@blocklet/pages-kit/types/state");const N=t=>t&&t.__esModule?t:{default:t};function le(t){if(t&&t.__esModule)return t;const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const O=N(At),Qt=N(tt),Xt=N(Tt),Zt=N(jt),es=le(_t),ts=N(Ct),ss=N(Dt),L=N(vt),Ce=le(Nt),k=le(Rt),nt=N(Lt),ot=N(Mt),qe=N(Ut),ns=N(Ft),os=N(qt),Ke=N($t),as=N(Bt),rs=N(Vt),is=N(S),cs=N(zt),X=le(Kt),B=le(Yt),ls=N(Wt);O.default.env.mode;O.default.env.OPENAI_API_KEY||process.env.OPENAI_API_KEY;O.default.env.OPENAI_BASE_URL||process.env.OPENAI_BASE_URL;O.default.env.TRANSLATE_ADDITIONAL_PROMPT||process.env.TRANSLATE_ADDITIONAL_PROMPT;O.default.env.PAGE_CONTENT_ADDITIONAL_PROMPT||process.env.PAGE_CONTENT_ADDITIONAL_PROMPT;const ps="image-bin";O.default.env.INIT_TEMPLATE_PATH;const ds=process.env.DATABASE_URL||is.default.join(O.default.env.dataDir,"db/pages-kit.db"),Ye=O.default,us=()=>O.default.env.tenantMode==="multiple",fs=()=>{var t;return(ls.default(Ye.env.preferences.multiTenantAllProjectAccessPassports)?[]:(t=Ye.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:t.split(","))||[]},I=Xt.default("pages-kit"),ms=C.DataTypes.sqlite.DATE.parse;C.DataTypes.sqlite.DATE.parse=(t,s)=>typeof t=="number"?new Date(t):ms(t,s);const pe=new C.Sequelize({dialect:"sqlite",storage:ds,benchmark:process.env.ENABLE_SEQUELIZE_BENCHMARK==="true",retry:{match:[/SQLITE_BUSY/],name:"query",max:10},logging:process.env.ENABLE_SEQUELIZE_LOGGING==="true"?console.log:!1});pe.query("pragma journal_mode = WAL;");pe.query("pragma synchronous = normal;");pe.query("pragma journal_size_limit = 67108864;");class Ae extends C.Model{}Ae.init({id:{type:C.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:C.DataTypes.UUIDV4},projectId:{type:C.DataTypes.UUID,allowNull:!1},componentId:{type:C.DataTypes.STRING,allowNull:!1}},{sequelize:pe,tableName:"ProjectComponents",timestamps:!1});class J extends C.Model{static async getProjectByIdOrSlug(s){return J.findOne({where:{[C.Op.or]:[{id:s},{slug:s}]}})}}J.init({id:{type:C.DataTypes.UUID,defaultValue:C.DataTypes.UUIDV4,primaryKey:!0},name:{type:C.DataTypes.STRING,allowNull:!1},description:C.DataTypes.TEXT,createdAt:C.DataTypes.DATE,updatedAt:C.DataTypes.DATE,createdBy:{type:C.DataTypes.STRING,allowNull:!1},updatedBy:{type:C.DataTypes.STRING,allowNull:!1},slug:C.DataTypes.STRING,icon:C.DataTypes.STRING,pinnedAt:C.DataTypes.DATE,useAllResources:C.DataTypes.BOOLEAN,npmSecret:C.DataTypes.STRING,relatedBlocklets:{type:C.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(t){this.setDataValue("relatedBlocklets",JSON.stringify(t||{}))}}},{sequelize:pe,paranoid:!0});J.hasMany(Ae,{foreignKey:"projectId",as:"components"});const gs=async(t,{componentId:s})=>{const e=`@tailwind components;
|
|
2
|
+
@tailwind utilities;
|
|
3
|
+
`,n=`.CustomComponent_${s}`;return(await ts.default([ss.default({content:[{raw:t,extension:"tsx"}]}),Zt.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),a=>{a.walkRules(p=>{p.selectors=p.selectors.map(r=>r.replace(/\.(.+)/g,`${n}.$1,${n} .$1`))})}]).process(e)).css},hs=async(t,{componentId:s})=>{const e=await gs(t,{componentId:s});return`export const __PagesKit_CSS__ = ${JSON.stringify(e)};
|
|
4
|
+
|
|
5
|
+
${t}
|
|
6
|
+
`},We=Q.memoize(async(t,s)=>{let e=L.default.transpileModule(t,{compilerOptions:{jsx:L.default.JsxEmit.React,target:L.default.ScriptTarget.ES2016,module:L.default.ModuleKind.ESNext},transformers:{before:[st.createBuiltinModuleTransformer(L.default)]}}).outputText;if(s.tailwind&&(e=await hs(e,{componentId:s.componentId})),s.module===he.PreloadComponentScriptModule.ESM)return e;const n=L.default.transpileModule(e,{compilerOptions:{jsx:L.default.JsxEmit.React,target:L.default.ScriptTarget.ES2016,module:L.default.ModuleKind.CommonJS,moduleResolution:L.default.ModuleResolutionKind.Node16}}).outputText;return s.module===he.PreloadComponentScriptModule.CJS?n:Ss(s.moduleName,n)},{keyGenerator:(t,s)=>{const e=Oe.createHash("md5").update(t).digest("hex"),n={...s,componentId:s.componentId,module:s.module,...s.module!==he.PreloadComponentScriptModule.ESM?{moduleName:s.moduleName}:{},tailwind:s.tailwind};return JSON.stringify(["transpileModule",e,n])},lruOptions:{max:100,ttl:1e3*60*60}}),ys=async(t,s)=>{var p,r;const n=(r=(p=(await es.build({entryPoints:["index.tsx"],external:Object.keys(Pt.BuiltinModules),format:"esm",target:"esnext",bundle:!0,write:!1,plugins:[{name:"vfs",setup(d){let l=null;d.onResolve({filter:/.*/},u=>u.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:u.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),d.onLoad({filter:/.*/,namespace:"vfs"},async u=>{var y;if(u.path==="index.tsx")return{contents:`export { ${s} } from './component'`,loader:"tsx"};if(u.path==="component.tsx")return{contents:t,loader:"tsx"};if(st.isRelativeModule(u.path)){const g=u.path.split("/").pop();if(l||(l=await Te({ensureLoaded:!1})),(y=l==null?void 0:l.chunks)!=null&&y[g])try{const i=b.readFileSync(l.chunks[g],"utf-8");return I.info("get chunk from local file system",g),{contents:i,loader:"tsx"}}catch{}}return null})}}]})).outputFiles)==null?void 0:p[0])==null?void 0:r.contents;if(!n)throw new Error("Failed to build server code");const o=Buffer.from(n).toString();return L.default.transpileModule(o,{compilerOptions:{module:L.default.ModuleKind.ESNext,target:L.default.ScriptTarget.ES2020}}).outputText},at=Q.memoize(async(t,s)=>{const e=await ys(t,s);return new RegExp(`export\\s+\\{\\s+${s}\\s+\\}`,"m").test(e)?e:void 0},{keyGenerator:(t,s)=>{const e=Oe.createHash("md5").update(t).digest("hex");return JSON.stringify(["extractExportValueSchema",e,s])},lruOptions:{max:100,ttl:1e3*60*60}}),Ss=(t,s)=>`// GENERATED FILE. DO NOT EDIT.
|
|
7
|
+
var ${t} = function () {
|
|
8
|
+
|
|
9
|
+
const exports = {};
|
|
10
|
+
let moduleExports = null;
|
|
11
|
+
|
|
12
|
+
// add commonjs module compatibility layer
|
|
13
|
+
const module = { exports: moduleExports };
|
|
14
|
+
|
|
15
|
+
// execute component code
|
|
16
|
+
${s}
|
|
17
|
+
|
|
18
|
+
// handle possible module.exports
|
|
19
|
+
if (module.exports && module.exports !== moduleExports) {
|
|
20
|
+
// if module.exports is used, use it first
|
|
21
|
+
return typeof module.exports === 'object' ? module.exports : { default: module.exports };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// ensure a default export
|
|
25
|
+
if (!('default' in exports) && Object.keys(exports).length === 0) {
|
|
26
|
+
// module has no exports, return null to indicate invalid
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return exports;
|
|
31
|
+
};
|
|
32
|
+
`,oe=new Ue.LRUCache({max:100}),rt=60*60,ke=60;function it(t){I.info("clear preload components cache",{cacheKey:t}),oe.delete(t)}function ct(t){for(const s of oe.keys())s.includes(t)&&(I.info("clear preload components cache",{cacheKey:s}),it(s))}function lt({mode:t,instanceId:s,componentId:e,locale:n}){return["getPreloadComponents",t,s,e,n].join("-")}async function ws({mode:t,req:s,state:e,locale:n,instances:o,module:a}){const{supportedLocales:p,config:{defaultLocale:r}}=e;if(!r)return null;const d=(await Promise.all(o.map(async i=>{try{const c=lt({mode:t,instanceId:i.id,componentId:i.componentId,locale:n});if(t!=="draft"&&i.useCache&&oe.has(c))return I.info(`get preload component from cache: ${c}`),oe.get(c);const f=ie({state:e,componentId:i.componentId});if(!f)return null;const E=await pt({req:s,state:e,componentId:f.id,locale:n,defaultLocale:r,properties:i.properties});if(!E)return null;const v={instanceId:i.id,preload:E};if(t!=="draft"&&i.useCache){let T=rt;i.cacheDuration&&(T=i.cacheDuration),I.info(`set preload component to cache(${T}s): ${c}`),oe.set(c,v,{ttl:T*1e3})}return v}catch(c){return I.error("get preload component error",{instanceId:i.id,componentId:i.componentId},{error:c}),null}}))).filter(i=>!!i),l=Object.values(d.reduce((i,c)=>({...i,...c.preload.components}),{}));async function u(){const i=await Promise.all(l.map(async c=>{const f=re.componentUMDName({componentId:c.component.id}),E=a===he.PreloadComponentScriptModule.ESM?{module:a,script:await We(c.script,{componentId:c.component.id,module:a,tailwind:t!=="draft"})}:{module:a,script:await We(c.script,{componentId:c.component.id,module:a,moduleName:f,tailwind:t!=="draft"}),moduleName:f};return[c.component.id,{component:c.component,script:E}]}));return Object.fromEntries(i)}const y=await u();return{config:{defaultLocale:r,supportedLocales:p},components:y,instances:d.map(i=>({id:i.instanceId,componentId:i.preload.component.id,locales:{[i.preload.locale]:{props:i.preload.props}}}))}}async function pt({req:t,state:s,componentId:e,locale:n,defaultLocale:o,properties:a}){const{supportedLocales:p}=s,r=ie({state:s,componentId:e});if(!r)return null;const d=p.some(u=>u.locale===n)?n:o;if(!d)return null;const l=await dt({req:t,state:s,componentId:e,locale:d,defaultLocale:o,properties:a});return l?{component:r,...l}:null}const bs=20;async function dt({req:t,depth:s=0,state:e,componentId:n,locale:o,defaultLocale:a,properties:p}){if(s>bs)throw new RangeError("max component depth exceeded");const r=Es({state:e,componentId:n,properties:p,locale:o});if(!r)return null;const{props:d}=r,l={locale:o||a,components:{[r.component.id]:{component:r.component,script:r.script}},props:{...d}};try{const u=await Os({...r,req:t});u!=null&&u.props&&Object.assign(l.props,u.props)}catch(u){I.error("preload data at server side error",{componentId:n,name:r.component.name},{error:u})}return await Promise.all(Object.entries(d).map(async([u,y])=>{if((y==null?void 0:y.type)===re.RenderNestedComponent){const g=await dt({req:t,depth:s+1,state:e,componentId:y.componentId,locale:o,defaultLocale:a,properties:y.properties});g&&(Object.assign(l.components,g.components),Object.assign(l.props,{[u]:{type:re.RenderNestedComponent,componentId:y.componentId,props:g.props}}))}})),l}function Es({state:t,componentId:s,locale:e,properties:n}){const o=ie({state:t,componentId:s});if(!o)return null;const a=re.mergeComponent({componentId:s,getComponent:p=>ie({state:t,componentId:p}),locale:e,defaultLocale:t.config.defaultLocale,properties:n});return a?{component:o,script:a.script,props:{locale:e,...a.props}}:null}function ie({state:t,componentId:s}){var e,n,o;return((e=t.components[s])==null?void 0:e.data)??((o=(n=t.resources.components)==null?void 0:n[s])==null?void 0:o.component)}function Is({state:t,name:s}){var n,o;const e=s.toLowerCase();return((n=Object.values(t.components).find(a=>{var p;return((p=a.data.name)==null?void 0:p.toLowerCase())===e}))==null?void 0:n.data)??((o=t.resources.components&&Object.values(t.resources.components).find(a=>{var p;return((p=a.component.name)==null?void 0:p.toLowerCase())===e}))==null?void 0:o.component)}async function Os({component:t,script:s,props:e,req:n}){if(!(s!=null&&s.includes("getServerSideProps")))return null;const o=await at(s,"getServerSideProps");if(!o)return null;const a=new Promise(r=>{setTimeout(()=>{r({})},ke*1e3)});return await Promise.race([a,Q.Sandbox.callFunction({code:`${o}
|
|
33
|
+
|
|
34
|
+
export async function getServerSidePropsWrapper(props) {
|
|
35
|
+
const { location, fetch, props: componentProps } = props;
|
|
36
|
+
// 使用局部变量而不是全局变量
|
|
37
|
+
const originalLocation = typeof window !== 'undefined' ? window.location : undefined;
|
|
38
|
+
const originalFetch = globalThis.fetch;
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
globalThis.location = location;
|
|
42
|
+
globalThis.fetch = fetch;
|
|
43
|
+
return await getServerSideProps(componentProps);
|
|
44
|
+
} finally {
|
|
45
|
+
// 清理全局状态
|
|
46
|
+
if (originalLocation) globalThis.location = originalLocation;
|
|
47
|
+
if (originalFetch) globalThis.fetch = originalFetch;
|
|
48
|
+
}
|
|
49
|
+
}`,filename:`${t.name||t.id}.js`,moduleLoader:r=>{if(r==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
|
|
50
|
+
export { joinURL, withQuery, getQuery, getComponentMountPoint }
|
|
51
|
+
`;if(r==="@blocklet/pages-kit/builtin/dayjs")return Q.BuiltinModules.dayjs},global:{console:{log:(...r)=>{I.info(...r)},warn:(...r)=>{I.warn(...r)},error:(...r)=>{I.error(...r)}},getComponentMountPoint:Ot.getComponentMountPoint,joinURL:M.joinURL,withQuery:M.withQuery,getQuery:M.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:M.joinURL(M.withHttps(n.hostname),n.originalUrl)},fetch:(r,{...d}={})=>{const l=typeof r=="string"&&r.startsWith("/")?M.joinURL(O.default.env.appUrl,r):r;if(typeof l=="string"&&M.parseURL(l).host===M.parseURL(O.default.env.appUrl).host){const u=n.get("cookie");if(u){const y=new tt.Headers(d.headers);y.set("cookie",u),d.headers=y}}return Qt.default(l,{...d,timeout:ke*1e3}).then(u=>({ok:u.ok,status:u.status,statusText:u.statusText,headers:Object.fromEntries(u.headers.entries()),json:()=>u.json()}))},props:e}]})])}const ut=Q.memoize(async(t,s,e)=>{if(!(t!=null&&t.includes(s)))return null;const n=await at(t,s);if(n)try{return await Q.Sandbox.callFunction({code:`
|
|
52
|
+
${n}
|
|
53
|
+
|
|
54
|
+
export function get${s}SchemaWrapper() {
|
|
55
|
+
return ${s};
|
|
56
|
+
}
|
|
57
|
+
`,filename:`${e}.js`,functionName:`get${s}SchemaWrapper`})}catch(o){return I.error(`获取 ${s} 失败`,{componentId:e,error:o}),null}return null},{keyGenerator:(t,s,e)=>{const n=Oe.createHash("md5").update(t).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",n,s,e])},lruOptions:{max:100,ttl:1e3*60*60}}),As="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Ne="page",Re="trigger-reload-project-resource",$e=As,Ts="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM",{uploadToMediaKit:Ps}=require("@blocklet/uploader-server"),Se=Gt.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),Be=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,ae=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,Qe=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,js=1e4,_s=3e4,me=0,De=1,Cs=0,Ds=1,Le=O.default,ne=S.join(process.env.BLOCKLET_DATA_DIR,"site-state"),vs=["production","draft"],xs=["production"];function be(t){return(t==null?void 0:t.replace(/\//g,"|"))||""}function ks(){var e;const t=Le.env.languages.map(n=>({locale:n.code,name:n.name})),s=(e=t[0])==null?void 0:e.locale;return{pageIds:[],pages:{},routeIds:[],routes:{},components:{},supportedLocales:t,config:{defaultLocale:s},resources:{}}}const H=class H extends B.Doc{constructor(e){super();x(this,"states",{});x(this,"syncedStore");x(this,"conns",new Map);x(this,"awareness");x(this,"awarenessChangeHandler",({added:e,updated:n,removed:o},a)=>{const p=e.concat(n,o);if(a!==null){const l=this.conns.get(a);l&&(e.forEach(u=>{l.add(u)}),o.forEach(u=>{l.delete(u)}))}const r=k.createEncoder();k.writeVarUint(r,De),k.writeVarUint8Array(r,se.encodeAwarenessUpdate(this.awareness,p));const d=k.toUint8Array(r);this.conns.forEach((l,u)=>this.send(u,d))});x(this,"updateHandler",e=>{const n=k.createEncoder();k.writeVarUint(n,me),_e.writeUpdate(n,e);const o=k.toUint8Array(n);this.conns.forEach((a,p)=>this.send(p,o))});x(this,"ensureDataStructure",()=>{var p;const{supportedLocales:e,pages:n,pageIds:o,config:a}=this.syncedStore;{const r=new Set(Object.keys(n));let d=0;for(;d<o.length;){const l=o[d];r.has(l)?(r.delete(l),d++):o.splice(d,1)}}e.splice(0,e.length),e.push(...Le.env.languages.map(r=>({locale:r.code,name:r.name}))),a.defaultLocale=(p=e[0])==null?void 0:p.locale;{let r=0;const d=new Set;for(;r<e.length;){const{locale:l}=e[r];d.has(l)?e.splice(r,1):(r++,d.add(l))}}});x(this,"send",(e,n)=>{e.readyState!==Cs&&e.readyState!==Ds&&this.closeConn(e);try{e.send(n,o=>{o&&this.closeConn(e)})}catch{this.closeConn(e)}});x(this,"closeConn",e=>{if(e.removeAllListeners(),this.conns.has(e)){const n=this.conns.get(e);this.conns.delete(e),n&&se.removeAwarenessStates(this.awareness,Array.from(n),null)}e.close()});x(this,"autoSave",ot.default(()=>{b.mkdirSync(S.dirname(this.draftYjsFilePath),{recursive:!0}),b.writeFileSync(this.draftYjsFilePath,B.encodeStateAsUpdate(this))},js));x(this,"save",({flush:e=!1}={})=>{this.autoSave(),e&&this.autoSave.flush()});x(this,"publish",async({mode:e,routes:n})=>{var p;const o=await this.getState("draft"),a=await this.getState("production");await Me(o,a,{routes:n,mergeMode:"replace",deleteRoutes:!0,publishMode:e}),a.config.publishedAt=new Date().getTime();for(const r of n||Object.keys(this.syncedStore.routes||{})){let d=r,l=[];if(r.includes("-")){const[u,...y]=r.split("-");d=u,l=y||[]}if(((p=this.syncedStore.routes)==null?void 0:p[d])!==void 0){this.syncedStore.routes[d].publishedAt=new Date().toISOString();const u=this.syncedStore.routes[d];if(!u||!u.params||u.params.length===0)continue;if(r.includes("-")&&l.length>0){const y=ye.getRouteMetaDataByOptionIds(l,u);y&&(y.publishedAt=new Date().toISOString())}if(!n){const y=ye.generateParamCombinations({basePath:u.path,params:u.params,routeId:u.id,paramsOptions:u.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const g of y)g.routeMetaData??(g.routeMetaData={}),g.routeMetaData.publishedAt=new Date().toISOString()}}}await this.setState(e,a)});x(this,"mergeState",async(e,n)=>{var r,d,l;const o=JSON.parse(JSON.stringify(n));(r=e.config).fontFamily??(r.fontFamily={});const a=(d=o.config)==null?void 0:d.fontFamily,p=(l=e.config)==null?void 0:l.fontFamily;e.config.fontFamily.title=(a==null?void 0:a.title)||(p==null?void 0:p.title),e.config.fontFamily.description=(a==null?void 0:a.description)||(p==null?void 0:p.description),await new Promise((u,y)=>{this.transact(async()=>{try{const g=await Me(e,n);u(g)}catch(g){y(g)}})})});x(this,"addConnection",e=>{if(this.conns.has(e))return;e.binaryType="arraybuffer",this.conns.set(e,new Set),e.on("message",a=>this.messageListener(e,new Uint8Array(a)));let n=!0;const o=setInterval(()=>{if(!n)this.conns.has(e)&&this.closeConn(e),clearInterval(o);else if(this.conns.has(e)){n=!1;try{e.ping()}catch{this.closeConn(e),clearInterval(o)}}},_s);e.on("close",()=>{this.closeConn(e),clearInterval(o)}),e.on("pong",()=>{n=!0});{const a=k.createEncoder();k.writeVarUint(a,me),_e.writeSyncStep1(a,this),this.send(e,k.toUint8Array(a));const p=this.awareness.getStates();if(p.size>0){const r=k.createEncoder();k.writeVarUint(r,De),k.writeVarUint8Array(r,se.encodeAwarenessUpdate(this.awareness,Array.from(p.keys()))),this.send(e,k.toUint8Array(r))}}});x(this,"messageListener",(e,n)=>{try{const o=k.createEncoder(),a=Ce.createDecoder(n),p=Ce.readVarUint(a);switch(p){case me:k.writeVarUint(o,me),_e.readSyncMessage(a,o,this,null),k.length(o)>1&&(this.ensureDataStructure(),this.send(e,k.toUint8Array(o)));break;case De:{se.applyAwarenessUpdate(this.awareness,Ce.readVarUint8Array(a),e);break}default:I.warn(`Unsupported messageType ${p}`)}}catch(o){I.error(o)}this.save()});this.options=e,b.existsSync(this.draftYjsFilePath)&&B.applyUpdate(this,b.readFileSync(this.draftYjsFilePath)),this.syncedStore=kt.reactive(W.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{},routeIds:[],routes:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new se.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(e){if(!e)throw new Error("Should provide project context");try{const n=S.join(ne,e),o=S.join(ne,`@del-${e}`);b.renameSync(n,o)}catch(n){I.error("Failed to safe delete project state dir:",n)}}static get projectIds(){return xe.globSync("*/",{cwd:ne,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(e=>H.shared(e))}static shared(e){if(!e)throw new Error("Should provide project context");let n=this.sharedInstances.get(e);return n||(n=new H({path:S.join(ne,e)}),this.sharedInstances.set(e,n),n)}destroy(){this.conns.forEach((e,n)=>this.closeConn(n)),this.awareness.destroy(),super.destroy()}initObserver(){const e=a=>{a.observeDeep(p=>{p.some(r=>r.changes.keys.has("updatedAt")||r.changes.keys.has("publishedAt"))||a.set("updatedAt",new Date().toISOString())})};this.syncedStore.pages&&Object.keys(this.syncedStore.pages).forEach(a=>{const p=W.getYjsValue(this.syncedStore.pages[a]);p&&p instanceof B.Map&&e(p)});const n=W.getYjsValue(this.syncedStore.pages);n&&n instanceof B.Map&&n.observe(a=>{a.changes.keys.forEach((p,r)=>{if(p.action==="add"){const d=W.getYjsValue(this.syncedStore.pages[r]);d&&d instanceof B.Map&&e(d)}})}),this.syncedStore.routes&&Object.keys(this.syncedStore.routes).forEach(a=>{var r;const p=W.getYjsValue((r=this.syncedStore.routes)==null?void 0:r[a]);p&&p instanceof B.Map&&e(p)});const o=W.getYjsValue(this.syncedStore.routes);o&&o instanceof B.Map&&o.observe(a=>{a.changes.keys.forEach((p,r)=>{var d;if(p.action==="add"){const l=W.getYjsValue((d=this.syncedStore.routes)==null?void 0:d[r]);l&&l instanceof B.Map&&e(l)}})})}get draftYjsFilePath(){return S.join(this.options.path,"draft.yjs")}async getState(e){var n,o,a,p;if(e==="draft")return JSON.parse(JSON.stringify(this.syncedStore));if(!this.states[e]&&(this.states[e]=await Ge(this.getPublishDir(e),{includeResources:!0})??ks(),!((o=(n=this.states[e])==null?void 0:n.config)!=null&&o.defaultLocale))){(a=this.states[e]).config??(a.config={});const r=Le.env.languages.map(d=>({locale:d.code,name:d.name}));this.states[e].config.defaultLocale=(p=r[0])==null?void 0:p.locale}return{...this.states[e],resources:await Te().then(async r=>{var i,c,f,E;const{pages:d,components:l}=os.default(r,"pages","components");let u=l;const y=S.basename(this.options.path),g=await J.findByPk(y);if(g!=null&&g.useAllResources)u=l;else{const T=(await Ae.findAll({where:{projectId:y}})).map(F=>F.componentId);u=Object.fromEntries(Object.entries(l||{}).filter(([F])=>T.includes(F)))}return Object.keys(((c=(i=this.states[e])==null?void 0:i.resources)==null?void 0:c.components)||{}).length>0&&(u={...u,...(E=(f=this.states[e])==null?void 0:f.resources)==null?void 0:E.components}),{pages:d,components:u}}).catch(()=>({}))}}async setState(e,n){const o=await gt(n,{exportAssets:!1,includeResources:!0}),a=this.getPublishDir(e);b.mkdirSync(S.dirname(a),{recursive:!0}),b.rmSync(a,{force:!0,recursive:!0}),b.renameSync(o,a),this.states[e]=n}getPublishDir(e){return S.join(this.options.path,e)}static async pageUrlMap(e){var a,p;const{projectIds:n}=this,o={};for(const r of n){const d=await J.findByPk(r);if(!d)continue;const l=await H.shared(r).getState(e),u=d.slug||r,y=as.default(O.default.env.languages.map(i=>i.code),l.supportedLocales.map(i=>i.locale)),g=(i,c)=>{u&&(o[M.joinURL("/",u,i)]={...c,shouldRedirect:!0,mainPage:!0}),o[M.joinURL("/",r,i)]={...c,shouldRedirect:!0,mainPage:!0};for(const f of y){const E={...c,locale:f};o[M.joinURL("/",f,r,i)]=E,u&&(o[M.joinURL("/",f,u,i)]=E)}};if(e==="draft")for(const i of l.routeIds||[]){const c=(a=l==null?void 0:l.routes)==null?void 0:a[i];if(!c)continue;if(c.params&&c.params.length>0){const v=ye.generateParamCombinations({basePath:c.path,params:c.params,routeId:c.id,paramsOptions:c.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const T of v){const R=T.path,F={projectId:r,projectSlug:u,pageSlug:R,pageId:c.displayTemplateId||"",routeId:i,defaultLocale:y==null?void 0:y[0],locales:y,publishedAt:l.config.publishedAt,isPublic:c.isPublic&&((p=T==null?void 0:T.routeMetaData)==null?void 0:p.isPublic)};g(R,F)}}const f=c.path,E={projectId:r,projectSlug:u,pageSlug:f,pageId:c.displayTemplateId||"",routeId:i,defaultLocale:y==null?void 0:y[0],locales:y,publishedAt:l.config.publishedAt,isPublic:c.isPublic};g(f,E)}for(const i of l.pageIds){const c=l.pages[i];if(!c||e==="production"&&!c.isPublic)continue;const f=c.slug,E=d.slug||r,v={projectId:r,projectSlug:E,pageSlug:f,pageId:i,defaultLocale:y==null?void 0:y[0],locales:y,publishedAt:l.config.publishedAt,isPublic:c.isPublic,templateConfig:c.templateConfig};g(f,v)}}return o}getDocumentSize(){return B.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const e=[];for(const[n,o]of this.sharedInstances.entries()){const a=o.getDocumentSize();e.push({projectId:n,sizeInBytes:a,sizeInMB:`${(a/(1024*1024)).toFixed(2)} MB`,activeConnections:o.conns.size})}return e}};x(H,"INSTANCE_TTL",30*60*1e3),x(H,"sharedInstances",new Ue.LRUCache({max:100,ttl:H.INSTANCE_TTL,dispose:e=>{e.destroy()}}));let ce=H;function ft(){return b.mkdtempSync(S.join(O.default.env.dataDir,"tmp-"))}function Ee(t,s,e=[]){return Array.isArray(t)?t.flatMap((n,o)=>Ee(n,s,[...e,o])):typeof t=="object"?t===null?[]:Object.entries(t).flatMap(([n,o])=>Ee(o,s,[...e,n])):s(t)?[e]:[]}function U(t){return t.filter(s=>s!=null)}async function Ns(t,s,e){if(!t||!b.existsSync(t)||!b.lstatSync(t).isFile())return null;let n=e[t];return n||(n=(async()=>{var o;try{const a=(o=await Ps({filePath:t,fileName:s}))==null?void 0:o.data;return a==null?void 0:a.filename}catch(a){return I.error(`Failed to upload asset ${t}:`,a),null}})(),e[t]=n),n}const Rs=async(t,s)=>{const e=S.basename(t),n=await Fe.call({name:$e,path:M.joinURL("/uploads",e),responseType:"stream",method:"GET"});if(n.status>=200&&n.status<400){const o=b.createWriteStream(s);await Ht.pipeline(n.data,o)}else throw new Error(`download asset failed ${n.status}`)},Ls=async(t,s)=>{await Promise.all(t.map(async e=>{try{await Rs(e,S.join(s,S.basename(e)))}catch(n){I.error(`Failed to export assets: ${e}, ${n}`)}}))};function mt(t){return Be.test(t)?[t]:ae.test(t)?(Qe.lastIndex=0,Array.from(t.matchAll(Qe)).map(e=>e[1]).filter(e=>!!e)):[]}async function ge(t,s,e){const{getFilename:n,exportAssets:o}=e,a=S.join(s,n(t));if(b.mkdirSync(S.dirname(a),{recursive:!0}),b.writeFileSync(a,X.stringify(t)),o){const r=Ee(t,d=>typeof d=="string"&&(Be.test(d)||ae.test(d))).map(d=>{const l=qe.default(t,d);return mt(l)}).flat().filter(Boolean);await Ls(r,S.dirname(a))}}const Xe=new Ue.LRUCache({max:1e3,ttl:30*24*60*60*1e3});async function Ze(t,s,e){var r;const n=Ee(t,d=>typeof d=="string"&&(Be.test(d)||ae.test(d))),o=rs.default(2),a=n.map(d=>o(async()=>{try{const l=qe.default(t,d),u=mt(l);for(const y of u){const g=S.basename(y),i=e.getFilePath(y,d),c=i?`${i}:${g}`:g,f=Xe.get(c);if(f){ae.test(l)||Ke.default(t,d,f);return}const E=await Ns(i,g,s);E&&(ae.test(l)||Ke.default(t,d,E),Xe.set(c,E))}}catch(l){I.error(`Failed to process upload for path ${d.join(".")}:`,l.message||l.reason)}})),p=await Promise.allSettled(a);(r=e.onFinish)==null||r.call(e,p)}async function gt(t,{exportAssets:s,pageIds:e="all",componentIds:n="all",rawConfig:o,includeResources:a=!1,routeIds:p="all"}={}){var ee,w,m,A,j,z,_,q,K,ue,te,fe;const r=e==="all"?t.pageIds:e,d=re.getComponentDependencies({state:t,pageIds:r,componentIds:n==="all"?Object.keys(t.components):n}),l=p==="all"?t.routeIds:p,u=(h,P)=>{var D;return{id:h.id,name:h.name,isTemplateSection:h.isTemplateSection??!1,templateDescription:h.templateDescription,llmConfig:h.llmConfig,component:h.component,config:h.config,visibility:h.visibility,properties:((D=h.locales)==null?void 0:D[P])??{}}},y=(h,P)=>{var D;return{id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,isPublic:h.isPublic??!0,templateConfig:h.templateConfig,meta:((D=h.locales)==null?void 0:D[P])??{},sections:U(h.sectionIds.map(V=>{const G=h.sections[V];return G&&u(G,P)}))}},g=h=>({id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,path:h.path,handler:h.handler,isPublic:h.isPublic??!0,params:h.params??[],enabledGenerate:h.enabledGenerate??!1,displayTemplateId:h.displayTemplateId,dataSource:h.dataSource}),i=U(l.map(h=>{const P=t.routes[h];return P&&g(P)})),c=U(t.supportedLocales.map(h=>h.locale).flatMap(h=>r.map(P=>{const D=t.pages[P];return D&&{locale:h,slug:D.slug,page:y(D,h)}}))),f=ft(),E=S.join(f,"pages");b.mkdirSync(E,{recursive:!0});const v=S.join(f,"components");b.mkdirSync(v,{recursive:!0});const T=S.join(f,"routes");b.mkdirSync(T,{recursive:!0});for(const{locale:h,slug:P,page:D}of c)await ge(D,E,{getFilename:()=>`${be(P)||"index"}.${h}.yml`,exportAssets:s});for(const h of i)await ge(h,T,{getFilename:()=>`${be(h.path)||"index"}.yml`,exportAssets:s});for(const h of d){const P=(ee=t.components[h])==null?void 0:ee.data;P&&await ge(P,v,{getFilename:D=>`${D.name||"unnamed"}.${D.id}.yml`,exportAssets:s})}const R=S.join(f,".blocklet/pages/pages.config.yml");b.mkdirSync(S.dirname(R),{recursive:!0});const F={pages:U(r.map(h=>{const P=t.pages[h];return P&&{id:h,slug:P.slug}})),routes:U(l.map(h=>{const P=t.routes[h];return P&&{id:h,path:P.path}})),components:U(d.map(h=>{var D;const P=(D=t.components[h])==null?void 0:D.data;return P&&{id:h,name:P.name}})),...a?{resources:{components:U(Object.keys(((w=t.resources)==null?void 0:w.components)||{}).filter(h=>d.includes(h)).map(h=>{var P,D,V,G;return{id:h,name:(G=(V=(D=(P=t.resources)==null?void 0:P.components)==null?void 0:D[h])==null?void 0:V.component)==null?void 0:G.name}}))}}:{},supportedLocales:t.supportedLocales,config:t.config};b.writeFileSync(R,X.stringify(F));const de=S.join(f,"config.source.json");if(o&&b.writeFileSync(de,JSON.stringify(o)),a){const h=S.join(f,"resources"),P=S.join(h,"components");b.mkdirSync(P,{recursive:!0});for(const G of Object.keys(((m=t==null?void 0:t.resources)==null?void 0:m.components)??{}).filter($=>d.includes($))){const $=(z=(j=(A=t.resources)==null?void 0:A.components)==null?void 0:j[G])==null?void 0:z.component;$&&await ge($,P,{getFilename:Y=>`${Y.name||"unnamed"}.${Y.id}.yml`,exportAssets:s})}const D=S.join(f,"chunks");b.mkdirSync(D,{recursive:!0});const{chunks:V}=await Te();for(const G of Object.keys(((_=t==null?void 0:t.resources)==null?void 0:_.components)??{}).filter($=>d.includes($))){const $=(ue=(K=(q=t.resources)==null?void 0:q.components)==null?void 0:K[G])==null?void 0:ue.component;if($&&((te=$.renderer)==null?void 0:te.type)==="react-component"){const Y=((fe=$.renderer)==null?void 0:fe.chunks)??[];if((Y==null?void 0:Y.length)>0)for(const Pe of Y){const ze=S.join(D,Pe),je=V==null?void 0:V[Pe];try{je&&b.existsSync(je)&&!b.existsSync(ze)&&b.copyFileSync(je,ze)}catch(bt){I.error(`copy chunk ${Pe} error`,bt.message)}}}}}return f}async function Ge(t,{importAssets:s,includeResources:e}={}){var a,p,r,d;if(!b.existsSync(t))return null;let n,o=!1;try{b.lstatSync(t).isDirectory()?n=t:/\.(tgz|gz|tar)$/.test(t)&&(o=!0,n=ft(),await Jt.x({file:t,C:n}));const l=xe.globSync("**/.blocklet/pages/pages.config.yml",{cwd:n,absolute:!0}).at(0),u=l&&S.join(S.dirname(l),"../../pages"),y=l&&S.join(S.dirname(l),"../../components"),g=l&&S.join(S.dirname(l),"../../chunks"),i=l&&S.join(S.dirname(l),"../../routes");if(!l)return null;const c=X.parse(b.readFileSync(l).toString()),f=(w,m,A)=>{let j=S.join(w,`${m}${A?`.${A}`:""}.yml`);return(!b.existsSync(j)||!b.lstatSync(j).isFile())&&(j=S.join(w,m,`index${A?`.${A}`:""}.yml`),!b.existsSync(j)||!b.lstatSync(j))?null:X.parse(b.readFileSync(j).toString())},E=(w,m)=>{try{const A=xe.globSync(`*.${m}.yml`,{cwd:w,absolute:!0})[0];return A?X.parse(b.readFileSync(A).toString()):null}catch(A){I.error("parse component error",A)}return null},v=(w,m)=>{let A=S.join(w,`${m}.yml`);return(!b.existsSync(A)||!b.lstatSync(A).isFile())&&(A=S.join(w,m,"index.yml"),!b.existsSync(A)||!b.lstatSync(A))?null:X.parse(b.readFileSync(A).toString())},T=U(c.pages.map(({slug:w})=>{var z;const m=U(c.supportedLocales.map(({locale:_})=>{const q=u?f(u,be(w),_):void 0;if(q)return{locale:_,page:q};const K=u?f(u,w,_):void 0;return K&&{locale:_,page:K}})),A=(z=m[0])==null?void 0:z.page;if(!A)return null;const j=A.sections.map(_=>{const q=_.id||Se();return{id:q,component:_.component,config:_.config,name:_.name,isTemplateSection:_.isTemplateSection??!1,templateDescription:_.templateDescription,llmConfig:_.llmConfig,visibility:_.visibility,locales:Object.fromEntries(U(m.map(({locale:K,page:ue})=>{const te=ue.sections.find(fe=>fe.id===q);return te&&[K,te.properties]})))}});return{id:A.id||Se(),createdAt:A.createdAt,updatedAt:A.updatedAt,publishedAt:A.publishedAt,isPublic:A.isPublic??!0,templateConfig:A.templateConfig,slug:w,sections:Object.fromEntries(j.map(_=>[_.id,_])),sectionIds:j.map(_=>_.id),locales:Object.fromEntries(m.map(({locale:_,page:q})=>[_,q.meta]))}})),R=U(((a=c==null?void 0:c.routes)==null?void 0:a.map(({path:w})=>{const m=i?v(i,be(w)):void 0;return{...m,id:(m==null?void 0:m.id)||Se(),createdAt:(m==null?void 0:m.createdAt)??new Date().toISOString(),updatedAt:(m==null?void 0:m.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(m==null?void 0:m.path)??`/${m==null?void 0:m.id}`,params:m==null?void 0:m.params,handler:(m==null?void 0:m.handler)??"Pages Kit",isPublic:(m==null?void 0:m.isPublic)??!0,enabledGenerate:(m==null?void 0:m.enabledGenerate)??!1,displayTemplateId:(m==null?void 0:m.displayTemplateId)??void 0,dataSource:(m==null?void 0:m.dataSource)??{}}}))??[]),F=y?U(((p=c.components)==null?void 0:p.map(({id:w})=>E(y,w)))??[]):[];if(s){const w=(...m)=>{I.info(`[${o?S.basename(t):S.basename(S.join(t,"../../../../"))}] importAssets:`,...m)};try{w("wait image-bin api ready"),await cs.default({resources:[`${Fe.getComponentWebEndpoint(ps)}/api/sdk/uploads`],validateStatus:j=>j>=200&&j<=500}),w("image-bin api is ready");const m={},A={};w("start to upload assets"),await Promise.allSettled([Ze(F,m,{getFilePath:j=>y&&S.join(y,j),onFinish:j=>{w(`upload ${j.length} component assets`)}}),Ze(T,A,{getFilePath:(j,z)=>{const _=qe.default(T,z.slice(0,1));return u&&S.join(u,S.dirname(_.slug),j)},onFinish:j=>{w(`upload ${j.length} page assets`)}})]),w("upload assets done"),global.gc&&global.gc()}catch(m){w("Error during asset import:",m)}}const de={};if(e){const w=l&&S.join(S.dirname(l),"../../resources/components"),m=U(((d=(r=c.resources)==null?void 0:r.components)==null?void 0:d.map(({id:A})=>E(w,A)))??[]);m.length>0&&(de.components=Object.fromEntries(m.map((A,j)=>[A.id,{index:j,component:A}])))}const ee={};if(g&&b.existsSync(g)){const w=b.readdirSync(g);for(const m of w)ee[m]=S.join(g,m)}return{supportedLocales:c.supportedLocales,pageIds:T.map(w=>w.id),components:Object.fromEntries(F.map((w,m)=>[w.id,{index:m,data:w}])),pages:Object.fromEntries(T.map(w=>[w.id,w])),config:c.config||{},resources:de,chunks:ee,routeIds:R.map(w=>w.id),routes:Object.fromEntries(R.map(w=>[w.id,w]))}}finally{o&&n&&b.rmSync(n,{force:!0,recursive:!0})}}function ve({page:t,route:s,state:e,routeId:n,routePathInfo:o}){var p,r,d,l,u,y,g,i,c;I.info(`Executing datasource data assembly, routeId: ${n}, routePathInfo: ${JSON.stringify(o)}`);const a={...nt.default(t),id:n,slug:(o==null?void 0:o.path)??s.path,createdAt:s.createdAt,updatedAt:((p=o==null?void 0:o.routeMetaData)==null?void 0:p.updatedAt)??s.updatedAt,publishedAt:((r=o==null?void 0:o.routeMetaData)==null?void 0:r.publishedAt)??s.publishedAt,isPublic:(((d=o==null?void 0:o.routeMetaData)==null?void 0:d.isPublic)??s.isPublic)&&s.isPublic};for(const f of e.supportedLocales){if(s.dataSource){let E=s.id;o&&(E=o.paramOptionIds.join("-"));const v=((y=(u=(l=s.dataSource.pathDataMappings)==null?void 0:l[E])==null?void 0:u.dataCache)==null?void 0:y[f.locale])??((c=(i=(g=s.dataSource.pathDataMappings)==null?void 0:g[E])==null?void 0:i.dataCache)==null?void 0:c[e.config.defaultLocale||"en"]);if(!v)continue;xt.setPageDataSource(a,e,f.locale,v)}o&&o.routeMetaData&&(o.routeMetaData.publishedAt=new Date().toISOString())}return a}async function Me(t,s,{routes:e,mergeMode:n="byUpdateTime",deleteRoutes:o=!1,publishMode:a=void 0}={}){try{a&&ct(a)}catch(g){I.error("clear preload page cache error",{error:g})}const{pages:p,pageIds:r,routeIds:d,routes:l,supportedLocales:u}=t;if(a==="production"){let g=e??[],i=null;for(const c of d??[]){const f=l==null?void 0:l[c];if(f!=null&&f.params&&(f==null?void 0:f.params.length)>0&&(f!=null&&f.paramsOptions)&&(f==null?void 0:f.paramsOptions.length)>0){const E=ye.generateParamCombinations({basePath:f.path,params:f.params,routeId:f.id,paramsOptions:f.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]}),v=Object.fromEntries(E.map(T=>[`${c}-${T.paramOptionIds.join("-")}`,T]));i={...i||{},...v},e||(g=[...g,...E.map(T=>`${c}-${T.paramOptionIds.join("-")}`)])}else e||g.push(c)}I.info("routeIds to be published: ",g);for(const c of g){let f=c;if(f.includes("-")){const[T]=f.split("-");f=T}const E=l==null?void 0:l[f];if(!E){const T=s.pageIds.indexOf(f);T!==-1&&o&&(s.pageIds.splice(T,1),delete s.pages[f]);for(const R of s.pageIds)R.includes(`${f}-`)&&(s.pageIds.splice(s.pageIds.indexOf(R),1),delete s.pages[R]);I.info("delete main route page",f);continue}if(c.includes("-")&&!(i!=null&&i[c])){const T=s.pageIds.indexOf(c);T!==-1&&o&&(s.pageIds.splice(T,1),delete s.pages[c]),I.info("delete page",c);continue}if(!E.displayTemplateId){I.info("no display template",c);continue}const v=p[E.displayTemplateId];if(!v){I.info("no template page",c);continue}if(s.pageIds.includes(c)){if(I.info("has need update page",c),n==="replace")s.pages[c]=ve({page:v,route:E,state:t,routeId:c,routePathInfo:i==null?void 0:i[c]}),I.info("replace page",c);else if(n==="byUpdateTime"){const T=s.pages[E.id];(!T||E.updatedAt&&E.updatedAt>T.updatedAt)&&(s.pages[c]=ve({page:v,route:E,state:t,routeId:c,routePathInfo:i==null?void 0:i[c]}),I.info("replace page by update time",c))}}else s.pageIds.push(c),s.pages[c]=ve({page:v,route:E,state:t,routeId:c,routePathInfo:i==null?void 0:i[c]}),I.info("add page",c)}if(o&&!e)for(const c of s.pageIds)g!=null&&g.includes(c)||(delete s.pages[c],I.info("delete page",c)),s.pageIds=[...s.pageIds].filter(f=>g==null?void 0:g.includes(f))}else{for(const g of r){const i=p[g];if(i)if(s.pageIds.includes(i.id)){if(n==="replace")s.pages[i.id]=i;else if(n==="byUpdateTime"){const c=s.pages[i.id];(!c||i.updatedAt&&i.updatedAt>c.updatedAt)&&(s.pages[i.id]=i)}}else s.pageIds.push(i.id),s.pages[i.id]=i}for(const g of d){const i=l[g];if(i)if(s.pageIds.includes(i.id)){if(n==="replace")s.routes[i.id]=i;else if(n==="byUpdateTime"){const c=s.routes[i.id];(!c||i.updatedAt&&i.updatedAt>c.updatedAt)&&(s.routes[i.id]=i)}}else s.routeIds.push(i.id),s.routes[i.id]=i}}if(s.supportedLocales.splice(0,s.supportedLocales.length),s.supportedLocales.push(...nt.default(u)),o)for(const g of Object.keys(s.components))delete s.components[g];let y=JSON.parse(JSON.stringify(t.components));y=Object.fromEntries(await Promise.all(Object.entries(y).map(async([g,i])=>{const c=await ht(i==null?void 0:i.data);return[g,{...i,data:c}]}))),Object.assign(s.components,y),Object.assign(s.config,JSON.parse(JSON.stringify(t.config))),s.resources.components=JSON.parse(JSON.stringify(t.resources.components||{}))}const ht=Q.memoize(async t=>{var s;if(!ns.default(t==null?void 0:t.properties))return t;if(((s=t==null?void 0:t.renderer)==null?void 0:s.type)==="react-component"){const{script:e}=(t==null?void 0:t.renderer)||{};if(e&&e.includes("PROPERTIES_SCHEMA"))try{const n=await ut(e,"PROPERTIES_SCHEMA",t.id);n&&n.length>0&&t&&(t.properties={},n.forEach((o,a)=>{t!=null&&t.properties&&(t.properties[o.id]={index:a,data:o})}))}catch(n){I.error("checkPropertiesFromCode error",{componentId:t.id,name:t.name},{error:n})}}return t},{keyGenerator:t=>{var p;const s=(t==null?void 0:t.id)||"",e=(t==null?void 0:t.name)||"",n=((p=t==null?void 0:t.renderer)==null?void 0:p.type)||"",o=(t==null?void 0:t.properties)||{},a=Oe.createHash("md5").update(JSON.stringify(o)).digest("hex");return JSON.stringify(["checkPropertiesFromCode",s,e,n,a])},lruOptions:{max:100,ttl:1e3*60*60}});let Ie,Z,Ve,He,Je;function yt(){return Ie=(async()=>{const t=Fe.getResources({types:[{did:$e,type:Ne},{did:Ts,type:Ne}]});Z=(await Promise.all(t.map(async e=>{const n=e.path?await Ge(e.path,{importAssets:!1}):void 0;return n?{blockletId:e.did,state:n,blockletTitle:e.title}:void 0}))).filter(e=>!!e),Ve=Z.reduce((e,n)=>Object.assign(e,Object.fromEntries(Object.values(n.state.pages).map(o=>o?[o==null?void 0:o.id,{page:o,blockletId:n.blockletId}]:[]))),{});const s=Z.reduce((e,n)=>Object.assign(e,Object.fromEntries(Object.values(n.state.components).map(o=>[o.data.id,{blockletId:n.blockletId,component:o.data}]))),{});He=Object.fromEntries(await Promise.all(Object.entries(s).map(async([e,n])=>{const o=await ht(n.component);return[e,{...n,component:o}]}))),Je=Z.reduce((e,n)=>Object.assign(e,n.state.chunks),{})})(),Ie}function St(t){const s=ot.default(async()=>{await yt().catch(e=>{I.error("load resource states error",{error:e})}),await(t==null?void 0:t({states:Z,pages:Ve,components:He,chunks:Je}))},3e3,{leading:!1,trailing:!0});return s(),O.default.events.on(O.default.Events.componentAdded,s),O.default.events.on(O.default.Events.componentRemoved,s),O.default.events.on(O.default.Events.componentStarted,s),O.default.events.on(O.default.Events.componentStopped,s),O.default.events.on(O.default.Events.componentUpdated,s),O.default.events.on(Re,s),()=>{O.default.events.off(O.default.Events.componentAdded,s),O.default.events.off(O.default.Events.componentRemoved,s),O.default.events.off(O.default.Events.componentStarted,s),O.default.events.off(O.default.Events.componentStopped,s),O.default.events.off(O.default.Events.componentUpdated,s),O.default.events.off(Re,s)}}const wt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),we=globalThis;var et;(et=we[wt])==null||et.call(we);we[wt]=St(async({pages:t,components:s})=>{const{projectIds:e}=ce;I.info(`start update resource states projects(${e.length})`,e),await Promise.race([new Promise(n=>{setTimeout(()=>{n({})},30*1e3)}),Promise.all(e.map(async n=>{const o=ce.shared(n);o.syncedStore.resources.pages=t;const a=await J.findByPk(n);if(a!=null&&a.useAllResources)o.syncedStore.resources.components=s;else{const r=(await Ae.findAll({where:{projectId:n}})).map(l=>l.componentId),d=Object.fromEntries(Object.entries(s||{}).filter(([l])=>r.includes(l)));o.syncedStore.resources.components=d}I.info(`update [${n}] resource states:`,{pages:Object.keys(o.syncedStore.resources.pages||{}).length,components:Object.keys(o.syncedStore.resources.components||{}).length})}))]).catch(n=>{I.error("update resource states failed:",n)})});async function Ms(){I.info("trigger reload all project resource"),O.default.events.emit(Re)}async function Te({ensureLoaded:t=!0}={}){return t&&(Ie??(Ie=yt()),await Ie),{states:Z,pages:Ve,components:He,chunks:Je}}exports.COMPONENT_DID=$e;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=rt;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=ke;exports.PUBLISH_MODES=xs;exports.Project=J;exports.RESOURCE_TYPE=Ne;exports.SITE_STATE_PATH=ne;exports.STATE_MODES=vs;exports.SiteState=ce;exports.clearPreloadComponentsCache=it;exports.clearPreloadComponentsCacheByMode=ct;exports.fromPackage=Ge;exports.getComponentFromState=ie;exports.getComponentFromStateByName=Is;exports.getExportSchemaValueFromCode=ut;exports.getMultiTenantAllProjectAccessPassports=fs;exports.getPreloadComponent=pt;exports.getPreloadComponents=ws;exports.getPreloadComponentsCacheKey=lt;exports.getResourceStates=Te;exports.initPackResourceStates=St;exports.isMultiTenant=us;exports.logger=I;exports.mergeState=Me;exports.nextId=Se;exports.toPackage=gt;exports.triggerReloadAllProjectResource=Ms;
|
package/lib/cjs/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-DM1kpHq_.js");exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=e.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=e.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS;exports.clearPreloadComponentsCache=e.clearPreloadComponentsCache;exports.clearPreloadComponentsCacheByMode=e.clearPreloadComponentsCacheByMode;exports.getComponentFromState=e.getComponentFromState;exports.getComponentFromStateByName=e.getComponentFromStateByName;exports.getExportSchemaValueFromCode=e.getExportSchemaValueFromCode;exports.getPreloadComponent=e.getPreloadComponent;exports.getPreloadComponents=e.getPreloadComponents;exports.getPreloadComponentsCacheKey=e.getPreloadComponentsCacheKey;
|
package/lib/cjs/home.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("./chunks/state-DPSTH2vo.js");require("@arcblock/ux/lib/Locale/context");require("@arcblock/ux/lib/Result");require("@blocklet/pages-kit/builtin/page/header");require("@blocklet/pages-kit/contexts/color");require("@blocklet/pages-kit/utils/data-source");require("@blocklet/pages-kit/utils/route");require("@blocklet/ui-react/lib/Header");require("@emotion/css");require("@emotion/react");require("@emotion/styled");require("@mui/material");require("ahooks");require("isomorphic-dompurify");require("lodash/cloneDeep");require("lodash/isEmpty");require("lodash/isEqual");require("react");require("react-helmet");require("react-router-dom");require("react-use");require("ufo");require("./chunks/array-D-LDfLBW.js");const e=require("./chunks/home-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("./chunks/state-DPSTH2vo.js");require("@arcblock/ux/lib/Locale/context");require("@arcblock/ux/lib/Result");require("@blocklet/pages-kit/builtin/page/header");require("@blocklet/pages-kit/contexts/color");require("@blocklet/pages-kit/utils/data-source");require("@blocklet/pages-kit/utils/route");require("@blocklet/ui-react/lib/Header");require("@emotion/css");require("@emotion/react");require("@emotion/styled");require("@mui/material");require("ahooks");require("isomorphic-dompurify");require("lodash/cloneDeep");require("lodash/isEmpty");require("lodash/isEqual");require("react");require("react-helmet");require("react-router-dom");require("react-use");require("ufo");require("./chunks/array-D-LDfLBW.js");const e=require("./chunks/home-DSfBtFst.js");exports.HomeView=e.HomeView;exports.PageRoutes=e.PageRoutes;exports.PageView=e.PageView;exports.PageViewByPath=e.PageViewByPath;exports.PageViewWithDataSource=e.PageViewWithDataSource;exports.TranslucentHeader=e.TranslucentHeader;exports.default=e.Home;
|
package/lib/cjs/project-html.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const z=require("@arcblock/did-auth-storage-nedb"),D=require("@blocklet/sdk/lib/config"),G=require("@blocklet/sdk/lib/service/auth"),K=require("@blocklet/sdk/lib/wallet"),Q=require("@blocklet/sdk/lib/wallet-authenticator"),V=require("@blocklet/sdk/lib/wallet-handler"),P=require("path"),S=require("./chunks/site-state-
|
|
1
|
+
"use strict";const z=require("@arcblock/did-auth-storage-nedb"),D=require("@blocklet/sdk/lib/config"),G=require("@blocklet/sdk/lib/service/auth"),K=require("@blocklet/sdk/lib/wallet"),Q=require("@blocklet/sdk/lib/wallet-authenticator"),V=require("@blocklet/sdk/lib/wallet-handler"),P=require("path"),S=require("./chunks/site-state-DM1kpHq_.js"),A=require("@blocklet/crawler/middlewares"),X=require("@blocklet/pages-kit/types"),Y=require("@blocklet/pages-kit/utils/common"),Z=require("@blocklet/pages-kit/utils/preload"),F=require("@blocklet/sdk/lib/component"),ee=require("cheerio/slim"),te=require("express"),E=require("fs"),oe=require("lodash/get"),ne=require("mustache"),I=require("ufo"),u=o=>o&&o.__esModule?o:{default:o};function le(o){if(o&&o.__esModule)return o;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const e in o)if(e!=="default"){const a=Object.getOwnPropertyDescriptor(o,e);Object.defineProperty(t,e,a.get?a:{enumerable:!0,get:()=>o[e]})}}return t.default=o,Object.freeze(t)}const re=u(z),i=u(D),ce=u(G),se=u(K),ae=u(Q),ie=u(V),ue=u(P),L=le(ee),de=u(oe),pe=u(ne),fe=(o={})=>{const t={data:new Map,timers:new Map,set:(e,a,_=o.ttl||36e5)=>{o.max&&t.data.size>=o.max&&t.delete(t.data.keys().next().value),t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.set(e,setTimeout(()=>t.delete(e),_)),t.data.set(e,a)},get:e=>t.data.get(e),has:e=>t.data.has(e),delete:e=>(t.timers.has(e)&&clearTimeout(t.timers.get(e)),t.timers.delete(e),t.data.delete(e)),clear:()=>{t.data.clear();for(const e of t.timers.values())clearTimeout(e);t.timers.clear()}};return t},O=fe({max:1,ttl:1e3*30});se.default();const he=new ae.default;new ie.default({authenticator:he,tokenStorage:new re.default({dbPath:ue.default.join(i.default.env.dataDir,"auth.db")})});const me=new ce.default,ge=async()=>{try{const o=O.get("blockletInfo");if(o)return o;const{blocklet:t}=await me.getBlocklet();return O.set("blockletInfo",t),t}catch{return null}},we=["/assets/"],U=()=>[!0,"true"].includes(i.default.env.preferences.allowCrawler);function B(){U()?A.initCronCrawlBlocklet({time:"0 0 */12 * * *",options:{}}):A.cancelCronCrawlBlocklet()}B();i.default.events.on(i.default.Events.envUpdate,B);function _e({app:o,viteDevServer:t,state:e}){let a;if(t){const n=E.readFileSync(P.resolve(process.cwd(),"./index.html"),"utf-8");o.use(async(b,v,T)=>{const q=b.originalUrl;a=await t.transformIndexHtml(q,n),T()})}else a=E.readFileSync(P.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const _=te.Router();_.use((n,b,v)=>{if(n.headers["x-unique-record"]==="dial_http"){S.logger.info("[html] dial http request, return 200 status code"),b.status(200).send("ok");return}v()},A.initSEOMiddleware({autoReturnHtml:!0,allowCrawler:U})),_.get("/:path(*)?",async(n,b,v)=>{var M,$,W;if(we.some(c=>{var p;return(p=n.path)==null?void 0:p.startsWith(c)})){v();return}const T=performance.now(),q=()=>Math.round(performance.now()-T),H="production";let r,h,C=a;if(n.path.startsWith("/pages")){const c=n.params.lang,p=n.cookies.nf_lang,k=new Set([...i.default.env.languages.map(w=>w.code)]);let g=(c&&k.has(c)?c:void 0)||(k.has(p)?p:void 0)||[...k][0];if((!g||!((M=e.supportedLocales)!=null&&M.find(w=>w.locale===g)))&&(g=((W=($=e.supportedLocales)==null?void 0:$[0])==null?void 0:W.locale)||""),g){const w=[];Object.values(e.pages).forEach(s=>{const J=Object.values((s==null?void 0:s.sections)??{}).filter(f=>{var y;return f.component==="custom-component"&&((y=f.config)==null?void 0:y.componentId)}).map(f=>{var y,x;return{id:f.id,componentId:f.config.componentId,useCache:f.config.useCache,cacheDuration:f.config.cacheDuration,properties:(x=(y=f.locales)==null?void 0:y[g])==null?void 0:x.properties}});w.push(...J)});const N=new Promise(s=>{setTimeout(()=>{s({})},90*1e3)});try{await Promise.race([N,S.getPreloadComponents({mode:H,req:n,state:e,locale:g,instances:w,module:X.PreloadComponentScriptModule.UMD_FN}).then(s=>{s&&(h=Z.injectPreloadComponents(s))})])}catch(s){S.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements",s)}}}try{const c=(r==null?void 0:r.title)||i.default.env.appName,p=(r==null?void 0:r.description)||i.default.env.appDescription,k=I.withQuery(I.joinURL(i.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:c,description:p});C=pe.default.render(a,{ogTitle:c,ogDescription:p,ogImage:be(r==null?void 0:r.image)||k,pagesPublishedAt:(e==null?void 0:e.config.publishedAt)||new Date().getTime()})}catch{}const l=e==null?void 0:e.config.fontFamily,R=n.query.mode==="draft"||n.url.includes("preview"),m=L.load(C);let d=r==null?void 0:r.backgroundColor;if(d&&Y.isMuiColorKey(d)){const c=await ge();d=de.default(c,`settings.theme.light.palette.${d}`,d)}m("head").find("#injected-head-elements").replaceWith(`
|
|
2
2
|
${d?`<meta name="theme-color" content="${d}" /><style>html,body,#app {background-color: ${d};}</style>`:""}
|
|
3
3
|
${l!=null&&l.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${l.title}&display=swap">`:""}
|
|
4
4
|
${l!=null&&l.description&&(l==null?void 0:l.description)!==(l==null?void 0:l.title)?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${l.description}&display=swap">`:""}
|
package/lib/cjs/resources.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const c=require("./chunks/site-state-
|
|
1
|
+
"use strict";const c=require("./chunks/site-state-DM1kpHq_.js"),M=require("async_hooks"),U=require("express"),F=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),b=require("path"),$=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),y=t=>t&&t.__esModule?t:{default:t},l=y(F),I=y(J),D=y(X),K=y(W),k=y(b),v=y($);new M.AsyncLocalStorage;const Y=async(t,e,o)=>{var n,s,r,i;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const _=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!_)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===_,a=(i=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:i.call(r,h);if(!w&&!a)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){c.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function N(t,e){return new Promise((o,n)=>{const s=l.default.createReadStream(t),r=l.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function T(t,e){await l.default.promises.mkdir(e,{recursive:!0});const o=await l.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await T(s,r):await N(s,r)}}async function z(t,e){(await l.default.promises.stat(t)).isDirectory()?await T(t,e):await N(t,e)}const O=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),H=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return b.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=U.Router(),B="@page",q="@component",P=":",E="ALL",L="@project",C=({pageId:t,projectId:e})=>[B,e,t].join(P),Q=t=>{const[e,o,n]=t.split(P);if(e===B)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[q,e,t].join(P),V=t=>{const[e,o,n]=t.split(P);if(e===q)return{componentId:n,projectId:o}},Z=t=>[L,t].join(P),tt=t=>{const[e,o]=t.split(P);if(e===L)return o},et=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const i=e.pages[r];if(i)return{id:C({pageId:r,projectId:t}),name:i.slug}}).filter(Boolean),s=K.default(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Z(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:E,projectId:t}),name:"Pages",children:n},{id:A({componentId:E,projectId:t}),name:"Components",children:s}]}}S.get("/resources",O,async(t,e)=>{const{projectId:o}=et(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await Y(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const ot=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",O,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await ot.validateAsync(t.body),r="production",i=[],u=[];for(const a of o){if(tt(a))continue;const{pageId:m,projectId:j}=Q(a)||{};if(m)m===E||m&&j&&i.push({pageId:m,projectId:j});else{const{componentId:p,projectId:d}=V(a)||{};p===E||p&&d&&u.push({componentId:p,projectId:d})}}const f=D.default(i,"projectId"),_=D.default(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(_)]),w=H(n,s);l.default.rmSync(w,{recursive:!0,force:!0}),l.default.mkdirSync(w,{recursive:!0});for(const a of h){const m=await c.SiteState.shared(a).getState(r),j=f[a],p=_[a],d=j==null?void 0:j.map(g=>g.pageId),R=p==null?void 0:p.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await z(g,w),l.default.rmSync(g,{recursive:!0,force:!0})}c.logger.info(`Exported resources for project ${a}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",O,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;
|
package/lib/cjs/site-state.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/site-state-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/site-state-DM1kpHq_.js");require("@blocklet/pages-kit/utils/data-source");require("@blocklet/pages-kit/utils/property");require("@blocklet/pages-kit/utils/route");require("@blocklet/quickjs");require("@blocklet/sdk/lib/component");require("@blocklet/sdk/lib/config");require("@reactivedata/reactive");require("@syncedstore/core");require("crypto");require("fs");require("glob");require("lib0/decoding");require("lib0/encoding");require("lodash/cloneDeep");require("lodash/debounce");require("lodash/get");require("lodash/isEmpty");require("lodash/pick");require("lodash/set");require("lodash/union");require("lru-cache");require("nanoid");require("p-limit");require("path");require("stream/promises");require("tar");require("ufo");require("wait-on");require("y-protocols/awareness");require("y-protocols/sync");require("yaml");require("yjs");const t=require("@blocklet/pages-kit/types/state");exports.PUBLISH_MODES=e.PUBLISH_MODES;exports.SITE_STATE_PATH=e.SITE_STATE_PATH;exports.STATE_MODES=e.STATE_MODES;exports.default=e.SiteState;exports.fromPackage=e.fromPackage;exports.getResourceStates=e.getResourceStates;exports.initPackResourceStates=e.initPackResourceStates;exports.mergeState=e.mergeState;exports.nextId=e.nextId;exports.toPackage=e.toPackage;exports.triggerReloadAllProjectResource=e.triggerReloadAllProjectResource;Object.keys(t).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>t[r]})});
|