@notionhq/custom-blocks-host 0.2.15 → 0.2.17

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/dist/browser.js CHANGED
@@ -1 +1 @@
1
- function jr(e){let{manifestProperties:o,propertySchemasById:n}=e,s=[];for(let[c,l]of Object.entries(o)){let f=Br({propertyKey:c,manifestProperty:l,propertySchemasById:n});f!==void 0&&s.push([c,f])}return Object.fromEntries(s)}function Br(e){let{propertyKey:o,manifestProperty:n,propertySchemasById:s}=e,c=Ze(n.name),l=Object.entries(s).filter(([f,y])=>y.type===n.type&&(f===o||Ze(y.name)===c));return l.length===1?l[0][0]:void 0}function Ze(e){return e.trim().toLowerCase()}var Me,Mr={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function qe(e){return!e&&!Me?Mr:{lang:e?.lang??Me?.lang,message:e?.message,abortEarly:e?.abortEarly??Me?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Me?.abortPipeEarly}}var Rr;function Dr(e){return Rr?.get(e)}var wr;function Ar(e){return wr?.get(e)}var Tr;function qr(e,o){return Tr?.get(e)?.get(o)}function ge(e){let o=typeof e;return o==="string"?`"${e}"`:o==="number"||o==="bigint"||o==="boolean"?`${e}`:o==="object"||o==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":o}function M(e,o,n,s,c){let l=c&&"input"in c?c.input:n.value,f=c?.expected??e.expects??null,y=c?.received??ge(l),m={kind:e.kind,type:e.type,input:l,expected:f,received:y,message:`Invalid ${o}: ${f?`Expected ${f} but r`:"R"}eceived ${y}`,requirement:e.requirement,path:c?.path,issues:c?.issues,lang:s.lang,abortEarly:s.abortEarly,abortPipeEarly:s.abortPipeEarly},S=e.kind==="schema",I=c?.message??e.message??qr(e.reference,m.lang)??(S?Ar(m.lang):null)??s.message??Dr(m.lang);I!==void 0&&(m.message=typeof I=="function"?I(m):I),S&&(n.typed=!1),n.issues?n.issues.push(m):n.issues=[m]}var Ye=new WeakMap;function F(e){let o=Ye.get(e);return o||(o={version:1,vendor:"valibot",validate(n){return e["~run"]({value:n},qe())}},Ye.set(e,o)),o}function Nr(e,o){return Object.prototype.hasOwnProperty.call(e,o)&&o!=="__proto__"&&o!=="prototype"&&o!=="constructor"}function Ne(e,o){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${o} `)})`:n[0]??"never"}var Fr=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function te(e){return{kind:"transformation",type:"brand",reference:te,async:!1,name:e,"~run"(o){return o}}}function be(e){return{kind:"validation",type:"finite",reference:be,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(o,n){return o.typed&&!this.requirement(o.value)&&M(this,"finite",o,n),o}}}function Re(e,o){return{kind:"validation",type:"max_length",reference:Re,async:!1,expects:`<=${e}`,requirement:e,message:o,"~run"(n,s){return n.typed&&n.value.length>this.requirement&&M(this,"length",n,s,{received:`${n.value.length}`}),n}}}function ke(e,o){return{kind:"validation",type:"min_length",reference:ke,async:!1,expects:`>=${e}`,requirement:e,message:o,"~run"(n,s){return n.typed&&n.value.length<this.requirement&&M(this,"length",n,s,{received:`${n.value.length}`}),n}}}function Se(e,o){return{kind:"validation",type:"min_value",reference:Se,async:!1,expects:`>=${e instanceof Date?e.toJSON():ge(e)}`,requirement:e,message:o,"~run"(n,s){return n.typed&&!(n.value>=this.requirement)&&M(this,"value",n,s,{received:n.value instanceof Date?n.value.toJSON():ge(n.value)}),n}}}var Ur={abortEarly:!0};function tt(e,o,n){return typeof e.fallback=="function"?e.fallback(o,n):e.fallback}function De(e,o,n){return typeof e.default=="function"?e.default(o,n):e.default}function O(e,o){return{kind:"schema",type:"array",reference:O,expects:"Array",async:!1,item:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(Array.isArray(c)){n.typed=!0,n.value=[];for(let l=0;l<c.length;l++){let f=c[l],y=this.item["~run"]({value:f},s);if(y.issues){let m={type:"array",origin:"value",input:c,key:l,value:f};for(let S of y.issues)S.path?S.path.unshift(m):S.path=[m],n.issues?.push(S);if(n.issues||(n.issues=y.issues),s.abortEarly){n.typed=!1;break}}y.typed||(n.typed=!1),n.value.push(y.value)}}else M(this,"type",n,s);return n}}}function b(e){return{kind:"schema",type:"boolean",reference:b,expects:"boolean",async:!1,message:e,get"~standard"(){return F(this)},"~run"(o,n){return typeof o.value=="boolean"?o.typed=!0:M(this,"type",o,n),o}}}function i(e,o){return{kind:"schema",type:"literal",reference:i,expects:ge(e),async:!1,literal:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){return n.value===this.literal?n.typed=!0:M(this,"type",n,s),n}}}function Fe(e){return{kind:"schema",type:"nan",reference:Fe,expects:"NaN",async:!1,message:e,get"~standard"(){return F(this)},"~run"(o,n){return Number.isNaN(o.value)?o.typed=!0:M(this,"type",o,n),o}}}function Z(e,o){return{kind:"schema",type:"nullable",reference:Z,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:o,get"~standard"(){return F(this)},"~run"(n,s){return n.value===null&&(this.default!==void 0&&(n.value=De(this,n,s)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function E(e){return{kind:"schema",type:"number",reference:E,expects:"number",async:!1,message:e,get"~standard"(){return F(this)},"~run"(o,n){return typeof o.value=="number"&&!isNaN(o.value)?o.typed=!0:M(this,"type",o,n),o}}}function r(e,o){return{kind:"schema",type:"object",reference:r,expects:"Object",async:!1,entries:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(c&&typeof c=="object"){n.typed=!0,n.value={};for(let l in this.entries){let f=this.entries[l];if(l in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let y=l in c?c[l]:De(f),m=f["~run"]({value:y},s);if(m.issues){let S={type:"object",origin:"value",input:c,key:l,value:y};for(let I of m.issues)I.path?I.path.unshift(S):I.path=[S],n.issues?.push(I);if(n.issues||(n.issues=m.issues),s.abortEarly){n.typed=!1;break}}m.typed||(n.typed=!1),n.value[l]=m.value}else if(f.fallback!==void 0)n.value[l]=tt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(M(this,"key",n,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}}else M(this,"type",n,s);return n}}}function a(e,o){return{kind:"schema",type:"optional",reference:a,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:o,get"~standard"(){return F(this)},"~run"(n,s){return n.value===void 0&&(this.default!==void 0&&(n.value=De(this,n,s)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function D(e,o){return{kind:"schema",type:"picklist",reference:D,expects:Ne(e.map(ge),"|"),async:!1,options:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){return this.options.includes(n.value)?n.typed=!0:M(this,"type",n,s),n}}}function U(e,o,n){return{kind:"schema",type:"record",reference:U,expects:"Object",async:!1,key:e,value:o,message:n,get"~standard"(){return F(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){s.typed=!0,s.value={};for(let f in l)if(Nr(l,f)){let y=l[f],m=this.key["~run"]({value:f},c);if(m.issues){let I={type:"object",origin:"key",input:l,key:f,value:y};for(let j of m.issues)j.path=[I],s.issues?.push(j);if(s.issues||(s.issues=m.issues),c.abortEarly){s.typed=!1;break}}let S=this.value["~run"]({value:y},c);if(S.issues){let I={type:"object",origin:"value",input:l,key:f,value:y};for(let j of S.issues)j.path?j.path.unshift(I):j.path=[I],s.issues?.push(j);if(s.issues||(s.issues=S.issues),c.abortEarly){s.typed=!1;break}}(!m.typed||!S.typed)&&(s.typed=!1),m.typed&&(s.value[m.value]=S.value)}}else M(this,"type",s,c);return s}}}function p(e,o){return{kind:"schema",type:"strict_object",reference:p,expects:"Object",async:!1,entries:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(c&&typeof c=="object"){n.typed=!0,n.value={};for(let l in this.entries){let f=this.entries[l];if(l in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let y=l in c?c[l]:De(f),m=f["~run"]({value:y},s);if(m.issues){let S={type:"object",origin:"value",input:c,key:l,value:y};for(let I of m.issues)I.path?I.path.unshift(S):I.path=[S],n.issues?.push(I);if(n.issues||(n.issues=m.issues),s.abortEarly){n.typed=!1;break}}m.typed||(n.typed=!1),n.value[l]=m.value}else if(f.fallback!==void 0)n.value[l]=tt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(M(this,"key",n,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}if(!n.issues||!s.abortEarly){for(let l in c)if(!(l in this.entries)){M(this,"key",n,s,{input:l,expected:"never",path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]});break}}}else M(this,"type",n,s);return n}}}function t(e){return{kind:"schema",type:"string",reference:t,expects:"string",async:!1,message:e,get"~standard"(){return F(this)},"~run"(o,n){return typeof o.value=="string"?o.typed=!0:M(this,"type",o,n),o}}}function et(e){let o;if(e)for(let n of e)if(o)for(let s of n.issues)o.push(s);else o=n.issues;return o}function x(e,o){return{kind:"schema",type:"union",reference:x,expects:Ne(e.map(n=>n.expects),"|"),async:!1,options:e,message:o,get"~standard"(){return F(this)},"~run"(n,s){let c,l,f;for(let y of this.options){let m=y["~run"]({value:n.value},s);if(m.typed)if(m.issues)l?l.push(m):l=[m];else{c=m;break}else f?f.push(m):f=[m]}if(c)return c;if(l){if(l.length===1)return l[0];M(this,"type",n,s,{issues:et(l)}),n.typed=!0}else{if(f?.length===1)return f[0];M(this,"type",n,s,{issues:et(f)})}return n}}}function Ie(){return{kind:"schema",type:"unknown",reference:Ie,expects:"unknown",async:!1,get"~standard"(){return F(this)},"~run"(e){return e.typed=!0,e}}}function h(e,o,n){return{kind:"schema",type:"variant",reference:h,expects:"Object",async:!1,key:e,options:o,message:n,get"~standard"(){return F(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){let f,y=0,m=this.key,S=[],I=(j,k)=>{for(let G of j.options){if(G.type==="variant")I(G,new Set(k).add(G.key));else{let W=!0,T=0;for(let B of k){let q=G.entries[B];if(B in l?q["~run"]({typed:!1,value:l[B]},Ur).issues:q.type!=="exact_optional"&&q.type!=="optional"&&q.type!=="nullish"){W=!1,m!==B&&(y<T||y===T&&B in l&&!(m in l))&&(y=T,m=B,S=[]),m===B&&S.push(G.entries[B].expects);break}T++}if(W){let B=G["~run"]({value:l},c);(!f||!f.typed&&B.typed)&&(f=B)}}if(f&&!f.issues)break}};if(I(this,new Set([this.key])),f)return f;M(this,"type",s,c,{input:l[m],expected:Ne(S,"|"),path:[{type:"object",origin:"value",input:l,key:m,value:l[m]}]})}else M(this,"type",s,c);return s}}}function rt(e,o){let n={...e.entries};for(let s of o)delete n[s];return{...e,entries:n,get"~standard"(){return F(this)}}}function fe(e,o,n){let s=e["~run"]({value:o},qe(n));if(s.issues)throw new Fr(s.issues);return s.value}function z(...e){return{...e[0],pipe:e,get"~standard"(){return F(this)},"~run"(o,n){for(let s of e)if(s.kind!=="metadata"){if(o.issues&&(s.kind==="schema"||s.kind==="transformation")){o.typed=!1;break}(!o.issues||!n.abortEarly&&!n.abortPipeEarly)&&(o=s["~run"](o,n))}return o}}}function xe(e,o,n){let s=e["~run"]({value:o},qe(n));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var re=z(t(),te("NotionBlockId")),Y=z(t(),te("NotionDataSourceId")),H=z(t(),te("NotionPageId")),nt=z(t(),te("NotionAgentId")),ot=z(t(),te("NotionSpaceId"));var it=D(["default","gray","brown","orange","yellow","green","blue","purple","pink","red","gray_background","brown_background","orange_background","yellow_background","green_background","blue_background","purple_background","pink_background","red_background","default_background"]),Ue=r({id:t(),name:t(),color:a(it),description:a(t())}),zr=r({id:t(),name:t(),color:a(it),option_ids:O(t())}),Hr=r({synced_property_id:t(),synced_property_name:t()}),P=r({name:t(),description:a(t())}),Gr=["title","rich_text","number","checkbox","url","email","phone_number","select","multi_select","status","date","people","files","unique_id","relation","place","formula","rollup","button","verification","last_visited_time","location","created_time","last_edited_time","created_by","last_edited_by"],st=D(Gr),ut=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],ze=h("type",[r({...P.entries,type:i("title")}),r({...P.entries,type:i("rich_text")}),r({...P.entries,type:i("number")}),r({...P.entries,type:i("checkbox")}),r({...P.entries,type:i("url")}),r({...P.entries,type:i("email")}),r({...P.entries,type:i("phone_number")}),r({...P.entries,type:i("select"),options:O(Ue)}),r({...P.entries,type:i("multi_select"),options:O(Ue)}),r({...P.entries,type:i("status"),options:O(Ue),groups:O(zr)}),r({...P.entries,type:i("date")}),r({...P.entries,type:i("people")}),r({...P.entries,type:i("files")}),r({...P.entries,type:i("unique_id")}),r({...P.entries,type:i("relation"),data_source_id:a(t()),dual_property:a(Hr)}),r({...P.entries,type:i("place")}),r({...P.entries,type:i("formula")}),r({...P.entries,type:i("rollup")}),r({...P.entries,type:i("button")}),r({...P.entries,type:i("verification")}),r({...P.entries,type:i("last_visited_time")}),r({...P.entries,type:i("location")}),r({...P.entries,type:i("created_time")}),r({...P.entries,type:i("last_edited_time")}),r({...P.entries,type:i("created_by")}),r({...P.entries,type:i("last_edited_by")})]);var at={created_time:{type:"created_time",name:"Created time"},last_edited_time:{type:"last_edited_time",name:"Last edited time"},created_by:{type:"created_by",name:"Created by"},last_edited_by:{type:"last_edited_by",name:"Last edited by"}};var ct=r({id:Y,table:t(),spaceId:a(ot)}),lt=r({id:a(Y),propertiesById:U(t(),ze)}),so=r({key:t(),collectionPointer:a(ct),collectionSchema:a(lt),propertyIdsByKey:U(t(),a(t())),propertySchemasById:U(t(),ze)}),Lr=r({collectionPointer:a(ct),collectionSchema:a(lt),propertyIdsByKey:a(U(t(),a(t())))}),le=U(t(),Lr);var Vr=h("type",[r({type:i("emoji"),emoji:t()}),r({type:i("external"),url:t()})]),Qr=r({name:t(),description:a(t()),type:st}),$r=r({name:t(),description:a(t()),icon:a(Vr),properties:a(U(t(),Qr),{})}),pe=r({version:i(1),dataSources:U(t(),$r)});var me=D(["standard","high"]),pt="standard";var ft=r({type:i("contrastModeChanged"),contrastMode:me});var ne=h("type",[r({type:i("page_id"),page_id:H}),r({type:i("data_source_id"),data_source_id:Y}),r({type:i("workspace"),workspace:i(!0)}),r({type:i("block_id"),block_id:re}),r({type:i("agent_id"),agent_id:nt}),r({type:i("unavailable")})]);var ye=h("type",[r({type:i("unavailable")}),r({type:i("page"),id:H,parent:ne})]),Xr=r({type:i("emoji"),emoji:t()}),Wr=r({type:i("custom_emoji"),custom_emoji:r({id:t(),name:a(t()),url:a(t())})}),yt=r({type:i("external"),external:r({url:t()})}),vt=r({type:i("file"),file:r({url:t(),expiry_time:a(t())})}),Ge=h("type",[Xr,Wr,yt,vt]),Le=h("type",[yt,vt]),X=Z(t()),mt=U(t(),Ie()),He=x([r({id:t(),name:a(t()),color:a(t()),description:a(X)}),r({name:t(),id:a(t()),color:a(t()),description:a(X)})]),Jr=r({start:t(),end:a(X),time_zone:a(X)}),Kr=x([r({object:a(i("user")),id:t()}),r({object:i("group"),id:t(),name:a(X)})]),Zr=r({id:t()}),Yr=x([r({type:i("external"),name:t(),external:r({url:t()})}),r({type:i("file"),name:t(),file:r({url:t(),expiry_time:a(t())})})]),en=r({lat:E(),lon:E(),name:a(X),address:a(X),aws_place_id:a(X),google_place_id:a(X)}),L={id:t()},tn=h("type",[r({...L,type:i("title"),title:O(mt)}),r({...L,type:i("rich_text"),rich_text:O(mt)}),r({...L,type:i("number"),number:Z(E())}),r({...L,type:i("url"),url:X}),r({...L,type:i("email"),email:X}),r({...L,type:i("phone_number"),phone_number:X}),r({...L,type:i("checkbox"),checkbox:b()}),r({...L,type:i("select"),select:Z(He)}),r({...L,type:i("status"),status:Z(He)}),r({...L,type:i("multi_select"),multi_select:O(He)}),r({...L,type:i("date"),date:Z(Jr)}),r({...L,type:i("people"),people:O(Kr)}),r({...L,type:i("relation"),has_more:a(b()),relation:O(Zr)}),r({...L,type:i("files"),files:O(Yr)}),r({...L,type:i("place"),place:Z(en)})]),_e=U(t(),tn),ve=r({object:i("page"),id:H,parent:ne,properties:_e,created_time:a(t()),last_edited_time:a(t()),icon:a(Ge),cover:a(Le),url:a(t()),public_url:a(t()),is_archived:b(),in_trash:b()});var rn=t(),nn=r({code:rn,message:t(),isRetryable:b()}),dt=h("status",[r({type:i("createPageResult"),requestId:t(),status:i("success"),page:ve}),r({type:i("createPageResult"),requestId:t(),status:i("error"),error:nn})]);var Ve=z(t(),te("NotionUserId")),oe=r({object:i("user"),id:Ve,name:a(t()),avatar_url:Z(t()),type:i("person"),person:r({email:t()})}),ht=r({object:i("list"),results:O(oe),next_cursor:Z(t()),has_more:b(),type:i("user"),user:U(t(),Ie())});var gt=r({type:i("currentUserChanged"),currentUser:oe});var bt=r({type:i("dataSourcesChanged"),dataSources:r({bindings:le})});var on=t(),sn=r({code:on,message:t(),isRetryable:b()}),kt=r({type:i("getPage"),requestId:t(),pageId:H}),St=h("status",[r({type:i("getPageResult"),requestId:t(),status:i("success"),page:ve}),r({type:i("getPageResult"),requestId:t(),status:i("error"),error:sn})]);var un=t(),an=r({code:un,message:t(),isRetryable:b()}),It=r({type:i("getUser"),requestId:t(),userId:Ve}),xt=h("status",[r({type:i("getUserResult"),requestId:t(),status:i("success"),user:oe}),r({type:i("getUserResult"),requestId:t(),status:i("error"),error:an})]);var de=D(["light","dark"]);var cn=t(),ln=r({code:cn,message:t(),isRetryable:b()});var we=h("status",[r({type:i("init"),initializationId:t(),status:i("success"),theme:de,contrastMode:me,blockId:re,parent:ne,page:ye,manifest:pe,dataSources:r({bindings:le}),currentUser:oe}),r({type:i("init"),initializationId:t(),status:i("error"),error:ln})]);var _t=r({type:i("invalidSandboxMessage"),reason:t()});var pn=t(),fn=r({code:pn,message:t(),isRetryable:b()}),Ct=r({type:i("listUsers"),requestId:t(),startCursor:a(t()),pageSize:a(E())}),Et=h("status",[r({type:i("listUsersResult"),requestId:t(),status:i("success"),list:ht}),r({type:i("listUsersResult"),requestId:t(),status:i("error"),error:fn})]);var mn=D(["side_peek","center_peek"]),yn=t(),vn=r({code:yn,message:t(),isRetryable:b()}),Ot=r({type:i("openPage"),requestId:t(),pageId:H,mode:mn}),Pt=h("status",[r({type:i("openPageResult"),requestId:t(),status:i("success"),pageId:H}),r({type:i("openPageResult"),requestId:t(),status:i("error"),error:vn})]);var jt=r({type:i("pageChanged"),page:ye});var Bt=r({type:i("parentChanged"),parent:ne});var Mt=r({unit:D(["year","month","week","day"]),value:E(),time:t(),defaultTimeZone:a(t())}),dn=r({unit:D(["hour","minute"]),value:E()}),Rt=r({unit:i("none")}),hn=x([Mt,dn]),Dt=a(x([Mt,Rt])),wt=a(x([hn,Rt])),gn=r({type:i("date"),start_date:t(),reminder:Dt}),bn=r({type:i("daterange"),start_date:t(),end_date:t(),reminder:Dt}),kn=r({type:i("datetime"),start_date:t(),start_time:t(),time_zone:a(t()),reminder:wt}),Sn=r({type:i("datetimerange"),start_date:t(),start_time:t(),end_date:t(),end_time:t(),time_zone:a(t()),reminder:wt}),At=h("type",[gn,bn,kn,Sn]);var Tt=r({id:t(),table:t()});var qt=x([t(),E(),b(),At,O(t()),O(Tt)]);var Nt=r({id:H,is_archived:b(),in_trash:b(),propertiesById:U(t(),a(qt))});var In=t(),xn=r({code:In,message:t(),isRetryable:b()}),Ft=h("status",[r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("success"),items:O(Nt),hasMore:b()}),r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("error"),error:xn})]);var Ut=r({type:i("themeChanged"),theme:de});var _n=t(),Cn=r({code:_n,message:t(),isRetryable:b()}),zt=h("status",[r({type:i("updatePageResult"),requestId:t(),status:i("success"),page:ve}),r({type:i("updatePageResult"),requestId:t(),status:i("error"),error:Cn})]);var Ht=h("type",[we,Ut,ft,Bt,jt,gt,bt,Ft,dt,St,xt,Et,Pt,zt,_t]);function Gt(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function Lt(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Qe(e){let{currentBridgeProtocolVersion:o}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version ${o?`: ${o}`:"."}`,isRetryable:!1}}function $e(e){let{currentBridgeProtocolVersion:o,minBridgeProtocolVersion:n}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${o} is not supported. Minimum supported version is ${n}.`,isRetryable:!1}}function Xe(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function Vt(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function Qt(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function $t(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function Xt(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function Wt(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function Jt(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Kt(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function ie(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function We(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var En=5e3,On=5e3,Pn=5e3;function Zt(e){let{prepareInit:o,sendInitMessage:n,warn:s,flushPendingHostStateChanges:c,minBridgeProtocolVersion:l,noConnectTimeoutMs:f=En,initialStateTimeoutMs:y=On,noInitResultTimeoutMs:m=Pn,stopHostWithFailure:S,onInitResult:I,onConnectionFailure:j}=e,k="waitingForConnect",G,W,T,B,q=!1,se=!1;function $(){G!==void 0&&(window.clearTimeout(G),G=void 0)}function R(){W!==void 0&&(window.clearTimeout(W),W=void 0)}function N(){T!==void 0&&(window.clearTimeout(T),T=void 0)}function A(g){let{initializationId:v,error:V,phase:K,source:Be}=g;switch(k){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"error":case"stopped":return;default:return ie(k)}k="error",B=v,$(),R(),n({type:"init",initializationId:v,status:"error",error:V}),j?.({...V,phase:K,source:Be})}async function J(g){if(k==="waitingForConnect"){k="preparingInit",B=g.initializationId,$(),W=window.setTimeout(()=>{if(k!=="preparingInit")return;let v=Vt();s({...v,initializationId:g.initializationId}),A({initializationId:g.initializationId,error:v,phase:"init",source:"host"})},y);try{let v=await o(g);if(k!=="preparingInit")return;if(R(),v.status==="error"){A({initializationId:g.initializationId,error:v.error,phase:"init",source:"host"});return}k="waitingForInitResult";let V={type:"init",initializationId:g.initializationId,status:"success",theme:v.initialState.theme,contrastMode:v.initialState.contrastMode??pt,blockId:v.initialState.blockId,parent:v.initialState.parent,page:v.initialState.page,currentUser:v.initialState.currentUser,manifest:v.initialState.manifest,dataSources:v.initialState.dataSources};n(V),T=window.setTimeout(()=>{if(k!=="waitingForInitResult")return;k="error";let K=Wt();j?.({...K,phase:"initResult",source:"host"}),s({...K,initializationId:g.initializationId})},m)}catch(v){if(k!=="preparingInit")return;s({message:"Failed to prepare custom block initialization",error:v}),A({initializationId:g.initializationId,error:Kt(),phase:"init",source:"host"})}}}function ee(g){if(k!=="stopped"&&k==="waitingForConnect"){if(!We(g.bridgeProtocolVersion)){let v=Qe({currentBridgeProtocolVersion:g.bridgeProtocolVersion});A({initializationId:g.initializationId,error:v,phase:"connect",source:"host"});return}if(g.bridgeProtocolVersion<l){let v=$e({currentBridgeProtocolVersion:g.bridgeProtocolVersion,minBridgeProtocolVersion:l});A({initializationId:g.initializationId,error:v,phase:"connect",source:"host"});return}if(g.status==="error"){A({initializationId:g.initializationId,error:g.error,phase:"connect",source:"sandbox"});return}se=!0,J(g)}}function _(g){if(k==="stopped"||k!=="waitingForConnect")return"handled";let{initializationId:v,bridgeProtocolVersion:V}=g;if(v===void 0)return"nack";let K=g.error;return V!==void 0&&(We(V)?V<l&&(K=$e({currentBridgeProtocolVersion:V,minBridgeProtocolVersion:l})):K=Qe({currentBridgeProtocolVersion:void 0})),A({initializationId:v,error:K,phase:"connect",source:"host"}),"handled"}function ue(g){let{initializationId:v,error:V}=g;k!=="waitingForInitResult"||v===void 0||v!==B||($(),N(),k="error",s(V),j?.({...V,phase:"initResult",source:"host"}))}function je(){if(k!=="stopped"){if(q){S({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}q=!0,$(),k==="waitingForConnect"&&(G=window.setTimeout(()=>{if(k!=="waitingForConnect")return;k="error";let g=Gt();s(g),j?.({...g,phase:"connect",source:"host"})},f))}}function he(g){if(k!=="waitingForInitResult"||g.initializationId!==B){s({message:"Ignored stale or unexpected initResult",payload:g});return}N(),k=g.status==="success"?"initialized":"error",g.status==="success"?c():j?.({...g.error,phase:"initResult",source:"sandbox"}),I?.(g)}function ae(){k="stopped",$(),R(),N()}return{get status(){return k},get hasConnectedSandbox(){return se},handleConnect:ee,handleInitResult:he,handleInvalidConnect:_,handleInvalidInitResult:ue,onIframeLoad:je,stop:ae}}function Yt(e,o){return o>=5||!(e.type==="init"&&e.status==="success"||e.type==="dataSourcesChanged")?e:{...e,dataSources:{bindings:Object.fromEntries(Object.entries(e.dataSources.bindings).map(([s,c])=>[s,{...c,collectionSchema:{...c.collectionSchema,propertiesById:{...c.collectionSchema?.propertiesById,...at}}}]))}}}var er=r({theme:de,contrastMode:a(me),blockId:re,parent:ne,page:ye,manifest:pe,dataSources:r({bindings:le}),currentUser:oe});function tr(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var rr=r({code:t(),message:t(),isRetryable:b()});var nr={type:i("connect"),initializationId:t(),bridgeProtocolVersion:E(),sdkVersion:t()},or=h("status",[r({status:i("success"),manifest:a(pe),...nr}),r({status:i("error"),error:rr,...nr})]);var jn=h("type",[r({type:i("start")}),r({type:i("end")}),r({type:i("before"),blockId:re}),r({type:i("after"),blockId:re})]),Bn=h("type",[r({type:i("page_id"),page_id:H}),r({type:i("data_source_id"),data_source_id:Y})]),ir=r({type:i("createPage"),requestId:t(),parent:Bn,properties:_e,position:a(jn)});var Mn=t(),Rn=r({code:Mn,message:t(),isRetryable:b()}),sr=h("status",[r({type:i("initResult"),initializationId:t(),status:i("success"),initialHeight:a(z(E(),be(),Se(0)))}),r({type:i("initResult"),initializationId:t(),status:i("error"),error:Rn})]);var ur=r({type:i("invalidHostMessage"),reason:t()});var ar=D(["ascending","descending"]);var Pe=x([p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Oe=x([t(),O(t())]),cr=p({object:D(["user","group"]),id:z(t(),ke(1))}),Dn=x([p({contains:cr}),p({does_not_contain:cr}),Pe]),lr=p({object:i("user"),id:z(t(),ke(1),Re(2e3))}),wn=x([p({contains:lr}),p({does_not_contain:lr}),p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Ce=x([p({equals:t()}),p({does_not_equal:t()}),p({contains:t()}),p({does_not_contain:t()}),p({starts_with:t()}),p({ends_with:t()}),Pe]),An=x([p({equals:E()}),p({does_not_equal:E()}),p({greater_than:E()}),p({less_than:E()}),p({greater_than_or_equal_to:E()}),p({less_than_or_equal_to:E()}),Pe]),Tn=x([p({equals:b()}),p({does_not_equal:b()})]),yr=x([p({equals:Oe}),p({does_not_equal:Oe}),Pe]),pr=D(["To-do","In progress","Complete","Current","Future"]),fr=x([pr,z(O(pr),ke(1),Re(5))]),qn=x([p({group_equals:fr}),p({group_does_not_equal:fr})]),Nn=x([yr,qn]),Fn=x([p({contains:Oe}),p({contains_all:Oe}),p({does_not_contain:Oe}),Pe]),Q=D(["start_date","end_date"]),Un=D(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Ee=x([Un,t()]),zn=x([p({target:a(Q),equals:Ee}),p({target:a(Q),before:Ee}),p({target:a(Q),after:Ee}),p({target:a(Q),on_or_before:Ee}),p({target:a(Q),on_or_after:Ee}),p({target:a(Q),this_week:p({})}),p({target:a(Q),past_week:p({})}),p({target:a(Q),past_month:p({})}),p({target:a(Q),past_year:p({})}),p({target:a(Q),next_week:p({})}),p({target:a(Q),next_month:p({})}),p({target:a(Q),next_year:p({})}),p({target:a(Q),is_empty:i(!0)}),p({target:a(Q),is_not_empty:i(!0)})]),mr=x([p({propertyId:t(),created_by:wn}),p({propertyId:t(),title:Ce}),p({propertyId:t(),rich_text:Ce}),p({propertyId:t(),url:Ce}),p({propertyId:t(),email:Ce}),p({propertyId:t(),phone_number:Ce}),p({propertyId:t(),number:An}),p({propertyId:t(),checkbox:Tn}),p({propertyId:t(),select:yr}),p({propertyId:t(),multi_select:Fn}),p({propertyId:t(),status:Nn}),p({propertyId:t(),date:zn}),p({propertyId:t(),people:Dn})]),Hn=x([mr,p({and:O(mr)})]),Je=10,Gn=p({propertyId:t(),direction:ar}),vr=r({type:i("queryDataSource"),subscriptionId:t(),dataSourceId:Y,limit:E(),filter:a(Hn),sorts:a(O(Gn))});var dr=r({type:i("resize"),height:z(E(),be(),Se(0))});var hr=r({type:i("unsubscribeDataSourceQuery"),subscriptionId:t()});var gr=r({type:i("updatePage"),requestId:t(),pageId:H,properties:a(_e),icon:a(Ge),cover:a(Le),archived:a(b())});var br=h("type",[or,sr,vr,hr,ir,kt,It,Ct,Ot,gr,dr,ur]);function kr(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function Sr(e){let o=kr(e);return o==="invalidHostMessage"||o==="invalidSandboxMessage"?{incomingType:o}:{incomingType:o,nack:{type:"invalidSandboxMessage",reason:Ln(o)}}}function Ln(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var Ir=r({initializationId:t()}),Vn=r({bridgeProtocolVersion:x([E(),Fe()])});function xr(e){let{iframe:o,sandboxOrigin:n,getInitStatus:s,emit:c,sendNack:l,onInvalidConnect:f,onInvalidInitResult:y,onConnect:m,onInitResult:S,onQueryDataSource:I,onUnsubscribeDataSourceQuery:j,onCreatePage:k,onGetPage:G,onOpenPage:W,onGetUser:T,onListUsers:B,onUpdatePage:q,onResize:se}=e;function $(R,N){c("warn",{message:"Ignored unsupported sandbox message",payload:R,issues:N});let A=Sr(R);if(A.incomingType==="connect"){let J=xe(Ir,R),ee=xe(Vn,R);if(f({initializationId:J.success?J.output.initializationId:void 0,error:Lt(),bridgeProtocolVersion:ee.success?ee.output.bridgeProtocolVersion:void 0})==="handled")return}if(A.incomingType==="initResult"){let J=xe(Ir,R);y({initializationId:J.success?J.output.initializationId:void 0,error:Jt()})}A.nack!==void 0&&s()!=="stopped"&&l(A.nack)}return function(N){let A=N.source===o.contentWindow,J=N.origin===n;if(!A||!J)return;let ee=xe(br,N.data);if(!ee.success){$(N.data,ee.issues);return}let _=ee.output;if(!tr(_)&&s()!=="initialized"){c("warn",{message:`Ignored ${_.type} before initialization completed`,payload:_});return}switch(c("in",_),_.type){case"connect":m(_);return;case"initResult":S(_);return;case"queryDataSource":I(_);return;case"unsubscribeDataSourceQuery":j(_);return;case"createPage":k(_);return;case"openPage":W(_);return;case"getPage":G(_);return;case"getUser":T(_);return;case"listUsers":B(_);return;case"updatePage":q(_);return;case"resize":se(_);return;case"invalidHostMessage":return;default:ie(_)}}}var Ae=class{constructor(o){this.onUnsubscribe=o}onUnsubscribe;bySubscriptionId=new Map;subscribe(o){this.unsubscribe(o.subscriptionId);let n={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(o.subscriptionId,{message:o,token:n,isRefreshing:!0,shouldRefreshAgain:!1}),n}isCurrent(o,n){return this.bySubscriptionId.get(o)?.token===n}unsubscribe(o){this.bySubscriptionId.delete(o)&&this.onUnsubscribe(o)}refresh(o){let n=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===o){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,n.push({message:c.message,token:c.token})}return s?n:void 0}finish(o,n){let s=this.bySubscriptionId.get(o);if(s?.token===n&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let o of this.bySubscriptionId.keys())this.unsubscribe(o)}};function _r(e,o){if(e===void 0)return;let n="and"in e?e.and:[e];for(let s of n){let c=Qn(s,o);if(c!==void 0)return c}}function Qn(e,o){if(!Object.hasOwn(o.propertiesById,e.propertyId))return{code:"invalid_data_source_query_filter",message:`Data source query filter property ID "${e.propertyId}" is not defined in the bound data source schema.`,isRetryable:!1};let n=o.propertiesById[e.propertyId],s=Object.keys(e).find(y=>y!=="propertyId");if(s!==n.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${n.type}".`,isRetryable:!1};if("status"in e&&n.type==="status"){let y=e.status;if("group_equals"in y||"group_does_not_equal"in y){let m="group_equals"in y?y.group_equals:y.group_does_not_equal,I=(Array.isArray(m)?m:[m]).find(j=>!n.groups.some(k=>k.name===j));return I===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${I}".`,isRetryable:!1}}}let c=$n(e);if(c===void 0||n.type!==c.propertyType)return;let l=new Set(n.options.map(y=>y.name)),f=Xn(c.operator).find(y=>!l.has(y));if(f!==void 0)return{code:"invalid_data_source_query_filter",message:`Data source query filter option "${f}" is not defined for property "${e.propertyId}".`,isRetryable:!1}}function $n(e){if("select"in e)return{propertyType:"select",operator:e.select};if("multi_select"in e)return{propertyType:"multi_select",operator:e.multi_select};if("status"in e){let o=e.status;return"group_equals"in o||"group_does_not_equal"in o?void 0:{propertyType:"status",operator:o}}}function Xn(e){let o;if("equals"in e)o=e.equals;else if("does_not_equal"in e)o=e.does_not_equal;else if("contains"in e)o=e.contains;else if("contains_all"in e)o=e.contains_all;else if("does_not_contain"in e)o=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:ie(e);return Array.isArray(o)?o:[o]}var Wn=new Set(ut);function Cr(e,o){if(e===void 0)return;if(e.length>Je)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${Je} entries.`,isRetryable:!1};let n=new Set;for(let s of e){if(n.has(s.propertyId))return{code:"invalid_data_source_query_sort",message:`Data source query sorts cannot contain duplicate property ID "${s.propertyId}".`,isRetryable:!1};if(n.add(s.propertyId),!Object.hasOwn(o.propertiesById,s.propertyId))return{code:"invalid_data_source_query_sort",message:`Data source query sort property ID "${s.propertyId}" is not defined in the bound data source schema.`,isRetryable:!1};let c=o.propertiesById[s.propertyId];if(!Wn.has(c.type))return{code:"invalid_data_source_query_sort",message:`Data source query sorts do not yet support property type "${c.type}".`,isRetryable:!1}}}var Or=5;function Kn(e){let{iframe:o,getInitialState:n,handlers:s,onManifest:c,onInitialized:l,onConnectionFailure:f,onLog:y,onQueryUnsubscribed:m,sandboxOrigin:S,minBridgeProtocolVersion:I,noConnectTimeoutMs:j,initialStateTimeoutMs:k,noInitResultTimeoutMs:G}=e,W=Math.max(I??3,3),T={},B=!1,q,se,$=5,R=new Ae(u=>{m?.(u)});function N(u,C){y?.(u,C)}function A(u){let C=v.status;switch(C){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"error":break;case"stopped":return;default:return ie(C)}let w=Yt(u,$);N("out",w),o.contentWindow?.postMessage(w,S)}function J(u){A(fe(we,u))}function ee(u){A(u)}function _(u){let C=v.status;switch(C){case"initialized":A(fe(Ht,u));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"error":case"stopped":return;default:ie(C)}}async function ue(u,C){if(C===void 0)return;let w=await C(u);_({type:`${u.type}Result`,requestId:u.requestId,...w})}function je(u){let C=u.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"error",error:u.response.error}:{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"success",items:u.response.items,hasMore:u.response.hasMore};_(C)}async function he(u,C=R.subscribe(u)){try{let w=Zn(se,u.dataSourceId),ce=Yn(u,w);if(ce!==void 0){R.isCurrent(u.subscriptionId,C)&&(R.unsubscribe(u.subscriptionId),je({subscriptionId:u.subscriptionId,response:{status:"error",error:ce}}));return}let Te=await s.queryDataSource(u);if(!R.isCurrent(u.subscriptionId,C))return;Te.status==="error"&&!Te.error.isRetryable&&R.unsubscribe(u.subscriptionId),je({subscriptionId:u.subscriptionId,response:Te})}finally{let w=R.finish(u.subscriptionId,C);w!==void 0&&he(w.message,w.token)}}function ae(u){v.status==="stopped"||v.status==="error"||(Object.assign(T,u),g())}function g(){if(v.status!=="initialized")return;let u=T;T={},u.theme!==void 0&&_({type:"themeChanged",theme:u.theme}),u.contrastMode!==void 0&&_({type:"contrastModeChanged",contrastMode:u.contrastMode}),u.parent!==void 0&&_({type:"parentChanged",parent:u.parent}),u.page!==void 0&&_({type:"pageChanged",page:u.page}),u.dataSources!==void 0&&_({type:"dataSourcesChanged",dataSources:u.dataSources}),u.currentUser!==void 0&&_({type:"currentUserChanged",currentUser:u.currentUser})}let v=Zt({async prepareInit(u){$=u.bridgeProtocolVersion;let C=await n(u);return v.status!=="preparingInit"?C:V(C)},sendInitMessage:J,warn:u=>N("warn",u),flushPendingHostStateChanges:g,minBridgeProtocolVersion:W,noConnectTimeoutMs:j,initialStateTimeoutMs:k,noInitResultTimeoutMs:G,stopHostWithFailure:Ke,onInitResult(u){u.status==="success"&&q!==void 0&&l?.({manifest:q,initialHeight:u.initialHeight})},onConnectionFailure:f});function V(u){if(u.status==="error")return u;q=fe(pe,u.initialState.manifest),c?.(q);let C={...u.initialState,...T};T={};let w={...fe(rt(er,["manifest"]),C),manifest:q};if($<Or&&w.page.type==="unavailable")return{status:"error",error:Xe()};let ce=Pr(w.manifest,w.dataSources);return ce!==void 0?{status:"error",error:ce}:(se=w.dataSources,B=!0,{status:"success",initialState:w})}let K=xr({iframe:o,sandboxOrigin:S,getInitStatus:()=>v.status,emit:N,sendNack:ee,onInvalidConnect:v.handleInvalidConnect,onInvalidInitResult:v.handleInvalidInitResult,onConnect:v.handleConnect,onInitResult:v.handleInitResult,onQueryDataSource:he,onUnsubscribeDataSourceQuery:u=>R.unsubscribe(u.subscriptionId),onCreatePage:u=>ue(u,s.createPage),onGetPage:u=>ue(u,s.getPage),onOpenPage:u=>ue(u,s.openPage),onGetUser:u=>ue(u,s.getUser),onListUsers:u=>ue(u,s.listUsers),onUpdatePage:u=>ue(u,s.updatePage),onResize:u=>s.resize?.(u)});window.addEventListener("message",K),o.addEventListener("load",v.onIframeLoad);function Be(){window.removeEventListener("message",K),o.removeEventListener("load",v.onIframeLoad),v.stop(),R.unsubscribeAll()}function Ke(u){Be(),N("warn",u),f?.(u)}return{stop:Be,setTheme(u){ae({theme:u})},setContrastMode(u){ae({contrastMode:u})},setParent(u){ae({parent:u})},setPage(u){if(u.type==="unavailable"&&$<Or&&(v.status==="preparingInit"&&B||v.status==="waitingForInitResult"||v.status==="initialized")){Ke({...Xe(),phase:"runtime",source:"host"});return}ae({page:u})},setCurrentUser(u){ae({currentUser:u})},setDataSources(u){let C={bindings:fe(le,u.bindings)};if(v.hasConnectedSandbox&&q!==void 0&&Pr(q,C)!==void 0){N("warn",{message:"Ignored invalid data source bindings update",payload:C});return}se=C,ae({dataSources:C})},refreshQuery({dataSourceId:u}){if(v.status!=="initialized")return;let C=fe(Y,u),w=R.refresh(C);if(w===void 0){N("warn",`No active query exists for data source "${u}"`);return}for(let ce of w)he(ce.message,ce.token)}}}function Zn(e,o){return Object.values(e?.bindings??{}).find(n=>n.collectionPointer?.id===o)?.collectionSchema}function Pr(e,o){for(let[n,s]of Object.entries(e.dataSources)){let c=o.bindings[n];if(c?.collectionPointer===void 0||c.collectionSchema===void 0)return Qt();for(let[l,f]of Object.entries(s.properties??{})){let y=c.propertyIdsByKey?.[l];if(y===void 0)return $t();if(c.collectionSchema.propertiesById[y]?.type!==f.type)return Xt()}}}function Yn(e,o){return o===void 0?e.filter===void 0&&(e.sorts?.length??0)===0?void 0:{code:"data_source_schema_unavailable",message:"You cannot query this data source with filters or sorts because its schema is unavailable.",isRetryable:!1}:_r(e.filter,o)??Cr(e.sorts,o)}export{Kn as createCustomBlockHost,jr as getAutoBoundPropertyIdsByKey};
1
+ function jr(e){let{manifestProperties:i,propertySchemasById:n}=e,s=[];for(let[c,l]of Object.entries(i)){let f=Br({propertyKey:c,manifestProperty:l,propertySchemasById:n});f!==void 0&&s.push([c,f])}return Object.fromEntries(s)}function Br(e){let{propertyKey:i,manifestProperty:n,propertySchemasById:s}=e,c=Ze(n.name),l=Object.entries(s).filter(([f,y])=>y.type===n.type&&(f===i||Ze(y.name)===c));return l.length===1?l[0][0]:void 0}function Ze(e){return e.trim().toLowerCase()}var Me,Mr={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function qe(e){return!e&&!Me?Mr:{lang:e?.lang??Me?.lang,message:e?.message,abortEarly:e?.abortEarly??Me?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Me?.abortPipeEarly}}var Rr;function Dr(e){return Rr?.get(e)}var wr;function Ar(e){return wr?.get(e)}var Tr;function qr(e,i){return Tr?.get(e)?.get(i)}function ge(e){let i=typeof e;return i==="string"?`"${e}"`:i==="number"||i==="bigint"||i==="boolean"?`${e}`:i==="object"||i==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":i}function M(e,i,n,s,c){let l=c&&"input"in c?c.input:n.value,f=c?.expected??e.expects??null,y=c?.received??ge(l),m={kind:e.kind,type:e.type,input:l,expected:f,received:y,message:`Invalid ${i}: ${f?`Expected ${f} but r`:"R"}eceived ${y}`,requirement:e.requirement,path:c?.path,issues:c?.issues,lang:s.lang,abortEarly:s.abortEarly,abortPipeEarly:s.abortPipeEarly},S=e.kind==="schema",I=c?.message??e.message??qr(e.reference,m.lang)??(S?Ar(m.lang):null)??s.message??Dr(m.lang);I!==void 0&&(m.message=typeof I=="function"?I(m):I),S&&(n.typed=!1),n.issues?n.issues.push(m):n.issues=[m]}var Ye=new WeakMap;function F(e){let i=Ye.get(e);return i||(i={version:1,vendor:"valibot",validate(n){return e["~run"]({value:n},qe())}},Ye.set(e,i)),i}function Nr(e,i){return Object.prototype.hasOwnProperty.call(e,i)&&i!=="__proto__"&&i!=="prototype"&&i!=="constructor"}function Ne(e,i){let n=[...new Set(e)];return n.length>1?`(${n.join(` ${i} `)})`:n[0]??"never"}var Fr=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function te(e){return{kind:"transformation",type:"brand",reference:te,async:!1,name:e,"~run"(i){return i}}}function be(e){return{kind:"validation",type:"finite",reference:be,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(i,n){return i.typed&&!this.requirement(i.value)&&M(this,"finite",i,n),i}}}function Re(e,i){return{kind:"validation",type:"max_length",reference:Re,async:!1,expects:`<=${e}`,requirement:e,message:i,"~run"(n,s){return n.typed&&n.value.length>this.requirement&&M(this,"length",n,s,{received:`${n.value.length}`}),n}}}function ke(e,i){return{kind:"validation",type:"min_length",reference:ke,async:!1,expects:`>=${e}`,requirement:e,message:i,"~run"(n,s){return n.typed&&n.value.length<this.requirement&&M(this,"length",n,s,{received:`${n.value.length}`}),n}}}function Se(e,i){return{kind:"validation",type:"min_value",reference:Se,async:!1,expects:`>=${e instanceof Date?e.toJSON():ge(e)}`,requirement:e,message:i,"~run"(n,s){return n.typed&&!(n.value>=this.requirement)&&M(this,"value",n,s,{received:n.value instanceof Date?n.value.toJSON():ge(n.value)}),n}}}var Ur={abortEarly:!0};function tt(e,i,n){return typeof e.fallback=="function"?e.fallback(i,n):e.fallback}function De(e,i,n){return typeof e.default=="function"?e.default(i,n):e.default}function O(e,i){return{kind:"schema",type:"array",reference:O,expects:"Array",async:!1,item:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(Array.isArray(c)){n.typed=!0,n.value=[];for(let l=0;l<c.length;l++){let f=c[l],y=this.item["~run"]({value:f},s);if(y.issues){let m={type:"array",origin:"value",input:c,key:l,value:f};for(let S of y.issues)S.path?S.path.unshift(m):S.path=[m],n.issues?.push(S);if(n.issues||(n.issues=y.issues),s.abortEarly){n.typed=!1;break}}y.typed||(n.typed=!1),n.value.push(y.value)}}else M(this,"type",n,s);return n}}}function b(e){return{kind:"schema",type:"boolean",reference:b,expects:"boolean",async:!1,message:e,get"~standard"(){return F(this)},"~run"(i,n){return typeof i.value=="boolean"?i.typed=!0:M(this,"type",i,n),i}}}function o(e,i){return{kind:"schema",type:"literal",reference:o,expects:ge(e),async:!1,literal:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){return n.value===this.literal?n.typed=!0:M(this,"type",n,s),n}}}function Fe(e){return{kind:"schema",type:"nan",reference:Fe,expects:"NaN",async:!1,message:e,get"~standard"(){return F(this)},"~run"(i,n){return Number.isNaN(i.value)?i.typed=!0:M(this,"type",i,n),i}}}function Z(e,i){return{kind:"schema",type:"nullable",reference:Z,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:i,get"~standard"(){return F(this)},"~run"(n,s){return n.value===null&&(this.default!==void 0&&(n.value=De(this,n,s)),n.value===null)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function E(e){return{kind:"schema",type:"number",reference:E,expects:"number",async:!1,message:e,get"~standard"(){return F(this)},"~run"(i,n){return typeof i.value=="number"&&!isNaN(i.value)?i.typed=!0:M(this,"type",i,n),i}}}function r(e,i){return{kind:"schema",type:"object",reference:r,expects:"Object",async:!1,entries:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(c&&typeof c=="object"){n.typed=!0,n.value={};for(let l in this.entries){let f=this.entries[l];if(l in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let y=l in c?c[l]:De(f),m=f["~run"]({value:y},s);if(m.issues){let S={type:"object",origin:"value",input:c,key:l,value:y};for(let I of m.issues)I.path?I.path.unshift(S):I.path=[S],n.issues?.push(I);if(n.issues||(n.issues=m.issues),s.abortEarly){n.typed=!1;break}}m.typed||(n.typed=!1),n.value[l]=m.value}else if(f.fallback!==void 0)n.value[l]=tt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(M(this,"key",n,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}}else M(this,"type",n,s);return n}}}function a(e,i){return{kind:"schema",type:"optional",reference:a,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:i,get"~standard"(){return F(this)},"~run"(n,s){return n.value===void 0&&(this.default!==void 0&&(n.value=De(this,n,s)),n.value===void 0)?(n.typed=!0,n):this.wrapped["~run"](n,s)}}}function D(e,i){return{kind:"schema",type:"picklist",reference:D,expects:Ne(e.map(ge),"|"),async:!1,options:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){return this.options.includes(n.value)?n.typed=!0:M(this,"type",n,s),n}}}function U(e,i,n){return{kind:"schema",type:"record",reference:U,expects:"Object",async:!1,key:e,value:i,message:n,get"~standard"(){return F(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){s.typed=!0,s.value={};for(let f in l)if(Nr(l,f)){let y=l[f],m=this.key["~run"]({value:f},c);if(m.issues){let I={type:"object",origin:"key",input:l,key:f,value:y};for(let j of m.issues)j.path=[I],s.issues?.push(j);if(s.issues||(s.issues=m.issues),c.abortEarly){s.typed=!1;break}}let S=this.value["~run"]({value:y},c);if(S.issues){let I={type:"object",origin:"value",input:l,key:f,value:y};for(let j of S.issues)j.path?j.path.unshift(I):j.path=[I],s.issues?.push(j);if(s.issues||(s.issues=S.issues),c.abortEarly){s.typed=!1;break}}(!m.typed||!S.typed)&&(s.typed=!1),m.typed&&(s.value[m.value]=S.value)}}else M(this,"type",s,c);return s}}}function p(e,i){return{kind:"schema",type:"strict_object",reference:p,expects:"Object",async:!1,entries:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){let c=n.value;if(c&&typeof c=="object"){n.typed=!0,n.value={};for(let l in this.entries){let f=this.entries[l];if(l in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let y=l in c?c[l]:De(f),m=f["~run"]({value:y},s);if(m.issues){let S={type:"object",origin:"value",input:c,key:l,value:y};for(let I of m.issues)I.path?I.path.unshift(S):I.path=[S],n.issues?.push(I);if(n.issues||(n.issues=m.issues),s.abortEarly){n.typed=!1;break}}m.typed||(n.typed=!1),n.value[l]=m.value}else if(f.fallback!==void 0)n.value[l]=tt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(M(this,"key",n,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}if(!n.issues||!s.abortEarly){for(let l in c)if(!(l in this.entries)){M(this,"key",n,s,{input:l,expected:"never",path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]});break}}}else M(this,"type",n,s);return n}}}function t(e){return{kind:"schema",type:"string",reference:t,expects:"string",async:!1,message:e,get"~standard"(){return F(this)},"~run"(i,n){return typeof i.value=="string"?i.typed=!0:M(this,"type",i,n),i}}}function et(e){let i;if(e)for(let n of e)if(i)for(let s of n.issues)i.push(s);else i=n.issues;return i}function x(e,i){return{kind:"schema",type:"union",reference:x,expects:Ne(e.map(n=>n.expects),"|"),async:!1,options:e,message:i,get"~standard"(){return F(this)},"~run"(n,s){let c,l,f;for(let y of this.options){let m=y["~run"]({value:n.value},s);if(m.typed)if(m.issues)l?l.push(m):l=[m];else{c=m;break}else f?f.push(m):f=[m]}if(c)return c;if(l){if(l.length===1)return l[0];M(this,"type",n,s,{issues:et(l)}),n.typed=!0}else{if(f?.length===1)return f[0];M(this,"type",n,s,{issues:et(f)})}return n}}}function Ie(){return{kind:"schema",type:"unknown",reference:Ie,expects:"unknown",async:!1,get"~standard"(){return F(this)},"~run"(e){return e.typed=!0,e}}}function h(e,i,n){return{kind:"schema",type:"variant",reference:h,expects:"Object",async:!1,key:e,options:i,message:n,get"~standard"(){return F(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){let f,y=0,m=this.key,S=[],I=(j,k)=>{for(let G of j.options){if(G.type==="variant")I(G,new Set(k).add(G.key));else{let W=!0,T=0;for(let B of k){let q=G.entries[B];if(B in l?q["~run"]({typed:!1,value:l[B]},Ur).issues:q.type!=="exact_optional"&&q.type!=="optional"&&q.type!=="nullish"){W=!1,m!==B&&(y<T||y===T&&B in l&&!(m in l))&&(y=T,m=B,S=[]),m===B&&S.push(G.entries[B].expects);break}T++}if(W){let B=G["~run"]({value:l},c);(!f||!f.typed&&B.typed)&&(f=B)}}if(f&&!f.issues)break}};if(I(this,new Set([this.key])),f)return f;M(this,"type",s,c,{input:l[m],expected:Ne(S,"|"),path:[{type:"object",origin:"value",input:l,key:m,value:l[m]}]})}else M(this,"type",s,c);return s}}}function rt(e,i){let n={...e.entries};for(let s of i)delete n[s];return{...e,entries:n,get"~standard"(){return F(this)}}}function fe(e,i,n){let s=e["~run"]({value:i},qe(n));if(s.issues)throw new Fr(s.issues);return s.value}function z(...e){return{...e[0],pipe:e,get"~standard"(){return F(this)},"~run"(i,n){for(let s of e)if(s.kind!=="metadata"){if(i.issues&&(s.kind==="schema"||s.kind==="transformation")){i.typed=!1;break}(!i.issues||!n.abortEarly&&!n.abortPipeEarly)&&(i=s["~run"](i,n))}return i}}}function xe(e,i,n){let s=e["~run"]({value:i},qe(n));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var re=z(t(),te("NotionBlockId")),Y=z(t(),te("NotionDataSourceId")),H=z(t(),te("NotionPageId")),nt=z(t(),te("NotionAgentId")),ot=z(t(),te("NotionSpaceId"));var it=D(["default","gray","brown","orange","yellow","green","blue","purple","pink","red","gray_background","brown_background","orange_background","yellow_background","green_background","blue_background","purple_background","pink_background","red_background","default_background"]),Ue=r({id:t(),name:t(),color:a(it),description:a(t())}),zr=r({id:t(),name:t(),color:a(it),option_ids:O(t())}),Hr=r({synced_property_id:t(),synced_property_name:t()}),P=r({name:t(),description:a(t())}),Gr=["title","rich_text","number","checkbox","url","email","phone_number","select","multi_select","status","date","people","files","unique_id","relation","place","formula","rollup","button","verification","last_visited_time","location","created_time","last_edited_time","created_by","last_edited_by"],st=D(Gr),ut=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],ze=h("type",[r({...P.entries,type:o("title")}),r({...P.entries,type:o("rich_text")}),r({...P.entries,type:o("number")}),r({...P.entries,type:o("checkbox")}),r({...P.entries,type:o("url")}),r({...P.entries,type:o("email")}),r({...P.entries,type:o("phone_number")}),r({...P.entries,type:o("select"),options:O(Ue)}),r({...P.entries,type:o("multi_select"),options:O(Ue)}),r({...P.entries,type:o("status"),options:O(Ue),groups:O(zr)}),r({...P.entries,type:o("date")}),r({...P.entries,type:o("people")}),r({...P.entries,type:o("files")}),r({...P.entries,type:o("unique_id")}),r({...P.entries,type:o("relation"),data_source_id:a(t()),dual_property:a(Hr)}),r({...P.entries,type:o("place")}),r({...P.entries,type:o("formula")}),r({...P.entries,type:o("rollup")}),r({...P.entries,type:o("button")}),r({...P.entries,type:o("verification")}),r({...P.entries,type:o("last_visited_time")}),r({...P.entries,type:o("location")}),r({...P.entries,type:o("created_time")}),r({...P.entries,type:o("last_edited_time")}),r({...P.entries,type:o("created_by")}),r({...P.entries,type:o("last_edited_by")})]);var at={created_time:{type:"created_time",name:"Created time"},last_edited_time:{type:"last_edited_time",name:"Last edited time"},created_by:{type:"created_by",name:"Created by"},last_edited_by:{type:"last_edited_by",name:"Last edited by"}};var ct=r({id:Y,table:t(),spaceId:a(ot)}),lt=r({id:a(Y),propertiesById:U(t(),ze)}),uo=r({key:t(),collectionPointer:a(ct),collectionSchema:a(lt),propertyIdsByKey:U(t(),a(t())),propertySchemasById:U(t(),ze)}),Lr=r({collectionPointer:a(ct),collectionSchema:a(lt),propertyIdsByKey:a(U(t(),a(t())))}),le=U(t(),Lr);var Vr=h("type",[r({type:o("emoji"),emoji:t()}),r({type:o("external"),url:t()})]),Qr=r({name:t(),description:a(t()),type:st}),$r=r({name:t(),description:a(t()),icon:a(Vr),properties:a(U(t(),Qr),{})}),pe=r({version:o(1),name:a(t()),description:a(t()),slashCommand:a(t()),icon:a(r({type:o("emoji"),emoji:t()})),dataSources:a(U(t(),$r),{})});var me=D(["standard","high"]),pt="standard";var ft=r({type:o("contrastModeChanged"),contrastMode:me});var ne=h("type",[r({type:o("page_id"),page_id:H}),r({type:o("data_source_id"),data_source_id:Y}),r({type:o("workspace"),workspace:o(!0)}),r({type:o("block_id"),block_id:re}),r({type:o("agent_id"),agent_id:nt}),r({type:o("unavailable")})]);var ye=h("type",[r({type:o("unavailable")}),r({type:o("page"),id:H,parent:ne})]),Xr=r({type:o("emoji"),emoji:t()}),Wr=r({type:o("custom_emoji"),custom_emoji:r({id:t(),name:a(t()),url:a(t())})}),yt=r({type:o("external"),external:r({url:t()})}),vt=r({type:o("file"),file:r({url:t(),expiry_time:a(t())})}),Ge=h("type",[Xr,Wr,yt,vt]),Le=h("type",[yt,vt]),X=Z(t()),mt=U(t(),Ie()),He=x([r({id:t(),name:a(t()),color:a(t()),description:a(X)}),r({name:t(),id:a(t()),color:a(t()),description:a(X)})]),Jr=r({start:t(),end:a(X),time_zone:a(X)}),Kr=x([r({object:a(o("user")),id:t()}),r({object:o("group"),id:t(),name:a(X)})]),Zr=r({id:t()}),Yr=x([r({type:o("external"),name:t(),external:r({url:t()})}),r({type:o("file"),name:t(),file:r({url:t(),expiry_time:a(t())})})]),en=r({lat:E(),lon:E(),name:a(X),address:a(X),aws_place_id:a(X),google_place_id:a(X)}),L={id:t()},tn=h("type",[r({...L,type:o("title"),title:O(mt)}),r({...L,type:o("rich_text"),rich_text:O(mt)}),r({...L,type:o("number"),number:Z(E())}),r({...L,type:o("url"),url:X}),r({...L,type:o("email"),email:X}),r({...L,type:o("phone_number"),phone_number:X}),r({...L,type:o("checkbox"),checkbox:b()}),r({...L,type:o("select"),select:Z(He)}),r({...L,type:o("status"),status:Z(He)}),r({...L,type:o("multi_select"),multi_select:O(He)}),r({...L,type:o("date"),date:Z(Jr)}),r({...L,type:o("people"),people:O(Kr)}),r({...L,type:o("relation"),has_more:a(b()),relation:O(Zr)}),r({...L,type:o("files"),files:O(Yr)}),r({...L,type:o("place"),place:Z(en)})]),_e=U(t(),tn),ve=r({object:o("page"),id:H,parent:ne,properties:_e,created_time:a(t()),last_edited_time:a(t()),icon:a(Ge),cover:a(Le),url:a(t()),public_url:a(t()),is_archived:b(),in_trash:b()});var rn=t(),nn=r({code:rn,message:t(),isRetryable:b()}),dt=h("status",[r({type:o("createPageResult"),requestId:t(),status:o("success"),page:ve}),r({type:o("createPageResult"),requestId:t(),status:o("error"),error:nn})]);var Ve=z(t(),te("NotionUserId")),oe=r({object:o("user"),id:Ve,name:a(t()),avatar_url:Z(t()),type:o("person"),person:r({email:t()})}),ht=r({object:o("list"),results:O(oe),next_cursor:Z(t()),has_more:b(),type:o("user"),user:U(t(),Ie())});var gt=r({type:o("currentUserChanged"),currentUser:oe});var bt=r({type:o("dataSourcesChanged"),dataSources:r({bindings:le})});var on=t(),sn=r({code:on,message:t(),isRetryable:b()}),kt=r({type:o("getPage"),requestId:t(),pageId:H}),St=h("status",[r({type:o("getPageResult"),requestId:t(),status:o("success"),page:ve}),r({type:o("getPageResult"),requestId:t(),status:o("error"),error:sn})]);var un=t(),an=r({code:un,message:t(),isRetryable:b()}),It=r({type:o("getUser"),requestId:t(),userId:Ve}),xt=h("status",[r({type:o("getUserResult"),requestId:t(),status:o("success"),user:oe}),r({type:o("getUserResult"),requestId:t(),status:o("error"),error:an})]);var de=D(["light","dark"]);var cn=t(),ln=r({code:cn,message:t(),isRetryable:b()});var we=h("status",[r({type:o("init"),initializationId:t(),status:o("success"),theme:de,contrastMode:me,blockId:re,parent:ne,page:ye,manifest:pe,dataSources:r({bindings:le}),currentUser:oe}),r({type:o("init"),initializationId:t(),status:o("error"),error:ln})]);var _t=r({type:o("invalidSandboxMessage"),reason:t()});var pn=t(),fn=r({code:pn,message:t(),isRetryable:b()}),Ct=r({type:o("listUsers"),requestId:t(),startCursor:a(t()),pageSize:a(E())}),Et=h("status",[r({type:o("listUsersResult"),requestId:t(),status:o("success"),list:ht}),r({type:o("listUsersResult"),requestId:t(),status:o("error"),error:fn})]);var mn=D(["side_peek","center_peek"]),yn=t(),vn=r({code:yn,message:t(),isRetryable:b()}),Ot=r({type:o("openPage"),requestId:t(),pageId:H,mode:mn}),Pt=h("status",[r({type:o("openPageResult"),requestId:t(),status:o("success"),pageId:H}),r({type:o("openPageResult"),requestId:t(),status:o("error"),error:vn})]);var jt=r({type:o("pageChanged"),page:ye});var Bt=r({type:o("parentChanged"),parent:ne});var Mt=r({unit:D(["year","month","week","day"]),value:E(),time:t(),defaultTimeZone:a(t())}),dn=r({unit:D(["hour","minute"]),value:E()}),Rt=r({unit:o("none")}),hn=x([Mt,dn]),Dt=a(x([Mt,Rt])),wt=a(x([hn,Rt])),gn=r({type:o("date"),start_date:t(),reminder:Dt}),bn=r({type:o("daterange"),start_date:t(),end_date:t(),reminder:Dt}),kn=r({type:o("datetime"),start_date:t(),start_time:t(),time_zone:a(t()),reminder:wt}),Sn=r({type:o("datetimerange"),start_date:t(),start_time:t(),end_date:t(),end_time:t(),time_zone:a(t()),reminder:wt}),At=h("type",[gn,bn,kn,Sn]);var Tt=r({id:t(),table:t()});var qt=x([t(),E(),b(),At,O(t()),O(Tt)]);var Nt=r({id:H,is_archived:b(),in_trash:b(),propertiesById:U(t(),a(qt))});var In=t(),xn=r({code:In,message:t(),isRetryable:b()}),Ft=h("status",[r({type:o("queryDataSourceResult"),subscriptionId:t(),status:o("success"),items:O(Nt),hasMore:b()}),r({type:o("queryDataSourceResult"),subscriptionId:t(),status:o("error"),error:xn})]);var Ut=r({type:o("themeChanged"),theme:de});var _n=t(),Cn=r({code:_n,message:t(),isRetryable:b()}),zt=h("status",[r({type:o("updatePageResult"),requestId:t(),status:o("success"),page:ve}),r({type:o("updatePageResult"),requestId:t(),status:o("error"),error:Cn})]);var Ht=h("type",[we,Ut,ft,Bt,jt,gt,bt,Ft,dt,St,xt,Et,Pt,zt,_t]);function Gt(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function Lt(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Qe(e){let{currentBridgeProtocolVersion:i}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version ${i?`: ${i}`:"."}`,isRetryable:!1}}function $e(e){let{currentBridgeProtocolVersion:i,minBridgeProtocolVersion:n}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${i} is not supported. Minimum supported version is ${n}.`,isRetryable:!1}}function Xe(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function Vt(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function Qt(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function $t(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function Xt(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function Wt(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function Jt(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Kt(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function ie(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function We(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var En=5e3,On=5e3,Pn=5e3;function Zt(e){let{prepareInit:i,sendInitMessage:n,warn:s,flushPendingHostStateChanges:c,minBridgeProtocolVersion:l,noConnectTimeoutMs:f=En,initialStateTimeoutMs:y=On,noInitResultTimeoutMs:m=Pn,stopHostWithFailure:S,onInitResult:I,onConnectionFailure:j}=e,k="waitingForConnect",G,W,T,B,q=!1,se=!1;function $(){G!==void 0&&(window.clearTimeout(G),G=void 0)}function R(){W!==void 0&&(window.clearTimeout(W),W=void 0)}function N(){T!==void 0&&(window.clearTimeout(T),T=void 0)}function A(g){let{initializationId:v,error:V,phase:K,source:Be}=g;switch(k){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"error":case"stopped":return;default:return ie(k)}k="error",B=v,$(),R(),n({type:"init",initializationId:v,status:"error",error:V}),j?.({...V,phase:K,source:Be})}async function J(g){if(k==="waitingForConnect"){k="preparingInit",B=g.initializationId,$(),W=window.setTimeout(()=>{if(k!=="preparingInit")return;let v=Vt();s({...v,initializationId:g.initializationId}),A({initializationId:g.initializationId,error:v,phase:"init",source:"host"})},y);try{let v=await i(g);if(k!=="preparingInit")return;if(R(),v.status==="error"){A({initializationId:g.initializationId,error:v.error,phase:"init",source:"host"});return}k="waitingForInitResult";let V={type:"init",initializationId:g.initializationId,status:"success",theme:v.initialState.theme,contrastMode:v.initialState.contrastMode??pt,blockId:v.initialState.blockId,parent:v.initialState.parent,page:v.initialState.page,currentUser:v.initialState.currentUser,manifest:v.initialState.manifest,dataSources:v.initialState.dataSources};n(V),T=window.setTimeout(()=>{if(k!=="waitingForInitResult")return;k="error";let K=Wt();j?.({...K,phase:"initResult",source:"host"}),s({...K,initializationId:g.initializationId})},m)}catch(v){if(k!=="preparingInit")return;s({message:"Failed to prepare custom block initialization",error:v}),A({initializationId:g.initializationId,error:Kt(),phase:"init",source:"host"})}}}function ee(g){if(k!=="stopped"&&k==="waitingForConnect"){if(!We(g.bridgeProtocolVersion)){let v=Qe({currentBridgeProtocolVersion:g.bridgeProtocolVersion});A({initializationId:g.initializationId,error:v,phase:"connect",source:"host"});return}if(g.bridgeProtocolVersion<l){let v=$e({currentBridgeProtocolVersion:g.bridgeProtocolVersion,minBridgeProtocolVersion:l});A({initializationId:g.initializationId,error:v,phase:"connect",source:"host"});return}if(g.status==="error"){A({initializationId:g.initializationId,error:g.error,phase:"connect",source:"sandbox"});return}se=!0,J(g)}}function _(g){if(k==="stopped"||k!=="waitingForConnect")return"handled";let{initializationId:v,bridgeProtocolVersion:V}=g;if(v===void 0)return"nack";let K=g.error;return V!==void 0&&(We(V)?V<l&&(K=$e({currentBridgeProtocolVersion:V,minBridgeProtocolVersion:l})):K=Qe({currentBridgeProtocolVersion:void 0})),A({initializationId:v,error:K,phase:"connect",source:"host"}),"handled"}function ue(g){let{initializationId:v,error:V}=g;k!=="waitingForInitResult"||v===void 0||v!==B||($(),N(),k="error",s(V),j?.({...V,phase:"initResult",source:"host"}))}function je(){if(k!=="stopped"){if(q){S({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}q=!0,$(),k==="waitingForConnect"&&(G=window.setTimeout(()=>{if(k!=="waitingForConnect")return;k="error";let g=Gt();s(g),j?.({...g,phase:"connect",source:"host"})},f))}}function he(g){if(k!=="waitingForInitResult"||g.initializationId!==B){s({message:"Ignored stale or unexpected initResult",payload:g});return}N(),k=g.status==="success"?"initialized":"error",g.status==="success"?c():j?.({...g.error,phase:"initResult",source:"sandbox"}),I?.(g)}function ae(){k="stopped",$(),R(),N()}return{get status(){return k},get hasConnectedSandbox(){return se},handleConnect:ee,handleInitResult:he,handleInvalidConnect:_,handleInvalidInitResult:ue,onIframeLoad:je,stop:ae}}function Yt(e,i){return i>=5||!(e.type==="init"&&e.status==="success"||e.type==="dataSourcesChanged")?e:{...e,dataSources:{bindings:Object.fromEntries(Object.entries(e.dataSources.bindings).map(([s,c])=>[s,{...c,collectionSchema:{...c.collectionSchema,propertiesById:{...c.collectionSchema?.propertiesById,...at}}}]))}}}var er=r({theme:de,contrastMode:a(me),blockId:re,parent:ne,page:ye,manifest:pe,dataSources:r({bindings:le}),currentUser:oe});function tr(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var rr=r({code:t(),message:t(),isRetryable:b()});var nr={type:o("connect"),initializationId:t(),bridgeProtocolVersion:E(),sdkVersion:t()},or=h("status",[r({status:o("success"),manifest:a(pe),...nr}),r({status:o("error"),error:rr,...nr})]);var jn=h("type",[r({type:o("start")}),r({type:o("end")}),r({type:o("before"),blockId:re}),r({type:o("after"),blockId:re})]),Bn=h("type",[r({type:o("page_id"),page_id:H}),r({type:o("data_source_id"),data_source_id:Y})]),ir=r({type:o("createPage"),requestId:t(),parent:Bn,properties:_e,position:a(jn)});var Mn=t(),Rn=r({code:Mn,message:t(),isRetryable:b()}),sr=h("status",[r({type:o("initResult"),initializationId:t(),status:o("success"),initialHeight:a(z(E(),be(),Se(0)))}),r({type:o("initResult"),initializationId:t(),status:o("error"),error:Rn})]);var ur=r({type:o("invalidHostMessage"),reason:t()});var ar=D(["ascending","descending"]);var Pe=x([p({is_empty:o(!0)}),p({is_not_empty:o(!0)})]),Oe=x([t(),O(t())]),cr=p({object:D(["user","group"]),id:z(t(),ke(1))}),Dn=x([p({contains:cr}),p({does_not_contain:cr}),Pe]),lr=p({object:o("user"),id:z(t(),ke(1),Re(2e3))}),wn=x([p({contains:lr}),p({does_not_contain:lr}),p({is_empty:o(!0)}),p({is_not_empty:o(!0)})]),Ce=x([p({equals:t()}),p({does_not_equal:t()}),p({contains:t()}),p({does_not_contain:t()}),p({starts_with:t()}),p({ends_with:t()}),Pe]),An=x([p({equals:E()}),p({does_not_equal:E()}),p({greater_than:E()}),p({less_than:E()}),p({greater_than_or_equal_to:E()}),p({less_than_or_equal_to:E()}),Pe]),Tn=x([p({equals:b()}),p({does_not_equal:b()})]),yr=x([p({equals:Oe}),p({does_not_equal:Oe}),Pe]),pr=D(["To-do","In progress","Complete","Current","Future"]),fr=x([pr,z(O(pr),ke(1),Re(5))]),qn=x([p({group_equals:fr}),p({group_does_not_equal:fr})]),Nn=x([yr,qn]),Fn=x([p({contains:Oe}),p({contains_all:Oe}),p({does_not_contain:Oe}),Pe]),Q=D(["start_date","end_date"]),Un=D(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Ee=x([Un,t()]),zn=x([p({target:a(Q),equals:Ee}),p({target:a(Q),before:Ee}),p({target:a(Q),after:Ee}),p({target:a(Q),on_or_before:Ee}),p({target:a(Q),on_or_after:Ee}),p({target:a(Q),this_week:p({})}),p({target:a(Q),past_week:p({})}),p({target:a(Q),past_month:p({})}),p({target:a(Q),past_year:p({})}),p({target:a(Q),next_week:p({})}),p({target:a(Q),next_month:p({})}),p({target:a(Q),next_year:p({})}),p({target:a(Q),is_empty:o(!0)}),p({target:a(Q),is_not_empty:o(!0)})]),mr=x([p({propertyId:t(),created_by:wn}),p({propertyId:t(),title:Ce}),p({propertyId:t(),rich_text:Ce}),p({propertyId:t(),url:Ce}),p({propertyId:t(),email:Ce}),p({propertyId:t(),phone_number:Ce}),p({propertyId:t(),number:An}),p({propertyId:t(),checkbox:Tn}),p({propertyId:t(),select:yr}),p({propertyId:t(),multi_select:Fn}),p({propertyId:t(),status:Nn}),p({propertyId:t(),date:zn}),p({propertyId:t(),people:Dn})]),Hn=x([mr,p({and:O(mr)})]),Je=10,Gn=p({propertyId:t(),direction:ar}),vr=r({type:o("queryDataSource"),subscriptionId:t(),dataSourceId:Y,limit:E(),filter:a(Hn),sorts:a(O(Gn))});var dr=r({type:o("resize"),height:z(E(),be(),Se(0))});var hr=r({type:o("unsubscribeDataSourceQuery"),subscriptionId:t()});var gr=r({type:o("updatePage"),requestId:t(),pageId:H,properties:a(_e),icon:a(Ge),cover:a(Le),archived:a(b())});var br=h("type",[or,sr,vr,hr,ir,kt,It,Ct,Ot,gr,dr,ur]);function kr(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function Sr(e){let i=kr(e);return i==="invalidHostMessage"||i==="invalidSandboxMessage"?{incomingType:i}:{incomingType:i,nack:{type:"invalidSandboxMessage",reason:Ln(i)}}}function Ln(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var Ir=r({initializationId:t()}),Vn=r({bridgeProtocolVersion:x([E(),Fe()])});function xr(e){let{iframe:i,sandboxOrigin:n,getInitStatus:s,emit:c,sendNack:l,onInvalidConnect:f,onInvalidInitResult:y,onConnect:m,onInitResult:S,onQueryDataSource:I,onUnsubscribeDataSourceQuery:j,onCreatePage:k,onGetPage:G,onOpenPage:W,onGetUser:T,onListUsers:B,onUpdatePage:q,onResize:se}=e;function $(R,N){c("warn",{message:"Ignored unsupported sandbox message",payload:R,issues:N});let A=Sr(R);if(A.incomingType==="connect"){let J=xe(Ir,R),ee=xe(Vn,R);if(f({initializationId:J.success?J.output.initializationId:void 0,error:Lt(),bridgeProtocolVersion:ee.success?ee.output.bridgeProtocolVersion:void 0})==="handled")return}if(A.incomingType==="initResult"){let J=xe(Ir,R);y({initializationId:J.success?J.output.initializationId:void 0,error:Jt()})}A.nack!==void 0&&s()!=="stopped"&&l(A.nack)}return function(N){let A=N.source===i.contentWindow,J=N.origin===n;if(!A||!J)return;let ee=xe(br,N.data);if(!ee.success){$(N.data,ee.issues);return}let _=ee.output;if(!tr(_)&&s()!=="initialized"){c("warn",{message:`Ignored ${_.type} before initialization completed`,payload:_});return}switch(c("in",_),_.type){case"connect":m(_);return;case"initResult":S(_);return;case"queryDataSource":I(_);return;case"unsubscribeDataSourceQuery":j(_);return;case"createPage":k(_);return;case"openPage":W(_);return;case"getPage":G(_);return;case"getUser":T(_);return;case"listUsers":B(_);return;case"updatePage":q(_);return;case"resize":se(_);return;case"invalidHostMessage":return;default:ie(_)}}}var Ae=class{constructor(i){this.onUnsubscribe=i}onUnsubscribe;bySubscriptionId=new Map;subscribe(i){this.unsubscribe(i.subscriptionId);let n={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(i.subscriptionId,{message:i,token:n,isRefreshing:!0,shouldRefreshAgain:!1}),n}isCurrent(i,n){return this.bySubscriptionId.get(i)?.token===n}unsubscribe(i){this.bySubscriptionId.delete(i)&&this.onUnsubscribe(i)}refresh(i){let n=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===i){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,n.push({message:c.message,token:c.token})}return s?n:void 0}finish(i,n){let s=this.bySubscriptionId.get(i);if(s?.token===n&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let i of this.bySubscriptionId.keys())this.unsubscribe(i)}};function _r(e,i){if(e===void 0)return;let n="and"in e?e.and:[e];for(let s of n){let c=Qn(s,i);if(c!==void 0)return c}}function Qn(e,i){if(!Object.hasOwn(i.propertiesById,e.propertyId))return{code:"invalid_data_source_query_filter",message:`Data source query filter property ID "${e.propertyId}" is not defined in the bound data source schema.`,isRetryable:!1};let n=i.propertiesById[e.propertyId],s=Object.keys(e).find(y=>y!=="propertyId");if(s!==n.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${n.type}".`,isRetryable:!1};if("status"in e&&n.type==="status"){let y=e.status;if("group_equals"in y||"group_does_not_equal"in y){let m="group_equals"in y?y.group_equals:y.group_does_not_equal,I=(Array.isArray(m)?m:[m]).find(j=>!n.groups.some(k=>k.name===j));return I===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${I}".`,isRetryable:!1}}}let c=$n(e);if(c===void 0||n.type!==c.propertyType)return;let l=new Set(n.options.map(y=>y.name)),f=Xn(c.operator).find(y=>!l.has(y));if(f!==void 0)return{code:"invalid_data_source_query_filter",message:`Data source query filter option "${f}" is not defined for property "${e.propertyId}".`,isRetryable:!1}}function $n(e){if("select"in e)return{propertyType:"select",operator:e.select};if("multi_select"in e)return{propertyType:"multi_select",operator:e.multi_select};if("status"in e){let i=e.status;return"group_equals"in i||"group_does_not_equal"in i?void 0:{propertyType:"status",operator:i}}}function Xn(e){let i;if("equals"in e)i=e.equals;else if("does_not_equal"in e)i=e.does_not_equal;else if("contains"in e)i=e.contains;else if("contains_all"in e)i=e.contains_all;else if("does_not_contain"in e)i=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:ie(e);return Array.isArray(i)?i:[i]}var Wn=new Set(ut);function Cr(e,i){if(e===void 0)return;if(e.length>Je)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${Je} entries.`,isRetryable:!1};let n=new Set;for(let s of e){if(n.has(s.propertyId))return{code:"invalid_data_source_query_sort",message:`Data source query sorts cannot contain duplicate property ID "${s.propertyId}".`,isRetryable:!1};if(n.add(s.propertyId),!Object.hasOwn(i.propertiesById,s.propertyId))return{code:"invalid_data_source_query_sort",message:`Data source query sort property ID "${s.propertyId}" is not defined in the bound data source schema.`,isRetryable:!1};let c=i.propertiesById[s.propertyId];if(!Wn.has(c.type))return{code:"invalid_data_source_query_sort",message:`Data source query sorts do not yet support property type "${c.type}".`,isRetryable:!1}}}var Or=5;function Kn(e){let{iframe:i,getInitialState:n,handlers:s,onManifest:c,onInitialized:l,onConnectionFailure:f,onLog:y,onQueryUnsubscribed:m,sandboxOrigin:S,minBridgeProtocolVersion:I,noConnectTimeoutMs:j,initialStateTimeoutMs:k,noInitResultTimeoutMs:G}=e,W=Math.max(I??3,3),T={},B=!1,q,se,$=5,R=new Ae(u=>{m?.(u)});function N(u,C){y?.(u,C)}function A(u){let C=v.status;switch(C){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"error":break;case"stopped":return;default:return ie(C)}let w=Yt(u,$);N("out",w),i.contentWindow?.postMessage(w,S)}function J(u){A(fe(we,u))}function ee(u){A(u)}function _(u){let C=v.status;switch(C){case"initialized":A(fe(Ht,u));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"error":case"stopped":return;default:ie(C)}}async function ue(u,C){if(C===void 0)return;let w=await C(u);_({type:`${u.type}Result`,requestId:u.requestId,...w})}function je(u){let C=u.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"error",error:u.response.error}:{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"success",items:u.response.items,hasMore:u.response.hasMore};_(C)}async function he(u,C=R.subscribe(u)){try{let w=Zn(se,u.dataSourceId),ce=Yn(u,w);if(ce!==void 0){R.isCurrent(u.subscriptionId,C)&&(R.unsubscribe(u.subscriptionId),je({subscriptionId:u.subscriptionId,response:{status:"error",error:ce}}));return}let Te=await s.queryDataSource(u);if(!R.isCurrent(u.subscriptionId,C))return;Te.status==="error"&&!Te.error.isRetryable&&R.unsubscribe(u.subscriptionId),je({subscriptionId:u.subscriptionId,response:Te})}finally{let w=R.finish(u.subscriptionId,C);w!==void 0&&he(w.message,w.token)}}function ae(u){v.status==="stopped"||v.status==="error"||(Object.assign(T,u),g())}function g(){if(v.status!=="initialized")return;let u=T;T={},u.theme!==void 0&&_({type:"themeChanged",theme:u.theme}),u.contrastMode!==void 0&&_({type:"contrastModeChanged",contrastMode:u.contrastMode}),u.parent!==void 0&&_({type:"parentChanged",parent:u.parent}),u.page!==void 0&&_({type:"pageChanged",page:u.page}),u.dataSources!==void 0&&_({type:"dataSourcesChanged",dataSources:u.dataSources}),u.currentUser!==void 0&&_({type:"currentUserChanged",currentUser:u.currentUser})}let v=Zt({async prepareInit(u){$=u.bridgeProtocolVersion;let C=await n(u);return v.status!=="preparingInit"?C:V(C)},sendInitMessage:J,warn:u=>N("warn",u),flushPendingHostStateChanges:g,minBridgeProtocolVersion:W,noConnectTimeoutMs:j,initialStateTimeoutMs:k,noInitResultTimeoutMs:G,stopHostWithFailure:Ke,onInitResult(u){u.status==="success"&&q!==void 0&&l?.({manifest:q,initialHeight:u.initialHeight})},onConnectionFailure:f});function V(u){if(u.status==="error")return u;q=fe(pe,u.initialState.manifest),c?.(q);let C={...u.initialState,...T};T={};let w={...fe(rt(er,["manifest"]),C),manifest:q};if($<Or&&w.page.type==="unavailable")return{status:"error",error:Xe()};let ce=Pr(w.manifest,w.dataSources);return ce!==void 0?{status:"error",error:ce}:(se=w.dataSources,B=!0,{status:"success",initialState:w})}let K=xr({iframe:i,sandboxOrigin:S,getInitStatus:()=>v.status,emit:N,sendNack:ee,onInvalidConnect:v.handleInvalidConnect,onInvalidInitResult:v.handleInvalidInitResult,onConnect:v.handleConnect,onInitResult:v.handleInitResult,onQueryDataSource:he,onUnsubscribeDataSourceQuery:u=>R.unsubscribe(u.subscriptionId),onCreatePage:u=>ue(u,s.createPage),onGetPage:u=>ue(u,s.getPage),onOpenPage:u=>ue(u,s.openPage),onGetUser:u=>ue(u,s.getUser),onListUsers:u=>ue(u,s.listUsers),onUpdatePage:u=>ue(u,s.updatePage),onResize:u=>s.resize?.(u)});window.addEventListener("message",K),i.addEventListener("load",v.onIframeLoad);function Be(){window.removeEventListener("message",K),i.removeEventListener("load",v.onIframeLoad),v.stop(),R.unsubscribeAll()}function Ke(u){Be(),N("warn",u),f?.(u)}return{stop:Be,setTheme(u){ae({theme:u})},setContrastMode(u){ae({contrastMode:u})},setParent(u){ae({parent:u})},setPage(u){if(u.type==="unavailable"&&$<Or&&(v.status==="preparingInit"&&B||v.status==="waitingForInitResult"||v.status==="initialized")){Ke({...Xe(),phase:"runtime",source:"host"});return}ae({page:u})},setCurrentUser(u){ae({currentUser:u})},setDataSources(u){let C={bindings:fe(le,u.bindings)};if(v.hasConnectedSandbox&&q!==void 0&&Pr(q,C)!==void 0){N("warn",{message:"Ignored invalid data source bindings update",payload:C});return}se=C,ae({dataSources:C})},refreshQuery({dataSourceId:u}){if(v.status!=="initialized")return;let C=fe(Y,u),w=R.refresh(C);if(w===void 0){N("warn",`No active query exists for data source "${u}"`);return}for(let ce of w)he(ce.message,ce.token)}}}function Zn(e,i){return Object.values(e?.bindings??{}).find(n=>n.collectionPointer?.id===i)?.collectionSchema}function Pr(e,i){for(let[n,s]of Object.entries(e.dataSources)){let c=i.bindings[n];if(c?.collectionPointer===void 0||c.collectionSchema===void 0)return Qt();for(let[l,f]of Object.entries(s.properties??{})){let y=c.propertyIdsByKey?.[l];if(y===void 0)return $t();if(c.collectionSchema.propertiesById[y]?.type!==f.type)return Xt()}}}function Yn(e,i){return i===void 0?e.filter===void 0&&(e.sorts?.length??0)===0?void 0:{code:"data_source_schema_unavailable",message:"You cannot query this data source with filters or sorts because its schema is unavailable.",isRetryable:!1}:_r(e.filter,i)??Cr(e.sorts,i)}function eo(e){return(e.protocol==="http:"||e.protocol==="https:")&&(e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname.endsWith(".localhost"))&&e.username===""&&e.password===""}export{Kn as createCustomBlockHost,jr as getAutoBoundPropertyIdsByKey,eo as isLocalCustomBlockUrl};
package/dist/index.d.ts CHANGED
@@ -11,6 +11,7 @@ export type { NotionDateInput, NotionFileInput, NotionPageCover, NotionPageIcon,
11
11
  export { type AutoBindableProperty, getAutoBoundPropertyIdsByKey, } from "./autoBindProperties.js";
12
12
  export { type CustomBlockHostHandle, type CustomBlockHostOptions, createCustomBlockHost, } from "./createCustomBlockHost.js";
13
13
  export type { ConnectSuccessMessage, CustomBlockHostDataSourcesPayload, CustomBlockHostGetInitialState, CustomBlockHostInitialState, CustomBlockHostInitialStateResult, } from "./lifecycle/types.js";
14
+ export { isLocalCustomBlockUrl } from "./localBlockUrl.js";
14
15
  export type { CreatePageMessageInput, CustomBlockHostCreatePageResult, CustomBlockHostFailure, CustomBlockHostGetPageResult, CustomBlockHostGetUserResult, CustomBlockHostHandlers, CustomBlockHostListUsersResult, CustomBlockHostLogDirection, CustomBlockHostOpenPageResult, CustomBlockHostUpdatePageResult, GetPageMessageInput, GetUserMessageInput, ListUsersMessageInput, OpenPageMessageInput, QueryDataSourceMessageInput, ResizeMessageInput, UpdatePageMessageInput, } from "./messages/types.js";
15
16
  export type { CustomBlockHostQueryDataSourceResult } from "./queries/types.js";
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,YAAY,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,YAAY,EACX,iCAAiC,EACjC,iCAAiC,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,mCAAmC,EACnC,2CAA2C,EAC3C,iCAAiC,GACjC,MAAM,8DAA8D,CAAA;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,YAAY,EAAE,gBAAgB,EAAE,MAAM,wDAAwD,CAAA;AAC9F,YAAY,EAAE,eAAe,EAAE,MAAM,uDAAuD,CAAA;AAC5F,YAAY,EACX,iCAAiC,EACjC,iCAAiC,EACjC,kCAAkC,EAClC,6BAA6B,EAC7B,+BAA+B,EAC/B,+BAA+B,EAC/B,+BAA+B,EAC/B,4BAA4B,EAC5B,+BAA+B,EAC/B,oCAAoC,EACpC,0BAA0B,EAC1B,6BAA6B,EAC7B,sBAAsB,EACtB,mCAAmC,EACnC,2CAA2C,EAC3C,iCAAiC,GACjC,MAAM,8DAA8D,CAAA;AACrE,YAAY,EAAE,aAAa,EAAE,MAAM,qDAAqD,CAAA;AACxF,YAAY,EAAE,iBAAiB,EAAE,MAAM,yDAAyD,CAAA;AAChG,YAAY,EACX,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,8BAA8B,EAC9B,2BAA2B,EAC3B,iCAAiC,GACjC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,YAAY,EACX,sBAAsB,EACtB,+BAA+B,EAC/B,sBAAsB,EACtB,4BAA4B,EAC5B,4BAA4B,EAC5B,uBAAuB,EACvB,8BAA8B,EAC9B,2BAA2B,EAC3B,6BAA6B,EAC7B,+BAA+B,EAC/B,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACtB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,oCAAoC,EAAE,MAAM,oBAAoB,CAAA"}
package/dist/index.js CHANGED
@@ -1,2 +1,3 @@
1
1
  export { getAutoBoundPropertyIdsByKey, } from "./autoBindProperties.js";
2
2
  export { createCustomBlockHost, } from "./createCustomBlockHost.js";
3
+ export { isLocalCustomBlockUrl } from "./localBlockUrl.js";
@@ -77,7 +77,14 @@ export declare const customBlockHostInitialStateSchema: v.ObjectSchema<{
77
77
  }, undefined>], undefined>;
78
78
  readonly manifest: v.ObjectSchema<{
79
79
  readonly version: v.LiteralSchema<1, undefined>;
80
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
80
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
81
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
82
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
83
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
84
+ readonly type: v.LiteralSchema<"emoji", undefined>;
85
+ readonly emoji: v.StringSchema<undefined>;
86
+ }, undefined>, undefined>;
87
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
81
88
  readonly name: v.StringSchema<undefined>;
82
89
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
83
90
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -92,7 +99,7 @@ export declare const customBlockHostInitialStateSchema: v.ObjectSchema<{
92
99
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
93
100
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
94
101
  }, undefined>, undefined>, {}>;
95
- }, undefined>, undefined>;
102
+ }, undefined>, undefined>, {}>;
96
103
  }, undefined>;
