@blocklet/pages-kit-inner-components 0.1.4 → 0.1.6

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,16 +1,16 @@
1
- "use strict";const v=require("@blocklet/pages-kit/builtin/utils"),N=require("@blocklet/pages-kit/types"),O=require("@blocklet/pages-kit/utils/property"),h=require("@blocklet/quickjs"),q=require("@blocklet/sdk/lib/config"),F=require("lru-cache"),I=require("node-fetch"),C=require("ufo"),B=require("@blocklet/logger"),K=require("@blocklet/pages-kit/utils/builtin"),Q=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),J=require("autoprefixer"),V=require("esbuild"),A=require("postcss"),G=require("tailwindcss"),W=require("typescript"),S=e=>e&&e.__esModule?e:{default:e};function H(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const T=S(q),z=S(I),X=S(B),Y=S(J),Z=H(V),ee=S(A),te=S(G),m=S(W),f=X.default("pages-kit"),oe=async(e,{componentId:t})=>{const o=`@tailwind components;
1
+ "use strict";const v=require("@blocklet/pages-kit/builtin/utils"),N=require("@blocklet/pages-kit/types"),O=require("@blocklet/pages-kit/utils/property"),S=require("@blocklet/quickjs"),q=require("@blocklet/sdk/lib/config"),F=require("lru-cache"),I=require("node-fetch"),C=require("ufo"),B=require("@blocklet/logger"),K=require("@blocklet/pages-kit/utils/builtin"),Q=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),J=require("autoprefixer"),V=require("esbuild"),A=require("postcss"),G=require("tailwindcss"),W=require("typescript"),h=e=>e&&e.__esModule?e:{default:e};function H(e){if(e&&e.__esModule)return e;const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const o in e)if(o!=="default"){const n=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(t,o,n.get?n:{enumerable:!0,get:()=>e[o]})}}return t.default=e,Object.freeze(t)}const T=h(q),z=h(I),X=h(B),Y=h(J),Z=H(V),ee=h(A),te=h(G),m=h(W),f=X.default("pages-kit"),oe=async(e,{componentId:t})=>{const o=`@tailwind components;
2
2
  @tailwind utilities;
3
3
  `,n=`.CustomComponent_${t}`;return(await ee.default([te.default({content:[{raw:e,extension:"tsx"}]}),Y.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),i=>{i.walkRules(r=>{r.selectors=r.selectors.map(s=>s.replace(/\.(.+)/g,`${n}.$1,${n} .$1`))})}]).process(o)).css},ne=async(e,{componentId:t})=>{const o=await oe(e,{componentId:t});return`export const __PagesKit_CSS__ = ${JSON.stringify(o)};
4
4
 
5
5
  ${e}
6
- `},j=h.memoize(async(e,t)=>{let o=m.default.transpileModule(e,{compilerOptions:{jsx:m.default.JsxEmit.React,target:m.default.ScriptTarget.ES2016,module:m.default.ModuleKind.ESNext},transformers:{before:[Q.createBuiltinModuleTransformer(m.default)]}}).outputText;if(t.tailwind&&(o=await ne(o,{componentId:t.componentId})),t.module===N.PreloadComponentScriptModule.ESM)return o;const n=m.default.transpileModule(o,{compilerOptions:{jsx:m.default.JsxEmit.React,target:m.default.ScriptTarget.ES2016,module:m.default.ModuleKind.CommonJS,moduleResolution:m.default.ModuleResolutionKind.Node16}}).outputText;return se(t.moduleName,n)},{keyGenerator:(e,t)=>JSON.stringify(["transpileModule",e,t])}),re=async(e,t)=>{var r,s;const n=(s=(r=(await Z.build({entryPoints:["index.tsx"],external:Object.keys(K.BuiltinModules),format:"esm",target:"es2020",bundle:!0,write:!1,plugins:[{name:"vfs",setup(u){u.onResolve({filter:/.*/},a=>a.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:a.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),u.onLoad({filter:/.*/,namespace:"vfs"},async a=>a.path==="index.tsx"?{contents:`export { ${t} } from './component'`,loader:"tsx"}:a.path==="component.tsx"?{contents:e,loader:"tsx"}:null)}}]})).outputFiles)==null?void 0:r[0])==null?void 0:s.contents;if(!n)throw new Error("Failed to build server code");const c=Buffer.from(n).toString();return m.default.transpileModule(c,{compilerOptions:{module:m.default.ModuleKind.ESNext,target:m.default.ScriptTarget.ES2020}}).outputText},R=h.memoize(async(e,t)=>{const o=await re(e,t);return new RegExp(`export\\s+\\{\\s+${t}\\s+\\}`,"m").test(o)?o:void 0},{keyGenerator:(e,t)=>JSON.stringify(["extractExportValueSchema",e,t])}),se=(e,t)=>`// GENERATED FILE. DO NOT EDIT.
6
+ `},j=S.memoize(async(e,t)=>{let o=m.default.transpileModule(e,{compilerOptions:{jsx:m.default.JsxEmit.React,target:m.default.ScriptTarget.ES2016,module:m.default.ModuleKind.ESNext},transformers:{before:[Q.createBuiltinModuleTransformer(m.default)]}}).outputText;if(t.tailwind&&(o=await ne(o,{componentId:t.componentId})),t.module===N.PreloadComponentScriptModule.ESM)return o;const n=m.default.transpileModule(o,{compilerOptions:{jsx:m.default.JsxEmit.React,target:m.default.ScriptTarget.ES2016,module:m.default.ModuleKind.CommonJS,moduleResolution:m.default.ModuleResolutionKind.Node16}}).outputText;return se(t.moduleName,n)},{keyGenerator:(e,t)=>JSON.stringify(["transpileModule",e,t])}),re=async(e,t)=>{var r,s;const n=(s=(r=(await Z.build({entryPoints:["index.tsx"],external:Object.keys(K.BuiltinModules),format:"esm",target:"es2020",bundle:!0,write:!1,plugins:[{name:"vfs",setup(u){u.onResolve({filter:/.*/},c=>c.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:c.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),u.onLoad({filter:/.*/,namespace:"vfs"},async c=>c.path==="index.tsx"?{contents:`export { ${t} } from './component'`,loader:"tsx"}:c.path==="component.tsx"?{contents:e,loader:"tsx"}:(console.warn("onLoad 11111111",c.path),null))}}]})).outputFiles)==null?void 0:r[0])==null?void 0:s.contents;if(!n)throw new Error("Failed to build server code");const a=Buffer.from(n).toString();return m.default.transpileModule(a,{compilerOptions:{module:m.default.ModuleKind.ESNext,target:m.default.ScriptTarget.ES2020}}).outputText},R=S.memoize(async(e,t)=>{const o=await re(e,t);return new RegExp(`export\\s+\\{\\s+${t}\\s+\\}`,"m").test(o)?o:void 0},{keyGenerator:(e,t)=>JSON.stringify(["extractExportValueSchema",e,t])}),se=(e,t)=>`// GENERATED FILE. DO NOT EDIT.
7
7
  var ${e} = function () {
8
8
  return (function(exports) {
9
9
  ${t}
10
10
  return exports
11
11
  })({})
12
12
  };
13
- `,y=new F.LRUCache({max:100}),$=60*60,M=60;function k(e){f.info("clear preload components cache",{cacheKey:e}),y.delete(e)}function ce(e){for(const t of y.keys())t.includes(e)&&(f.info("clear preload components cache",{cacheKey:t}),k(t))}function U({mode:e,instanceId:t,componentId:o,locale:n}){return["getPreloadComponents",e,t,o,n].join("-")}async function ae({mode:e,req:t,state:o,locale:n,instances:c,module:i}){const{supportedLocales:r,config:{defaultLocale:s}}=o;if(!s)return null;const u=(await Promise.all(c.map(async p=>{const d=U({mode:e,instanceId:p.id,componentId:p.componentId,locale:n});if(e!=="draft"&&p.useCache&&y.has(d))return f.info(`get preload component from cache: ${d}`),y.get(d);const _=w({state:o,componentId:p.componentId});if(!_)return null;const E=await L({req:t,state:o,componentId:_.id,locale:n,defaultLocale:s,properties:p.properties});if(!E)return null;const b={instanceId:p.id,preload:E};if(e!=="draft"&&p.useCache){let P=$;p.cacheDuration&&(P=p.cacheDuration),f.info(`set preload component to cache(${P}s): ${d}`),y.set(d,b,{ttl:P*1e3})}return b}))).filter(p=>!!p),a=Object.values(u.reduce((p,d)=>({...p,...d.preload.components}),{}));async function l(){const p=await Promise.all(a.map(async d=>{const _=O.componentUMDName({componentId:d.component.id}),E=i===N.PreloadComponentScriptModule.ESM?{module:i,script:await j(d.script,{componentId:d.component.id,module:i,tailwind:e!=="draft"})}:{module:i,script:await j(d.script,{componentId:d.component.id,module:i,moduleName:_,tailwind:e!=="draft"}),moduleName:_};return[d.component.id,{component:d.component,script:E}]}));return Object.fromEntries(p)}const g=await l();return{config:{defaultLocale:s,supportedLocales:r},components:g,instances:u.map(p=>({id:p.instanceId,componentId:p.preload.component.id,locales:{[p.preload.locale]:{props:p.preload.props}}}))}}async function L({req:e,state:t,componentId:o,locale:n,defaultLocale:c,properties:i}){const{supportedLocales:r}=t,s=w({state:t,componentId:o});if(!s)return null;const u=r.some(l=>l.locale===n)?n:c;if(!u)return null;const a=await D({req:e,state:t,componentId:o,locale:u,defaultLocale:c,properties:i});return a?{component:s,...a}:null}const ie=20;async function D({req:e,depth:t=0,state:o,componentId:n,locale:c,defaultLocale:i,properties:r}){if(t>ie)throw new RangeError("max component depth exceeded");const s=pe({state:o,componentId:n,properties:r,locale:c});if(!s)return null;const{props:u}=s,a={locale:c||i,components:{[s.component.id]:{component:s.component,script:s.script}},props:{...u}};try{const l=await le({...s,req:e});l!=null&&l.props&&Object.assign(a.props,l.props)}catch(l){f.error("preload data at server side error",{componentId:n,name:s.component.name},{error:l})}return await Promise.all(Object.entries(u).map(async([l,g])=>{if((g==null?void 0:g.type)===O.RenderNestedComponent){const x=await D({req:e,depth:t+1,state:o,componentId:g.componentId,locale:c,defaultLocale:i,properties:g.properties});x&&(Object.assign(a.components,x.components),Object.assign(a.props,{[l]:{type:O.RenderNestedComponent,componentId:g.componentId,props:x.props}}))}})),a}function pe({state:e,componentId:t,locale:o,properties:n}){const c=w({state:e,componentId:t});if(!c)return null;const i=O.mergeComponent({componentId:t,getComponent:r=>w({state:e,componentId:r}),locale:o,defaultLocale:e.config.defaultLocale,properties:n});return i?{component:c,script:i.script,props:{locale:o,...i.properties}}:null}function w({state:e,componentId:t}){var o,n,c;return((o=e.components[t])==null?void 0:o.data)??((c=(n=e.resources.components)==null?void 0:n[t])==null?void 0:c.component)}function ue({state:e,name:t}){var n,c;const o=t.toLowerCase();return((n=Object.values(e.components).find(i=>{var r;return((r=i.data.name)==null?void 0:r.toLowerCase())===o}))==null?void 0:n.data)??((c=e.resources.components&&Object.values(e.resources.components).find(i=>{var r;return((r=i.component.name)==null?void 0:r.toLowerCase())===o}))==null?void 0:c.component)}async function le({component:e,script:t,props:o,req:n}){const c=await R(t,"getServerSideProps");if(!c)return null;const i=new Promise((r,s)=>{setTimeout(()=>s(new Error("getServerSideProps timeout in promise race")),M*1e3)});return Promise.race([i,h.Sandbox.callFunction({code:`${c}
13
+ `,w=new F.LRUCache({max:100}),$=60*60,M=60;function k(e){f.info("clear preload components cache",{cacheKey:e}),w.delete(e)}function ce(e){for(const t of w.keys())t.includes(e)&&(f.info("clear preload components cache",{cacheKey:t}),k(t))}function L({mode:e,instanceId:t,componentId:o,locale:n}){return["getPreloadComponents",e,t,o,n].join("-")}async function ae({mode:e,req:t,state:o,locale:n,instances:a,module:i}){const{supportedLocales:r,config:{defaultLocale:s}}=o;if(!s)return null;const u=(await Promise.all(a.map(async p=>{const d=L({mode:e,instanceId:p.id,componentId:p.componentId,locale:n});if(e!=="draft"&&p.useCache&&w.has(d))return f.info(`get preload component from cache: ${d}`),w.get(d);const _=y({state:o,componentId:p.componentId});if(!_)return null;const E=await U({req:t,state:o,componentId:_.id,locale:n,defaultLocale:s,properties:p.properties});if(!E)return null;const b={instanceId:p.id,preload:E};if(e!=="draft"&&p.useCache){let P=$;p.cacheDuration&&(P=p.cacheDuration),f.info(`set preload component to cache(${P}s): ${d}`),w.set(d,b,{ttl:P*1e3})}return b}))).filter(p=>!!p),c=Object.values(u.reduce((p,d)=>({...p,...d.preload.components}),{}));async function l(){const p=await Promise.all(c.map(async d=>{const _=O.componentUMDName({componentId:d.component.id}),E=i===N.PreloadComponentScriptModule.ESM?{module:i,script:await j(d.script,{componentId:d.component.id,module:i,tailwind:e!=="draft"})}:{module:i,script:await j(d.script,{componentId:d.component.id,module:i,moduleName:_,tailwind:e!=="draft"}),moduleName:_};return[d.component.id,{component:d.component,script:E}]}));return Object.fromEntries(p)}const g=await l();return{config:{defaultLocale:s,supportedLocales:r},components:g,instances:u.map(p=>({id:p.instanceId,componentId:p.preload.component.id,locales:{[p.preload.locale]:{props:p.preload.props}}}))}}async function U({req:e,state:t,componentId:o,locale:n,defaultLocale:a,properties:i}){const{supportedLocales:r}=t,s=y({state:t,componentId:o});if(!s)return null;const u=r.some(l=>l.locale===n)?n:a;if(!u)return null;const c=await D({req:e,state:t,componentId:o,locale:u,defaultLocale:a,properties:i});return c?{component:s,...c}:null}const ie=20;async function D({req:e,depth:t=0,state:o,componentId:n,locale:a,defaultLocale:i,properties:r}){if(t>ie)throw new RangeError("max component depth exceeded");const s=pe({state:o,componentId:n,properties:r,locale:a});if(!s)return null;const{props:u}=s,c={locale:a||i,components:{[s.component.id]:{component:s.component,script:s.script}},props:{...u}};try{const l=await le({...s,req:e});l!=null&&l.props&&Object.assign(c.props,l.props)}catch(l){f.error("preload data at server side error",{componentId:n,name:s.component.name},{error:l})}return await Promise.all(Object.entries(u).map(async([l,g])=>{if((g==null?void 0:g.type)===O.RenderNestedComponent){const x=await D({req:e,depth:t+1,state:o,componentId:g.componentId,locale:a,defaultLocale:i,properties:g.properties});x&&(Object.assign(c.components,x.components),Object.assign(c.props,{[l]:{type:O.RenderNestedComponent,componentId:g.componentId,props:x.props}}))}})),c}function pe({state:e,componentId:t,locale:o,properties:n}){const a=y({state:e,componentId:t});if(!a)return null;const i=O.mergeComponent({componentId:t,getComponent:r=>y({state:e,componentId:r}),locale:o,defaultLocale:e.config.defaultLocale,properties:n});return i?{component:a,script:i.script,props:{locale:o,...i.properties}}:null}function y({state:e,componentId:t}){var o,n,a;return((o=e.components[t])==null?void 0:o.data)??((a=(n=e.resources.components)==null?void 0:n[t])==null?void 0:a.component)}function ue({state:e,name:t}){var n,a;const o=t.toLowerCase();return((n=Object.values(e.components).find(i=>{var r;return((r=i.data.name)==null?void 0:r.toLowerCase())===o}))==null?void 0:n.data)??((a=e.resources.components&&Object.values(e.resources.components).find(i=>{var r;return((r=i.component.name)==null?void 0:r.toLowerCase())===o}))==null?void 0:a.component)}async function le({component:e,script:t,props:o,req:n}){const a=await R(t,"getServerSideProps");if(!a)return null;const i=new Promise((r,s)=>{setTimeout(()=>s(new Error("getServerSideProps timeout in promise race")),M*1e3)});return Promise.race([i,S.Sandbox.callFunction({code:`${a}
14
14
 
15
15
  export async function getServerSidePropsWrapper({ location, fetch, props}) {
16
16
  globalThis.location = location
@@ -20,10 +20,10 @@ export async function getServerSidePropsWrapper({ location, fetch, props}) {
20
20
  }
21
21
  `,filename:`${e.name||e.id}.js`,moduleLoader:r=>{if(r==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
22
22
  export { joinURL, withQuery, getQuery, getComponentMountPoint }
23
- `;if(r==="@blocklet/pages-kit/builtin/dayjs")return h.BuiltinModules.dayjs},global:{console:{log:(...r)=>{f.info(...r)},warn:(...r)=>{f.warn(...r)},error:(...r)=>{f.error(...r)}},getComponentMountPoint:v.getComponentMountPoint,joinURL:C.joinURL,withQuery:C.withQuery,getQuery:C.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:C.joinURL(C.withHttps(n.hostname),n.originalUrl)},fetch:(r,{...s}={})=>{const u=typeof r=="string"&&r.startsWith("/")?C.joinURL(T.default.env.appUrl,r):r;if(typeof u=="string"&&C.parseURL(u).host===C.parseURL(T.default.env.appUrl).host){const a=n.get("cookie");if(a){const l=new I.Headers(s.headers);l.set("cookie",a),s.headers=l}}return z.default(u,{...s,timeout:M*1e3}).then(a=>({ok:a.ok,status:a.status,statusText:a.statusText,headers:Object.fromEntries(a.headers.entries()),json:()=>a.json()}))},props:o}]})])}const de=h.memoize(async(e,t,o)=>{const n=await R(e,t);return n?await h.Sandbox.callFunction({code:`
23
+ `;if(r==="@blocklet/pages-kit/builtin/dayjs")return S.BuiltinModules.dayjs},global:{console:{log:(...r)=>{f.info(...r)},warn:(...r)=>{f.warn(...r)},error:(...r)=>{f.error(...r)}},getComponentMountPoint:v.getComponentMountPoint,joinURL:C.joinURL,withQuery:C.withQuery,getQuery:C.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:C.joinURL(C.withHttps(n.hostname),n.originalUrl)},fetch:(r,{...s}={})=>{const u=typeof r=="string"&&r.startsWith("/")?C.joinURL(T.default.env.appUrl,r):r;if(typeof u=="string"&&C.parseURL(u).host===C.parseURL(T.default.env.appUrl).host){const c=n.get("cookie");if(c){const l=new I.Headers(s.headers);l.set("cookie",c),s.headers=l}}return z.default(u,{...s,timeout:M*1e3}).then(c=>({ok:c.ok,status:c.status,statusText:c.statusText,headers:Object.fromEntries(c.headers.entries()),json:()=>c.json()}))},props:o}]})])}const de=S.memoize(async(e,t,o)=>{const n=await R(e,t);return n?await S.Sandbox.callFunction({code:`
24
24
  ${n}
25
25
 
26
26
  export function get${t}SchemaWrapper() {
27
27
  return ${t};
28
28
  }
29
- `,filename:`${o}.js`,functionName:`get${t}SchemaWrapper`}):null},{keyGenerator:(e,t,o)=>JSON.stringify(["getExportSchemaValueFromCode",e,t,o])});exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=$;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=M;exports.clearPreloadComponentsCache=k;exports.clearPreloadComponentsCacheByMode=ce;exports.getComponentFromState=w;exports.getComponentFromStateByName=ue;exports.getExportSchemaValueFromCode=de;exports.getPreloadComponent=L;exports.getPreloadComponents=ae;exports.getPreloadComponentsCacheKey=U;exports.logger=f;
29
+ `,filename:`${o}.js`,functionName:`get${t}SchemaWrapper`}):null},{keyGenerator:(e,t,o)=>JSON.stringify(["getExportSchemaValueFromCode",e,t,o])});exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=$;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=M;exports.clearPreloadComponentsCache=k;exports.clearPreloadComponentsCacheByMode=ce;exports.getComponentFromState=y;exports.getComponentFromStateByName=ue;exports.getExportSchemaValueFromCode=de;exports.getPreloadComponent=U;exports.getPreloadComponents=ae;exports.getPreloadComponentsCacheKey=L;exports.logger=f;
@@ -0,0 +1 @@
1
+ "use strict";const O=require("./components-CGE2womb.js"),Ue=require("@blocklet/quickjs"),ue=require("@blocklet/sdk/lib/component"),Ce=require("@blocklet/sdk/lib/config"),Ne=require("@reactivedata/reactive"),H=require("@syncedstore/core"),y=require("fs"),re=require("glob"),Fe=require("lib0/decoding"),qe=require("lib0/encoding"),_=require("lodash"),Te=require("lru-cache"),Me=require("nanoid"),xe=require("p-limit"),f=require("path"),Be=require("stream/promises"),Ve=require("tar"),x=require("ufo"),$e=require("wait-on"),M=require("y-protocols/awareness"),te=require("y-protocols/sync"),Ge=require("yaml"),Je=require("yjs"),Ye=require("lodash/isNil"),T=require("sequelize");require("sqlite3");const Y=t=>t&&t.__esModule?t:{default:t};function Z(t){if(t&&t.__esModule)return t;const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const n=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(s,e,n.get?n:{enumerable:!0,get:()=>t[e]})}}return s.default=t,Object.freeze(s)}const S=Y(Ce),se=Z(Fe),j=Z(qe),ze=Y(xe),He=Y(f),Ke=Y($e),V=Z(Ge),q=Z(Je),We=Y(Ye);S.default.env.mode;const Xe="image-bin";S.default.env.INIT_TEMPLATE_PATH;const Qe=process.env.DATABASE_URL||He.default.join(S.default.env.dataDir,"db/pages-kit.db"),Se=S.default,Ze=()=>S.default.env.tenantMode==="multiple",et=()=>{var t;return(We.default(Se.env.preferences.multiTenantAllProjectAccessPassports)?[]:(t=Se.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:t.split(","))||[]},tt=T.DataTypes.sqlite.DATE.parse;T.DataTypes.sqlite.DATE.parse=(t,s)=>typeof t=="number"?new Date(t):tt(t,s);const z=new T.Sequelize({dialect:"sqlite",storage:Qe,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});z.query("pragma journal_mode = WAL;");z.query("pragma synchronous = normal;");z.query("pragma journal_size_limit = 67108864;");class ee extends T.Model{}ee.init({id:{type:T.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:T.DataTypes.UUIDV4},projectId:{type:T.DataTypes.UUID,allowNull:!1},componentId:{type:T.DataTypes.STRING,allowNull:!1}},{sequelize:z,tableName:"ProjectComponents",timestamps:!1});class C extends T.Model{static async getProjectByIdOrSlug(s){return C.findOne({where:{[T.Op.or]:[{id:s},{slug:s}]}})}}C.init({id:{type:T.DataTypes.UUID,defaultValue:T.DataTypes.UUIDV4,primaryKey:!0},name:{type:T.DataTypes.STRING,allowNull:!1},description:T.DataTypes.TEXT,createdAt:T.DataTypes.DATE,updatedAt:T.DataTypes.DATE,createdBy:{type:T.DataTypes.STRING,allowNull:!1},updatedBy:{type:T.DataTypes.STRING,allowNull:!1},slug:T.DataTypes.STRING,icon:T.DataTypes.STRING,pinnedAt:T.DataTypes.DATE,useAllResources:T.DataTypes.BOOLEAN,relatedBlocklets:{type:T.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(t){this.setDataValue("relatedBlocklets",JSON.stringify(t||{}))}}},{sequelize:z,paranoid:!0});C.hasMany(ee,{foreignKey:"projectId",as:"components"});const st="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",oe="page",ie="trigger-reload-project-resource",de=st,nt="z2qa7rr3eUyVnWp2PCxEVARuUfLFh6cE5V2xV",{uploadToMediaKit:at}=require("@blocklet/uploader-server"),ce=Me.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),fe=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,$=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,we=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,rt=1e4,ot=3e4,K=0,ne=1,it=0,ct=1,le=S.default,B=f.join(process.env.BLOCKLET_DATA_DIR,"site-state"),lt=["production","draft"],pt=["production"];function je(t){return(t==null?void 0:t.replace(/\//g,"|"))||""}function ut(){var e;const t=le.env.languages.map(n=>({locale:n.code,name:n.name})),s=(e=t[0])==null?void 0:e.locale;return{pageIds:[],pages:{},components:{},supportedLocales:t,config:{defaultLocale:s},resources:{}}}const U=class U extends q.Doc{constructor(s){super(),this.options=s,this.states={},this.conns=new Map,this.awarenessChangeHandler=({added:e,updated:n,removed:a},o)=>{const l=e.concat(n,a);if(o!==null){const c=this.conns.get(o);c&&(e.forEach(g=>{c.add(g)}),a.forEach(g=>{c.delete(g)}))}const i=j.createEncoder();j.writeVarUint(i,ne),j.writeVarUint8Array(i,M.encodeAwarenessUpdate(this.awareness,l));const r=j.toUint8Array(i);this.conns.forEach((c,g)=>this.send(g,r))},this.updateHandler=e=>{const n=j.createEncoder();j.writeVarUint(n,K),te.writeUpdate(n,e);const a=j.toUint8Array(n);this.conns.forEach((o,l)=>this.send(l,a))},this.ensureDataStructure=()=>{var l;const{supportedLocales:e,pages:n,pageIds:a,config:o}=this.syncedStore;{const i=new Set(Object.keys(n));let r=0;for(;r<a.length;){const c=a[r];i.has(c)?(i.delete(c),r++):a.splice(r,1)}}e.splice(0,e.length),e.push(...le.env.languages.map(i=>({locale:i.code,name:i.name}))),o.defaultLocale=(l=e[0])==null?void 0:l.locale;{let i=0;const r=new Set;for(;i<e.length;){const{locale:c}=e[i];r.has(c)?e.splice(i,1):(i++,r.add(c))}}},this.send=(e,n)=>{e.readyState!==it&&e.readyState!==ct&&this.closeConn(e);try{e.send(n,a=>{a&&this.closeConn(e)})}catch{this.closeConn(e)}},this.closeConn=e=>{if(e.removeAllListeners(),this.conns.has(e)){const n=this.conns.get(e);this.conns.delete(e),n&&M.removeAwarenessStates(this.awareness,Array.from(n),null)}e.close()},this.autoSave=_.debounce(()=>{y.mkdirSync(f.dirname(this.draftYjsFilePath),{recursive:!0}),y.writeFileSync(this.draftYjsFilePath,q.encodeStateAsUpdate(this))},rt),this.save=({flush:e=!1}={})=>{this.autoSave(),e&&this.autoSave.flush()},this.publish=async({mode:e,pages:n})=>{const a=await this.getState("draft"),o=await this.getState("production");await pe(a,o,{pages:n,pageMergeMode:"replace",deletePages:!0,publishMode:e}),o.config.publishedAt=new Date().getTime();for(const l of n||Object.keys(this.syncedStore.pages))this.syncedStore.pages[l]&&(this.syncedStore.pages[l].publishedAt=new Date().toISOString());await this.setState(e,o)},this.mergeState=async(e,n)=>{var i,r,c;const a=JSON.parse(JSON.stringify(n));(i=e.config).fontFamily??(i.fontFamily={});const o=(r=a.config)==null?void 0:r.fontFamily,l=(c=e.config)==null?void 0:c.fontFamily;e.config.fontFamily.title=(o==null?void 0:o.title)||(l==null?void 0:l.title),e.config.fontFamily.description=(o==null?void 0:o.description)||(l==null?void 0:l.description),await new Promise((g,p)=>{this.transact(async()=>{try{const h=await pe(e,n);g(h)}catch(h){p(h)}})})},this.addConnection=e=>{if(this.conns.has(e))return;e.binaryType="arraybuffer",this.conns.set(e,new Set),e.on("message",o=>this.messageListener(e,new Uint8Array(o)));let n=!0;const a=setInterval(()=>{if(!n)this.conns.has(e)&&this.closeConn(e),clearInterval(a);else if(this.conns.has(e)){n=!1;try{e.ping()}catch{this.closeConn(e),clearInterval(a)}}},ot);e.on("close",()=>{this.closeConn(e),clearInterval(a)}),e.on("pong",()=>{n=!0});{const o=j.createEncoder();j.writeVarUint(o,K),te.writeSyncStep1(o,this),this.send(e,j.toUint8Array(o));const l=this.awareness.getStates();if(l.size>0){const i=j.createEncoder();j.writeVarUint(i,ne),j.writeVarUint8Array(i,M.encodeAwarenessUpdate(this.awareness,Array.from(l.keys()))),this.send(e,j.toUint8Array(i))}}},this.messageListener=(e,n)=>{try{const a=j.createEncoder(),o=se.createDecoder(n),l=se.readVarUint(o);switch(l){case K:j.writeVarUint(a,K),te.readSyncMessage(o,a,this,null),j.length(a)>1&&(this.ensureDataStructure(),this.send(e,j.toUint8Array(a)));break;case ne:{M.applyAwarenessUpdate(this.awareness,se.readVarUint8Array(o),e);break}default:O.logger.warn(`Unsupported messageType ${l}`)}}catch(a){O.logger.error(a)}this.save()},y.existsSync(this.draftYjsFilePath)&&q.applyUpdate(this,y.readFileSync(this.draftYjsFilePath)),this.syncedStore=Ne.reactive(H.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new M.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(s){if(!s)throw new Error("Should provide project context");try{const e=f.join(B,s),n=f.join(B,`@del-${s}`);y.renameSync(e,n)}catch(e){O.logger.error("Failed to safe delete project state dir:",e)}}static get projectIds(){return re.globSync("*/",{cwd:B,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(s=>U.shared(s))}static shared(s){if(!s)throw new Error("Should provide project context");let e=this.sharedInstances.get(s);return e||(e=new U({path:f.join(B,s)}),this.sharedInstances.set(s,e),e)}destroy(){this.conns.forEach((s,e)=>this.closeConn(e)),this.awareness.destroy(),super.destroy()}initObserver(){const s=n=>{n.observeDeep(a=>{a.some(o=>o.changes.keys.has("updatedAt")||o.changes.keys.has("publishedAt"))||n.set("updatedAt",new Date().toISOString())})};this.syncedStore.pages&&Object.keys(this.syncedStore.pages).forEach(n=>{const a=H.getYjsValue(this.syncedStore.pages[n]);a&&a instanceof q.Map&&s(a)});const e=H.getYjsValue(this.syncedStore.pages);e&&e instanceof q.Map&&e.observe(n=>{n.changes.keys.forEach((a,o)=>{if(a.action==="add"){const l=H.getYjsValue(this.syncedStore.pages[o]);l&&l instanceof q.Map&&s(l)}})})}get draftYjsFilePath(){return f.join(this.options.path,"draft.yjs")}async getState(s){var e,n,a,o;if(s==="draft")return JSON.parse(JSON.stringify(this.syncedStore));if(!this.states[s]&&(this.states[s]=await ge(this.getPublishDir(s),{includeResources:!0})??ut(),!((n=(e=this.states[s])==null?void 0:e.config)!=null&&n.defaultLocale))){(a=this.states[s]).config??(a.config={});const l=le.env.languages.map(i=>({locale:i.code,name:i.name}));this.states[s].config.defaultLocale=(o=l[0])==null?void 0:o.locale}return{...this.states[s],resources:await Le().then(async l=>{var g,p,h,v;const{pages:i,components:r}=_.pick(l,"pages","components");let c=r;if((p=(g=this.states[s])==null?void 0:g.resources)!=null&&p.components)c={...(v=(h=this.states[s])==null?void 0:h.resources)==null?void 0:v.components};else{const I=f.basename(this.options.path),D=await C.findByPk(I);if(D!=null&&D.useAllResources)c=r;else{const N=(await ee.findAll({where:{projectId:I}})).map(m=>m.componentId);c=Object.fromEntries(Object.entries(r||{}).filter(([m])=>N.includes(m)))}}return{pages:i,components:c}}).catch(()=>({}))}}async setState(s,e){const n=await Oe(e,{exportAssets:!1,includeResources:!0}),a=this.getPublishDir(s);y.mkdirSync(f.dirname(a),{recursive:!0}),y.rmSync(a,{force:!0,recursive:!0}),y.renameSync(n,a),this.states[s]=e}getPublishDir(s){return f.join(this.options.path,s)}static async pageUrlMap(s){const{projectIds:e}=this,n={};for(const a of e){const o=await C.findByPk(a);if(!o)continue;const l=await U.shared(a).getState(s),i=_.union(S.default.env.languages.map(r=>r.code),l.supportedLocales.map(r=>r.locale));for(const r of l.pageIds){const c=l.pages[r];if(!c||s==="production"&&!c.isPublic)continue;const g=c.slug,p=o.slug||a,h={projectId:a,projectSlug:p,pageSlug:g,pageId:r,defaultLocale:i==null?void 0:i[0],locales:i,publishedAt:l.config.publishedAt,isPublic:c.isPublic,isTemplate:c.isTemplate};p&&(n[x.joinURL("/",p,g)]={...h,shouldRedirect:!0,mainPage:!0}),n[x.joinURL("/",a,g)]={...h,shouldRedirect:!0,mainPage:!0};for(const v of i){const I={...h,locale:v};n[x.joinURL("/",v,a,g)]=I,p&&(n[x.joinURL("/",v,p,g)]=I)}}}return n}};U.INSTANCE_TTL=30*60*1e3,U.sharedInstances=new Te.LRUCache({max:100,ttl:U.INSTANCE_TTL,dispose:s=>{s.destroy()}});let J=U;function ve(){return y.mkdtempSync(f.join(S.default.env.dataDir,"tmp-"))}function X(t,s,e=[]){return Array.isArray(t)?t.flatMap((n,a)=>X(n,s,[...e,a])):typeof t=="object"?t===null?[]:Object.entries(t).flatMap(([n,a])=>X(a,s,[...e,n])):s(t)?[e]:[]}function L(t){return t.filter(s=>s!=null)}async function dt(t,s,e){if(!t||!y.existsSync(t)||!y.lstatSync(t).isFile())return null;let n=e[t];return n||(n=(async()=>(await at({filePath:t,fileName:s})).data.filename)(),e[t]=n),n}const ft=async(t,s)=>{const e=f.basename(t),n=await ue.call({name:de,path:x.joinURL("/uploads",e),responseType:"stream",method:"GET"});if(n.status>=200&&n.status<400){const a=y.createWriteStream(s);await Be.pipeline(n.data,a)}else throw new Error(`download asset failed ${n.status}`)},gt=async(t,s)=>{await Promise.all(t.map(async e=>{try{await ft(e,f.join(s,f.basename(e)))}catch(n){O.logger.error(`Failed to export assets: ${e}, ${n}`)}}))};function Ie(t){return fe.test(t)?[t]:$.test(t)?(we.lastIndex=0,Array.from(t.matchAll(we)).map(e=>e[1]).filter(e=>!!e)):[]}async function ae(t,s,e){const{getFilename:n,exportAssets:a}=e,o=f.join(s,n(t));if(y.mkdirSync(f.dirname(o),{recursive:!0}),y.writeFileSync(o,V.stringify(t)),a){const i=X(t,r=>typeof r=="string"&&(fe.test(r)||$.test(r))).map(r=>{const c=_.get(t,r);return Ie(c)}).flat().filter(Boolean);await gt(i,f.dirname(o))}}const Ee=new Te.LRUCache({max:1e3,ttl:30*24*60*60*1e3});async function be(t,s,e){var i;const n=X(t,r=>typeof r=="string"&&(fe.test(r)||$.test(r))),a=ze.default(2),o=n.map(r=>a(async()=>{try{const c=_.get(t,r),g=Ie(c);for(const p of g){const h=f.basename(p),v=e.getFilePath(p,r),I=v?`${v}:${h}`:h,D=Ee.get(I);if(D){$.test(c)||_.set(t,r,D);return}const R=await dt(v,h,s);R&&($.test(c)||_.set(t,r,R),Ee.set(I,R))}}catch(c){O.logger.error(`Failed to process upload for path ${r.join(".")}:`,c.message||c.reason)}})),l=await Promise.allSettled(o);(i=e.onFinish)==null||i.call(e,l)}async function Oe(t,{exportAssets:s,pageIds:e="all",componentIds:n="all",rawConfig:a,includeResources:o=!1}={}){var N,F,m,b,E,A;const l=e==="all"?t.pageIds:e,i=mt({state:t,pageIds:l,componentIds:n==="all"?Object.keys(t.components):n}),r=(d,u)=>{var w;return{id:d.id,name:d.name,isTemplateSection:d.isTemplateSection??!1,component:d.component,config:d.config,visibility:d.visibility,properties:((w=d.locales)==null?void 0:w[u])??{}}},c=(d,u)=>{var w;return{id:d.id,createdAt:d.createdAt,updatedAt:d.updatedAt,publishedAt:d.publishedAt,isPublic:d.isPublic??!0,isTemplate:d.isTemplate??!1,meta:((w=d.locales)==null?void 0:w[u])??{},sections:L(d.sectionIds.map(P=>{const k=d.sections[P];return k&&r(k,u)}))}},g=L(t.supportedLocales.map(d=>d.locale).flatMap(d=>l.map(u=>{const w=t.pages[u];return w&&{locale:d,slug:w.slug,page:c(w,d)}}))),p=ve(),h=f.join(p,"pages");y.mkdirSync(h,{recursive:!0});const v=f.join(p,"components");y.mkdirSync(v,{recursive:!0});for(const{locale:d,slug:u,page:w}of g)await ae(w,h,{getFilename:()=>`${je(u)||"index"}.${d}.yml`,exportAssets:s});for(const d of i){const u=(N=t.components[d])==null?void 0:N.data;u&&await ae(u,v,{getFilename:w=>`${w.name||"unnamed"}.${w.id}.yml`,exportAssets:s})}const I=f.join(p,".blocklet/pages/pages.config.yml");y.mkdirSync(f.dirname(I),{recursive:!0});const D={pages:L(l.map(d=>{const u=t.pages[d];return u&&{id:d,slug:u.slug}})),components:L(i.map(d=>{var w;const u=(w=t.components[d])==null?void 0:w.data;return u&&{id:d,name:u.name}})),...o?{resources:{components:L(Object.keys(((F=t.resources)==null?void 0:F.components)||{}).map(d=>{var u,w,P,k;return{id:d,name:(k=(P=(w=(u=t.resources)==null?void 0:u.components)==null?void 0:w[d])==null?void 0:P.component)==null?void 0:k.name}}))}}:{},supportedLocales:t.supportedLocales,config:t.config};y.writeFileSync(I,V.stringify(D));const R=f.join(p,"config.source.json");if(a&&y.writeFileSync(R,JSON.stringify(a)),o){const d=f.join(p,"resources"),u=f.join(d,"components");y.mkdirSync(u,{recursive:!0});for(const w of Object.keys(((m=t==null?void 0:t.resources)==null?void 0:m.components)??{})){const P=(A=(E=(b=t.resources)==null?void 0:b.components)==null?void 0:E[w])==null?void 0:A.component;P&&await ae(P,u,{getFilename:k=>`${k.name||"unnamed"}.${k.id}.yml`,exportAssets:s})}}return p}async function ge(t,{importAssets:s,includeResources:e}={}){var o,l,i;if(!y.existsSync(t))return null;let n,a=!1;try{y.lstatSync(t).isDirectory()?n=t:/\.(tgz|gz|tar)$/.test(t)&&(a=!0,n=ve(),await Ve.x({file:t,C:n}));const r=re.globSync("**/.blocklet/pages/pages.config.yml",{cwd:n,absolute:!0}).at(0),c=r&&f.join(f.dirname(r),"../../pages"),g=r&&f.join(f.dirname(r),"../../components"),p=r&&f.join(f.dirname(r),"../../chunks");if(!r)return null;const h=V.parse(y.readFileSync(r).toString()),v=(m,b,E)=>{let A=f.join(m,`${b}${E?`.${E}`:""}.yml`);return(!y.existsSync(A)||!y.lstatSync(A).isFile())&&(A=f.join(m,b,`index${E?`.${E}`:""}.yml`),!y.existsSync(A)||!y.lstatSync(A))?null:V.parse(y.readFileSync(A).toString())},I=(m,b)=>{try{const E=re.globSync(`*.${b}.yml`,{cwd:m,absolute:!0})[0];return E?V.parse(y.readFileSync(E).toString()):null}catch(E){O.logger.error("parse component error",E)}return null},D=L(h.pages.map(({slug:m})=>{var d;const b=L(h.supportedLocales.map(({locale:u})=>{const w=c?v(c,je(m),u):void 0;if(w)return{locale:u,page:w};const P=c?v(c,m,u):void 0;return P&&{locale:u,page:P}})),E=(d=b[0])==null?void 0:d.page;if(!E)return null;const A=E.sections.map(u=>{const w=u.id||ce();return{id:w,component:u.component,config:u.config,name:u.name,isTemplateSection:u.isTemplateSection??!1,visibility:u.visibility,locales:Object.fromEntries(L(b.map(({locale:P,page:k})=>{const he=k.sections.find(Re=>Re.id===w);return he&&[P,he.properties]})))}});return{id:E.id||ce(),createdAt:E.createdAt,updatedAt:E.updatedAt,publishedAt:E.publishedAt,isPublic:E.isPublic??!0,isTemplate:E.isTemplate??!1,slug:m,sections:Object.fromEntries(A.map(u=>[u.id,u])),sectionIds:A.map(u=>u.id),locales:Object.fromEntries(b.map(({locale:u,page:w})=>[u,w.meta]))}})),R=g?L(((o=h.components)==null?void 0:o.map(({id:m})=>I(g,m)))??[]):[];if(s){const m=(...b)=>{O.logger.info(`[${a?f.basename(t):f.basename(f.join(t,"../../../../"))}] importAssets:`,...b)};try{m("wait image-bin api ready"),await Ke.default({resources:[`${ue.getComponentWebEndpoint(Xe)}/api/sdk/uploads`],validateStatus:A=>A>=200&&A<=500}),m("image-bin api is ready");const b={},E={};m("start to upload assets"),await Promise.allSettled([be(R,b,{getFilePath:A=>g&&f.join(g,A),onFinish:A=>{m(`upload ${A.length} component assets`)}}),be(D,E,{getFilePath:(A,d)=>{const u=_.get(D,d.slice(0,1));return c&&f.join(c,f.dirname(u.slug),A)},onFinish:A=>{m(`upload ${A.length} page assets`)}})]),m("upload assets done"),global.gc&&global.gc()}catch(b){m("Error during asset import:",b)}}const N={};if(e){const m=r&&f.join(f.dirname(r),"../../resources/components"),b=L(((i=(l=h.resources)==null?void 0:l.components)==null?void 0:i.map(({id:E})=>I(m,E)))??[]);b.length>0&&(N.components=Object.fromEntries(b.map((E,A)=>[E.id,{index:A,component:E}])))}const F={};if(p&&y.existsSync(p)){const m=y.readdirSync(p);for(const b of m)F[b]=y.readFileSync(f.join(p,b),"utf-8")}return{supportedLocales:h.supportedLocales,pageIds:D.map(m=>m.id),components:Object.fromEntries(R.map((m,b)=>[m.id,{index:b,data:m}])),pages:Object.fromEntries(D.map(m=>[m.id,m])),config:h.config||{},resources:N,chunks:F}}finally{a&&n&&y.rmSync(n,{force:!0,recursive:!0})}}async function pe(t,s,{pages:e,pageMergeMode:n="byUpdateTime",deletePages:a=!1,publishMode:o=void 0}={}){try{o&&O.clearPreloadComponentsCacheByMode(o)}catch(g){O.logger.error("clear preload page cache error",{error:g})}const{pageIds:l,pages:i,supportedLocales:r}=t;for(const g of e??l){const p=i[g];if(!p){const h=s.pageIds.indexOf(g);h!==-1&&a&&(s.pageIds.splice(h,1),delete s.pages[g]);continue}if(s.pageIds.includes(p.id)){if(n==="replace")s.pages[p.id]=p;else if(n==="byUpdateTime"){const h=s.pages[p.id];(!h||p.updatedAt&&p.updatedAt>h.updatedAt)&&(s.pages[p.id]=p)}}else s.pageIds.push(p.id),s.pages[p.id]=p}if(a&&!e)for(const g of s.pageIds)t.pageIds.includes(g)||delete s.pages[g],s.pageIds=[...s.pageIds].filter(p=>t.pageIds.includes(p));if(s.supportedLocales.splice(0,s.supportedLocales.length),s.supportedLocales.push(..._.cloneDeep(r)),a)for(const g of Object.keys(s.components))delete s.components[g];let c=JSON.parse(JSON.stringify(t.components));c=Object.fromEntries(await Promise.all(Object.entries(c).map(async([g,p])=>{const h=await De(p==null?void 0:p.data);return[g,{...p,data:h}]}))),Object.assign(s.components,c),Object.assign(s.config,JSON.parse(JSON.stringify(t.config))),s.resources.components=JSON.parse(JSON.stringify(t.resources.components||{}))}const De=Ue.memoize(async t=>{var s;if(!_.isEmpty(t==null?void 0:t.properties))return t;if(((s=t==null?void 0:t.renderer)==null?void 0:s.type)==="react-component"){const{script:e}=(t==null?void 0:t.renderer)||{};if(e)try{const n=await O.getExportSchemaValueFromCode(e,"PROPERTIES_SCHEMA",t.id);n&&n.length>0&&t&&(t.properties={},n.forEach((a,o)=>{t!=null&&t.properties&&(t.properties[a.id]={index:o,data:a})}))}catch(n){O.logger.error("checkPropertiesFromCode error",{componentId:t.id,name:t.name},{error:n})}}return t},{keyGenerator:t=>JSON.stringify(["checkPropertiesFromCode",t])});function mt({state:t,pageIds:s=[],componentIds:e=[]}){var l;const n=(i,r=new Set)=>(Array.isArray(i)&&i.forEach(c=>n(c,r)),i&&typeof i=="object"&&(typeof i.componentId=="string"&&r.add(i.componentId),Object.values(i).forEach(c=>n(c,r))),r),a=new Set(e);for(const i of s){const r=t.pages[i];n(r,a)}const o=[...a];for(;o.length;){const i=o.shift();a.has(i)||a.add(i);const r=(l=t.components[i])==null?void 0:l.data;if(r)for(const c of n(r))a.has(c)||o.push(c)}return[...a]}let Q,G,me,ye;function Pe(){return Q=(async()=>{const t=ue.getResources({types:[{did:de,type:oe},{did:nt,type:oe}]});G=(await Promise.all(t.map(async e=>{const n=e.path?await ge(e.path,{importAssets:!1}):void 0;return n?{blockletId:e.did,state:n,blockletTitle:e.title}:void 0}))).filter(e=>!!e),me=G.reduce((e,n)=>Object.assign(e,Object.fromEntries(Object.values(n.state.pages).map(a=>a?[a==null?void 0:a.id,{page:a,blockletId:n.blockletId}]:[]))),{});const s=G.reduce((e,n)=>Object.assign(e,Object.fromEntries(Object.values(n.state.components).map(a=>[a.data.id,{blockletId:n.blockletId,component:a.data}]))),{});ye=Object.fromEntries(await Promise.all(Object.entries(s).map(async([e,n])=>{const a=await De(n.component);return[e,{...n,component:a}]})))})(),Q}function _e(t){const s=_.debounce(async()=>{await Pe().catch(e=>{O.logger.error("load resource states error",{error:e})}),await(t==null?void 0:t({states:G,pages:me,components:ye}))},3e3,{leading:!1,trailing:!0});return s(),S.default.events.on(S.default.Events.componentAdded,s),S.default.events.on(S.default.Events.componentRemoved,s),S.default.events.on(S.default.Events.componentStarted,s),S.default.events.on(S.default.Events.componentStopped,s),S.default.events.on(S.default.Events.componentUpdated,s),S.default.events.on(ie,s),()=>{S.default.events.off(S.default.Events.componentAdded,s),S.default.events.off(S.default.Events.componentRemoved,s),S.default.events.off(S.default.Events.componentStarted,s),S.default.events.off(S.default.Events.componentStopped,s),S.default.events.off(S.default.Events.componentUpdated,s),S.default.events.off(ie,s)}}const ke=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),W=globalThis;var Ae;(Ae=W[ke])==null||Ae.call(W);W[ke]=_e(async({pages:t,components:s})=>{const{projectIds:e}=J;await Promise.all(e.map(async n=>{const a=J.shared(n);a.syncedStore.resources.pages=t;const o=await C.findByPk(n);if(o!=null&&o.useAllResources)a.syncedStore.resources.components=s;else{const i=(await ee.findAll({where:{projectId:n}})).map(c=>c.componentId),r=Object.fromEntries(Object.entries(s||{}).filter(([c])=>i.includes(c)));a.syncedStore.resources.components=r}O.logger.info(`update [${n}] resource states:`,{pages:Object.keys(a.syncedStore.resources.pages||{}).length,components:Object.keys(a.syncedStore.resources.components||{}).length})}))});async function yt(){O.logger.info("trigger reload all project resource"),S.default.events.emit(ie)}async function Le(){return Q??(Q=Pe()),await Q,{states:G,pages:me,components:ye}}exports.COMPONENT_DID=de;exports.PUBLISH_MODES=pt;exports.Project=C;exports.RESOURCE_TYPE=oe;exports.SITE_STATE_PATH=B;exports.STATE_MODES=lt;exports.SiteState=J;exports.fromPackage=ge;exports.getMultiTenantAllProjectAccessPassports=et;exports.getResourceStates=Le;exports.initPackResourceStates=_e;exports.isMultiTenant=Ze;exports.mergeState=pe;exports.nextId=ce;exports.toPackage=Oe;exports.triggerReloadAllProjectResource=yt;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,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");const e=require("./_chunks/components-DITf866E.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;
1
+ "use strict";Object.defineProperty(exports,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");const e=require("./_chunks/components-CGE2womb.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;
@@ -0,0 +1,23 @@
1
+ "use strict";const S=require("./_chunks/components-CGE2womb.js"),T=require("@blocklet/crawler/middlewares"),J=require("@blocklet/pages-kit/types"),G=require("@blocklet/pages-kit/utils/preload"),z=require("@blocklet/sdk/lib/component"),R=require("@blocklet/sdk/lib/config"),K=require("cheerio"),Q=require("express"),L=require("fs"),V=require("mustache"),A=require("path"),D=require("ufo"),U=e=>e&&e.__esModule?e:{default:e};function X(e){if(e&&e.__esModule)return e;const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const d in e)if(d!=="default"){const t=Object.getOwnPropertyDescriptor(e,d);Object.defineProperty(a,d,t.get?t:{enumerable:!0,get:()=>e[d]})}}return a.default=e,Object.freeze(a)}const i=U(R),q=X(K),Y=U(V),Z=["/assets/"],x=()=>[!0,"true"].includes(i.default.env.preferences.allowCrawler);function H(){x()?T.initCronCrawlBlocklet({time:"30 30 */12 * * *",options:{}}):T.cancelCronCrawlBlocklet()}H();i.default.events.on(i.default.Events.envUpdate,H);function F({app:e,viteDevServer:a,projectId:d,state:t}){let _;if(a){const n=L.readFileSync(A.resolve(process.cwd(),"./index.html"),"utf-8");e.use(async(y,E,P)=>{const b=y.originalUrl;_=await a.transformIndexHtml(b,n),P()})}else _=L.readFileSync(A.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const k=Q.Router();k.use(T.initSEOMiddleware({autoReturnHtml:!1,allowCrawler:x})),k.get("/:path(*)?",async(n,y,E)=>{var O,$,M;if(Z.some(c=>n.path.startsWith(c))){E();return}const P=performance.now(),b=()=>Math.round(performance.now()-P),N="production";let r,m,C=_;if(n.path.startsWith("/pages")){const c=n.params.lang,h=n.cookies.nf_lang,g=new Set([...i.default.env.languages.map(u=>u.code)]);let p=(c&&g.has(c)?c:void 0)||(g.has(h)?h:void 0)||[...g][0];if((!p||!((O=t.supportedLocales)!=null&&O.find(u=>u.locale===p)))&&(p=((M=($=t.supportedLocales)==null?void 0:$[0])==null?void 0:M.locale)||""),p){const u=[];Object.values(t.pages).forEach(s=>{const v=Object.values((s==null?void 0:s.sections)??{}).filter(l=>{var w;return l.component==="custom-component"&&((w=l.config)==null?void 0:w.componentId)}).map(l=>{var w,I;return{id:l.id,componentId:l.config.componentId,useCache:l.config.useCache,cacheDuration:l.config.cacheDuration,properties:(I=(w=l.locales)==null?void 0:w[p])==null?void 0:I.properties}});u.push(...v)});const B=new Promise((s,v)=>{setTimeout(()=>{v(new Error("getPreloadComponents timeout in promise race, skip it"))},90*1e3)});try{await Promise.race([B,S.getPreloadComponents({mode:N,req:n,state:t,locale:p,instances:u,module:J.PreloadComponentScriptModule.UMD_FN}).then(s=>{s&&(m=G.injectPreloadComponents(s))})])}catch{S.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements")}}}try{const c=(r==null?void 0:r.title)||i.default.env.appName,h=(r==null?void 0:r.description)||i.default.env.appDescription,g=D.withQuery(D.joinURL(i.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:c,description:h});C=Y.default.render(_,{ogTitle:c,ogDescription:h,ogImage:ee(r==null?void 0:r.image)||g,pagesPublishedAt:(t==null?void 0:t.config.publishedAt)||new Date().getTime()})}catch{}const o=t==null?void 0:t.config.fontFamily,W=n.query.mode==="draft"||n.url.includes("preview"),f=q.load(C);f("head").find("#injected-head-elements").replaceWith(`
2
+
3
+ ${o!=null&&o.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${o.title}&display=swap">`:""}
4
+ ${o!=null&&o.description&&(o==null?void 0:o.description)!==(o==null?void 0:o.title)?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${o.description}&display=swap">`:""}
5
+ <script>
6
+ window.__PROJECT_ID__ = "${d}"
7
+ window.__PAGE_STATE__ = ${JSON.stringify(t)}
8
+
9
+ document.querySelectorAll('link[rel="preload"][as="style"]').forEach(function (link) {
10
+ const l = document.createElement('link');
11
+ l.rel = 'stylesheet';
12
+ l.href = link.href;
13
+ document.head.appendChild(l);
14
+ });
15
+ <\/script>
16
+
17
+ ${W?`<script src="https://cdn.tailwindcss.com"><\/script>
18
+ <script>
19
+ window.tailwind.config = {
20
+ darkMode: "class",
21
+ };
22
+ <\/script>`:""}
23
+ `);const j=R.getBlockletJs();if(j&&f('script[src="__blocklet__.js"]').replaceWith(`<script>${j}<\/script>`),m!=null&&m.html&&f("head").find("#injected-html-elements").replaceWith(m.html),n.cachedHtml){const c=q.load(n.cachedHtml);f("body").html(c("body").html()||"")}C=f.html(),y.send(C),S.logger.info(`[html] render: ${n.path}, ${b()}ms`)}),e.use(k)}function ee(e){return z.getComponentMountPoint("image-bin"),e}module.exports=F;
@@ -1 +1 @@
1
- "use strict";const c=require("./_chunks/site-state-kBaXBQhY.js"),b=require("./_chunks/components-DITf866E.js"),U=require("async_hooks"),F=require("express"),J=require("fs"),X=require("joi"),O=require("lodash"),N=require("path"),W=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),E=t=>t&&t.__esModule?t:{default:t},p=E(J),I=E(X),k=E(N),v=E(W);new U.AsyncLocalStorage;const K=async(t,e,o)=>{var n,s,r,a;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const P=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!P)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===P,i=(a=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:a.call(r,h);if(!w&&!i)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){b.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function T(t,e){return new Promise((o,n)=>{const s=p.default.createReadStream(t),r=p.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function B(t,e){await p.default.promises.mkdir(e,{recursive:!0});const o=await p.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await B(s,r):await T(s,r)}}async function Y(t,e){(await p.default.promises.stat(t)).isDirectory()?await B(t,e):await T(t,e)}const D=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),$=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return N.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=F.Router(),q="@page",L="@component",y=":",_="ALL",M="@project",C=({pageId:t,projectId:e})=>[q,e,t].join(y),z=t=>{const[e,o,n]=t.split(y);if(e===q)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[L,e,t].join(y),H=t=>{const[e,o,n]=t.split(y);if(e===L)return{componentId:n,projectId:o}},Q=t=>[M,t].join(y),V=t=>{const[e,o]=t.split(y);if(e===M)return o},Z=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const a=e.pages[r];if(a)return{id:C({pageId:r,projectId:t}),name:a.slug}}).filter(Boolean),s=O.sortBy(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Q(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:_,projectId:t}),name:"Pages",children:n},{id:A({componentId:_,projectId:t}),name:"Components",children:s}]}}S.get("/resources",D,async(t,e)=>{const{projectId:o}=Z(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await K(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const tt=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",D,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await tt.validateAsync(t.body),r="production",a=[],u=[];for(const i of o){if(V(i))continue;const{pageId:m,projectId:j}=z(i)||{};if(m)m===_||m&&j&&a.push({pageId:m,projectId:j});else{const{componentId:l,projectId:d}=H(i)||{};l===_||l&&d&&u.push({componentId:l,projectId:d})}}const f=O.groupBy(a,"projectId"),P=O.groupBy(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(P)]),w=$(n,s);p.default.rmSync(w,{recursive:!0,force:!0}),p.default.mkdirSync(w,{recursive:!0});for(const i of h){const m=await c.SiteState.shared(i).getState(r),j=f[i],l=P[i],d=j==null?void 0:j.map(g=>g.pageId),R=l==null?void 0:l.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await Y(g,w),p.default.rmSync(g,{recursive:!0,force:!0})}b.logger.info(`Exported resources for project ${i}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",D,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;
1
+ "use strict";const c=require("./_chunks/site-state-BjTlKyaF.js"),b=require("./_chunks/components-CGE2womb.js"),U=require("async_hooks"),F=require("express"),J=require("fs"),X=require("joi"),O=require("lodash"),N=require("path"),W=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),E=t=>t&&t.__esModule?t:{default:t},p=E(J),I=E(X),k=E(N),v=E(W);new U.AsyncLocalStorage;const K=async(t,e,o)=>{var n,s,r,a;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const P=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!P)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===P,i=(a=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:a.call(r,h);if(!w&&!i)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){b.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function T(t,e){return new Promise((o,n)=>{const s=p.default.createReadStream(t),r=p.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function B(t,e){await p.default.promises.mkdir(e,{recursive:!0});const o=await p.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await B(s,r):await T(s,r)}}async function Y(t,e){(await p.default.promises.stat(t)).isDirectory()?await B(t,e):await T(t,e)}const D=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),$=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return N.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=F.Router(),q="@page",L="@component",y=":",_="ALL",M="@project",C=({pageId:t,projectId:e})=>[q,e,t].join(y),z=t=>{const[e,o,n]=t.split(y);if(e===q)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[L,e,t].join(y),H=t=>{const[e,o,n]=t.split(y);if(e===L)return{componentId:n,projectId:o}},Q=t=>[M,t].join(y),V=t=>{const[e,o]=t.split(y);if(e===M)return o},Z=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const a=e.pages[r];if(a)return{id:C({pageId:r,projectId:t}),name:a.slug}}).filter(Boolean),s=O.sortBy(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Q(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:_,projectId:t}),name:"Pages",children:n},{id:A({componentId:_,projectId:t}),name:"Components",children:s}]}}S.get("/resources",D,async(t,e)=>{const{projectId:o}=Z(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await K(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const tt=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",D,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await tt.validateAsync(t.body),r="production",a=[],u=[];for(const i of o){if(V(i))continue;const{pageId:m,projectId:j}=z(i)||{};if(m)m===_||m&&j&&a.push({pageId:m,projectId:j});else{const{componentId:l,projectId:d}=H(i)||{};l===_||l&&d&&u.push({componentId:l,projectId:d})}}const f=O.groupBy(a,"projectId"),P=O.groupBy(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(P)]),w=$(n,s);p.default.rmSync(w,{recursive:!0,force:!0}),p.default.mkdirSync(w,{recursive:!0});for(const i of h){const m=await c.SiteState.shared(i).getState(r),j=f[i],l=P[i],d=j==null?void 0:j.map(g=>g.pageId),R=l==null?void 0:l.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await Y(g,w),p.default.rmSync(g,{recursive:!0,force:!0})}b.logger.info(`Exported resources for project ${i}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",D,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("./_chunks/components-DITf866E.js");const e=require("./_chunks/site-state-kBaXBQhY.js");require("@blocklet/quickjs");require("@blocklet/sdk/lib/component");require("@blocklet/sdk/lib/config");require("@reactivedata/reactive");require("@syncedstore/core");require("fs");require("glob");require("lib0/decoding");require("lib0/encoding");require("lodash");require("lru-cache");require("nanoid");require("p-limit");require("path");require("stream/promises");require("tar");require("ufo");require("wait-on");require("y-protocols/awareness");require("y-protocols/sync");require("yaml");require("yjs");exports.PUBLISH_MODES=e.PUBLISH_MODES;exports.SITE_STATE_PATH=e.SITE_STATE_PATH;exports.STATE_MODES=e.STATE_MODES;exports.default=e.SiteState;exports.fromPackage=e.fromPackage;exports.getResourceStates=e.getResourceStates;exports.initPackResourceStates=e.initPackResourceStates;exports.mergeState=e.mergeState;exports.nextId=e.nextId;exports.toPackage=e.toPackage;exports.triggerReloadAllProjectResource=e.triggerReloadAllProjectResource;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("./_chunks/components-CGE2womb.js");const e=require("./_chunks/site-state-BjTlKyaF.js");require("@blocklet/quickjs");require("@blocklet/sdk/lib/component");require("@blocklet/sdk/lib/config");require("@reactivedata/reactive");require("@syncedstore/core");require("fs");require("glob");require("lib0/decoding");require("lib0/encoding");require("lodash");require("lru-cache");require("nanoid");require("p-limit");require("path");require("stream/promises");require("tar");require("ufo");require("wait-on");require("y-protocols/awareness");require("y-protocols/sync");require("yaml");require("yjs");exports.PUBLISH_MODES=e.PUBLISH_MODES;exports.SITE_STATE_PATH=e.SITE_STATE_PATH;exports.STATE_MODES=e.STATE_MODES;exports.default=e.SiteState;exports.fromPackage=e.fromPackage;exports.getResourceStates=e.getResourceStates;exports.initPackResourceStates=e.initPackResourceStates;exports.mergeState=e.mergeState;exports.nextId=e.nextId;exports.toPackage=e.toPackage;exports.triggerReloadAllProjectResource=e.triggerReloadAllProjectResource;
@@ -75,14 +75,14 @@ ${e}
75
75
  {
76
76
  name: "vfs",
77
77
  setup(l) {
78
- l.onResolve({ filter: /.*/ }, (i) => i.path === "index.tsx" ? { path: "index.tsx", namespace: "vfs" } : i.path === "./component" ? { path: "component.tsx", namespace: "vfs" } : null), l.onLoad({ filter: /.*/, namespace: "vfs" }, async (i) => i.path === "index.tsx" ? { contents: `export { ${t} } from './component'`, loader: "tsx" } : i.path === "component.tsx" ? { contents: e, loader: "tsx" } : null);
78
+ l.onResolve({ filter: /.*/ }, (c) => c.path === "index.tsx" ? { path: "index.tsx", namespace: "vfs" } : c.path === "./component" ? { path: "component.tsx", namespace: "vfs" } : null), l.onLoad({ filter: /.*/, namespace: "vfs" }, async (c) => c.path === "index.tsx" ? { contents: `export { ${t} } from './component'`, loader: "tsx" } : c.path === "component.tsx" ? { contents: e, loader: "tsx" } : (console.warn("onLoad 11111111", c.path), null));
79
79
  }
80
80
  }
81
81
  ]
82
82
  })).outputFiles) == null ? void 0 : n[0]) == null ? void 0 : s.contents;
