@blocklet/pages-kit-inner-components 0.5.31 → 0.5.33
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/add-component.js +1 -1
- package/lib/cjs/chunks/{array-BH41o7C6.js → array-DxhrK2d5.js} +1 -1
- package/lib/cjs/chunks/{config-string-B3JoYJVu.js → config-string-DqWgB7yO.js} +1 -1
- package/lib/cjs/chunks/{draft-data-hZaTeHgL.js → draft-data-DzN2u_NT.js} +1 -1
- package/lib/cjs/chunks/{home-B6E0yAU3.js → home-0fezWT4S.js} +3 -3
- package/lib/cjs/chunks/{publish-button-CO_WU_f5.js → publish-button-D2jaaXXn.js} +1 -1
- package/lib/cjs/chunks/{site-state-D5jk8eJT.js → site-state-D00xEf4T.js} +8 -8
- package/lib/cjs/chunks/state-DoGBMTzI.js +1 -0
- package/lib/cjs/components.js +1 -1
- package/lib/cjs/home.js +1 -1
- package/lib/cjs/locales.js +2 -2
- package/lib/cjs/project-html.js +1 -1
- package/lib/cjs/resources.js +1 -1
- package/lib/cjs/setting.js +1 -1
- package/lib/cjs/site-state.js +1 -1
- package/lib/es/add-component.js +3 -3
- package/lib/es/chunks/{array-NLDZzhVt.js → array-D6qyZucY.js} +1 -1
- package/lib/es/chunks/{config-string-DutyRoOh.js → config-string-Btybe5Rd.js} +1 -1
- package/lib/es/chunks/{draft-data-DjX0kpDC.js → draft-data-DQ7_JyJX.js} +1 -1
- package/lib/es/chunks/{home-CxRa0eKd.js → home-Dox9JwvF.js} +4 -4
- package/lib/es/chunks/{publish-button-1bl_Nuva.js → publish-button-T2YJBoty.js} +3 -3
- package/lib/es/chunks/{site-state-DEduMTrY.js → site-state-nXcBqjeR.js} +464 -461
- package/lib/es/chunks/{state-C02ZI8vz.js → state-NhsHvaKm.js} +176 -176
- package/lib/es/components.js +1 -1
- package/lib/es/home.js +3 -3
- package/lib/es/locales.js +4 -2
- package/lib/es/project-html.js +1 -1
- package/lib/es/resources.js +1 -1
- package/lib/es/setting.js +2 -2
- package/lib/es/site-state.js +1 -1
- package/package.json +19 -19
- package/lib/cjs/chunks/state-DxOb57hO.js +0 -1
package/lib/cjs/add-component.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var xI=Object.create;var iI=Object.defineProperty;var YI=Object.getOwnPropertyDescriptor;var rI=Object.getOwnPropertyNames;var hI=Object.getPrototypeOf,ZI=Object.prototype.hasOwnProperty;var QI=(C,s,w,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of rI(s))!ZI.call(C,o)&&o!==w&&iI(C,o,{get:()=>s[o],enumerable:!(i=YI(s,o))||i.enumerable});return C};var kI=(C,s,w)=>(w=C!=null?xI(hI(C)):{},QI(s||!C||!C.__esModule?iI(w,"default",{value:C,enumerable:!0}):w,C));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("react/jsx-runtime"),H=require("./chunks/state-
|
|
1
|
+
"use strict";var xI=Object.create;var iI=Object.defineProperty;var YI=Object.getOwnPropertyDescriptor;var rI=Object.getOwnPropertyNames;var hI=Object.getPrototypeOf,ZI=Object.prototype.hasOwnProperty;var QI=(C,s,w,i)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of rI(s))!ZI.call(C,o)&&o!==w&&iI(C,o,{get:()=>s[o],enumerable:!(i=YI(s,o))||i.enumerable});return C};var kI=(C,s,w)=>(w=C!=null?xI(hI(C)):{},QI(s||!C||!C.__esModule?iI(w,"default",{value:C,enumerable:!0}):w,C));Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const I=require("react/jsx-runtime"),H=require("./chunks/state-DoGBMTzI.js"),RI=require("@arcblock/ux/lib/Empty"),W=require("@arcblock/ux/lib/Locale/context"),p=require("@iconify-icon/react"),pI=require("@mui/icons-material/Check"),A=require("@mui/material"),u=require("ahooks"),m=require("react"),h=require("./chunks/array-DxhrK2d5.js"),G=require("@arcblock/ux/lib/Theme");require("@blocklet/pages-kit/builtin/color-picker");require("@blocklet/pages-kit/utils/style");const _=require("@emotion/css");require("lodash/without");const T=require("@mui/material/colors"),f=require("./chunks/config-string-DqWgB7yO.js"),UI=require("lodash/cloneDeep"),r=require("@mui/icons-material"),sI=require("react-dnd");require("@arcblock/ux/lib/Tabs");require("lodash/pick");const fI=require("@mui/lab"),F=require("immer"),GI=require("./theme.js"),q=require("react-use"),BI=require("@arcblock/ux/lib/Toast"),VI=require("@mui/material/Tooltip"),vI=require("@mui/icons-material/KeyboardArrowLeft"),_I=require("@mui/material/Box"),PI=require("@mui/material/DialogTitle"),qI=require("@mui/material/IconButton"),$I=require("@mui/material/Dialog"),IC=require("@mui/material/useMediaQuery"),yI=require("@emotion/react"),CC=require("@mui/material/Alert"),gC=require("@mui/material/AlertTitle"),AC=require("react-error-boundary"),iC=require("ufo"),sC=require("@emotion/styled"),oC=require("@mui/material/Typography"),wC=require("joi"),$=require("@blocklet/ai-kit/api"),MC=require("@blocklet/js-sdk"),DI=require("@mui/x-date-pickers"),LC=require("@mui/x-date-pickers/AdapterDayjs"),jC=require("@mui/x-date-pickers/LocalizationProvider"),oI=require("circular-natal-horoscope-js/dist"),JC=require("dayjs"),OC=require("dayjs/plugin/timezone"),mC=require("dayjs/plugin/utc"),SC=require("fast-deep-equal"),BC=require("lodash/isNil"),yC=require("tz-lookup"),DC=require("@mui/icons-material/CheckCircleOutline"),eC=require("lodash/uniq"),bC=require("lodash/get"),NC=require("lodash/set"),KC=require("@blocklet/pages-kit/components"),a=C=>C&&C.__esModule?C:{default:C},eI=a(RI),dC=a(pI),bI=a(m),cC=a(UI),NI=a(BI),zC=a(VI),II=a(vI),Y=a(_I),CI=a(PI),gI=a(qI),aC=a($I),FC=a(IC),tC=a(CC),lC=a(gC),Q=a(sC),wI=a(oC),n=a(wC),Z=a(JC),HC=a(OC),EC=a(mC),uC=a(SC),nC=a(BC),KI=a(yC),XC=a(DC),MI=a(eC),TC=a(bC),WC=a(NC);T.red[300],T.pink[300],T.purple[300],T.indigo[300],T.blue[300],T.cyan[300],T.teal[300],T.green[300],T.lime[300],T.yellow[300],T.amber[300],T.orange[300],T.brown[300],T.grey[300],T.blueGrey[300];G.styled(A.Box)`
|
|
2
2
|
.color-item {
|
|
3
3
|
position: relative;
|
|
4
4
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var It=Object.create;var lt=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Tt=Object.getOwnPropertyNames;var Wt=Object.getPrototypeOf,zt=Object.prototype.hasOwnProperty;var Pt=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Tt(e))!zt.call(t,r)&&r!==i&<(t,r,{get:()=>e[r],enumerable:!(n=Rt(e,r))||n.enumerable});return t};var Et=(t,e,i)=>(i=t!=null?It(Wt(t)):{},Pt(e||!t||!t.__esModule?lt(i,"default",{value:t,enumerable:!0}):i,t));const o=require("react/jsx-runtime"),qt=require("@mui/icons-material"),m=require("@mui/material"),Lt=require("lodash/isEmpty"),At=require("lodash/pick"),b=require("react"),Ot=require("lodash/keyBy"),k=require("./state-
|
|
1
|
+
"use strict";var It=Object.create;var lt=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Tt=Object.getOwnPropertyNames;var Wt=Object.getPrototypeOf,zt=Object.prototype.hasOwnProperty;var Pt=(t,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Tt(e))!zt.call(t,r)&&r!==i&<(t,r,{get:()=>e[r],enumerable:!(n=Rt(e,r))||n.enumerable});return t};var Et=(t,e,i)=>(i=t!=null?It(Wt(t)):{},Pt(e||!t||!t.__esModule?lt(i,"default",{value:t,enumerable:!0}):i,t));const o=require("react/jsx-runtime"),qt=require("@mui/icons-material"),m=require("@mui/material"),Lt=require("lodash/isEmpty"),At=require("lodash/pick"),b=require("react"),Ot=require("lodash/keyBy"),k=require("./state-DoGBMTzI.js"),J=require("@blocklet/ai-runtime/components"),Ut=require("@mui/utils"),Mt=require("react-error-boundary"),Ft=require("@blocklet/pages-kit/builtin/markdown/markdown-renderer"),yt=require("@blocklet/pages-kit/contexts/color"),_=require("@emotion/css"),Ht=require("react-syntax-highlighter/dist/esm/styles/prism"),$=require("@arcblock/ux/lib/Theme"),Vt=require("@arcblock/react-hooks/lib/useBrowser"),Dt=require("@arcblock/ux/lib/Colors"),et=require("@blocklet/pages-kit/components"),ct=require("@blocklet/pages-kit/utils/style"),Yt=require("@mui/material/useMediaQuery"),Jt=require("lodash/omit"),bt=require("@iconify-icon/react"),Gt=require("@arcblock/ux/lib/Screenshot"),ot=require("react-router-dom"),Kt=require("@arcblock/ux/lib/Button"),Xt=require("is-uri"),G=require("pathe"),q=require("ufo"),Qt=require("@blocklet/embed/message"),Zt=require("ahooks"),te=require("lodash/isEqual"),ee=require("@blocklet/embed/react"),oe=require("@arcblock/ux/lib/Locale/context"),ne=require("react-twitter-embed"),dt=require("react-use"),C=t=>t&&t.__esModule?t:{default:t},re=C(Lt),X=C(At),ie=C(b),Q=C(Ot),se=C(Ft),ae=C(Vt),ut=C(Dt),wt=C(Yt),R=C(Jt),le=C(Gt),ce=C(Kt),Z=C(Xt),de=C(te),jt="{{CUSTOM_VALUE}}",ue=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{py:{xs:7.5,md:10,lg:12.5,xl:15}}}],me=[{title:"None",value:"none",sx:{py:0}},{title:"Small",value:"small",sx:{py:{xs:2.5,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{py:{xs:5,md:7,lg:7,xl:9}}},{title:"Large",value:"large",sx:{py:{xs:6,md:9,lg:9,xl:11}}}],xe=[{title:"None",value:"none",sx:{px:0}},{title:"Small",value:"small",sx:{px:{xs:2,md:4,lg:4,xl:6}}},{title:"Normal",value:"normal",sx:{px:{xs:2.5,md:7.5,lg:10,xl:12.5}}},{title:"Large",value:"large",sx:{px:{xs:2.5,md:10,lg:12.5,xl:15}}}],K=(t,e,i)=>{const n=t.breakpoints.values[i];return`${e}${n?` (${n}px)`:""}`},pe=[{title:"100%",value:"full",sx:{maxWidth:"100%"}},{title:t=>K(t,"Small","sm"),value:"sm",sx:{maxWidth:t=>t.breakpoints.values.sm,width:"100%",mx:"auto"}},{title:t=>K(t,"Normal","md"),value:"md",sx:{maxWidth:t=>t.breakpoints.values.md,width:"100%",mx:"auto"}},{title:t=>K(t,"Large","lg"),value:"lg",sx:{maxWidth:t=>t.breakpoints.values.lg,width:"100%",mx:"auto"}},{title:t=>K(t,"Extra Large","xl"),value:"xl",sx:{maxWidth:t=>t.breakpoints.values.xl,width:"100%",mx:"auto"}},{title:"Custom",value:"custom",sx:{maxWidth:jt,width:"100%",mx:"auto"}}],he=Q.default(ue,"value"),fe=Q.default(me,"value"),ge=Q.default(xe,"value"),ye=Q.default(pe,"value"),be=new Map([["baseSectionPaddingY",he],["maxWidth",ye],["paddingY",fe],["paddingX",ge]]);function _t(t){var l;const{type:e,value:i,format:n="sx",defaultValue:r=null}=t,a=be.get(e);if(!a)return r;const d=i.startsWith("custom:"),s=d?"custom":i;if(a!=null&&a[s]&&((l=a==null?void 0:a[s])!=null&&l[n])){const c=a[s][n];if(d){const x=i.replace("custom:","");try{return JSON.parse(JSON.stringify(c||{}).replaceAll(jt,x))}catch{}}return c}return r}const vt=b.createContext({page:null,getPageMeta:()=>({}),getPageMetaStyle:()=>({})});function we(){return b.useContext(vt)}function je({page:t,children:e,defaultLocale:i="en",currentLocale:n}){const r=b.useMemo(()=>t?JSON.parse(JSON.stringify(t)):null,[JSON.stringify(t)]),a=b.useCallback(()=>{var c;if(!r)return{};const l=n||i;return((c=r.locales)==null?void 0:c[l])??{}},[r,i,n]),d=b.useCallback((l="sx")=>{const c=a();return!c||!c.style?{}:Object.entries(c.style||{}).reduce((u,[h,p])=>{if(!p)return u;const y=`${h}Custom`;c.style[y];const f=_t({type:h,value:p,format:l});return f?{...u,...f}:u},{})},[a]),s=b.useMemo(()=>({page:r,getPageMeta:a,getPageMetaStyle:d}),[r,a,d]);return o.jsx(vt.Provider,{value:s,children:e})}function E({actions:t,center:e,className:i,align:n}){return t&&(t!=null&&t.length)?o.jsx(m.Box,{className:_.cx("flex gap-4 flex-wrap","lg:flex-row lg:gap-8",(e||n==="center")&&"justify-center",!e&&n==="right"&&"justify-end",!e&&n==="left"&&"justify-start",i),sx:{alignItems:"center"},children:t}):null}const _e="section",ve=m.styled(m.Box)`
|
|
2
2
|
overflow: hidden;
|
|
3
3
|
|
|
4
4
|
.section__title {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const i=require("react/jsx-runtime"),s=require("@blocklet/pages-kit/builtin/uploader"),h=require("@iconify-icon/react"),n=require("@mui/material"),l=require("react"),q=require("react-use"),I=require("./state-
|
|
1
|
+
"use strict";const i=require("react/jsx-runtime"),s=require("@blocklet/pages-kit/builtin/uploader"),h=require("@iconify-icon/react"),n=require("@mui/material"),l=require("react"),q=require("react-use"),I=require("./state-DoGBMTzI.js"),v=l.forwardRef(function({showMarkdown:S,markdown:j,onMarkdownChange:o,showUploader:p,value:c,meta:A,onChange:a,...u},z){const[t,m]=l.useState("");l.useEffect(()=>{m(c||"")},[c,m]);const f=async()=>{if(t!==c){const e=I.getImageAbsoluteUrl(t);if(!e){a(t,void 0);return}const r=await s.getImageSize(e).catch(()=>s.getVideoSize(e)).catch(()=>{});a(t,{...r,filename:t})}};q.useDebounce(()=>{t!==c&&a(t)},300,[t]),l.useImperativeHandle(z,()=>({submit:f}));const g={};return p&&(g.InputProps={sx:{pr:0},endAdornment:i.jsx(n.InputAdornment,{position:"end",sx:{mx:.5},children:i.jsx(s.UploaderButton,{onChange:async({response:e})=>{var b;const r=(b=e==null?void 0:e.data)==null?void 0:b.filename,d=I.getImageAbsoluteUrl(r)||"";let x={};d&&(x=await s.getImageSize(d).catch(()=>s.getVideoSize(d)).catch(()=>{})),a(r,{...x,filename:r})}})})}),i.jsx(n.TextField,{size:"small",fullWidth:!0,...u,label:i.jsxs(n.Stack,{direction:"row",spacing:1,alignItems:"center",children:[u.label,S&&i.jsxs(i.Fragment,{children:[" (",i.jsx(n.FormControlLabel,{checked:j,label:i.jsx(n.Box,{component:h.Icon,icon:"tabler:markdown",sx:{verticalAlign:"middle"}}),labelPlacement:"start",control:i.jsx(n.Switch,{size:"small"}),sx:{ml:.25,pr:1},onChange:(e,r)=>o==null?void 0:o(r)}),")"]})]}),InputLabelProps:{shrink:!0,...u.InputLabelProps},value:t,onChange:e=>m(e.target.value),...g,onKeyDown:e=>{e.keyCode!==229&&e.key==="Enter"&&f()}})});exports.ConfigString=v;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./state-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("react/jsx-runtime"),t=require("./state-DoGBMTzI.js");function n({children:e}){const r=t.useProjectId();return s.jsx(t.StoreProvider,{url:t.getWssURL(r??""),name:"root",waitingSynced:!0,children:s.jsx(o,{children:e})})}function o({children:e}){const{state:r}=t.useStore();return e({state:r})}exports.default=n;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const e=require("react/jsx-runtime"),k=require("./state-
|
|
1
|
+
"use strict";const e=require("react/jsx-runtime"),k=require("./state-DoGBMTzI.js"),Z=require("@arcblock/ux/lib/Locale/context"),de=require("@arcblock/ux/lib/Result"),pe=require("@blocklet/pages-kit/builtin/page/header"),ge=require("@blocklet/pages-kit/contexts/color"),ee=require("@blocklet/pages-kit/utils/data-source"),me=require("@blocklet/pages-kit/utils/route"),fe=require("@blocklet/ui-react/lib/Header"),te=require("@emotion/css"),V=require("@emotion/react"),he=require("@emotion/styled"),y=require("@mui/material"),$=require("ahooks"),xe=require("isomorphic-dompurify"),je=require("lodash/cloneDeep"),be=require("lodash/isEmpty"),ye=require("lodash/isEqual"),f=require("react"),ve=require("react-helmet"),w=require("react-router-dom"),ne=require("react-use"),C=require("ufo"),E=require("./array-DxhrK2d5.js"),K=require("@arcblock/ux/lib/Theme"),Pe=require("@blocklet/ui-react/lib/Footer");require("webfontloader");const J=require("./session-BA7Qrcia.js"),q=t=>t&&t.__esModule?t:{default:t},oe=q(de),we=q(fe),re=q(he),Re=q(xe),z=q(je),Se=q(be),se=q(ye),ke=q(Pe),qe=K.styled(ke.default,{shouldForwardProp:t=>!!t})`
|
|
2
2
|
& > div > .MuiContainer-root {
|
|
3
3
|
max-width: unset;
|
|
4
4
|
}
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
font-family: ${i};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
`})}function Be(){const[t]=w.useSearchParams(),{session:o}=J.useSessionContext(),s=J.useIsRoleOrMultiTenant("owner","admin","pagesEditor","member"),a=f.useMemo(()=>{const n=t.get("mode");return E.STATE_MODES.includes(n)?n:"production"},[t]),i=a==="production"?a:o.user?s?a:"production":null;return i?e.jsx(ie,{mode:i}):null}function ie({mode:t}){if(t!=="draft"){const o=window.__PAGE_STATE__;return o?e.jsx(N,{mode:t,state:o}):e.jsx(Le,{mode:t,children:({state:s})=>e.jsx(N,{mode:t,state:s})})}return e.jsx(Te,{children:({state:o})=>e.jsx(N,{mode:t,state:o})})}const Te=f.lazy(()=>Promise.resolve().then(()=>require("./draft-data-
|
|
29
|
+
`})}function Be(){const[t]=w.useSearchParams(),{session:o}=J.useSessionContext(),s=J.useIsRoleOrMultiTenant("owner","admin","pagesEditor","member"),a=f.useMemo(()=>{const n=t.get("mode");return E.STATE_MODES.includes(n)?n:"production"},[t]),i=a==="production"?a:o.user?s?a:"production":null;return i?e.jsx(ie,{mode:i}):null}function ie({mode:t}){if(t!=="draft"){const o=window.__PAGE_STATE__;return o?e.jsx(N,{mode:t,state:o}):e.jsx(Le,{mode:t,children:({state:s})=>e.jsx(N,{mode:t,state:s})})}return e.jsx(Te,{children:({state:o})=>e.jsx(N,{mode:t,state:o})})}const Te=f.lazy(()=>Promise.resolve().then(()=>require("./draft-data-DzN2u_NT.js")));function Le({mode:t,children:o}){const s=document.querySelector('meta[property="pages:version"]'),a=s==null?void 0:s.content,i=k.useProjectId(),n=f.useMemo(()=>{if(a==="{{pagesPublishedAt}}"){const u=localStorage.getItem(k.getProjectPageVersionKey(i??""));return Number(u)?Number(u):new Date().getTime()}return Number(a)},[a]),{loading:p,value:c}=ne.useAsync(()=>E.getPages({mode:t,version:n}),[t,n]);return p?e.jsx(ae,{}):c?o({state:c}):null}function N({mode:t,state:o}){const{t:s,locale:a}=Z.useLocaleContext(),[i]=w.useSearchParams(),n=k.useProjectId(),p=k.useProjectSlug(),c=i.get("hiddenBadge")==="true",u=i.get("showPublish")==="true",{pageIds:h,pages:d,routeIds:g,routes:x,supportedLocales:j,config:{defaultLocale:b},resources:M}=o,m=k.getAllComponents(o),R=f.useMemo(()=>j!=null&&j.some(l=>l.locale===a)?a:void 0,[a,j]),L=Object.values(x||{}).find(l=>(l==null?void 0:l.path)==="/")||Object.values(d).find(l=>(l==null?void 0:l.slug)==="/")?void 0:Object.values(d)[0],H=f.useMemo(()=>t==="production"?h.map(l=>{const r=d[l];return r&&{id:r.id,path:C.joinURL("/",p||n||"",r.slug)}}).filter(E.nonNullable):g.map(l=>{const r=x[l];return r?{id:r.id,path:C.joinURL("/",p||n||"",r.path,`?mode=${t}&showPublish=true`)}:null}).filter(E.nonNullable),[h,d,t,x,g,n,p]),_=([...l])=>(t!=="production"&&u&&l.unshift(e.jsx(f.Suspense,{fallback:e.jsx("div",{}),children:e.jsx(Oe,{mode:"production",state:o})})),l);return e.jsxs(E.Provider,{value:{pages:H},children:[e.jsxs(w.Routes,{children:[L&&e.jsx(w.Route,{index:!0,element:e.jsx(w.Navigate,{to:C.joinURL("/",R||"",L.slug)})}),g==null?void 0:g.map(l=>{var P,v,S,A;const r=x==null?void 0:x[l];if(!r||!r.displayTemplateId)return null;const I=d[r.displayTemplateId];if(!I)return null;let B=[];if(r.params&&r.params.length>0){const T=me.generateParamCombinations({basePath:r.path,params:r.params,routeId:r.id,paramsOptions:r.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});B=T==null?void 0:T.map(D=>{var F,Q,X,Y;const O=D.paramOptionIds.join("-");return e.jsx(w.Route,{path:C.joinURL(":projectIdOrSlug?",D.path),element:e.jsx(W,{mode:t,components:m,page:I,locale:R,defaultLocale:b,headerAddons:_,state:o,pageData:(Y=(X=(Q=(F=r.dataSource)==null?void 0:F.pathDataMappings)==null?void 0:Q[O])==null?void 0:X.dataCache)==null?void 0:Y[R||b||"en"]})},O)})}return B.push(e.jsx(w.Route,{path:C.joinURL(":projectIdOrSlug?",r.path),element:e.jsx(W,{mode:t,components:m,page:I,locale:R,defaultLocale:b,headerAddons:_,state:o,pageData:(A=(S=(v=(P=r.dataSource)==null?void 0:P.pathDataMappings)==null?void 0:v[r.id])==null?void 0:S.dataCache)==null?void 0:A[R||b||"en"]})},r.id)),B}),h.map(l=>{const r=d[l];return r?e.jsx(w.Route,{path:C.joinURL(":projectIdOrSlug?",r.slug),element:e.jsx(U,{mode:t,components:m,page:r,locale:R,defaultLocale:b,headerAddons:_})},r.id):null}),M.pages&&Object.values(M.pages).map(({blockletId:l,page:r})=>e.jsx(w.Route,{path:C.joinURL("/",`@${l}`,r.slug),element:e.jsx(U,{mode:t,components:m,page:r,locale:R,defaultLocale:b,headerAddons:_})},r.id)),e.jsx(w.Route,{path:"*",element:e.jsx(y.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(oe.default,{status:404,extra:e.jsx(ue,{href:"/",children:s("common.back")}),sx:{bgcolor:"transparent",width:"100%",height:"100%"}})})})]}),t!=="production"&&!c&&e.jsx(Ce,{sx:{bgcolor:"info.light"},children:t}),e.jsx(Ie,{})]})}function W({mode:t,pageData:o,components:s,page:a,locale:i,defaultLocale:n,headerAddons:p,state:c}){const u=$.useReactive({page:null});f.useEffect(()=>{const d=a||null;d?u.page=z.default(d):u.page=null},[a,u]);const h=f.useRef();return f.useEffect(()=>{se.default(o,h.current)||o&&u.page&&(ee.setPageDataSource(u.page,c,i,o),h.current=z.default(o))},[u.page,o,i,c]),u.page?e.jsx(U,{mode:t,components:s,page:u.page,locale:i,defaultLocale:n,headerAddons:p}):null}function De({mode:t,state:o,path:s,pageData:a}){const{t:i,locale:n}=Z.useLocaleContext(),{pages:p,supportedLocales:c,config:{defaultLocale:u},resources:h}=o,d=Object.values(p).find(m=>(m==null?void 0:m.slug)===s),g=Object.values(h.pages||{}).find(m=>m.page.slug===s),x=f.useMemo(()=>c!=null&&c.some(m=>m.locale===n)?n:void 0,[n,c]),j=$.useReactive({page:null});f.useEffect(()=>{const m=d||(g==null?void 0:g.page)||null;m?j.page=z.default(m):j.page=null},[d,g]);const b=f.useRef();if(f.useEffect(()=>{se.default(a,b.current)||a&&j.page&&(ee.setPageDataSource(j.page,o,x,a),b.current=z.default(a))},[{}]),!d&&!(g!=null&&g.page))return e.jsx(y.Box,{width:"100vw",height:"100vh",display:"flex",justifyContent:"center",alignItems:"center",children:e.jsx(oe.default,{style:{background:"inherit"},status:404,extra:e.jsx(ue,{href:"/",children:i("common.back")})})});const M=k.getAllComponents(o);return j.page?e.jsx(U,{mode:t,components:M,page:j.page,locale:x,defaultLocale:u}):null}function U({mode:t,components:o,page:s,locale:a,defaultLocale:i,headerAddons:n}){var R,G,L,H,_,l,r,I,B;const p=ge.useColorConvert(),c=((R=s.locales)==null?void 0:R[a])??((G=s.locales)==null?void 0:G[i])??{},u=c.title||((L=window.blocklet)==null?void 0:L.appName),h=c.description||((H=window.blocklet)==null?void 0:H.appDescription),d=k.autoResizeImage(k.getImageAbsoluteUrl(c.image),540),{logo:g,brand:x,description:j,...b}=pe.useHeaderState(),M=f.useMemo(()=>P=>{var S;let v=(n==null?void 0:n(P))??P;return v=((S=b.addons)==null?void 0:S.call(b,v))??v,v},[b.addons,n]),m=(_=c.header)!=null&&_.translucent?le:ce;return e.jsxs(E.PageProvider,{page:s,defaultLocale:i,currentLocale:a,children:[e.jsx(V.Global,{styles:V.css`
|
|
30
30
|
body {
|
|
31
31
|
background-color: ${p(!c.backgroundColor||c.backgroundColor==="transparent"?"background.default":c.backgroundColor)} !important;
|
|
32
32
|
}
|
|
33
|
-
`}),e.jsx(m,{hideNavMenu:!!((l=c.header)!=null&&l.hideNavMenus),translucentTextColor:(r=c.header)==null?void 0:r.translucentTextColor,...g?{logo:g}:{},...x?{brand:x}:{},...j?{description:j}:{},className:te.cx(((I=c.header)==null?void 0:I.sticky)&&"sticky","page-header"),maxWidth:!1,addons:M}),e.jsx(w.ScrollRestoration,{}),e.jsxs(ve.Helmet,{children:[e.jsx("title",{children:u}),e.jsx("meta",{name:"og:title",content:u}),e.jsx("meta",{name:"og:description",content:h}),e.jsx("meta",{name:"og:image",content:d}),e.jsx("meta",{name:"twitter:image:src",content:d}),e.jsx("meta",{name:"twitter:image",content:d}),e.jsx("meta",{property:"twitter:description",content:h}),e.jsx("meta",{property:"twitter:title",content:u}),e.jsx("meta",{name:"description",content:h})]}),e.jsx(y.Stack,{flexGrow:1,className:"PageView-root",sx:{"& .BlockBase-root:first-child":{pt:"0 !important"}},children:s.sectionIds.map(P=>{var T,D,O,F;const v=s.sections[P];if(!v||v.visibility==="hidden")return null;const S=(D=(T=s.dataSource)==null?void 0:T[P])==null?void 0:D[a],A=((F=(O=s.dataSource)==null?void 0:O[P])==null?void 0:F[i])??{};return e.jsx(E.BlockRenderer,{id:P,type:v.component,mode:t,section:v,config:{...Se.default(S)?A:S,locale:a,dev:t==="draft"?{mode:t,components:o,defaultLocale:i}:{mode:t,defaultLocale:i}},page:s},P)})}),!((B=c.footer)!=null&&B.hidden)&&e.jsx(_e,{})]})}const Oe=f.lazy(()=>Promise.resolve().then(()=>require("./publish-button-
|
|
33
|
+
`}),e.jsx(m,{hideNavMenu:!!((l=c.header)!=null&&l.hideNavMenus),translucentTextColor:(r=c.header)==null?void 0:r.translucentTextColor,...g?{logo:g}:{},...x?{brand:x}:{},...j?{description:j}:{},className:te.cx(((I=c.header)==null?void 0:I.sticky)&&"sticky","page-header"),maxWidth:!1,addons:M}),e.jsx(w.ScrollRestoration,{}),e.jsxs(ve.Helmet,{children:[e.jsx("title",{children:u}),e.jsx("meta",{name:"og:title",content:u}),e.jsx("meta",{name:"og:description",content:h}),e.jsx("meta",{name:"og:image",content:d}),e.jsx("meta",{name:"twitter:image:src",content:d}),e.jsx("meta",{name:"twitter:image",content:d}),e.jsx("meta",{property:"twitter:description",content:h}),e.jsx("meta",{property:"twitter:title",content:u}),e.jsx("meta",{name:"description",content:h})]}),e.jsx(y.Stack,{flexGrow:1,className:"PageView-root",sx:{"& .BlockBase-root:first-child":{pt:"0 !important"}},children:s.sectionIds.map(P=>{var T,D,O,F;const v=s.sections[P];if(!v||v.visibility==="hidden")return null;const S=(D=(T=s.dataSource)==null?void 0:T[P])==null?void 0:D[a],A=((F=(O=s.dataSource)==null?void 0:O[P])==null?void 0:F[i])??{};return e.jsx(E.BlockRenderer,{id:P,type:v.component,mode:t,section:v,config:{...Se.default(S)?A:S,locale:a,dev:t==="draft"?{mode:t,components:o,defaultLocale:i}:{mode:t,defaultLocale:i}},page:s},P)})}),!((B=c.footer)!=null&&B.hidden)&&e.jsx(_e,{})]})}const Oe=f.lazy(()=>Promise.resolve().then(()=>require("./publish-button-D2jaaXXn.js"))),ce=re.default(we.default)`
|
|
34
34
|
&.sticky {
|
|
35
35
|
position: sticky;
|
|
36
36
|
top: 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),F=require("./state-DxOb57hO.js"),W=require("@arcblock/ux/lib/Locale/context"),ee=require("@arcblock/ux/lib/Toast"),te=require("@blocklet/pages-kit/utils/route"),O=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-B6E0yAU3.js"),U=require("./array-BH41o7C6.js"),G=r=>r&&r.__esModule?r:{default:r},$=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:P,okColor:w="primary",cancelColor:y="primary",DialogContentProps:A,form:E,...z})=>{j({...z,open:!0,children:e.jsxs("form",{onSubmit:v=>v.preventDefault(),children:[b&&e.jsxs(s.DialogTitle,{className:"between",zIndex:"appBar",bgcolor:"background.paper",sx:{borderBottom:v=>`1px solid ${v.palette.divider}`},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:P,loadingPosition:P?"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}=W.useLocaleContext(),[p,b]=l.useState(!1),{dialog:d,showDialog:S}=le(),f=F.useProjectId(),g=l.useCallback(P=>{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(O.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:P})})]}),okText:u("maker.publish"),cancelText:u("common.cancel"),onOk:async()=>{if((w==null?void 0:w.length)===0){const y=u("maker.publishSelectPagesMessage");throw $.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}),$.default.success(u("maker.publishSuccessMessage"))}catch(y){throw $.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.publish")}),d]})});function ue({routePathInfo:r,checked:j,onClick:k,route:u}){var d,S,f,g,c;const{t:p}=W.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(O.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(O.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}=W.useLocaleContext(),[d,S]=l.useState(!1),[f,g]=l.useState(()=>u?Object.fromEntries(u.filter(t=>!t.includes("-")).map(t=>[t,!0])):{}),[c,P]=l.useState({}),[w,y]=l.useState(()=>u?Object.fromEntries(u.filter(t=>t.includes("-")).map(t=>[t,!0])):{}),[A,E]=l.useState({}),{loading:z,error:v,value:x}=ie.useAsync(()=>U.getPages({mode:j}),[j]);if(v)throw v;const D=l.useMemo(()=>r.routeIds||[],[r]),I=l.useMemo(()=>(x==null?void 0:x.pageIds)||[],[x]),T=l.useMemo(()=>!D||!r.routes?[]:JSON.parse(JSON.stringify(D)).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,D]),q=l.useMemo(()=>{if(!T)return[];if(!c)return T;const t=[...T].filter(o=>!c[o]);return Object.values(c).forEach(o=>{o.forEach(i=>{t.push(`${i.originalRouteId}-${i.paramOptionIds.join("-")}`)})}),t},[T,c]),B=l.useMemo(()=>!x||!I||!q?[]:H.default(I,q),[q,x,I]),C=l.useMemo(()=>D?[...D].concat(B):B,[D,B]),_=l.useCallback(()=>{const t={};T==null||T.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)}}),P(t)},[T,r.routes]);l.useEffect(()=>{_()},[_]),l.useEffect(()=>{E(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(),E(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],B.includes(t)&&(D||[]).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,D&&D.includes(t)&&B.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,B,r,x,D]),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(L=>a[`${t}-${L.paramOptionIds.join("-")}`]))??!1;return g(L=>{if(h&&!L[t])return{...L,[t]:!0};if(!h&&L[t]){const R={...L};return delete R[t],R}return L}),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")})]})}),T.map(t=>{var L,R;const o=(L=r.routes)==null?void 0:L[t];if(!o)return null;const i=!1,n=c&&c[t]&&((R=c[t])==null?void 0:R.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(O.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(O.VisibilityOff,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),i,n&&e.jsx(s.Box,{onClick:M=>Q(t,M),sx:{display:"inline-flex",alignItems:"center",mr:.35,cursor:"pointer",color:"info.main"},children:a?e.jsx(O.KeyboardArrowDown,{fontSize:"small",sx:{fontSize:"18px"}}):e.jsx(O.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(M=>{const V=`${t}-${M.paramOptionIds.join("-")}`,Z=w[V]||!1;return e.jsx(ue,{routePathInfo:M,checked:d||Z,onClick:()=>X(t,M),route:o},V)})})})]},t)}),B.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-DoGBMTzI.js"),W=require("@arcblock/ux/lib/Locale/context"),ee=require("@arcblock/ux/lib/Toast"),te=require("@blocklet/pages-kit/utils/route"),O=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-0fezWT4S.js"),U=require("./array-DxhrK2d5.js"),G=r=>r&&r.__esModule?r:{default:r},$=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:P,okColor:w="primary",cancelColor:y="primary",DialogContentProps:A,form:E,...z})=>{j({...z,open:!0,children:e.jsxs("form",{onSubmit:v=>v.preventDefault(),children:[b&&e.jsxs(s.DialogTitle,{className:"between",zIndex:"appBar",bgcolor:"background.paper",sx:{borderBottom:v=>`1px solid ${v.palette.divider}`},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:P,loadingPosition:P?"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}=W.useLocaleContext(),[p,b]=l.useState(!1),{dialog:d,showDialog:S}=le(),f=F.useProjectId(),g=l.useCallback(P=>{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(O.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:P})})]}),okText:u("maker.publish"),cancelText:u("common.cancel"),onOk:async()=>{if((w==null?void 0:w.length)===0){const y=u("maker.publishSelectPagesMessage");throw $.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}),$.default.success(u("maker.publishSuccessMessage"))}catch(y){throw $.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.publish")}),d]})});function ue({routePathInfo:r,checked:j,onClick:k,route:u}){var d,S,f,g,c;const{t:p}=W.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(O.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(O.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}=W.useLocaleContext(),[d,S]=l.useState(!1),[f,g]=l.useState(()=>u?Object.fromEntries(u.filter(t=>!t.includes("-")).map(t=>[t,!0])):{}),[c,P]=l.useState({}),[w,y]=l.useState(()=>u?Object.fromEntries(u.filter(t=>t.includes("-")).map(t=>[t,!0])):{}),[A,E]=l.useState({}),{loading:z,error:v,value:x}=ie.useAsync(()=>U.getPages({mode:j}),[j]);if(v)throw v;const D=l.useMemo(()=>r.routeIds||[],[r]),I=l.useMemo(()=>(x==null?void 0:x.pageIds)||[],[x]),T=l.useMemo(()=>!D||!r.routes?[]:JSON.parse(JSON.stringify(D)).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,D]),q=l.useMemo(()=>{if(!T)return[];if(!c)return T;const t=[...T].filter(o=>!c[o]);return Object.values(c).forEach(o=>{o.forEach(i=>{t.push(`${i.originalRouteId}-${i.paramOptionIds.join("-")}`)})}),t},[T,c]),B=l.useMemo(()=>!x||!I||!q?[]:H.default(I,q),[q,x,I]),C=l.useMemo(()=>D?[...D].concat(B):B,[D,B]),_=l.useCallback(()=>{const t={};T==null||T.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)}}),P(t)},[T,r.routes]);l.useEffect(()=>{_()},[_]),l.useEffect(()=>{E(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(),E(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],B.includes(t)&&(D||[]).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,D&&D.includes(t)&&B.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,B,r,x,D]),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(L=>a[`${t}-${L.paramOptionIds.join("-")}`]))??!1;return g(L=>{if(h&&!L[t])return{...L,[t]:!0};if(!h&&L[t]){const R={...L};return delete R[t],R}return L}),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")})]})}),T.map(t=>{var L,R;const o=(L=r.routes)==null?void 0:L[t];if(!o)return null;const i=!1,n=c&&c[t]&&((R=c[t])==null?void 0:R.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(O.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(O.VisibilityOff,{fontSize:"small",sx:{color:"warning.main",fontSize:16,mr:.35}})}),i,n&&e.jsx(s.Box,{onClick:M=>Q(t,M),sx:{display:"inline-flex",alignItems:"center",mr:.35,cursor:"pointer",color:"info.main"},children:a?e.jsx(O.KeyboardArrowDown,{fontSize:"small",sx:{fontSize:"18px"}}):e.jsx(O.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(M=>{const V=`${t}-${M.paramOptionIds.join("-")}`,Z=w[V]||!1;return e.jsx(ue,{routePathInfo:M,checked:d||Z,onClick:()=>X(t,M),route:o},V)})})})]},t)}),B.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,9 +1,9 @@
|
|
|
1
|
-
"use strict";var Dt=Object.defineProperty;var _t=(e,n,t)=>n in e?Dt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var k=(e,n,t)=>_t(e,typeof n!="symbol"?n+"":n,t);const vt=require("@blocklet/pages-kit/builtin/utils"),ye=require("@blocklet/pages-kit/types"),de=require("@blocklet/pages-kit/utils/property"),ue=require("@blocklet/quickjs"),kt=require("@blocklet/sdk/lib/config"),He=require("lru-cache"),ot=require("node-fetch"),$=require("ufo"),Z=require("crypto"),Rt=require("@blocklet/logger"),
|
|
1
|
+
"use strict";var Dt=Object.defineProperty;var _t=(e,n,t)=>n in e?Dt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var k=(e,n,t)=>_t(e,typeof n!="symbol"?n+"":n,t);const vt=require("@blocklet/pages-kit/builtin/utils"),ye=require("@blocklet/pages-kit/types"),de=require("@blocklet/pages-kit/utils/property"),ue=require("@blocklet/quickjs"),kt=require("@blocklet/sdk/lib/config"),He=require("lru-cache"),ot=require("node-fetch"),$=require("ufo"),Z=require("crypto"),Rt=require("@blocklet/logger"),w=require("fs"),y=require("path"),xt=require("lodash/isNil"),Nt=require("@blocklet/pages-kit/utils/builtin"),rt=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),Be=require("@blocklet/sdk/lib/component"),Lt=require("autoprefixer"),Mt=require("esbuild"),Ut=require("postcss"),Ft=require("tailwindcss"),$t=require("typescript"),ee=require("@syncedstore/core"),qt=require("yjs"),Ht=require("@blocklet/pages-kit/utils/data-source"),Ee=require("@blocklet/pages-kit/utils/route"),Bt=require("lodash"),Gt=require("@reactivedata/reactive"),Ne=require("glob"),Vt=require("lib0/decoding"),Jt=require("lib0/encoding"),zt=require("lodash/cloneDeep"),Kt=require("lodash/debounce"),Yt=require("lodash/get"),Wt=require("lodash/isEmpty"),Qt=require("lodash/pick"),Xt=require("lodash/set"),Zt=require("lodash/union"),es=require("nanoid"),ts=require("p-limit"),ss=require("stream/promises"),ns=require("tar"),os=require("wait-on"),ie=require("y-protocols/awareness"),ve=require("y-protocols/sync"),rs=require("yaml"),v=require("sequelize");require("sqlite3");require("@blocklet/pages-kit/types/state");const N=e=>e&&e.__esModule?e:{default:e};function fe(e){if(e&&e.__esModule)return e;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const s=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(n,t,s.get?s:{enumerable:!0,get:()=>e[t]})}}return n.default=e,Object.freeze(n)}const O=N(kt),as=N(ot),is=N(Rt),at=N(y),cs=N(xt),ls=N(Lt),ds=fe(Mt),us=N(Ut),ps=N(Ft),F=N($t),V=fe(qt),ke=fe(Vt),x=fe(Jt),fs=N(zt),it=N(Kt),Ge=N(Yt),ct=N(Wt),ms=N(Qt),Qe=N(Xt),gs=N(Zt),hs=N(ts),ys=N(os),ne=fe(rs);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 Ss="image-bin";O.default.env.INIT_TEMPLATE_PATH;const ws=process.env.DATABASE_URL||at.default.join(O.default.env.dataDir,"db/pages-kit.db"),Xe=O.default,Es=()=>O.default.env.tenantMode==="multiple",bs=()=>{var e;return(cs.default(Xe.env.preferences.multiTenantAllProjectAccessPassports)?[]:(e=Xe.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:e.split(","))||[]},Is=at.default.join(O.default.env.dataDir,"fs-memoize-cache"),Os=O.default.env.FS_MEMOIZE_CACHE_VERSION||"v1.0.0",E=is.default("pages-kit"),As=v.DataTypes.sqlite.DATE.parse;v.DataTypes.sqlite.DATE.parse=(e,n)=>typeof e=="number"?new Date(e):As(e,n);const me=new v.Sequelize({dialect:"sqlite",storage:ws,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});me.query("pragma journal_mode = WAL;");me.query("pragma synchronous = normal;");me.query("pragma journal_size_limit = 67108864;");class Ce extends v.Model{}Ce.init({id:{type:v.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:v.DataTypes.UUIDV4},projectId:{type:v.DataTypes.UUID,allowNull:!1},componentId:{type:v.DataTypes.STRING,allowNull:!1}},{sequelize:me,tableName:"ProjectComponents",timestamps:!1});class K extends v.Model{static async getProjectByIdOrSlug(n){return K.findOne({where:{[v.Op.or]:[{id:n},{slug:n}]}})}}K.init({id:{type:v.DataTypes.UUID,defaultValue:v.DataTypes.UUIDV4,primaryKey:!0},name:{type:v.DataTypes.STRING,allowNull:!1},description:v.DataTypes.TEXT,createdAt:v.DataTypes.DATE,updatedAt:v.DataTypes.DATE,createdBy:{type:v.DataTypes.STRING,allowNull:!1},updatedBy:{type:v.DataTypes.STRING,allowNull:!1},slug:v.DataTypes.STRING,icon:v.DataTypes.STRING,pinnedAt:v.DataTypes.DATE,useAllResources:v.DataTypes.BOOLEAN,npmSecret:v.DataTypes.STRING,relatedBlocklets:{type:v.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(e){this.setDataValue("relatedBlocklets",JSON.stringify(e||{}))}}},{sequelize:me,paranoid:!0});K.hasMany(Ce,{foreignKey:"projectId",as:"components"});const Cs=Is,Ts=Os,Le=7*24*60*60*1e3,Ps=24*60*60*1e3,lt=async(e="")=>{const n=y.join(Cs,e);try{if(!(await w.promises.stat(n)).isDirectory())throw new Error(`${n} is not a directory`)}catch{await w.promises.mkdir(n,{recursive:!0})}return n},js=(e,n)=>{const t=Z.createHash("md5").update(n).digest("hex");return y.join(e,`${Ts}-${t}.json`)},Ds=async(e="")=>{const n=await lt(e),t=Date.now();try{const s=await w.promises.readdir(n);await Promise.all(s.filter(o=>o.endsWith(".json")).map(async o=>{const r=y.join(n,o);try{const i=await w.promises.readFile(r,"utf-8"),u=JSON.parse(i);u.createdAt&&t-u.createdAt>Le&&await w.promises.unlink(r)}catch{try{const u=await w.promises.stat(r);t-u.mtimeMs>Le&&await w.promises.unlink(r)}catch{}}}))}catch(s){console.error(`Failed to cleanup cache in ${n}:`,s)}},_s=(()=>{const e=new Set;return setInterval(async()=>{await Promise.all(Array.from(e).map(s=>Ds(s)))},Ps).unref(),s=>{e.add(s)}})();function Ve(e,n){return n.subdir&&_s(n.subdir),ue.memoize(async(...s)=>{const o=await lt(n.subdir||""),r=n.keyGenerator?n.keyGenerator(...s):JSON.stringify(s),i=js(o,r);try{const u=await w.promises.readFile(i,"utf-8"),{value:d,createdAt:a}=JSON.parse(u);if(a&&Date.now()-a>Le)throw await w.promises.unlink(i).catch(()=>{}),new Error("Cache expired");return d}catch{const d=await e(...s),a=JSON.stringify({value:d,createdAt:Date.now()});return w.promises.writeFile(i,a,"utf-8").catch(p=>{console.error("Failed to write fs cache:",p)}),d}},{keyGenerator:n.keyGenerator,lruOptions:n.lruOptions})}const vs=async(e,{componentId:n})=>{const t=`@tailwind components;
|
|
2
2
|
@tailwind utilities;
|
|
3
|
-
`,s=`.CustomComponent_${n}`;return(await us.default([ps.default({content:[{raw:e,extension:"tsx"}]}),ls.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),r=>{r.walkRules(
|
|
3
|
+
`,s=`.CustomComponent_${n}`;return(await us.default([ps.default({content:[{raw:e,extension:"tsx"}]}),ls.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),r=>{r.walkRules(i=>{i.selectors=i.selectors.map(u=>u.replace(/\.(.+)/g,`${s}.$1,${s} .$1`))})}]).process(t)).css},ks=async(e,{componentId:n})=>{const t=await vs(e,{componentId:n});return`export const __PagesKit_CSS__ = ${JSON.stringify(t)};
|
|
4
4
|
|
|
5
5
|
${e}
|
|
6
|
-
`},Ze=Ve(async(e,n)=>{let t=F.default.transpileModule(e,{compilerOptions:{jsx:F.default.JsxEmit.React,target:F.default.ScriptTarget.ES2016,module:F.default.ModuleKind.ESNext},transformers:{before:[rt.createBuiltinModuleTransformer(F.default)]}}).outputText;if(n.tailwind&&(t=await ks(t,{componentId:n.componentId})),n.module===ye.PreloadComponentScriptModule.ESM)return t;const s=F.default.transpileModule(t,{compilerOptions:{jsx:F.default.JsxEmit.React,target:F.default.ScriptTarget.ES2016,module:F.default.ModuleKind.CommonJS,moduleResolution:F.default.ModuleResolutionKind.Node16}}).outputText;return n.module===ye.PreloadComponentScriptModule.CJS?s:xs(n.moduleName,s)},{keyGenerator:(e,n)=>{const t=Z.createHash("md5").update(e).digest("hex"),s={...n,componentId:n.componentId,module:n.module,...n.module!==ye.PreloadComponentScriptModule.ESM?{moduleName:n.moduleName}:{},tailwind:n.tailwind};return JSON.stringify(["transpileModule",t,s])},lruOptions:{max:100,ttl:1e3*60*60*24*7},subdir:"transpileModule"}),Rs=async(e,n)=>{var
|
|
6
|
+
`},Ze=Ve(async(e,n)=>{let t=F.default.transpileModule(e,{compilerOptions:{jsx:F.default.JsxEmit.React,target:F.default.ScriptTarget.ES2016,module:F.default.ModuleKind.ESNext},transformers:{before:[rt.createBuiltinModuleTransformer(F.default)]}}).outputText;if(n.tailwind&&(t=await ks(t,{componentId:n.componentId})),n.module===ye.PreloadComponentScriptModule.ESM)return t;const s=F.default.transpileModule(t,{compilerOptions:{jsx:F.default.JsxEmit.React,target:F.default.ScriptTarget.ES2016,module:F.default.ModuleKind.CommonJS,moduleResolution:F.default.ModuleResolutionKind.Node16}}).outputText;return n.module===ye.PreloadComponentScriptModule.CJS?s:xs(n.moduleName,s)},{keyGenerator:(e,n)=>{const t=Z.createHash("md5").update(e).digest("hex"),s={...n,componentId:n.componentId,module:n.module,...n.module!==ye.PreloadComponentScriptModule.ESM?{moduleName:n.moduleName}:{},tailwind:n.tailwind};return JSON.stringify(["transpileModule",t,s])},lruOptions:{max:100,ttl:1e3*60*60*24*7},subdir:"transpileModule"}),Rs=async(e,n)=>{var i,u;const s=(u=(i=(await ds.build({entryPoints:["index.tsx"],external:Object.keys(Nt.BuiltinModules),format:"esm",target:"esnext",bundle:!0,write:!1,plugins:[{name:"vfs",setup(d){let a=null;d.onResolve({filter:/.*/},p=>p.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:p.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),d.onLoad({filter:/.*/,namespace:"vfs"},async p=>{var S;if(p.path==="index.tsx")return{contents:`export { ${n} } from './component'`,loader:"tsx"};if(p.path==="component.tsx")return{contents:e,loader:"tsx"};if(rt.isRelativeModule(p.path)){const f=p.path.split("/").pop();if(a||(a=await je({ensureLoaded:!1})),(S=a==null?void 0:a.chunks)!=null&&S[f])try{const l=w.readFileSync(a.chunks[f],"utf-8");return E.info("get chunk from local file system",f),{contents:l,loader:"tsx"}}catch{}}return null})}}]})).outputFiles)==null?void 0:i[0])==null?void 0:u.contents;if(!s)throw new Error("Failed to build server code");const o=Buffer.from(s).toString();return F.default.transpileModule(o,{compilerOptions:{module:F.default.ModuleKind.ESNext,target:F.default.ScriptTarget.ES2020}}).outputText},dt=Ve(async(e,n)=>{const t=await Rs(e,n);return new RegExp(`export\\s+\\{[^}]*(?:\\w+\\s+as\\s+${n}\\b|\\b${n}\\b)[^}]*\\}`,"m").test(t)?t:void 0},{keyGenerator:(e,n)=>{const t=Z.createHash("md5").update(e).digest("hex");return JSON.stringify(["extractExportValueSchema",t,n])},lruOptions:{max:100,ttl:1e3*60*60*24*7},subdir:"extractExportValueSchema"}),xs=(e,n)=>`// GENERATED FILE. DO NOT EDIT.
|
|
7
7
|
var ${e} = async function () {
|
|
8
8
|
|
|
9
9
|
const exports = {};
|
|
@@ -29,7 +29,7 @@ var ${e} = async function () {
|
|
|
29
29
|
|
|
30
30
|
return exports;
|
|
31
31
|
};
|
|
32
|
-
`,ce=new He.LRUCache({max:100}),ut=60*60,Me=60;function pt(e){
|
|
32
|
+
`,ce=new He.LRUCache({max:100}),ut=60*60,Me=60;function pt(e){E.info("clear preload components cache",{cacheKey:e}),ce.delete(e)}function ft(e){for(const n of ce.keys())n.includes(e)&&(E.info("clear preload components cache",{cacheKey:n}),pt(n))}function mt({mode:e,instanceId:n,componentId:t,locale:s}){return["getPreloadComponents",e,n,t,s].join("-")}async function Ns({mode:e,req:n,state:t,locale:s,instances:o,module:r}){const{supportedLocales:i,config:{defaultLocale:u}}=t;if(!u)return null;const d=(await Promise.all(o.map(async l=>{try{const c=mt({mode:e,instanceId:l.id,componentId:l.componentId,locale:s});if(e!=="draft"&&l.useCache&&ce.has(c))return E.info(`get preload component from cache: ${c}`),ce.get(c);const m=pe({state:t,componentId:l.componentId});if(!m)return null;const b=await gt({req:n,state:t,componentId:m.id,locale:s,defaultLocale:u,properties:l.properties});if(!b)return null;const _={instanceId:l.id,preload:b};if(e!=="draft"&&l.useCache){let T=ut;l.cacheDuration&&(T=l.cacheDuration),E.info(`set preload component to cache(${T}s): ${c}`),ce.set(c,_,{ttl:T*1e3})}return _}catch(c){return E.error("get preload component error",{instanceId:l.id,componentId:l.componentId},{error:c}),null}}))).filter(l=>!!l),a=Object.values(d.reduce((l,c)=>({...l,...c.preload.components}),{}));async function p(){const l=await Promise.all(a.map(async c=>{const m=de.componentUMDName({componentId:c.component.id}),b=r===ye.PreloadComponentScriptModule.ESM?{module:r,script:await Ze(c.script,{componentId:c.component.id,module:r,tailwind:e!=="draft"})}:{module:r,script:await Ze(c.script,{componentId:c.component.id,module:r,moduleName:m,tailwind:e!=="draft"}),moduleName:m};return[c.component.id,{component:c.component,script:b}]}));return Object.fromEntries(l)}const S=await p();return{config:{defaultLocale:u,supportedLocales:i},components:S,instances:d.map(l=>({id:l.instanceId,componentId:l.preload.component.id,locales:{[l.preload.locale]:{props:l.preload.props}}}))}}async function gt({req:e,state:n,componentId:t,locale:s,defaultLocale:o,properties:r}){const{supportedLocales:i}=n,u=pe({state:n,componentId:t});if(!u)return null;const d=i.some(p=>p.locale===s)?s:o;if(!d)return null;const a=await ht({req:e,state:n,componentId:t,locale:d,defaultLocale:o,properties:r});return a?{component:u,...a}:null}const Ls=20;async function ht({req:e,depth:n=0,state:t,componentId:s,locale:o,defaultLocale:r,properties:i}){if(n>Ls)throw new RangeError("max component depth exceeded");const u=Ms({state:t,componentId:s,properties:i,locale:o});if(!u)return null;const{props:d}=u,a={locale:o||r,components:{[u.component.id]:{component:u.component,script:u.script}},props:{...d}};try{const p=await Fs({...u,req:e});p!=null&&p.props&&Object.assign(a.props,p.props)}catch(p){E.error("preload data at server side error",{componentId:s,name:u.component.name},{error:p})}return await Promise.all(Object.entries(d).map(async([p,S])=>{if((S==null?void 0:S.type)===de.RenderNestedComponent){const f=await ht({req:e,depth:n+1,state:t,componentId:S.componentId,locale:o,defaultLocale:r,properties:S.properties});f&&(Object.assign(a.components,f.components),Object.assign(a.props,{[p]:{type:de.RenderNestedComponent,componentId:S.componentId,props:f.props}}))}})),a}function Ms({state:e,componentId:n,locale:t,properties:s}){const o=pe({state:e,componentId:n});if(!o)return null;const r=de.mergeComponent({componentId:n,getComponent:i=>pe({state:e,componentId:i}),locale:t,defaultLocale:e.config.defaultLocale,properties:s});return r?{component:o,script:r.script,props:{locale:t,...r.props}}:null}function pe({state:e,componentId:n}){var t,s,o;return((t=e.components[n])==null?void 0:t.data)??((o=(s=e.resources.components)==null?void 0:s[n])==null?void 0:o.component)}function Us({state:e,name:n}){var s,o;const t=n.toLowerCase();return((s=Object.values(e.components).find(r=>{var i;return((i=r.data.name)==null?void 0:i.toLowerCase())===t}))==null?void 0:s.data)??((o=e.resources.components&&Object.values(e.resources.components).find(r=>{var i;return((i=r.component.name)==null?void 0:i.toLowerCase())===t}))==null?void 0:o.component)}async function Fs({component:e,script:n,props:t,req:s}){if(!(n!=null&&n.includes("getServerSideProps")))return null;const o=await dt(n,"getServerSideProps");if(!o)return null;const r=o.match(/export\s*{\s*(\w+)\s+as\s+getServerSideProps\s*}/)||o.match(/export\s*{\s*getServerSideProps\s*}/),i=(r==null?void 0:r[1])||"getServerSideProps",u=new Promise(a=>{setTimeout(()=>{a({})},Me*1e3)});return await Promise.race([u,ue.Sandbox.callFunction({code:`${o}
|
|
33
33
|
|
|
34
34
|
export async function getServerSidePropsWrapper(props) {
|
|
35
35
|
const { location, fetch, props: componentProps } = props;
|
|
@@ -40,18 +40,18 @@ export async function getServerSidePropsWrapper(props) {
|
|
|
40
40
|
try {
|
|
41
41
|
globalThis.location = location;
|
|
42
42
|
globalThis.fetch = fetch;
|
|
43
|
-
return await
|
|
43
|
+
return await ${i}(componentProps);
|
|
44
44
|
} finally {
|
|
45
45
|
// 清理全局状态
|
|
46
46
|
if (originalLocation) globalThis.location = originalLocation;
|
|
47
47
|
if (originalFetch) globalThis.fetch = originalFetch;
|
|
48
48
|
}
|
|
49
|
-
}`,filename:`${e.name||e.id}.js`,moduleLoader:
|
|
49
|
+
}`,filename:`${e.name||e.id}.js`,moduleLoader:a=>{if(a==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
|
|
50
50
|
export { joinURL, withQuery, getQuery, getComponentMountPoint }
|
|
51
|
-
`;if(
|
|
51
|
+
`;if(a==="@blocklet/pages-kit/builtin/dayjs")return ue.BuiltinModules.dayjs},global:{console:{log:(...a)=>{E.info(...a)},warn:(...a)=>{E.warn(...a)},error:(...a)=>{E.error(...a)}},getComponentMountPoint:vt.getComponentMountPoint,joinURL:$.joinURL,withQuery:$.withQuery,getQuery:$.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:$.joinURL($.withHttps(s.hostname),s.originalUrl)},fetch:(a,{...p}={})=>{const S=typeof a=="string"&&a.startsWith("/")?$.joinURL(O.default.env.appUrl,a):a;if(typeof S=="string"&&$.parseURL(S).host===$.parseURL(O.default.env.appUrl).host){const f=s.get("cookie");if(f){const l=new ot.Headers(p.headers);l.set("cookie",f),p.headers=l}}return as.default(S,{...p,timeout:Me*1e3}).then(f=>({ok:f.ok,status:f.status,statusText:f.statusText,headers:Object.fromEntries(f.headers.entries()),json:()=>f.json()}))},props:t}]})])}const yt=ue.memoize(async(e,n,t)=>{if(!(e!=null&&e.includes(n)))return null;const s=await dt(e,n);if(s)try{return await ue.Sandbox.callFunction({code:`
|
|
52
52
|
${s}
|
|
53
53
|
|
|
54
54
|
export function get${n}SchemaWrapper() {
|
|
55
55
|
return ${n};
|
|
56
56
|
}
|
|
57
|
-
`,filename:`${t}.js`,functionName:`get${n}SchemaWrapper`})}catch(o){return w.error(`获取 ${n} 失败`,{componentId:t,error:o}),null}return null},{keyGenerator:(e,n,t)=>{const s=Z.createHash("md5").update(e).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",s,n,t])},lruOptions:{max:100,ttl:1e3*60*60}}),$s="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Ue="page",Fe="trigger-reload-project-resource",Je=$s,qs="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM";function be(e){e.observeDeep(n=>{n.some(t=>t.changes.keys.has("updatedAt")||t.changes.keys.has("publishedAt"))||e.set("updatedAt",new Date().toISOString())})}function St(){return E.mkdtempSync(y.join(O.default.env.dataDir,"tmp-"))}function Ie(e,n,t=[]){return Array.isArray(e)?e.flatMap((s,o)=>Ie(s,n,[...t,o])):typeof e=="object"?e===null?[]:Object.entries(e).flatMap(([s,o])=>Ie(o,n,[...t,s])):n(e)?[t]:[]}function q(e){return e.filter(n=>n!=null)}function Hs(e){e.pages&&Object.keys(e.pages).forEach(t=>{const s=ee.getYjsValue(e.pages[t]);s&&s instanceof V.Map&&be(s)});const n=ee.getYjsValue(e.pages);n&&n instanceof V.Map&&n.observe(t=>{t.changes.keys.forEach((s,o)=>{if(s.action==="add"){const r=ee.getYjsValue(e.pages[o]);r&&r instanceof V.Map&&be(r)}})})}function Bs(e){e.routes&&Object.keys(e.routes).forEach(t=>{var o;const s=ee.getYjsValue((o=e.routes)==null?void 0:o[t]);s&&s instanceof V.Map&&be(s)});const n=ee.getYjsValue(e.routes);n&&n instanceof V.Map&&n.observe(t=>{t.changes.keys.forEach((s,o)=>{var r;if(s.action==="add"){const a=ee.getYjsValue((r=e.routes)==null?void 0:r[o]);a&&a instanceof V.Map&&be(a)}})})}function Gs(e,n){var t;for(const s of n||Object.keys(e.routes||{})){let o=s,r=[];if(s.includes("-")){const[a,...i]=s.split("-");o=a,r=i||[]}if(((t=e.routes)==null?void 0:t[o])!==void 0){e.routes[o].publishedAt=new Date().toISOString();const a=e.routes[o];if(!a||!a.params||a.params.length===0)continue;if(s.includes("-")&&r.length>0){const i=we.getRouteMetaDataByOptionIds(r,a);i&&(i.publishedAt=new Date().toISOString())}if(!n){const i=we.generateParamCombinations({basePath:a.path,params:a.params,routeId:a.id,paramsOptions:a.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const d of i)d.routeMetaData??(d.routeMetaData={}),d.routeMetaData.publishedAt=new Date().toISOString()}}}}function Re({page:e,route:n,state:t,routeId:s,routePathInfo:o}){var a,i,d,c,p,S,m,u,l;w.info(`Executing datasource data assembly, routeId: ${s}, routePathInfo: ${JSON.stringify(o)}`);const r={...Bt.cloneDeep(e),id:s,slug:(o==null?void 0:o.path)??n.path,createdAt:n.createdAt,updatedAt:((a=o==null?void 0:o.routeMetaData)==null?void 0:a.updatedAt)??n.updatedAt,publishedAt:((i=o==null?void 0:o.routeMetaData)==null?void 0:i.publishedAt)??n.publishedAt,isPublic:(((d=o==null?void 0:o.routeMetaData)==null?void 0:d.isPublic)??n.isPublic)&&n.isPublic};for(const f of t.supportedLocales){if(n.dataSource){let b=n.id;o&&(b=o.paramOptionIds.join("-"));const _=((S=(p=(c=n.dataSource.pathDataMappings)==null?void 0:c[b])==null?void 0:p.dataCache)==null?void 0:S[f.locale])??((l=(u=(m=n.dataSource.pathDataMappings)==null?void 0:m[b])==null?void 0:u.dataCache)==null?void 0:l[t.config.defaultLocale||"en"]);if(!_)continue;Ht.setPageDataSource(r,t,f.locale,_)}o&&o.routeMetaData&&(o.routeMetaData.publishedAt=new Date().toISOString())}return r}const{uploadToMediaKit:Vs}=require("@blocklet/uploader-server"),Se=es.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),ze=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,le=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,et=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,Js=1e4,zs=3e4,ge=0,xe=1,Ks=0,Ys=1,$e=O.default,se=y.join(process.env.BLOCKLET_DATA_DIR,"site-state"),Ws=["production","draft"],Qs=["production"];function Oe(e){return(e==null?void 0:e.replace(/\//g,"|"))||""}function Xs(){var t;const e=$e.env.languages.map(s=>({locale:s.code,name:s.name})),n=(t=e[0])==null?void 0:t.locale;return{pageIds:[],pages:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{},components:{},supportedLocales:e,config:{defaultLocale:n},resources:{}}}const j=class j extends V.Doc{constructor(t){super();k(this,"syncedStore");k(this,"conns",new Map);k(this,"awareness");k(this,"releaseTimer");k(this,"awarenessChangeHandler",({added:t,updated:s,removed:o},r)=>{const a=t.concat(s,o);if(r!==null){const c=this.conns.get(r);c&&(t.forEach(p=>{c.add(p)}),o.forEach(p=>{c.delete(p)}))}const i=x.createEncoder();x.writeVarUint(i,xe),x.writeVarUint8Array(i,ie.encodeAwarenessUpdate(this.awareness,a));const d=x.toUint8Array(i);this.conns.forEach((c,p)=>this.send(p,d))});k(this,"updateHandler",t=>{const s=x.createEncoder();x.writeVarUint(s,ge),ve.writeUpdate(s,t);const o=x.toUint8Array(s);this.conns.forEach((r,a)=>this.send(a,o))});k(this,"ensureDataStructure",()=>{var d;const{supportedLocales:t,pages:s,pageIds:o,config:r,routes:a,routeIds:i}=this.syncedStore;{const c=new Set(Object.keys(s));let p=0;for(;p<o.length;){const S=o[p];c.has(S)?(c.delete(S),p++):o.splice(p,1)}}{const c=new Set(Object.keys(a));let p=0;for(;p<i.length;){const S=i[p];c.has(S)?(c.delete(S),p++):i.splice(p,1)}}t.splice(0,t.length),t.push(...$e.env.languages.map(c=>({locale:c.code,name:c.name}))),r.defaultLocale=(d=t[0])==null?void 0:d.locale;{let c=0;const p=new Set;for(;c<t.length;){const{locale:S}=t[c];p.has(S)?t.splice(c,1):(c++,p.add(S))}}});k(this,"send",(t,s)=>{t.readyState!==Ks&&t.readyState!==Ys&&this.closeConn(t);try{t.send(s,o=>{o&&this.closeConn(t)})}catch{this.closeConn(t)}});k(this,"closeConn",t=>{if(t.removeAllListeners(),this.conns.has(t)){const s=this.conns.get(t);this.conns.delete(t),s&&ie.removeAwarenessStates(this.awareness,Array.from(s),null)}t.close(),this.checkAndScheduleRelease()});k(this,"autoSave",it.default(()=>{E.mkdirSync(y.dirname(this.draftYjsFilePath),{recursive:!0}),E.writeFileSync(this.draftYjsFilePath,V.encodeStateAsUpdate(this))},Js));k(this,"save",({flush:t=!1}={})=>{this.autoSave(),t&&this.autoSave.flush()});k(this,"publish",async({mode:t,routes:s})=>{const o=await this.getState("draft"),r=await this.getState("production");await qe(o,r,{routes:s,mergeMode:"replace",deleteRoutes:!0,publishMode:t}),r.config.publishedAt=new Date().getTime(),Gs(this.syncedStore,s),await this.setState(t,r)});k(this,"mergeState",async(t,s)=>{var i,d,c;const o=JSON.parse(JSON.stringify(s));(i=t.config).fontFamily??(i.fontFamily={});const r=(d=o.config)==null?void 0:d.fontFamily,a=(c=t.config)==null?void 0:c.fontFamily;t.config.fontFamily.title=(r==null?void 0:r.title)||(a==null?void 0:a.title),t.config.fontFamily.description=(r==null?void 0:r.description)||(a==null?void 0:a.description),await new Promise((p,S)=>{this.transact(async()=>{try{const m=await qe(t,s);p(m)}catch(m){S(m)}})})});k(this,"addConnection",t=>{if(this.conns.has(t))return;this.cancelRelease(),t.binaryType="arraybuffer",this.conns.set(t,new Set),t.on("message",r=>this.messageListener(t,new Uint8Array(r)));let s=!0;const o=setInterval(()=>{if(!s)this.conns.has(t)&&this.closeConn(t),clearInterval(o);else if(this.conns.has(t)){s=!1;try{t.ping()}catch{this.closeConn(t),clearInterval(o)}}},zs);t.on("close",()=>{this.closeConn(t),clearInterval(o)}),t.on("pong",()=>{s=!0});{const r=x.createEncoder();x.writeVarUint(r,ge),ve.writeSyncStep1(r,this),this.send(t,x.toUint8Array(r));const a=this.awareness.getStates();if(a.size>0){const i=x.createEncoder();x.writeVarUint(i,xe),x.writeVarUint8Array(i,ie.encodeAwarenessUpdate(this.awareness,Array.from(a.keys()))),this.send(t,x.toUint8Array(i))}}});k(this,"messageListener",(t,s)=>{try{const o=x.createEncoder(),r=ke.createDecoder(s),a=ke.readVarUint(r);switch(a){case ge:x.writeVarUint(o,ge),ve.readSyncMessage(r,o,this,null),x.length(o)>1&&(this.ensureDataStructure(),this.send(t,x.toUint8Array(o)));break;case xe:{ie.applyAwarenessUpdate(this.awareness,ke.readVarUint8Array(r),t);break}default:w.warn(`Unsupported messageType ${a}`)}}catch(o){w.error(o)}this.save()});this.options=t,E.existsSync(this.draftYjsFilePath)&&V.applyUpdate(this,E.readFileSync(this.draftYjsFilePath)),this.syncedStore=Gt.reactive(ee.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new ie.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(t){if(!t)throw new Error("Should provide project context");try{const s=y.join(se,t),o=y.join(se,`@del-${t}`);E.renameSync(s,o)}catch(s){w.error("Failed to safe delete project state dir:",s)}}static get projectIds(){return Ne.globSync("*/",{cwd:se,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(t=>j.shared(t))}static shared(t){if(!t)throw new Error("Should provide project context");let s=j.sharedInstances[t];return s||(s=new j({path:y.join(se,t)}),j.sharedInstances[t]=s,Pt({projectId:t,pages:Te,components:Pe}),s)}static async getProductionState(t){var o,r;let s=j.productionStates.get(t);if(!s){const a=y.join(se,t,"production");if(s=await Ke(a,{includeResources:!0})??Xs(),!((o=s==null?void 0:s.config)!=null&&o.defaultLocale)){s.config??(s.config={});const i=$e.env.languages.map(d=>({locale:d.code,name:d.name}));s.config.defaultLocale=(r=i[0])==null?void 0:r.locale}j.productionStates.set(t,s)}return{...s,resources:await je().then(async a=>{var S,m;const{pages:i,components:d}=ms.default(a,"pages","components");let c=d;const p=await K.findByPk(t);if(p!=null&&p.useAllResources)c=d;else{const l=(await Ce.findAll({where:{projectId:t}})).map(b=>b.componentId);c=Object.fromEntries(Object.entries(d||{}).filter(([b])=>l.includes(b)))}return Object.keys(((S=s==null?void 0:s.resources)==null?void 0:S.components)||{}).length>0&&(c={...c,...(m=s==null?void 0:s.resources)==null?void 0:m.components}),{pages:i,components:c}}).catch(()=>({}))}}destroy(){this.cancelRelease(),this.save({flush:!0}),this.conns.forEach((s,o)=>this.closeConn(o)),this.awareness.destroy();const t=y.basename(this.options.path);delete j.sharedInstances[t],super.destroy()}initObserver(){Hs(this.syncedStore),Bs(this.syncedStore)}get draftYjsFilePath(){return y.join(this.options.path,"draft.yjs")}static async getStateByProjectId(t,s){if(s==="draft"){const o=j.shared(t);return JSON.parse(JSON.stringify(o.syncedStore))}return j.getProductionState(t)}async getState(t){if(t==="draft")return JSON.parse(JSON.stringify(this.syncedStore));const s=y.basename(this.options.path);return j.getProductionState(s)}async setState(t,s){const o=await It(s,{exportAssets:!1,includeResources:!0}),r=this.getPublishDir(t);if(E.mkdirSync(y.dirname(r),{recursive:!0}),E.rmSync(r,{force:!0,recursive:!0}),E.renameSync(o,r),t==="production"){const a=y.basename(this.options.path);j.productionStates.set(a,s)}}getPublishDir(t){return y.join(this.options.path,t)}checkAndScheduleRelease(){this.conns.size===0&&this.scheduleRelease()}scheduleRelease(){this.cancelRelease();const t=y.basename(this.options.path);this.releaseTimer=setTimeout(()=>{w.info(`[SiteState] releasing instance due to no active connections: ${t}`),this.conns.size===0&&(this.releaseTimer=void 0,this.destroy())},j.RELEASE_DELAY),w.info(`[SiteState] scheduled release for project ${t} in ${j.RELEASE_DELAY/1e3}s`)}cancelRelease(){if(this.releaseTimer){clearTimeout(this.releaseTimer),this.releaseTimer=void 0;const t=y.basename(this.options.path);w.info(`[SiteState] cancelled scheduled release for project ${t}`)}}static async pageUrlMap(t,s){var a,i;let{projectIds:o}=this;s&&(o=[s]);const r={};for(const d of o){const c=await K.findByPk(d);if(!c)continue;const p=await j.getStateByProjectId(d,t),S=c.slug||d,m=gs.default(O.default.env.languages.map(l=>l.code),p.supportedLocales.map(l=>l.locale)),u=(l,f)=>{S&&(r[$.joinURL("/",S,l)]={...f,shouldRedirect:!0,mainPage:!0}),r[$.joinURL("/",d,l)]={...f,shouldRedirect:!0,mainPage:!0};for(const b of m){const _={...f,locale:b};r[$.joinURL("/",b,d,l)]=_,S&&(r[$.joinURL("/",b,S,l)]=_)}};if(t==="draft")for(const l of p.routeIds||[]){const f=(a=p==null?void 0:p.routes)==null?void 0:a[l];if(!f)continue;if(f.params&&f.params.length>0){const T=we.generateParamCombinations({basePath:f.path,params:f.params,routeId:f.id,paramsOptions:f.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const M of T){const Y=M.path,te={projectId:d,projectSlug:S,pageSlug:Y,pageId:f.displayTemplateId||"",routeId:l,defaultLocale:m==null?void 0:m[0],locales:m,publishedAt:p.config.publishedAt,isPublic:f.isPublic&&((i=M==null?void 0:M.routeMetaData)==null?void 0:i.isPublic)};u(Y,te)}}const b=f.path,_={projectId:d,projectSlug:S,pageSlug:b,pageId:f.displayTemplateId||"",routeId:l,defaultLocale:m==null?void 0:m[0],locales:m,publishedAt:p.config.publishedAt,isPublic:f.isPublic};u(b,_)}for(const l of p.pageIds){const f=p.pages[l];if(!f||t==="production"&&!f.isPublic)continue;const b=f.slug,_=c.slug||d,T={projectId:d,projectSlug:_,pageSlug:b,pageId:l,defaultLocale:m==null?void 0:m[0],locales:m,publishedAt:p.config.publishedAt,isPublic:f.isPublic,templateConfig:f.templateConfig};u(b,T)}}return r}getDocumentSize(){return V.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const t=[];for(const[s,o]of Object.entries(j.sharedInstances)){const r=o.getDocumentSize();t.push({projectId:s,sizeInBytes:r,sizeInMB:`${(r/(1024*1024)).toFixed(2)} MB`,activeConnections:o.conns.size})}return t}static startPeriodicCheck(){this.periodicCheckTimer||(this.periodicCheckTimer=setInterval(()=>{this.performPeriodicCheck()},this.PERIODIC_CHECK_INTERVAL),w.info(`[SiteState] periodic check started, interval: ${this.PERIODIC_CHECK_INTERVAL/(60*60*1e3)} hours`))}static stopPeriodicCheck(){this.periodicCheckTimer&&(clearInterval(this.periodicCheckTimer),this.periodicCheckTimer=void 0,w.info("[SiteState] periodic check stopped"))}static performPeriodicCheck(){const t=Object.keys(j.sharedInstances).length,s=[],o=[];for(const[r,a]of Object.entries(j.sharedInstances))a.conns.size===0?s.push({projectId:r,instance:a}):o.push({projectId:r,connections:a.conns.size});if(w.info(`[SiteState] periodic check summary: total instances: ${t}, with connections: ${o.length}, without connections: ${s.length}`),s.length>0){w.info(`[SiteState] releasing ${s.length} instances without connections:`,s.map(a=>a.projectId));let r=0;for(const{projectId:a,instance:i}of s)try{w.info(`[SiteState] releasing instance due to periodic check: ${a}`),i.destroy(),r++}catch(d){w.error(`[SiteState] failed to release instance ${a} during periodic check:`,d)}w.info(`[SiteState] periodic check completed: ${r}/${s.length} instances released successfully`)}else t>0?w.debug("[SiteState] periodic check: all instances have active connections"):w.debug("[SiteState] periodic check: no instances exist")}};k(j,"PRODUCTION_CACHE_TTL",7*24*60*60*1e3),k(j,"RELEASE_DELAY",5*60*1e3),k(j,"PERIODIC_CHECK_INTERVAL",2*60*60*1e3),k(j,"sharedInstances",{}),k(j,"productionStates",new He.LRUCache({max:100,ttl:j.PRODUCTION_CACHE_TTL})),k(j,"periodicCheckTimer");let z=j;async function Zs(e,n,t){if(!e||!E.existsSync(e)||!E.lstatSync(e).isFile())return null;let s=t[e];return s||(s=(async()=>{var o;try{const r=(o=await Vs({filePath:e,fileName:n}))==null?void 0:o.data;return r==null?void 0:r.filename}catch(r){return w.error(`Failed to upload asset ${e}:`,r),null}})(),t[e]=s),s}const Et=async(e,n)=>{const t=y.basename(e),s=await Be.call({name:Je,path:$.joinURL("/uploads",t),responseType:"stream",method:"GET"});if(s.status>=200&&s.status<400){const o=E.createWriteStream(n);await ss.pipeline(s.data,o)}else throw new Error(`download asset failed ${s.status}`)},wt=async(e,n)=>{await Promise.all(e.map(async t=>{try{await Et(t,y.join(n,y.basename(t)))}catch(s){w.error(`Failed to export assets: ${t}, ${s}`)}}))};function bt(e){return ze.test(e)?[e]:le.test(e)?(et.lastIndex=0,Array.from(e.matchAll(et)).map(t=>t[1]).filter(t=>!!t)):[]}async function he(e,n,t){const{getFilename:s,exportAssets:o}=t,r=y.join(n,s(e));if(E.mkdirSync(y.dirname(r),{recursive:!0}),E.writeFileSync(r,ne.stringify(e)),o){const i=Ie(e,d=>typeof d=="string"&&(ze.test(d)||le.test(d))).map(d=>{const c=Ge.default(e,d);return bt(c)}).flat().filter(Boolean);await wt(i,y.dirname(r))}}const tt=new He.LRUCache({max:20,ttl:30*24*60*60*1e3});async function st(e,n,t){var i;const s=Ie(e,d=>typeof d=="string"&&(ze.test(d)||le.test(d))),o=hs.default(2),r=s.map(d=>o(async()=>{try{const c=Ge.default(e,d),p=bt(c);for(const S of p){const m=y.basename(S),u=t.getFilePath(S,d),l=u?`${u}:${m}`:m,f=tt.get(l);if(f){le.test(c)||Qe.default(e,d,f);return}const b=await Zs(u,m,n);b&&(le.test(c)||Qe.default(e,d,b),tt.set(l,b))}}catch(c){w.error(`Failed to process upload for path ${d.join(".")}:`,c.message||c.reason)}})),a=await Promise.allSettled(r);(i=t.onFinish)==null||i.call(t,a)}async function It(e,{exportAssets:n,pageIds:t="all",componentIds:s="all",rawConfig:o,includeResources:r=!1,routeIds:a="all"}={}){var re,I,g,C,D,W,A,L,H,Q,J,ae;const i=t==="all"?e.pageIds:t,d=de.getComponentDependencies({state:e,pageIds:i,componentIds:s==="all"?Object.keys(e.components):s}),c=a==="all"?e.routeIds:a,p=h=>({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,sections:h.sections,sectionIds:h.sectionIds}),S=(h,P)=>{var R;return{id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,isPublic:h.isPublic??!0,templateConfig:h.templateConfig,meta:((R=h.locales)==null?void 0:R[P])??{},sections:q(h.sectionIds.map(B=>{const U=h.sections[B];return U&&p(U)})),dataSource:Object.fromEntries(Object.entries(h.dataSource||{}).map(([B,U])=>[B,(U==null?void 0:U[P])??{}]))}},m=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}),u=q(c.map(h=>{const P=e.routes[h];return P&&m(P)})),l=q(e.supportedLocales.map(h=>h.locale).flatMap(h=>i.map(P=>{const R=e.pages[P];return R&&{locale:h,slug:R.slug,page:S(R,h)}}))),f=St(),b=y.join(f,"pages");E.mkdirSync(b,{recursive:!0});const _=y.join(f,"components");E.mkdirSync(_,{recursive:!0});const T=y.join(f,"routes");E.mkdirSync(T,{recursive:!0});for(const{locale:h,slug:P,page:R}of l)await he(R,b,{getFilename:()=>`${Oe(P)||"index"}.${h}.yml`,exportAssets:n});for(const h of u)await he(h,T,{getFilename:()=>`${Oe(h.path)||"index"}.yml`,exportAssets:n});for(const h of d){const P=(re=e.components[h])==null?void 0:re.data;P&&await he(P,_,{getFilename:R=>`${R.name||"unnamed"}.${R.id}.yml`,exportAssets:n})}const M=y.join(f,".blocklet/pages/pages.config.yml");E.mkdirSync(y.dirname(M),{recursive:!0});const Y={pages:q(i.map(h=>{const P=e.pages[h];return P&&{id:h,slug:P.slug}})),routes:q(c.map(h=>{const P=e.routes[h];return P&&{id:h,path:P.path}})),components:q(d.map(h=>{var R;const P=(R=e.components[h])==null?void 0:R.data;return P&&{id:h,name:P.name}})),...r?{resources:{components:q(Object.keys(((I=e.resources)==null?void 0:I.components)||{}).filter(h=>d.includes(h)).map(h=>{var P,R,B,U;return{id:h,name:(U=(B=(R=(P=e.resources)==null?void 0:P.components)==null?void 0:R[h])==null?void 0:B.component)==null?void 0:U.name}}))}}:{},supportedLocales:e.supportedLocales,config:e.config};E.writeFileSync(M,ne.stringify(Y));const te=y.join(f,"config.source.json");if(o&&E.writeFileSync(te,JSON.stringify(o)),r){const h=y.join(f,"resources"),P=y.join(h,"components");E.mkdirSync(P,{recursive:!0});for(const U of Object.keys(((g=e==null?void 0:e.resources)==null?void 0:g.components)??{}).filter(G=>d.includes(G))){const G=(W=(D=(C=e.resources)==null?void 0:C.components)==null?void 0:D[U])==null?void 0:W.component;G&&await he(G,P,{getFilename:X=>`${X.name||"unnamed"}.${X.id}.yml`,exportAssets:n})}const R=y.join(f,"chunks");E.mkdirSync(R,{recursive:!0});const{chunks:B}=await je();for(const U of Object.keys(((A=e==null?void 0:e.resources)==null?void 0:A.components)??{}).filter(G=>d.includes(G))){const G=(Q=(H=(L=e.resources)==null?void 0:L.components)==null?void 0:H[U])==null?void 0:Q.component;if(G&&((J=G.renderer)==null?void 0:J.type)==="react-component"){const X=((ae=G.renderer)==null?void 0:ae.chunks)??[];if((X==null?void 0:X.length)>0)for(const De of X){const We=y.join(R,De),_e=B==null?void 0:B[De];try{_e&&E.existsSync(_e)&&!E.existsSync(We)&&E.copyFileSync(_e,We)}catch(jt){w.error(`copy chunk ${De} error`,jt.message)}}}}}return f}async function Ke(e,{importAssets:n,includeResources:t}={}){var r,a,i,d;if(!E.existsSync(e))return null;let s,o=!1;try{E.lstatSync(e).isDirectory()?s=e:/\.(tgz|gz|tar)$/.test(e)&&(o=!0,s=St(),await ns.x({file:e,C:s}));const c=Ne.globSync("**/.blocklet/pages/pages.config.yml",{cwd:s,absolute:!0}).at(0),p=c&&y.join(y.dirname(c),"../../pages"),S=c&&y.join(y.dirname(c),"../../components"),m=c&&y.join(y.dirname(c),"../../chunks"),u=c&&y.join(y.dirname(c),"../../routes");if(!c)return null;const l=ne.parse(E.readFileSync(c).toString()),f=(I,g,C)=>{let D=y.join(I,`${g}${C?`.${C}`:""}.yml`);return(!E.existsSync(D)||!E.lstatSync(D).isFile())&&(D=y.join(I,g,`index${C?`.${C}`:""}.yml`),!E.existsSync(D)||!E.lstatSync(D))?null:ne.parse(E.readFileSync(D).toString())},b=(I,g)=>{try{const C=Ne.globSync(`*.${g}.yml`,{cwd:I,absolute:!0})[0];return C?ne.parse(E.readFileSync(C).toString()):null}catch(C){w.error("parse component error",C)}return null},_=(I,g)=>{let C=y.join(I,`${g}.yml`);return(!E.existsSync(C)||!E.lstatSync(C).isFile())&&(C=y.join(I,g,"index.yml"),!E.existsSync(C)||!E.lstatSync(C))?null:ne.parse(E.readFileSync(C).toString())},T=q(l.pages.map(({slug:I})=>{var W;const g=q(l.supportedLocales.map(({locale:A})=>{const L=p?f(p,Oe(I),A):void 0;if(L)return{locale:A,page:L};const H=p?f(p,I,A):void 0;return H&&{locale:A,page:H}})),C=(W=g[0])==null?void 0:W.page;if(!C)return null;const D=C.sections.map(A=>({id:A.id||Se(),component:A.component,config:A.config,name:A.name,isTemplateSection:A.isTemplateSection??!1,templateDescription:A.templateDescription,llmConfig:A.llmConfig,visibility:A.visibility,sections:A.sections,sectionIds:A.sectionIds}));return{id:C.id||Se(),createdAt:C.createdAt,updatedAt:C.updatedAt,publishedAt:C.publishedAt,isPublic:C.isPublic??!0,templateConfig:C.templateConfig,slug:I,sections:Object.fromEntries(D.map(A=>[A.id,A])),sectionIds:D.map(A=>A.id),locales:Object.fromEntries(g.map(({locale:A,page:L})=>[A,L.meta])),dataSource:C.dataSource?Object.fromEntries([...new Set(g.flatMap(({page:A})=>Object.keys(A.dataSource??{})))].map(A=>[A,Object.fromEntries(g.map(({locale:L,page:H})=>{var J;const Q=(J=H.dataSource)==null?void 0:J[A];return[L,Q||{}]}))])):Object.fromEntries([...new Set(g.flatMap(({page:A})=>A.sections.map(L=>L.id)))].map(A=>[A,Object.fromEntries(g.map(({locale:L,page:H})=>{var ae;const Q=(ae=H.dataSource)==null?void 0:ae[A];if(Q)return[L,Q];const J=H.sections.find(h=>h.id===A);return[L,(J==null?void 0:J.properties)||{}]}))]))}})),M=q(((r=l==null?void 0:l.routes)==null?void 0:r.map(({path:I})=>{const g=u?_(u,Oe(I)):void 0;return{...g,id:(g==null?void 0:g.id)||Se(),createdAt:(g==null?void 0:g.createdAt)??new Date().toISOString(),updatedAt:(g==null?void 0:g.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(g==null?void 0:g.path)??`/${g==null?void 0:g.id}`,params:g==null?void 0:g.params,handler:(g==null?void 0:g.handler)??"Pages Kit",isPublic:(g==null?void 0:g.isPublic)??!0,enabledGenerate:(g==null?void 0:g.enabledGenerate)??!1,displayTemplateId:(g==null?void 0:g.displayTemplateId)??void 0,dataSource:(g==null?void 0:g.dataSource)??{}}}))??[]),Y=S?q(((a=l.components)==null?void 0:a.map(({id:I})=>b(S,I)))??[]):[];if(n){const I=(...g)=>{w.info(`[${o?y.basename(e):y.basename(y.join(e,"../../../../"))}] importAssets:`,...g)};try{I("wait image-bin api ready"),await ys.default({resources:[`${Be.getComponentWebEndpoint(Ss)}/api/sdk/uploads`],validateStatus:D=>D>=200&&D<=500}),I("image-bin api is ready");const g={},C={};I("start to upload assets"),await Promise.allSettled([st(Y,g,{getFilePath:D=>S&&y.join(S,D),onFinish:D=>{I(`upload ${D.length} component assets`)}}),st(T,C,{getFilePath:(D,W)=>{const A=Ge.default(T,W.slice(0,1));return p&&y.join(p,y.dirname(A.slug),D)},onFinish:D=>{I(`upload ${D.length} page assets`)}})]),I("upload assets done"),global.gc&&global.gc()}catch(g){I("Error during asset import:",g)}}const te={};if(t){const I=c&&y.join(y.dirname(c),"../../resources/components"),g=q(((d=(i=l.resources)==null?void 0:i.components)==null?void 0:d.map(({id:C})=>b(I,C)))??[]);g.length>0&&(te.components=Object.fromEntries(g.map((C,D)=>[C.id,{index:D,component:C}])))}const re={};if(m&&E.existsSync(m)){const I=E.readdirSync(m);for(const g of I)re[g]=y.join(m,g)}return{supportedLocales:l.supportedLocales,pageIds:T.map(I=>I.id),components:Object.fromEntries(Y.map((I,g)=>[I.id,{index:g,data:I}])),pages:Object.fromEntries(T.map(I=>[I.id,I])),config:l.config||{},resources:te,chunks:re,routeIds:M.map(I=>I.id),routes:Object.fromEntries(M.map(I=>[I.id,I])),dataSourceIds:[],dataSources:{}}}finally{o&&s&&E.rmSync(s,{force:!0,recursive:!0})}}async function qe(e,n,{routes:t,mergeMode:s="byUpdateTime",deleteRoutes:o=!1,publishMode:r=void 0}={}){try{r&&ft(r)}catch(m){w.error("clear preload page cache error",{error:m})}const{pages:a,pageIds:i,routeIds:d,routes:c,supportedLocales:p}=e;if(r==="production"){let m=t??[],u=null;for(const l of d??[]){const f=c==null?void 0:c[l];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 b=we.generateParamCombinations({basePath:f.path,params:f.params,routeId:f.id,paramsOptions:f.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]}),_=Object.fromEntries(b.map(T=>[`${l}-${T.paramOptionIds.join("-")}`,T]));u={...u||{},..._},t||(m=[...m,...b.map(T=>`${l}-${T.paramOptionIds.join("-")}`)])}else t||m.push(l)}w.info("routeIds to be published: ",m);for(const l of m){let f=l;if(f.includes("-")){const[T]=f.split("-");f=T}const b=c==null?void 0:c[f];if(!b){const T=n.pageIds.indexOf(f);T!==-1&&o&&(n.pageIds.splice(T,1),delete n.pages[f]);for(const M of n.pageIds)M.includes(`${f}-`)&&(n.pageIds.splice(n.pageIds.indexOf(M),1),delete n.pages[M]);w.info("delete main route page",f);continue}if(l.includes("-")&&!(u!=null&&u[l])){const T=n.pageIds.indexOf(l);T!==-1&&o&&(n.pageIds.splice(T,1),delete n.pages[l]),w.info("delete page",l);continue}if(!b.displayTemplateId){w.info("no display template",l);continue}const _=a[b.displayTemplateId];if(!_){w.info("no template page",l);continue}if(n.pageIds.includes(l)){if(w.info("has need update page",l),s==="replace")n.pages[l]=Re({page:_,route:b,state:e,routeId:l,routePathInfo:u==null?void 0:u[l]}),w.info("replace page",l);else if(s==="byUpdateTime"){const T=n.pages[b.id];(!T||b.updatedAt&&b.updatedAt>T.updatedAt)&&(n.pages[l]=Re({page:_,route:b,state:e,routeId:l,routePathInfo:u==null?void 0:u[l]}),w.info("replace page by update time",l))}}else n.pageIds.push(l),n.pages[l]=Re({page:_,route:b,state:e,routeId:l,routePathInfo:u==null?void 0:u[l]}),w.info("add page",l)}if(o&&!t)for(const l of n.pageIds)m!=null&&m.includes(l)||(delete n.pages[l],w.info("delete page",l)),n.pageIds=[...n.pageIds].filter(f=>m==null?void 0:m.includes(f))}else{for(const m of i){const u=a[m];if(u)if(n.pageIds.includes(u.id)){if(s==="replace")n.pages[u.id]=u;else if(s==="byUpdateTime"){const l=n.pages[u.id];(!l||u.updatedAt&&u.updatedAt>l.updatedAt)&&(n.pages[u.id]=u)}}else n.pageIds.push(u.id),n.pages[u.id]=u}for(const m of d){const u=c[m];if(u)if(n.routeIds.includes(u.id)){if(s==="replace")n.routes[u.id]=u;else if(s==="byUpdateTime"){const l=n.routes[u.id];(!l||u.updatedAt&&u.updatedAt>l.updatedAt)&&(n.routes[u.id]=u)}}else n.routeIds.push(u.id),n.routes[u.id]=u}}if(n.supportedLocales.splice(0,n.supportedLocales.length),n.supportedLocales.push(...fs.default(p)),o)for(const m of Object.keys(n.components))delete n.components[m];let S=JSON.parse(JSON.stringify(e.components));S=Object.fromEntries(await Promise.all(Object.entries(S).map(async([m,u])=>{const l=await Ot(u==null?void 0:u.data);return[m,{...u,data:l}]}))),Object.assign(n.components,S),Object.assign(n.config,JSON.parse(JSON.stringify(e.config))),ct.default(e.resources.components)||(n.resources.components=JSON.parse(JSON.stringify(e.resources.components||{})))}const Ot=Ve(async e=>{var n;if(!ct.default(e==null?void 0:e.properties))return e;if(((n=e==null?void 0:e.renderer)==null?void 0:n.type)==="react-component"){const{script:t}=(e==null?void 0:e.renderer)||{};if(t&&t.includes("PROPERTIES_SCHEMA"))try{const s=await yt(t,"PROPERTIES_SCHEMA",e.id);s&&s.length>0&&e&&(e.properties={},s.forEach((o,r)=>{e!=null&&e.properties&&(e.properties[o.id]={index:r,data:o})}))}catch(s){w.error("checkPropertiesFromCode error",{componentId:e.id,name:e.name},{error:s})}}return e},{keyGenerator:e=>{var c,p,S,m;const n=(e==null?void 0:e.id)||"",t=(e==null?void 0:e.name)||"",s=((c=e==null?void 0:e.renderer)==null?void 0:c.type)||"",o=(e==null?void 0:e.properties)||{},r=(e==null?void 0:e.updatedAt)||"",a=Z.createHash("md5").update(JSON.stringify(o)).digest("hex");let i="",d="";return((p=e==null?void 0:e.renderer)==null?void 0:p.type)==="react-component"&&(i=Z.createHash("md5").update(((S=e==null?void 0:e.renderer)==null?void 0:S.script)||"").digest("hex"),d=Z.createHash("md5").update(((m=e==null?void 0:e.renderer)==null?void 0:m.editComponent)||"").digest("hex")),JSON.stringify(["checkPropertiesFromCode",n,t,s,a,r,i,d])},lruOptions:{max:100,ttl:1e3*60*60},subdir:"checkPropertiesFromCode"});let Ae,oe,Te,Pe,Ye;function At(){return Ae=(async()=>{const e=Be.getResources({types:[{did:Je,type:Ue},{did:qs,type:Ue}]});oe=(await Promise.all(e.map(async t=>{const s=t.path?await Ke(t.path,{importAssets:!1}):void 0;return s?{blockletId:t.did,state:s,blockletTitle:t.title}:void 0}))).filter(t=>!!t),Te=oe.reduce((t,s)=>Object.assign(t,Object.fromEntries(Object.values(s.state.pages).map(o=>o?[o==null?void 0:o.id,{page:o,blockletId:s.blockletId}]:[]))),{});const n=oe.reduce((t,s)=>Object.assign(t,Object.fromEntries(Object.values(s.state.components).map(o=>[o.data.id,{blockletId:s.blockletId,component:o.data}]))),{});Pe=Object.fromEntries(await Promise.all(Object.entries(n).map(async([t,s])=>{const o=await Ot(s.component);return[t,{...s,component:o}]}))),Ye=oe.reduce((t,s)=>Object.assign(t,s.state.chunks),{})})(),Ae}function Ct(e){const n=it.default(async()=>{await At().catch(t=>{w.error("load resource states error",{error:t})}),await(e==null?void 0:e({states:oe,pages:Te,components:Pe,chunks:Ye}))},3e3,{leading:!1,trailing:!0});return n(),O.default.events.on(O.default.Events.componentAdded,n),O.default.events.on(O.default.Events.componentRemoved,n),O.default.events.on(O.default.Events.componentStarted,n),O.default.events.on(O.default.Events.componentStopped,n),O.default.events.on(O.default.Events.componentUpdated,n),O.default.events.on(Fe,n),()=>{O.default.events.off(O.default.Events.componentAdded,n),O.default.events.off(O.default.Events.componentRemoved,n),O.default.events.off(O.default.Events.componentStarted,n),O.default.events.off(O.default.Events.componentStopped,n),O.default.events.off(O.default.Events.componentUpdated,n),O.default.events.off(Fe,n)}}const Tt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),Ee=globalThis;var nt;(nt=Ee[Tt])==null||nt.call(Ee);Ee[Tt]=Ct(async({pages:e,components:n})=>{const{projectIds:t}=z;w.info(`start update resource states projects(${t.length})`,t),await Promise.race([new Promise(s=>{setTimeout(()=>{s({})},30*1e3)}),Promise.all(t.map(async s=>{Pt({projectId:s,pages:e,components:n})}))]).catch(s=>{w.error("update resource states failed:",s)})});z.startPeriodicCheck();process.on("beforeExit",()=>{z.stopPeriodicCheck()});process.on("SIGINT",()=>{z.stopPeriodicCheck(),process.exit(0)});process.on("SIGTERM",()=>{z.stopPeriodicCheck(),process.exit(0)});async function Pt({projectId:e,pages:n,components:t}){const s=z.sharedInstances[e];if(!s){w.info(`projectId: ${e} not found in sharedInstances`);return}s.syncedStore.resources.pages=n;const o=await K.findByPk(e);if(o!=null&&o.useAllResources)s.syncedStore.resources.components=t;else{const a=(await Ce.findAll({where:{projectId:e}})).map(d=>d.componentId),i=Object.fromEntries(Object.entries(t||{}).filter(([d])=>a.includes(d)));s.syncedStore.resources.components=i}w.info(`update [${e}] resource states:`,{pages:Object.keys(s.syncedStore.resources.pages||{}).length,components:Object.keys(s.syncedStore.resources.components||{}).length})}async function en(){w.info("trigger reload all project resource"),O.default.events.emit(Fe)}async function je({ensureLoaded:e=!0}={}){return e&&(Ae??(Ae=At()),await Ae),{states:oe,pages:Te,components:Pe,chunks:Ye}}exports.COMPONENT_DID=Je;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=ut;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=Me;exports.PUBLISH_MODES=Qs;exports.Project=K;exports.RESOURCE_TYPE=Ue;exports.SITE_STATE_PATH=se;exports.STATE_MODES=Ws;exports.SiteState=z;exports.clearPreloadComponentsCache=pt;exports.clearPreloadComponentsCacheByMode=ft;exports.downloadAsset=Et;exports.downloadAssets=wt;exports.fromPackage=Ke;exports.getComponentFromState=pe;exports.getComponentFromStateByName=Us;exports.getExportSchemaValueFromCode=yt;exports.getMultiTenantAllProjectAccessPassports=bs;exports.getPreloadComponent=gt;exports.getPreloadComponents=Ns;exports.getPreloadComponentsCacheKey=mt;exports.getResourceStates=je;exports.initPackResourceStates=Ct;exports.isMultiTenant=ws;exports.logger=w;exports.mergeState=qe;exports.nextId=Se;exports.toPackage=It;exports.triggerReloadAllProjectResource=en;
|
|
57
|
+
`,filename:`${t}.js`,functionName:`get${n}SchemaWrapper`})}catch(o){return E.error(`获取 ${n} 失败`,{componentId:t,error:o}),null}return null},{keyGenerator:(e,n,t)=>{const s=Z.createHash("md5").update(e).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",s,n,t])},lruOptions:{max:100,ttl:1e3*60*60}}),$s="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Ue="page",Fe="trigger-reload-project-resource",Je=$s,qs="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM";function be(e){e.observeDeep(n=>{n.some(t=>t.changes.keys.has("updatedAt")||t.changes.keys.has("publishedAt"))||e.set("updatedAt",new Date().toISOString())})}function St(){return w.mkdtempSync(y.join(O.default.env.dataDir,"tmp-"))}function Ie(e,n,t=[]){return Array.isArray(e)?e.flatMap((s,o)=>Ie(s,n,[...t,o])):typeof e=="object"?e===null?[]:Object.entries(e).flatMap(([s,o])=>Ie(o,n,[...t,s])):n(e)?[t]:[]}function q(e){return e.filter(n=>n!=null)}function Hs(e){e.pages&&Object.keys(e.pages).forEach(t=>{const s=ee.getYjsValue(e.pages[t]);s&&s instanceof V.Map&&be(s)});const n=ee.getYjsValue(e.pages);n&&n instanceof V.Map&&n.observe(t=>{t.changes.keys.forEach((s,o)=>{if(s.action==="add"){const r=ee.getYjsValue(e.pages[o]);r&&r instanceof V.Map&&be(r)}})})}function Bs(e){e.routes&&Object.keys(e.routes).forEach(t=>{var o;const s=ee.getYjsValue((o=e.routes)==null?void 0:o[t]);s&&s instanceof V.Map&&be(s)});const n=ee.getYjsValue(e.routes);n&&n instanceof V.Map&&n.observe(t=>{t.changes.keys.forEach((s,o)=>{var r;if(s.action==="add"){const i=ee.getYjsValue((r=e.routes)==null?void 0:r[o]);i&&i instanceof V.Map&&be(i)}})})}function Gs(e,n){var t;for(const s of n||Object.keys(e.routes||{})){let o=s,r=[];if(s.includes("-")){const[i,...u]=s.split("-");o=i,r=u||[]}if(((t=e.routes)==null?void 0:t[o])!==void 0){e.routes[o].publishedAt=new Date().toISOString();const i=e.routes[o];if(!i||!i.params||i.params.length===0)continue;if(s.includes("-")&&r.length>0){const u=Ee.getRouteMetaDataByOptionIds(r,i);u&&(u.publishedAt=new Date().toISOString())}if(!n){const u=Ee.generateParamCombinations({basePath:i.path,params:i.params,routeId:i.id,paramsOptions:i.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const d of u)d.routeMetaData??(d.routeMetaData={}),d.routeMetaData.publishedAt=new Date().toISOString()}}}}function Re({page:e,route:n,state:t,routeId:s,routePathInfo:o}){var i,u,d,a,p,S,f,l,c;E.info(`Executing datasource data assembly, routeId: ${s}, routePathInfo: ${JSON.stringify(o)}`);const r={...Bt.cloneDeep(e),id:s,slug:(o==null?void 0:o.path)??n.path,createdAt:n.createdAt,updatedAt:((i=o==null?void 0:o.routeMetaData)==null?void 0:i.updatedAt)??n.updatedAt,publishedAt:((u=o==null?void 0:o.routeMetaData)==null?void 0:u.publishedAt)??n.publishedAt,isPublic:(((d=o==null?void 0:o.routeMetaData)==null?void 0:d.isPublic)??n.isPublic)&&n.isPublic};for(const m of t.supportedLocales){if(n.dataSource){let b=n.id;o&&(b=o.paramOptionIds.join("-"));const _=((S=(p=(a=n.dataSource.pathDataMappings)==null?void 0:a[b])==null?void 0:p.dataCache)==null?void 0:S[m.locale])??((c=(l=(f=n.dataSource.pathDataMappings)==null?void 0:f[b])==null?void 0:l.dataCache)==null?void 0:c[t.config.defaultLocale||"en"]);if(!_)continue;Ht.setPageDataSource(r,t,m.locale,_)}o&&o.routeMetaData&&(o.routeMetaData.publishedAt=new Date().toISOString())}return r}const{uploadToMediaKit:Vs}=require("@blocklet/uploader-server"),Se=es.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),ze=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,le=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,et=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,Js=1e4,zs=3e4,ge=0,xe=1,Ks=0,Ys=1,$e=O.default,se=y.join(process.env.BLOCKLET_DATA_DIR,"site-state"),Ws=["production","draft"],Qs=["production"];function Oe(e){return(e==null?void 0:e.replace(/\//g,"|"))||""}function Xs(){var t;const e=$e.env.languages.map(s=>({locale:s.code,name:s.name})),n=(t=e[0])==null?void 0:t.locale;return{pageIds:[],pages:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{},components:{},supportedLocales:e,config:{defaultLocale:n},resources:{}}}const j=class j extends V.Doc{constructor(t){super();k(this,"syncedStore");k(this,"conns",new Map);k(this,"awareness");k(this,"releaseTimer");k(this,"awarenessChangeHandler",({added:t,updated:s,removed:o},r)=>{const i=t.concat(s,o);if(r!==null){const a=this.conns.get(r);a&&(t.forEach(p=>{a.add(p)}),o.forEach(p=>{a.delete(p)}))}const u=x.createEncoder();x.writeVarUint(u,xe),x.writeVarUint8Array(u,ie.encodeAwarenessUpdate(this.awareness,i));const d=x.toUint8Array(u);this.conns.forEach((a,p)=>this.send(p,d))});k(this,"updateHandler",t=>{const s=x.createEncoder();x.writeVarUint(s,ge),ve.writeUpdate(s,t);const o=x.toUint8Array(s);this.conns.forEach((r,i)=>this.send(i,o))});k(this,"ensureDataStructure",()=>{var d;const{supportedLocales:t,pages:s,pageIds:o,config:r,routes:i,routeIds:u}=this.syncedStore;{const a=new Set(Object.keys(s));let p=0;for(;p<o.length;){const S=o[p];a.has(S)?(a.delete(S),p++):o.splice(p,1)}}{const a=new Set(Object.keys(i));let p=0;for(;p<u.length;){const S=u[p];a.has(S)?(a.delete(S),p++):u.splice(p,1)}}t.splice(0,t.length),t.push(...$e.env.languages.map(a=>({locale:a.code,name:a.name}))),r.defaultLocale=(d=t[0])==null?void 0:d.locale;{let a=0;const p=new Set;for(;a<t.length;){const{locale:S}=t[a];p.has(S)?t.splice(a,1):(a++,p.add(S))}}});k(this,"send",(t,s)=>{t.readyState!==Ks&&t.readyState!==Ys&&this.closeConn(t);try{t.send(s,o=>{o&&this.closeConn(t)})}catch{this.closeConn(t)}});k(this,"closeConn",t=>{if(t.removeAllListeners(),this.conns.has(t)){const s=this.conns.get(t);this.conns.delete(t),s&&ie.removeAwarenessStates(this.awareness,Array.from(s),null)}t.close(),this.checkAndScheduleRelease()});k(this,"autoSave",it.default(()=>{w.mkdirSync(y.dirname(this.draftYjsFilePath),{recursive:!0}),w.writeFileSync(this.draftYjsFilePath,V.encodeStateAsUpdate(this))},Js));k(this,"save",({flush:t=!1}={})=>{this.autoSave(),t&&this.autoSave.flush()});k(this,"publish",async({mode:t,routes:s})=>{const o=await this.getState("draft"),r=await this.getState("production");await qe(o,r,{routes:s,mergeMode:"replace",deleteRoutes:!0,publishMode:t}),r.config.publishedAt=new Date().getTime(),Gs(this.syncedStore,s),await this.setState(t,r)});k(this,"mergeState",async(t,s)=>{var u,d,a;const o=JSON.parse(JSON.stringify(s));(u=t.config).fontFamily??(u.fontFamily={});const r=(d=o.config)==null?void 0:d.fontFamily,i=(a=t.config)==null?void 0:a.fontFamily;t.config.fontFamily.title=(r==null?void 0:r.title)||(i==null?void 0:i.title),t.config.fontFamily.description=(r==null?void 0:r.description)||(i==null?void 0:i.description),await new Promise((p,S)=>{this.transact(async()=>{try{const f=await qe(t,s);p(f)}catch(f){S(f)}})})});k(this,"addConnection",t=>{if(this.conns.has(t))return;this.cancelRelease(),t.binaryType="arraybuffer",this.conns.set(t,new Set),t.on("message",r=>this.messageListener(t,new Uint8Array(r)));let s=!0;const o=setInterval(()=>{if(!s)this.conns.has(t)&&this.closeConn(t),clearInterval(o);else if(this.conns.has(t)){s=!1;try{t.ping()}catch{this.closeConn(t),clearInterval(o)}}},zs);t.on("close",()=>{this.closeConn(t),clearInterval(o)}),t.on("pong",()=>{s=!0});{const r=x.createEncoder();x.writeVarUint(r,ge),ve.writeSyncStep1(r,this),this.send(t,x.toUint8Array(r));const i=this.awareness.getStates();if(i.size>0){const u=x.createEncoder();x.writeVarUint(u,xe),x.writeVarUint8Array(u,ie.encodeAwarenessUpdate(this.awareness,Array.from(i.keys()))),this.send(t,x.toUint8Array(u))}}});k(this,"messageListener",(t,s)=>{try{const o=x.createEncoder(),r=ke.createDecoder(s),i=ke.readVarUint(r);switch(i){case ge:x.writeVarUint(o,ge),ve.readSyncMessage(r,o,this,null),x.length(o)>1&&(this.ensureDataStructure(),this.send(t,x.toUint8Array(o)));break;case xe:{ie.applyAwarenessUpdate(this.awareness,ke.readVarUint8Array(r),t);break}default:E.warn(`Unsupported messageType ${i}`)}}catch(o){E.error(o)}this.save()});this.options=t,w.existsSync(this.draftYjsFilePath)&&V.applyUpdate(this,w.readFileSync(this.draftYjsFilePath)),this.syncedStore=Gt.reactive(ee.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{},routeIds:[],routes:{},dataSourceIds:[],dataSources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new ie.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(t){if(!t)throw new Error("Should provide project context");try{const s=y.join(se,t),o=y.join(se,`@del-${t}`);w.renameSync(s,o)}catch(s){E.error("Failed to safe delete project state dir:",s)}}static get projectIds(){return Ne.globSync("*/",{cwd:se,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(t=>j.shared(t))}static shared(t){if(!t)throw new Error("Should provide project context");let s=j.sharedInstances[t];return s||(s=new j({path:y.join(se,t)}),j.sharedInstances[t]=s,Pt({projectId:t,pages:Te,components:Pe}),s)}static async getProductionState(t){var o,r;let s=j.productionStates.get(t);if(!s){const i=y.join(se,t,"production");if(s=await Ke(i,{includeResources:!0})??Xs(),!((o=s==null?void 0:s.config)!=null&&o.defaultLocale)){s.config??(s.config={});const u=$e.env.languages.map(d=>({locale:d.code,name:d.name}));s.config.defaultLocale=(r=u[0])==null?void 0:r.locale}j.productionStates.set(t,s)}return{...s,resources:await je().then(async i=>{var S,f;const{pages:u,components:d}=ms.default(i,"pages","components");let a=d;const p=await K.findByPk(t);if(p!=null&&p.useAllResources)a=d;else{const c=(await Ce.findAll({where:{projectId:t}})).map(b=>b.componentId);a=Object.fromEntries(Object.entries(d||{}).filter(([b])=>c.includes(b)))}return Object.keys(((S=s==null?void 0:s.resources)==null?void 0:S.components)||{}).length>0&&(a={...a,...(f=s==null?void 0:s.resources)==null?void 0:f.components}),{pages:u,components:a}}).catch(()=>({}))}}destroy(){this.cancelRelease(),this.save({flush:!0}),this.conns.forEach((s,o)=>this.closeConn(o)),this.awareness.destroy();const t=y.basename(this.options.path);delete j.sharedInstances[t],super.destroy()}initObserver(){Hs(this.syncedStore),Bs(this.syncedStore)}get draftYjsFilePath(){return y.join(this.options.path,"draft.yjs")}static async getStateByProjectId(t,s){if(s==="draft"){const o=j.shared(t);return JSON.parse(JSON.stringify(o.syncedStore))}return j.getProductionState(t)}async getState(t){if(t==="draft")return JSON.parse(JSON.stringify(this.syncedStore));const s=y.basename(this.options.path);return j.getProductionState(s)}async setState(t,s){const o=await It(s,{exportAssets:!1,includeResources:!0}),r=this.getPublishDir(t);if(w.mkdirSync(y.dirname(r),{recursive:!0}),w.rmSync(r,{force:!0,recursive:!0}),w.renameSync(o,r),t==="production"){const i=y.basename(this.options.path);j.productionStates.set(i,s)}}getPublishDir(t){return y.join(this.options.path,t)}checkAndScheduleRelease(){this.conns.size===0&&this.scheduleRelease()}scheduleRelease(){this.cancelRelease();const t=y.basename(this.options.path);this.releaseTimer=setTimeout(()=>{E.info(`[SiteState] releasing instance due to no active connections: ${t}`),this.conns.size===0&&(this.releaseTimer=void 0,this.destroy())},j.RELEASE_DELAY),E.info(`[SiteState] scheduled release for project ${t} in ${j.RELEASE_DELAY/1e3}s`)}cancelRelease(){if(this.releaseTimer){clearTimeout(this.releaseTimer),this.releaseTimer=void 0;const t=y.basename(this.options.path);E.info(`[SiteState] cancelled scheduled release for project ${t}`)}}static async pageUrlMap(t,s){var i,u;let{projectIds:o}=this;s&&(o=[s]);const r={};for(const d of o){const a=await K.findByPk(d);if(!a)continue;const p=await j.getStateByProjectId(d,t),S=a.slug||d,f=gs.default(O.default.env.languages.map(c=>c.code),p.supportedLocales.map(c=>c.locale)),l=(c,m)=>{S&&(r[$.joinURL("/",S,c)]={...m,shouldRedirect:!0,mainPage:!0}),r[$.joinURL("/",d,c)]={...m,shouldRedirect:!0,mainPage:!0};for(const b of f){const _={...m,locale:b};r[$.joinURL("/",b,d,c)]=_,S&&(r[$.joinURL("/",b,S,c)]=_)}};if(t==="draft")for(const c of p.routeIds||[]){const m=(i=p==null?void 0:p.routes)==null?void 0:i[c];if(!m)continue;if(m.params&&m.params.length>0){const T=Ee.generateParamCombinations({basePath:m.path,params:m.params,routeId:m.id,paramsOptions:m.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]});for(const M of T){const Y=M.path,te={projectId:d,projectSlug:S,pageSlug:Y,pageId:m.displayTemplateId||"",routeId:c,defaultLocale:f==null?void 0:f[0],locales:f,publishedAt:p.config.publishedAt,isPublic:m.isPublic&&((u=M==null?void 0:M.routeMetaData)==null?void 0:u.isPublic)};l(Y,te)}}const b=m.path,_={projectId:d,projectSlug:S,pageSlug:b,pageId:m.displayTemplateId||"",routeId:c,defaultLocale:f==null?void 0:f[0],locales:f,publishedAt:p.config.publishedAt,isPublic:m.isPublic};l(b,_)}for(const c of p.pageIds){const m=p.pages[c];if(!m||t==="production"&&!m.isPublic)continue;const b=m.slug,_=a.slug||d,T={projectId:d,projectSlug:_,pageSlug:b,pageId:c,defaultLocale:f==null?void 0:f[0],locales:f,publishedAt:p.config.publishedAt,isPublic:m.isPublic,templateConfig:m.templateConfig};l(b,T)}}return r}getDocumentSize(){return V.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const t=[];for(const[s,o]of Object.entries(j.sharedInstances)){const r=o.getDocumentSize();t.push({projectId:s,sizeInBytes:r,sizeInMB:`${(r/(1024*1024)).toFixed(2)} MB`,activeConnections:o.conns.size})}return t}static startPeriodicCheck(){this.periodicCheckTimer||(this.periodicCheckTimer=setInterval(()=>{this.performPeriodicCheck()},this.PERIODIC_CHECK_INTERVAL),E.info(`[SiteState] periodic check started, interval: ${this.PERIODIC_CHECK_INTERVAL/(60*60*1e3)} hours`))}static stopPeriodicCheck(){this.periodicCheckTimer&&(clearInterval(this.periodicCheckTimer),this.periodicCheckTimer=void 0,E.info("[SiteState] periodic check stopped"))}static performPeriodicCheck(){const t=Object.keys(j.sharedInstances).length,s=[],o=[];for(const[r,i]of Object.entries(j.sharedInstances))i.conns.size===0?s.push({projectId:r,instance:i}):o.push({projectId:r,connections:i.conns.size});if(E.info(`[SiteState] periodic check summary: total instances: ${t}, with connections: ${o.length}, without connections: ${s.length}`),s.length>0){E.info(`[SiteState] releasing ${s.length} instances without connections:`,s.map(i=>i.projectId));let r=0;for(const{projectId:i,instance:u}of s)try{E.info(`[SiteState] releasing instance due to periodic check: ${i}`),u.destroy(),r++}catch(d){E.error(`[SiteState] failed to release instance ${i} during periodic check:`,d)}E.info(`[SiteState] periodic check completed: ${r}/${s.length} instances released successfully`)}else t>0?E.debug("[SiteState] periodic check: all instances have active connections"):E.debug("[SiteState] periodic check: no instances exist")}};k(j,"PRODUCTION_CACHE_TTL",7*24*60*60*1e3),k(j,"RELEASE_DELAY",5*60*1e3),k(j,"PERIODIC_CHECK_INTERVAL",2*60*60*1e3),k(j,"sharedInstances",{}),k(j,"productionStates",new He.LRUCache({max:100,ttl:j.PRODUCTION_CACHE_TTL})),k(j,"periodicCheckTimer");let z=j;async function Zs(e,n,t){if(!e||!w.existsSync(e)||!w.lstatSync(e).isFile())return null;let s=t[e];return s||(s=(async()=>{var o;try{const r=(o=await Vs({filePath:e,fileName:n}))==null?void 0:o.data;return r==null?void 0:r.filename}catch(r){return E.error(`Failed to upload asset ${e}:`,r),null}})(),t[e]=s),s}const wt=async(e,n)=>{const t=y.basename(e),s=await Be.call({name:Je,path:$.joinURL("/uploads",t),responseType:"stream",method:"GET"});if(s.status>=200&&s.status<400){const o=w.createWriteStream(n);await ss.pipeline(s.data,o)}else throw new Error(`download asset failed ${s.status}`)},Et=async(e,n)=>{await Promise.all(e.map(async t=>{try{await wt(t,y.join(n,y.basename(t)))}catch(s){E.error(`Failed to export assets: ${t}, ${s}`)}}))};function bt(e){return ze.test(e)?[e]:le.test(e)?(et.lastIndex=0,Array.from(e.matchAll(et)).map(t=>t[1]).filter(t=>!!t)):[]}async function he(e,n,t){const{getFilename:s,exportAssets:o}=t,r=y.join(n,s(e));if(w.mkdirSync(y.dirname(r),{recursive:!0}),w.writeFileSync(r,ne.stringify(e)),o){const u=Ie(e,d=>typeof d=="string"&&(ze.test(d)||le.test(d))).map(d=>{const a=Ge.default(e,d);return bt(a)}).flat().filter(Boolean);await Et(u,y.dirname(r))}}const tt=new He.LRUCache({max:20,ttl:30*24*60*60*1e3});async function st(e,n,t){var u;const s=Ie(e,d=>typeof d=="string"&&(ze.test(d)||le.test(d))),o=hs.default(2),r=s.map(d=>o(async()=>{try{const a=Ge.default(e,d),p=bt(a);for(const S of p){const f=y.basename(S),l=t.getFilePath(S,d),c=l?`${l}:${f}`:f,m=tt.get(c);if(m){le.test(a)||Qe.default(e,d,m);return}const b=await Zs(l,f,n);b&&(le.test(a)||Qe.default(e,d,b),tt.set(c,b))}}catch(a){E.error(`Failed to process upload for path ${d.join(".")}:`,a.message||a.reason)}})),i=await Promise.allSettled(r);(u=t.onFinish)==null||u.call(t,i)}async function It(e,{exportAssets:n,pageIds:t="all",componentIds:s="all",rawConfig:o,includeResources:r=!1,routeIds:i="all"}={}){var re,I,g,C,D,W,A,L,H,Q,J,ae;const u=t==="all"?e.pageIds:t,d=de.getComponentDependencies({state:e,pageIds:u,componentIds:s==="all"?Object.keys(e.components):s}),a=i==="all"?e.routeIds:i,p=h=>({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,sections:h.sections,sectionIds:h.sectionIds}),S=(h,P)=>{var R;return{id:h.id,createdAt:h.createdAt,updatedAt:h.updatedAt,publishedAt:h.publishedAt,isPublic:h.isPublic??!0,templateConfig:h.templateConfig,meta:((R=h.locales)==null?void 0:R[P])??{},sections:q(h.sectionIds.map(B=>{const U=h.sections[B];return U&&p(U)})),dataSource:Object.fromEntries(Object.entries(h.dataSource||{}).map(([B,U])=>[B,(U==null?void 0:U[P])??{}]))}},f=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}),l=q(a.map(h=>{const P=e.routes[h];return P&&f(P)})),c=q(e.supportedLocales.map(h=>h.locale).flatMap(h=>u.map(P=>{const R=e.pages[P];return R&&{locale:h,slug:R.slug,page:S(R,h)}}))),m=St(),b=y.join(m,"pages");w.mkdirSync(b,{recursive:!0});const _=y.join(m,"components");w.mkdirSync(_,{recursive:!0});const T=y.join(m,"routes");w.mkdirSync(T,{recursive:!0});for(const{locale:h,slug:P,page:R}of c)await he(R,b,{getFilename:()=>`${Oe(P)||"index"}.${h}.yml`,exportAssets:n});for(const h of l)await he(h,T,{getFilename:()=>`${Oe(h.path)||"index"}.yml`,exportAssets:n});for(const h of d){const P=(re=e.components[h])==null?void 0:re.data;P&&await he(P,_,{getFilename:R=>`${R.name||"unnamed"}.${R.id}.yml`,exportAssets:n})}const M=y.join(m,".blocklet/pages/pages.config.yml");w.mkdirSync(y.dirname(M),{recursive:!0});const Y={pages:q(u.map(h=>{const P=e.pages[h];return P&&{id:h,slug:P.slug}})),routes:q(a.map(h=>{const P=e.routes[h];return P&&{id:h,path:P.path}})),components:q(d.map(h=>{var R;const P=(R=e.components[h])==null?void 0:R.data;return P&&{id:h,name:P.name}})),...r?{resources:{components:q(Object.keys(((I=e.resources)==null?void 0:I.components)||{}).filter(h=>d.includes(h)).map(h=>{var P,R,B,U;return{id:h,name:(U=(B=(R=(P=e.resources)==null?void 0:P.components)==null?void 0:R[h])==null?void 0:B.component)==null?void 0:U.name}}))}}:{},supportedLocales:e.supportedLocales,config:e.config};w.writeFileSync(M,ne.stringify(Y));const te=y.join(m,"config.source.json");if(o&&w.writeFileSync(te,JSON.stringify(o)),r){const h=y.join(m,"resources"),P=y.join(h,"components");w.mkdirSync(P,{recursive:!0});for(const U of Object.keys(((g=e==null?void 0:e.resources)==null?void 0:g.components)??{}).filter(G=>d.includes(G))){const G=(W=(D=(C=e.resources)==null?void 0:C.components)==null?void 0:D[U])==null?void 0:W.component;G&&await he(G,P,{getFilename:X=>`${X.name||"unnamed"}.${X.id}.yml`,exportAssets:n})}const R=y.join(m,"chunks");w.mkdirSync(R,{recursive:!0});const{chunks:B}=await je();for(const U of Object.keys(((A=e==null?void 0:e.resources)==null?void 0:A.components)??{}).filter(G=>d.includes(G))){const G=(Q=(H=(L=e.resources)==null?void 0:L.components)==null?void 0:H[U])==null?void 0:Q.component;if(G&&((J=G.renderer)==null?void 0:J.type)==="react-component"){const X=((ae=G.renderer)==null?void 0:ae.chunks)??[];if((X==null?void 0:X.length)>0)for(const De of X){const We=y.join(R,De),_e=B==null?void 0:B[De];try{_e&&w.existsSync(_e)&&!w.existsSync(We)&&w.copyFileSync(_e,We)}catch(jt){E.error(`copy chunk ${De} error`,jt.message)}}}}}return m}async function Ke(e,{importAssets:n,includeResources:t}={}){var r,i,u,d;if(!w.existsSync(e))return null;let s,o=!1;try{w.lstatSync(e).isDirectory()?s=e:/\.(tgz|gz|tar)$/.test(e)&&(o=!0,s=St(),await ns.x({file:e,C:s}));const a=Ne.globSync("**/.blocklet/pages/pages.config.yml",{cwd:s,absolute:!0}).at(0),p=a&&y.join(y.dirname(a),"../../pages"),S=a&&y.join(y.dirname(a),"../../components"),f=a&&y.join(y.dirname(a),"../../chunks"),l=a&&y.join(y.dirname(a),"../../routes");if(!a)return null;const c=ne.parse(w.readFileSync(a).toString()),m=(I,g,C)=>{let D=y.join(I,`${g}${C?`.${C}`:""}.yml`);return(!w.existsSync(D)||!w.lstatSync(D).isFile())&&(D=y.join(I,g,`index${C?`.${C}`:""}.yml`),!w.existsSync(D)||!w.lstatSync(D))?null:ne.parse(w.readFileSync(D).toString())},b=(I,g)=>{try{const C=Ne.globSync(`*.${g}.yml`,{cwd:I,absolute:!0})[0];return C?ne.parse(w.readFileSync(C).toString()):null}catch(C){E.error("parse component error",C)}return null},_=(I,g)=>{let C=y.join(I,`${g}.yml`);return(!w.existsSync(C)||!w.lstatSync(C).isFile())&&(C=y.join(I,g,"index.yml"),!w.existsSync(C)||!w.lstatSync(C))?null:ne.parse(w.readFileSync(C).toString())},T=q(c.pages.map(({slug:I})=>{var W;const g=q(c.supportedLocales.map(({locale:A})=>{const L=p?m(p,Oe(I),A):void 0;if(L)return{locale:A,page:L};const H=p?m(p,I,A):void 0;return H&&{locale:A,page:H}})),C=(W=g[0])==null?void 0:W.page;if(!C)return null;const D=C.sections.map(A=>({id:A.id||Se(),component:A.component,config:A.config,name:A.name,isTemplateSection:A.isTemplateSection??!1,templateDescription:A.templateDescription,llmConfig:A.llmConfig,visibility:A.visibility,sections:A.sections,sectionIds:A.sectionIds}));return{id:C.id||Se(),createdAt:C.createdAt,updatedAt:C.updatedAt,publishedAt:C.publishedAt,isPublic:C.isPublic??!0,templateConfig:C.templateConfig,slug:I,sections:Object.fromEntries(D.map(A=>[A.id,A])),sectionIds:D.map(A=>A.id),locales:Object.fromEntries(g.map(({locale:A,page:L})=>[A,L.meta])),dataSource:C.dataSource?Object.fromEntries([...new Set(g.flatMap(({page:A})=>Object.keys(A.dataSource??{})))].map(A=>[A,Object.fromEntries(g.map(({locale:L,page:H})=>{var J;const Q=(J=H.dataSource)==null?void 0:J[A];return[L,Q||{}]}))])):Object.fromEntries([...new Set(g.flatMap(({page:A})=>A.sections.map(L=>L.id)))].map(A=>[A,Object.fromEntries(g.map(({locale:L,page:H})=>{var ae;const Q=(ae=H.dataSource)==null?void 0:ae[A];if(Q)return[L,Q];const J=H.sections.find(h=>h.id===A);return[L,(J==null?void 0:J.properties)||{}]}))]))}})),M=q(((r=c==null?void 0:c.routes)==null?void 0:r.map(({path:I})=>{const g=l?_(l,Oe(I)):void 0;return{...g,id:(g==null?void 0:g.id)||Se(),createdAt:(g==null?void 0:g.createdAt)??new Date().toISOString(),updatedAt:(g==null?void 0:g.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(g==null?void 0:g.path)??`/${g==null?void 0:g.id}`,params:g==null?void 0:g.params,handler:(g==null?void 0:g.handler)??"Pages Kit",isPublic:(g==null?void 0:g.isPublic)??!0,enabledGenerate:(g==null?void 0:g.enabledGenerate)??!1,displayTemplateId:(g==null?void 0:g.displayTemplateId)??void 0,dataSource:(g==null?void 0:g.dataSource)??{}}}))??[]),Y=S?q(((i=c.components)==null?void 0:i.map(({id:I})=>b(S,I)))??[]):[];if(n){const I=(...g)=>{E.info(`[${o?y.basename(e):y.basename(y.join(e,"../../../../"))}] importAssets:`,...g)};try{I("wait image-bin api ready"),await ys.default({resources:[`${Be.getComponentWebEndpoint(Ss)}/api/sdk/uploads`],validateStatus:D=>D>=200&&D<=500}),I("image-bin api is ready");const g={},C={};I("start to upload assets"),await Promise.allSettled([st(Y,g,{getFilePath:D=>S&&y.join(S,D),onFinish:D=>{I(`upload ${D.length} component assets`)}}),st(T,C,{getFilePath:(D,W)=>{const A=Ge.default(T,W.slice(0,1));return p&&y.join(p,y.dirname(A.slug),D)},onFinish:D=>{I(`upload ${D.length} page assets`)}})]),I("upload assets done"),global.gc&&global.gc()}catch(g){I("Error during asset import:",g)}}const te={};if(t){const I=a&&y.join(y.dirname(a),"../../resources/components"),g=q(((d=(u=c.resources)==null?void 0:u.components)==null?void 0:d.map(({id:C})=>b(I,C)))??[]);g.length>0&&(te.components=Object.fromEntries(g.map((C,D)=>[C.id,{index:D,component:C}])))}const re={};if(f&&w.existsSync(f)){const I=w.readdirSync(f);for(const g of I)re[g]=y.join(f,g)}return{supportedLocales:c.supportedLocales,pageIds:T.map(I=>I.id),components:Object.fromEntries(Y.map((I,g)=>[I.id,{index:g,data:I}])),pages:Object.fromEntries(T.map(I=>[I.id,I])),config:c.config||{},resources:te,chunks:re,routeIds:M.map(I=>I.id),routes:Object.fromEntries(M.map(I=>[I.id,I])),dataSourceIds:[],dataSources:{}}}finally{o&&s&&w.rmSync(s,{force:!0,recursive:!0})}}async function qe(e,n,{routes:t,mergeMode:s="byUpdateTime",deleteRoutes:o=!1,publishMode:r=void 0}={}){try{r&&ft(r)}catch(f){E.error("clear preload page cache error",{error:f})}const{pages:i,pageIds:u,routeIds:d,routes:a,supportedLocales:p}=e;if(r==="production"){let f=t??[],l=null;for(const c of d??[]){const m=a==null?void 0:a[c];if(m!=null&&m.params&&(m==null?void 0:m.params.length)>0&&(m!=null&&m.paramsOptions)&&(m==null?void 0:m.paramsOptions.length)>0){const b=Ee.generateParamCombinations({basePath:m.path,params:m.params,routeId:m.id,paramsOptions:m.paramsOptions,currentIndex:0,currentParams:[],currentOptionIds:[],result:[]}),_=Object.fromEntries(b.map(T=>[`${c}-${T.paramOptionIds.join("-")}`,T]));l={...l||{},..._},t||(f=[...f,...b.map(T=>`${c}-${T.paramOptionIds.join("-")}`)])}else t||f.push(c)}E.info("routeIds to be published: ",f);for(const c of f){let m=c;if(m.includes("-")){const[T]=m.split("-");m=T}const b=a==null?void 0:a[m];if(!b){const T=n.pageIds.indexOf(m);T!==-1&&o&&(n.pageIds.splice(T,1),delete n.pages[m]);for(const M of n.pageIds)M.includes(`${m}-`)&&(n.pageIds.splice(n.pageIds.indexOf(M),1),delete n.pages[M]);E.info("delete main route page",m);continue}if(c.includes("-")&&!(l!=null&&l[c])){const T=n.pageIds.indexOf(c);T!==-1&&o&&(n.pageIds.splice(T,1),delete n.pages[c]),E.info("delete page",c);continue}if(!b.displayTemplateId){E.info("no display template",c);continue}const _=i[b.displayTemplateId];if(!_){E.info("no template page",c);continue}if(n.pageIds.includes(c)){if(E.info("has need update page",c),s==="replace")n.pages[c]=Re({page:_,route:b,state:e,routeId:c,routePathInfo:l==null?void 0:l[c]}),E.info("replace page",c);else if(s==="byUpdateTime"){const T=n.pages[b.id];(!T||b.updatedAt&&b.updatedAt>T.updatedAt)&&(n.pages[c]=Re({page:_,route:b,state:e,routeId:c,routePathInfo:l==null?void 0:l[c]}),E.info("replace page by update time",c))}}else n.pageIds.push(c),n.pages[c]=Re({page:_,route:b,state:e,routeId:c,routePathInfo:l==null?void 0:l[c]}),E.info("add page",c)}if(o&&!t)for(const c of n.pageIds)f!=null&&f.includes(c)||(delete n.pages[c],E.info("delete page",c)),n.pageIds=[...n.pageIds].filter(m=>f==null?void 0:f.includes(m))}else{for(const f of u){const l=i[f];if(l)if(n.pageIds.includes(l.id)){if(s==="replace")n.pages[l.id]=l;else if(s==="byUpdateTime"){const c=n.pages[l.id];(!c||l.updatedAt&&l.updatedAt>c.updatedAt)&&(n.pages[l.id]=l)}}else n.pageIds.push(l.id),n.pages[l.id]=l}for(const f of d){const l=a[f];if(l)if(n.routeIds.includes(l.id)){if(s==="replace")n.routes[l.id]=l;else if(s==="byUpdateTime"){const c=n.routes[l.id];(!c||l.updatedAt&&l.updatedAt>c.updatedAt)&&(n.routes[l.id]=l)}}else n.routeIds.push(l.id),n.routes[l.id]=l}}if(n.supportedLocales.splice(0,n.supportedLocales.length),n.supportedLocales.push(...fs.default(p)),o)for(const f of Object.keys(n.components))delete n.components[f];let S=JSON.parse(JSON.stringify(e.components));S=Object.fromEntries(await Promise.all(Object.entries(S).map(async([f,l])=>{const c=await Ot(l==null?void 0:l.data);return[f,{...l,data:c}]}))),Object.assign(n.components,S),Object.assign(n.config,JSON.parse(JSON.stringify(e.config))),ct.default(e.resources.components)||(n.resources.components=JSON.parse(JSON.stringify(e.resources.components||{})))}const Ot=Ve(async e=>{var n;if(!ct.default(e==null?void 0:e.properties))return e;if(((n=e==null?void 0:e.renderer)==null?void 0:n.type)==="react-component"){const{script:t}=(e==null?void 0:e.renderer)||{};if(t&&t.includes("PROPERTIES_SCHEMA"))try{const s=await yt(t,"PROPERTIES_SCHEMA",e.id);s&&s.length>0&&e&&(e.properties={},s.forEach((o,r)=>{e!=null&&e.properties&&(e.properties[o.id]={index:r,data:o})}))}catch(s){E.error("checkPropertiesFromCode error",{componentId:e.id,name:e.name},{error:s})}}return e},{keyGenerator:e=>{var a,p,S,f;const n=(e==null?void 0:e.id)||"",t=(e==null?void 0:e.name)||"",s=((a=e==null?void 0:e.renderer)==null?void 0:a.type)||"",o=(e==null?void 0:e.properties)||{},r=(e==null?void 0:e.updatedAt)||"",i=Z.createHash("md5").update(JSON.stringify(o)).digest("hex");let u="",d="";return((p=e==null?void 0:e.renderer)==null?void 0:p.type)==="react-component"&&(u=Z.createHash("md5").update(((S=e==null?void 0:e.renderer)==null?void 0:S.script)||"").digest("hex"),d=Z.createHash("md5").update(((f=e==null?void 0:e.renderer)==null?void 0:f.editComponent)||"").digest("hex")),JSON.stringify(["checkPropertiesFromCode",n,t,s,i,r,u,d])},lruOptions:{max:100,ttl:1e3*60*60},subdir:"checkPropertiesFromCode"});let Ae,oe,Te,Pe,Ye;function At(){return Ae=(async()=>{const e=Be.getResources({types:[{did:Je,type:Ue},{did:qs,type:Ue}]});oe=(await Promise.all(e.map(async t=>{const s=t.path?await Ke(t.path,{importAssets:!1}):void 0;return s?{blockletId:t.did,state:s,blockletTitle:t.title}:void 0}))).filter(t=>!!t),Te=oe.reduce((t,s)=>Object.assign(t,Object.fromEntries(Object.values(s.state.pages).map(o=>o?[o==null?void 0:o.id,{page:o,blockletId:s.blockletId}]:[]))),{});const n=oe.reduce((t,s)=>Object.assign(t,Object.fromEntries(Object.values(s.state.components).map(o=>[o.data.id,{blockletId:s.blockletId,component:o.data}]))),{});Pe=Object.fromEntries(await Promise.all(Object.entries(n).map(async([t,s])=>{const o=await Ot(s.component);return[t,{...s,component:o}]}))),Ye=oe.reduce((t,s)=>Object.assign(t,s.state.chunks),{})})(),Ae}function Ct(e){const n=it.default(async()=>{await At().catch(t=>{E.error("load resource states error",{error:t})}),await(e==null?void 0:e({states:oe,pages:Te,components:Pe,chunks:Ye}))},3e3,{leading:!1,trailing:!0});return n(),O.default.events.on(O.default.Events.componentAdded,n),O.default.events.on(O.default.Events.componentRemoved,n),O.default.events.on(O.default.Events.componentStarted,n),O.default.events.on(O.default.Events.componentStopped,n),O.default.events.on(O.default.Events.componentUpdated,n),O.default.events.on(Fe,n),()=>{O.default.events.off(O.default.Events.componentAdded,n),O.default.events.off(O.default.Events.componentRemoved,n),O.default.events.off(O.default.Events.componentStarted,n),O.default.events.off(O.default.Events.componentStopped,n),O.default.events.off(O.default.Events.componentUpdated,n),O.default.events.off(Fe,n)}}const Tt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),we=globalThis;var nt;(nt=we[Tt])==null||nt.call(we);we[Tt]=Ct(async({pages:e,components:n})=>{const{projectIds:t}=z;E.info(`start update resource states projects(${t.length})`,t),await Promise.race([new Promise(s=>{setTimeout(()=>{s({})},30*1e3)}),Promise.all(t.map(async s=>{Pt({projectId:s,pages:e,components:n})}))]).catch(s=>{E.error("update resource states failed:",s)})});z.startPeriodicCheck();process.on("beforeExit",()=>{z.stopPeriodicCheck()});process.on("SIGINT",()=>{z.stopPeriodicCheck(),process.exit(0)});process.on("SIGTERM",()=>{z.stopPeriodicCheck(),process.exit(0)});async function Pt({projectId:e,pages:n,components:t}){const s=z.sharedInstances[e];if(!s){E.info(`projectId: ${e} not found in sharedInstances`);return}s.syncedStore.resources.pages=n;const o=await K.findByPk(e);if(o!=null&&o.useAllResources)s.syncedStore.resources.components=t;else{const i=(await Ce.findAll({where:{projectId:e}})).map(d=>d.componentId),u=Object.fromEntries(Object.entries(t||{}).filter(([d])=>i.includes(d)));s.syncedStore.resources.components=u}E.info(`update [${e}] resource states:`,{pages:Object.keys(s.syncedStore.resources.pages||{}).length,components:Object.keys(s.syncedStore.resources.components||{}).length})}async function en(){E.info("trigger reload all project resource"),O.default.events.emit(Fe)}async function je({ensureLoaded:e=!0}={}){return e&&(Ae??(Ae=At()),await Ae),{states:oe,pages:Te,components:Pe,chunks:Ye}}exports.COMPONENT_DID=Je;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=ut;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=Me;exports.PUBLISH_MODES=Qs;exports.Project=K;exports.RESOURCE_TYPE=Ue;exports.SITE_STATE_PATH=se;exports.STATE_MODES=Ws;exports.SiteState=z;exports.clearPreloadComponentsCache=pt;exports.clearPreloadComponentsCacheByMode=ft;exports.downloadAsset=wt;exports.downloadAssets=Et;exports.fromPackage=Ke;exports.getComponentFromState=pe;exports.getComponentFromStateByName=Us;exports.getExportSchemaValueFromCode=yt;exports.getMultiTenantAllProjectAccessPassports=bs;exports.getPreloadComponent=gt;exports.getPreloadComponents=Ns;exports.getPreloadComponentsCacheKey=mt;exports.getResourceStates=je;exports.initPackResourceStates=Ct;exports.isMultiTenant=Es;exports.logger=E;exports.mergeState=qe;exports.nextId=Se;exports.toPackage=It;exports.triggerReloadAllProjectResource=en;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";const D=require("react/jsx-runtime"),U=require("@mui/material"),R=require("ufo"),Z=require("@blocklet/js-sdk"),ee=require("lodash/isEmpty"),te=require("yaml"),oe=require("@arcblock/ux/lib/Locale/context"),J=require("@blocklet/pages-kit-core"),F=require("@syncedstore/core"),ne=require("@syncedstore/react"),re=require("ahooks"),x=require("immer"),ce=require("lodash/cloneDeep"),se=require("lodash/debounce"),ie=require("nanoid"),m=require("react"),W=require("react-router-dom"),ae=require("y-indexeddb"),de=require("y-websocket"),le=require("yjs");require("@blocklet/pages-kit/types");const A=o=>o&&o.__esModule?o:{default:o};function ue(o){if(o&&o.__esModule)return o;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(o){for(const l in o)if(l!=="default"){const P=Object.getOwnPropertyDescriptor(o,l);Object.defineProperty(n,l,P.get?P:{enumerable:!0,get:()=>o[l]})}}return n.default=o,Object.freeze(n)}const fe=A(ee),me=ue(te),Se=A(F),pe=A(ce),V=A(se),ge=o=>{const n=blocklet==null?void 0:blocklet.componentMountPoints.find(l=>l.name===o);return n?n.mountPoint:"/"};function K(){const{pathname:o}=window.location,n=o.match(/\/admin\/(maker|previewer)\/([^/]+)/),l=n==null?void 0:n[2],P=window.__PROJECT_ID__;if(!l&&!P)throw new Error("Unable to get projectId from pathname");return l||P}function Pe(o){return`${o}:pages:version`}function we(o,n){return n==="yaml"?fe.default(o)?"":me.stringify(o,{indent:2}):n==="json"?JSON.parse(JSON.stringify(o||{})):n==="array"?JSON.parse(JSON.stringify(o||[])):o}function Ie({error:o}){return D.jsx(U.Box,{children:D.jsx(U.Alert,{severity:"error",children:o.message})})}var G;const q=((G=window.blocklet)==null?void 0:G.prefix)||"/",T=Z.createAxios({timeout:200*1e3}),ye=window.location.protocol==="https:"?"wss":"ws",he=o=>R.joinURL(`${ye}://${window.location.hostname}`,q,`api/${o}/ws/pages`),Ce="z8ia1mAXo8ZE7ytGF36L5uBf9kD2kenhqFGp9";var B;(B=blocklet==null?void 0:blocklet.componentMountPoints.find(o=>o.did===Ce))!=null&&B.mountPoint||R.joinURL(q,"/image-bin");function je(o){return o&&!/^(https?:\/\/|\/)/.test(o)?window.location.origin+R.joinURL(q,"uploads",o):o}const ve=window.innerWidth<=750;function be(o,n,l){if(!o||/\.gif/.test(o))return o;const P=(ve?n/1.5:n)*(l==="quality"?1.5:1);return Oe(o,{imageFilter:"resize",w:P,f:"webp"})}function Oe(o,n){return!o||!n?o:R.withQuery(o,n)}async function Ee(o){return T.get(`/api/projects/${o}`).then(n=>n.data)}async function Le(o){return T.post(`/api/projects/${o.id}/update`,o).then(n=>n.data)}const Me=500,k=ie.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),N=m.createContext(null);function _e({url:o,name:n,children:l,waitingSynced:P}){const[L,O]=m.useState(!1),{locale:p}=oe.useLocaleContext(),j=$(),_=`${j}:MakerLocalState`,e=`${j}:${n}`,[t,s]=re.useLocalStorageState(_,{defaultValue:{},listenStorageChange:!0}),c=m.useRef(t);c.current=t;const i=m.useMemo(()=>Se.default({dataSourceIds:[],dataSources:{},pages:{},pageIds:[],routes:{},routeIds:[],components:{},supportedLocales:[],config:{},resources:{}}),[]),r=m.useMemo(()=>F.getYjsDoc(i),[i]);m.useMemo(()=>new ae.IndexeddbPersistence(e,r),[e,r]);const a=m.useMemo(()=>new de.WebsocketProvider(o,e,r,{params:{},resyncInterval:5*60*1e3}),[o,e,r]),d=m.useCallback(()=>{a&&(a.disconnect(),a.connect())},[a]),u=m.useMemo(()=>new le.UndoManager([r.getArray("pageIds"),r.getMap("pages"),r.getArray("supportedLocales"),r.getMap("config"),r.getMap("dataSources"),r.getArray("dataSourceIds"),r.getArray("routeIds"),r.getMap("routes")],{doc:r}),[r]),[f,S]=m.useState(null),[M,I]=m.useState(!1),[y,v]=m.useState(void 0),g=m.useCallback(async()=>{if(j){I(!0);try{const w=await Ee(j);S(w)}catch(w){console.error("Failed to fetch project:",w)}finally{I(!1)}}},[j]),b=m.useCallback(async(w,h)=>{var E;if(v(void 0),!!j){h!=null&&h.optimisticUpdate&&f&&S(C=>({...C,...w}));try{const C=await Le({...w});S(C)}catch(C){console.error("Failed to update project:",C),h!=null&&h.optimisticUpdate&&S(f),v((E=C==null?void 0:C.response)==null?void 0:E.data)}}},[j,f]);m.useEffect(()=>{j&&g()},[j,g]);const H=m.useMemo(()=>({doc:r,state:i,localState:{...t,currentLocale:p},setLocalState:w=>s(typeof w=="function"?h=>w(h??{}):w),undoManager:u,projectState:{project:f,isLoadingProject:M,error:y},updateProject:b,forceSync:d}),[r,i,JSON.stringify(t),s,u,f,M,b,y,p,d]);return m.useEffect(()=>{u.on("stack-item-added",({stackItem:w})=>{const{currentPageId:h,currentLocale:E,pages:C}=c.current;w.meta.set("localState",{currentPageId:h,currentLocale:E,pages:C})}),u.on("stack-item-popped",({stackItem:w})=>{const h=w.meta.get("localState");h&&s(E=>({...E,...h}))})},[u,s]),m.useEffect(()=>{a.awareness.setLocalState(t)},[a,t]),m.useEffect(()=>{a.once("synced",()=>O(!0));const w=()=>{s(C=>({...C,networkStatus:void 0}))},h=()=>{s(C=>({...C,networkStatus:"offline"}))},E=V.default(({status:C})=>{C==="connected"?w():C==="disconnected"&&h()},Me);return a.on("status",E),window.addEventListener("online",w),window.addEventListener("offline",h),()=>{a.off("status",E),window.removeEventListener("online",w),window.removeEventListener("offline",h)}},[a,s]),P&&!L?null:D.jsx(N.Provider,{value:H,children:l})}const z=()=>{const o=m.useContext(N);if(!o)throw new Error("Context is null");const n=ne.useSyncedStore(o.state),{setLocalState:l,localState:P}=o,L=W.useNavigate(),O=$(),p=m.useMemo(()=>({get currentPage(){const{localState:{currentPageId:e}}=o;return e?n.pages[e]:void 0},get currentSection(){var c,i,r,a,d;const{localState:{currentPageId:e,...t}}=o;if(!e)return;const s=(i=(c=t.pages)==null?void 0:c[e])==null?void 0:i.currentSectionId;if(s)return((r=n.pages[e])==null?void 0:r.sections[s])??((d=(a=this.currentPageModel)==null?void 0:a.getComponentById(s))==null?void 0:d.model)},get currentSectionProperties(){var r,a,d,u;const{localState:{currentPageId:e,...t}}=o;if(!e)return;const s=(a=(r=t.pages)==null?void 0:r[e])==null?void 0:a.currentSectionId;if(!s)return;const c=(u=(d=n.pages[e])==null?void 0:d.dataSource)==null?void 0:u[s];if(!c)return;const{currentLocale:i}=this.currentLocaleMap;return i?c[i]:void 0},get currentSectionPropertiesWithFallback(){var d,u,f,S;const{localState:{currentPageId:e,...t}}=o;if(!e)return;const s=(u=(d=t.pages)==null?void 0:d[e])==null?void 0:u.currentSectionId;if(!s)return;const c=(S=(f=n.pages[e])==null?void 0:f.dataSource)==null?void 0:S[s];if(!c)return;const{currentLocale:i,defaultLocale:r,fallbackLocale:a}=this.currentLocaleMap;if(i&&c[i])return c[i];if(r&&c[r])return c[r];if(a&&c[a])return c[a]},get currentLocaleMap(){var c;const{localState:{currentLocale:e},state:{supportedLocales:t,config:{defaultLocale:s}}}=o;return{currentLocale:e,defaultLocale:s,fallbackLocale:((c=t==null?void 0:t[0])==null?void 0:c.locale)??"en"}},get currentRoute(){var t;const{localState:{currentRouteId:e}}=o;return e?(t=n.routes)==null?void 0:t[e]:void 0},get currentPageModel(){const e=this.currentPage??null;if(e){const t=new J.TemplateModel({childrenProperties:J.PAGES_KIT_CHILDREN_PROPERTIES,locale:P.currentLocale});return t.parse(e),t}}}),[JSON.stringify(P),n]),j=m.useMemo(()=>({setCurrentSectionId:(e,t)=>{var s,c;e===P.currentPageId&&t===((c=(s=P.pages)==null?void 0:s[e])==null?void 0:c.currentSectionId)||(L(R.joinURL("/admin/maker",O??"","pages",e)),l(i=>x.produce(i,r=>{var a;r.currentPageId=e,r.currentComponentId=void 0,r.customComponentPreviewerProperties={},t!==void 0&&(r.pages??(r.pages={}),(a=r.pages)[e]??(a[e]={}),r.pages[e].currentSectionId=t??void 0),t?window.sessionStorage.setItem("iframe_show_id",`"${t}"`):window.sessionStorage.removeItem("iframe_show_id")})))},setCurrentComponentId:e=>{e!==P.currentComponentId&&(L(R.joinURL("/admin/maker",O??"","components",e)),l(t=>x.produce(t,s=>{s.currentComponentId=e,s.customComponentPreviewerProperties={}})))},setCurrentRouteId:({routeId:e,dynamicParams:t})=>{l(s=>x.produce(s,c=>{c.currentRouteId=e,c.currentDynamicParams=t}))},setCustomComponentPreviewerProperties:(()=>{const e={},t=V.default(()=>{l(s=>x.produce(s,c=>{c.customComponentPreviewerProperties={...c==null?void 0:c.customComponentPreviewerProperties,...e},Object.keys(e).forEach(i=>delete e[i])}))},5);return s=>{Object.assign(e,s),t()}})(),setRouteGenerateProcess:e=>{l(t=>x.produce(t,s=>{e?s.routeGenerateProcess={...s.routeGenerateProcess,...e}:s.routeGenerateProcess={}}))},resetRouteGenerateProcess:()=>{l(e=>x.produce(e,t=>{t.routeGenerateProcess={progress:"complete"}}))}}),[l,L,O,p]),_=m.useMemo(()=>({addPage:(e,t)=>{var i,r,a,d,u,f;const s=(e==null?void 0:e.id)??k(),c={...e,id:s,createdAt:(e==null?void 0:e.createdAt)??new Date().toISOString(),updatedAt:(e==null?void 0:e.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),slug:(e==null?void 0:e.slug)??`/${s}`,sections:(e==null?void 0:e.sections)??{},sectionIds:(e==null?void 0:e.sectionIds)??[],isPublic:(e==null?void 0:e.isPublic)??!0,templateConfig:(e==null?void 0:e.templateConfig)??{isTemplate:((i=e==null?void 0:e.templateConfig)==null?void 0:i.isTemplate)??!0,displayTemplateId:((r=e==null?void 0:e.templateConfig)==null?void 0:r.displayTemplateId)??void 0,dataSourceIds:((a=e==null?void 0:e.templateConfig)==null?void 0:a.dataSourceIds)??void 0,dataSourceParameters:((d=e==null?void 0:e.templateConfig)==null?void 0:d.dataSourceParameters)??{},enabledGenerate:((u=e==null?void 0:e.templateConfig)==null?void 0:u.enabledGenerate)??!1,agentId:((f=e==null?void 0:e.templateConfig)==null?void 0:f.agentId)??void 0}};return o.doc.transact(()=>{n.pages[c.id]=c,n.pageIds.splice(t??n.pageIds.length,0,c.id)}),c},addRoute:(e,t)=>{const s=(e==null?void 0:e.id)??k(),c={...e,id:s,createdAt:(e==null?void 0:e.createdAt)??new Date().toISOString(),updatedAt:(e==null?void 0:e.updatedAt)??new Date().toISOString(),publishedAt:new Date(0).toISOString(),path:(e==null?void 0:e.path)??`/${s}`,handler:(e==null?void 0:e.handler)??"Pages Kit",isPublic:(e==null?void 0:e.isPublic)??!0,params:(e==null?void 0:e.params)??[],enabledGenerate:(e==null?void 0:e.enabledGenerate)??!1,displayTemplateId:(e==null?void 0:e.displayTemplateId)??void 0,dataSource:(e==null?void 0:e.dataSource)??{}};return o.doc.transact(()=>{n.routes??(n.routes={}),n.routeIds??(n.routeIds=[]),n.routes[c.id]=c,n.routeIds.splice(t??n.routeIds.length,0,c.id)}),c},deleteRoute:e=>{var s;if(!e)return;const t=(s=n.routeIds)==null?void 0:s.indexOf(e);t!==void 0&&t!==-1&&o.doc.transact(()=>{var c,i;(c=n.routeIds)==null||c.splice(t,1),(i=n.routes)==null||delete i[e]})},deletePage:e=>{const t=n.pageIds.indexOf(e);t!==-1&&o.doc.transact(()=>{n.pageIds.splice(t,1),delete n.pages[e]})},movePage:(e,t)=>{const{pageIds:s}=n,c=s.indexOf(e);c>=0&&s.splice(t,0,...s.splice(c,1))},addSection:(e,t,s,c)=>{const i=n.pages[e];if(!i)throw new Error(`Page ${e} is not exists`);const r={...t,id:t.id??k(),isTemplateSection:t.isTemplateSection??!0,llmConfig:t.llmConfig??{}},a=pe.default(r.locales);return delete r.locales,o.doc.transact(()=>{var d,u,f;if(c&&c.component==="layout-block"){const S=(d=p.currentPageModel)==null?void 0:d.getComponentById(c.id);S&&((u=S.model).sections??(u.sections={}),S.model.sections[r.id]=r,(f=S.model).sectionIds??(f.sectionIds=[]),S.model.sectionIds.push(r.id))}else i.sections[r.id]=r,i.sectionIds.splice(s??i.sectionIds.length,0,r.id);a&&(i.dataSource??(i.dataSource={}),i.dataSource[r.id]=a)}),r},deleteSection:(e,t)=>{const s=n.pages[e];if(!s)throw new Error(`Page ${e} is not exists`);o.doc.transact(()=>{var a,d,u,f,S,M;const c=[],i=(a=p.currentPageModel)==null?void 0:a.getComponentById(t),r=i==null?void 0:i.parent;if(i&&(c.push(i.model.id,...i.all().map(I=>I.model.id)),(r==null?void 0:r.model.component)==="layout-block")){const I=(d=r.model.sectionIds)==null?void 0:d.indexOf(t);I!==void 0&&I!==-1&&((u=r.model.sectionIds)==null||u.splice(I,1),(f=r.model.sections)==null||delete f[t]),(S=r.model.config)!=null&&S.gridSettings&&Object.keys(r.model.config.gridSettings).forEach(y=>{var v;try{(v=r.model.config.gridSettings[y])==null||delete v[t]}catch{}}),((M=r.model.config)==null?void 0:M.backgroundSectionId)===t&&(r.model.config.backgroundSectionId=void 0)}c.forEach(I=>{var v,g;const y=s.sectionIds.indexOf(I);y!==-1&&s.sectionIds.splice(y,1),s.sections[I]&&delete s.sections[I],(v=s.dataSource)!=null&&v[I]&&((g=s.dataSource)==null||delete g[I])})})},lockSection:(e,t)=>{var i,r;if(!n.pages[e])throw new Error(`Page ${e} is not exists`);const c=(r=(i=p.currentPageModel)==null?void 0:i.getComponentById(t))==null?void 0:r.model;c&&(c.locked=!c.locked)},toggleSectionVisibility:(e,t,s)=>{var r,a;if(!n.pages[e])throw new Error(`Page ${e} is not exists`);const i=(a=(r=p.currentPageModel)==null?void 0:r.getComponentById(t))==null?void 0:a.model;i&&(i.visibility=s)},moveSection:(e,t,s,c)=>{var r,a,d,u,f,S,M,I;if(!n.pages[e])throw new Error(`Page ${e} is not exists`);if(c&&c!==t){const y=(r=p.currentPageModel)==null?void 0:r.getComponentById(t),v=(a=p.currentPageModel)==null?void 0:a.getComponentById(c),g=y==null?void 0:y.parent,b=v==null?void 0:v.parent;b&&g&&((d=b==null?void 0:b.model)==null?void 0:d.id)===((u=g==null?void 0:g.model)==null?void 0:u.id)?o.doc.transact(()=>{g.model.sectionIds.splice(y.getIndex(),1),g.model.sectionIds.splice(v.getIndex(),0,t)}):b&&g&&((f=b==null?void 0:b.model)==null?void 0:f.id)!==((S=g==null?void 0:g.model)==null?void 0:S.id)&&t!==c&&!((I=(M=y==null?void 0:y.model)==null?void 0:M.sectionIds)!=null&&I.includes(c))&&o.doc.transact(()=>{b.model.sections[t]=JSON.parse(JSON.stringify(y.model)),b.model.sectionIds.splice(v.getIndex(),0,t),g.model.sectionIds.splice(y.getIndex(),1),delete g.model.sections[t]})}},copySection:(e,t)=>{var u,f,S;if(!n.pages[e])throw new Error(`Page ${e} is not exists`);const c=(u=p.currentPageModel)==null?void 0:u.getComponentById(t);if(!(c!=null&&c.model))throw new Error(`Section ${t} is not exists`);const i=JSON.parse(JSON.stringify(c.model)),r=Re(i),a=r.id,d=c==null?void 0:c.parent;return d&&(d.model.sections[a]=r,d.model.sectionIds.push(a),j.setCurrentSectionId(e,a),(S=(f=p.currentPage)==null?void 0:f.dataSource)!=null&&S[t]&&(p.currentPage.dataSource[a]=JSON.parse(JSON.stringify(p.currentPage.dataSource[t])))),r},addDataSource:e=>{const t=e.id??k(),s={...e??{},id:t,createdAt:new Date().toISOString()};return o.doc.transact(()=>{n.dataSourceIds??(n.dataSourceIds=[]),n.dataSources??(n.dataSources={}),n.dataSourceIds.push(t),n.dataSources[t]=s}),n.dataSources[t]},deleteDataSource:e=>{const t=n.dataSourceIds.indexOf(e);t!==-1&&o.doc.transact(()=>{n.dataSourceIds.splice(t,1),delete n.dataSources[e]})}}),[n,o.doc,p]);return{...o,state:n,actions:_,localActions:j,...p}},$=()=>{const{projectId:o}=W.useParams();return o??K()??""},xe=()=>window.__PROJECT_SLUG__??"";function Q(o){var P,L;const{resources:n}=o;if(!n.components)return{};const l={};return(L=(P=window==null?void 0:window.blocklet)==null?void 0:P.componentMountPoints)==null||L.forEach(O=>{l[O.did]=O}),Object.fromEntries(Object.entries(n.components).map(([O,{blockletId:p,component:j}])=>{var _;return[O,{data:j,blockletId:p,blockletTitle:((_=l[p])==null?void 0:_.title)||p}]}))}function X(o){const{components:n}=o;return n||{}}function Y(o){return{...Q(o),...X(o)}}const ke=()=>Y(z().state);function Re(o){const n=JSON.parse(JSON.stringify(o)),l=k();return{...n,id:l}}exports.ErrorView=Ie;exports.StoreProvider=_e;exports.api=T;exports.autoResizeImage=be;exports.getAllComponents=Y;exports.getCustomComponents=X;exports.getImageAbsoluteUrl=je;exports.getMountPoint=ge;exports.getProjectIdFromPathnameOrWindow=K;exports.getProjectPageVersionKey=Pe;exports.getResourceComponents=Q;exports.getWssURL=he;exports.nextId=k;exports.transformValue=we;exports.useAllComponents=ke;exports.useProjectId=$;exports.useProjectSlug=xe;exports.useStore=z;
|
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-D00xEf4T.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-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("react/jsx-runtime");require("./chunks/state-DoGBMTzI.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-DxhrK2d5.js");const e=require("./chunks/home-0fezWT4S.js");require("./chunks/session-BA7Qrcia.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;
|