97
104
  readonly dataSources: v.ObjectSchema<{
98
105
  readonly bindings: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAA;AAG3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAA;AAKjG,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAC1C,cAAc,EACd;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CACrB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU;AACrB,qEAAqE;AACnE,mBAAmB;AACrB,mEAAmE;GACjE,eAAe;AACjB,6EAA6E;GAC3E,sBAAsB;AACxB,yDAAyD;GACvD,aAAa;AACf,gFAAgF;GAC9E,OAAO;AACT,2EAA2E;GACzE,SAAS,CAAA;AAEZ,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC7D,CAAA;AAED,MAAM,MAAM,2CAA2C,GAAG;IACzD,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC9D,CAAA;AAED,eAAO,MAAM,iCAAiC;;IAE7C;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQF,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,UAAU,CACrD,OAAO,iCAAiC,CACxC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAC1C;IACA,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,EAAE,2BAA2B,CAAA;CACxC,GACD;IACA,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,wBAAwB,CAAA;CAC9B,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAC5C,OAAO,EAAE,qBAAqB,KAC1B,OAAO,CAAC,iCAAiC,CAAC,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lifecycle/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,8BAA8B,EAAE,MAAM,4DAA4D,CAAA;AAG3G,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAA;AAC1F,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mDAAmD,CAAA;AAKjG,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAE5B,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAC1C,cAAc,EACd;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,CACrB,CAAA;AAED,gEAAgE;AAChE,MAAM,MAAM,UAAU;AACrB,qEAAqE;AACnE,mBAAmB;AACrB,mEAAmE;GACjE,eAAe;AACjB,6EAA6E;GAC3E,sBAAsB;AACxB,yDAAyD;GACvD,aAAa;AACf,gFAAgF;GAC9E,OAAO;AACT,2EAA2E;GACzE,SAAS,CAAA;AAEZ,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC7D,CAAA;AAED,MAAM,MAAM,2CAA2C,GAAG;IACzD,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC9D,CAAA;AAED,eAAO,MAAM,iCAAiC;;IAE7C;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQF,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,UAAU,CACrD,OAAO,iCAAiC,CACxC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAC1C;IACA,MAAM,EAAE,SAAS,CAAA;IACjB,YAAY,EAAE,2BAA2B,CAAA;CACxC,GACD;IACA,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,wBAAwB,CAAA;CAC9B,CAAA;AAEJ,MAAM,MAAM,8BAA8B,GAAG,CAC5C,OAAO,EAAE,qBAAqB,KAC1B,OAAO,CAAC,iCAAiC,CAAC,CAAA"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks whether a URL can serve a local custom block over HTTP or HTTPS.
3
+ * Accepts localhost, any .localhost subdomain, and 127.0.0.1 without credentials.
4
+ * Local refers to the block server, not the environment where the host runs.
5
+ * Callers must separately enforce isolation from the embedding page's origin.
6
+ */
7
+ export declare function isLocalCustomBlockUrl(url: URL): boolean;
8
+ //# sourceMappingURL=localBlockUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"localBlockUrl.d.ts","sourceRoot":"","sources":["../src/localBlockUrl.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CASvD"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Checks whether a URL can serve a local custom block over HTTP or HTTPS.
3
+ * Accepts localhost, any .localhost subdomain, and 127.0.0.1 without credentials.
4
+ * Local refers to the block server, not the environment where the host runs.
5
+ * Callers must separately enforce isolation from the embedding page's origin.
6
+ */
7
+ export function isLocalCustomBlockUrl(url) {
8
+ return ((url.protocol === "http:" || url.protocol === "https:") &&
9
+ (url.hostname === "localhost" ||
10
+ url.hostname === "127.0.0.1" ||
11
+ url.hostname.endsWith(".localhost")) &&
12
+ url.username === "" &&
13
+ url.password === "");
14
+ }
@@ -37,7 +37,14 @@ export declare const manifestDataSourceSchema: v.ObjectSchema<{
37
37
  export type ManifestDataSource = v.InferOutput<typeof manifestDataSourceSchema>;
38
38
  export declare const manifestSchema: v.ObjectSchema<{
39
39
  readonly version: v.LiteralSchema<1, undefined>;
40
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
40
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
41
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
42
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
43
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
44
+ readonly type: v.LiteralSchema<"emoji", undefined>;
45
+ readonly emoji: v.StringSchema<undefined>;
46
+ }, undefined>, undefined>;
47
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
41
48
  readonly name: v.StringSchema<undefined>;
42
49
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
43
50
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -52,9 +59,9 @@ export declare const manifestSchema: v.ObjectSchema<{
52
59
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
53
60
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
54
61
  }, undefined>, undefined>, {}>;
55
- }, undefined>, undefined>;
62
+ }, undefined>, undefined>, {}>;
56
63
  }, undefined>;
