@blocklet/pages-kit-inner-components 0.6.100 → 0.6.101

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.
@@ -1,11 +1,11 @@
1
- "use strict";const W=require("@arcblock/did-connect-storage-nedb"),E=require("@blocklet/sdk/lib/config"),B=require("@blocklet/sdk/lib/wallet"),D=require("@blocklet/sdk/lib/wallet-authenticator"),U=require("@blocklet/sdk/lib/wallet-handler"),H=require("@blocklet/sdk/service/auth"),C=require("path"),S=require("./chunks/components-DLLpFRy5.js"),I=require("./chunks/html-xfTPTsl5.js"),K=require("@arcblock/crawler-middleware"),N=require("@blocklet/pages-kit/types"),R=require("@blocklet/pages-kit/utils/common"),T=require("@blocklet/pages-kit/utils/preload"),F=require("@blocklet/sdk/lib/component"),O=require("express"),P=require("fs"),J=require("lodash/get"),z=require("mustache"),A=require("ufo"),l=n=>n&&n.__esModule?n:{default:n},G=l(W),s=l(E),Y=l(B),Q=l(D),V=l(U),X=l(H),Z=l(C),ee=l(J),te=l(z),ne=(n={})=>{const e={data:new Map,timers:new Map,set:(t,u,p=n.ttl||36e5)=>{n.max&&e.data.size>=n.max&&e.delete(e.data.keys().next().value),e.timers.has(t)&&clearTimeout(e.timers.get(t)),e.timers.set(t,setTimeout(()=>e.delete(t),p)),e.data.set(t,u)},get:t=>e.data.get(t),has:t=>e.data.has(t),delete:t=>(e.timers.has(t)&&clearTimeout(e.timers.get(t)),e.timers.delete(t),e.data.delete(t)),clear:()=>{e.data.clear();for(const t of e.timers.values())clearTimeout(t);e.timers.clear()}};return e},q=ne({max:1,ttl:1e3*30});Y.default();const oe=new Q.default;new V.default({authenticator:oe,tokenStorage:new G.default({dbPath:Z.default.join(s.default.env.dataDir,"auth.db")})});const se=new X.default,ae=async()=>{try{const n=q.get("blockletInfo");if(n)return n;const{blocklet:e}=await se.getBlocklet();return q.set("blockletInfo",e),e}catch{return null}},ce=["/assets/"];function le({app:n,viteDevServer:e,state:t}){let u;if(e){const o=P.readFileSync(C.resolve(process.cwd(),"./index.html"),"utf-8");n.use(async(g,k,b)=>{const d=g.originalUrl;u=await e.transformIndexHtml(d,o),b()})}else u=P.readFileSync(C.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const p=O.Router();p.use((o,g,k)=>{if(o.headers["x-unique-record"]==="dial_http"){S.logger.info("[html] dial http request, return 200 status code"),g.status(200).send("ok");return}k()}),s.default.env.preferences.snapkitEnabled&&s.default.env.preferences.snapkitEndpoint&&s.default.env.SNAP_KIT_ACCESS_KEY&&p.use(K.createSnapshotMiddleware({endpoint:s.default.env.preferences.snapkitEndpoint,accessKey:s.default.env.SNAP_KIT_ACCESS_KEY,cacheMax:s.default.env.preferences.snapkitCacheSize||100})),p.get("/:path(*)?",async(o,g,k)=>{if(ce.some(a=>o.path?.startsWith(a))){k();return}const b="production";let d,v,_=u;if(o.path.startsWith("/pages")){const a=o.params.lang,y=o.cookies.nf_lang,w=new Set([...s.default.env.languages.map(h=>h.code)]);let f=(a&&w.has(a)?a:void 0)||(w.has(y)?y:void 0)||[...w][0];if((!f||!t.supportedLocales?.find(h=>h.locale===f))&&(f=t.supportedLocales?.[0]?.locale||""),f){const h=[];Object.values(t.pages).forEach(c=>{const L=Object.values(c?.sections??{}).filter(i=>i.component==="custom-component"&&i.config?.componentId).map(i=>({id:i.id,componentId:i.config.componentId,useCache:i.config.useCache,cacheDuration:i.config.cacheDuration,properties:c?.dataSource?.[i.id]?.[f]}));h.push(...L)});const x=new Promise(c=>{setTimeout(()=>{c({})},30*1e3)});try{await Promise.race([x,S.getPreloadComponents({mode:b,req:o,state:t,locale:f,instances:h,module:N.PreloadComponentScriptModule.UMD_FN}).then(c=>{c&&(v=T.injectPreloadComponents(c))})])}catch(c){S.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements",c)}}}try{const a=d?.title||s.default.env.appName,y=d?.description||s.default.env.appDescription,w=A.withQuery(A.joinURL(s.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:a,description:y});_=te.default.render(u,{ogTitle:a,ogDescription:y,ogImage:re(d?.image)||w,pagesPublishedAt:t?.config.publishedAt||new Date().getTime()})}catch{}const m=t?.config.fontFamily,M=o.query.mode==="draft"||o.url.includes("preview")||o.path?.startsWith("/admin");let r=d?.backgroundColor;if(r&&R.isMuiColorKey(r)){const a=await ae();r=ee.default(a,`settings.theme.light.palette.${r}`,r)}const j=E.getBlockletJs(),$=[{selector:{cheerio:"#injected-head-elements",pattern:/<script[^>]*id=["']injected-head-elements["'][^>]*><\/script>/gis},value:`
2
- ${r?`<meta name="theme-color" content="${r}" /><style>html,body,#app {background-color: ${r};}</style>`:""}
3
- ${m?.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${m.title}&display=swap">`:""}
4
- ${m?.description&&m?.description!==m?.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${m.description}&display=swap">`:""}
1
+ "use strict";const B=require("@arcblock/did-connect-storage-nedb"),E=require("@blocklet/sdk/lib/config"),D=require("@blocklet/sdk/lib/wallet"),U=require("@blocklet/sdk/lib/wallet-authenticator"),H=require("@blocklet/sdk/lib/wallet-handler"),K=require("@blocklet/sdk/service/auth"),C=require("path"),v=require("./chunks/components-DLLpFRy5.js"),T=require("./chunks/html-xfTPTsl5.js"),W=require("@arcblock/crawler-middleware"),N=require("@blocklet/pages-kit/types"),R=require("@blocklet/pages-kit/utils/common"),A=require("@blocklet/pages-kit/utils/preload"),F=require("@blocklet/sdk/lib/component"),O=require("express"),P=require("fs"),J=require("lodash/get"),z=require("mustache"),j=require("ufo"),y=n=>n&&n.__esModule?n:{default:n},G=y(B),s=y(E),Y=y(C),Q=y(J),V=y(z),X=(n={})=>{const e={data:new Map,timers:new Map,set:(t,d,u=n.ttl||36e5)=>{n.max&&e.data.size>=n.max&&e.delete(e.data.keys().next().value),e.timers.has(t)&&clearTimeout(e.timers.get(t)),e.timers.set(t,setTimeout(()=>e.delete(t),u)),e.data.set(t,d)},get:t=>e.data.get(t),has:t=>e.data.has(t),delete:t=>(e.timers.has(t)&&clearTimeout(e.timers.get(t)),e.timers.delete(t),e.data.delete(t)),clear:()=>{e.data.clear();for(const t of e.timers.values())clearTimeout(t);e.timers.clear()}};return e},q=X({max:1,ttl:1e3*30});D.getWallet();const Z=new U.WalletAuthenticator;new H.WalletHandlers({authenticator:Z,tokenStorage:new G.default({dbPath:Y.default.join(s.default.env.dataDir,"auth.db")})});const ee=new K.BlockletService,te=async()=>{try{const n=q.get("blockletInfo");if(n)return n;const{blocklet:e}=await ee.getBlocklet();return q.set("blockletInfo",e),e}catch{return null}},ne=["/assets/"];function oe({app:n,viteDevServer:e,state:t}){let d;if(e){const o=P.readFileSync(C.resolve(process.cwd(),"./index.html"),"utf-8");n.use(async(f,k,S)=>{const i=f.originalUrl;d=await e.transformIndexHtml(i,o),S()})}else d=P.readFileSync(C.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const u=O.Router();u.use((o,f,k)=>{if(o.headers["x-unique-record"]==="dial_http"){v.logger.info("[html] dial http request, return 200 status code"),f.status(200).send("ok");return}k()}),s.default.env.preferences.snapkitEnabled&&s.default.env.preferences.snapkitEndpoint&&s.default.env.SNAP_KIT_ACCESS_KEY&&u.use(W.createSnapshotMiddleware({endpoint:s.default.env.preferences.snapkitEndpoint,accessKey:s.default.env.SNAP_KIT_ACCESS_KEY,cacheMax:s.default.env.preferences.snapkitCacheSize||100})),u.get("/:path(*)?",async(o,f,k)=>{if(ne.some(c=>o.path?.startsWith(c))){k();return}const S="production";let i,b,g=d;if(o.path.startsWith("/pages")){const c=o.params.lang,_=o.cookies.nf_lang,w=new Set([...s.default.env.languages.map(h=>h.code)]);let m=(c&&w.has(c)?c:void 0)||(w.has(_)?_:void 0)||[...w][0];if((!m||!t.supportedLocales?.find(h=>h.locale===m))&&(m=t.supportedLocales?.[0]?.locale||""),m){const h=[];Object.values(t.pages).forEach(a=>{const L=Object.values(a?.sections??{}).filter(r=>r.component==="custom-component"&&r.config?.componentId).map(r=>({id:r.id,componentId:r.config.componentId,useCache:r.config.useCache,cacheDuration:r.config.cacheDuration,properties:a?.dataSource?.[r.id]?.[m]}));h.push(...L)});const x=new Promise(a=>{setTimeout(()=>{a({})},30*1e3)});try{await Promise.race([x,v.getPreloadComponents({mode:S,req:o,state:t,locale:m,instances:h,module:N.PreloadComponentScriptModule.UMD_FN}).then(a=>{a&&(b=A.injectPreloadComponents(a))})])}catch(a){v.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements",a)}}}try{const c=i?.title||s.default.env.appName,_=i?.description||s.default.env.appDescription,w=j.withQuery(j.joinURL(s.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:c,description:_});g=V.default.render(d,{ogTitle:c,ogDescription:_,ogImage:se(i?.image)||w,pagesPublishedAt:t?.config.publishedAt||new Date().getTime()})}catch{}const p=t?.config.fontFamily,M=o.query.mode==="draft"||o.url.includes("preview")||o.path?.startsWith("/admin");let l=i?.backgroundColor;if(l&&R.isMuiColorKey(l)){const c=await te();l=Q.default(c,`settings.theme.light.palette.${l}`,l)}const I=E.getBlockletJs(),$=[{selector:{cheerio:"#injected-head-elements",pattern:/<script[^>]*id=["']injected-head-elements["'][^>]*><\/script>/gis},value:`
2
+ ${l?`<meta name="theme-color" content="${l}" /><style>html,body,#app {background-color: ${l};}</style>`:""}
3
+ ${p?.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${p.title}&display=swap">`:""}
4
+ ${p?.description&&p?.description!==p?.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${p.description}&display=swap">`:""}
5
5
 
6
6
 
7
7
  <script>
8
- window.__PAGE_STATE__ = ${T.safeJSONStringify(t||null)};
8
+ window.__PAGE_STATE__ = ${A.safeJSONStringify(t||null)};
9
9
  <\/script>
10
10
 
11
11
 
@@ -24,4 +24,4 @@
24
24
  darkMode: "class",
25
25
  };
26
26
  <\/script>`:""}
27
- `},j&&{selector:{cheerio:'script[src="__blocklet__.js"]',pattern:/<script[^>]*src=["']__blocklet__\.js["'][^>]*><\/script>/gis},value:`<script>${j}<\/script>`},v?.html&&{selector:{cheerio:"#injected-html-elements",pattern:/<script[^>]*id=["']injected-html-elements["'][^>]*><\/script>/gis},value:v.html},o.cachedHtml&&{selector:{cheerio:"body",pattern:/(<body[^>]*>).*?(<\/body>)/gis},value:`<body>${I.extractBodyContent(o.cachedHtml)}</body>`}].filter(Boolean);_=await I.injectToHtml(_,$),g.send(_),S.logger.info(`[html] render: ${o.path}`),_=null,d=null,v=null}),n.use(p)}function re(n){const e=F.getComponentMountPoint("image-bin");return e&&n&&!/^(https?:\/\/|\/)/.test(n)?s.default.env.appUrl+A.joinURL(e,"uploads",n):n}module.exports=le;
27
+ `},I&&{selector:{cheerio:'script[src="__blocklet__.js"]',pattern:/<script[^>]*src=["']__blocklet__\.js["'][^>]*><\/script>/gis},value:`<script>${I}<\/script>`},b?.html&&{selector:{cheerio:"#injected-html-elements",pattern:/<script[^>]*id=["']injected-html-elements["'][^>]*><\/script>/gis},value:b.html},o.cachedHtml&&{selector:{cheerio:"body",pattern:/(<body[^>]*>).*?(<\/body>)/gis},value:`<body>${T.extractBodyContent(o.cachedHtml)}</body>`}].filter(Boolean);g=await T.injectToHtml(g,$),f.send(g),v.logger.info(`[html] render: ${o.path}`),g=null,i=null,b=null}),n.use(u)}function se(n){const e=F.getComponentMountPoint("image-bin");return e&&n&&!/^(https?:\/\/|\/)/.test(n)?s.default.env.appUrl+j.joinURL(e,"uploads",n):n}module.exports=oe;
@@ -1 +1 @@
1
- "use strict";const g=require("./chunks/components-DLLpFRy5.js"),c=require("./chunks/site-state-uZR_uvZu.js"),F=require("express"),L=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),B=require("path"),G=require("@blocklet/sdk/lib/middlewares/auth"),K=require("@blocklet/sdk/lib/component"),m=e=>e&&e.__esModule?e:{default:e},u=m(L),f=m(J),C=m(X),Y=m(W),D=m(B),k=m(G),$=async(e,t,o)=>{try{const{projectId:s}=e.params;if(!s)return o();const n=await c.Project.findByPk(s);if(!n)return t?.status(404).json({error:"Project not found"});const r=e.user?.did,a=e.user?.role||"UNKNOWN_ROLE";if(!r)return t?.status(401).json({error:"Authentication required"});if(g.isMultiTenant()){const P=n.createdBy===r,y=g.getMultiTenantAllProjectAccessPassports()?.includes?.(a);if(!P&&!y)return t?.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(a))return t?.status(403).json({error:"No permission to access this project in single-tenant mode"});e.project=n,e.projectId=s,o()}catch(s){g.logger.error("Project middleware error:",s),t?.status(400).json({error:"Internal server error"})}};function b(e,t){return new Promise((o,s)=>{const n=u.default.createReadStream(e),r=u.default.createWriteStream(t);n.on("error",s),r.on("error",s),r.on("finish",o),n.pipe(r)})}async function N(e,t){await u.default.promises.mkdir(t,{recursive:!0});const o=await u.default.promises.readdir(e,{withFileTypes:!0});for(const s of o){const n=D.default.join(e,s.name),r=D.default.join(t,s.name);s.isDirectory()?await N(n,r):await b(n,r)}}async function z(e,t){(await u.default.promises.stat(e)).isDirectory()?await N(e,t):await b(e,t)}const h=(e,t,o)=>g.isMultiTenant()?k.default()(e,t,o):k.default({roles:["owner","admin","pagesEditor"]})(e,t,o),H=(e,t)=>{const o=K.getResourceExportDir({projectId:e,releaseId:t});return B.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},w=F.Router(),T="@page",U="@component",j=":",R="ALL",q="@project",v=({pageId:e,projectId:t})=>[T,t,e].join(j),Q=e=>{const[t,o,s]=e.split(j);if(t===T)return{pageId:s,projectId:o}},x=({componentId:e,projectId:t})=>[U,t,e].join(j),V=e=>{const[t,o,s]=e.split(j);if(t===U)return{componentId:s,projectId:o}},Z=e=>[q,e].join(j),ee=e=>{const[t,o]=e.split(j);if(t===q)return o},te=e=>{try{return JSON.parse(e)}catch{}return{}};async function A(e){const t=await c.SiteState.getStateByProjectId(e,"production"),o=await c.Project.findByPk(e),s=t.pageIds.map(r=>{const a=t.pages[r];if(a)return{id:v({pageId:r,projectId:e}),name:a.slug}}).filter(Boolean),n=Y.default(Object.values(t.components),r=>r.index).map(({data:r})=>({id:x({componentId:r.id,projectId:e}),name:r.name||r.id}));return{id:Z(e),name:o?.name||"Unnamed Project",children:[{id:v({pageId:R,projectId:e}),name:"Pages",children:s},{id:x({componentId:R,projectId:e}),name:"Components",children:n}]}}w.get("/resources",h,async(e,t)=>{const{projectId:o}=te(e.query.resourcesParams);if(o){e.params={...e.params,projectId:o},await $(e,t,()=>{});const r=await A(o);t.json({resources:[r]});return}const s=await c.Project.findAll({where:{}}),n=await Promise.all(s.map(r=>A(r.id)));t.json({resources:n})});const oe=f.default.object({projectId:f.default.string().required().min(1),releaseId:f.default.string().allow(""),resources:f.default.array().items(f.default.string()).required(),locale:f.default.string().allow("")});w.post("/resources",h,async(e,t)=>{const{resources:o,projectId:s,releaseId:n}=await oe.validateAsync(e.body),r="production",a=[],P=[];for(const i of o){if(ee(i))continue;const{pageId:d,projectId:_}=Q(i)||{};if(d)d===R||d&&_&&a.push({pageId:d,projectId:_});else{const{componentId:I,projectId:p}=V(i)||{};I===R||I&&p&&P.push({componentId:I,projectId:p})}}const y=C.default(a,"projectId"),O=C.default(P,"projectId"),M=new Set([...Object.keys(y),...Object.keys(O)]),E=H(s,n);u.default.rmSync(E,{recursive:!0,force:!0}),u.default.mkdirSync(E,{recursive:!0});for(const i of M){const d=await c.SiteState.getStateByProjectId(i,r),_=y[i],I=O[i],p=_?.map(l=>l.pageId),S=I?.map(l=>l.componentId);if(p?.length||S?.length){const l=await c.toPackage(d,{exportAssets:!0,pageIds:p,componentIds:S});await z(l,E),u.default.rmSync(l,{recursive:!0,force:!0})}g.logger.info(`Exported resources for project ${i}`,{pageIds:p,componentIds:S})}t.json({})});w.get("/all-resources",h,async(e,t)=>{const{states:o}=await c.getResourceStates(),s=o?.map(n=>{const r={blockletId:n.blockletId,blockletTitle:n.blockletTitle,components:{}};if(n.state.components&&(r.components=n.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);t.json(s)});module.exports=w;
1
+ "use strict";const I=require("./chunks/components-DLLpFRy5.js"),c=require("./chunks/site-state-uZR_uvZu.js"),F=require("express"),L=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),B=require("path"),C=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),g=e=>e&&e.__esModule?e:{default:e},u=g(L),f=g(J),D=g(X),K=g(W),k=g(B),Y=async(e,t,o)=>{try{const{projectId:s}=e.params;if(!s)return o();const n=await c.Project.findByPk(s);if(!n)return t?.status(404).json({error:"Project not found"});const r=e.user?.did,a=e.user?.role||"UNKNOWN_ROLE";if(!r)return t?.status(401).json({error:"Authentication required"});if(I.isMultiTenant()){const P=n.createdBy===r,y=I.getMultiTenantAllProjectAccessPassports()?.includes?.(a);if(!P&&!y)return t?.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(a))return t?.status(403).json({error:"No permission to access this project in single-tenant mode"});e.project=n,e.projectId=s,o()}catch(s){I.logger.error("Project middleware error:",s),t?.status(400).json({error:"Internal server error"})}};function b(e,t){return new Promise((o,s)=>{const n=u.default.createReadStream(e),r=u.default.createWriteStream(t);n.on("error",s),r.on("error",s),r.on("finish",o),n.pipe(r)})}async function N(e,t){await u.default.promises.mkdir(t,{recursive:!0});const o=await u.default.promises.readdir(e,{withFileTypes:!0});for(const s of o){const n=k.default.join(e,s.name),r=k.default.join(t,s.name);s.isDirectory()?await N(n,r):await b(n,r)}}async function $(e,t){(await u.default.promises.stat(e)).isDirectory()?await N(e,t):await b(e,t)}const h=(e,t,o)=>I.isMultiTenant()?C.authMiddleware()(e,t,o):C.authMiddleware({roles:["owner","admin","pagesEditor"]})(e,t,o),z=(e,t)=>{const o=G.getResourceExportDir({projectId:e,releaseId:t});return B.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},_=F.Router(),T="@page",U="@component",m=":",R="ALL",M="@project",v=({pageId:e,projectId:t})=>[T,t,e].join(m),H=e=>{const[t,o,s]=e.split(m);if(t===T)return{pageId:s,projectId:o}},x=({componentId:e,projectId:t})=>[U,t,e].join(m),Q=e=>{const[t,o,s]=e.split(m);if(t===U)return{componentId:s,projectId:o}},V=e=>[M,e].join(m),Z=e=>{const[t,o]=e.split(m);if(t===M)return o},ee=e=>{try{return JSON.parse(e)}catch{}return{}};async function A(e){const t=await c.SiteState.getStateByProjectId(e,"production"),o=await c.Project.findByPk(e),s=t.pageIds.map(r=>{const a=t.pages[r];if(a)return{id:v({pageId:r,projectId:e}),name:a.slug}}).filter(Boolean),n=K.default(Object.values(t.components),r=>r.index).map(({data:r})=>({id:x({componentId:r.id,projectId:e}),name:r.name||r.id}));return{id:V(e),name:o?.name||"Unnamed Project",children:[{id:v({pageId:R,projectId:e}),name:"Pages",children:s},{id:x({componentId:R,projectId:e}),name:"Components",children:n}]}}_.get("/resources",h,async(e,t)=>{const{projectId:o}=ee(e.query.resourcesParams);if(o){e.params={...e.params,projectId:o},await Y(e,t,()=>{});const r=await A(o);t.json({resources:[r]});return}const s=await c.Project.findAll({where:{}}),n=await Promise.all(s.map(r=>A(r.id)));t.json({resources:n})});const te=f.default.object({projectId:f.default.string().required().min(1),releaseId:f.default.string().allow(""),resources:f.default.array().items(f.default.string()).required(),locale:f.default.string().allow("")});_.post("/resources",h,async(e,t)=>{const{resources:o,projectId:s,releaseId:n}=await te.validateAsync(e.body),r="production",a=[],P=[];for(const i of o){if(Z(i))continue;const{pageId:d,projectId:w}=H(i)||{};if(d)d===R||d&&w&&a.push({pageId:d,projectId:w});else{const{componentId:j,projectId:p}=Q(i)||{};j===R||j&&p&&P.push({componentId:j,projectId:p})}}const y=D.default(a,"projectId"),O=D.default(P,"projectId"),q=new Set([...Object.keys(y),...Object.keys(O)]),E=z(s,n);u.default.rmSync(E,{recursive:!0,force:!0}),u.default.mkdirSync(E,{recursive:!0});for(const i of q){const d=await c.SiteState.getStateByProjectId(i,r),w=y[i],j=O[i],p=w?.map(l=>l.pageId),S=j?.map(l=>l.componentId);if(p?.length||S?.length){const l=await c.toPackage(d,{exportAssets:!0,pageIds:p,componentIds:S});await $(l,E),u.default.rmSync(l,{recursive:!0,force:!0})}I.logger.info(`Exported resources for project ${i}`,{pageIds:p,componentIds:S})}t.json({})});_.get("/all-resources",h,async(e,t)=>{const{states:o}=await c.getResourceStates(),s=o?.map(n=>{const r={blockletId:n.blockletId,blockletTitle:n.blockletTitle,components:{}};if(n.state.components&&(r.components=n.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);t.json(s)});module.exports=_;
@@ -1,9 +1,9 @@
1
1
  import x from "@arcblock/did-connect-storage-nedb";
2
- import i, { getBlockletJs as L } from "@blocklet/sdk/lib/config";
3
- import M from "@blocklet/sdk/lib/wallet";
4
- import B from "@blocklet/sdk/lib/wallet-authenticator";
5
- import D from "@blocklet/sdk/lib/wallet-handler";
6
- import K from "@blocklet/sdk/service/auth";
2
+ import s, { getBlockletJs as L } from "@blocklet/sdk/lib/config";
3
+ import { getWallet as M } from "@blocklet/sdk/lib/wallet";
4
+ import { WalletAuthenticator as B } from "@blocklet/sdk/lib/wallet-authenticator";
5
+ import { WalletHandlers as D } from "@blocklet/sdk/lib/wallet-handler";
6
+ import { BlockletService as K } from "@blocklet/sdk/service/auth";
7
7
  import U, { resolve as C } from "path";
8
8
  import { l as v, g as W } from "./chunks/components-DLwSTd_N.js";
9
9
  import { e as H, i as N } from "./chunks/html-DOgzvdOd.js";
@@ -48,7 +48,7 @@ const q = new B();
48
48
  new D({
49
49
  authenticator: q,
50
50
  tokenStorage: new x({
51
- dbPath: U.join(i.env.dataDir, "auth.db")
51
+ dbPath: U.join(s.env.dataDir, "auth.db")
52
52
  })
53
53
  });
54
54
  const ee = new K(), te = async () => {
@@ -84,22 +84,22 @@ function Ce({
84
84
  return;
85
85
  }
86
86
  k();
87
- }), i.env.preferences.snapkitEnabled && i.env.preferences.snapkitEndpoint && i.env.SNAP_KIT_ACCESS_KEY && m.use(
87
+ }), s.env.preferences.snapkitEnabled && s.env.preferences.snapkitEndpoint && s.env.SNAP_KIT_ACCESS_KEY && m.use(
88
88
  O({
89
- endpoint: i.env.preferences.snapkitEndpoint,
90
- accessKey: i.env.SNAP_KIT_ACCESS_KEY,
91
- cacheMax: i.env.preferences.snapkitCacheSize || 100
89
+ endpoint: s.env.preferences.snapkitEndpoint,
90
+ accessKey: s.env.SNAP_KIT_ACCESS_KEY,
91
+ cacheMax: s.env.preferences.snapkitCacheSize || 100
92
92
  })
93
93
  ), m.get("/:path(*)?", async (n, f, k) => {
94
- if (oe.some((s) => n.path?.startsWith(s))) {
94
+ if (oe.some((i) => n.path?.startsWith(i))) {
95
95
  k();
96
96
  return;
97
97
  }
98
98
  const _ = "production";
99
99
  let l, b, g = p;
100
100
  if (n.path.startsWith("/pages")) {
101
- const s = n.params.lang, y = n.cookies.nf_lang, w = /* @__PURE__ */ new Set([...i.env.languages.map((h) => h.code)]);
102
- let u = (s && w.has(s) ? s : void 0) || (w.has(y) ? y : void 0) || [...w][0];
101
+ const i = n.params.lang, y = n.cookies.nf_lang, w = /* @__PURE__ */ new Set([...s.env.languages.map((h) => h.code)]);
102
+ let u = (i && w.has(i) ? i : void 0) || (w.has(y) ? y : void 0) || [...w][0];
103
103
  if ((!u || !t.supportedLocales?.find((h) => h.locale === u)) && (u = t.supportedLocales?.[0]?.locale || ""), u) {
104
104
  const h = [];
105
105
  Object.values(t.pages).forEach((r) => {
@@ -115,14 +115,14 @@ function Ce({
115
115
  }));
116
116
  h.push(...$);
117
117
  });
118
- const E = new Promise((r) => {
118
+ const A = new Promise((r) => {
119
119
  setTimeout(() => {
120
120
  r({});
121
121
  }, 30 * 1e3);
122
122
  });
123
123
  try {
124
124
  await Promise.race([
125
- E,
125
+ A,
126
126
  W({
127
127
  mode: _,
128
128
  req: n,
@@ -140,12 +140,12 @@ function Ce({
140
140
  }
141
141
  }
142
142
  try {
143
- const s = l?.title || i.env.appName, y = l?.description || i.env.appDescription, w = X(j(i.env.appUrl, "/.well-known/service/blocklet/og.png"), {
144
- title: s,
143
+ const i = l?.title || s.env.appName, y = l?.description || s.env.appDescription, w = X(j(s.env.appUrl, "/.well-known/service/blocklet/og.png"), {
144
+ title: i,
145
145
  description: y
146
146
  });
147
147
  g = V.render(p, {
148
- ogTitle: s,
148
+ ogTitle: i,
149
149
  ogDescription: y,
150
150
  ogImage: ne(l?.image) || w,
151
151
  pagesPublishedAt: t?.config.publishedAt || (/* @__PURE__ */ new Date()).getTime()
@@ -155,15 +155,15 @@ function Ce({
155
155
  const d = t?.config.fontFamily, P = n.query.mode === "draft" || n.url.includes("preview") || n.path?.startsWith("/admin");
156
156
  let a = l?.backgroundColor;
157
157
  if (a && F(a)) {
158
- const s = await te();
158
+ const i = await te();
159
159
  a = Q(
160
- s,
160
+ i,
161
161
  // 目前 dark 和 light 还是前端行为,后端通过 从 light 中获取
162
162
  `settings.theme.light.palette.${a}`,
163
163
  a
164
164
  );
165
165
  }
166
- const S = L(), A = [
166
+ const S = L(), E = [
167
167
  {
168
168
  selector: {
169
169
  cheerio: "#injected-head-elements",
@@ -222,12 +222,12 @@ function Ce({
222
222
  value: `<body>${H(n.cachedHtml)}</body>`
223
223
  }
224
224
  ].filter(Boolean);
225
- g = await N(g, A), f.send(g), v.info(`[html] render: ${n.path}`), g = null, l = null, b = null;
225
+ g = await N(g, E), f.send(g), v.info(`[html] render: ${n.path}`), g = null, l = null, b = null;
226
226
  }), o.use(m);
227
227
  }
228
228
  function ne(o) {
229
229
  const e = G("image-bin");
230
- return e && o && !/^(https?:\/\/|\/)/.test(o) ? i.env.appUrl + j(e, "uploads", o) : o;
230
+ return e && o && !/^(https?:\/\/|\/)/.test(o) ? s.env.appUrl + j(e, "uploads", o) : o;
231
231
  }
232
232
  export {
233
233
  Ce as default
@@ -6,7 +6,7 @@ import m from "joi";
6
6
  import C from "lodash/groupBy";
7
7
  import Y from "lodash/sortBy";
8
8
  import O, { join as $ } from "path";
9
- import _ from "@blocklet/sdk/lib/middlewares/auth";
9
+ import { authMiddleware as _ } from "@blocklet/sdk/lib/middlewares/auth";
10
10
  import { getResourceExportDir as z } from "@blocklet/sdk/lib/component";
11
11
  const H = async (e, t, o) => {
12
12
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@blocklet/pages-kit-inner-components",
3
- "version": "0.6.100",
3
+ "version": "0.6.101",
4
4
  "description": "Pages Kit inner components library",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -69,21 +69,21 @@
69
69
  "url": "git+https://github.com/blocklet/pages-kit.git"
70
70
  },
71
71
  "dependencies": {
72
- "@arcblock/did-connect-react": "^3.1.49",
72
+ "@arcblock/did-connect-react": "^3.1.52",
73
73
  "@arcblock/did-connect-storage-nedb": "^1.8.0",
74
- "@arcblock/react-hooks": "^3.1.49",
75
- "@arcblock/ux": "^3.1.50",
76
- "@blocklet/aigne-hub": "^0.3.29",
74
+ "@arcblock/react-hooks": "^3.1.52",
75
+ "@arcblock/ux": "^3.1.52",
76
+ "@blocklet/aigne-hub": "^0.4.51",
77
77
  "@blocklet/aigne-sdk": "^0.5.26",
78
78
  "@blocklet/code-editor": "^0.5.26",
79
79
  "@blocklet/embed": "^0.2.5",
80
- "@blocklet/js-sdk": "^1.16.53",
81
- "@blocklet/logger": "1.16.48",
80
+ "@blocklet/js-sdk": "^1.16.54-beta-20251023-041534-36eec6b9",
81
+ "@blocklet/logger": "1.16.54-beta-20251021-070951-25e3083c",
82
82
  "@blocklet/quickjs": "^0.5.26",
83
- "@blocklet/sdk": "^1.16.53",
83
+ "@blocklet/sdk": "^1.16.54-beta-20251023-041534-36eec6b9",
84
84
  "@blocklet/studio-ui": "^0.5.26",
85
- "@blocklet/tracker": "^1.16.53",
86
- "@blocklet/ui-react": "^3.1.49",
85
+ "@blocklet/tracker": "^1.16.54-beta-20251023-041534-36eec6b9",
86
+ "@blocklet/ui-react": "^3.1.52",
87
87
  "@blocklet/uploader": "^0.2.15",
88
88
  "@blocklet/uploader-server": "^0.2.15",
89
89
  "@dnd-kit/core": "^6.3.1",
@@ -107,9 +107,9 @@
107
107
  "@mui/styles": "^5.16.14",
108
108
  "@mui/utils": "^7.1.1",
109
109
  "@mui/x-date-pickers": "^8.6.0",
110
- "@ocap/client": "^1.26.2",
111
- "@ocap/mcrypto": "^1.26.2",
112
- "@ocap/wallet": "^1.26.2",
110
+ "@ocap/client": "^1.26.3",
111
+ "@ocap/mcrypto": "^1.26.3",
112
+ "@ocap/wallet": "^1.26.3",
113
113
  "@reactivedata/reactive": "^0.2.2",
114
114
  "@syncedstore/core": "^0.6.0",
115
115
  "@syncedstore/react": "^0.6.0",
@@ -201,8 +201,8 @@
201
201
  "yaml": "^2.5.0",
202
202
  "yjs": "^13.6.18",
203
203
  "zustand": "^4.5.5",
204
- "@blocklet/pages-kit": "^0.6.100",
205
- "@blocklet/pages-kit-block-studio": "^0.6.100"
204
+ "@blocklet/pages-kit": "^0.6.101",
205
+ "@blocklet/pages-kit-block-studio": "^0.6.101"
206
206
  },
207
207
  "devDependencies": {
208
208
  "@trivago/prettier-plugin-sort-imports": "^5.2.1",