@notionhq/custom-blocks-host 0.3.2 → 0.3.3

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/README.md CHANGED
@@ -236,3 +236,12 @@ The host package bundles the shared [protocol](../protocol/README.md) and expose
236
236
  Use the host APIs instead of posting bridge messages directly or importing protocol implementation
237
237
  files. Runtime source imports schemas from the workspace protocol package; the publish build bundles
238
238
  that dependency into the host package.
239
+
240
+ ## Other exports
241
+
242
+ - `LATEST_BRIDGE_PROTOCOL_VERSION`: the latest bridge protocol version bundled with this host
243
+ package.
244
+ - `isLocalCustomBlockUrl()`: checks whether a URL can serve a local custom block over HTTP or HTTPS.
245
+
246
+ The package also exports types for host configuration, request handlers, messages, and page
247
+ properties.
package/dist/browser.js CHANGED
@@ -1 +1 @@
1
- var zr=6;function Hr(e){let{manifestProperties:n,propertySchemasById:o}=e,s=[];for(let[c,l]of Object.entries(n)){let f=Lr({propertyKey:c,manifestProperty:l,propertySchemasById:o});f!==void 0&&s.push([c,f])}return Object.fromEntries(s)}function Lr(e){let{propertyKey:n,manifestProperty:o,propertySchemasById:s}=e,c=at(o.name),l=Object.entries(s).filter(([f,y])=>y.type===o.type&&(f===n||at(y.name)===c));return l.length===1?l[0][0]:void 0}function at(e){return e.trim().toLowerCase()}var Re,Vr={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function Fe(e){return!e&&!Re?Vr:{lang:e?.lang??Re?.lang,message:e?.message,abortEarly:e?.abortEarly??Re?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Re?.abortPipeEarly}}var Gr;function $r(e){return Gr?.get(e)}var Qr;function Xr(e){return Qr?.get(e)}var Wr;function Jr(e,n){return Wr?.get(e)?.get(n)}function ge(e){let n=typeof e;return n==="string"?`"${e}"`:n==="number"||n==="bigint"||n==="boolean"?`${e}`:n==="object"||n==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":n}function B(e,n,o,s,c){let l=c&&"input"in c?c.input:o.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 ${n}: ${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},x=e.kind==="schema",_=c?.message??e.message??Jr(e.reference,m.lang)??(x?Xr(m.lang):null)??s.message??$r(m.lang);_!==void 0&&(m.message=typeof _=="function"?_(m):_),x&&(o.typed=!1),o.issues?o.issues.push(m):o.issues=[m]}var ut=new WeakMap;function z(e){let n=ut.get(e);return n||(n={version:1,vendor:"valibot",validate(o){return e["~run"]({value:o},Fe())}},ut.set(e,n)),n}function Kr(e,n){return Object.prototype.hasOwnProperty.call(e,n)&&n!=="__proto__"&&n!=="prototype"&&n!=="constructor"}function Ue(e,n){let o=[...new Set(e)];return o.length>1?`(${o.join(` ${n} `)})`:o[0]??"never"}var Yr=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function re(e){return{kind:"transformation",type:"brand",reference:re,async:!1,name:e,"~run"(n){return n}}}function be(e){return{kind:"validation",type:"finite",reference:be,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(n,o){return n.typed&&!this.requirement(n.value)&&B(this,"finite",n,o),n}}}function Me(e,n){return{kind:"validation",type:"max_length",reference:Me,async:!1,expects:`<=${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&o.value.length>this.requirement&&B(this,"length",o,s,{received:`${o.value.length}`}),o}}}function ke(e,n){return{kind:"validation",type:"min_length",reference:ke,async:!1,expects:`>=${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&o.value.length<this.requirement&&B(this,"length",o,s,{received:`${o.value.length}`}),o}}}function Se(e,n){return{kind:"validation",type:"min_value",reference:Se,async:!1,expects:`>=${e instanceof Date?e.toJSON():ge(e)}`,requirement:e,message:n,"~run"(o,s){return o.typed&&!(o.value>=this.requirement)&&B(this,"value",o,s,{received:o.value instanceof Date?o.value.toJSON():ge(o.value)}),o}}}function ze(e,n){return{kind:"validation",type:"regex",reference:ze,async:!1,expects:`${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&!this.requirement.test(o.value)&&B(this,"format",o,s),o}}}function He(e){return{kind:"transformation",type:"transform",reference:He,async:!1,operation:e,"~run"(n){return n.value=this.operation(n.value),n}}}var lt={abortEarly:!0};function pt(e,n,o){return typeof e.fallback=="function"?e.fallback(n,o):e.fallback}function De(e,n,o){return typeof e.default=="function"?e.default(n,o):e.default}function ft(e,n){return!e["~run"]({value:n},lt).issues}function E(e,n){return{kind:"schema",type:"array",reference:E,expects:"Array",async:!1,item:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(Array.isArray(c)){o.typed=!0,o.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 x of y.issues)x.path?x.path.unshift(m):x.path=[m],o.issues?.push(x);if(o.issues||(o.issues=y.issues),s.abortEarly){o.typed=!1;break}}y.typed||(o.typed=!1),o.value.push(y.value)}}else B(this,"type",o,s);return o}}}function h(e){return{kind:"schema",type:"boolean",reference:h,expects:"boolean",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="boolean"?n.typed=!0:B(this,"type",n,o),n}}}function i(e,n){return{kind:"schema",type:"literal",reference:i,expects:ge(e),async:!1,literal:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===this.literal?o.typed=!0:B(this,"type",o,s),o}}}function Le(e){return{kind:"schema",type:"nan",reference:Le,expects:"NaN",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return Number.isNaN(n.value)?n.typed=!0:B(this,"type",n,o),n}}}function J(e,n){return{kind:"schema",type:"nullable",reference:J,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===null&&(this.default!==void 0&&(o.value=De(this,o,s)),o.value===null)?(o.typed=!0,o):this.wrapped["~run"](o,s)}}}function P(e){return{kind:"schema",type:"number",reference:P,expects:"number",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="number"&&!isNaN(n.value)?n.typed=!0:B(this,"type",n,o),n}}}function r(e,n){return{kind:"schema",type:"object",reference:r,expects:"Object",async:!1,entries:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(c&&typeof c=="object"){o.typed=!0,o.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 x={type:"object",origin:"value",input:c,key:l,value:y};for(let _ of m.issues)_.path?_.path.unshift(x):_.path=[x],o.issues?.push(_);if(o.issues||(o.issues=m.issues),s.abortEarly){o.typed=!1;break}}m.typed||(o.typed=!1),o.value[l]=m.value}else if(f.fallback!==void 0)o.value[l]=pt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(B(this,"key",o,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}}else B(this,"type",o,s);return o}}}function u(e,n){return{kind:"schema",type:"optional",reference:u,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===void 0&&(this.default!==void 0&&(o.value=De(this,o,s)),o.value===void 0)?(o.typed=!0,o):this.wrapped["~run"](o,s)}}}function R(e,n){return{kind:"schema",type:"picklist",reference:R,expects:Ue(e.map(ge),"|"),async:!1,options:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){return this.options.includes(o.value)?o.typed=!0:B(this,"type",o,s),o}}}function F(e,n,o){return{kind:"schema",type:"record",reference:F,expects:"Object",async:!1,key:e,value:n,message:o,get"~standard"(){return z(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){s.typed=!0,s.value={};for(let f in l)if(Kr(l,f)){let y=l[f],m=this.key["~run"]({value:f},c);if(m.issues){let _={type:"object",origin:"key",input:l,key:f,value:y};for(let M of m.issues)M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=m.issues),c.abortEarly){s.typed=!1;break}}let x=this.value["~run"]({value:y},c);if(x.issues){let _={type:"object",origin:"value",input:l,key:f,value:y};for(let M of x.issues)M.path?M.path.unshift(_):M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=x.issues),c.abortEarly){s.typed=!1;break}}(!m.typed||!x.typed)&&(s.typed=!1),m.typed&&(s.value[m.value]=x.value)}}else B(this,"type",s,c);return s}}}function p(e,n){return{kind:"schema",type:"strict_object",reference:p,expects:"Object",async:!1,entries:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(c&&typeof c=="object"){o.typed=!0,o.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 x={type:"object",origin:"value",input:c,key:l,value:y};for(let _ of m.issues)_.path?_.path.unshift(x):_.path=[x],o.issues?.push(_);if(o.issues||(o.issues=m.issues),s.abortEarly){o.typed=!1;break}}m.typed||(o.typed=!1),o.value[l]=m.value}else if(f.fallback!==void 0)o.value[l]=pt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(B(this,"key",o,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}if(!o.issues||!s.abortEarly){for(let l in c)if(!(l in this.entries)){B(this,"key",o,s,{input:l,expected:"never",path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]});break}}}else B(this,"type",o,s);return o}}}function t(e){return{kind:"schema",type:"string",reference:t,expects:"string",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="string"?n.typed=!0:B(this,"type",n,o),n}}}function ct(e){let n;if(e)for(let o of e)if(n)for(let s of o.issues)n.push(s);else n=o.issues;return n}function I(e,n){return{kind:"schema",type:"union",reference:I,expects:Ue(e.map(o=>o.expects),"|"),async:!1,options:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c,l,f;for(let y of this.options){let m=y["~run"]({value:o.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];B(this,"type",o,s,{issues:ct(l)}),o.typed=!0}else{if(f?.length===1)return f[0];B(this,"type",o,s,{issues:ct(f)})}return o}}}function Ie(){return{kind:"schema",type:"unknown",reference:Ie,expects:"unknown",async:!1,get"~standard"(){return z(this)},"~run"(e){return e.typed=!0,e}}}function g(e,n,o){return{kind:"schema",type:"variant",reference:g,expects:"Object",async:!1,key:e,options:n,message:o,get"~standard"(){return z(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){let f,y=0,m=this.key,x=[],_=(M,S)=>{for(let H of M.options){if(H.type==="variant")_(H,new Set(S).add(H.key));else{let L=!0,Q=0;for(let j of S){let V=H.entries[j];if(j in l?V["~run"]({typed:!1,value:l[j]},lt).issues:V.type!=="exact_optional"&&V.type!=="optional"&&V.type!=="nullish"){L=!1,m!==j&&(y<Q||y===Q&&j in l&&!(m in l))&&(y=Q,m=j,x=[]),m===j&&x.push(H.entries[j].expects);break}Q++}if(L){let j=H["~run"]({value:l},c);(!f||!f.typed&&j.typed)&&(f=j)}}if(f&&!f.issues)break}};if(_(this,new Set([this.key])),f)return f;B(this,"type",s,c,{input:l[m],expected:Ue(x,"|"),path:[{type:"object",origin:"value",input:l,key:m,value:l[m]}]})}else B(this,"type",s,c);return s}}}function te(e,n,o){let s=e["~run"]({value:n},Fe(o));if(s.issues)throw new Yr(s.issues);return s.value}function U(...e){return{...e[0],pipe:e,get"~standard"(){return z(this)},"~run"(n,o){for(let s of e)if(s.kind!=="metadata"){if(n.issues&&(s.kind==="schema"||s.kind==="transformation")){n.typed=!1;break}(!n.issues||!o.abortEarly&&!o.abortPipeEarly)&&(n=s["~run"](n,o))}return n}}}function _e(e,n,o){let s=e["~run"]({value:n},Fe(o));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var ne=U(t(),re("NotionBlockId")),Y=U(t(),re("NotionDataSourceId")),D=U(t(),re("NotionPageId")),mt=U(t(),re("NotionAgentId")),yt=U(t(),re("NotionSpaceId"));var vt=R(["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"]),Ve=r({id:t(),name:t(),color:u(vt),description:u(t())}),Zr=r({id:t(),name:t(),color:u(vt),option_ids:E(t())}),en=r({synced_property_id:t(),synced_property_name:t()}),O=r({name:t(),description:u(t())}),tn=["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"],dt=R(tn),ht=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],Ge=g("type",[r({...O.entries,type:i("title")}),r({...O.entries,type:i("rich_text")}),r({...O.entries,type:i("number")}),r({...O.entries,type:i("checkbox")}),r({...O.entries,type:i("url")}),r({...O.entries,type:i("email")}),r({...O.entries,type:i("phone_number")}),r({...O.entries,type:i("select"),options:E(Ve)}),r({...O.entries,type:i("multi_select"),options:E(Ve)}),r({...O.entries,type:i("status"),options:E(Ve),groups:E(Zr)}),r({...O.entries,type:i("date")}),r({...O.entries,type:i("people")}),r({...O.entries,type:i("files")}),r({...O.entries,type:i("unique_id")}),r({...O.entries,type:i("relation"),data_source_id:u(t()),dual_property:u(en)}),r({...O.entries,type:i("place")}),r({...O.entries,type:i("formula")}),r({...O.entries,type:i("rollup")}),r({...O.entries,type:i("button")}),r({...O.entries,type:i("verification")}),r({...O.entries,type:i("last_visited_time")}),r({...O.entries,type:i("location")}),r({...O.entries,type:i("created_time")}),r({...O.entries,type:i("last_edited_time")}),r({...O.entries,type:i("created_by")}),r({...O.entries,type:i("last_edited_by")})]);var gt={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 bt=r({id:Y,table:t(),spaceId:u(yt)}),kt=r({id:u(Y),propertiesById:F(t(),Ge)}),So=r({key:t(),collectionPointer:u(bt),collectionSchema:u(kt),propertyIdsByKey:F(t(),u(t())),propertySchemasById:F(t(),Ge)}),rn=r({collectionPointer:u(bt),collectionSchema:u(kt),propertyIdsByKey:u(F(t(),u(t())))}),le=F(t(),rn);var fe=R(["standard","high"]),St="standard";var It=r({type:i("contrastModeChanged"),contrastMode:fe});var we=r({id:t(),table:t()});var oe=g("type",[r({type:i("page_id"),page_id:D}),r({type:i("data_source_id"),data_source_id:Y}),r({type:i("workspace"),workspace:i(!0)}),r({type:i("block_id"),block_id:ne}),r({type:i("agent_id"),agent_id:mt}),r({type:i("unavailable")})]);var me=g("type",[r({type:i("unavailable")}),r({type:i("page"),id:D,parent:oe})]),nn=r({type:i("emoji"),emoji:t()}),on=r({type:i("custom_emoji"),custom_emoji:r({id:t(),name:u(t()),url:u(t())})}),Ct=r({type:i("external"),external:r({url:t()})}),Pt=r({type:i("file"),file:r({url:t(),expiry_time:u(t())})}),Qe=g("type",[nn,on,Ct,Pt]),Xe=g("type",[Ct,Pt]),$=J(t()),_t=F(t(),Ie()),$e=I([r({id:t(),name:u(t()),color:u(t()),description:u($)}),r({name:t(),id:u(t()),color:u(t()),description:u($)})]),sn=r({start:t(),end:u($),time_zone:u($)}),an=I([r({object:u(i("user")),id:t()}),r({object:i("group"),id:t(),name:u($)})]),un=r({id:t()}),cn=I([r({type:i("external"),name:t(),external:r({url:t()})}),r({type:i("file"),name:t(),file:r({url:t(),expiry_time:u(t())})})]),ln=r({lat:P(),lon:P(),name:u($),address:u($),aws_place_id:u($),google_place_id:u($)}),A={id:t()},xt=J(r({...we.entries,table:R(["notion_user","bot","organization_bot"]),spaceId:u(t())})),We=g("type",[r({...A,type:i("title"),title:E(_t)}),r({...A,type:i("rich_text"),rich_text:E(_t)}),r({...A,type:i("number"),number:J(P())}),r({...A,type:i("url"),url:$}),r({...A,type:i("email"),email:$}),r({...A,type:i("phone_number"),phone_number:$}),r({...A,type:i("checkbox"),checkbox:h()}),r({...A,type:i("select"),select:J($e)}),r({...A,type:i("status"),status:J($e)}),r({...A,type:i("multi_select"),multi_select:E($e)}),r({...A,type:i("date"),date:J(sn)}),r({...A,type:i("people"),people:E(an)}),r({...A,type:i("relation"),has_more:u(h()),relation:E(un)}),r({...A,type:i("files"),files:E(cn)}),r({...A,type:i("place"),place:J(ln)}),r({...A,type:i("created_time"),created_time:$}),r({...A,type:i("last_edited_time"),last_edited_time:$}),r({...A,type:i("created_by"),created_by:xt}),r({...A,type:i("last_edited_by"),last_edited_by:xt}),r({...A,type:i("last_visited_time"),last_visited_time:$})]),xe=F(t(),We),ye=r({object:i("page"),id:D,parent:oe,properties:xe,created_time:u(t()),last_edited_time:u(t()),icon:u(Qe),cover:u(Xe),url:u(t()),public_url:u(t()),is_archived:h(),in_trash:h()});var pn=t(),fn=r({code:pn,message:t(),isRetryable:h()}),Et=g("status",[r({type:i("createPageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("createPageResult"),requestId:t(),status:i("error"),error:fn})]);var Je=U(t(),re("NotionUserId")),ie=r({object:i("user"),id:Je,name:u(t()),avatar_url:J(t()),type:i("person"),person:r({email:t()})}),Ot=r({object:i("list"),results:E(ie),next_cursor:J(t()),has_more:h(),type:i("user"),user:F(t(),Ie())});var jt=r({type:i("currentUserChanged"),currentUser:ie});var Bt=r({type:i("dataSourcesChanged"),dataSources:r({bindings:le})});var mn=t(),yn=r({code:mn,message:t(),isRetryable:h()}),Rt=r({type:i("getPage"),requestId:t(),pageId:D}),Mt=g("status",[r({type:i("getPageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("getPageResult"),requestId:t(),status:i("error"),error:yn})]);var vn=t(),dn=r({code:vn,message:t(),isRetryable:h()}),Dt=r({type:i("getUser"),requestId:t(),userId:Je}),wt=g("status",[r({type:i("getUserResult"),requestId:t(),status:i("success"),user:ie}),r({type:i("getUserResult"),requestId:t(),status:i("error"),error:dn})]);var hn=g("type",[r({type:i("emoji"),emoji:t()}),r({type:i("external"),url:t()})]),gn=r({name:t(),description:u(t()),type:dt}),bn=r({name:t(),description:u(t()),icon:u(hn),properties:u(F(t(),gn),{})}),pe=r({version:i(1),name:u(t()),description:u(t()),slashCommand:u(t()),icon:u(r({type:i("emoji"),emoji:t()})),dataSources:u(F(t(),bn),{})});var ve=R(["light","dark"]);var kn=t(),Sn=r({code:kn,message:t(),isRetryable:h()});var Ae=g("status",[r({type:i("init"),initializationId:t(),status:i("success"),theme:ve,contrastMode:fe,blockId:ne,parent:oe,page:me,manifest:pe,dataSources:r({bindings:le}),currentUser:ie}),r({type:i("init"),initializationId:t(),status:i("error"),error:Sn})]);var At=r({type:i("invalidSandboxMessage"),reason:t()});var In=t(),_n=r({code:In,message:t(),isRetryable:h()}),qt=r({type:i("listUsers"),requestId:t(),startCursor:u(t()),pageSize:u(P())}),Tt=g("status",[r({type:i("listUsersResult"),requestId:t(),status:i("success"),list:Ot}),r({type:i("listUsersResult"),requestId:t(),status:i("error"),error:_n})]);var xn=R(["side_peek","center_peek"]),Cn=t(),Pn=r({code:Cn,message:t(),isRetryable:h()}),Nt=r({type:i("openPage"),requestId:t(),pageId:D,mode:xn}),Ft=g("status",[r({type:i("openPageResult"),requestId:t(),status:i("success"),pageId:D}),r({type:i("openPageResult"),requestId:t(),status:i("error"),error:Pn})]);var Ut=r({type:i("pageChanged"),page:me});var zt=r({type:i("parentChanged"),parent:oe});var Ht=r({unit:R(["year","month","week","day"]),value:P(),time:t(),defaultTimeZone:u(t())}),En=r({unit:R(["hour","minute"]),value:P()}),Lt=r({unit:i("none")}),On=I([Ht,En]),Vt=u(I([Ht,Lt])),Gt=u(I([On,Lt])),jn=r({type:i("date"),start_date:t(),reminder:Vt}),Bn=r({type:i("daterange"),start_date:t(),end_date:t(),reminder:Vt}),Rn=r({type:i("datetime"),start_date:t(),start_time:t(),time_zone:u(t()),reminder:Gt}),Mn=r({type:i("datetimerange"),start_date:t(),start_time:t(),end_date:t(),end_time:t(),time_zone:u(t()),reminder:Gt}),$t=g("type",[jn,Bn,Rn,Mn]);var Qt=I([t(),P(),h(),$t,E(t()),E(we)]);var Xt=r({id:D,is_archived:h(),in_trash:h(),propertiesById:F(t(),u(Qt))}),Wt=r({id:D,is_archived:h(),in_trash:h(),properties:F(t(),u(We))});var Dn=t(),wn=r({code:Dn,message:t(),isRetryable:h()}),Jt=g("status",[r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("success"),items:E(I([Wt,Xt])),hasMore:h()}),r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("error"),error:wn})]);var Kt=r({type:i("themeChanged"),theme:ve});var An=t(),qn=r({code:An,message:t(),isRetryable:h()}),Yt=g("status",[r({type:i("updatePageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("updatePageResult"),requestId:t(),status:i("error"),error:qn})]);var Zt=g("type",[Ae,Kt,It,zt,Ut,jt,Bt,Jt,Et,Mt,wt,Tt,Ft,Yt,At]);function er(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function tr(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Ke(e){let{currentBridgeProtocolVersion:n}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version: ${n}`,isRetryable:!1}}function Ye(e){let{currentBridgeProtocolVersion:n,minBridgeProtocolVersion:o}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${n} is not supported. Minimum supported version is ${o}.`,isRetryable:!1}}function Ze(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function rr(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function nr(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function or(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function ir(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function sr(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function ar(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Ce(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function se(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function et(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var Tn=5e3,Nn=5e3,Fn=5e3;function ur(e){let{prepareInit:n,sendInitMessage:o,warn:s,flushPendingHostStateChanges:c,minBridgeProtocolVersion:l,noConnectTimeoutMs:f=Tn,initialStateTimeoutMs:y=Nn,noInitResultTimeoutMs:m=Fn,stopHostWithFailure:x,onInitResult:_,onConnectionFailure:M}=e,S="waitingForConnect",H,L,Q,j,V=!1,ae=!1;function W(){H!==void 0&&(window.clearTimeout(H),H=void 0)}function w(){L!==void 0&&(window.clearTimeout(L),L=void 0)}function q(){Q!==void 0&&(window.clearTimeout(Q),Q=void 0)}function T(b){let{initializationId:v,error:G,phase:ee,source:Te}=b;switch(S){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"error":case"stopped":return;default:return se(S)}S="error",j=v,W(),w(),o({type:"init",initializationId:v,status:"error",error:G}),M?.({...G,phase:ee,source:Te})}async function K(b){if(S==="waitingForConnect"){S="preparingInit",j=b.initializationId,W(),L=window.setTimeout(()=>{if(S!=="preparingInit")return;let v=rr();s({...v,initializationId:b.initializationId}),T({initializationId:b.initializationId,error:v,phase:"init",source:"host"})},y);try{let v=await n(b);if(S!=="preparingInit")return;if(w(),v.status==="error"){T({initializationId:b.initializationId,error:v.error,phase:"init",source:"host"});return}S="waitingForInitResult";let G={type:"init",initializationId:b.initializationId,status:"success",theme:v.initialState.theme,contrastMode:v.initialState.contrastMode??St,blockId:v.initialState.blockId,parent:v.initialState.parent,page:v.initialState.page,currentUser:v.initialState.currentUser,manifest:v.initialState.manifest,dataSources:v.initialState.dataSources};o(G),Q=window.setTimeout(()=>{if(S!=="waitingForInitResult")return;S="error";let ee=sr();M?.({...ee,phase:"initResult",source:"host"}),s({...ee,initializationId:b.initializationId})},m)}catch(v){if(S!=="preparingInit")return;s({message:"Failed to prepare custom block initialization",error:v}),T({initializationId:b.initializationId,error:Ce(),phase:"init",source:"host"})}}}function Z(b){if(S!=="stopped"&&S==="waitingForConnect"){if(!et(b.bridgeProtocolVersion)){let v=Ke({currentBridgeProtocolVersion:b.bridgeProtocolVersion});T({initializationId:b.initializationId,error:v,phase:"connect",source:"host"});return}if(b.bridgeProtocolVersion<l){let v=Ye({currentBridgeProtocolVersion:b.bridgeProtocolVersion,minBridgeProtocolVersion:l});T({initializationId:b.initializationId,error:v,phase:"connect",source:"host"});return}if(b.status==="error"){T({initializationId:b.initializationId,error:b.error,phase:"connect",source:"sandbox"});return}ae=!0,K(b)}}function C(b){if(S==="stopped"||S!=="waitingForConnect")return"handled";let{initializationId:v,bridgeProtocolVersion:G}=b;if(v===void 0)return"nack";let ee=b.error;return G!==void 0&&(et(G)?G<l&&(ee=Ye({currentBridgeProtocolVersion:G,minBridgeProtocolVersion:l})):ee=Ke({currentBridgeProtocolVersion:G})),T({initializationId:v,error:ee,phase:"connect",source:"host"}),"handled"}function ue(b){let{initializationId:v,error:G}=b;S!=="waitingForInitResult"||v===void 0||v!==j||(W(),q(),S="error",s(G),M?.({...G,phase:"initResult",source:"host"}))}function Be(){if(S!=="stopped"){if(V){x({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}V=!0,W(),S==="waitingForConnect"&&(H=window.setTimeout(()=>{if(S!=="waitingForConnect")return;S="error";let b=er();s(b),M?.({...b,phase:"connect",source:"host"})},f))}}function de(b){if(S!=="waitingForInitResult"||b.initializationId!==j){s({message:"Ignored stale or unexpected initResult",payload:b});return}q(),S=b.status==="success"?"initialized":"error",b.status==="success"?c():M?.({...b.error,phase:"initResult",source:"sandbox"}),_?.(b)}function ce(){S="stopped",W(),w(),q()}return{get status(){return S},get hasConnectedSandbox(){return ae},handleConnect:Z,handleInitResult:de,handleInvalidConnect:C,handleInvalidInitResult:ue,onIframeLoad:Be,stop:ce}}function tt({url:e,hostOrigin:n}){return typeof n=="string"&&n!==""&&e.origin!==n&&(e.protocol==="http:"||e.protocol==="https:")&&(e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname.endsWith(".localhost"))&&e.username===""&&e.password===""}async function cr(e){let n=new AbortController,o=()=>n.abort();e.signal.addEventListener("abort",o,{once:!0});let s=new Promise((l,f)=>{n.signal.addEventListener("abort",()=>f(n.signal.reason),{once:!0})});e.signal.aborted&&n.abort();let c=e.manifestSource==="local"?window.setTimeout(()=>{n.abort(new Error("Manifest loading timed out after 5000 ms."))},5e3):void 0;try{let l=await Promise.race([e.manifestSource==="local"?Un(e.sandboxOrigin,n.signal):e.getPersistedManifest({signal:n.signal}),s]);if(n.signal.aborted)throw new Error("Manifest loading was cancelled.");return{status:"success",manifest:te(pe,l)}}catch(l){return e.signal.aborted||e.onError(l),{status:"error",error:{code:"manifest_unavailable",message:"The custom block manifest is unavailable.",isRetryable:!0}}}finally{window.clearTimeout(c),e.signal.removeEventListener("abort",o)}}async function Un(e,n){let o=new URL(e);if(!tt({url:o,hostOrigin:window.location.origin}))throw new Error("Preview requires a separate loopback origin.");let s=await fetch(new URL("/manifest",o),{credentials:"omit",redirect:"error",cache:"no-store",signal:n});if(!s.ok)throw new Error(`Manifest request failed: HTTP ${s.status}.`);return s.json()}function lr(e,n){return n>=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,...gt}}}]))}}}var pr=r({theme:ve,contrastMode:u(fe),blockId:ne,parent:oe,page:me,manifest:pe,dataSources:r({bindings:le}),currentUser:ie});function fr(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var mr=r({code:t(),message:t(),isRetryable:h()});var yr={type:i("connect"),initializationId:t(),bridgeProtocolVersion:P(),sdkVersion:t()},vr=g("status",[r({status:i("success"),manifest:u(pe),...yr}),r({status:i("error"),error:mr,...yr})]);var zn=g("type",[r({type:i("start")}),r({type:i("end")}),r({type:i("before"),blockId:ne}),r({type:i("after"),blockId:ne})]),Hn=g("type",[r({type:i("page_id"),page_id:D}),r({type:i("data_source_id"),data_source_id:Y})]),dr=r({type:i("createPage"),requestId:t(),parent:Hn,properties:xe,position:u(zn)});var Ln=t(),Vn=r({code:Ln,message:t(),isRetryable:h()}),hr=g("status",[r({type:i("initResult"),initializationId:t(),status:i("success"),initialHeight:u(U(P(),be(),Se(0)))}),r({type:i("initResult"),initializationId:t(),status:i("error"),error:Vn})]);var gr=r({type:i("invalidHostMessage"),reason:t()});var br=R(["ascending","descending"]);var kr=U(D,ze(/^(?:[0-9a-f]{32}|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12})$/i),He(e=>e.replaceAll("-","").toLowerCase().replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5"))),rt=I([p({contains:kr}),p({does_not_contain:kr})]),je=I([p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Oe=I([t(),E(t())]),Sr=p({object:R(["user","group"]),id:U(t(),ke(1))}),Gn=I([p({contains:Sr}),p({does_not_contain:Sr}),je]),Ir=p({object:i("user"),id:U(t(),ke(1),Me(2e3))}),$n=I([p({contains:Ir}),p({does_not_contain:Ir}),p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Pe=I([p({equals:t()}),p({does_not_equal:t()}),p({contains:t()}),p({does_not_contain:t()}),p({starts_with:t()}),p({ends_with:t()}),je]),Qn=I([p({equals:P()}),p({does_not_equal:P()}),p({greater_than:P()}),p({less_than:P()}),p({greater_than_or_equal_to:P()}),p({less_than_or_equal_to:P()}),je]),Xn=I([p({equals:h()}),p({does_not_equal:h()})]),Pr=I([p({equals:Oe}),p({does_not_equal:Oe}),je]),_r=R(["To-do","In progress","Complete","Current","Future"]),xr=I([_r,U(E(_r),ke(1),Me(5))]),Wn=I([p({group_equals:xr}),p({group_does_not_equal:xr})]),Jn=I([Pr,Wn]),Kn=I([p({contains:Oe}),p({contains_all:Oe}),p({does_not_contain:Oe}),je]),X=R(["start_date","end_date"]),Yn=R(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Ee=I([Yn,t()]),Zn=I([p({target:u(X),equals:Ee}),p({target:u(X),before:Ee}),p({target:u(X),after:Ee}),p({target:u(X),on_or_before:Ee}),p({target:u(X),on_or_after:Ee}),p({target:u(X),this_week:p({})}),p({target:u(X),past_week:p({})}),p({target:u(X),past_month:p({})}),p({target:u(X),past_year:p({})}),p({target:u(X),next_week:p({})}),p({target:u(X),next_month:p({})}),p({target:u(X),next_year:p({})}),p({target:u(X),is_empty:i(!0)}),p({target:u(X),is_not_empty:i(!0)})]),Cr=I([p({propertyId:t(),relation:rt}),p({propertyId:t(),created_by:$n}),p({propertyId:t(),title:Pe}),p({propertyId:t(),rich_text:Pe}),p({propertyId:t(),url:Pe}),p({propertyId:t(),email:Pe}),p({propertyId:t(),phone_number:Pe}),p({propertyId:t(),number:Qn}),p({propertyId:t(),checkbox:Xn}),p({propertyId:t(),select:Pr}),p({propertyId:t(),multi_select:Kn}),p({propertyId:t(),status:Jn}),p({propertyId:t(),date:Zn}),p({propertyId:t(),people:Gn})]),eo=I([Cr,p({and:E(Cr)})]),nt=10,to=p({propertyId:t(),direction:br}),Er=r({type:i("queryDataSource"),subscriptionId:t(),dataSourceId:Y,limit:P(),filter:u(eo),sorts:u(E(to))});var Or=r({type:i("resize"),height:U(P(),be(),Se(0))});var jr=r({type:i("unsubscribeDataSourceQuery"),subscriptionId:t()});var Br=r({type:i("updatePage"),requestId:t(),pageId:D,properties:u(xe),icon:u(Qe),cover:u(Xe),archived:u(h())});var Rr=g("type",[vr,hr,Er,jr,dr,Rt,Dt,qt,Nt,Br,Or,gr]);function Mr(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function Dr(e){let n=Mr(e);return n==="invalidHostMessage"||n==="invalidSandboxMessage"?{incomingType:n}:{incomingType:n,nack:{type:"invalidSandboxMessage",reason:ro(n)}}}function ro(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var wr=r({initializationId:t()}),no=r({bridgeProtocolVersion:I([P(),Le()])});function Ar(e){let{iframe:n,sandboxOrigin:o,getInitStatus:s,emit:c,sendNack:l,onInvalidConnect:f,onInvalidInitResult:y,onConnect:m,onInitResult:x,onQueryDataSource:_,onUnsubscribeDataSourceQuery:M,onCreatePage:S,onGetPage:H,onOpenPage:L,onGetUser:Q,onListUsers:j,onUpdatePage:V,onResize:ae}=e;function W(w,q){c("warn",{message:"Ignored unsupported sandbox message",payload:w,issues:q});let T=Dr(w);if(T.incomingType==="connect"){let K=_e(wr,w),Z=_e(no,w);if(f({initializationId:K.success?K.output.initializationId:void 0,error:tr(),bridgeProtocolVersion:Z.success?Z.output.bridgeProtocolVersion:void 0})==="handled")return}if(T.incomingType==="initResult"){let K=_e(wr,w);y({initializationId:K.success?K.output.initializationId:void 0,error:ar()})}T.nack!==void 0&&s()!=="stopped"&&l(T.nack)}return function(q){let T=q.source===n.contentWindow,K=q.origin===o;if(!T||!K)return;let Z=_e(Rr,q.data);if(!Z.success){W(q.data,Z.issues);return}let C=Z.output;if(!fr(C)&&s()!=="initialized"){c("warn",{message:`Ignored ${C.type} before initialization completed`,payload:C});return}switch(c("in",C),C.type){case"connect":m(C);return;case"initResult":x(C);return;case"queryDataSource":_(C);return;case"unsubscribeDataSourceQuery":M(C);return;case"createPage":S(C);return;case"openPage":L(C);return;case"getPage":H(C);return;case"getUser":Q(C);return;case"listUsers":j(C);return;case"updatePage":V(C);return;case"resize":ae(C);return;case"invalidHostMessage":return;default:se(C)}}}var qe=class{constructor(n){this.onUnsubscribe=n}onUnsubscribe;bySubscriptionId=new Map;subscribe(n){this.unsubscribe(n.subscriptionId);let o={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(n.subscriptionId,{message:n,token:o,isRefreshing:!0,shouldRefreshAgain:!1}),o}isCurrent(n,o){return this.bySubscriptionId.get(n)?.token===o}unsubscribe(n){this.bySubscriptionId.delete(n)&&this.onUnsubscribe(n)}refresh(n){let o=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===n){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,o.push({message:c.message,token:c.token})}return s?o:void 0}finish(n,o){let s=this.bySubscriptionId.get(n);if(s?.token===o&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let n of this.bySubscriptionId.keys())this.unsubscribe(n)}};function qr(e,n){if(e===void 0)return;let o="and"in e?e.and:[e];for(let s of o){let c=oo(s,n);if(c!==void 0)return c}}function oo(e,n){if(!Object.hasOwn(n.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 o=n.propertiesById[e.propertyId],s=Object.keys(e).find(y=>y!=="propertyId");if(s!==o.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${o.type}".`,isRetryable:!1};if("status"in e&&o.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,_=(Array.isArray(m)?m:[m]).find(M=>!o.groups.some(S=>S.name===M));return _===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${_}".`,isRetryable:!1}}}if("relation"in e&&!ft(rt,e.relation))return{code:"invalid_data_source_query_filter",message:"Relation filters require a page ID.",isRetryable:!1};let c=io(e);if(c===void 0||o.type!==c.propertyType)return;let l=new Set(o.options.map(y=>y.name)),f=so(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 io(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 n=e.status;return"group_equals"in n||"group_does_not_equal"in n?void 0:{propertyType:"status",operator:n}}}function so(e){let n;if("equals"in e)n=e.equals;else if("does_not_equal"in e)n=e.does_not_equal;else if("contains"in e)n=e.contains;else if("contains_all"in e)n=e.contains_all;else if("does_not_contain"in e)n=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:se(e);return Array.isArray(n)?n:[n]}var ao=new Set(ht);function Tr(e,n){if(e===void 0)return;if(e.length>nt)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${nt} entries.`,isRetryable:!1};let o=new Set;for(let s of e){if(o.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(o.add(s.propertyId),!Object.hasOwn(n.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=n.propertiesById[s.propertyId];if(!ao.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 Fr=5;function co(e){let{iframe:n,prepareInitialState:o,handlers:s,onInitialized:c,onConnectionFailure:l,onLog:f,onQueryUnsubscribed:y,sandboxOrigin:m,minBridgeProtocolVersion:x,noConnectTimeoutMs:_,initialStateTimeoutMs:M,noInitResultTimeoutMs:S}=e,H=Math.max(x??3,3),L={},Q=!1,j=new AbortController,V,ae,W=6,w=new qe(a=>{y?.(a)});function q(a,k){f?.(a,k)}function T(a){let k=v.status;switch(k){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"error":break;case"stopped":return;default:return se(k)}let N=lr(a,W);q("out",N),n.contentWindow?.postMessage(N,m)}function K(a){T(te(Ae,a))}function Z(a){T(a)}function C(a){let k=v.status;switch(k){case"initialized":T(te(Zt,a));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"error":case"stopped":return;default:se(k)}}async function ue(a,k){if(k===void 0)return;let N=await k(a);C({type:`${a.type}Result`,requestId:a.requestId,...N})}function Be(a){let k=a.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:a.subscriptionId,status:"error",error:a.response.error}:{type:"queryDataSourceResult",subscriptionId:a.subscriptionId,status:"success",items:a.response.items,hasMore:a.response.hasMore};C(k)}async function de(a,k=w.subscribe(a)){try{let N=lo(ae,a.dataSourceId),he=po(a,N);if(he!==void 0){w.isCurrent(a.subscriptionId,k)&&(w.unsubscribe(a.subscriptionId),Be({subscriptionId:a.subscriptionId,response:{status:"error",error:he}}));return}let Ne=await s.queryDataSource(a);if(!w.isCurrent(a.subscriptionId,k))return;Ne.status==="error"&&!Ne.error.isRetryable&&w.unsubscribe(a.subscriptionId),Be({subscriptionId:a.subscriptionId,response:Ne})}finally{let N=w.finish(a.subscriptionId,k);N!==void 0&&de(N.message,N.token)}}function ce(a){v.status==="stopped"||v.status==="error"||(Object.assign(L,a),b())}function b(){if(v.status!=="initialized")return;let a=L;L={},a.theme!==void 0&&C({type:"themeChanged",theme:a.theme}),a.contrastMode!==void 0&&C({type:"contrastModeChanged",contrastMode:a.contrastMode}),a.parent!==void 0&&C({type:"parentChanged",parent:a.parent}),a.page!==void 0&&C({type:"pageChanged",page:a.page}),a.dataSources!==void 0&&C({type:"dataSourcesChanged",dataSources:a.dataSources}),a.currentUser!==void 0&&C({type:"currentUserChanged",currentUser:a.currentUser})}let v=ur({async prepareInit(a){W=a.bridgeProtocolVersion;let k=await ee;return v.status!=="preparingInit"?k:G(k)},sendInitMessage:K,warn:a=>q("warn",a),flushPendingHostStateChanges:b,minBridgeProtocolVersion:H,noConnectTimeoutMs:_,initialStateTimeoutMs:M,noInitResultTimeoutMs:S,stopHostWithFailure:st,onInitResult(a){a.status==="success"&&V!==void 0&&c?.({manifest:V,initialHeight:a.initialHeight})},onConnectionFailure:a=>{j.abort(),l?.(a)}});function G(a){if(a.status==="error")return a;let k=te(pr,{...a.initialState,...L});if(V=k.manifest,L={},W<Fr&&k.page.type==="unavailable")return{status:"error",error:Ze()};let N=Ur(k.manifest,k.dataSources);return N!==void 0?{status:"error",error:N}:(ae=k.dataSources,Q=!0,{status:"success",initialState:k})}let ee=Te().catch(a=>(j.signal.aborted||q("warn",{message:"Failed to prepare custom block initialization",error:a}),{status:"error",error:Ce()}));async function Te(){let a=await cr({...e,sandboxOrigin:m,signal:j.signal,onError:N=>{q("warn",{message:"Failed to load custom block manifest",error:N})}});if(a.status==="error")return a;if(j.signal.aborted)return{status:"error",error:Ce()};let k=await o({manifest:a.manifest,signal:j.signal});return k.status==="error"?k:{status:"success",initialState:{...k.initialState,manifest:a.manifest}}}let ot=Ar({iframe:n,sandboxOrigin:m,getInitStatus:()=>v.status,emit:q,sendNack:Z,onInvalidConnect:v.handleInvalidConnect,onInvalidInitResult:v.handleInvalidInitResult,onConnect:v.handleConnect,onInitResult:v.handleInitResult,onQueryDataSource:de,onUnsubscribeDataSourceQuery:a=>w.unsubscribe(a.subscriptionId),onCreatePage:a=>ue(a,s.createPage),onGetPage:a=>ue(a,s.getPage),onOpenPage:a=>ue(a,s.openPage),onGetUser:a=>ue(a,s.getUser),onListUsers:a=>ue(a,s.listUsers),onUpdatePage:a=>ue(a,s.updatePage),onResize:a=>s.resize?.(a)});window.addEventListener("message",ot),n.addEventListener("load",v.onIframeLoad);function it(){j.abort(),window.removeEventListener("message",ot),n.removeEventListener("load",v.onIframeLoad),v.stop(),w.unsubscribeAll()}function st(a){it(),q("warn",a),l?.(a)}return{stop:it,setTheme(a){ce({theme:a})},setContrastMode(a){ce({contrastMode:a})},setParent(a){ce({parent:a})},setPage(a){if(a.type==="unavailable"&&W<Fr&&(v.status==="preparingInit"&&Q||v.status==="waitingForInitResult"||v.status==="initialized")){st({...Ze(),phase:"runtime",source:"host"});return}ce({page:a})},setCurrentUser(a){ce({currentUser:a})},setDataSources(a){let k={bindings:te(le,a.bindings)};if(v.hasConnectedSandbox&&V!==void 0&&Ur(V,k)!==void 0){q("warn",{message:"Ignored invalid data source bindings update",payload:k});return}ae=k,ce({dataSources:k})},refreshQuery({dataSourceId:a}){if(v.status!=="initialized")return;let k=te(Y,a),N=w.refresh(k);if(N===void 0){q("warn",`No active query exists for data source "${a}"`);return}for(let he of N)de(he.message,he.token)}}}function lo(e,n){return Object.values(e?.bindings??{}).find(o=>o.collectionPointer?.id===n)?.collectionSchema}function Ur(e,n){for(let[o,s]of Object.entries(e.dataSources)){let c=n.bindings[o];if(c?.collectionPointer===void 0||c.collectionSchema===void 0)return nr();for(let[l,f]of Object.entries(s.properties??{})){let y=c.propertyIdsByKey?.[l];if(y===void 0)return or();if(c.collectionSchema.propertiesById[y]?.type!==f.type)return ir()}}}function po(e,n){return n===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}:qr(e.filter,n)??Tr(e.sorts,n)}function fo(e){return te(D,e)}export{zr as LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION,co as createCustomBlockHost,Hr as getAutoBoundPropertyIdsByKey,tt as isLocalCustomBlockUrl,fo as toNotionPageId};
1
+ var Fe=6,Hr=6;function Lr(e){let{manifestProperties:n,propertySchemasById:o}=e,s=[];for(let[c,l]of Object.entries(n)){let f=Vr({propertyKey:c,manifestProperty:l,propertySchemasById:o});f!==void 0&&s.push([c,f])}return Object.fromEntries(s)}function Vr(e){let{propertyKey:n,manifestProperty:o,propertySchemasById:s}=e,c=ut(o.name),l=Object.entries(s).filter(([f,y])=>y.type===o.type&&(f===n||ut(y.name)===c));return l.length===1?l[0][0]:void 0}function ut(e){return e.trim().toLowerCase()}var Re,Gr={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function Ue(e){return!e&&!Re?Gr:{lang:e?.lang??Re?.lang,message:e?.message,abortEarly:e?.abortEarly??Re?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Re?.abortPipeEarly}}var $r;function Qr(e){return $r?.get(e)}var Xr;function Wr(e){return Xr?.get(e)}var Jr;function Kr(e,n){return Jr?.get(e)?.get(n)}function ge(e){let n=typeof e;return n==="string"?`"${e}"`:n==="number"||n==="bigint"||n==="boolean"?`${e}`:n==="object"||n==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":n}function B(e,n,o,s,c){let l=c&&"input"in c?c.input:o.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 ${n}: ${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},x=e.kind==="schema",_=c?.message??e.message??Kr(e.reference,m.lang)??(x?Wr(m.lang):null)??s.message??Qr(m.lang);_!==void 0&&(m.message=typeof _=="function"?_(m):_),x&&(o.typed=!1),o.issues?o.issues.push(m):o.issues=[m]}var ct=new WeakMap;function z(e){let n=ct.get(e);return n||(n={version:1,vendor:"valibot",validate(o){return e["~run"]({value:o},Ue())}},ct.set(e,n)),n}function Yr(e,n){return Object.prototype.hasOwnProperty.call(e,n)&&n!=="__proto__"&&n!=="prototype"&&n!=="constructor"}function ze(e,n){let o=[...new Set(e)];return o.length>1?`(${o.join(` ${n} `)})`:o[0]??"never"}var Zr=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function re(e){return{kind:"transformation",type:"brand",reference:re,async:!1,name:e,"~run"(n){return n}}}function be(e){return{kind:"validation",type:"finite",reference:be,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(n,o){return n.typed&&!this.requirement(n.value)&&B(this,"finite",n,o),n}}}function Me(e,n){return{kind:"validation",type:"max_length",reference:Me,async:!1,expects:`<=${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&o.value.length>this.requirement&&B(this,"length",o,s,{received:`${o.value.length}`}),o}}}function ke(e,n){return{kind:"validation",type:"min_length",reference:ke,async:!1,expects:`>=${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&o.value.length<this.requirement&&B(this,"length",o,s,{received:`${o.value.length}`}),o}}}function Se(e,n){return{kind:"validation",type:"min_value",reference:Se,async:!1,expects:`>=${e instanceof Date?e.toJSON():ge(e)}`,requirement:e,message:n,"~run"(o,s){return o.typed&&!(o.value>=this.requirement)&&B(this,"value",o,s,{received:o.value instanceof Date?o.value.toJSON():ge(o.value)}),o}}}function He(e,n){return{kind:"validation",type:"regex",reference:He,async:!1,expects:`${e}`,requirement:e,message:n,"~run"(o,s){return o.typed&&!this.requirement.test(o.value)&&B(this,"format",o,s),o}}}function Le(e){return{kind:"transformation",type:"transform",reference:Le,async:!1,operation:e,"~run"(n){return n.value=this.operation(n.value),n}}}var pt={abortEarly:!0};function ft(e,n,o){return typeof e.fallback=="function"?e.fallback(n,o):e.fallback}function De(e,n,o){return typeof e.default=="function"?e.default(n,o):e.default}function mt(e,n){return!e["~run"]({value:n},pt).issues}function O(e,n){return{kind:"schema",type:"array",reference:O,expects:"Array",async:!1,item:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(Array.isArray(c)){o.typed=!0,o.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 x of y.issues)x.path?x.path.unshift(m):x.path=[m],o.issues?.push(x);if(o.issues||(o.issues=y.issues),s.abortEarly){o.typed=!1;break}}y.typed||(o.typed=!1),o.value.push(y.value)}}else B(this,"type",o,s);return o}}}function h(e){return{kind:"schema",type:"boolean",reference:h,expects:"boolean",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="boolean"?n.typed=!0:B(this,"type",n,o),n}}}function i(e,n){return{kind:"schema",type:"literal",reference:i,expects:ge(e),async:!1,literal:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===this.literal?o.typed=!0:B(this,"type",o,s),o}}}function Ve(e){return{kind:"schema",type:"nan",reference:Ve,expects:"NaN",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return Number.isNaN(n.value)?n.typed=!0:B(this,"type",n,o),n}}}function J(e,n){return{kind:"schema",type:"nullable",reference:J,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===null&&(this.default!==void 0&&(o.value=De(this,o,s)),o.value===null)?(o.typed=!0,o):this.wrapped["~run"](o,s)}}}function P(e){return{kind:"schema",type:"number",reference:P,expects:"number",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="number"&&!isNaN(n.value)?n.typed=!0:B(this,"type",n,o),n}}}function r(e,n){return{kind:"schema",type:"object",reference:r,expects:"Object",async:!1,entries:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(c&&typeof c=="object"){o.typed=!0,o.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 x={type:"object",origin:"value",input:c,key:l,value:y};for(let _ of m.issues)_.path?_.path.unshift(x):_.path=[x],o.issues?.push(_);if(o.issues||(o.issues=m.issues),s.abortEarly){o.typed=!1;break}}m.typed||(o.typed=!1),o.value[l]=m.value}else if(f.fallback!==void 0)o.value[l]=ft(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(B(this,"key",o,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}}else B(this,"type",o,s);return o}}}function u(e,n){return{kind:"schema",type:"optional",reference:u,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:n,get"~standard"(){return z(this)},"~run"(o,s){return o.value===void 0&&(this.default!==void 0&&(o.value=De(this,o,s)),o.value===void 0)?(o.typed=!0,o):this.wrapped["~run"](o,s)}}}function R(e,n){return{kind:"schema",type:"picklist",reference:R,expects:ze(e.map(ge),"|"),async:!1,options:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){return this.options.includes(o.value)?o.typed=!0:B(this,"type",o,s),o}}}function F(e,n,o){return{kind:"schema",type:"record",reference:F,expects:"Object",async:!1,key:e,value:n,message:o,get"~standard"(){return z(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){s.typed=!0,s.value={};for(let f in l)if(Yr(l,f)){let y=l[f],m=this.key["~run"]({value:f},c);if(m.issues){let _={type:"object",origin:"key",input:l,key:f,value:y};for(let M of m.issues)M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=m.issues),c.abortEarly){s.typed=!1;break}}let x=this.value["~run"]({value:y},c);if(x.issues){let _={type:"object",origin:"value",input:l,key:f,value:y};for(let M of x.issues)M.path?M.path.unshift(_):M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=x.issues),c.abortEarly){s.typed=!1;break}}(!m.typed||!x.typed)&&(s.typed=!1),m.typed&&(s.value[m.value]=x.value)}}else B(this,"type",s,c);return s}}}function p(e,n){return{kind:"schema",type:"strict_object",reference:p,expects:"Object",async:!1,entries:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c=o.value;if(c&&typeof c=="object"){o.typed=!0,o.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 x={type:"object",origin:"value",input:c,key:l,value:y};for(let _ of m.issues)_.path?_.path.unshift(x):_.path=[x],o.issues?.push(_);if(o.issues||(o.issues=m.issues),s.abortEarly){o.typed=!1;break}}m.typed||(o.typed=!1),o.value[l]=m.value}else if(f.fallback!==void 0)o.value[l]=ft(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(B(this,"key",o,s,{input:void 0,expected:`"${l}"`,path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]}),s.abortEarly))break}if(!o.issues||!s.abortEarly){for(let l in c)if(!(l in this.entries)){B(this,"key",o,s,{input:l,expected:"never",path:[{type:"object",origin:"key",input:c,key:l,value:c[l]}]});break}}}else B(this,"type",o,s);return o}}}function t(e){return{kind:"schema",type:"string",reference:t,expects:"string",async:!1,message:e,get"~standard"(){return z(this)},"~run"(n,o){return typeof n.value=="string"?n.typed=!0:B(this,"type",n,o),n}}}function lt(e){let n;if(e)for(let o of e)if(n)for(let s of o.issues)n.push(s);else n=o.issues;return n}function I(e,n){return{kind:"schema",type:"union",reference:I,expects:ze(e.map(o=>o.expects),"|"),async:!1,options:e,message:n,get"~standard"(){return z(this)},"~run"(o,s){let c,l,f;for(let y of this.options){let m=y["~run"]({value:o.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];B(this,"type",o,s,{issues:lt(l)}),o.typed=!0}else{if(f?.length===1)return f[0];B(this,"type",o,s,{issues:lt(f)})}return o}}}function Ie(){return{kind:"schema",type:"unknown",reference:Ie,expects:"unknown",async:!1,get"~standard"(){return z(this)},"~run"(e){return e.typed=!0,e}}}function g(e,n,o){return{kind:"schema",type:"variant",reference:g,expects:"Object",async:!1,key:e,options:n,message:o,get"~standard"(){return z(this)},"~run"(s,c){let l=s.value;if(l&&typeof l=="object"){let f,y=0,m=this.key,x=[],_=(M,S)=>{for(let H of M.options){if(H.type==="variant")_(H,new Set(S).add(H.key));else{let L=!0,Q=0;for(let j of S){let V=H.entries[j];if(j in l?V["~run"]({typed:!1,value:l[j]},pt).issues:V.type!=="exact_optional"&&V.type!=="optional"&&V.type!=="nullish"){L=!1,m!==j&&(y<Q||y===Q&&j in l&&!(m in l))&&(y=Q,m=j,x=[]),m===j&&x.push(H.entries[j].expects);break}Q++}if(L){let j=H["~run"]({value:l},c);(!f||!f.typed&&j.typed)&&(f=j)}}if(f&&!f.issues)break}};if(_(this,new Set([this.key])),f)return f;B(this,"type",s,c,{input:l[m],expected:ze(x,"|"),path:[{type:"object",origin:"value",input:l,key:m,value:l[m]}]})}else B(this,"type",s,c);return s}}}function te(e,n,o){let s=e["~run"]({value:n},Ue(o));if(s.issues)throw new Zr(s.issues);return s.value}function U(...e){return{...e[0],pipe:e,get"~standard"(){return z(this)},"~run"(n,o){for(let s of e)if(s.kind!=="metadata"){if(n.issues&&(s.kind==="schema"||s.kind==="transformation")){n.typed=!1;break}(!n.issues||!o.abortEarly&&!o.abortPipeEarly)&&(n=s["~run"](n,o))}return n}}}function _e(e,n,o){let s=e["~run"]({value:n},Ue(o));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var ne=U(t(),re("NotionBlockId")),Y=U(t(),re("NotionDataSourceId")),D=U(t(),re("NotionPageId")),yt=U(t(),re("NotionAgentId")),vt=U(t(),re("NotionSpaceId"));var dt=R(["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"]),Ge=r({id:t(),name:t(),color:u(dt),description:u(t())}),en=r({id:t(),name:t(),color:u(dt),option_ids:O(t())}),tn=r({synced_property_id:t(),synced_property_name:t()}),E=r({name:t(),description:u(t())}),rn=["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"],ht=R(rn),gt=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],$e=g("type",[r({...E.entries,type:i("title")}),r({...E.entries,type:i("rich_text")}),r({...E.entries,type:i("number")}),r({...E.entries,type:i("checkbox")}),r({...E.entries,type:i("url")}),r({...E.entries,type:i("email")}),r({...E.entries,type:i("phone_number")}),r({...E.entries,type:i("select"),options:O(Ge)}),r({...E.entries,type:i("multi_select"),options:O(Ge)}),r({...E.entries,type:i("status"),options:O(Ge),groups:O(en)}),r({...E.entries,type:i("date")}),r({...E.entries,type:i("people")}),r({...E.entries,type:i("files")}),r({...E.entries,type:i("unique_id")}),r({...E.entries,type:i("relation"),data_source_id:u(t()),dual_property:u(tn)}),r({...E.entries,type:i("place")}),r({...E.entries,type:i("formula")}),r({...E.entries,type:i("rollup")}),r({...E.entries,type:i("button")}),r({...E.entries,type:i("verification")}),r({...E.entries,type:i("last_visited_time")}),r({...E.entries,type:i("location")}),r({...E.entries,type:i("created_time")}),r({...E.entries,type:i("last_edited_time")}),r({...E.entries,type:i("created_by")}),r({...E.entries,type:i("last_edited_by")})]);var bt={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 kt=r({id:Y,table:t(),spaceId:u(vt)}),St=r({id:u(Y),propertiesById:F(t(),$e)}),So=r({key:t(),collectionPointer:u(kt),collectionSchema:u(St),propertyIdsByKey:F(t(),u(t())),propertySchemasById:F(t(),$e)}),nn=r({collectionPointer:u(kt),collectionSchema:u(St),propertyIdsByKey:u(F(t(),u(t())))}),le=F(t(),nn);var fe=R(["standard","high"]),It="standard";var _t=r({type:i("contrastModeChanged"),contrastMode:fe});var we=r({id:t(),table:t()});var oe=g("type",[r({type:i("page_id"),page_id:D}),r({type:i("data_source_id"),data_source_id:Y}),r({type:i("workspace"),workspace:i(!0)}),r({type:i("block_id"),block_id:ne}),r({type:i("agent_id"),agent_id:yt}),r({type:i("unavailable")})]);var me=g("type",[r({type:i("unavailable")}),r({type:i("page"),id:D,parent:oe})]),on=r({type:i("emoji"),emoji:t()}),sn=r({type:i("custom_emoji"),custom_emoji:r({id:t(),name:u(t()),url:u(t())})}),Pt=r({type:i("external"),external:r({url:t()})}),Ot=r({type:i("file"),file:r({url:t(),expiry_time:u(t())})}),Xe=g("type",[on,sn,Pt,Ot]),We=g("type",[Pt,Ot]),$=J(t()),xt=F(t(),Ie()),Qe=I([r({id:t(),name:u(t()),color:u(t()),description:u($)}),r({name:t(),id:u(t()),color:u(t()),description:u($)})]),an=r({start:t(),end:u($),time_zone:u($)}),un=I([r({object:u(i("user")),id:t()}),r({object:i("group"),id:t(),name:u($)})]),cn=r({id:t()}),ln=I([r({type:i("external"),name:t(),external:r({url:t()})}),r({type:i("file"),name:t(),file:r({url:t(),expiry_time:u(t())})})]),pn=r({lat:P(),lon:P(),name:u($),address:u($),aws_place_id:u($),google_place_id:u($)}),A={id:t()},Ct=J(r({...we.entries,table:R(["notion_user","bot","organization_bot"]),spaceId:u(t())})),Je=g("type",[r({...A,type:i("title"),title:O(xt)}),r({...A,type:i("rich_text"),rich_text:O(xt)}),r({...A,type:i("number"),number:J(P())}),r({...A,type:i("url"),url:$}),r({...A,type:i("email"),email:$}),r({...A,type:i("phone_number"),phone_number:$}),r({...A,type:i("checkbox"),checkbox:h()}),r({...A,type:i("select"),select:J(Qe)}),r({...A,type:i("status"),status:J(Qe)}),r({...A,type:i("multi_select"),multi_select:O(Qe)}),r({...A,type:i("date"),date:J(an)}),r({...A,type:i("people"),people:O(un)}),r({...A,type:i("relation"),has_more:u(h()),relation:O(cn)}),r({...A,type:i("files"),files:O(ln)}),r({...A,type:i("place"),place:J(pn)}),r({...A,type:i("created_time"),created_time:$}),r({...A,type:i("last_edited_time"),last_edited_time:$}),r({...A,type:i("created_by"),created_by:Ct}),r({...A,type:i("last_edited_by"),last_edited_by:Ct}),r({...A,type:i("last_visited_time"),last_visited_time:$})]),xe=F(t(),Je),ye=r({object:i("page"),id:D,parent:oe,properties:xe,created_time:u(t()),last_edited_time:u(t()),icon:u(Xe),cover:u(We),url:u(t()),public_url:u(t()),is_archived:h(),in_trash:h()});var fn=t(),mn=r({code:fn,message:t(),isRetryable:h()}),Et=g("status",[r({type:i("createPageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("createPageResult"),requestId:t(),status:i("error"),error:mn})]);var Ke=U(t(),re("NotionUserId")),ie=r({object:i("user"),id:Ke,name:u(t()),avatar_url:J(t()),type:i("person"),person:r({email:t()})}),jt=r({object:i("list"),results:O(ie),next_cursor:J(t()),has_more:h(),type:i("user"),user:F(t(),Ie())});var Bt=r({type:i("currentUserChanged"),currentUser:ie});var Rt=r({type:i("dataSourcesChanged"),dataSources:r({bindings:le})});var yn=t(),vn=r({code:yn,message:t(),isRetryable:h()}),Mt=r({type:i("getPage"),requestId:t(),pageId:D}),Dt=g("status",[r({type:i("getPageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("getPageResult"),requestId:t(),status:i("error"),error:vn})]);var dn=t(),hn=r({code:dn,message:t(),isRetryable:h()}),wt=r({type:i("getUser"),requestId:t(),userId:Ke}),At=g("status",[r({type:i("getUserResult"),requestId:t(),status:i("success"),user:ie}),r({type:i("getUserResult"),requestId:t(),status:i("error"),error:hn})]);var gn=g("type",[r({type:i("emoji"),emoji:t()}),r({type:i("external"),url:t()})]),bn=r({name:t(),description:u(t()),type:ht}),kn=r({name:t(),description:u(t()),icon:u(gn),properties:u(F(t(),bn),{})}),pe=r({version:i(1),name:u(t()),description:u(t()),slashCommand:u(t()),icon:u(r({type:i("emoji"),emoji:t()})),dataSources:u(F(t(),kn),{})});var ve=R(["light","dark"]);var Sn=t(),In=r({code:Sn,message:t(),isRetryable:h()});var Ae=g("status",[r({type:i("init"),initializationId:t(),status:i("success"),theme:ve,contrastMode:fe,blockId:ne,parent:oe,page:me,manifest:pe,dataSources:r({bindings:le}),currentUser:ie}),r({type:i("init"),initializationId:t(),status:i("error"),error:In})]);var Tt=r({type:i("invalidSandboxMessage"),reason:t()});var _n=t(),xn=r({code:_n,message:t(),isRetryable:h()}),qt=r({type:i("listUsers"),requestId:t(),startCursor:u(t()),pageSize:u(P())}),Nt=g("status",[r({type:i("listUsersResult"),requestId:t(),status:i("success"),list:jt}),r({type:i("listUsersResult"),requestId:t(),status:i("error"),error:xn})]);var Cn=R(["side_peek","center_peek"]),Pn=t(),On=r({code:Pn,message:t(),isRetryable:h()}),Ft=r({type:i("openPage"),requestId:t(),pageId:D,mode:Cn}),Ut=g("status",[r({type:i("openPageResult"),requestId:t(),status:i("success"),pageId:D}),r({type:i("openPageResult"),requestId:t(),status:i("error"),error:On})]);var zt=r({type:i("pageChanged"),page:me});var Ht=r({type:i("parentChanged"),parent:oe});var Lt=r({unit:R(["year","month","week","day"]),value:P(),time:t(),defaultTimeZone:u(t())}),En=r({unit:R(["hour","minute"]),value:P()}),Vt=r({unit:i("none")}),jn=I([Lt,En]),Gt=u(I([Lt,Vt])),$t=u(I([jn,Vt])),Bn=r({type:i("date"),start_date:t(),reminder:Gt}),Rn=r({type:i("daterange"),start_date:t(),end_date:t(),reminder:Gt}),Mn=r({type:i("datetime"),start_date:t(),start_time:t(),time_zone:u(t()),reminder:$t}),Dn=r({type:i("datetimerange"),start_date:t(),start_time:t(),end_date:t(),end_time:t(),time_zone:u(t()),reminder:$t}),Qt=g("type",[Bn,Rn,Mn,Dn]);var Xt=I([t(),P(),h(),Qt,O(t()),O(we)]);var Wt=r({id:D,is_archived:h(),in_trash:h(),propertiesById:F(t(),u(Xt))}),Jt=r({id:D,is_archived:h(),in_trash:h(),properties:F(t(),u(Je))});var wn=t(),An=r({code:wn,message:t(),isRetryable:h()}),Kt=g("status",[r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("success"),items:O(I([Jt,Wt])),hasMore:h()}),r({type:i("queryDataSourceResult"),subscriptionId:t(),status:i("error"),error:An})]);var Yt=r({type:i("themeChanged"),theme:ve});var Tn=t(),qn=r({code:Tn,message:t(),isRetryable:h()}),Zt=g("status",[r({type:i("updatePageResult"),requestId:t(),status:i("success"),page:ye}),r({type:i("updatePageResult"),requestId:t(),status:i("error"),error:qn})]);var er=g("type",[Ae,Yt,_t,Ht,zt,Bt,Rt,Kt,Et,Dt,At,Nt,Ut,Zt,Tt]);function tr(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function rr(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Ye(e){let{currentBridgeProtocolVersion:n}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version: ${n}`,isRetryable:!1}}function Ze(e){let{currentBridgeProtocolVersion:n,minBridgeProtocolVersion:o}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${n} is not supported. Minimum supported version is ${o}.`,isRetryable:!1}}function et(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function nr(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function or(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function ir(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function sr(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function ar(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function ur(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Ce(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function se(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function tt(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var Nn=5e3,Fn=5e3,Un=5e3;function cr(e){let{prepareInit:n,sendInitMessage:o,warn:s,flushPendingHostStateChanges:c,minBridgeProtocolVersion:l,noConnectTimeoutMs:f=Nn,initialStateTimeoutMs:y=Fn,noInitResultTimeoutMs:m=Un,stopHostWithFailure:x,onInitResult:_,onConnectionFailure:M}=e,S="waitingForConnect",H,L,Q,j,V=!1,ae=!1;function W(){H!==void 0&&(window.clearTimeout(H),H=void 0)}function w(){L!==void 0&&(window.clearTimeout(L),L=void 0)}function T(){Q!==void 0&&(window.clearTimeout(Q),Q=void 0)}function q(b){let{initializationId:v,error:G,phase:ee,source:qe}=b;switch(S){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"error":case"stopped":return;default:return se(S)}S="error",j=v,W(),w(),o({type:"init",initializationId:v,status:"error",error:G}),M?.({...G,phase:ee,source:qe})}async function K(b){if(S==="waitingForConnect"){S="preparingInit",j=b.initializationId,W(),L=window.setTimeout(()=>{if(S!=="preparingInit")return;let v=nr();s({...v,initializationId:b.initializationId}),q({initializationId:b.initializationId,error:v,phase:"init",source:"host"})},y);try{let v=await n(b);if(S!=="preparingInit")return;if(w(),v.status==="error"){q({initializationId:b.initializationId,error:v.error,phase:"init",source:"host"});return}S="waitingForInitResult";let G={type:"init",initializationId:b.initializationId,status:"success",theme:v.initialState.theme,contrastMode:v.initialState.contrastMode??It,blockId:v.initialState.blockId,parent:v.initialState.parent,page:v.initialState.page,currentUser:v.initialState.currentUser,manifest:v.initialState.manifest,dataSources:v.initialState.dataSources};o(G),Q=window.setTimeout(()=>{if(S!=="waitingForInitResult")return;S="error";let ee=ar();M?.({...ee,phase:"initResult",source:"host"}),s({...ee,initializationId:b.initializationId})},m)}catch(v){if(S!=="preparingInit")return;s({message:"Failed to prepare custom block initialization",error:v}),q({initializationId:b.initializationId,error:Ce(),phase:"init",source:"host"})}}}function Z(b){if(S!=="stopped"&&S==="waitingForConnect"){if(!tt(b.bridgeProtocolVersion)){let v=Ye({currentBridgeProtocolVersion:b.bridgeProtocolVersion});q({initializationId:b.initializationId,error:v,phase:"connect",source:"host"});return}if(b.bridgeProtocolVersion<l){let v=Ze({currentBridgeProtocolVersion:b.bridgeProtocolVersion,minBridgeProtocolVersion:l});q({initializationId:b.initializationId,error:v,phase:"connect",source:"host"});return}if(b.status==="error"){q({initializationId:b.initializationId,error:b.error,phase:"connect",source:"sandbox"});return}ae=!0,K(b)}}function C(b){if(S==="stopped"||S!=="waitingForConnect")return"handled";let{initializationId:v,bridgeProtocolVersion:G}=b;if(v===void 0)return"nack";let ee=b.error;return G!==void 0&&(tt(G)?G<l&&(ee=Ze({currentBridgeProtocolVersion:G,minBridgeProtocolVersion:l})):ee=Ye({currentBridgeProtocolVersion:G})),q({initializationId:v,error:ee,phase:"connect",source:"host"}),"handled"}function ue(b){let{initializationId:v,error:G}=b;S!=="waitingForInitResult"||v===void 0||v!==j||(W(),T(),S="error",s(G),M?.({...G,phase:"initResult",source:"host"}))}function Be(){if(S!=="stopped"){if(V){x({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}V=!0,W(),S==="waitingForConnect"&&(H=window.setTimeout(()=>{if(S!=="waitingForConnect")return;S="error";let b=tr();s(b),M?.({...b,phase:"connect",source:"host"})},f))}}function de(b){if(S!=="waitingForInitResult"||b.initializationId!==j){s({message:"Ignored stale or unexpected initResult",payload:b});return}T(),S=b.status==="success"?"initialized":"error",b.status==="success"?c():M?.({...b.error,phase:"initResult",source:"sandbox"}),_?.(b)}function ce(){S="stopped",W(),w(),T()}return{get status(){return S},get hasConnectedSandbox(){return ae},handleConnect:Z,handleInitResult:de,handleInvalidConnect:C,handleInvalidInitResult:ue,onIframeLoad:Be,stop:ce}}function rt({url:e,hostOrigin:n}){return typeof n=="string"&&n!==""&&e.origin!==n&&(e.protocol==="http:"||e.protocol==="https:")&&(e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname.endsWith(".localhost"))&&e.username===""&&e.password===""}async function lr(e){let n=new AbortController,o=()=>n.abort();e.signal.addEventListener("abort",o,{once:!0});let s=new Promise((l,f)=>{n.signal.addEventListener("abort",()=>f(n.signal.reason),{once:!0})});e.signal.aborted&&n.abort();let c=e.manifestSource==="local"?window.setTimeout(()=>{n.abort(new Error("Manifest loading timed out after 5000 ms."))},5e3):void 0;try{let l=await Promise.race([e.manifestSource==="local"?zn(e.sandboxOrigin,n.signal):e.getPersistedManifest({signal:n.signal}),s]);if(n.signal.aborted)throw new Error("Manifest loading was cancelled.");return{status:"success",manifest:te(pe,l)}}catch(l){return e.signal.aborted||e.onError(l),{status:"error",error:{code:"manifest_unavailable",message:"The custom block manifest is unavailable.",isRetryable:!0}}}finally{window.clearTimeout(c),e.signal.removeEventListener("abort",o)}}async function zn(e,n){let o=new URL(e);if(!rt({url:o,hostOrigin:window.location.origin}))throw new Error("Preview requires a separate loopback origin.");let s=await fetch(new URL("/manifest",o),{credentials:"omit",redirect:"error",cache:"no-store",signal:n});if(!s.ok)throw new Error(`Manifest request failed: HTTP ${s.status}.`);return s.json()}function pr(e,n){return n>=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,...bt}}}]))}}}var fr=r({theme:ve,contrastMode:u(fe),blockId:ne,parent:oe,page:me,manifest:pe,dataSources:r({bindings:le}),currentUser:ie});function mr(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var yr=r({code:t(),message:t(),isRetryable:h()});var vr={type:i("connect"),initializationId:t(),bridgeProtocolVersion:P(),sdkVersion:t()},dr=g("status",[r({status:i("success"),manifest:u(pe),...vr}),r({status:i("error"),error:yr,...vr})]);var Hn=g("type",[r({type:i("start")}),r({type:i("end")}),r({type:i("before"),blockId:ne}),r({type:i("after"),blockId:ne})]),Ln=g("type",[r({type:i("page_id"),page_id:D}),r({type:i("data_source_id"),data_source_id:Y})]),hr=r({type:i("createPage"),requestId:t(),parent:Ln,properties:xe,position:u(Hn)});var Vn=t(),Gn=r({code:Vn,message:t(),isRetryable:h()}),gr=g("status",[r({type:i("initResult"),initializationId:t(),status:i("success"),initialHeight:u(U(P(),be(),Se(0)))}),r({type:i("initResult"),initializationId:t(),status:i("error"),error:Gn})]);var br=r({type:i("invalidHostMessage"),reason:t()});var kr=R(["ascending","descending"]);var Sr=U(D,He(/^(?:[0-9a-f]{32}|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12})$/i),Le(e=>e.replaceAll("-","").toLowerCase().replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5"))),nt=I([p({contains:Sr}),p({does_not_contain:Sr})]),je=I([p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Ee=I([t(),O(t())]),Ir=p({object:R(["user","group"]),id:U(t(),ke(1))}),$n=I([p({contains:Ir}),p({does_not_contain:Ir}),je]),_r=p({object:i("user"),id:U(t(),ke(1),Me(2e3))}),Qn=I([p({contains:_r}),p({does_not_contain:_r}),p({is_empty:i(!0)}),p({is_not_empty:i(!0)})]),Pe=I([p({equals:t()}),p({does_not_equal:t()}),p({contains:t()}),p({does_not_contain:t()}),p({starts_with:t()}),p({ends_with:t()}),je]),Xn=I([p({equals:P()}),p({does_not_equal:P()}),p({greater_than:P()}),p({less_than:P()}),p({greater_than_or_equal_to:P()}),p({less_than_or_equal_to:P()}),je]),Wn=I([p({equals:h()}),p({does_not_equal:h()})]),Or=I([p({equals:Ee}),p({does_not_equal:Ee}),je]),xr=R(["To-do","In progress","Complete","Current","Future"]),Cr=I([xr,U(O(xr),ke(1),Me(5))]),Jn=I([p({group_equals:Cr}),p({group_does_not_equal:Cr})]),Kn=I([Or,Jn]),Yn=I([p({contains:Ee}),p({contains_all:Ee}),p({does_not_contain:Ee}),je]),X=R(["start_date","end_date"]),Zn=R(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Oe=I([Zn,t()]),eo=I([p({target:u(X),equals:Oe}),p({target:u(X),before:Oe}),p({target:u(X),after:Oe}),p({target:u(X),on_or_before:Oe}),p({target:u(X),on_or_after:Oe}),p({target:u(X),this_week:p({})}),p({target:u(X),past_week:p({})}),p({target:u(X),past_month:p({})}),p({target:u(X),past_year:p({})}),p({target:u(X),next_week:p({})}),p({target:u(X),next_month:p({})}),p({target:u(X),next_year:p({})}),p({target:u(X),is_empty:i(!0)}),p({target:u(X),is_not_empty:i(!0)})]),Pr=I([p({propertyId:t(),relation:nt}),p({propertyId:t(),created_by:Qn}),p({propertyId:t(),title:Pe}),p({propertyId:t(),rich_text:Pe}),p({propertyId:t(),url:Pe}),p({propertyId:t(),email:Pe}),p({propertyId:t(),phone_number:Pe}),p({propertyId:t(),number:Xn}),p({propertyId:t(),checkbox:Wn}),p({propertyId:t(),select:Or}),p({propertyId:t(),multi_select:Yn}),p({propertyId:t(),status:Kn}),p({propertyId:t(),date:eo}),p({propertyId:t(),people:$n})]),to=I([Pr,p({and:O(Pr)})]),ot=10,ro=p({propertyId:t(),direction:kr}),Er=r({type:i("queryDataSource"),subscriptionId:t(),dataSourceId:Y,limit:P(),filter:u(to),sorts:u(O(ro))});var jr=r({type:i("resize"),height:U(P(),be(),Se(0))});var Br=r({type:i("unsubscribeDataSourceQuery"),subscriptionId:t()});var Rr=r({type:i("updatePage"),requestId:t(),pageId:D,properties:u(xe),icon:u(Xe),cover:u(We),archived:u(h())});var Mr=g("type",[dr,gr,Er,Br,hr,Mt,wt,qt,Ft,Rr,jr,br]);function Dr(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function wr(e){let n=Dr(e);return n==="invalidHostMessage"||n==="invalidSandboxMessage"?{incomingType:n}:{incomingType:n,nack:{type:"invalidSandboxMessage",reason:no(n)}}}function no(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var Ar=r({initializationId:t()}),oo=r({bridgeProtocolVersion:I([P(),Ve()])});function Tr(e){let{iframe:n,sandboxOrigin:o,getInitStatus:s,emit:c,sendNack:l,onInvalidConnect:f,onInvalidInitResult:y,onConnect:m,onInitResult:x,onQueryDataSource:_,onUnsubscribeDataSourceQuery:M,onCreatePage:S,onGetPage:H,onOpenPage:L,onGetUser:Q,onListUsers:j,onUpdatePage:V,onResize:ae}=e;function W(w,T){c("warn",{message:"Ignored unsupported sandbox message",payload:w,issues:T});let q=wr(w);if(q.incomingType==="connect"){let K=_e(Ar,w),Z=_e(oo,w);if(f({initializationId:K.success?K.output.initializationId:void 0,error:rr(),bridgeProtocolVersion:Z.success?Z.output.bridgeProtocolVersion:void 0})==="handled")return}if(q.incomingType==="initResult"){let K=_e(Ar,w);y({initializationId:K.success?K.output.initializationId:void 0,error:ur()})}q.nack!==void 0&&s()!=="stopped"&&l(q.nack)}return function(T){let q=T.source===n.contentWindow,K=T.origin===o;if(!q||!K)return;let Z=_e(Mr,T.data);if(!Z.success){W(T.data,Z.issues);return}let C=Z.output;if(!mr(C)&&s()!=="initialized"){c("warn",{message:`Ignored ${C.type} before initialization completed`,payload:C});return}switch(c("in",C),C.type){case"connect":m(C);return;case"initResult":x(C);return;case"queryDataSource":_(C);return;case"unsubscribeDataSourceQuery":M(C);return;case"createPage":S(C);return;case"openPage":L(C);return;case"getPage":H(C);return;case"getUser":Q(C);return;case"listUsers":j(C);return;case"updatePage":V(C);return;case"resize":ae(C);return;case"invalidHostMessage":return;default:se(C)}}}var Te=class{constructor(n){this.onUnsubscribe=n}onUnsubscribe;bySubscriptionId=new Map;subscribe(n){this.unsubscribe(n.subscriptionId);let o={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(n.subscriptionId,{message:n,token:o,isRefreshing:!0,shouldRefreshAgain:!1}),o}isCurrent(n,o){return this.bySubscriptionId.get(n)?.token===o}unsubscribe(n){this.bySubscriptionId.delete(n)&&this.onUnsubscribe(n)}refresh(n){let o=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===n){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,o.push({message:c.message,token:c.token})}return s?o:void 0}finish(n,o){let s=this.bySubscriptionId.get(n);if(s?.token===o&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let n of this.bySubscriptionId.keys())this.unsubscribe(n)}};function qr(e,n){if(e===void 0)return;let o="and"in e?e.and:[e];for(let s of o){let c=io(s,n);if(c!==void 0)return c}}function io(e,n){if(!Object.hasOwn(n.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 o=n.propertiesById[e.propertyId],s=Object.keys(e).find(y=>y!=="propertyId");if(s!==o.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${o.type}".`,isRetryable:!1};if("status"in e&&o.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,_=(Array.isArray(m)?m:[m]).find(M=>!o.groups.some(S=>S.name===M));return _===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${_}".`,isRetryable:!1}}}if("relation"in e&&!mt(nt,e.relation))return{code:"invalid_data_source_query_filter",message:"Relation filters require a page ID.",isRetryable:!1};let c=so(e);if(c===void 0||o.type!==c.propertyType)return;let l=new Set(o.options.map(y=>y.name)),f=ao(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 so(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 n=e.status;return"group_equals"in n||"group_does_not_equal"in n?void 0:{propertyType:"status",operator:n}}}function ao(e){let n;if("equals"in e)n=e.equals;else if("does_not_equal"in e)n=e.does_not_equal;else if("contains"in e)n=e.contains;else if("contains_all"in e)n=e.contains_all;else if("does_not_contain"in e)n=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:se(e);return Array.isArray(n)?n:[n]}var uo=new Set(gt);function Nr(e,n){if(e===void 0)return;if(e.length>ot)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${ot} entries.`,isRetryable:!1};let o=new Set;for(let s of e){if(o.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(o.add(s.propertyId),!Object.hasOwn(n.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=n.propertiesById[s.propertyId];if(!uo.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 Ur=5;function co(e){let{iframe:n,prepareInitialState:o,handlers:s,onInitialized:c,onConnectionFailure:l,onLog:f,onQueryUnsubscribed:y,sandboxOrigin:m,minBridgeProtocolVersion:x,noConnectTimeoutMs:_,initialStateTimeoutMs:M,noInitResultTimeoutMs:S}=e,H=Math.max(x??3,3),L={},Q=!1,j=new AbortController,V,ae,W=6,w=new Te(a=>{y?.(a)});function T(a,k){f?.(a,k)}function q(a){let k=v.status;switch(k){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"error":break;case"stopped":return;default:return se(k)}let N=pr(a,W);T("out",N),n.contentWindow?.postMessage(N,m)}function K(a){q(te(Ae,a))}function Z(a){q(a)}function C(a){let k=v.status;switch(k){case"initialized":q(te(er,a));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"error":case"stopped":return;default:se(k)}}async function ue(a,k){if(k===void 0)return;let N=await k(a);C({type:`${a.type}Result`,requestId:a.requestId,...N})}function Be(a){let k=a.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:a.subscriptionId,status:"error",error:a.response.error}:{type:"queryDataSourceResult",subscriptionId:a.subscriptionId,status:"success",items:a.response.items,hasMore:a.response.hasMore};C(k)}async function de(a,k=w.subscribe(a)){try{let N=lo(ae,a.dataSourceId),he=po(a,N);if(he!==void 0){w.isCurrent(a.subscriptionId,k)&&(w.unsubscribe(a.subscriptionId),Be({subscriptionId:a.subscriptionId,response:{status:"error",error:he}}));return}let Ne=await s.queryDataSource(a);if(!w.isCurrent(a.subscriptionId,k))return;Ne.status==="error"&&!Ne.error.isRetryable&&w.unsubscribe(a.subscriptionId),Be({subscriptionId:a.subscriptionId,response:Ne})}finally{let N=w.finish(a.subscriptionId,k);N!==void 0&&de(N.message,N.token)}}function ce(a){v.status==="stopped"||v.status==="error"||(Object.assign(L,a),b())}function b(){if(v.status!=="initialized")return;let a=L;L={},a.theme!==void 0&&C({type:"themeChanged",theme:a.theme}),a.contrastMode!==void 0&&C({type:"contrastModeChanged",contrastMode:a.contrastMode}),a.parent!==void 0&&C({type:"parentChanged",parent:a.parent}),a.page!==void 0&&C({type:"pageChanged",page:a.page}),a.dataSources!==void 0&&C({type:"dataSourcesChanged",dataSources:a.dataSources}),a.currentUser!==void 0&&C({type:"currentUserChanged",currentUser:a.currentUser})}let v=cr({async prepareInit(a){W=a.bridgeProtocolVersion;let k=await ee;return v.status!=="preparingInit"?k:G(k)},sendInitMessage:K,warn:a=>T("warn",a),flushPendingHostStateChanges:b,minBridgeProtocolVersion:H,noConnectTimeoutMs:_,initialStateTimeoutMs:M,noInitResultTimeoutMs:S,stopHostWithFailure:at,onInitResult(a){a.status==="success"&&V!==void 0&&c?.({manifest:V,initialHeight:a.initialHeight})},onConnectionFailure:a=>{j.abort(),l?.(a)}});function G(a){if(a.status==="error")return a;let k=te(fr,{...a.initialState,...L});if(V=k.manifest,L={},W<Ur&&k.page.type==="unavailable")return{status:"error",error:et()};let N=zr(k.manifest,k.dataSources);return N!==void 0?{status:"error",error:N}:(ae=k.dataSources,Q=!0,{status:"success",initialState:k})}let ee=qe().catch(a=>(j.signal.aborted||T("warn",{message:"Failed to prepare custom block initialization",error:a}),{status:"error",error:Ce()}));async function qe(){let a=await lr({...e,sandboxOrigin:m,signal:j.signal,onError:N=>{T("warn",{message:"Failed to load custom block manifest",error:N})}});if(a.status==="error")return a;if(j.signal.aborted)return{status:"error",error:Ce()};let k=await o({manifest:a.manifest,signal:j.signal});return k.status==="error"?k:{status:"success",initialState:{...k.initialState,manifest:a.manifest}}}let it=Tr({iframe:n,sandboxOrigin:m,getInitStatus:()=>v.status,emit:T,sendNack:Z,onInvalidConnect:v.handleInvalidConnect,onInvalidInitResult:v.handleInvalidInitResult,onConnect:v.handleConnect,onInitResult:v.handleInitResult,onQueryDataSource:de,onUnsubscribeDataSourceQuery:a=>w.unsubscribe(a.subscriptionId),onCreatePage:a=>ue(a,s.createPage),onGetPage:a=>ue(a,s.getPage),onOpenPage:a=>ue(a,s.openPage),onGetUser:a=>ue(a,s.getUser),onListUsers:a=>ue(a,s.listUsers),onUpdatePage:a=>ue(a,s.updatePage),onResize:a=>s.resize?.(a)});window.addEventListener("message",it),n.addEventListener("load",v.onIframeLoad);function st(){j.abort(),window.removeEventListener("message",it),n.removeEventListener("load",v.onIframeLoad),v.stop(),w.unsubscribeAll()}function at(a){st(),T("warn",a),l?.(a)}return{stop:st,setTheme(a){ce({theme:a})},setContrastMode(a){ce({contrastMode:a})},setParent(a){ce({parent:a})},setPage(a){if(a.type==="unavailable"&&W<Ur&&(v.status==="preparingInit"&&Q||v.status==="waitingForInitResult"||v.status==="initialized")){at({...et(),phase:"runtime",source:"host"});return}ce({page:a})},setCurrentUser(a){ce({currentUser:a})},setDataSources(a){let k={bindings:te(le,a.bindings)};if(v.hasConnectedSandbox&&V!==void 0&&zr(V,k)!==void 0){T("warn",{message:"Ignored invalid data source bindings update",payload:k});return}ae=k,ce({dataSources:k})},refreshQuery({dataSourceId:a}){if(v.status!=="initialized")return;let k=te(Y,a),N=w.refresh(k);if(N===void 0){T("warn",`No active query exists for data source "${a}"`);return}for(let he of N)de(he.message,he.token)}}}function lo(e,n){return Object.values(e?.bindings??{}).find(o=>o.collectionPointer?.id===n)?.collectionSchema}function zr(e,n){for(let[o,s]of Object.entries(e.dataSources)){let c=n.bindings[o];if(c?.collectionPointer===void 0||c.collectionSchema===void 0)return or();for(let[l,f]of Object.entries(s.properties??{})){let y=c.propertyIdsByKey?.[l];if(y===void 0)return ir();if(c.collectionSchema.propertiesById[y]?.type!==f.type)return sr()}}}function po(e,n){return n===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}:qr(e.filter,n)??Nr(e.sorts,n)}function fo(e){return te(D,e)}export{Fe as LATEST_BRIDGE_PROTOCOL_VERSION,Hr as LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION,co as createCustomBlockHost,Lr as getAutoBoundPropertyIdsByKey,rt as isLocalCustomBlockUrl,fo as toNotionPageId};
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export type { CustomBlockCheckboxFilterOperator, CustomBlockContainsFilterOperat
12
12
  export type { ResizeMessage } from "./protocol/messages/resize.js";
13
13
  export type { UpdatePageMessage } from "./protocol/messages/updatePage.js";
14
14
  export type { NotionDateInput, NotionFileInput, NotionPageCover, NotionPageIcon, NotionPagePropertyReadMap, NotionPagePropertyValue, NotionPagePropertyWriteMap, NotionRichTextItem, NotionSelectOptionInput, } from "./protocol/pages/page.js";
15
- export { LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION } from "./protocol/protocolVersion.js";
15
+ export { LATEST_BRIDGE_PROTOCOL_VERSION, LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION, } from "./protocol/protocolVersion.js";
16
16
  export { type AutoBindableProperty, getAutoBoundPropertyIdsByKey, } from "./autoBindProperties.js";
17
17
  export { type CustomBlockHostHandle, type CustomBlockHostOptions, createCustomBlockHost, } from "./createCustomBlockHost.js";
18
18
  export { toNotionPageId } from "./ids.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,gCAAgC,EAChC,0BAA0B,GAC1B,MAAM,gEAAgE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAA;AAC/G,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AACvF,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,iCAAiC,EACjC,+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,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qDAAqD,CAAA;AAC5G,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,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,GAClC,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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,gCAAgC,EAChC,0BAA0B,GAC1B,MAAM,gEAAgE,CAAA;AACvE,YAAY,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAA;AAC/G,YAAY,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAA;AACtF,YAAY,EAAE,YAAY,EAAE,MAAM,yCAAyC,CAAA;AAC3E,YAAY,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAA;AACvF,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,iCAAiC,EACjC,+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,yBAAyB,EACzB,uBAAuB,EACvB,0BAA0B,EAC1B,kBAAkB,EAClB,uBAAuB,GACvB,MAAM,gDAAgD,CAAA;AACvD,OAAO,EACN,8BAA8B,EAC9B,sCAAsC,GACtC,MAAM,qDAAqD,CAAA;AAC5D,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,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AACzC,YAAY,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAA;AACpF,YAAY,EACX,qBAAqB,EACrB,iCAAiC,EACjC,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,GAClC,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,4 +1,4 @@
1
- export { LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION } from "./protocol/protocolVersion.js";
1
+ export { LATEST_BRIDGE_PROTOCOL_VERSION, LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION, } from "./protocol/protocolVersion.js";
2
2
  export { getAutoBoundPropertyIdsByKey, } from "./autoBindProperties.js";
3
3
  export { createCustomBlockHost, } from "./createCustomBlockHost.js";
4
4
  export { toNotionPageId } from "./ids.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@notionhq/custom-blocks-host",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "Reusable host runtime for Notion custom blocks.",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -43,7 +43,10 @@ export type {
43
43
  NotionRichTextItem,
44
44
  NotionSelectOptionInput,
45
45
  } from "@notionhq/custom-blocks-protocol/pages/page.js"
46
- export { LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION } from "@notionhq/custom-blocks-protocol/protocolVersion.js"
46
+ export {
47
+ LATEST_BRIDGE_PROTOCOL_VERSION,
48
+ LEGACY_PROPERTY_SHAPE_PROTOCOL_VERSION,
49
+ } from "@notionhq/custom-blocks-protocol/protocolVersion.js"
47
50
  export {
48
51
  type AutoBindableProperty,
49
52
  getAutoBoundPropertyIdsByKey,