57
64
  /**
58
- * Manifest declaring the data sources required by a custom block.
65
+ * Manifest describing a custom block and its required data sources.
59
66
  */
60
67
  export type CustomBlockManifest = v.InferOutput<typeof manifestSchema>;
@@ -28,5 +28,9 @@ export const manifestDataSourceSchema = v.object({
28
28
  });
29
29
  export const manifestSchema = v.object({
30
30
  version: v.literal(1),
31
- dataSources: v.record(v.string(), manifestDataSourceSchema),
31
+ name: v.optional(v.string()),
32
+ description: v.optional(v.string()),
33
+ slashCommand: v.optional(v.string()),
34
+ icon: v.optional(v.object({ type: v.literal("emoji"), emoji: v.string() })),
35
+ dataSources: v.optional(v.record(v.string(), manifestDataSourceSchema), {}),
32
36
  });
@@ -15,7 +15,14 @@ export declare const connectMessageSchema: v.VariantSchema<"status", [v.ObjectSc
15
15
  */
16
16
  readonly manifest: v.OptionalSchema<v.ObjectSchema<{
17
17
  readonly version: v.LiteralSchema<1, undefined>;
18
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
18
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
19
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
20
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
21
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
22
+ readonly type: v.LiteralSchema<"emoji", undefined>;
23
+ readonly emoji: v.StringSchema<undefined>;
24
+ }, undefined>, undefined>;
25
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
19
26
  readonly name: v.StringSchema<undefined>;
20
27
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
21
28
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -30,7 +37,7 @@ export declare const connectMessageSchema: v.VariantSchema<"status", [v.ObjectSc
30
37
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
31
38
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
32
39
  }, undefined>, undefined>, {}>;
33
- }, undefined>, undefined>;
40
+ }, undefined>, undefined>, {}>;
34
41
  }, undefined>, undefined>;
