@blocklet/pages-kit-inner-components 0.4.92 → 0.4.94
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/chunks/site-state-D6GUd_1A.js +57 -0
- package/lib/cjs/components.js +1 -1
- package/lib/cjs/project-html.js +1 -1
- package/lib/cjs/resources.js +1 -1
- package/lib/cjs/site-state.js +1 -1
- package/lib/cjs/theme.js +1 -1
- package/lib/es/chunks/{site-state-1S8NcEDR.js → site-state-Bn8mEgOx.js} +114 -117
- package/lib/es/components.js +1 -1
- package/lib/es/project-html.js +1 -1
- package/lib/es/resources.js +1 -1
- package/lib/es/site-state.js +1 -1
- package/lib/es/theme.js +6 -2
- package/package.json +11 -11
- package/lib/cjs/chunks/site-state-CJ36w6-7.js +0 -57
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";var ft=Object.defineProperty;var mt=(t,n,e)=>n in t?ft(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var A=(t,n,e)=>mt(t,typeof n!="symbol"?n+"":n,e);const gt=require("@blocklet/pages-kit/builtin/utils"),ue=require("@blocklet/pages-kit/types"),se=require("@blocklet/pages-kit/utils/property"),K=require("@blocklet/quickjs"),ht=require("@blocklet/sdk/lib/config"),ve=require("lru-cache"),Je=require("node-fetch"),R=require("ufo"),me=require("crypto"),yt=require("@blocklet/logger"),St=require("@blocklet/pages-kit/utils/builtin"),Ke=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),De=require("@blocklet/sdk/lib/component"),wt=require("autoprefixer"),Et=require("esbuild"),h=require("fs"),bt=require("postcss"),Tt=require("tailwindcss"),It=require("typescript"),Ct=require("@reactivedata/reactive"),ce=require("@syncedstore/core"),Ie=require("glob"),Ot=require("lib0/decoding"),Pt=require("lib0/encoding"),_t=require("lodash/cloneDeep"),jt=require("lodash/debounce"),At=require("lodash/get"),vt=require("lodash/isEmpty"),Dt=require("lodash/pick"),xt=require("lodash/set"),kt=require("lodash/union"),Rt=require("nanoid"),Nt=require("p-limit"),f=require("path"),Lt=require("stream/promises"),Ut=require("tar"),Mt=require("wait-on"),W=require("y-protocols/awareness"),we=require("y-protocols/sync"),Ft=require("yaml"),qt=require("yjs"),$t=require("lodash/isNil"),O=require("sequelize");require("sqlite3");require("@blocklet/pages-kit/types/state");const D=t=>t&&t.__esModule?t:{default:t};function re(t){if(t&&t.__esModule)return t;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,s.get?s:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const y=D(ht),Bt=D(Je),Ht=D(yt),Vt=D(wt),Gt=re(Et),zt=D(bt),Jt=D(Tt),k=D(It),Ee=re(Ot),v=re(Pt),Kt=D(_t),Ye=D(jt),xe=D(At),Yt=D(vt),Qt=D(Dt),qe=D(xt),Wt=D(kt),Xt=D(Nt),Zt=D(f),es=D(Mt),Z=re(Ft),J=re(qt),ts=D($t);y.default.env.mode;y.default.env.OPENAI_API_KEY||process.env.OPENAI_API_KEY;y.default.env.OPENAI_BASE_URL||process.env.OPENAI_BASE_URL;const ss="image-bin";y.default.env.INIT_TEMPLATE_PATH;const ns=process.env.DATABASE_URL||Zt.default.join(y.default.env.dataDir,"db/pages-kit.db"),$e=y.default,os=()=>y.default.env.tenantMode==="multiple",rs=()=>{var t;return(ts.default($e.env.preferences.multiTenantAllProjectAccessPassports)?[]:(t=$e.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:t.split(","))||[]},T=Ht.default("pages-kit"),as=O.DataTypes.sqlite.DATE.parse;O.DataTypes.sqlite.DATE.parse=(t,n)=>typeof t=="number"?new Date(t):as(t,n);const ae=new O.Sequelize({dialect:"sqlite",storage:ns,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});ae.query("pragma journal_mode = WAL;");ae.query("pragma synchronous = normal;");ae.query("pragma journal_size_limit = 67108864;");class ge extends O.Model{}ge.init({id:{type:O.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:O.DataTypes.UUIDV4},projectId:{type:O.DataTypes.UUID,allowNull:!1},componentId:{type:O.DataTypes.STRING,allowNull:!1}},{sequelize:ae,tableName:"ProjectComponents",timestamps:!1});class H extends O.Model{static async getProjectByIdOrSlug(n){return H.findOne({where:{[O.Op.or]:[{id:n},{slug:n}]}})}}H.init({id:{type:O.DataTypes.UUID,defaultValue:O.DataTypes.UUIDV4,primaryKey:!0},name:{type:O.DataTypes.STRING,allowNull:!1},description:O.DataTypes.TEXT,createdAt:O.DataTypes.DATE,updatedAt:O.DataTypes.DATE,createdBy:{type:O.DataTypes.STRING,allowNull:!1},updatedBy:{type:O.DataTypes.STRING,allowNull:!1},slug:O.DataTypes.STRING,icon:O.DataTypes.STRING,pinnedAt:O.DataTypes.DATE,useAllResources:O.DataTypes.BOOLEAN,npmSecret:O.DataTypes.STRING,relatedBlocklets:{type:O.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(t){this.setDataValue("relatedBlocklets",JSON.stringify(t||{}))}}},{sequelize:ae,paranoid:!0});H.hasMany(ge,{foreignKey:"projectId",as:"components"});const is=async(t,{componentId:n})=>{const e=`@tailwind components;
|
|
2
|
+
@tailwind utilities;
|
|
3
|
+
`,s=`.CustomComponent_${n}`;return(await zt.default([Jt.default({content:[{raw:t,extension:"tsx"}]}),Vt.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),r=>{r.walkRules(u=>{u.selectors=u.selectors.map(a=>a.replace(/\.(.+)/g,`${s}.$1,${s} .$1`))})}]).process(e)).css},cs=async(t,{componentId:n})=>{const e=await is(t,{componentId:n});return`export const __PagesKit_CSS__ = ${JSON.stringify(e)};
|
|
4
|
+
|
|
5
|
+
${t}
|
|
6
|
+
`},Be=K.memoize(async(t,n)=>{let e=k.default.transpileModule(t,{compilerOptions:{jsx:k.default.JsxEmit.React,target:k.default.ScriptTarget.ES2016,module:k.default.ModuleKind.ESNext},transformers:{before:[Ke.createBuiltinModuleTransformer(k.default)]}}).outputText;if(n.tailwind&&(e=await cs(e,{componentId:n.componentId})),n.module===ue.PreloadComponentScriptModule.ESM)return e;const s=k.default.transpileModule(e,{compilerOptions:{jsx:k.default.JsxEmit.React,target:k.default.ScriptTarget.ES2016,module:k.default.ModuleKind.CommonJS,moduleResolution:k.default.ModuleResolutionKind.Node16}}).outputText;return n.module===ue.PreloadComponentScriptModule.CJS?s:us(n.moduleName,s)},{keyGenerator:(t,n)=>{const e=me.createHash("md5").update(t).digest("hex"),s={...n,componentId:n.componentId,module:n.module,...n.module!==ue.PreloadComponentScriptModule.ESM?{moduleName:n.moduleName}:{},tailwind:n.tailwind};return JSON.stringify(["transpileModule",e,s])},lruOptions:{max:100,ttl:1e3*60*60}}),ls=async(t,n)=>{var u,a;const s=(a=(u=(await Gt.build({entryPoints:["index.tsx"],external:Object.keys(St.BuiltinModules),format:"esm",target:"esnext",bundle:!0,write:!1,plugins:[{name:"vfs",setup(i){let c=null;i.onResolve({filter:/.*/},l=>l.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:l.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),i.onLoad({filter:/.*/,namespace:"vfs"},async l=>{var p;if(l.path==="index.tsx")return{contents:`export { ${n} } from './component'`,loader:"tsx"};if(l.path==="component.tsx")return{contents:t,loader:"tsx"};if(Ke.isRelativeModule(l.path)){const d=l.path.split("/").pop();if(c||(c=await he({ensureLoaded:!1})),(p=c==null?void 0:c.chunks)!=null&&p[d])try{const g=h.readFileSync(c.chunks[d],"utf-8");return T.info("get chunk from local file system",d),{contents:g,loader:"tsx"}}catch{}}return null})}}]})).outputFiles)==null?void 0:u[0])==null?void 0:a.contents;if(!s)throw new Error("Failed to build server code");const o=Buffer.from(s).toString();return k.default.transpileModule(o,{compilerOptions:{module:k.default.ModuleKind.ESNext,target:k.default.ScriptTarget.ES2020}}).outputText},Qe=K.memoize(async(t,n)=>{const e=await ls(t,n);return new RegExp(`export\\s+\\{\\s+${n}\\s+\\}`,"m").test(e)?e:void 0},{keyGenerator:(t,n)=>{const e=me.createHash("md5").update(t).digest("hex");return JSON.stringify(["extractExportValueSchema",e,n])},lruOptions:{max:100,ttl:1e3*60*60}}),us=(t,n)=>{const e=/\bawait\b/.test(n);return`// GENERATED FILE. DO NOT EDIT.
|
|
7
|
+
var ${t} = ${e?"async":""} function () {
|
|
8
|
+
|
|
9
|
+
const exports = {};
|
|
10
|
+
let moduleExports = null;
|
|
11
|
+
|
|
12
|
+
// add commonjs module compatibility layer
|
|
13
|
+
const module = { exports: moduleExports };
|
|
14
|
+
|
|
15
|
+
// execute component code
|
|
16
|
+
${n}
|
|
17
|
+
|
|
18
|
+
// handle possible module.exports
|
|
19
|
+
if (module.exports && module.exports !== moduleExports) {
|
|
20
|
+
// if module.exports is used, use it first
|
|
21
|
+
return typeof module.exports === 'object' ? module.exports : { default: module.exports };
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// ensure a default export
|
|
25
|
+
if (!('default' in exports) && Object.keys(exports).length === 0) {
|
|
26
|
+
// module has no exports, return null to indicate invalid
|
|
27
|
+
return null;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return exports;
|
|
31
|
+
};
|
|
32
|
+
`},ee=new ve.LRUCache({max:100}),We=60*60,Ce=60;function Xe(t){T.info("clear preload components cache",{cacheKey:t}),ee.delete(t)}function Ze(t){for(const n of ee.keys())n.includes(t)&&(T.info("clear preload components cache",{cacheKey:n}),Xe(n))}function et({mode:t,instanceId:n,componentId:e,locale:s}){return["getPreloadComponents",t,n,e,s].join("-")}async function ps({mode:t,req:n,state:e,locale:s,instances:o,module:r}){const{supportedLocales:u,config:{defaultLocale:a}}=e;if(!a)return null;const i=(await Promise.all(o.map(async g=>{try{const w=et({mode:t,instanceId:g.id,componentId:g.componentId,locale:s});if(t!=="draft"&&g.useCache&&ee.has(w))return T.info(`get preload component from cache: ${w}`),ee.get(w);const j=ne({state:e,componentId:g.componentId});if(!j)return null;const x=await tt({req:n,state:e,componentId:j.id,locale:s,defaultLocale:a,properties:g.properties});if(!x)return null;const F={instanceId:g.id,preload:x};if(t!=="draft"&&g.useCache){let N=We;g.cacheDuration&&(N=g.cacheDuration),T.info(`set preload component to cache(${N}s): ${w}`),ee.set(w,F,{ttl:N*1e3})}return F}catch(w){return T.error("get preload component error",{instanceId:g.id,componentId:g.componentId},{error:w}),null}}))).filter(g=>!!g),c=Object.values(i.reduce((g,w)=>({...g,...w.preload.components}),{}));async function l(){const g=await Promise.all(c.map(async w=>{const j=se.componentUMDName({componentId:w.component.id}),x=r===ue.PreloadComponentScriptModule.ESM?{module:r,script:await Be(w.script,{componentId:w.component.id,module:r,tailwind:t!=="draft"})}:{module:r,script:await Be(w.script,{componentId:w.component.id,module:r,moduleName:j,tailwind:t!=="draft"}),moduleName:j};return[w.component.id,{component:w.component,script:x}]}));return Object.fromEntries(g)}const p=await l();return{config:{defaultLocale:a,supportedLocales:u},components:p,instances:i.map(g=>({id:g.instanceId,componentId:g.preload.component.id,locales:{[g.preload.locale]:{props:g.preload.props}}}))}}async function tt({req:t,state:n,componentId:e,locale:s,defaultLocale:o,properties:r}){const{supportedLocales:u}=n,a=ne({state:n,componentId:e});if(!a)return null;const i=u.some(l=>l.locale===s)?s:o;if(!i)return null;const c=await st({req:t,state:n,componentId:e,locale:i,defaultLocale:o,properties:r});return c?{component:a,...c}:null}const ds=20;async function st({req:t,depth:n=0,state:e,componentId:s,locale:o,defaultLocale:r,properties:u}){if(n>ds)throw new RangeError("max component depth exceeded");const a=fs({state:e,componentId:s,properties:u,locale:o});if(!a)return null;const{props:i}=a,c={locale:o||r,components:{[a.component.id]:{component:a.component,script:a.script}},props:{...i}};try{const l=await gs({...a,req:t});l!=null&&l.props&&Object.assign(c.props,l.props)}catch(l){T.error("preload data at server side error",{componentId:s,name:a.component.name},{error:l})}return await Promise.all(Object.entries(i).map(async([l,p])=>{if((p==null?void 0:p.type)===se.RenderNestedComponent){const d=await st({req:t,depth:n+1,state:e,componentId:p.componentId,locale:o,defaultLocale:r,properties:p.properties});d&&(Object.assign(c.components,d.components),Object.assign(c.props,{[l]:{type:se.RenderNestedComponent,componentId:p.componentId,props:d.props}}))}})),c}function fs({state:t,componentId:n,locale:e,properties:s}){const o=ne({state:t,componentId:n});if(!o)return null;const r=se.mergeComponent({componentId:n,getComponent:u=>ne({state:t,componentId:u}),locale:e,defaultLocale:t.config.defaultLocale,properties:s});return r?{component:o,script:r.script,props:{locale:e,...r.properties}}:null}function ne({state:t,componentId:n}){var e,s,o;return((e=t.components[n])==null?void 0:e.data)??((o=(s=t.resources.components)==null?void 0:s[n])==null?void 0:o.component)}function ms({state:t,name:n}){var s,o;const e=n.toLowerCase();return((s=Object.values(t.components).find(r=>{var u;return((u=r.data.name)==null?void 0:u.toLowerCase())===e}))==null?void 0:s.data)??((o=t.resources.components&&Object.values(t.resources.components).find(r=>{var u;return((u=r.component.name)==null?void 0:u.toLowerCase())===e}))==null?void 0:o.component)}async function gs({component:t,script:n,props:e,req:s}){if(!(n!=null&&n.includes("getServerSideProps")))return null;const o=await Qe(n,"getServerSideProps");if(!o)return null;const r=new Promise(a=>{setTimeout(()=>{a({})},Ce*1e3)});return await Promise.race([r,K.Sandbox.callFunction({code:`${o}
|
|
33
|
+
|
|
34
|
+
export async function getServerSidePropsWrapper(props) {
|
|
35
|
+
const { location, fetch, props: componentProps } = props;
|
|
36
|
+
// 使用局部变量而不是全局变量
|
|
37
|
+
const originalLocation = typeof window !== 'undefined' ? window.location : undefined;
|
|
38
|
+
const originalFetch = globalThis.fetch;
|
|
39
|
+
|
|
40
|
+
try {
|
|
41
|
+
globalThis.location = location;
|
|
42
|
+
globalThis.fetch = fetch;
|
|
43
|
+
return await getServerSideProps(componentProps);
|
|
44
|
+
} finally {
|
|
45
|
+
// 清理全局状态
|
|
46
|
+
if (originalLocation) globalThis.location = originalLocation;
|
|
47
|
+
if (originalFetch) globalThis.fetch = originalFetch;
|
|
48
|
+
}
|
|
49
|
+
}`,filename:`${t.name||t.id}.js`,moduleLoader:a=>{if(a==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
|
|
50
|
+
export { joinURL, withQuery, getQuery, getComponentMountPoint }
|
|
51
|
+
`;if(a==="@blocklet/pages-kit/builtin/dayjs")return K.BuiltinModules.dayjs},global:{console:{log:(...a)=>{T.info(...a)},warn:(...a)=>{T.warn(...a)},error:(...a)=>{T.error(...a)}},getComponentMountPoint:gt.getComponentMountPoint,joinURL:R.joinURL,withQuery:R.withQuery,getQuery:R.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:R.joinURL(R.withHttps(s.hostname),s.originalUrl)},fetch:(a,{...i}={})=>{const c=typeof a=="string"&&a.startsWith("/")?R.joinURL(y.default.env.appUrl,a):a;if(typeof c=="string"&&R.parseURL(c).host===R.parseURL(y.default.env.appUrl).host){const l=s.get("cookie");if(l){const p=new Je.Headers(i.headers);p.set("cookie",l),i.headers=p}}return Bt.default(c,{...i,timeout:Ce*1e3}).then(l=>({ok:l.ok,status:l.status,statusText:l.statusText,headers:Object.fromEntries(l.headers.entries()),json:()=>l.json()}))},props:e}]})])}const nt=K.memoize(async(t,n,e)=>{if(!(t!=null&&t.includes(n)))return null;const s=await Qe(t,n);if(s)try{return await K.Sandbox.callFunction({code:`
|
|
52
|
+
${s}
|
|
53
|
+
|
|
54
|
+
export function get${n}SchemaWrapper() {
|
|
55
|
+
return ${n};
|
|
56
|
+
}
|
|
57
|
+
`,filename:`${e}.js`,functionName:`get${n}SchemaWrapper`})}catch(o){return T.error(`获取 ${n} 失败`,{componentId:e,error:o}),null}return null},{keyGenerator:(t,n,e)=>{const s=me.createHash("md5").update(t).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",s,n,e])},lruOptions:{max:100,ttl:1e3*60*60}}),hs="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Oe="page",Pe="trigger-reload-project-resource",ke=hs,ys="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM",{uploadToMediaKit:Ss}=require("@blocklet/uploader-server"),_e=Rt.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),Re=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,te=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,He=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,ws=1e4,Es=3e4,le=0,be=1,bs=0,Ts=1,je=y.default,X=f.join(process.env.BLOCKLET_DATA_DIR,"site-state"),Is=["production","draft"],Cs=["production"];function ot(t){return(t==null?void 0:t.replace(/\//g,"|"))||""}function Os(){var e;const t=je.env.languages.map(s=>({locale:s.code,name:s.name})),n=(e=t[0])==null?void 0:e.locale;return{pageIds:[],pages:{},components:{},supportedLocales:t,config:{defaultLocale:n},resources:{}}}const B=class B extends J.Doc{constructor(e){super();A(this,"states",{});A(this,"syncedStore");A(this,"conns",new Map);A(this,"awareness");A(this,"awarenessChangeHandler",({added:e,updated:s,removed:o},r)=>{const u=e.concat(s,o);if(r!==null){const c=this.conns.get(r);c&&(e.forEach(l=>{c.add(l)}),o.forEach(l=>{c.delete(l)}))}const a=v.createEncoder();v.writeVarUint(a,be),v.writeVarUint8Array(a,W.encodeAwarenessUpdate(this.awareness,u));const i=v.toUint8Array(a);this.conns.forEach((c,l)=>this.send(l,i))});A(this,"updateHandler",e=>{const s=v.createEncoder();v.writeVarUint(s,le),we.writeUpdate(s,e);const o=v.toUint8Array(s);this.conns.forEach((r,u)=>this.send(u,o))});A(this,"ensureDataStructure",()=>{var u;const{supportedLocales:e,pages:s,pageIds:o,config:r}=this.syncedStore;{const a=new Set(Object.keys(s));let i=0;for(;i<o.length;){const c=o[i];a.has(c)?(a.delete(c),i++):o.splice(i,1)}}e.splice(0,e.length),e.push(...je.env.languages.map(a=>({locale:a.code,name:a.name}))),r.defaultLocale=(u=e[0])==null?void 0:u.locale;{let a=0;const i=new Set;for(;a<e.length;){const{locale:c}=e[a];i.has(c)?e.splice(a,1):(a++,i.add(c))}}});A(this,"send",(e,s)=>{e.readyState!==bs&&e.readyState!==Ts&&this.closeConn(e);try{e.send(s,o=>{o&&this.closeConn(e)})}catch{this.closeConn(e)}});A(this,"closeConn",e=>{if(e.removeAllListeners(),this.conns.has(e)){const s=this.conns.get(e);this.conns.delete(e),s&&W.removeAwarenessStates(this.awareness,Array.from(s),null)}e.close()});A(this,"autoSave",Ye.default(()=>{h.mkdirSync(f.dirname(this.draftYjsFilePath),{recursive:!0}),h.writeFileSync(this.draftYjsFilePath,J.encodeStateAsUpdate(this))},ws));A(this,"save",({flush:e=!1}={})=>{this.autoSave(),e&&this.autoSave.flush()});A(this,"publish",async({mode:e,pages:s})=>{const o=await this.getState("draft"),r=await this.getState("production");await Ae(o,r,{pages:s,pageMergeMode:"replace",deletePages:!0,publishMode:e}),r.config.publishedAt=new Date().getTime();for(const u of s||Object.keys(this.syncedStore.pages))this.syncedStore.pages[u]&&(this.syncedStore.pages[u].publishedAt=new Date().toISOString());await this.setState(e,r)});A(this,"mergeState",async(e,s)=>{var a,i,c;const o=JSON.parse(JSON.stringify(s));(a=e.config).fontFamily??(a.fontFamily={});const r=(i=o.config)==null?void 0:i.fontFamily,u=(c=e.config)==null?void 0:c.fontFamily;e.config.fontFamily.title=(r==null?void 0:r.title)||(u==null?void 0:u.title),e.config.fontFamily.description=(r==null?void 0:r.description)||(u==null?void 0:u.description),await new Promise((l,p)=>{this.transact(async()=>{try{const d=await Ae(e,s);l(d)}catch(d){p(d)}})})});A(this,"addConnection",e=>{if(this.conns.has(e))return;e.binaryType="arraybuffer",this.conns.set(e,new Set),e.on("message",r=>this.messageListener(e,new Uint8Array(r)));let s=!0;const o=setInterval(()=>{if(!s)this.conns.has(e)&&this.closeConn(e),clearInterval(o);else if(this.conns.has(e)){s=!1;try{e.ping()}catch{this.closeConn(e),clearInterval(o)}}},Es);e.on("close",()=>{this.closeConn(e),clearInterval(o)}),e.on("pong",()=>{s=!0});{const r=v.createEncoder();v.writeVarUint(r,le),we.writeSyncStep1(r,this),this.send(e,v.toUint8Array(r));const u=this.awareness.getStates();if(u.size>0){const a=v.createEncoder();v.writeVarUint(a,be),v.writeVarUint8Array(a,W.encodeAwarenessUpdate(this.awareness,Array.from(u.keys()))),this.send(e,v.toUint8Array(a))}}});A(this,"messageListener",(e,s)=>{try{const o=v.createEncoder(),r=Ee.createDecoder(s),u=Ee.readVarUint(r);switch(u){case le:v.writeVarUint(o,le),we.readSyncMessage(r,o,this,null),v.length(o)>1&&(this.ensureDataStructure(),this.send(e,v.toUint8Array(o)));break;case be:{W.applyAwarenessUpdate(this.awareness,Ee.readVarUint8Array(r),e);break}default:T.warn(`Unsupported messageType ${u}`)}}catch(o){T.error(o)}this.save()});this.options=e,h.existsSync(this.draftYjsFilePath)&&J.applyUpdate(this,h.readFileSync(this.draftYjsFilePath)),this.syncedStore=Ct.reactive(ce.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new W.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(e){if(!e)throw new Error("Should provide project context");try{const s=f.join(X,e),o=f.join(X,`@del-${e}`);h.renameSync(s,o)}catch(s){T.error("Failed to safe delete project state dir:",s)}}static get projectIds(){return Ie.globSync("*/",{cwd:X,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(e=>B.shared(e))}static shared(e){if(!e)throw new Error("Should provide project context");let s=this.sharedInstances.get(e);return s||(s=new B({path:f.join(X,e)}),this.sharedInstances.set(e,s),s)}destroy(){this.conns.forEach((e,s)=>this.closeConn(s)),this.awareness.destroy(),super.destroy()}initObserver(){const e=o=>{o.observeDeep(r=>{r.some(u=>u.changes.keys.has("updatedAt")||u.changes.keys.has("publishedAt"))||o.set("updatedAt",new Date().toISOString())})};this.syncedStore.pages&&Object.keys(this.syncedStore.pages).forEach(o=>{const r=ce.getYjsValue(this.syncedStore.pages[o]);r&&r instanceof J.Map&&e(r)});const s=ce.getYjsValue(this.syncedStore.pages);s&&s instanceof J.Map&&s.observe(o=>{o.changes.keys.forEach((r,u)=>{if(r.action==="add"){const a=ce.getYjsValue(this.syncedStore.pages[u]);a&&a instanceof J.Map&&e(a)}})})}get draftYjsFilePath(){return f.join(this.options.path,"draft.yjs")}async getState(e){var s,o,r,u;if(e==="draft")return JSON.parse(JSON.stringify(this.syncedStore));if(!this.states[e]&&(this.states[e]=await Ne(this.getPublishDir(e),{includeResources:!0})??Os(),!((o=(s=this.states[e])==null?void 0:s.config)!=null&&o.defaultLocale))){(r=this.states[e]).config??(r.config={});const a=je.env.languages.map(i=>({locale:i.code,name:i.name}));this.states[e].config.defaultLocale=(u=a[0])==null?void 0:u.locale}return{...this.states[e],resources:await he().then(async a=>{var g,w,j,x;const{pages:i,components:c}=Qt.default(a,"pages","components");let l=c;const p=f.basename(this.options.path),d=await H.findByPk(p);if(d!=null&&d.useAllResources)l=c;else{const N=(await ge.findAll({where:{projectId:p}})).map(E=>E.componentId);l=Object.fromEntries(Object.entries(c||{}).filter(([E])=>N.includes(E)))}return Object.keys(((w=(g=this.states[e])==null?void 0:g.resources)==null?void 0:w.components)||{}).length>0&&(l={...l,...(x=(j=this.states[e])==null?void 0:j.resources)==null?void 0:x.components}),{pages:i,components:l}}).catch(()=>({}))}}async setState(e,s){const o=await it(s,{exportAssets:!1,includeResources:!0}),r=this.getPublishDir(e);h.mkdirSync(f.dirname(r),{recursive:!0}),h.rmSync(r,{force:!0,recursive:!0}),h.renameSync(o,r),this.states[e]=s}getPublishDir(e){return f.join(this.options.path,e)}static async pageUrlMap(e){const{projectIds:s}=this,o={};for(const r of s){const u=await H.findByPk(r);if(!u)continue;const a=await B.shared(r).getState(e),i=Wt.default(y.default.env.languages.map(c=>c.code),a.supportedLocales.map(c=>c.locale));for(const c of a.pageIds){const l=a.pages[c];if(!l||e==="production"&&!l.isPublic)continue;const p=l.slug,d=u.slug||r,g={projectId:r,projectSlug:d,pageSlug:p,pageId:c,defaultLocale:i==null?void 0:i[0],locales:i,publishedAt:a.config.publishedAt,isPublic:l.isPublic,templateConfig:l.templateConfig};d&&(o[R.joinURL("/",d,p)]={...g,shouldRedirect:!0,mainPage:!0}),o[R.joinURL("/",r,p)]={...g,shouldRedirect:!0,mainPage:!0};for(const w of i){const j={...g,locale:w};o[R.joinURL("/",w,r,p)]=j,d&&(o[R.joinURL("/",w,d,p)]=j)}}}return o}getDocumentSize(){return J.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const e=[];for(const[s,o]of this.sharedInstances.entries()){const r=o.getDocumentSize();e.push({projectId:s,sizeInBytes:r,sizeInMB:`${(r/(1024*1024)).toFixed(2)} MB`,activeConnections:o.conns.size})}return e}};A(B,"INSTANCE_TTL",30*60*1e3),A(B,"sharedInstances",new ve.LRUCache({max:100,ttl:B.INSTANCE_TTL,dispose:e=>{e.destroy()}}));let oe=B;function rt(){return h.mkdtempSync(f.join(y.default.env.dataDir,"tmp-"))}function de(t,n,e=[]){return Array.isArray(t)?t.flatMap((s,o)=>de(s,n,[...e,o])):typeof t=="object"?t===null?[]:Object.entries(t).flatMap(([s,o])=>de(o,n,[...e,s])):n(t)?[e]:[]}function M(t){return t.filter(n=>n!=null)}async function Ps(t,n,e){if(!t||!h.existsSync(t)||!h.lstatSync(t).isFile())return null;let s=e[t];return s||(s=(async()=>{var o;try{const r=(o=await Ss({filePath:t,fileName:n}))==null?void 0:o.data;return r==null?void 0:r.filename}catch(r){return T.error(`Failed to upload asset ${t}:`,r),null}})(),e[t]=s),s}const _s=async(t,n)=>{const e=f.basename(t),s=await De.call({name:ke,path:R.joinURL("/uploads",e),responseType:"stream",method:"GET"});if(s.status>=200&&s.status<400){const o=h.createWriteStream(n);await Lt.pipeline(s.data,o)}else throw new Error(`download asset failed ${s.status}`)},js=async(t,n)=>{await Promise.all(t.map(async e=>{try{await _s(e,f.join(n,f.basename(e)))}catch(s){T.error(`Failed to export assets: ${e}, ${s}`)}}))};function at(t){return Re.test(t)?[t]:te.test(t)?(He.lastIndex=0,Array.from(t.matchAll(He)).map(e=>e[1]).filter(e=>!!e)):[]}async function Te(t,n,e){const{getFilename:s,exportAssets:o}=e,r=f.join(n,s(t));if(h.mkdirSync(f.dirname(r),{recursive:!0}),h.writeFileSync(r,Z.stringify(t)),o){const a=de(t,i=>typeof i=="string"&&(Re.test(i)||te.test(i))).map(i=>{const c=xe.default(t,i);return at(c)}).flat().filter(Boolean);await js(a,f.dirname(r))}}const Ve=new ve.LRUCache({max:1e3,ttl:30*24*60*60*1e3});async function Ge(t,n,e){var a;const s=de(t,i=>typeof i=="string"&&(Re.test(i)||te.test(i))),o=Xt.default(2),r=s.map(i=>o(async()=>{try{const c=xe.default(t,i),l=at(c);for(const p of l){const d=f.basename(p),g=e.getFilePath(p,i),w=g?`${g}:${d}`:d,j=Ve.get(w);if(j){te.test(c)||qe.default(t,i,j);return}const x=await Ps(g,d,n);x&&(te.test(c)||qe.default(t,i,x),Ve.set(w,x))}}catch(c){T.error(`Failed to process upload for path ${i.join(".")}:`,c.message||c.reason)}})),u=await Promise.allSettled(r);(a=e.onFinish)==null||a.call(e,u)}async function it(t,{exportAssets:n,pageIds:e="all",componentIds:s="all",rawConfig:o,includeResources:r=!1}={}){var F,N,S,E,b,I,V,C,L,G,ie,Q;const u=e==="all"?t.pageIds:e,a=se.getComponentDependencies({state:t,pageIds:u,componentIds:s==="all"?Object.keys(t.components):s}),i=(m,P)=>{var _;return{id:m.id,name:m.name,isTemplateSection:m.isTemplateSection??!1,templateDescription:m.templateDescription,llmConfig:m.llmConfig,component:m.component,config:m.config,visibility:m.visibility,properties:((_=m.locales)==null?void 0:_[P])??{}}},c=(m,P)=>{var _;return{id:m.id,createdAt:m.createdAt,updatedAt:m.updatedAt,publishedAt:m.publishedAt,isPublic:m.isPublic??!0,templateConfig:m.templateConfig,meta:((_=m.locales)==null?void 0:_[P])??{},sections:M(m.sectionIds.map($=>{const q=m.sections[$];return q&&i(q,P)}))}},l=M(t.supportedLocales.map(m=>m.locale).flatMap(m=>u.map(P=>{const _=t.pages[P];return _&&{locale:m,slug:_.slug,page:c(_,m)}}))),p=rt(),d=f.join(p,"pages");h.mkdirSync(d,{recursive:!0});const g=f.join(p,"components");h.mkdirSync(g,{recursive:!0});for(const{locale:m,slug:P,page:_}of l)await Te(_,d,{getFilename:()=>`${ot(P)||"index"}.${m}.yml`,exportAssets:n});for(const m of a){const P=(F=t.components[m])==null?void 0:F.data;P&&await Te(P,g,{getFilename:_=>`${_.name||"unnamed"}.${_.id}.yml`,exportAssets:n})}const w=f.join(p,".blocklet/pages/pages.config.yml");h.mkdirSync(f.dirname(w),{recursive:!0});const j={pages:M(u.map(m=>{const P=t.pages[m];return P&&{id:m,slug:P.slug}})),components:M(a.map(m=>{var _;const P=(_=t.components[m])==null?void 0:_.data;return P&&{id:m,name:P.name}})),...r?{resources:{components:M(Object.keys(((N=t.resources)==null?void 0:N.components)||{}).filter(m=>a.includes(m)).map(m=>{var P,_,$,q;return{id:m,name:(q=($=(_=(P=t.resources)==null?void 0:P.components)==null?void 0:_[m])==null?void 0:$.component)==null?void 0:q.name}}))}}:{},supportedLocales:t.supportedLocales,config:t.config};h.writeFileSync(w,Z.stringify(j));const x=f.join(p,"config.source.json");if(o&&h.writeFileSync(x,JSON.stringify(o)),r){const m=f.join(p,"resources"),P=f.join(m,"components");h.mkdirSync(P,{recursive:!0});for(const q of Object.keys(((S=t==null?void 0:t.resources)==null?void 0:S.components)??{}).filter(U=>a.includes(U))){const U=(I=(b=(E=t.resources)==null?void 0:E.components)==null?void 0:b[q])==null?void 0:I.component;U&&await Te(U,P,{getFilename:z=>`${z.name||"unnamed"}.${z.id}.yml`,exportAssets:n})}const _=f.join(p,"chunks");h.mkdirSync(_,{recursive:!0});const{chunks:$}=await he();for(const q of Object.keys(((V=t==null?void 0:t.resources)==null?void 0:V.components)??{}).filter(U=>a.includes(U))){const U=(G=(L=(C=t.resources)==null?void 0:C.components)==null?void 0:L[q])==null?void 0:G.component;if(U&&((ie=U.renderer)==null?void 0:ie.type)==="react-component"){const z=((Q=U.renderer)==null?void 0:Q.chunks)??[];if((z==null?void 0:z.length)>0)for(const ye of z){const Fe=f.join(_,ye),Se=$==null?void 0:$[ye];try{Se&&h.existsSync(Se)&&!h.existsSync(Fe)&&h.copyFileSync(Se,Fe)}catch(dt){T.error(`copy chunk ${ye} error`,dt.message)}}}}}return p}async function Ne(t,{importAssets:n,includeResources:e}={}){var r,u,a;if(!h.existsSync(t))return null;let s,o=!1;try{h.lstatSync(t).isDirectory()?s=t:/\.(tgz|gz|tar)$/.test(t)&&(o=!0,s=rt(),await Ut.x({file:t,C:s}));const i=Ie.globSync("**/.blocklet/pages/pages.config.yml",{cwd:s,absolute:!0}).at(0),c=i&&f.join(f.dirname(i),"../../pages"),l=i&&f.join(f.dirname(i),"../../components"),p=i&&f.join(f.dirname(i),"../../chunks");if(!i)return null;const d=Z.parse(h.readFileSync(i).toString()),g=(S,E,b)=>{let I=f.join(S,`${E}${b?`.${b}`:""}.yml`);return(!h.existsSync(I)||!h.lstatSync(I).isFile())&&(I=f.join(S,E,`index${b?`.${b}`:""}.yml`),!h.existsSync(I)||!h.lstatSync(I))?null:Z.parse(h.readFileSync(I).toString())},w=(S,E)=>{try{const b=Ie.globSync(`*.${E}.yml`,{cwd:S,absolute:!0})[0];return b?Z.parse(h.readFileSync(b).toString()):null}catch(b){T.error("parse component error",b)}return null},j=M(d.pages.map(({slug:S})=>{var V;const E=M(d.supportedLocales.map(({locale:C})=>{const L=c?g(c,ot(S),C):void 0;if(L)return{locale:C,page:L};const G=c?g(c,S,C):void 0;return G&&{locale:C,page:G}})),b=(V=E[0])==null?void 0:V.page;if(!b)return null;const I=b.sections.map(C=>{const L=C.id||_e();return{id:L,component:C.component,config:C.config,name:C.name,isTemplateSection:C.isTemplateSection??!1,templateDescription:C.templateDescription,llmConfig:C.llmConfig,visibility:C.visibility,locales:Object.fromEntries(M(E.map(({locale:G,page:ie})=>{const Q=ie.sections.find(m=>m.id===L);return Q&&[G,Q.properties]})))}});return{id:b.id||_e(),createdAt:b.createdAt,updatedAt:b.updatedAt,publishedAt:b.publishedAt,isPublic:b.isPublic??!0,templateConfig:b.templateConfig,slug:S,sections:Object.fromEntries(I.map(C=>[C.id,C])),sectionIds:I.map(C=>C.id),locales:Object.fromEntries(E.map(({locale:C,page:L})=>[C,L.meta]))}})),x=l?M(((r=d.components)==null?void 0:r.map(({id:S})=>w(l,S)))??[]):[];if(n){const S=(...E)=>{T.info(`[${o?f.basename(t):f.basename(f.join(t,"../../../../"))}] importAssets:`,...E)};try{S("wait image-bin api ready"),await es.default({resources:[`${De.getComponentWebEndpoint(ss)}/api/sdk/uploads`],validateStatus:I=>I>=200&&I<=500}),S("image-bin api is ready");const E={},b={};S("start to upload assets"),await Promise.allSettled([Ge(x,E,{getFilePath:I=>l&&f.join(l,I),onFinish:I=>{S(`upload ${I.length} component assets`)}}),Ge(j,b,{getFilePath:(I,V)=>{const C=xe.default(j,V.slice(0,1));return c&&f.join(c,f.dirname(C.slug),I)},onFinish:I=>{S(`upload ${I.length} page assets`)}})]),S("upload assets done"),global.gc&&global.gc()}catch(E){S("Error during asset import:",E)}}const F={};if(e){const S=i&&f.join(f.dirname(i),"../../resources/components"),E=M(((a=(u=d.resources)==null?void 0:u.components)==null?void 0:a.map(({id:b})=>w(S,b)))??[]);E.length>0&&(F.components=Object.fromEntries(E.map((b,I)=>[b.id,{index:I,component:b}])))}const N={};if(p&&h.existsSync(p)){const S=h.readdirSync(p);for(const E of S)N[E]=f.join(p,E)}return{supportedLocales:d.supportedLocales,pageIds:j.map(S=>S.id),components:Object.fromEntries(x.map((S,E)=>[S.id,{index:E,data:S}])),pages:Object.fromEntries(j.map(S=>[S.id,S])),config:d.config||{},resources:F,chunks:N}}finally{o&&s&&h.rmSync(s,{force:!0,recursive:!0})}}async function Ae(t,n,{pages:e,pageMergeMode:s="byUpdateTime",deletePages:o=!1,publishMode:r=void 0}={}){try{r&&Ze(r)}catch(l){T.error("clear preload page cache error",{error:l})}const{pageIds:u,pages:a,supportedLocales:i}=t;for(const l of e??u){const p=a[l];if(!p){const d=n.pageIds.indexOf(l);d!==-1&&o&&(n.pageIds.splice(d,1),delete n.pages[l]);continue}if(n.pageIds.includes(p.id)){if(s==="replace")n.pages[p.id]=p;else if(s==="byUpdateTime"){const d=n.pages[p.id];(!d||p.updatedAt&&p.updatedAt>d.updatedAt)&&(n.pages[p.id]=p)}}else n.pageIds.push(p.id),n.pages[p.id]=p}if(o&&!e)for(const l of n.pageIds)t.pageIds.includes(l)||delete n.pages[l],n.pageIds=[...n.pageIds].filter(p=>t.pageIds.includes(p));if(n.supportedLocales.splice(0,n.supportedLocales.length),n.supportedLocales.push(...Kt.default(i)),o)for(const l of Object.keys(n.components))delete n.components[l];let c=JSON.parse(JSON.stringify(t.components));c=Object.fromEntries(await Promise.all(Object.entries(c).map(async([l,p])=>{const d=await ct(p==null?void 0:p.data);return[l,{...p,data:d}]}))),Object.assign(n.components,c),Object.assign(n.config,JSON.parse(JSON.stringify(t.config))),n.resources.components=JSON.parse(JSON.stringify(t.resources.components||{}))}const ct=K.memoize(async t=>{var n;if(!Yt.default(t==null?void 0:t.properties))return t;if(((n=t==null?void 0:t.renderer)==null?void 0:n.type)==="react-component"){const{script:e}=(t==null?void 0:t.renderer)||{};if(e&&e.includes("PROPERTIES_SCHEMA"))try{const s=await nt(e,"PROPERTIES_SCHEMA",t.id);s&&s.length>0&&t&&(t.properties={},s.forEach((o,r)=>{t!=null&&t.properties&&(t.properties[o.id]={index:r,data:o})}))}catch(s){T.error("checkPropertiesFromCode error",{componentId:t.id,name:t.name},{error:s})}}return t},{keyGenerator:t=>{var u;const n=(t==null?void 0:t.id)||"",e=(t==null?void 0:t.name)||"",s=((u=t==null?void 0:t.renderer)==null?void 0:u.type)||"",o=(t==null?void 0:t.properties)||{},r=me.createHash("md5").update(JSON.stringify(o)).digest("hex");return JSON.stringify(["checkPropertiesFromCode",n,e,s,r])},lruOptions:{max:100,ttl:1e3*60*60}});let fe,Y,Le,Ue,Me;function lt(){return fe=(async()=>{const t=De.getResources({types:[{did:ke,type:Oe},{did:ys,type:Oe}]});Y=(await Promise.all(t.map(async e=>{const s=e.path?await Ne(e.path,{importAssets:!1}):void 0;return s?{blockletId:e.did,state:s,blockletTitle:e.title}:void 0}))).filter(e=>!!e),Le=Y.reduce((e,s)=>Object.assign(e,Object.fromEntries(Object.values(s.state.pages).map(o=>o?[o==null?void 0:o.id,{page:o,blockletId:s.blockletId}]:[]))),{});const n=Y.reduce((e,s)=>Object.assign(e,Object.fromEntries(Object.values(s.state.components).map(o=>[o.data.id,{blockletId:s.blockletId,component:o.data}]))),{});Ue=Object.fromEntries(await Promise.all(Object.entries(n).map(async([e,s])=>{const o=await ct(s.component);return[e,{...s,component:o}]}))),Me=Y.reduce((e,s)=>Object.assign(e,s.state.chunks),{})})(),fe}function ut(t){const n=Ye.default(async()=>{await lt().catch(e=>{T.error("load resource states error",{error:e})}),await(t==null?void 0:t({states:Y,pages:Le,components:Ue,chunks:Me}))},3e3,{leading:!1,trailing:!0});return n(),y.default.events.on(y.default.Events.componentAdded,n),y.default.events.on(y.default.Events.componentRemoved,n),y.default.events.on(y.default.Events.componentStarted,n),y.default.events.on(y.default.Events.componentStopped,n),y.default.events.on(y.default.Events.componentUpdated,n),y.default.events.on(Pe,n),()=>{y.default.events.off(y.default.Events.componentAdded,n),y.default.events.off(y.default.Events.componentRemoved,n),y.default.events.off(y.default.Events.componentStarted,n),y.default.events.off(y.default.Events.componentStopped,n),y.default.events.off(y.default.Events.componentUpdated,n),y.default.events.off(Pe,n)}}const pt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),pe=globalThis;var ze;(ze=pe[pt])==null||ze.call(pe);pe[pt]=ut(async({pages:t,components:n})=>{const{projectIds:e}=oe;T.info(`start update resource states projects(${e.length})`,e),await Promise.race([new Promise(s=>{setTimeout(()=>{s({})},30*1e3)}),Promise.all(e.map(async s=>{const o=oe.shared(s);o.syncedStore.resources.pages=t;const r=await H.findByPk(s);if(r!=null&&r.useAllResources)o.syncedStore.resources.components=n;else{const a=(await ge.findAll({where:{projectId:s}})).map(c=>c.componentId),i=Object.fromEntries(Object.entries(n||{}).filter(([c])=>a.includes(c)));o.syncedStore.resources.components=i}T.info(`update [${s}] resource states:`,{pages:Object.keys(o.syncedStore.resources.pages||{}).length,components:Object.keys(o.syncedStore.resources.components||{}).length})}))]).catch(s=>{T.error("update resource states failed:",s)})});async function As(){T.info("trigger reload all project resource"),y.default.events.emit(Pe)}async function he({ensureLoaded:t=!0}={}){return t&&(fe??(fe=lt()),await fe),{states:Y,pages:Le,components:Ue,chunks:Me}}exports.COMPONENT_DID=ke;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=We;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=Ce;exports.PUBLISH_MODES=Cs;exports.Project=H;exports.RESOURCE_TYPE=Oe;exports.SITE_STATE_PATH=X;exports.STATE_MODES=Is;exports.SiteState=oe;exports.clearPreloadComponentsCache=Xe;exports.clearPreloadComponentsCacheByMode=Ze;exports.fromPackage=Ne;exports.getComponentFromState=ne;exports.getComponentFromStateByName=ms;exports.getExportSchemaValueFromCode=nt;exports.getMultiTenantAllProjectAccessPassports=rs;exports.getPreloadComponent=tt;exports.getPreloadComponents=ps;exports.getPreloadComponentsCacheKey=et;exports.getResourceStates=he;exports.initPackResourceStates=ut;exports.isMultiTenant=os;exports.logger=T;exports.mergeState=Ae;exports.nextId=_e;exports.toPackage=it;exports.triggerReloadAllProjectResource=As;
|
package/lib/cjs/components.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require("@blocklet/pages-kit/builtin/utils");require("@blocklet/pages-kit/types");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/config");require("lru-cache");require("node-fetch");require("ufo");require("crypto");const e=require("./chunks/site-state-D6GUd_1A.js");exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=e.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=e.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS;exports.clearPreloadComponentsCache=e.clearPreloadComponentsCache;exports.clearPreloadComponentsCacheByMode=e.clearPreloadComponentsCacheByMode;exports.getComponentFromState=e.getComponentFromState;exports.getComponentFromStateByName=e.getComponentFromStateByName;exports.getExportSchemaValueFromCode=e.getExportSchemaValueFromCode;exports.getPreloadComponent=e.getPreloadComponent;exports.getPreloadComponents=e.getPreloadComponents;exports.getPreloadComponentsCacheKey=e.getPreloadComponentsCacheKey;
|
package/lib/cjs/project-html.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const k=require("./chunks/site-state-
|
|
1
|
+
"use strict";const k=require("./chunks/site-state-D6GUd_1A.js"),P=require("@blocklet/crawler/middlewares"),W=require("@blocklet/pages-kit/types"),J=require("@blocklet/pages-kit/utils/preload"),G=require("@blocklet/sdk/lib/component"),U=require("@blocklet/sdk/lib/config"),z=require("cheerio/slim"),K=require("express"),O=require("fs"),Q=require("mustache"),A=require("path"),S=require("ufo"),D=e=>e&&e.__esModule?e:{default:e};function V(e){if(e&&e.__esModule)return e;const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const t in e)if(t!=="default"){const p=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(s,t,p.get?p:{enumerable:!0,get:()=>e[t]})}}return s.default=e,Object.freeze(s)}const d=D(U),I=V(z),X=D(Q),Y=["/assets/"],q=()=>[!0,"true"].includes(d.default.env.preferences.allowCrawler);function R(){q()?P.initCronCrawlBlocklet({time:"0 0 */12 * * *",options:{}}):P.cancelCronCrawlBlocklet()}R();d.default.events.on(d.default.Events.envUpdate,R);function Z({app:e,viteDevServer:s,state:t}){let p;if(s){const c=O.readFileSync(A.resolve(process.cwd(),"./index.html"),"utf-8");e.use(async(b,j,y)=>{const v=b.originalUrl;p=await s.transformIndexHtml(v,c),y()})}else p=O.readFileSync(A.resolve(process.env.BLOCKLET_APP_DIR,"dist/index.html"),"utf-8");const C=K.Router();C.use(P.initSEOMiddleware({autoReturnHtml:!0,allowCrawler:q})),C.get("/:path(*)?",async(c,b,j)=>{var $,E,L;if(Y.some(l=>{var i;return(i=c.path)==null?void 0:i.startsWith(l)})){j();return}const y=performance.now(),v=()=>Math.round(performance.now()-y),x="production";let o,u,g=p;if(c.path.startsWith("/pages")){const l=c.params.lang,i=c.cookies.nf_lang,w=new Set([...d.default.env.languages.map(h=>h.code)]);let f=(l&&w.has(l)?l:void 0)||(w.has(i)?i:void 0)||[...w][0];if((!f||!(($=t.supportedLocales)!=null&&$.find(h=>h.locale===f)))&&(f=((L=(E=t.supportedLocales)==null?void 0:E[0])==null?void 0:L.locale)||""),f){const h=[];Object.values(t.pages).forEach(r=>{const N=Object.values((r==null?void 0:r.sections)??{}).filter(a=>{var _;return a.component==="custom-component"&&((_=a.config)==null?void 0:_.componentId)}).map(a=>{var _,M;return{id:a.id,componentId:a.config.componentId,useCache:a.config.useCache,cacheDuration:a.config.cacheDuration,properties:(M=(_=a.locales)==null?void 0:_[f])==null?void 0:M.properties}});h.push(...N)});const H=new Promise(r=>{setTimeout(()=>{r({})},90*1e3)});try{await Promise.race([H,k.getPreloadComponents({mode:x,req:c,state:t,locale:f,instances:h,module:W.PreloadComponentScriptModule.UMD_FN}).then(r=>{r&&(u=J.injectPreloadComponents(r))})])}catch(r){k.logger.warn("getPreloadComponents timeout in promise race, skip inject html elements"),k.logger.warn(r)}}}try{const l=(o==null?void 0:o.title)||d.default.env.appName,i=(o==null?void 0:o.description)||d.default.env.appDescription,w=S.withQuery(S.joinURL(d.default.env.appUrl,"/.well-known/service/blocklet/og.png"),{title:l,description:i});g=X.default.render(p,{ogTitle:l,ogDescription:i,ogImage:F(o==null?void 0:o.image)||w,pagesPublishedAt:(t==null?void 0:t.config.publishedAt)||new Date().getTime()})}catch{}const n=t==null?void 0:t.config.fontFamily,B=c.query.mode==="draft"||c.url.includes("preview"),m=I.load(g);m("head").find("#injected-head-elements").replaceWith(`
|
|
2
2
|
${o!=null&&o.backgroundColor?`<meta name="theme-color" content="${o.backgroundColor}" /><style>html,body,#app {background-color: ${o.backgroundColor} !important;}</style>`:""}
|
|
3
3
|
${n!=null&&n.title?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${n.title}&display=swap">`:""}
|
|
4
4
|
${n!=null&&n.description&&(n==null?void 0:n.description)!==(n==null?void 0:n.title)?`<link rel="preload" as="style" href="https://fonts.googleapis.com/css?family=${n.description}&display=swap">`:""}
|
package/lib/cjs/resources.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const c=require("./chunks/site-state-
|
|
1
|
+
"use strict";const c=require("./chunks/site-state-D6GUd_1A.js"),M=require("async_hooks"),U=require("express"),F=require("fs"),J=require("joi"),X=require("lodash/groupBy"),W=require("lodash/sortBy"),b=require("path"),$=require("@blocklet/sdk/lib/middlewares/auth"),G=require("@blocklet/sdk/lib/component"),y=t=>t&&t.__esModule?t:{default:t},l=y(F),I=y(J),D=y(X),K=y(W),k=y(b),v=y($);new M.AsyncLocalStorage;const Y=async(t,e,o)=>{var n,s,r,i;try{const{projectId:u}=t.params;if(!u)return o();const f=await c.Project.findByPk(u);if(!f)return e==null?void 0:e.status(404).json({error:"Project not found"});const _=(n=t.user)==null?void 0:n.did,h=((s=t.user)==null?void 0:s.role)||"UNKNOWN_ROLE";if(!_)return e==null?void 0:e.status(401).json({error:"Authentication required"});if(c.isMultiTenant()){const w=f.createdBy===_,a=(i=(r=c.getMultiTenantAllProjectAccessPassports())==null?void 0:r.includes)==null?void 0:i.call(r,h);if(!w&&!a)return e==null?void 0:e.status(403).json({error:"No permission to access this project in multi-tenant mode"})}else if(!["owner","admin","pagesEditor"].includes(h))return e==null?void 0:e.status(403).json({error:"No permission to access this project in single-tenant mode"});t.project=f,t.projectId=u,o()}catch(u){c.logger.error("Project middleware error:",u),e==null||e.status(500).json({error:"Internal server error"})}};function N(t,e){return new Promise((o,n)=>{const s=l.default.createReadStream(t),r=l.default.createWriteStream(e);s.on("error",n),r.on("error",n),r.on("finish",o),s.pipe(r)})}async function T(t,e){await l.default.promises.mkdir(e,{recursive:!0});const o=await l.default.promises.readdir(t,{withFileTypes:!0});for(const n of o){const s=k.default.join(t,n.name),r=k.default.join(e,n.name);n.isDirectory()?await T(s,r):await N(s,r)}}async function z(t,e){(await l.default.promises.stat(t)).isDirectory()?await T(t,e):await N(t,e)}const O=(t,e,o)=>c.isMultiTenant()?v.default()(t,e,o):v.default({roles:["owner","admin","pagesEditor"]})(t,e,o),H=(t,e)=>{const o=G.getResourceExportDir({projectId:t,releaseId:e});return b.join(o,c.COMPONENT_DID,c.RESOURCE_TYPE)},S=U.Router(),B="@page",q="@component",P=":",E="ALL",L="@project",C=({pageId:t,projectId:e})=>[B,e,t].join(P),Q=t=>{const[e,o,n]=t.split(P);if(e===B)return{pageId:n,projectId:o}},A=({componentId:t,projectId:e})=>[q,e,t].join(P),V=t=>{const[e,o,n]=t.split(P);if(e===q)return{componentId:n,projectId:o}},Z=t=>[L,t].join(P),tt=t=>{const[e,o]=t.split(P);if(e===L)return o},et=t=>{try{return JSON.parse(t)}catch{}return{}};async function x(t){const e=await c.SiteState.shared(t).getState("production"),o=await c.Project.findByPk(t),n=e.pageIds.map(r=>{const i=e.pages[r];if(i)return{id:C({pageId:r,projectId:t}),name:i.slug}}).filter(Boolean),s=K.default(Object.values(e.components),r=>r.index).map(({data:r})=>({id:A({componentId:r.id,projectId:t}),name:r.name||r.id}));return{id:Z(t),name:(o==null?void 0:o.name)||"Unnamed Project",children:[{id:C({pageId:E,projectId:t}),name:"Pages",children:n},{id:A({componentId:E,projectId:t}),name:"Components",children:s}]}}S.get("/resources",O,async(t,e)=>{const{projectId:o}=et(t.query.resourcesParams);if(o){t.params={...t.params,projectId:o},await Y(t,e,()=>{});const r=await x(o);e.json({resources:[r]});return}const n=await c.Project.findAll({where:{}}),s=await Promise.all(n.map(r=>x(r.id)));e.json({resources:s})});const ot=I.default.object({projectId:I.default.string().required().min(1),releaseId:I.default.string().allow(""),resources:I.default.array().items(I.default.string()).required(),locale:I.default.string().allow("")});S.post("/resources",O,async(t,e)=>{const{resources:o,projectId:n,releaseId:s}=await ot.validateAsync(t.body),r="production",i=[],u=[];for(const a of o){if(tt(a))continue;const{pageId:m,projectId:j}=Q(a)||{};if(m)m===E||m&&j&&i.push({pageId:m,projectId:j});else{const{componentId:p,projectId:d}=V(a)||{};p===E||p&&d&&u.push({componentId:p,projectId:d})}}const f=D.default(i,"projectId"),_=D.default(u,"projectId"),h=new Set([...Object.keys(f),...Object.keys(_)]),w=H(n,s);l.default.rmSync(w,{recursive:!0,force:!0}),l.default.mkdirSync(w,{recursive:!0});for(const a of h){const m=await c.SiteState.shared(a).getState(r),j=f[a],p=_[a],d=j==null?void 0:j.map(g=>g.pageId),R=p==null?void 0:p.map(g=>g.componentId);if(d!=null&&d.length||R!=null&&R.length){const g=await c.toPackage(m,{exportAssets:!0,pageIds:d,componentIds:R});await z(g,w),l.default.rmSync(g,{recursive:!0,force:!0})}c.logger.info(`Exported resources for project ${a}`,{pageIds:d,componentIds:R})}e.json({})});S.get("/all-resources",O,async(t,e)=>{const{states:o}=await c.getResourceStates(),n=o==null?void 0:o.map(s=>{const r={blockletId:s.blockletId,blockletTitle:s.blockletTitle,components:{}};if(s.state.components&&(r.components=s.state.components),Object.keys(r.components).length!==0)return r}).filter(Boolean);e.json(n)});module.exports=S;
|
package/lib/cjs/site-state.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/site-state-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/site-state-D6GUd_1A.js");require("@blocklet/pages-kit/utils/property");require("@blocklet/quickjs");require("@blocklet/sdk/lib/component");require("@blocklet/sdk/lib/config");require("@reactivedata/reactive");require("@syncedstore/core");require("crypto");require("fs");require("glob");require("lib0/decoding");require("lib0/encoding");require("lodash/cloneDeep");require("lodash/debounce");require("lodash/get");require("lodash/isEmpty");require("lodash/pick");require("lodash/set");require("lodash/union");require("lru-cache");require("nanoid");require("p-limit");require("path");require("stream/promises");require("tar");require("ufo");require("wait-on");require("y-protocols/awareness");require("y-protocols/sync");require("yaml");require("yjs");const t=require("@blocklet/pages-kit/types/state");exports.PUBLISH_MODES=e.PUBLISH_MODES;exports.SITE_STATE_PATH=e.SITE_STATE_PATH;exports.STATE_MODES=e.STATE_MODES;exports.default=e.SiteState;exports.fromPackage=e.fromPackage;exports.getResourceStates=e.getResourceStates;exports.initPackResourceStates=e.initPackResourceStates;exports.mergeState=e.mergeState;exports.nextId=e.nextId;exports.toPackage=e.toPackage;exports.triggerReloadAllProjectResource=e.triggerReloadAllProjectResource;Object.keys(t).forEach(r=>{r!=="default"&&!Object.prototype.hasOwnProperty.call(exports,r)&&Object.defineProperty(exports,r,{enumerable:!0,get:()=>t[r]})});
|
package/lib/cjs/theme.js
CHANGED
|
@@ -236,4 +236,4 @@
|
|
|
236
236
|
--radius-m: 8px;
|
|
237
237
|
--radius-l: 12px;
|
|
238
238
|
--radius-round: 9999px;
|
|
239
|
-
}`,a=n({typography:{button:{textTransform:"none"},subtitle1:{fontWeight:600,fontSize:"18px",color:"#000",lineHeight:1.5},subtitle2:{fontSize:"14px",lineHeight:"24px",fontWeight:500,color:"#030712",marginBottom:"4px"}},palette:{background:{paper:"#ffffff",default:"#F9FAFB"},action:{selected:"rgba(25, 118, 210, 0.08)"}},shape:{borderRadius:8},components:{MuiCssBaseline:{styleOverrides:u},MuiFormLabel:{styleOverrides:{root:{fontSize:"0.875rem"}}},MuiFormControlLabel:{styleOverrides:{root:{marginLeft:0},label:{fontSize:"0.875rem"}}},MuiInputLabel:{styleOverrides:{root:{fontSize:"0.875rem"}}},MuiRadio:{styleOverrides:{root:{padding:4,[`.${e.svgIconClasses.fontSizeMedium}`]:{fontSize:"1.25rem"},[`.${e.svgIconClasses.fontSizeSmall}`]:{fontSize:"1.125rem"}}}},MuiCheckbox:{styleOverrides:{root:{padding:4,[`.${e.svgIconClasses.fontSizeMedium}`]:{fontSize:"1.25rem"},[`.${e.svgIconClasses.fontSizeSmall}`]:{fontSize:"1.125rem"}}}},MuiSwitch:{styleOverrides:{root:{height:28,width:48,padding:8,[`&.${e.switchClasses.sizeSmall}`]:{height:26,width:40,padding:8}},switchBase:{padding:4}}},MuiAutocomplete:{defaultProps:{popupIcon:l.jsx(d,{fontSize:14})},variants:[{props:{},style:({theme:s})=>s.unstable_sx({[`.${e.autocompleteClasses.inputRoot}`]:{pt:1.5,pb:.25,[`.${e.autocompleteClasses.input}.${e.inputBaseClasses.input}`]:{px:0,pt:.5,pb:.25},[`&.${e.inputBaseClasses.sizeSmall}`]:{[`.${e.autocompleteClasses.input}.${e.inputBaseClasses.input}`]:{px:0,py:0,pb:"1px"}}}})}]},MuiTextField:{defaultProps:{variant:"filled"},variants:[{props:{},style:({theme:s,ownerState:t})=>s.unstable_sx({[`.${e.inputBaseClasses.root}`]:{borderRadius:1,lineHeight:"1.5rem",[`.${e.inputBaseClasses.input}`]:{height:"1.5rem"},[`&.${e.inputClasses.multiline}`]:{pl:0,pr:0,pt:"16px","& .MuiInputBase-inputMultiline":{py:0}}},[`.${e.inputClasses.root}`]:{mt:1.5,[`&.${e.inputBaseClasses.hiddenLabel}`]:{mt:0,pt:0,[`.${e.selectClasses.select}.${e.inputClasses.input}:focus`]:{bgcolor:"transparent"}}},[`.${e.inputLabelClasses.standard}`]:{transform:"translate(0px, 18px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(0px, 15px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(0px, -1px) scale(0.8)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(0px, -1px) scale(0.8)"}}},[`.${e.filledInputClasses.root}`]:{":before,:after":{display:"none"},[`.${e.inputBaseClasses.input}`]:{pb:.5,pt:t!=null&&t.label?2:.5,px:1,":focus":{borderRadius:1},[`&.${e.inputBaseClasses.inputSizeSmall}`]:{pb:.25,pt:t!=null&&t.label?1.25:.25},[`&.${e.inputBaseClasses.inputHiddenLabel}`]:{py:.5,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}},[`.${e.inputLabelClasses.filled}`]:{transform:"translate(8px, 11px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 7px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(8px, 2px) scale(0.8)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 0) scale(0.8)"}}},[`.${e.outlinedInputClasses.root}`]:{[`.${e.inputBaseClasses.input}`]:{py:1.25,px:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:.875},[`&.${e.inputBaseClasses.inputHiddenLabel}`]:{py:.5,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}},[`.${e.inputLabelClasses.outlined}`]:{transform:"translate(8px, 10px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 7px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(16px, -7px) scale(0.8)"}}})}]},MuiInput:{defaultProps:{disableUnderline:!0},variants:[{props:{disableUnderline:!0},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem",lineHeight:"1.5rem",[`&.${e.inputBaseClasses.multiline}`]:{py:0},[`.${e.inputBaseClasses.input}`]:{py:.5,height:"1.5rem"},[`&.${e.inputBaseClasses.sizeSmall}`]:{[`.${e.inputBaseClasses.input}`]:{py:"1px"}}})}]},MuiFilledInput:{styleOverrides:{root:{fontSize:"0.875rem",backgroundColor:"rgba(0, 0, 0, 0.03)","&:hover":{backgroundColor:"rgb(0, 0, 0, 0.06)","@media (hover: none)":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}}}},MuiSelect:{styleOverrides:{select:{display:"flex",alignItems:"center",[`.${e.listItemIconClasses.root}`]:{minWidth:20}}},defaultProps:{variant:"filled",IconComponent:d},variants:[{props:{},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem",borderRadius:1,lineHeight:"1.5rem",[`&.${e.filledInputClasses.root}`]:{":before,:after":{display:"none"},[`.${e.inputBaseClasses.input}`]:{py:.5,borderRadius:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}},[`&.${e.outlinedInputClasses.root}`]:{[`.${e.inputBaseClasses.input}`]:{py:.5,borderRadius:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}})}]},MuiSlider:{defaultProps:{},variants:[{props:{},style:({theme:s})=>s.unstable_sx({height:3,[`.${e.sliderClasses.track}`]:{borderWidth:0},[`.${e.sliderClasses.thumb}`]:{width:16,height:16},[`&.${e.sliderClasses.sizeSmall}`]:{height:2,[`.${e.sliderClasses.thumb}`]:{width:12,height:12}}})}]},MuiFormHelperText:{styleOverrides:{root:({theme:s})=>s.unstable_sx({mx:1})}},MuiTypography:{variants:[{props:{variant:"body1"},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem"})},{props:{variant:"body2"},style:({theme:s})=>s.unstable_sx({fontSize:"0.75rem"})}]},MuiMenuItem:{styleOverrides:{root:({theme:s})=>s.unstable_sx({padding:"6px 12px",fontSize:"0.875rem",borderRadius:1,".MuiListItemIcon-root":{minWidth:0,mr:1}})}},MuiListItemButton:{styleOverrides:{root:{padding:"6px 12px"}}},MuiList:{styleOverrides:{root:{padding:4}}},MuiListItemText:{styleOverrides:{primary:{fontSize:"0.875rem"}}},MuiDialogTitle:{styleOverrides:{root:{padding:"16px 24px",borderBottom:"1px solid #E5E7EB"}}},MuiDialogActions:{styleOverrides:{root:{borderTop:"1px solid #E5E7EB",padding:"16px 24px"}}},MuiDialogContent:{styleOverrides:{root:{padding:"12px 24px !important"}}},MuiButton:{defaultProps:{size:"small"},styleOverrides:{contained:({ownerState:s})=>({...(s.color==="inherit"||s.color==="primary")&&s.className!=="ignore-style-override"&&{backgroundColor:"#030712",color:"white","&:hover":{backgroundColor:"#030712"}},[`&.${v.loadingButtonClasses.loading}`]:{color:"grey"}}),outlined:({ownerState:s})=>({...(s.color==="inherit"||s.color==="primary")&&s.className!=="ignore-style-override"&&{bgcolor:"#fff",color:"#000",border:"1px solid #E5E7EB",fontSize:"13px",fontWeight:500,padding:"4px 12px","&:hover":{border:"1px solid #E5E7EB"}}})}}}}),b={fontSize:"5rem",[a.breakpoints.down("xl")]:{fontSize:"5rem"},[a.breakpoints.down("lg")]:{fontSize:"4rem"},[a.breakpoints.down("md")]:{fontSize:"3rem"},[a.breakpoints.down("sm")]:{fontSize:"2rem"}};a.typography.big={...b};const p=n({typography:{button:{textTransform:"none"}}});p.typography.big={...b};function d(s){return l.jsx(e.Box,{...s,component:F.Icon,icon:x.default})}exports.create=n;exports.darkThemeRoot=E;exports.genPaletteColor=r;exports.lightThemeRoot=u;exports.pagesTheme=p;exports.theme=a;
|
|
239
|
+
}`,a=n({typography:{button:{textTransform:"none",WebkitTextTransform:"none"},subtitle1:{fontWeight:600,fontSize:"18px",color:"#000",lineHeight:1.5},subtitle2:{fontSize:"14px",lineHeight:"24px",fontWeight:500,color:"#030712",marginBottom:"4px"}},palette:{background:{paper:"#ffffff",default:"#F9FAFB"},action:{selected:"rgba(25, 118, 210, 0.08)"}},shape:{borderRadius:8},components:{MuiCssBaseline:{styleOverrides:u},MuiFormLabel:{styleOverrides:{root:{fontSize:"0.875rem"}}},MuiFormControlLabel:{styleOverrides:{root:{marginLeft:0},label:{fontSize:"0.875rem"}}},MuiInputLabel:{styleOverrides:{root:{fontSize:"0.875rem"}}},MuiRadio:{styleOverrides:{root:{padding:4,[`.${e.svgIconClasses.fontSizeMedium}`]:{fontSize:"1.25rem"},[`.${e.svgIconClasses.fontSizeSmall}`]:{fontSize:"1.125rem"}}}},MuiCheckbox:{styleOverrides:{root:{padding:4,[`.${e.svgIconClasses.fontSizeMedium}`]:{fontSize:"1.25rem"},[`.${e.svgIconClasses.fontSizeSmall}`]:{fontSize:"1.125rem"}}}},MuiSwitch:{styleOverrides:{root:{height:28,width:48,padding:8,[`&.${e.switchClasses.sizeSmall}`]:{height:26,width:40,padding:8}},switchBase:{padding:4}}},MuiAutocomplete:{defaultProps:{popupIcon:l.jsx(d,{fontSize:14})},variants:[{props:{},style:({theme:s})=>s.unstable_sx({[`.${e.autocompleteClasses.inputRoot}`]:{pt:1.5,pb:.25,[`.${e.autocompleteClasses.input}.${e.inputBaseClasses.input}`]:{px:0,pt:.5,pb:.25},[`&.${e.inputBaseClasses.sizeSmall}`]:{[`.${e.autocompleteClasses.input}.${e.inputBaseClasses.input}`]:{px:0,py:0,pb:"1px"}}}})}]},MuiTextField:{defaultProps:{variant:"filled"},variants:[{props:{},style:({theme:s,ownerState:t})=>s.unstable_sx({[`.${e.inputBaseClasses.root}`]:{borderRadius:1,lineHeight:"1.5rem",[`.${e.inputBaseClasses.input}`]:{height:"1.5rem"},[`&.${e.inputClasses.multiline}`]:{pl:0,pr:0,pt:"16px","& .MuiInputBase-inputMultiline":{py:0}}},[`.${e.inputClasses.root}`]:{mt:1.5,[`&.${e.inputBaseClasses.hiddenLabel}`]:{mt:0,pt:0,[`.${e.selectClasses.select}.${e.inputClasses.input}:focus`]:{bgcolor:"transparent"}}},[`.${e.inputLabelClasses.standard}`]:{transform:"translate(0px, 18px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(0px, 15px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(0px, -1px) scale(0.8)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(0px, -1px) scale(0.8)"}}},[`.${e.filledInputClasses.root}`]:{":before,:after":{display:"none"},[`.${e.inputBaseClasses.input}`]:{pb:.5,pt:t!=null&&t.label?2:.5,px:1,":focus":{borderRadius:1},[`&.${e.inputBaseClasses.inputSizeSmall}`]:{pb:.25,pt:t!=null&&t.label?1.25:.25},[`&.${e.inputBaseClasses.inputHiddenLabel}`]:{py:.5,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}},[`.${e.inputLabelClasses.filled}`]:{transform:"translate(8px, 11px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 7px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(8px, 2px) scale(0.8)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 0) scale(0.8)"}}},[`.${e.outlinedInputClasses.root}`]:{[`.${e.inputBaseClasses.input}`]:{py:1.25,px:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:.875},[`&.${e.inputBaseClasses.inputHiddenLabel}`]:{py:.5,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}},[`.${e.inputLabelClasses.outlined}`]:{transform:"translate(8px, 10px) scale(1)",[`&.${e.inputLabelClasses.sizeSmall}`]:{transform:"translate(8px, 7px) scale(1)"},[`&.${e.inputLabelClasses.shrink}`]:{transform:"translate(16px, -7px) scale(0.8)"}}})}]},MuiInput:{defaultProps:{disableUnderline:!0},variants:[{props:{disableUnderline:!0},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem",lineHeight:"1.5rem",[`&.${e.inputBaseClasses.multiline}`]:{py:0},[`.${e.inputBaseClasses.input}`]:{py:.5,height:"1.5rem"},[`&.${e.inputBaseClasses.sizeSmall}`]:{[`.${e.inputBaseClasses.input}`]:{py:"1px"}}})}]},MuiFilledInput:{styleOverrides:{root:{fontSize:"0.875rem",backgroundColor:"rgba(0, 0, 0, 0.03)","&:hover":{backgroundColor:"rgb(0, 0, 0, 0.06)","@media (hover: none)":{backgroundColor:"rgba(0, 0, 0, 0.03)"}}}}},MuiSelect:{styleOverrides:{select:{display:"flex",alignItems:"center",[`.${e.listItemIconClasses.root}`]:{minWidth:20}}},defaultProps:{variant:"filled",IconComponent:d},variants:[{props:{},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem",borderRadius:1,lineHeight:"1.5rem",[`&.${e.filledInputClasses.root}`]:{":before,:after":{display:"none"},[`.${e.inputBaseClasses.input}`]:{py:.5,borderRadius:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}},[`&.${e.outlinedInputClasses.root}`]:{[`.${e.inputBaseClasses.input}`]:{py:.5,borderRadius:1,[`&.${e.inputBaseClasses.inputSizeSmall}`]:{py:"1px"}}}})}]},MuiSlider:{defaultProps:{},variants:[{props:{},style:({theme:s})=>s.unstable_sx({height:3,[`.${e.sliderClasses.track}`]:{borderWidth:0},[`.${e.sliderClasses.thumb}`]:{width:16,height:16},[`&.${e.sliderClasses.sizeSmall}`]:{height:2,[`.${e.sliderClasses.thumb}`]:{width:12,height:12}}})}]},MuiFormHelperText:{styleOverrides:{root:({theme:s})=>s.unstable_sx({mx:1})}},MuiTypography:{variants:[{props:{variant:"body1"},style:({theme:s})=>s.unstable_sx({fontSize:"0.875rem"})},{props:{variant:"body2"},style:({theme:s})=>s.unstable_sx({fontSize:"0.75rem"})}]},MuiMenuItem:{styleOverrides:{root:({theme:s})=>s.unstable_sx({padding:"6px 12px",fontSize:"0.875rem",borderRadius:1,".MuiListItemIcon-root":{minWidth:0,mr:1}})}},MuiListItemButton:{styleOverrides:{root:{padding:"6px 12px"}}},MuiList:{styleOverrides:{root:{padding:4}}},MuiListItemText:{styleOverrides:{primary:{fontSize:"0.875rem"}}},MuiDialogTitle:{styleOverrides:{root:{padding:"16px 24px",borderBottom:"1px solid #E5E7EB"}}},MuiDialogActions:{styleOverrides:{root:{borderTop:"1px solid #E5E7EB",padding:"16px 24px"}}},MuiDialogContent:{styleOverrides:{root:{padding:"12px 24px !important"}}},MuiButton:{defaultProps:{size:"small"},styleOverrides:{contained:({ownerState:s})=>({...(s.color==="inherit"||s.color==="primary")&&s.className!=="ignore-style-override"&&{backgroundColor:"#030712",color:"white","&:hover":{backgroundColor:"#030712"}},[`&.${v.loadingButtonClasses.loading}`]:{color:"grey"}}),outlined:({ownerState:s})=>({...(s.color==="inherit"||s.color==="primary")&&s.className!=="ignore-style-override"&&{bgcolor:"#fff",color:"#000",border:"1px solid #E5E7EB",fontSize:"13px",fontWeight:500,padding:"4px 12px","&:hover":{border:"1px solid #E5E7EB"}}})}}}}),b={fontSize:"5rem",[a.breakpoints.down("xl")]:{fontSize:"5rem"},[a.breakpoints.down("lg")]:{fontSize:"4rem"},[a.breakpoints.down("md")]:{fontSize:"3rem"},[a.breakpoints.down("sm")]:{fontSize:"2rem"}};a.typography.big={...b};const p=n({typography:{button:{textTransform:"none",WebkitTextTransform:"none"}}});p.typography.big={...b};function d(s){return l.jsx(e.Box,{...s,component:F.Icon,icon:x.default})}exports.create=n;exports.darkThemeRoot=E;exports.genPaletteColor=r;exports.lightThemeRoot=u;exports.pagesTheme=p;exports.theme=a;
|
|
@@ -159,8 +159,8 @@ const is = async (t, { componentId: o }) => {
|
|
|
159
159
|
stats: {}
|
|
160
160
|
}),
|
|
161
161
|
(r) => {
|
|
162
|
-
r.walkRules((
|
|
163
|
-
|
|
162
|
+
r.walkRules((p) => {
|
|
163
|
+
p.selectors = p.selectors.map((a) => a.replace(/\.(.+)/g, `${s}.$1,${s} .$1`));
|
|
164
164
|
});
|
|
165
165
|
}
|
|
166
166
|
// FIXME: cssnano use browserslist, it is not working with the fs isolation
|
|
@@ -214,8 +214,8 @@ ${t}
|
|
|
214
214
|
}
|
|
215
215
|
}
|
|
216
216
|
), ls = async (t, o) => {
|
|
217
|
-
var
|
|
218
|
-
const s = (a = (
|
|
217
|
+
var p, a;
|
|
218
|
+
const s = (a = (p = (await jt.build({
|
|
219
219
|
entryPoints: ["index.tsx"],
|
|
220
220
|
external: Object.keys(Ot),
|
|
221
221
|
format: "esm",
|
|
@@ -227,14 +227,14 @@ ${t}
|
|
|
227
227
|
name: "vfs",
|
|
228
228
|
setup(i) {
|
|
229
229
|
let c = null;
|
|
230
|
-
i.onResolve({ filter: /.*/ }, (
|
|
230
|
+
i.onResolve({ filter: /.*/ }, (l) => l.path === "index.tsx" ? { path: "index.tsx", namespace: "vfs" } : l.path === "./component" ? { path: "component.tsx", namespace: "vfs" } : null), i.onLoad({ filter: /.*/, namespace: "vfs" }, async (l) => {
|
|
231
231
|
var u;
|
|
232
|
-
if (
|
|
232
|
+
if (l.path === "index.tsx")
|
|
233
233
|
return { contents: `export { ${o} } from './component'`, loader: "tsx" };
|
|
234
|
-
if (
|
|
234
|
+
if (l.path === "component.tsx")
|
|
235
235
|
return { contents: t, loader: "tsx" };
|
|
236
|
-
if (vt(
|
|
237
|
-
const d =
|
|
236
|
+
if (vt(l.path)) {
|
|
237
|
+
const d = l.path.split("/").pop();
|
|
238
238
|
if (c || (c = await De({ ensureLoaded: !1 })), (u = c == null ? void 0 : c.chunks) != null && u[d])
|
|
239
239
|
try {
|
|
240
240
|
const f = X(c.chunks[d], "utf-8");
|
|
@@ -247,7 +247,7 @@ ${t}
|
|
|
247
247
|
}
|
|
248
248
|
}
|
|
249
249
|
]
|
|
250
|
-
})).outputFiles) == null ? void 0 :
|
|
250
|
+
})).outputFiles) == null ? void 0 : p[0]) == null ? void 0 : a.contents;
|
|
251
251
|
if (!s) throw new Error("Failed to build server code");
|
|
252
252
|
const n = Buffer.from(s).toString();
|
|
253
253
|
return k.transpileModule(n, {
|
|
@@ -324,7 +324,7 @@ async function Oo({
|
|
|
324
324
|
module: r
|
|
325
325
|
}) {
|
|
326
326
|
const {
|
|
327
|
-
supportedLocales:
|
|
327
|
+
supportedLocales: p,
|
|
328
328
|
config: { defaultLocale: a }
|
|
329
329
|
} = e;
|
|
330
330
|
if (!a) return null;
|
|
@@ -365,7 +365,7 @@ async function Oo({
|
|
|
365
365
|
)).filter((f) => !!f), c = Object.values(
|
|
366
366
|
i.reduce((f, y) => ({ ...f, ...y.preload.components }), {})
|
|
367
367
|
);
|
|
368
|
-
async function
|
|
368
|
+
async function l() {
|
|
369
369
|
const f = await Promise.all(
|
|
370
370
|
c.map(async (y) => {
|
|
371
371
|
const C = mt({ componentId: y.component.id }), j = r === ae.ESM ? {
|
|
@@ -390,9 +390,9 @@ async function Oo({
|
|
|
390
390
|
);
|
|
391
391
|
return Object.fromEntries(f);
|
|
392
392
|
}
|
|
393
|
-
const u = await
|
|
393
|
+
const u = await l();
|
|
394
394
|
return {
|
|
395
|
-
config: { defaultLocale: a, supportedLocales:
|
|
395
|
+
config: { defaultLocale: a, supportedLocales: p },
|
|
396
396
|
components: u,
|
|
397
397
|
instances: i.map((f) => ({
|
|
398
398
|
id: f.instanceId,
|
|
@@ -409,9 +409,9 @@ async function gs({
|
|
|
409
409
|
defaultLocale: n,
|
|
410
410
|
properties: r
|
|
411
411
|
}) {
|
|
412
|
-
const { supportedLocales:
|
|
412
|
+
const { supportedLocales: p } = o, a = pe({ state: o, componentId: e });
|
|
413
413
|
if (!a) return null;
|
|
414
|
-
const i =
|
|
414
|
+
const i = p.some((l) => l.locale === s) ? s : n;
|
|
415
415
|
if (!i) return null;
|
|
416
416
|
const c = await et({ req: t, state: o, componentId: e, locale: i, defaultLocale: n, properties: r });
|
|
417
417
|
return c ? {
|
|
@@ -427,10 +427,10 @@ async function et({
|
|
|
427
427
|
componentId: s,
|
|
428
428
|
locale: n,
|
|
429
429
|
defaultLocale: r,
|
|
430
|
-
properties:
|
|
430
|
+
properties: p
|
|
431
431
|
}) {
|
|
432
432
|
if (o > hs) throw new RangeError("max component depth exceeded");
|
|
433
|
-
const a = ys({ state: e, componentId: s, properties:
|
|
433
|
+
const a = ys({ state: e, componentId: s, properties: p, locale: n });
|
|
434
434
|
if (!a) return null;
|
|
435
435
|
const { props: i } = a, c = {
|
|
436
436
|
locale: n || r,
|
|
@@ -438,13 +438,13 @@ async function et({
|
|
|
438
438
|
props: { ...i }
|
|
439
439
|
};
|
|
440
440
|
try {
|
|
441
|
-
const
|
|
442
|
-
|
|
443
|
-
} catch (
|
|
444
|
-
b.error("preload data at server side error", { componentId: s, name: a.component.name }, { error:
|
|
441
|
+
const l = await Ss({ ...a, req: t });
|
|
442
|
+
l != null && l.props && Object.assign(c.props, l.props);
|
|
443
|
+
} catch (l) {
|
|
444
|
+
b.error("preload data at server side error", { componentId: s, name: a.component.name }, { error: l });
|
|
445
445
|
}
|
|
446
446
|
return await Promise.all(
|
|
447
|
-
Object.entries(i).map(async ([
|
|
447
|
+
Object.entries(i).map(async ([l, u]) => {
|
|
448
448
|
if ((u == null ? void 0 : u.type) === Le) {
|
|
449
449
|
const d = await et({
|
|
450
450
|
req: t,
|
|
@@ -456,7 +456,7 @@ async function et({
|
|
|
456
456
|
properties: u.properties
|
|
457
457
|
});
|
|
458
458
|
d && (Object.assign(c.components, d.components), Object.assign(c.props, {
|
|
459
|
-
[
|
|
459
|
+
[l]: {
|
|
460
460
|
type: Le,
|
|
461
461
|
componentId: u.componentId,
|
|
462
462
|
props: d.props
|
|
@@ -476,7 +476,7 @@ function ys({
|
|
|
476
476
|
if (!n) return null;
|
|
477
477
|
const r = ft({
|
|
478
478
|
componentId: o,
|
|
479
|
-
getComponent: (
|
|
479
|
+
getComponent: (p) => pe({ state: t, componentId: p }),
|
|
480
480
|
locale: e,
|
|
481
481
|
defaultLocale: t.config.defaultLocale,
|
|
482
482
|
properties: s
|
|
@@ -491,11 +491,11 @@ function Ao({ state: t, name: o }) {
|
|
|
491
491
|
var s, n;
|
|
492
492
|
const e = o.toLowerCase();
|
|
493
493
|
return ((s = Object.values(t.components).find((r) => {
|
|
494
|
-
var
|
|
495
|
-
return ((
|
|
494
|
+
var p;
|
|
495
|
+
return ((p = r.data.name) == null ? void 0 : p.toLowerCase()) === e;
|
|
496
496
|
})) == null ? void 0 : s.data) ?? ((n = t.resources.components && Object.values(t.resources.components).find((r) => {
|
|
497
|
-
var
|
|
498
|
-
return ((
|
|
497
|
+
var p;
|
|
498
|
+
return ((p = r.component.name) == null ? void 0 : p.toLowerCase()) === e;
|
|
499
499
|
})) == null ? void 0 : n.component);
|
|
500
500
|
}
|
|
501
501
|
async function Ss({
|
|
@@ -571,21 +571,21 @@ export { joinURL, withQuery, getQuery, getComponentMountPoint }
|
|
|
571
571
|
fetch: (a, { ...i } = {}) => {
|
|
572
572
|
const c = typeof a == "string" && a.startsWith("/") ? G(g.env.appUrl, a) : a;
|
|
573
573
|
if (typeof c == "string" && Re(c).host === Re(g.env.appUrl).host) {
|
|
574
|
-
const
|
|
575
|
-
if (
|
|
574
|
+
const l = s.get("cookie");
|
|
575
|
+
if (l) {
|
|
576
576
|
const u = new St(i.headers);
|
|
577
|
-
u.set("cookie",
|
|
577
|
+
u.set("cookie", l), i.headers = u;
|
|
578
578
|
}
|
|
579
579
|
}
|
|
580
580
|
return yt(c, {
|
|
581
581
|
...i,
|
|
582
582
|
timeout: Be * 1e3
|
|
583
|
-
}).then((
|
|
584
|
-
ok:
|
|
585
|
-
status:
|
|
586
|
-
statusText:
|
|
587
|
-
headers: Object.fromEntries(
|
|
588
|
-
json: () =>
|
|
583
|
+
}).then((l) => ({
|
|
584
|
+
ok: l.ok,
|
|
585
|
+
status: l.status,
|
|
586
|
+
statusText: l.statusText,
|
|
587
|
+
headers: Object.fromEntries(l.headers.entries()),
|
|
588
|
+
json: () => l.json()
|
|
589
589
|
}));
|
|
590
590
|
},
|
|
591
591
|
props: e
|
|
@@ -651,28 +651,28 @@ const F = class F extends z.Doc {
|
|
|
651
651
|
T(this, "conns", /* @__PURE__ */ new Map());
|
|
652
652
|
T(this, "awareness");
|
|
653
653
|
T(this, "awarenessChangeHandler", ({ added: e, updated: s, removed: n }, r) => {
|
|
654
|
-
const
|
|
654
|
+
const p = e.concat(s, n);
|
|
655
655
|
if (r !== null) {
|
|
656
656
|
const c = this.conns.get(r);
|
|
657
|
-
c && (e.forEach((
|
|
658
|
-
c.add(
|
|
659
|
-
}), n.forEach((
|
|
660
|
-
c.delete(
|
|
657
|
+
c && (e.forEach((l) => {
|
|
658
|
+
c.add(l);
|
|
659
|
+
}), n.forEach((l) => {
|
|
660
|
+
c.delete(l);
|
|
661
661
|
}));
|
|
662
662
|
}
|
|
663
663
|
const a = x.createEncoder();
|
|
664
|
-
x.writeVarUint(a, be), x.writeVarUint8Array(a, Me(this.awareness,
|
|
664
|
+
x.writeVarUint(a, be), x.writeVarUint8Array(a, Me(this.awareness, p));
|
|
665
665
|
const i = x.toUint8Array(a);
|
|
666
|
-
this.conns.forEach((c,
|
|
666
|
+
this.conns.forEach((c, l) => this.send(l, i));
|
|
667
667
|
});
|
|
668
668
|
T(this, "updateHandler", (e) => {
|
|
669
669
|
const s = x.createEncoder();
|
|
670
670
|
x.writeVarUint(s, ne), Xt(s, e);
|
|
671
671
|
const n = x.toUint8Array(s);
|
|
672
|
-
this.conns.forEach((r,
|
|
672
|
+
this.conns.forEach((r, p) => this.send(p, n));
|
|
673
673
|
});
|
|
674
674
|
T(this, "ensureDataStructure", () => {
|
|
675
|
-
var
|
|
675
|
+
var p;
|
|
676
676
|
const { supportedLocales: e, pages: s, pageIds: n, config: r } = this.syncedStore;
|
|
677
677
|
{
|
|
678
678
|
const a = new Set(Object.keys(s));
|
|
@@ -682,7 +682,7 @@ const F = class F extends z.Doc {
|
|
|
682
682
|
a.has(c) ? (a.delete(c), i++) : n.splice(i, 1);
|
|
683
683
|
}
|
|
684
684
|
}
|
|
685
|
-
e.splice(0, e.length), e.push(...ve.env.languages.map((a) => ({ locale: a.code, name: a.name }))), r.defaultLocale = (
|
|
685
|
+
e.splice(0, e.length), e.push(...ve.env.languages.map((a) => ({ locale: a.code, name: a.name }))), r.defaultLocale = (p = e[0]) == null ? void 0 : p.locale;
|
|
686
686
|
{
|
|
687
687
|
let a = 0;
|
|
688
688
|
const i = /* @__PURE__ */ new Set();
|
|
@@ -718,20 +718,20 @@ const F = class F extends z.Doc {
|
|
|
718
718
|
T(this, "publish", async ({ mode: e, pages: s }) => {
|
|
719
719
|
const n = await this.getState("draft"), r = await this.getState("production");
|
|
720
720
|
await ze(n, r, { pages: s, pageMergeMode: "replace", deletePages: !0, publishMode: e }), r.config.publishedAt = (/* @__PURE__ */ new Date()).getTime();
|
|
721
|
-
for (const
|
|
722
|
-
this.syncedStore.pages[
|
|
721
|
+
for (const p of s || Object.keys(this.syncedStore.pages))
|
|
722
|
+
this.syncedStore.pages[p] && (this.syncedStore.pages[p].publishedAt = (/* @__PURE__ */ new Date()).toISOString());
|
|
723
723
|
await this.setState(e, r);
|
|
724
724
|
});
|
|
725
725
|
T(this, "mergeState", async (e, s) => {
|
|
726
726
|
var a, i, c;
|
|
727
727
|
const n = JSON.parse(JSON.stringify(s));
|
|
728
728
|
(a = e.config).fontFamily ?? (a.fontFamily = {});
|
|
729
|
-
const r = (i = n.config) == null ? void 0 : i.fontFamily,
|
|
730
|
-
e.config.fontFamily.title = (r == null ? void 0 : r.title) || (
|
|
729
|
+
const r = (i = n.config) == null ? void 0 : i.fontFamily, p = (c = e.config) == null ? void 0 : c.fontFamily;
|
|
730
|
+
e.config.fontFamily.title = (r == null ? void 0 : r.title) || (p == null ? void 0 : p.title), e.config.fontFamily.description = (r == null ? void 0 : r.description) || (p == null ? void 0 : p.description), await new Promise((l, u) => {
|
|
731
731
|
this.transact(async () => {
|
|
732
732
|
try {
|
|
733
733
|
const d = await ze(e, s);
|
|
734
|
-
|
|
734
|
+
l(d);
|
|
735
735
|
} catch (d) {
|
|
736
736
|
u(d);
|
|
737
737
|
}
|
|
@@ -763,17 +763,17 @@ const F = class F extends z.Doc {
|
|
|
763
763
|
{
|
|
764
764
|
const r = x.createEncoder();
|
|
765
765
|
x.writeVarUint(r, ne), Zt(r, this), this.send(e, x.toUint8Array(r));
|
|
766
|
-
const
|
|
767
|
-
if (
|
|
766
|
+
const p = this.awareness.getStates();
|
|
767
|
+
if (p.size > 0) {
|
|
768
768
|
const a = x.createEncoder();
|
|
769
|
-
x.writeVarUint(a, be), x.writeVarUint8Array(a, Me(this.awareness, Array.from(
|
|
769
|
+
x.writeVarUint(a, be), x.writeVarUint8Array(a, Me(this.awareness, Array.from(p.keys()))), this.send(e, x.toUint8Array(a));
|
|
770
770
|
}
|
|
771
771
|
}
|
|
772
772
|
});
|
|
773
773
|
T(this, "messageListener", (e, s) => {
|
|
774
774
|
try {
|
|
775
|
-
const n = x.createEncoder(), r = Ee.createDecoder(s),
|
|
776
|
-
switch (
|
|
775
|
+
const n = x.createEncoder(), r = Ee.createDecoder(s), p = Ee.readVarUint(r);
|
|
776
|
+
switch (p) {
|
|
777
777
|
case ne:
|
|
778
778
|
x.writeVarUint(n, ne), es(r, n, this, null), x.length(n) > 1 && (this.ensureDataStructure(), this.send(e, x.toUint8Array(n)));
|
|
779
779
|
break;
|
|
@@ -782,7 +782,7 @@ const F = class F extends z.Doc {
|
|
|
782
782
|
break;
|
|
783
783
|
}
|
|
784
784
|
default:
|
|
785
|
-
b.warn(`Unsupported messageType ${
|
|
785
|
+
b.warn(`Unsupported messageType ${p}`);
|
|
786
786
|
}
|
|
787
787
|
} catch (n) {
|
|
788
788
|
b.error(n);
|
|
@@ -831,7 +831,7 @@ const F = class F extends z.Doc {
|
|
|
831
831
|
initObserver() {
|
|
832
832
|
const e = (n) => {
|
|
833
833
|
n.observeDeep((r) => {
|
|
834
|
-
r.some((
|
|
834
|
+
r.some((p) => p.changes.keys.has("updatedAt") || p.changes.keys.has("publishedAt")) || n.set("updatedAt", (/* @__PURE__ */ new Date()).toISOString());
|
|
835
835
|
});
|
|
836
836
|
};
|
|
837
837
|
this.syncedStore.pages && Object.keys(this.syncedStore.pages).forEach((n) => {
|
|
@@ -840,9 +840,9 @@ const F = class F extends z.Doc {
|
|
|
840
840
|
});
|
|
841
841
|
const s = we(this.syncedStore.pages);
|
|
842
842
|
s && s instanceof z.Map && s.observe((n) => {
|
|
843
|
-
n.changes.keys.forEach((r,
|
|
843
|
+
n.changes.keys.forEach((r, p) => {
|
|
844
844
|
if (r.action === "add") {
|
|
845
|
-
const a = we(this.syncedStore.pages[
|
|
845
|
+
const a = we(this.syncedStore.pages[p]);
|
|
846
846
|
a && a instanceof z.Map && e(a);
|
|
847
847
|
}
|
|
848
848
|
});
|
|
@@ -852,36 +852,33 @@ const F = class F extends z.Doc {
|
|
|
852
852
|
return E(this.options.path, "draft.yjs");
|
|
853
853
|
}
|
|
854
854
|
async getState(e) {
|
|
855
|
-
var s, n, r,
|
|
855
|
+
var s, n, r, p;
|
|
856
856
|
if (e === "draft")
|
|
857
857
|
return JSON.parse(JSON.stringify(this.syncedStore));
|
|
858
858
|
if (!this.states[e] && (this.states[e] = await rt(this.getPublishDir(e), { includeResources: !0 }) ?? Ps(), !((n = (s = this.states[e]) == null ? void 0 : s.config) != null && n.defaultLocale))) {
|
|
859
859
|
(r = this.states[e]).config ?? (r.config = {});
|
|
860
860
|
const a = ve.env.languages.map((i) => ({ locale: i.code, name: i.name }));
|
|
861
|
-
this.states[e].config.defaultLocale = (
|
|
861
|
+
this.states[e].config.defaultLocale = (p = a[0]) == null ? void 0 : p.locale;
|
|
862
862
|
}
|
|
863
863
|
return {
|
|
864
864
|
...this.states[e],
|
|
865
865
|
resources: await De().then(async (a) => {
|
|
866
|
-
var
|
|
866
|
+
var f, y, C, j;
|
|
867
867
|
const { pages: i, components: c } = Bt(a, "pages", "components");
|
|
868
|
-
let
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
};
|
|
868
|
+
let l = c;
|
|
869
|
+
const u = q(this.options.path), d = await Y.findByPk(u);
|
|
870
|
+
if (d != null && d.useAllResources)
|
|
871
|
+
l = c;
|
|
873
872
|
else {
|
|
874
|
-
const
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
const D = (await he.findAll({ where: { projectId: C } })).map((S) => S.componentId);
|
|
879
|
-
p = Object.fromEntries(
|
|
880
|
-
Object.entries(c || {}).filter(([S]) => D.includes(S))
|
|
881
|
-
);
|
|
882
|
-
}
|
|
873
|
+
const D = (await he.findAll({ where: { projectId: u } })).map((S) => S.componentId);
|
|
874
|
+
l = Object.fromEntries(
|
|
875
|
+
Object.entries(c || {}).filter(([S]) => D.includes(S))
|
|
876
|
+
);
|
|
883
877
|
}
|
|
884
|
-
return
|
|
878
|
+
return Object.keys(((y = (f = this.states[e]) == null ? void 0 : f.resources) == null ? void 0 : y.components) || {}).length > 0 && (l = {
|
|
879
|
+
...l,
|
|
880
|
+
...(j = (C = this.states[e]) == null ? void 0 : C.resources) == null ? void 0 : j.components
|
|
881
|
+
}), { pages: i, components: l };
|
|
885
882
|
}).catch(() => ({}))
|
|
886
883
|
};
|
|
887
884
|
}
|
|
@@ -895,17 +892,17 @@ const F = class F extends z.Doc {
|
|
|
895
892
|
static async pageUrlMap(e) {
|
|
896
893
|
const { projectIds: s } = this, n = {};
|
|
897
894
|
for (const r of s) {
|
|
898
|
-
const
|
|
899
|
-
if (!
|
|
895
|
+
const p = await Y.findByPk(r);
|
|
896
|
+
if (!p) continue;
|
|
900
897
|
const a = await F.shared(r).getState(e), i = Gt(
|
|
901
898
|
g.env.languages.map((c) => c.code),
|
|
902
899
|
a.supportedLocales.map((c) => c.locale)
|
|
903
900
|
);
|
|
904
901
|
for (const c of a.pageIds) {
|
|
905
|
-
const
|
|
906
|
-
if (!
|
|
902
|
+
const l = a.pages[c];
|
|
903
|
+
if (!l || e === "production" && !l.isPublic)
|
|
907
904
|
continue;
|
|
908
|
-
const u =
|
|
905
|
+
const u = l.slug, d = p.slug || r, f = {
|
|
909
906
|
projectId: r,
|
|
910
907
|
projectSlug: d,
|
|
911
908
|
pageSlug: u,
|
|
@@ -914,8 +911,8 @@ const F = class F extends z.Doc {
|
|
|
914
911
|
defaultLocale: i == null ? void 0 : i[0],
|
|
915
912
|
locales: i,
|
|
916
913
|
publishedAt: a.config.publishedAt,
|
|
917
|
-
isPublic:
|
|
918
|
-
templateConfig:
|
|
914
|
+
isPublic: l.isPublic,
|
|
915
|
+
templateConfig: l.templateConfig
|
|
919
916
|
};
|
|
920
917
|
d && (n[G("/", d, u)] = {
|
|
921
918
|
...f,
|
|
@@ -1038,8 +1035,8 @@ async function Ke(t, o, e) {
|
|
|
1038
1035
|
), n = Jt(2), r = s.map(
|
|
1039
1036
|
(i) => n(async () => {
|
|
1040
1037
|
try {
|
|
1041
|
-
const c = Pe(t, i),
|
|
1042
|
-
for (const u of
|
|
1038
|
+
const c = Pe(t, i), l = nt(c);
|
|
1039
|
+
for (const u of l) {
|
|
1043
1040
|
const d = q(u), f = e.getFilePath(u, i), y = f ? `${f}:${d}` : d, C = He.get(y);
|
|
1044
1041
|
if (C) {
|
|
1045
1042
|
te.test(c) || Ue(t, i, C);
|
|
@@ -1052,8 +1049,8 @@ async function Ke(t, o, e) {
|
|
|
1052
1049
|
b.error(`Failed to process upload for path ${i.join(".")}:`, c.message || c.reason);
|
|
1053
1050
|
}
|
|
1054
1051
|
})
|
|
1055
|
-
),
|
|
1056
|
-
(a = e.onFinish) == null || a.call(e,
|
|
1052
|
+
), p = await Promise.allSettled(r);
|
|
1053
|
+
(a = e.onFinish) == null || a.call(e, p);
|
|
1057
1054
|
}
|
|
1058
1055
|
async function ks(t, {
|
|
1059
1056
|
exportAssets: o,
|
|
@@ -1063,9 +1060,9 @@ async function ks(t, {
|
|
|
1063
1060
|
includeResources: r = !1
|
|
1064
1061
|
} = {}) {
|
|
1065
1062
|
var U, D, h, S, w, I, J, O, N, H, oe, Q;
|
|
1066
|
-
const
|
|
1063
|
+
const p = e === "all" ? t.pageIds : e, a = gt({
|
|
1067
1064
|
state: t,
|
|
1068
|
-
pageIds:
|
|
1065
|
+
pageIds: p,
|
|
1069
1066
|
componentIds: s === "all" ? Object.keys(t.components) : s
|
|
1070
1067
|
}), i = (m, A) => {
|
|
1071
1068
|
var v;
|
|
@@ -1097,9 +1094,9 @@ async function ks(t, {
|
|
|
1097
1094
|
})
|
|
1098
1095
|
)
|
|
1099
1096
|
};
|
|
1100
|
-
},
|
|
1097
|
+
}, l = _(
|
|
1101
1098
|
t.supportedLocales.map((m) => m.locale).flatMap(
|
|
1102
|
-
(m) =>
|
|
1099
|
+
(m) => p.map((A) => {
|
|
1103
1100
|
const v = t.pages[A];
|
|
1104
1101
|
return v && {
|
|
1105
1102
|
locale: m,
|
|
@@ -1112,7 +1109,7 @@ async function ks(t, {
|
|
|
1112
1109
|
B(d, { recursive: !0 });
|
|
1113
1110
|
const f = E(u, "components");
|
|
1114
1111
|
B(f, { recursive: !0 });
|
|
1115
|
-
for (const { locale: m, slug: A, page: v } of
|
|
1112
|
+
for (const { locale: m, slug: A, page: v } of l)
|
|
1116
1113
|
await Ie(v, d, {
|
|
1117
1114
|
getFilename: () => `${st(A) || "index"}.${m}.yml`,
|
|
1118
1115
|
exportAssets: o
|
|
@@ -1128,7 +1125,7 @@ async function ks(t, {
|
|
|
1128
1125
|
B(R(y), { recursive: !0 });
|
|
1129
1126
|
const C = {
|
|
1130
1127
|
pages: _(
|
|
1131
|
-
|
|
1128
|
+
p.map((m) => {
|
|
1132
1129
|
const A = t.pages[m];
|
|
1133
1130
|
return A && { id: m, slug: A.slug };
|
|
1134
1131
|
})
|
|
@@ -1197,13 +1194,13 @@ async function ks(t, {
|
|
|
1197
1194
|
return u;
|
|
1198
1195
|
}
|
|
1199
1196
|
async function rt(t, { importAssets: o, includeResources: e } = {}) {
|
|
1200
|
-
var r,
|
|
1197
|
+
var r, p, a;
|
|
1201
1198
|
if (!V(t))
|
|
1202
1199
|
return null;
|
|
1203
1200
|
let s, n = !1;
|
|
1204
1201
|
try {
|
|
1205
1202
|
ie(t).isDirectory() ? s = t : /\.(tgz|gz|tar)$/.test(t) && (n = !0, s = ot(), await zt({ file: t, C: s }));
|
|
1206
|
-
const i = Oe("**/.blocklet/pages/pages.config.yml", { cwd: s, absolute: !0 }).at(0), c = i && E(R(i), "../../pages"),
|
|
1203
|
+
const i = Oe("**/.blocklet/pages/pages.config.yml", { cwd: s, absolute: !0 }).at(0), c = i && E(R(i), "../../pages"), l = i && E(R(i), "../../components"), u = i && E(R(i), "../../chunks");
|
|
1207
1204
|
if (!i)
|
|
1208
1205
|
return null;
|
|
1209
1206
|
const d = Z.parse(X(i).toString()), f = (h, S, w) => {
|
|
@@ -1265,7 +1262,7 @@ async function rt(t, { importAssets: o, includeResources: e } = {}) {
|
|
|
1265
1262
|
locales: Object.fromEntries(S.map(({ locale: O, page: N }) => [O, N.meta]))
|
|
1266
1263
|
};
|
|
1267
1264
|
})
|
|
1268
|
-
), j =
|
|
1265
|
+
), j = l ? _(((r = d.components) == null ? void 0 : r.map(({ id: h }) => y(l, h))) ?? []) : [];
|
|
1269
1266
|
if (o) {
|
|
1270
1267
|
const h = (...S) => {
|
|
1271
1268
|
b.info(`[${n ? q(t) : q(E(t, "../../../../"))}] importAssets:`, ...S);
|
|
@@ -1278,7 +1275,7 @@ async function rt(t, { importAssets: o, includeResources: e } = {}) {
|
|
|
1278
1275
|
const S = {}, w = {};
|
|
1279
1276
|
h("start to upload assets"), await Promise.allSettled([
|
|
1280
1277
|
Ke(j, S, {
|
|
1281
|
-
getFilePath: (I) =>
|
|
1278
|
+
getFilePath: (I) => l && E(l, I),
|
|
1282
1279
|
onFinish: (I) => {
|
|
1283
1280
|
h(`upload ${I.length} component assets`);
|
|
1284
1281
|
}
|
|
@@ -1300,7 +1297,7 @@ async function rt(t, { importAssets: o, includeResources: e } = {}) {
|
|
|
1300
1297
|
const U = {};
|
|
1301
1298
|
if (e) {
|
|
1302
1299
|
const h = i && E(R(i), "../../resources/components"), S = _(
|
|
1303
|
-
((a = (
|
|
1300
|
+
((a = (p = d.resources) == null ? void 0 : p.components) == null ? void 0 : a.map(({ id: w }) => y(h, w))) ?? []
|
|
1304
1301
|
);
|
|
1305
1302
|
S.length > 0 && (U.components = Object.fromEntries(
|
|
1306
1303
|
S.map((w, I) => [w.id, { index: I, component: w }])
|
|
@@ -1333,15 +1330,15 @@ async function ze(t, o, {
|
|
|
1333
1330
|
} = {}) {
|
|
1334
1331
|
try {
|
|
1335
1332
|
r && ms(r);
|
|
1336
|
-
} catch (
|
|
1337
|
-
b.error("clear preload page cache error", { error:
|
|
1333
|
+
} catch (l) {
|
|
1334
|
+
b.error("clear preload page cache error", { error: l });
|
|
1338
1335
|
}
|
|
1339
|
-
const { pageIds:
|
|
1340
|
-
for (const
|
|
1341
|
-
const u = a[
|
|
1336
|
+
const { pageIds: p, pages: a, supportedLocales: i } = t;
|
|
1337
|
+
for (const l of e ?? p) {
|
|
1338
|
+
const u = a[l];
|
|
1342
1339
|
if (!u) {
|
|
1343
|
-
const d = o.pageIds.indexOf(
|
|
1344
|
-
d !== -1 && n && (o.pageIds.splice(d, 1), delete o.pages[
|
|
1340
|
+
const d = o.pageIds.indexOf(l);
|
|
1341
|
+
d !== -1 && n && (o.pageIds.splice(d, 1), delete o.pages[l]);
|
|
1345
1342
|
continue;
|
|
1346
1343
|
}
|
|
1347
1344
|
if (o.pageIds.includes(u.id)) {
|
|
@@ -1355,18 +1352,18 @@ async function ze(t, o, {
|
|
|
1355
1352
|
o.pageIds.push(u.id), o.pages[u.id] = u;
|
|
1356
1353
|
}
|
|
1357
1354
|
if (n && !e)
|
|
1358
|
-
for (const
|
|
1359
|
-
t.pageIds.includes(
|
|
1355
|
+
for (const l of o.pageIds)
|
|
1356
|
+
t.pageIds.includes(l) || delete o.pages[l], o.pageIds = [...o.pageIds].filter((u) => t.pageIds.includes(u));
|
|
1360
1357
|
if (o.supportedLocales.splice(0, o.supportedLocales.length), o.supportedLocales.push(...$t(i)), n)
|
|
1361
|
-
for (const
|
|
1362
|
-
delete o.components[
|
|
1358
|
+
for (const l of Object.keys(o.components))
|
|
1359
|
+
delete o.components[l];
|
|
1363
1360
|
let c = JSON.parse(JSON.stringify(t.components));
|
|
1364
1361
|
c = Object.fromEntries(
|
|
1365
1362
|
await Promise.all(
|
|
1366
|
-
Object.entries(c).map(async ([
|
|
1363
|
+
Object.entries(c).map(async ([l, u]) => {
|
|
1367
1364
|
const d = await at(u == null ? void 0 : u.data);
|
|
1368
1365
|
return [
|
|
1369
|
-
|
|
1366
|
+
l,
|
|
1370
1367
|
{
|
|
1371
1368
|
...u,
|
|
1372
1369
|
data: d
|
|
@@ -1400,8 +1397,8 @@ const at = fe(
|
|
|
1400
1397
|
},
|
|
1401
1398
|
{
|
|
1402
1399
|
keyGenerator: (t) => {
|
|
1403
|
-
var
|
|
1404
|
-
const o = (t == null ? void 0 : t.id) || "", e = (t == null ? void 0 : t.name) || "", s = ((
|
|
1400
|
+
var p;
|
|
1401
|
+
const o = (t == null ? void 0 : t.id) || "", e = (t == null ? void 0 : t.name) || "", s = ((p = t == null ? void 0 : t.renderer) == null ? void 0 : p.type) || "", n = (t == null ? void 0 : t.properties) || {}, r = ge("md5").update(JSON.stringify(n)).digest("hex");
|
|
1405
1402
|
return JSON.stringify(["checkPropertiesFromCode", o, e, s, r]);
|
|
1406
1403
|
},
|
|
1407
1404
|
lruOptions: {
|
package/lib/es/components.js
CHANGED
|
@@ -7,7 +7,7 @@ import "lru-cache";
|
|
|
7
7
|
import "node-fetch";
|
|
8
8
|
import "ufo";
|
|
9
9
|
import "crypto";
|
|
10
|
-
import { c as _, G as E, d as i, e as d, j as l, k as N, m as O, h as P, b as c, f as g } from "./chunks/site-state-
|
|
10
|
+
import { c as _, G as E, d as i, e as d, j as l, k as N, m as O, h as P, b as c, f as g } from "./chunks/site-state-Bn8mEgOx.js";
|
|
11
11
|
export {
|
|
12
12
|
_ as CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS,
|
|
13
13
|
E as GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS,
|
package/lib/es/project-html.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as H, l as _ } from "./chunks/site-state-
|
|
1
|
+
import { b as H, l as _ } from "./chunks/site-state-Bn8mEgOx.js";
|
|
2
2
|
import { initCronCrawlBlocklet as W, cancelCronCrawlBlocklet as N, initSEOMiddleware as J } from "@blocklet/crawler/middlewares";
|
|
3
3
|
import { PreloadComponentScriptModule as G } from "@blocklet/pages-kit/types";
|
|
4
4
|
import { injectPreloadComponents as K } from "@blocklet/pages-kit/utils/preload";
|
package/lib/es/resources.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { P as S, i as b, g as M, l as x, C as J, R as X, S as N, t as W, a as G } from "./chunks/site-state-
|
|
1
|
+
import { P as S, i as b, g as M, l as x, C as J, R as X, S as N, t as W, a as G } from "./chunks/site-state-Bn8mEgOx.js";
|
|
2
2
|
import { AsyncLocalStorage as K } from "async_hooks";
|
|
3
3
|
import { Router as Y } from "express";
|
|
4
4
|
import d from "fs";
|
package/lib/es/site-state.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { q as v, o as B, p as L, S as U, r as b, a as h, u as w, s as y, n as z, t as C, v as F } from "./chunks/site-state-
|
|
1
|
+
import { q as v, o as B, p as L, S as U, r as b, a as h, u as w, s as y, n as z, t as C, v as F } from "./chunks/site-state-Bn8mEgOx.js";
|
|
2
2
|
import "@blocklet/pages-kit/utils/property";
|
|
3
3
|
import "@blocklet/quickjs";
|
|
4
4
|
import "@blocklet/sdk/lib/component";
|
package/lib/es/theme.js
CHANGED
|
@@ -276,7 +276,9 @@ const S = `
|
|
|
276
276
|
}`, o = c({
|
|
277
277
|
typography: {
|
|
278
278
|
button: {
|
|
279
|
-
|
|
279
|
+
// @ts-ignore
|
|
280
|
+
textTransform: "none",
|
|
281
|
+
WebkitTextTransform: "none"
|
|
280
282
|
},
|
|
281
283
|
subtitle1: {
|
|
282
284
|
fontWeight: 600,
|
|
@@ -749,7 +751,9 @@ o.typography.big = { ...F };
|
|
|
749
751
|
const M = c({
|
|
750
752
|
typography: {
|
|
751
753
|
button: {
|
|
752
|
-
|
|
754
|
+
// @ts-ignore
|
|
755
|
+
textTransform: "none",
|
|
756
|
+
WebkitTextTransform: "none"
|
|
753
757
|
}
|
|
754
758
|
}
|
|
755
759
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@blocklet/pages-kit-inner-components",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.94",
|
|
4
4
|
"description": "Pages Kit inner components library",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -67,21 +67,21 @@
|
|
|
67
67
|
"dependencies": {
|
|
68
68
|
"@arcblock/did-auth": "^1.19.15",
|
|
69
69
|
"@arcblock/did-auth-storage-nedb": "^1.7.1",
|
|
70
|
-
"@arcblock/did-connect": "^2.12.
|
|
71
|
-
"@arcblock/react-hooks": "^2.12.
|
|
72
|
-
"@arcblock/ux": "^2.12.
|
|
70
|
+
"@arcblock/did-connect": "^2.12.53",
|
|
71
|
+
"@arcblock/react-hooks": "^2.12.53",
|
|
72
|
+
"@arcblock/ux": "^2.12.53",
|
|
73
73
|
"@blocklet/ai-kit": "^0.1.72",
|
|
74
74
|
"@blocklet/ai-runtime": "^0.4.254",
|
|
75
75
|
"@blocklet/code-editor": "^0.4.254",
|
|
76
|
-
"@blocklet/crawler": "^2.
|
|
76
|
+
"@blocklet/crawler": "^2.2.8",
|
|
77
77
|
"@blocklet/embed": "^0.2.3",
|
|
78
|
-
"@blocklet/js-sdk": "^1.16.
|
|
78
|
+
"@blocklet/js-sdk": "^1.16.41",
|
|
79
79
|
"@blocklet/logger": "1.16.36",
|
|
80
80
|
"@blocklet/quickjs": "^0.4.254",
|
|
81
|
-
"@blocklet/sdk": "^1.16.
|
|
81
|
+
"@blocklet/sdk": "^1.16.41",
|
|
82
82
|
"@blocklet/studio-ui": "^0.4.254",
|
|
83
|
-
"@blocklet/tracker": "^1.16.
|
|
84
|
-
"@blocklet/ui-react": "^2.12.
|
|
83
|
+
"@blocklet/tracker": "^1.16.41",
|
|
84
|
+
"@blocklet/ui-react": "^2.12.53",
|
|
85
85
|
"@blocklet/uploader": "^0.1.81",
|
|
86
86
|
"@blocklet/uploader-server": "^0.1.92",
|
|
87
87
|
"@emotion/cache": "^11.13.1",
|
|
@@ -202,8 +202,8 @@
|
|
|
202
202
|
"yaml": "^2.5.0",
|
|
203
203
|
"yjs": "^13.6.18",
|
|
204
204
|
"zustand": "^4.5.5",
|
|
205
|
-
"@blocklet/pages-kit": "^0.4.
|
|
206
|
-
"@blocklet/pages-kit-block-studio": "^0.4.
|
|
205
|
+
"@blocklet/pages-kit": "^0.4.94",
|
|
206
|
+
"@blocklet/pages-kit-block-studio": "^0.4.94"
|
|
207
207
|
},
|
|
208
208
|
"devDependencies": {
|
|
209
209
|
"@trivago/prettier-plugin-sort-imports": "^5.2.1",
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";var ft=Object.defineProperty;var mt=(t,n,e)=>n in t?ft(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var A=(t,n,e)=>mt(t,typeof n!="symbol"?n+"":n,e);const gt=require("@blocklet/pages-kit/builtin/utils"),ue=require("@blocklet/pages-kit/types"),se=require("@blocklet/pages-kit/utils/property"),K=require("@blocklet/quickjs"),ht=require("@blocklet/sdk/lib/config"),ve=require("lru-cache"),Je=require("node-fetch"),R=require("ufo"),me=require("crypto"),yt=require("@blocklet/logger"),St=require("@blocklet/pages-kit/utils/builtin"),Ke=require("@blocklet/pages-kit/utils/typescript/builtin-module-transformer"),De=require("@blocklet/sdk/lib/component"),wt=require("autoprefixer"),Et=require("esbuild"),h=require("fs"),bt=require("postcss"),Tt=require("tailwindcss"),It=require("typescript"),Ct=require("@reactivedata/reactive"),ce=require("@syncedstore/core"),Ie=require("glob"),Ot=require("lib0/decoding"),Pt=require("lib0/encoding"),_t=require("lodash/cloneDeep"),jt=require("lodash/debounce"),At=require("lodash/get"),vt=require("lodash/isEmpty"),Dt=require("lodash/pick"),xt=require("lodash/set"),kt=require("lodash/union"),Rt=require("nanoid"),Nt=require("p-limit"),d=require("path"),Lt=require("stream/promises"),Ut=require("tar"),Mt=require("wait-on"),W=require("y-protocols/awareness"),we=require("y-protocols/sync"),Ft=require("yaml"),qt=require("yjs"),$t=require("lodash/isNil"),O=require("sequelize");require("sqlite3");require("@blocklet/pages-kit/types/state");const D=t=>t&&t.__esModule?t:{default:t};function re(t){if(t&&t.__esModule)return t;const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const e in t)if(e!=="default"){const s=Object.getOwnPropertyDescriptor(t,e);Object.defineProperty(n,e,s.get?s:{enumerable:!0,get:()=>t[e]})}}return n.default=t,Object.freeze(n)}const y=D(ht),Bt=D(Je),Ht=D(yt),Vt=D(wt),Gt=re(Et),zt=D(bt),Jt=D(Tt),k=D(It),Ee=re(Ot),v=re(Pt),Kt=D(_t),Ye=D(jt),xe=D(At),Yt=D(vt),Qt=D(Dt),qe=D(xt),Wt=D(kt),Xt=D(Nt),Zt=D(d),es=D(Mt),Z=re(Ft),J=re(qt),ts=D($t);y.default.env.mode;y.default.env.OPENAI_API_KEY||process.env.OPENAI_API_KEY;y.default.env.OPENAI_BASE_URL||process.env.OPENAI_BASE_URL;const ss="image-bin";y.default.env.INIT_TEMPLATE_PATH;const ns=process.env.DATABASE_URL||Zt.default.join(y.default.env.dataDir,"db/pages-kit.db"),$e=y.default,os=()=>y.default.env.tenantMode==="multiple",rs=()=>{var t;return(ts.default($e.env.preferences.multiTenantAllProjectAccessPassports)?[]:(t=$e.env.preferences.multiTenantAllProjectAccessPassports)==null?void 0:t.split(","))||[]},T=Ht.default("pages-kit"),as=O.DataTypes.sqlite.DATE.parse;O.DataTypes.sqlite.DATE.parse=(t,n)=>typeof t=="number"?new Date(t):as(t,n);const ae=new O.Sequelize({dialect:"sqlite",storage:ns,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});ae.query("pragma journal_mode = WAL;");ae.query("pragma synchronous = normal;");ae.query("pragma journal_size_limit = 67108864;");class ge extends O.Model{}ge.init({id:{type:O.DataTypes.UUID,allowNull:!1,primaryKey:!0,defaultValue:O.DataTypes.UUIDV4},projectId:{type:O.DataTypes.UUID,allowNull:!1},componentId:{type:O.DataTypes.STRING,allowNull:!1}},{sequelize:ae,tableName:"ProjectComponents",timestamps:!1});class H extends O.Model{static async getProjectByIdOrSlug(n){return H.findOne({where:{[O.Op.or]:[{id:n},{slug:n}]}})}}H.init({id:{type:O.DataTypes.UUID,defaultValue:O.DataTypes.UUIDV4,primaryKey:!0},name:{type:O.DataTypes.STRING,allowNull:!1},description:O.DataTypes.TEXT,createdAt:O.DataTypes.DATE,updatedAt:O.DataTypes.DATE,createdBy:{type:O.DataTypes.STRING,allowNull:!1},updatedBy:{type:O.DataTypes.STRING,allowNull:!1},slug:O.DataTypes.STRING,icon:O.DataTypes.STRING,pinnedAt:O.DataTypes.DATE,useAllResources:O.DataTypes.BOOLEAN,npmSecret:O.DataTypes.STRING,relatedBlocklets:{type:O.DataTypes.JSON,allowNull:!1,defaultValue:{},get(){return this.getDataValue("relatedBlocklets")||{}},set(t){this.setDataValue("relatedBlocklets",JSON.stringify(t||{}))}}},{sequelize:ae,paranoid:!0});H.hasMany(ge,{foreignKey:"projectId",as:"components"});const is=async(t,{componentId:n})=>{const e=`@tailwind components;
|
|
2
|
-
@tailwind utilities;
|
|
3
|
-
`,s=`.CustomComponent_${n}`;return(await zt.default([Jt.default({content:[{raw:t,extension:"tsx"}]}),Vt.default({overrideBrowserslist:["> 1%","last 2 versions"],stats:{}}),r=>{r.walkRules(l=>{l.selectors=l.selectors.map(a=>a.replace(/\.(.+)/g,`${s}.$1,${s} .$1`))})}]).process(e)).css},cs=async(t,{componentId:n})=>{const e=await is(t,{componentId:n});return`export const __PagesKit_CSS__ = ${JSON.stringify(e)};
|
|
4
|
-
|
|
5
|
-
${t}
|
|
6
|
-
`},Be=K.memoize(async(t,n)=>{let e=k.default.transpileModule(t,{compilerOptions:{jsx:k.default.JsxEmit.React,target:k.default.ScriptTarget.ES2016,module:k.default.ModuleKind.ESNext},transformers:{before:[Ke.createBuiltinModuleTransformer(k.default)]}}).outputText;if(n.tailwind&&(e=await cs(e,{componentId:n.componentId})),n.module===ue.PreloadComponentScriptModule.ESM)return e;const s=k.default.transpileModule(e,{compilerOptions:{jsx:k.default.JsxEmit.React,target:k.default.ScriptTarget.ES2016,module:k.default.ModuleKind.CommonJS,moduleResolution:k.default.ModuleResolutionKind.Node16}}).outputText;return n.module===ue.PreloadComponentScriptModule.CJS?s:us(n.moduleName,s)},{keyGenerator:(t,n)=>{const e=me.createHash("md5").update(t).digest("hex"),s={...n,componentId:n.componentId,module:n.module,...n.module!==ue.PreloadComponentScriptModule.ESM?{moduleName:n.moduleName}:{},tailwind:n.tailwind};return JSON.stringify(["transpileModule",e,s])},lruOptions:{max:100,ttl:1e3*60*60}}),ls=async(t,n)=>{var l,a;const s=(a=(l=(await Gt.build({entryPoints:["index.tsx"],external:Object.keys(St.BuiltinModules),format:"esm",target:"esnext",bundle:!0,write:!1,plugins:[{name:"vfs",setup(i){let c=null;i.onResolve({filter:/.*/},u=>u.path==="index.tsx"?{path:"index.tsx",namespace:"vfs"}:u.path==="./component"?{path:"component.tsx",namespace:"vfs"}:null),i.onLoad({filter:/.*/,namespace:"vfs"},async u=>{var p;if(u.path==="index.tsx")return{contents:`export { ${n} } from './component'`,loader:"tsx"};if(u.path==="component.tsx")return{contents:t,loader:"tsx"};if(Ke.isRelativeModule(u.path)){const f=u.path.split("/").pop();if(c||(c=await he({ensureLoaded:!1})),(p=c==null?void 0:c.chunks)!=null&&p[f])try{const g=h.readFileSync(c.chunks[f],"utf-8");return T.info("get chunk from local file system",f),{contents:g,loader:"tsx"}}catch{}}return null})}}]})).outputFiles)==null?void 0:l[0])==null?void 0:a.contents;if(!s)throw new Error("Failed to build server code");const o=Buffer.from(s).toString();return k.default.transpileModule(o,{compilerOptions:{module:k.default.ModuleKind.ESNext,target:k.default.ScriptTarget.ES2020}}).outputText},Qe=K.memoize(async(t,n)=>{const e=await ls(t,n);return new RegExp(`export\\s+\\{\\s+${n}\\s+\\}`,"m").test(e)?e:void 0},{keyGenerator:(t,n)=>{const e=me.createHash("md5").update(t).digest("hex");return JSON.stringify(["extractExportValueSchema",e,n])},lruOptions:{max:100,ttl:1e3*60*60}}),us=(t,n)=>{const e=/\bawait\b/.test(n);return`// GENERATED FILE. DO NOT EDIT.
|
|
7
|
-
var ${t} = ${e?"async":""} function () {
|
|
8
|
-
|
|
9
|
-
const exports = {};
|
|
10
|
-
let moduleExports = null;
|
|
11
|
-
|
|
12
|
-
// add commonjs module compatibility layer
|
|
13
|
-
const module = { exports: moduleExports };
|
|
14
|
-
|
|
15
|
-
// execute component code
|
|
16
|
-
${n}
|
|
17
|
-
|
|
18
|
-
// handle possible module.exports
|
|
19
|
-
if (module.exports && module.exports !== moduleExports) {
|
|
20
|
-
// if module.exports is used, use it first
|
|
21
|
-
return typeof module.exports === 'object' ? module.exports : { default: module.exports };
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
// ensure a default export
|
|
25
|
-
if (!('default' in exports) && Object.keys(exports).length === 0) {
|
|
26
|
-
// module has no exports, return null to indicate invalid
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
return exports;
|
|
31
|
-
};
|
|
32
|
-
`},ee=new ve.LRUCache({max:100}),We=60*60,Ce=60;function Xe(t){T.info("clear preload components cache",{cacheKey:t}),ee.delete(t)}function Ze(t){for(const n of ee.keys())n.includes(t)&&(T.info("clear preload components cache",{cacheKey:n}),Xe(n))}function et({mode:t,instanceId:n,componentId:e,locale:s}){return["getPreloadComponents",t,n,e,s].join("-")}async function ps({mode:t,req:n,state:e,locale:s,instances:o,module:r}){const{supportedLocales:l,config:{defaultLocale:a}}=e;if(!a)return null;const i=(await Promise.all(o.map(async g=>{try{const w=et({mode:t,instanceId:g.id,componentId:g.componentId,locale:s});if(t!=="draft"&&g.useCache&&ee.has(w))return T.info(`get preload component from cache: ${w}`),ee.get(w);const j=ne({state:e,componentId:g.componentId});if(!j)return null;const x=await tt({req:n,state:e,componentId:j.id,locale:s,defaultLocale:a,properties:g.properties});if(!x)return null;const F={instanceId:g.id,preload:x};if(t!=="draft"&&g.useCache){let N=We;g.cacheDuration&&(N=g.cacheDuration),T.info(`set preload component to cache(${N}s): ${w}`),ee.set(w,F,{ttl:N*1e3})}return F}catch(w){return T.error("get preload component error",{instanceId:g.id,componentId:g.componentId},{error:w}),null}}))).filter(g=>!!g),c=Object.values(i.reduce((g,w)=>({...g,...w.preload.components}),{}));async function u(){const g=await Promise.all(c.map(async w=>{const j=se.componentUMDName({componentId:w.component.id}),x=r===ue.PreloadComponentScriptModule.ESM?{module:r,script:await Be(w.script,{componentId:w.component.id,module:r,tailwind:t!=="draft"})}:{module:r,script:await Be(w.script,{componentId:w.component.id,module:r,moduleName:j,tailwind:t!=="draft"}),moduleName:j};return[w.component.id,{component:w.component,script:x}]}));return Object.fromEntries(g)}const p=await u();return{config:{defaultLocale:a,supportedLocales:l},components:p,instances:i.map(g=>({id:g.instanceId,componentId:g.preload.component.id,locales:{[g.preload.locale]:{props:g.preload.props}}}))}}async function tt({req:t,state:n,componentId:e,locale:s,defaultLocale:o,properties:r}){const{supportedLocales:l}=n,a=ne({state:n,componentId:e});if(!a)return null;const i=l.some(u=>u.locale===s)?s:o;if(!i)return null;const c=await st({req:t,state:n,componentId:e,locale:i,defaultLocale:o,properties:r});return c?{component:a,...c}:null}const ds=20;async function st({req:t,depth:n=0,state:e,componentId:s,locale:o,defaultLocale:r,properties:l}){if(n>ds)throw new RangeError("max component depth exceeded");const a=fs({state:e,componentId:s,properties:l,locale:o});if(!a)return null;const{props:i}=a,c={locale:o||r,components:{[a.component.id]:{component:a.component,script:a.script}},props:{...i}};try{const u=await gs({...a,req:t});u!=null&&u.props&&Object.assign(c.props,u.props)}catch(u){T.error("preload data at server side error",{componentId:s,name:a.component.name},{error:u})}return await Promise.all(Object.entries(i).map(async([u,p])=>{if((p==null?void 0:p.type)===se.RenderNestedComponent){const f=await st({req:t,depth:n+1,state:e,componentId:p.componentId,locale:o,defaultLocale:r,properties:p.properties});f&&(Object.assign(c.components,f.components),Object.assign(c.props,{[u]:{type:se.RenderNestedComponent,componentId:p.componentId,props:f.props}}))}})),c}function fs({state:t,componentId:n,locale:e,properties:s}){const o=ne({state:t,componentId:n});if(!o)return null;const r=se.mergeComponent({componentId:n,getComponent:l=>ne({state:t,componentId:l}),locale:e,defaultLocale:t.config.defaultLocale,properties:s});return r?{component:o,script:r.script,props:{locale:e,...r.properties}}:null}function ne({state:t,componentId:n}){var e,s,o;return((e=t.components[n])==null?void 0:e.data)??((o=(s=t.resources.components)==null?void 0:s[n])==null?void 0:o.component)}function ms({state:t,name:n}){var s,o;const e=n.toLowerCase();return((s=Object.values(t.components).find(r=>{var l;return((l=r.data.name)==null?void 0:l.toLowerCase())===e}))==null?void 0:s.data)??((o=t.resources.components&&Object.values(t.resources.components).find(r=>{var l;return((l=r.component.name)==null?void 0:l.toLowerCase())===e}))==null?void 0:o.component)}async function gs({component:t,script:n,props:e,req:s}){if(!(n!=null&&n.includes("getServerSideProps")))return null;const o=await Qe(n,"getServerSideProps");if(!o)return null;const r=new Promise(a=>{setTimeout(()=>{a({})},Ce*1e3)});return await Promise.race([r,K.Sandbox.callFunction({code:`${o}
|
|
33
|
-
|
|
34
|
-
export async function getServerSidePropsWrapper(props) {
|
|
35
|
-
const { location, fetch, props: componentProps } = props;
|
|
36
|
-
// 使用局部变量而不是全局变量
|
|
37
|
-
const originalLocation = typeof window !== 'undefined' ? window.location : undefined;
|
|
38
|
-
const originalFetch = globalThis.fetch;
|
|
39
|
-
|
|
40
|
-
try {
|
|
41
|
-
globalThis.location = location;
|
|
42
|
-
globalThis.fetch = fetch;
|
|
43
|
-
return await getServerSideProps(componentProps);
|
|
44
|
-
} finally {
|
|
45
|
-
// 清理全局状态
|
|
46
|
-
if (originalLocation) globalThis.location = originalLocation;
|
|
47
|
-
if (originalFetch) globalThis.fetch = originalFetch;
|
|
48
|
-
}
|
|
49
|
-
}`,filename:`${t.name||t.id}.js`,moduleLoader:a=>{if(a==="@blocklet/pages-kit/builtin/utils")return`const { joinURL, withQuery, getQuery, getComponentMountPoint } = globalThis
|
|
50
|
-
export { joinURL, withQuery, getQuery, getComponentMountPoint }
|
|
51
|
-
`;if(a==="@blocklet/pages-kit/builtin/dayjs")return K.BuiltinModules.dayjs},global:{console:{log:(...a)=>{T.info(...a)},warn:(...a)=>{T.warn(...a)},error:(...a)=>{T.error(...a)}},getComponentMountPoint:gt.getComponentMountPoint,joinURL:R.joinURL,withQuery:R.withQuery,getQuery:R.getQuery},functionName:"getServerSidePropsWrapper",args:[{location:{href:R.joinURL(R.withHttps(s.hostname),s.originalUrl)},fetch:(a,{...i}={})=>{const c=typeof a=="string"&&a.startsWith("/")?R.joinURL(y.default.env.appUrl,a):a;if(typeof c=="string"&&R.parseURL(c).host===R.parseURL(y.default.env.appUrl).host){const u=s.get("cookie");if(u){const p=new Je.Headers(i.headers);p.set("cookie",u),i.headers=p}}return Bt.default(c,{...i,timeout:Ce*1e3}).then(u=>({ok:u.ok,status:u.status,statusText:u.statusText,headers:Object.fromEntries(u.headers.entries()),json:()=>u.json()}))},props:e}]})])}const nt=K.memoize(async(t,n,e)=>{if(!(t!=null&&t.includes(n)))return null;const s=await Qe(t,n);if(s)try{return await K.Sandbox.callFunction({code:`
|
|
52
|
-
${s}
|
|
53
|
-
|
|
54
|
-
export function get${n}SchemaWrapper() {
|
|
55
|
-
return ${n};
|
|
56
|
-
}
|
|
57
|
-
`,filename:`${e}.js`,functionName:`get${n}SchemaWrapper`})}catch(o){return T.error(`获取 ${n} 失败`,{componentId:e,error:o}),null}return null},{keyGenerator:(t,n,e)=>{const s=me.createHash("md5").update(t).digest("hex");return JSON.stringify(["getExportSchemaValueFromCode",s,n,e])},lruOptions:{max:100,ttl:1e3*60*60}}),hs="z8iZiDFg3vkkrPwsiba1TLXy3H9XHzFERsP8o",Oe="page",Pe="trigger-reload-project-resource",ke=hs,ys="z2qa7BQdkEb3TwYyEYC1psK6uvmGnHSUHt5RM",{uploadToMediaKit:Ss}=require("@blocklet/uploader-server"),_e=Rt.customAlphabet("abcdefghijklmnopqrstuvwxyz0123456789",16),Re=/^\w+(\w|-|\.)+\w+\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm)$/,te=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/i,He=/mediakit:\/\/([a-f0-9]{32}\.(jpe?g|png|gif|svg|bmp|webp|mp4|m4v|webm))/gi,ws=1e4,Es=3e4,le=0,be=1,bs=0,Ts=1,je=y.default,X=d.join(process.env.BLOCKLET_DATA_DIR,"site-state"),Is=["production","draft"],Cs=["production"];function ot(t){return(t==null?void 0:t.replace(/\//g,"|"))||""}function Os(){var e;const t=je.env.languages.map(s=>({locale:s.code,name:s.name})),n=(e=t[0])==null?void 0:e.locale;return{pageIds:[],pages:{},components:{},supportedLocales:t,config:{defaultLocale:n},resources:{}}}const B=class B extends J.Doc{constructor(e){super();A(this,"states",{});A(this,"syncedStore");A(this,"conns",new Map);A(this,"awareness");A(this,"awarenessChangeHandler",({added:e,updated:s,removed:o},r)=>{const l=e.concat(s,o);if(r!==null){const c=this.conns.get(r);c&&(e.forEach(u=>{c.add(u)}),o.forEach(u=>{c.delete(u)}))}const a=v.createEncoder();v.writeVarUint(a,be),v.writeVarUint8Array(a,W.encodeAwarenessUpdate(this.awareness,l));const i=v.toUint8Array(a);this.conns.forEach((c,u)=>this.send(u,i))});A(this,"updateHandler",e=>{const s=v.createEncoder();v.writeVarUint(s,le),we.writeUpdate(s,e);const o=v.toUint8Array(s);this.conns.forEach((r,l)=>this.send(l,o))});A(this,"ensureDataStructure",()=>{var l;const{supportedLocales:e,pages:s,pageIds:o,config:r}=this.syncedStore;{const a=new Set(Object.keys(s));let i=0;for(;i<o.length;){const c=o[i];a.has(c)?(a.delete(c),i++):o.splice(i,1)}}e.splice(0,e.length),e.push(...je.env.languages.map(a=>({locale:a.code,name:a.name}))),r.defaultLocale=(l=e[0])==null?void 0:l.locale;{let a=0;const i=new Set;for(;a<e.length;){const{locale:c}=e[a];i.has(c)?e.splice(a,1):(a++,i.add(c))}}});A(this,"send",(e,s)=>{e.readyState!==bs&&e.readyState!==Ts&&this.closeConn(e);try{e.send(s,o=>{o&&this.closeConn(e)})}catch{this.closeConn(e)}});A(this,"closeConn",e=>{if(e.removeAllListeners(),this.conns.has(e)){const s=this.conns.get(e);this.conns.delete(e),s&&W.removeAwarenessStates(this.awareness,Array.from(s),null)}e.close()});A(this,"autoSave",Ye.default(()=>{h.mkdirSync(d.dirname(this.draftYjsFilePath),{recursive:!0}),h.writeFileSync(this.draftYjsFilePath,J.encodeStateAsUpdate(this))},ws));A(this,"save",({flush:e=!1}={})=>{this.autoSave(),e&&this.autoSave.flush()});A(this,"publish",async({mode:e,pages:s})=>{const o=await this.getState("draft"),r=await this.getState("production");await Ae(o,r,{pages:s,pageMergeMode:"replace",deletePages:!0,publishMode:e}),r.config.publishedAt=new Date().getTime();for(const l of s||Object.keys(this.syncedStore.pages))this.syncedStore.pages[l]&&(this.syncedStore.pages[l].publishedAt=new Date().toISOString());await this.setState(e,r)});A(this,"mergeState",async(e,s)=>{var a,i,c;const o=JSON.parse(JSON.stringify(s));(a=e.config).fontFamily??(a.fontFamily={});const r=(i=o.config)==null?void 0:i.fontFamily,l=(c=e.config)==null?void 0:c.fontFamily;e.config.fontFamily.title=(r==null?void 0:r.title)||(l==null?void 0:l.title),e.config.fontFamily.description=(r==null?void 0:r.description)||(l==null?void 0:l.description),await new Promise((u,p)=>{this.transact(async()=>{try{const f=await Ae(e,s);u(f)}catch(f){p(f)}})})});A(this,"addConnection",e=>{if(this.conns.has(e))return;e.binaryType="arraybuffer",this.conns.set(e,new Set),e.on("message",r=>this.messageListener(e,new Uint8Array(r)));let s=!0;const o=setInterval(()=>{if(!s)this.conns.has(e)&&this.closeConn(e),clearInterval(o);else if(this.conns.has(e)){s=!1;try{e.ping()}catch{this.closeConn(e),clearInterval(o)}}},Es);e.on("close",()=>{this.closeConn(e),clearInterval(o)}),e.on("pong",()=>{s=!0});{const r=v.createEncoder();v.writeVarUint(r,le),we.writeSyncStep1(r,this),this.send(e,v.toUint8Array(r));const l=this.awareness.getStates();if(l.size>0){const a=v.createEncoder();v.writeVarUint(a,be),v.writeVarUint8Array(a,W.encodeAwarenessUpdate(this.awareness,Array.from(l.keys()))),this.send(e,v.toUint8Array(a))}}});A(this,"messageListener",(e,s)=>{try{const o=v.createEncoder(),r=Ee.createDecoder(s),l=Ee.readVarUint(r);switch(l){case le:v.writeVarUint(o,le),we.readSyncMessage(r,o,this,null),v.length(o)>1&&(this.ensureDataStructure(),this.send(e,v.toUint8Array(o)));break;case be:{W.applyAwarenessUpdate(this.awareness,Ee.readVarUint8Array(r),e);break}default:T.warn(`Unsupported messageType ${l}`)}}catch(o){T.error(o)}this.save()});this.options=e,h.existsSync(this.draftYjsFilePath)&&J.applyUpdate(this,h.readFileSync(this.draftYjsFilePath)),this.syncedStore=Ct.reactive(ce.syncedStore({pages:{},pageIds:[],components:{},supportedLocales:[],config:{},resources:{}},this)),this.initObserver(),this.on("update",this.updateHandler),this.awareness=new W.Awareness(this),this.awareness.on("update",this.awarenessChangeHandler),this.ensureDataStructure()}static safeDeleteProjectStateDir(e){if(!e)throw new Error("Should provide project context");try{const s=d.join(X,e),o=d.join(X,`@del-${e}`);h.renameSync(s,o)}catch(s){T.error("Failed to safe delete project state dir:",s)}}static get projectIds(){return Ie.globSync("*/",{cwd:X,ignore:["@del-*","@tmp-*",".*","staging","production","@backup-*"]})}static get allShared(){return this.projectIds.map(e=>B.shared(e))}static shared(e){if(!e)throw new Error("Should provide project context");let s=this.sharedInstances.get(e);return s||(s=new B({path:d.join(X,e)}),this.sharedInstances.set(e,s),s)}destroy(){this.conns.forEach((e,s)=>this.closeConn(s)),this.awareness.destroy(),super.destroy()}initObserver(){const e=o=>{o.observeDeep(r=>{r.some(l=>l.changes.keys.has("updatedAt")||l.changes.keys.has("publishedAt"))||o.set("updatedAt",new Date().toISOString())})};this.syncedStore.pages&&Object.keys(this.syncedStore.pages).forEach(o=>{const r=ce.getYjsValue(this.syncedStore.pages[o]);r&&r instanceof J.Map&&e(r)});const s=ce.getYjsValue(this.syncedStore.pages);s&&s instanceof J.Map&&s.observe(o=>{o.changes.keys.forEach((r,l)=>{if(r.action==="add"){const a=ce.getYjsValue(this.syncedStore.pages[l]);a&&a instanceof J.Map&&e(a)}})})}get draftYjsFilePath(){return d.join(this.options.path,"draft.yjs")}async getState(e){var s,o,r,l;if(e==="draft")return JSON.parse(JSON.stringify(this.syncedStore));if(!this.states[e]&&(this.states[e]=await Ne(this.getPublishDir(e),{includeResources:!0})??Os(),!((o=(s=this.states[e])==null?void 0:s.config)!=null&&o.defaultLocale))){(r=this.states[e]).config??(r.config={});const a=je.env.languages.map(i=>({locale:i.code,name:i.name}));this.states[e].config.defaultLocale=(l=a[0])==null?void 0:l.locale}return{...this.states[e],resources:await he().then(async a=>{var p,f,g,w;const{pages:i,components:c}=Qt.default(a,"pages","components");let u=c;if((f=(p=this.states[e])==null?void 0:p.resources)!=null&&f.components)u={...(w=(g=this.states[e])==null?void 0:g.resources)==null?void 0:w.components};else{const j=d.basename(this.options.path),x=await H.findByPk(j);if(x!=null&&x.useAllResources)u=c;else{const N=(await ge.findAll({where:{projectId:j}})).map(E=>E.componentId);u=Object.fromEntries(Object.entries(c||{}).filter(([E])=>N.includes(E)))}}return{pages:i,components:u}}).catch(()=>({}))}}async setState(e,s){const o=await it(s,{exportAssets:!1,includeResources:!0}),r=this.getPublishDir(e);h.mkdirSync(d.dirname(r),{recursive:!0}),h.rmSync(r,{force:!0,recursive:!0}),h.renameSync(o,r),this.states[e]=s}getPublishDir(e){return d.join(this.options.path,e)}static async pageUrlMap(e){const{projectIds:s}=this,o={};for(const r of s){const l=await H.findByPk(r);if(!l)continue;const a=await B.shared(r).getState(e),i=Wt.default(y.default.env.languages.map(c=>c.code),a.supportedLocales.map(c=>c.locale));for(const c of a.pageIds){const u=a.pages[c];if(!u||e==="production"&&!u.isPublic)continue;const p=u.slug,f=l.slug||r,g={projectId:r,projectSlug:f,pageSlug:p,pageId:c,defaultLocale:i==null?void 0:i[0],locales:i,publishedAt:a.config.publishedAt,isPublic:u.isPublic,templateConfig:u.templateConfig};f&&(o[R.joinURL("/",f,p)]={...g,shouldRedirect:!0,mainPage:!0}),o[R.joinURL("/",r,p)]={...g,shouldRedirect:!0,mainPage:!0};for(const w of i){const j={...g,locale:w};o[R.joinURL("/",w,r,p)]=j,f&&(o[R.joinURL("/",w,f,p)]=j)}}}return o}getDocumentSize(){return J.encodeStateAsUpdate(this).byteLength}static getInstancesSizeInfo(){const e=[];for(const[s,o]of this.sharedInstances.entries()){const r=o.getDocumentSize();e.push({projectId:s,sizeInBytes:r,sizeInMB:`${(r/(1024*1024)).toFixed(2)} MB`,activeConnections:o.conns.size})}return e}};A(B,"INSTANCE_TTL",30*60*1e3),A(B,"sharedInstances",new ve.LRUCache({max:100,ttl:B.INSTANCE_TTL,dispose:e=>{e.destroy()}}));let oe=B;function rt(){return h.mkdtempSync(d.join(y.default.env.dataDir,"tmp-"))}function de(t,n,e=[]){return Array.isArray(t)?t.flatMap((s,o)=>de(s,n,[...e,o])):typeof t=="object"?t===null?[]:Object.entries(t).flatMap(([s,o])=>de(o,n,[...e,s])):n(t)?[e]:[]}function M(t){return t.filter(n=>n!=null)}async function Ps(t,n,e){if(!t||!h.existsSync(t)||!h.lstatSync(t).isFile())return null;let s=e[t];return s||(s=(async()=>{var o;try{const r=(o=await Ss({filePath:t,fileName:n}))==null?void 0:o.data;return r==null?void 0:r.filename}catch(r){return T.error(`Failed to upload asset ${t}:`,r),null}})(),e[t]=s),s}const _s=async(t,n)=>{const e=d.basename(t),s=await De.call({name:ke,path:R.joinURL("/uploads",e),responseType:"stream",method:"GET"});if(s.status>=200&&s.status<400){const o=h.createWriteStream(n);await Lt.pipeline(s.data,o)}else throw new Error(`download asset failed ${s.status}`)},js=async(t,n)=>{await Promise.all(t.map(async e=>{try{await _s(e,d.join(n,d.basename(e)))}catch(s){T.error(`Failed to export assets: ${e}, ${s}`)}}))};function at(t){return Re.test(t)?[t]:te.test(t)?(He.lastIndex=0,Array.from(t.matchAll(He)).map(e=>e[1]).filter(e=>!!e)):[]}async function Te(t,n,e){const{getFilename:s,exportAssets:o}=e,r=d.join(n,s(t));if(h.mkdirSync(d.dirname(r),{recursive:!0}),h.writeFileSync(r,Z.stringify(t)),o){const a=de(t,i=>typeof i=="string"&&(Re.test(i)||te.test(i))).map(i=>{const c=xe.default(t,i);return at(c)}).flat().filter(Boolean);await js(a,d.dirname(r))}}const Ve=new ve.LRUCache({max:1e3,ttl:30*24*60*60*1e3});async function Ge(t,n,e){var a;const s=de(t,i=>typeof i=="string"&&(Re.test(i)||te.test(i))),o=Xt.default(2),r=s.map(i=>o(async()=>{try{const c=xe.default(t,i),u=at(c);for(const p of u){const f=d.basename(p),g=e.getFilePath(p,i),w=g?`${g}:${f}`:f,j=Ve.get(w);if(j){te.test(c)||qe.default(t,i,j);return}const x=await Ps(g,f,n);x&&(te.test(c)||qe.default(t,i,x),Ve.set(w,x))}}catch(c){T.error(`Failed to process upload for path ${i.join(".")}:`,c.message||c.reason)}})),l=await Promise.allSettled(r);(a=e.onFinish)==null||a.call(e,l)}async function it(t,{exportAssets:n,pageIds:e="all",componentIds:s="all",rawConfig:o,includeResources:r=!1}={}){var F,N,S,E,b,I,V,C,L,G,ie,Q;const l=e==="all"?t.pageIds:e,a=se.getComponentDependencies({state:t,pageIds:l,componentIds:s==="all"?Object.keys(t.components):s}),i=(m,P)=>{var _;return{id:m.id,name:m.name,isTemplateSection:m.isTemplateSection??!1,templateDescription:m.templateDescription,llmConfig:m.llmConfig,component:m.component,config:m.config,visibility:m.visibility,properties:((_=m.locales)==null?void 0:_[P])??{}}},c=(m,P)=>{var _;return{id:m.id,createdAt:m.createdAt,updatedAt:m.updatedAt,publishedAt:m.publishedAt,isPublic:m.isPublic??!0,templateConfig:m.templateConfig,meta:((_=m.locales)==null?void 0:_[P])??{},sections:M(m.sectionIds.map($=>{const q=m.sections[$];return q&&i(q,P)}))}},u=M(t.supportedLocales.map(m=>m.locale).flatMap(m=>l.map(P=>{const _=t.pages[P];return _&&{locale:m,slug:_.slug,page:c(_,m)}}))),p=rt(),f=d.join(p,"pages");h.mkdirSync(f,{recursive:!0});const g=d.join(p,"components");h.mkdirSync(g,{recursive:!0});for(const{locale:m,slug:P,page:_}of u)await Te(_,f,{getFilename:()=>`${ot(P)||"index"}.${m}.yml`,exportAssets:n});for(const m of a){const P=(F=t.components[m])==null?void 0:F.data;P&&await Te(P,g,{getFilename:_=>`${_.name||"unnamed"}.${_.id}.yml`,exportAssets:n})}const w=d.join(p,".blocklet/pages/pages.config.yml");h.mkdirSync(d.dirname(w),{recursive:!0});const j={pages:M(l.map(m=>{const P=t.pages[m];return P&&{id:m,slug:P.slug}})),components:M(a.map(m=>{var _;const P=(_=t.components[m])==null?void 0:_.data;return P&&{id:m,name:P.name}})),...r?{resources:{components:M(Object.keys(((N=t.resources)==null?void 0:N.components)||{}).filter(m=>a.includes(m)).map(m=>{var P,_,$,q;return{id:m,name:(q=($=(_=(P=t.resources)==null?void 0:P.components)==null?void 0:_[m])==null?void 0:$.component)==null?void 0:q.name}}))}}:{},supportedLocales:t.supportedLocales,config:t.config};h.writeFileSync(w,Z.stringify(j));const x=d.join(p,"config.source.json");if(o&&h.writeFileSync(x,JSON.stringify(o)),r){const m=d.join(p,"resources"),P=d.join(m,"components");h.mkdirSync(P,{recursive:!0});for(const q of Object.keys(((S=t==null?void 0:t.resources)==null?void 0:S.components)??{}).filter(U=>a.includes(U))){const U=(I=(b=(E=t.resources)==null?void 0:E.components)==null?void 0:b[q])==null?void 0:I.component;U&&await Te(U,P,{getFilename:z=>`${z.name||"unnamed"}.${z.id}.yml`,exportAssets:n})}const _=d.join(p,"chunks");h.mkdirSync(_,{recursive:!0});const{chunks:$}=await he();for(const q of Object.keys(((V=t==null?void 0:t.resources)==null?void 0:V.components)??{}).filter(U=>a.includes(U))){const U=(G=(L=(C=t.resources)==null?void 0:C.components)==null?void 0:L[q])==null?void 0:G.component;if(U&&((ie=U.renderer)==null?void 0:ie.type)==="react-component"){const z=((Q=U.renderer)==null?void 0:Q.chunks)??[];if((z==null?void 0:z.length)>0)for(const ye of z){const Fe=d.join(_,ye),Se=$==null?void 0:$[ye];try{Se&&h.existsSync(Se)&&!h.existsSync(Fe)&&h.copyFileSync(Se,Fe)}catch(dt){T.error(`copy chunk ${ye} error`,dt.message)}}}}}return p}async function Ne(t,{importAssets:n,includeResources:e}={}){var r,l,a;if(!h.existsSync(t))return null;let s,o=!1;try{h.lstatSync(t).isDirectory()?s=t:/\.(tgz|gz|tar)$/.test(t)&&(o=!0,s=rt(),await Ut.x({file:t,C:s}));const i=Ie.globSync("**/.blocklet/pages/pages.config.yml",{cwd:s,absolute:!0}).at(0),c=i&&d.join(d.dirname(i),"../../pages"),u=i&&d.join(d.dirname(i),"../../components"),p=i&&d.join(d.dirname(i),"../../chunks");if(!i)return null;const f=Z.parse(h.readFileSync(i).toString()),g=(S,E,b)=>{let I=d.join(S,`${E}${b?`.${b}`:""}.yml`);return(!h.existsSync(I)||!h.lstatSync(I).isFile())&&(I=d.join(S,E,`index${b?`.${b}`:""}.yml`),!h.existsSync(I)||!h.lstatSync(I))?null:Z.parse(h.readFileSync(I).toString())},w=(S,E)=>{try{const b=Ie.globSync(`*.${E}.yml`,{cwd:S,absolute:!0})[0];return b?Z.parse(h.readFileSync(b).toString()):null}catch(b){T.error("parse component error",b)}return null},j=M(f.pages.map(({slug:S})=>{var V;const E=M(f.supportedLocales.map(({locale:C})=>{const L=c?g(c,ot(S),C):void 0;if(L)return{locale:C,page:L};const G=c?g(c,S,C):void 0;return G&&{locale:C,page:G}})),b=(V=E[0])==null?void 0:V.page;if(!b)return null;const I=b.sections.map(C=>{const L=C.id||_e();return{id:L,component:C.component,config:C.config,name:C.name,isTemplateSection:C.isTemplateSection??!1,templateDescription:C.templateDescription,llmConfig:C.llmConfig,visibility:C.visibility,locales:Object.fromEntries(M(E.map(({locale:G,page:ie})=>{const Q=ie.sections.find(m=>m.id===L);return Q&&[G,Q.properties]})))}});return{id:b.id||_e(),createdAt:b.createdAt,updatedAt:b.updatedAt,publishedAt:b.publishedAt,isPublic:b.isPublic??!0,templateConfig:b.templateConfig,slug:S,sections:Object.fromEntries(I.map(C=>[C.id,C])),sectionIds:I.map(C=>C.id),locales:Object.fromEntries(E.map(({locale:C,page:L})=>[C,L.meta]))}})),x=u?M(((r=f.components)==null?void 0:r.map(({id:S})=>w(u,S)))??[]):[];if(n){const S=(...E)=>{T.info(`[${o?d.basename(t):d.basename(d.join(t,"../../../../"))}] importAssets:`,...E)};try{S("wait image-bin api ready"),await es.default({resources:[`${De.getComponentWebEndpoint(ss)}/api/sdk/uploads`],validateStatus:I=>I>=200&&I<=500}),S("image-bin api is ready");const E={},b={};S("start to upload assets"),await Promise.allSettled([Ge(x,E,{getFilePath:I=>u&&d.join(u,I),onFinish:I=>{S(`upload ${I.length} component assets`)}}),Ge(j,b,{getFilePath:(I,V)=>{const C=xe.default(j,V.slice(0,1));return c&&d.join(c,d.dirname(C.slug),I)},onFinish:I=>{S(`upload ${I.length} page assets`)}})]),S("upload assets done"),global.gc&&global.gc()}catch(E){S("Error during asset import:",E)}}const F={};if(e){const S=i&&d.join(d.dirname(i),"../../resources/components"),E=M(((a=(l=f.resources)==null?void 0:l.components)==null?void 0:a.map(({id:b})=>w(S,b)))??[]);E.length>0&&(F.components=Object.fromEntries(E.map((b,I)=>[b.id,{index:I,component:b}])))}const N={};if(p&&h.existsSync(p)){const S=h.readdirSync(p);for(const E of S)N[E]=d.join(p,E)}return{supportedLocales:f.supportedLocales,pageIds:j.map(S=>S.id),components:Object.fromEntries(x.map((S,E)=>[S.id,{index:E,data:S}])),pages:Object.fromEntries(j.map(S=>[S.id,S])),config:f.config||{},resources:F,chunks:N}}finally{o&&s&&h.rmSync(s,{force:!0,recursive:!0})}}async function Ae(t,n,{pages:e,pageMergeMode:s="byUpdateTime",deletePages:o=!1,publishMode:r=void 0}={}){try{r&&Ze(r)}catch(u){T.error("clear preload page cache error",{error:u})}const{pageIds:l,pages:a,supportedLocales:i}=t;for(const u of e??l){const p=a[u];if(!p){const f=n.pageIds.indexOf(u);f!==-1&&o&&(n.pageIds.splice(f,1),delete n.pages[u]);continue}if(n.pageIds.includes(p.id)){if(s==="replace")n.pages[p.id]=p;else if(s==="byUpdateTime"){const f=n.pages[p.id];(!f||p.updatedAt&&p.updatedAt>f.updatedAt)&&(n.pages[p.id]=p)}}else n.pageIds.push(p.id),n.pages[p.id]=p}if(o&&!e)for(const u of n.pageIds)t.pageIds.includes(u)||delete n.pages[u],n.pageIds=[...n.pageIds].filter(p=>t.pageIds.includes(p));if(n.supportedLocales.splice(0,n.supportedLocales.length),n.supportedLocales.push(...Kt.default(i)),o)for(const u of Object.keys(n.components))delete n.components[u];let c=JSON.parse(JSON.stringify(t.components));c=Object.fromEntries(await Promise.all(Object.entries(c).map(async([u,p])=>{const f=await ct(p==null?void 0:p.data);return[u,{...p,data:f}]}))),Object.assign(n.components,c),Object.assign(n.config,JSON.parse(JSON.stringify(t.config))),n.resources.components=JSON.parse(JSON.stringify(t.resources.components||{}))}const ct=K.memoize(async t=>{var n;if(!Yt.default(t==null?void 0:t.properties))return t;if(((n=t==null?void 0:t.renderer)==null?void 0:n.type)==="react-component"){const{script:e}=(t==null?void 0:t.renderer)||{};if(e&&e.includes("PROPERTIES_SCHEMA"))try{const s=await nt(e,"PROPERTIES_SCHEMA",t.id);s&&s.length>0&&t&&(t.properties={},s.forEach((o,r)=>{t!=null&&t.properties&&(t.properties[o.id]={index:r,data:o})}))}catch(s){T.error("checkPropertiesFromCode error",{componentId:t.id,name:t.name},{error:s})}}return t},{keyGenerator:t=>{var l;const n=(t==null?void 0:t.id)||"",e=(t==null?void 0:t.name)||"",s=((l=t==null?void 0:t.renderer)==null?void 0:l.type)||"",o=(t==null?void 0:t.properties)||{},r=me.createHash("md5").update(JSON.stringify(o)).digest("hex");return JSON.stringify(["checkPropertiesFromCode",n,e,s,r])},lruOptions:{max:100,ttl:1e3*60*60}});let fe,Y,Le,Ue,Me;function lt(){return fe=(async()=>{const t=De.getResources({types:[{did:ke,type:Oe},{did:ys,type:Oe}]});Y=(await Promise.all(t.map(async e=>{const s=e.path?await Ne(e.path,{importAssets:!1}):void 0;return s?{blockletId:e.did,state:s,blockletTitle:e.title}:void 0}))).filter(e=>!!e),Le=Y.reduce((e,s)=>Object.assign(e,Object.fromEntries(Object.values(s.state.pages).map(o=>o?[o==null?void 0:o.id,{page:o,blockletId:s.blockletId}]:[]))),{});const n=Y.reduce((e,s)=>Object.assign(e,Object.fromEntries(Object.values(s.state.components).map(o=>[o.data.id,{blockletId:s.blockletId,component:o.data}]))),{});Ue=Object.fromEntries(await Promise.all(Object.entries(n).map(async([e,s])=>{const o=await ct(s.component);return[e,{...s,component:o}]}))),Me=Y.reduce((e,s)=>Object.assign(e,s.state.chunks),{})})(),fe}function ut(t){const n=Ye.default(async()=>{await lt().catch(e=>{T.error("load resource states error",{error:e})}),await(t==null?void 0:t({states:Y,pages:Le,components:Ue,chunks:Me}))},3e3,{leading:!1,trailing:!0});return n(),y.default.events.on(y.default.Events.componentAdded,n),y.default.events.on(y.default.Events.componentRemoved,n),y.default.events.on(y.default.Events.componentStarted,n),y.default.events.on(y.default.Events.componentStopped,n),y.default.events.on(y.default.Events.componentUpdated,n),y.default.events.on(Pe,n),()=>{y.default.events.off(y.default.Events.componentAdded,n),y.default.events.off(y.default.Events.componentRemoved,n),y.default.events.off(y.default.Events.componentStarted,n),y.default.events.off(y.default.Events.componentStopped,n),y.default.events.off(y.default.Events.componentUpdated,n),y.default.events.off(Pe,n)}}const pt=Symbol.for("GLOBAL_RESOURCE_STATES_LISTENER_KEY"),pe=globalThis;var ze;(ze=pe[pt])==null||ze.call(pe);pe[pt]=ut(async({pages:t,components:n})=>{const{projectIds:e}=oe;T.info(`start update resource states projects(${e.length})`,e),await Promise.race([new Promise(s=>{setTimeout(()=>{s({})},30*1e3)}),Promise.all(e.map(async s=>{const o=oe.shared(s);o.syncedStore.resources.pages=t;const r=await H.findByPk(s);if(r!=null&&r.useAllResources)o.syncedStore.resources.components=n;else{const a=(await ge.findAll({where:{projectId:s}})).map(c=>c.componentId),i=Object.fromEntries(Object.entries(n||{}).filter(([c])=>a.includes(c)));o.syncedStore.resources.components=i}T.info(`update [${s}] resource states:`,{pages:Object.keys(o.syncedStore.resources.pages||{}).length,components:Object.keys(o.syncedStore.resources.components||{}).length})}))]).catch(s=>{T.error("update resource states failed:",s)})});async function As(){T.info("trigger reload all project resource"),y.default.events.emit(Pe)}async function he({ensureLoaded:t=!0}={}){return t&&(fe??(fe=lt()),await fe),{states:Y,pages:Le,components:Ue,chunks:Me}}exports.COMPONENT_DID=ke;exports.CUSTOM_COMPONENT_CACHE_DURATION_IN_SECONDS=We;exports.GET_SERVER_SIDE_PROPS_TIMEOUT_IN_SECONDS=Ce;exports.PUBLISH_MODES=Cs;exports.Project=H;exports.RESOURCE_TYPE=Oe;exports.SITE_STATE_PATH=X;exports.STATE_MODES=Is;exports.SiteState=oe;exports.clearPreloadComponentsCache=Xe;exports.clearPreloadComponentsCacheByMode=Ze;exports.fromPackage=Ne;exports.getComponentFromState=ne;exports.getComponentFromStateByName=ms;exports.getExportSchemaValueFromCode=nt;exports.getMultiTenantAllProjectAccessPassports=rs;exports.getPreloadComponent=tt;exports.getPreloadComponents=ps;exports.getPreloadComponentsCacheKey=et;exports.getResourceStates=he;exports.initPackResourceStates=ut;exports.isMultiTenant=os;exports.logger=T;exports.mergeState=Ae;exports.nextId=_e;exports.toPackage=it;exports.triggerReloadAllProjectResource=As;
|