83
83
  if (!r) throw new Error("Failed to build server code");
84
- const c = Buffer.from(r).toString();
85
- return d.transpileModule(c, {
84
+ const i = Buffer.from(r).toString();
85
+ return d.transpileModule(i, {
86
86
  compilerOptions: { module: d.ModuleKind.ESNext, target: d.ScriptTarget.ES2020 }
87
87
  }).outputText;
88
88
  }, N = O(
@@ -121,7 +121,7 @@ async function Pe({
121
121
  req: t,
122
122
  state: o,
123
123
  locale: r,
124
- instances: c,
124
+ instances: i,
125
125
  module: a
126
126
  }) {
127
127
  const {
@@ -130,7 +130,7 @@ async function Pe({
130
130
  } = o;
131
131
  if (!s) return null;
132
132
  const l = (await Promise.all(
133
- c.map(async (p) => {
133
+ i.map(async (p) => {
134
134
  const u = ne({
135
135
  mode: e,
136
136
  instanceId: p.id,
@@ -159,12 +159,12 @@ async function Pe({
159
159
  }
160
160
  return P;
161
161
  })
162
- )).filter((p) => !!p), i = Object.values(
162
+ )).filter((p) => !!p), c = Object.values(
163
163
  l.reduce((p, u) => ({ ...p, ...u.preload.components }), {})
164
164
  );
165
165
  async function m() {
166
166
  const p = await Promise.all(
167
- i.map(async (u) => {
167
+ c.map(async (u) => {
168
168
  const h = v({ componentId: u.component.id }), S = a === $.ESM ? {
169
169
  module: a,
170
170
  script: await I(u.script, {
@@ -203,17 +203,17 @@ async function re({
203
203
  state: t,
204
204
  componentId: o,
205
205
  locale: r,
206
- defaultLocale: c,
206
+ defaultLocale: i,
207
207
  properties: a
208
208
  }) {
209
209
  const { supportedLocales: n } = t, s = C({ state: t, componentId: o });
210
210
  if (!s) return null;
211
- const l = n.some((m) => m.locale === r) ? r : c;
211
+ const l = n.some((m) => m.locale === r) ? r : i;
212
212
  if (!l) return null;
213
- const i = await R({ req: e, state: t, componentId: o, locale: l, defaultLocale: c, properties: a });
214
- return i ? {
213
+ const c = await R({ req: e, state: t, componentId: o, locale: l, defaultLocale: i, properties: a });
214
+ return c ? {
215
215
  component: s,
216
- ...i
216
+ ...c
217
217
  } : null;
218
218
  }
219
219
  const se = 20;
@@ -222,21 +222,21 @@ async function R({
222
222
  depth: t = 0,
223
223
  state: o,
224
224
  componentId: r,
225
- locale: c,
225
+ locale: i,
226
226
  defaultLocale: a,
227
227
  properties: n
228
228
  }) {
229
229
  if (t > se) throw new RangeError("max component depth exceeded");
230
- const s = ce({ state: o, componentId: r, properties: n, locale: c });
230
+ const s = ce({ state: o, componentId: r, properties: n, locale: i });
231
231
  if (!s) return null;
232
- const { props: l } = s, i = {
233
- locale: c || a,
232
+ const { props: l } = s, c = {
233
+ locale: i || a,
234
234
  components: { [s.component.id]: { component: s.component, script: s.script } },
235
235
  props: { ...l }
236
236
  };
237
237
  try {
238
238
  const m = await ie({ ...s, req: e });
239
- m != null && m.props && Object.assign(i.props, m.props);
239
+ m != null && m.props && Object.assign(c.props, m.props);
240
240
  } catch (m) {
241
241
  g.error("preload data at server side error", { componentId: r, name: s.component.name }, { error: m });
242
242
  }
@@ -248,11 +248,11 @@ async function R({
248
248
  depth: t + 1,
249
249
  state: o,
250
250
  componentId: f.componentId,
251
- locale: c,
251
+ locale: i,
252
252
  defaultLocale: a,
253
253
  properties: f.properties
254
254
  });
255
- x && (Object.assign(i.components, x.components), Object.assign(i.props, {
255
+ x && (Object.assign(c.components, x.components), Object.assign(c.props, {
256
256
  [m]: {
257
257
  type: M,
258
258
  componentId: f.componentId,
@@ -261,7 +261,7 @@ async function R({
261
261
  }));
262
262
  }
263
263
  })
264
- ), i;
264
+ ), c;
265
265
  }
266
266
  function ce({
267
267
  state: e,
@@ -269,8 +269,8 @@ function ce({
269
269
  locale: o,
270
270
  properties: r
271
271
  }) {
272
- const c = C({ state: e, componentId: t });
273
- if (!c) return null;
272
+ const i = C({ state: e, componentId: t });
273
+ if (!i) return null;
274
274
  const a = L({
275
275
  componentId: t,
276
276
  getComponent: (n) => C({ state: e, componentId: n }),
@@ -278,22 +278,22 @@ function ce({
278
278
  defaultLocale: e.config.defaultLocale,
279
279
  properties: r
280
280
  });
281
- return a ? { component: c, script: a.script, props: { locale: o, ...a.properties } } : null;
281
+ return a ? { component: i, script: a.script, props: { locale: o, ...a.properties } } : null;
282
282
  }
283
283
  function C({ state: e, componentId: t }) {
284
- var o, r, c;
285
- return ((o = e.components[t]) == null ? void 0 : o.data) ?? ((c = (r = e.resources.components) == null ? void 0 : r[t]) == null ? void 0 : c.component);
284
+ var o, r, i;
285
+ return ((o = e.components[t]) == null ? void 0 : o.data) ?? ((i = (r = e.resources.components) == null ? void 0 : r[t]) == null ? void 0 : i.component);
286
286
  }
287
287
  function Me({ state: e, name: t }) {
288
- var r, c;
288
+ var r, i;
289
289
  const o = t.toLowerCase();
290
290
  return ((r = Object.values(e.components).find((a) => {
291
291
  var n;
292
292
  return ((n = a.data.name) == null ? void 0 : n.toLowerCase()) === o;
293
- })) == null ? void 0 : r.data) ?? ((c = e.resources.components && Object.values(e.resources.components).find((a) => {
293
+ })) == null ? void 0 : r.data) ?? ((i = e.resources.components && Object.values(e.resources.components).find((a) => {
294
294
  var n;
295
295
  return ((n = a.component.name) == null ? void 0 : n.toLowerCase()) === o;
296
- })) == null ? void 0 : c.component);
296
+ })) == null ? void 0 : i.component);
297
297
  }
298
298
  async function ie({
299
299
  component: e,
@@ -301,15 +301,15 @@ async function ie({
301
301
  props: o,
302
302
  req: r
303
303
  }) {
304
- const c = await N(t, "getServerSideProps");
305
- if (!c) return null;
304
+ const i = await N(t, "getServerSideProps");
305
+ if (!i) return null;
306
306
  const a = new Promise((n, s) => {
307
307
  setTimeout(() => s(new Error("getServerSideProps timeout in promise race")), j * 1e3);
308
308
  });
309
309
  return Promise.race([
310
310
  a,
311
311
  _.callFunction({
312
- code: `${c}
312
+ code: `${i}
313
313
 
314
314
  export async function getServerSidePropsWrapper({ location, fetch, props}) {
315
315
  globalThis.location = location
@@ -355,21 +355,21 @@ export { joinURL, withQuery, getQuery, getComponentMountPoint }
355
355
  fetch: (n, { ...s } = {}) => {
356
356
  const l = typeof n == "string" && n.startsWith("/") ? E(T.env.appUrl, n) : n;
357
357
  if (typeof l == "string" && b(l).host === b(T.env.appUrl).host) {
358
- const i = r.get("cookie");
359
- if (i) {
358
+ const c = r.get("cookie");
359
+ if (c) {
360
360
  const m = new B(s.headers);
361
- m.set("cookie", i), s.headers = m;
361
+ m.set("cookie", c), s.headers = m;
362
362
  }
363
363
  }
364
364
  return F(l, {
365
365
  ...s,
366
366
  timeout: j * 1e3
367
- }).then((i) => ({
368
- ok: i.ok,
369
- status: i.status,
370
- statusText: i.statusText,
371
- headers: Object.fromEntries(i.headers.entries()),
372
- json: () => i.json()
367
+ }).then((c) => ({
368
+ ok: c.ok,
369
+ status: c.status,
370
+ statusText: c.statusText,
371
+ headers: Object.fromEntries(c.headers.entries()),
372
+ json: () => c.json()
373
373
  }));
374
374
  },
375
375
  props: o
@@ -400,10 +400,10 @@ const Te = O(
400
400
  export {
401
401
  te as C,
402
402
  j as G,
403
- oe as a,
404
- ne as b,
403
+ Pe as a,
404
+ oe as b,
405
405
  Oe as c,
406
- Pe as d,
406
+ ne as d,
407
407
  re as e,
408
408
  C as f,
409
409
  Te as g,