35
42
  }, undefined>, v.ObjectSchema<{
36
43
  readonly type: v.LiteralSchema<"connect", undefined>;
@@ -53,7 +53,14 @@ export declare const hostToSandboxMessageSchema: v.VariantSchema<"type", [v.Vari
53
53
  }, undefined>], undefined>;
54
54
  readonly manifest: v.ObjectSchema<{
55
55
  readonly version: v.LiteralSchema<1, undefined>;
56
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
56
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
57
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
58
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
59
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
60
+ readonly type: v.LiteralSchema<"emoji", undefined>;
61
+ readonly emoji: v.StringSchema<undefined>;
62
+ }, undefined>, undefined>;
63
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
57
64
  readonly name: v.StringSchema<undefined>;
58
65
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
59
66
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -68,7 +75,7 @@ export declare const hostToSandboxMessageSchema: v.VariantSchema<"type", [v.Vari
68
75
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
69
76
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
70
77
  }, undefined>, undefined>, {}>;
71
- }, undefined>, undefined>;
78
+ }, undefined>, undefined>, {}>;
72
79
  }, undefined>;
73
80
  readonly dataSources: v.ObjectSchema<{
74
81
  readonly bindings: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
@@ -79,7 +79,14 @@ export declare const initMessageSchema: v.VariantSchema<"status", [v.ObjectSchem
79
79
  }, undefined>], undefined>;
80
80
  readonly manifest: v.ObjectSchema<{
81
81
  readonly version: v.LiteralSchema<1, undefined>;
82
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
82
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
83
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
84
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
85
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
86
+ readonly type: v.LiteralSchema<"emoji", undefined>;
87
+ readonly emoji: v.StringSchema<undefined>;
88
+ }, undefined>, undefined>;
89
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
83
90
  readonly name: v.StringSchema<undefined>;
84
91
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
85
92
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -94,7 +101,7 @@ export declare const initMessageSchema: v.VariantSchema<"status", [v.ObjectSchem
94
101
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
95
102
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
96
103
  }, undefined>, undefined>, {}>;
97
- }, undefined>, undefined>;
104
+ }, undefined>, undefined>, {}>;
98
105
  }, undefined>;
99
106
  readonly dataSources: v.ObjectSchema<{
100
107
  readonly bindings: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
@@ -11,7 +11,14 @@ export declare const sandboxToHostMessageSchema: v.VariantSchema<"type", [v.Vari
11
11
  readonly status: v.LiteralSchema<"success", undefined>;
12
12
  readonly manifest: v.OptionalSchema<v.ObjectSchema<{
13
13
  readonly version: v.LiteralSchema<1, undefined>;
14
- readonly dataSources: v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
14
+ readonly name: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
15
+ readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
16
+ readonly slashCommand: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
17
+ readonly icon: v.OptionalSchema<v.ObjectSchema<{
18
+ readonly type: v.LiteralSchema<"emoji", undefined>;
19
+ readonly emoji: v.StringSchema<undefined>;
20
+ }, undefined>, undefined>;
21
+ readonly dataSources: v.OptionalSchema<v.RecordSchema<v.StringSchema<undefined>, v.ObjectSchema<{
15
22
  readonly name: v.StringSchema<undefined>;
16
23
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
17
24
  readonly icon: v.OptionalSchema<v.VariantSchema<"type", [v.ObjectSchema<{
@@ -26,7 +33,7 @@ export declare const sandboxToHostMessageSchema: v.VariantSchema<"type", [v.Vari
26
33
  readonly description: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
27
34
  readonly type: v.PicklistSchema<readonly ["title", "rich_text", "number", "checkbox", "url", "email", "phone_number", "select", "multi_select", "status", "date", "people", "files", "unique_id", "relation", "place", "formula", "rollup", "button", "verification", "last_visited_time", "location", "created_time", "last_edited_time", "created_by", "last_edited_by"], undefined>;
28
35
  }, undefined>, undefined>, {}>;
29
- }, undefined>, undefined>;
36
+ }, undefined>, undefined>, {}>;
30
37
  }, undefined>, undefined>;
31
38
  }, undefined>, v.ObjectSchema<{
32
39
  readonly type: v.LiteralSchema<"connect", undefined>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notionhq/custom-blocks-host",
3
- "version": "0.2.15",
3
+ "version": "0.2.17",
4
4
  "description": "Reusable host runtime for Notion custom blocks.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -533,7 +533,7 @@ function getCollectionSchema(
533
533
  }
534
534
 
535
535
  function getBindingError(
536
- manifest: InferInput<typeof manifestSchema>,
536
+ manifest: CustomBlockManifest,
537
537
  dataSources: CustomBlockHostDataSourcesPayload,
538
538
  ): CustomBlockInitErrorInfo | undefined {
539
539
  for (const [dataSourceKey, manifestDataSource] of Object.entries(
package/src/index.ts CHANGED
@@ -50,6 +50,7 @@ export type {
50
50
  CustomBlockHostInitialState,
51
51
  CustomBlockHostInitialStateResult,
52
52
  } from "./lifecycle/types.js"
53
+ export { isLocalCustomBlockUrl } from "./localBlockUrl.js"
53
54
  export type {
54
55
  CreatePageMessageInput,
55
56
  CustomBlockHostCreatePageResult,
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Checks whether a URL can serve a local custom block over HTTP or HTTPS.
3
+ * Accepts localhost, any .localhost subdomain, and 127.0.0.1 without credentials.
4
+ * Local refers to the block server, not the environment where the host runs.
5
+ * Callers must separately enforce isolation from the embedding page's origin.
6
+ */
7
+ export function isLocalCustomBlockUrl(url: URL): boolean {
8
+ return (
9
+ (url.protocol === "http:" || url.protocol === "https:") &&
10
+ (url.hostname === "localhost" ||
11
+ url.hostname === "127.0.0.1" ||
12
+ url.hostname.endsWith(".localhost")) &&
13
+ url.username === "" &&
14
+ url.password === ""
15
+ )
16
+ }