@notionhq/custom-blocks-host 0.4.3 → 0.5.0
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 +4 -0
- package/dist/browser.js +1 -1
- package/dist/context/initialState.d.ts +5 -13
- package/dist/context/initialState.d.ts.map +1 -1
- package/dist/createCustomBlockHost.d.ts +20 -9
- package/dist/createCustomBlockHost.d.ts.map +1 -1
- package/dist/createCustomBlockHost.js +9 -4
- package/dist/dataSources/types.d.ts +7 -3
- package/dist/dataSources/types.d.ts.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/manifest/types.d.ts +3 -7
- package/dist/manifest/types.d.ts.map +1 -1
- package/dist/messages/handlers.d.ts +10 -9
- package/dist/messages/handlers.d.ts.map +1 -1
- package/dist/messages/result.d.ts +12 -0
- package/dist/messages/result.d.ts.map +1 -0
- package/dist/messages/result.js +1 -0
- package/dist/navigation/types.d.ts +1 -3
- package/dist/navigation/types.d.ts.map +1 -1
- package/dist/pages/types.d.ts +12 -14
- package/dist/pages/types.d.ts.map +1 -1
- package/dist/protocol/pages/makeBridgePage.d.ts +3 -1
- package/dist/protocol/users/makeBridgeUser.d.ts +3 -1
- package/dist/users/types.d.ts +11 -5
- package/dist/users/types.d.ts.map +1 -1
- package/docs/handlers.md +15 -7
- package/docs/lifecycle.md +14 -0
- package/package.json +1 -1
- package/src/context/initialState.ts +7 -16
- package/src/createCustomBlockHost.ts +38 -19
- package/src/dataSources/types.ts +8 -11
- package/src/index.ts +5 -6
- package/src/manifest/types.ts +4 -4
- package/src/messages/handlers.ts +11 -19
- package/src/messages/result.ts +11 -0
- package/src/navigation/types.ts +1 -11
- package/src/pages/types.ts +13 -46
- package/src/users/types.ts +12 -21
package/README.md
CHANGED
|
@@ -9,6 +9,10 @@ Create the host before navigating the iframe. Pass the full block URL as `sandbo
|
|
|
9
9
|
|
|
10
10
|
For configuration and lifecycle details, see [Initialization and lifecycle](docs/lifecycle.md).
|
|
11
11
|
|
|
12
|
+
Implement `CustomBlockHostHandlers` to connect the host to your application. Handlers return shared
|
|
13
|
+
bridge data using `CustomBlockHostResult`. Use `makeBridgePage` to construct a complete `BridgePage`
|
|
14
|
+
from your records. See [Return bridge data](docs/handlers.md#return-bridge-data).
|
|
15
|
+
|
|
12
16
|
## Create a host
|
|
13
17
|
|
|
14
18
|
Install `@notionhq/custom-blocks-host` in your embedding application. Run this TypeScript through
|
package/dist/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Le,Jo={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function st(e){return!e&&!Le?Jo:{lang:e?.lang??Le?.lang,message:e?.message,abortEarly:e?.abortEarly??Le?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Le?.abortPipeEarly}}var Yo;function en(e){return Yo?.get(e)}var tn;function rn(e){return tn?.get(e)}var on;function nn(e,t){return on?.get(e)?.get(t)}function ke(e){let t=typeof e;return t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t==="object"||t==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function w(e,t,i,s,c){let p=c&&"input"in c?c.input:i.value,m=c?.expected??e.expects??null,h=c?.received??ke(p),y={kind:e.kind,type:e.type,input:p,expected:m,received:h,message:`Invalid ${t}: ${m?`Expected ${m} but r`:"R"}eceived ${h}`,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??nn(e.reference,y.lang)??(x?rn(y.lang):null)??s.message??en(y.lang);_!==void 0&&(y.message=typeof _=="function"?_(y):_),x&&(i.typed=!1),i.issues?i.issues.push(y):i.issues=[y]}function sn(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function an(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&t!=="__proto__"&&t!=="prototype"&&t!=="constructor"}function at(e,t){let i=[...new Set(e)];return i.length>1?`(${i.join(` ${t} `)})`:i[0]??"never"}function W(e){return e["~standard"]={version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},st())},e}var un=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function ce(e){return{kind:"transformation",type:"brand",reference:ce,async:!1,name:e,"~run"(t){return t}}}function De(e){return{kind:"validation",type:"finite",reference:De,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(t,i){return t.typed&&!this.requirement(t.value)&&w(this,"finite",t,i),t}}}function ut(e,t){let i=ke(e);return{kind:"validation",type:"includes",reference:ut,async:!1,expects:i,requirement:e,message:t,"~run"(s,c){return s.typed&&!s.value.includes(this.requirement)&&w(this,"content",s,c,{received:`!${i}`}),s}}}function we(e,t){return{kind:"validation",type:"max_length",reference:we,async:!1,expects:`<=${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&i.value.length>this.requirement&&w(this,"length",i,s,{received:`${i.value.length}`}),i}}}function he(e,t){return{kind:"validation",type:"min_length",reference:he,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&i.value.length<this.requirement&&w(this,"length",i,s,{received:`${i.value.length}`}),i}}}function Te(e,t){return{kind:"validation",type:"min_value",reference:Te,async:!1,expects:`>=${e instanceof Date?e.toJSON():ke(e)}`,requirement:e,message:t,"~run"(i,s){return i.typed&&!(i.value>=this.requirement)&&w(this,"value",i,s,{received:i.value instanceof Date?i.value.toJSON():ke(i.value)}),i}}}function ct(e,t){return{kind:"validation",type:"regex",reference:ct,async:!1,expects:`${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&!this.requirement.test(i.value)&&w(this,"format",i,s),i}}}function lt(e){return{kind:"transformation",type:"transform",reference:lt,async:!1,operation:e,"~run"(t){return t.value=this.operation(t.value),t}}}var Dt={abortEarly:!0};function wt(e,t,i){return typeof e.fallback=="function"?e.fallback(t,i):e.fallback}function Ve(e,t,i){return typeof e.default=="function"?e.default(t,i):e.default}function Tt(e,t){return!e["~run"]({value:t},Dt).issues}function E(e,t){return W({kind:"schema",type:"array",reference:E,expects:"Array",async:!1,item:e,message:t,"~run"(i,s){let c=i.value;if(Array.isArray(c)){i.typed=!0,i.value=[];for(let p=0;p<c.length;p++){let m=c[p],h=this.item["~run"]({value:m},s);if(h.issues){let y={type:"array",origin:"value",input:c,key:p,value:m};for(let x of h.issues)x.path?x.path.unshift(y):x.path=[y],i.issues?.push(x);if(i.issues||(i.issues=h.issues),s.abortEarly){i.typed=!1;break}}h.typed||(i.typed=!1),i.value.push(h.value)}}else w(this,"type",i,s);return i}})}function b(e){return W({kind:"schema",type:"boolean",reference:b,expects:"boolean",async:!1,message:e,"~run"(t,i){return typeof t.value=="boolean"?t.typed=!0:w(this,"type",t,i),t}})}function n(e,t){return W({kind:"schema",type:"literal",reference:n,expects:ke(e),async:!1,literal:e,message:t,"~run"(i,s){return sn(i.value,this.literal)?i.typed=!0:w(this,"type",i,s),i}})}function pt(e){return W({kind:"schema",type:"nan",reference:pt,expects:"NaN",async:!1,message:e,"~run"(t,i){return Number.isNaN(t.value)?t.typed=!0:w(this,"type",t,i),t}})}function ft(e){return W({kind:"schema",type:"never",reference:ft,expects:"never",async:!1,message:e,"~run"(t,i){return w(this,"type",t,i),t}})}function D(e,t){return W({kind:"schema",type:"nullable",reference:D,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,"~run"(i,s){return i.value===null&&(this.default!==void 0&&(i.value=Ve(this,i,s)),i.value===null)?(i.typed=!0,i):this.wrapped["~run"](i,s)}})}function O(e){return W({kind:"schema",type:"number",reference:O,expects:"number",async:!1,message:e,"~run"(t,i){return typeof t.value=="number"&&!isNaN(t.value)?t.typed=!0:w(this,"type",t,i),t}})}function o(e,t){return W({kind:"schema",type:"object",reference:o,expects:"Object",async:!1,entries:e,message:t,"~run"(i,s){let c=i.value;if(c&&typeof c=="object"){i.typed=!0,i.value={};for(let p in this.entries){let m=this.entries[p];if(p in c||(m.type==="exact_optional"||m.type==="optional"||m.type==="nullish")&&m.default!==void 0){let h=p in c?c[p]:Ve(m),y=m["~run"]({value:h},s);if(y.issues){let x={type:"object",origin:"value",input:c,key:p,value:h};for(let _ of y.issues)_.path?_.path.unshift(x):_.path=[x],i.issues?.push(_);if(i.issues||(i.issues=y.issues),s.abortEarly){i.typed=!1;break}}y.typed||(i.typed=!1),i.value[p]=y.value}else if(m.fallback!==void 0)i.value[p]=wt(m);else if(m.type!=="exact_optional"&&m.type!=="optional"&&m.type!=="nullish"&&(w(this,"key",i,s,{input:void 0,expected:`"${p}"`,path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]}),s.abortEarly))break}}else w(this,"type",i,s);return i}})}function a(e,t){return W({kind:"schema",type:"optional",reference:a,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,"~run"(i,s){return i.value===void 0&&(this.default!==void 0&&(i.value=Ve(this,i,s)),i.value===void 0)?(i.typed=!0,i):this.wrapped["~run"](i,s)}})}function T(e,t){return W({kind:"schema",type:"picklist",reference:T,expects:at(e.map(ke),"|"),async:!1,options:e,message:t,"~run"(i,s){return this.options.includes(i.value)?i.typed=!0:w(this,"type",i,s),i}})}function $(e,t,i){return W({kind:"schema",type:"record",reference:$,expects:"Object",async:!1,key:e,value:t,message:i,"~run"(s,c){let p=s.value;if(p&&typeof p=="object"){s.typed=!0,s.value={};for(let m in p)if(an(p,m)){let h=p[m],y=this.key["~run"]({value:m},c);if(y.issues){let _={type:"object",origin:"key",input:p,key:m,value:h};for(let M of y.issues)M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=y.issues),c.abortEarly){s.typed=!1;break}}let x=this.value["~run"]({value:h},c);if(x.issues){let _={type:"object",origin:"value",input:p,key:m,value:h};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}}(!y.typed||!x.typed)&&(s.typed=!1),y.typed&&(s.value[y.value]=x.value)}}else w(this,"type",s,c);return s}})}function l(e,t){return W({kind:"schema",type:"strict_object",reference:l,expects:"Object",async:!1,entries:e,message:t,"~run"(i,s){let c=i.value;if(c&&typeof c=="object"){i.typed=!0,i.value={};for(let p in this.entries){let m=this.entries[p];if(p in c||(m.type==="exact_optional"||m.type==="optional"||m.type==="nullish")&&m.default!==void 0){let h=p in c?c[p]:Ve(m),y=m["~run"]({value:h},s);if(y.issues){let x={type:"object",origin:"value",input:c,key:p,value:h};for(let _ of y.issues)_.path?_.path.unshift(x):_.path=[x],i.issues?.push(_);if(i.issues||(i.issues=y.issues),s.abortEarly){i.typed=!1;break}}y.typed||(i.typed=!1),i.value[p]=y.value}else if(m.fallback!==void 0)i.value[p]=wt(m);else if(m.type!=="exact_optional"&&m.type!=="optional"&&m.type!=="nullish"&&(w(this,"key",i,s,{input:void 0,expected:`"${p}"`,path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]}),s.abortEarly))break}if(!i.issues||!s.abortEarly){for(let p in c)if(!Object.prototype.hasOwnProperty.call(this.entries,p)){w(this,"key",i,s,{input:p,expected:"never",path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]});break}}}else w(this,"type",i,s);return i}})}function r(e){return W({kind:"schema",type:"string",reference:r,expects:"string",async:!1,message:e,"~run"(t,i){return typeof t.value=="string"?t.typed=!0:w(this,"type",t,i),t}})}function Mt(e){let t;if(e)for(let i of e)if(t)for(let s of i.issues)t.push(s);else t=i.issues;return t}function d(e,t){return W({kind:"schema",type:"union",reference:d,expects:at(e.map(i=>i.expects),"|"),async:!1,options:e,message:t,"~run"(i,s){let c,p,m;for(let h of this.options){let y=h["~run"]({value:i.value},s);if(y.typed)if(y.issues)p?p.push(y):p=[y];else{c=y;break}else m?m.push(y):m=[y]}if(c)return c;if(p){if(p.length===1)return p[0];w(this,"type",i,s,{issues:Mt(p)}),i.typed=!0}else{if(m?.length===1)return m[0];w(this,"type",i,s,{issues:Mt(m)})}return i}})}function qe(){return W({kind:"schema",type:"unknown",reference:qe,expects:"unknown",async:!1,"~run"(e){return e.typed=!0,e}})}function v(e,t,i){return W({kind:"schema",type:"variant",reference:v,expects:"Object",async:!1,key:e,options:t,message:i,"~run"(s,c){let p=s.value;if(p&&typeof p=="object"){let m,h=0,y=this.key,x=[],_=(M,X)=>{for(let V of M.options){if(V.type==="variant")_(V,new Set(X).add(V.key));else{let g=!0,N=0;for(let j of X){let z=V.entries[j];if(j in p?z["~run"]({typed:!1,value:p[j]},Dt).issues:z.type!=="exact_optional"&&z.type!=="optional"&&z.type!=="nullish"){g=!1,y!==j&&(h<N||h===N&&j in p&&!(y in p))&&(h=N,y=j,x=[]),y===j&&x.push(V.entries[j].expects);break}N++}if(g){let j=V["~run"]({value:p},c);(!m||!m.typed&&j.typed)&&(m=j)}}if(m&&!m.issues)break}};if(_(this,new Set([this.key])),m)return m;w(this,"type",s,c,{input:p[y],expected:at(x,"|"),path:[{type:"object",origin:"value",input:p,key:y,value:p[y]}]})}else w(this,"type",s,c);return s}})}function qt(e,t){let i={...e.entries};for(let s of t)delete i[s];return W({...e,entries:i})}function se(e,t,i){let s=e["~run"]({value:t},st(i));if(s.issues)throw new un(s.issues);return s.value}function A(...e){return W({...e[0],pipe:e,"~run"(t,i){for(let s of e)if(s.kind!=="metadata"){if(t.issues&&(s.kind==="schema"||s.kind==="transformation")){t.typed=!1;break}(!t.issues||!i.abortEarly&&!i.abortPipeEarly)&&(t=s["~run"](t,i))}return t}})}function Ie(e,t,i){let s=e["~run"]({value:t},st(i));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var le=A(r(),ce("NotionBlockId")),Z=A(r(),ce("NotionDataSourceId")),F=A(r(),ce("NotionPageId")),At=A(r(),ce("NotionAgentId")),Nt=A(r(),ce("NotionSpaceId"));var Ut=o({id:Z,table:r(),spaceId:a(Nt)});var Ft=T(["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"]),mt=o({id:r(),name:r(),color:a(Ft),description:a(r())}),cn=o({id:r(),name:r(),color:a(Ft),option_ids:E(r())}),ln=o({synced_property_id:r(),synced_property_name:r()}),B=o({name:r(),description:a(r())}),pn=["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"],zt=T(pn),Ht=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],Lt=v("type",[o({...B.entries,type:n("title")}),o({...B.entries,type:n("rich_text")}),o({...B.entries,type:n("number")}),o({...B.entries,type:n("checkbox")}),o({...B.entries,type:n("url")}),o({...B.entries,type:n("email")}),o({...B.entries,type:n("phone_number")}),o({...B.entries,type:n("select"),options:E(mt)}),o({...B.entries,type:n("multi_select"),options:E(mt)}),o({...B.entries,type:n("status"),options:E(mt),groups:E(cn)}),o({...B.entries,type:n("date")}),o({...B.entries,type:n("people")}),o({...B.entries,type:n("files")}),o({...B.entries,type:n("unique_id")}),o({...B.entries,type:n("relation"),data_source_id:a(r()),dual_property:a(ln)}),o({...B.entries,type:n("place")}),o({...B.entries,type:n("formula")}),o({...B.entries,type:n("rollup")}),o({...B.entries,type:n("button")}),o({...B.entries,type:n("verification")}),o({...B.entries,type:n("last_visited_time")}),o({...B.entries,type:n("location")}),o({...B.entries,type:n("created_time")}),o({...B.entries,type:n("last_edited_time")}),o({...B.entries,type:n("created_by")}),o({...B.entries,type:n("last_edited_by")})]);var Vt={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 Gt=o({id:a(Z),propertiesById:$(r(),Lt)});var $t=o({collectionPointer:a(Ut),collectionSchema:a(Gt),propertyIdsByKey:a($(r(),a(r()))),inaccessible:a(n(!0))});var ye=$(r(),$t);function Qt(e){let t=Object.entries(e.manifestDataSource.properties??{}).map(([i,s])=>{let c=e.propertyIdsByKey?.[i],p=c===void 0?void 0:e.collectionSchema?.propertiesById[c];return fn(i,c,p?.type,s.type)});return e.collectionSchema===void 0?{status:"missing_schema",properties:t}:t.every(i=>i.status==="mapped")?{status:"complete",properties:t}:{status:"incomplete",properties:t}}function fn(e,t,i,s){return t===void 0?{status:"missing",propertyKey:e,propertyId:t}:i===void 0?{status:"invalid",propertyKey:e,propertyId:t}:{status:i===s?"mapped":"incompatible",propertyKey:e,propertyId:t}}var Ge=o({type:n("page_id"),page_id:F}),$e=o({type:n("data_source_id"),data_source_id:Z}),mn=o({type:n("workspace"),workspace:n(!0)}),yn=o({type:n("block_id"),block_id:le}),dn=o({type:n("agent_id"),agent_id:At}),vn=o({type:n("unavailable")}),re=v("type",[Ge,$e,mn,yn,dn,vn]);var _e=v("type",[o({type:n("unavailable")}),o({type:n("page"),id:F,parent:re})]);var xe=T(["standard","high"]),Wt="standard";var Ce=T(["light","dark"]);var Xt=o({capability:r(),resource:r()});var hn=v("type",[o({type:n("emoji"),emoji:r()}),o({type:n("external"),url:r()})]),gn=o({name:r(),description:a(r()),type:zt}),bn=o({name:r(),description:a(r()),icon:a(hn),properties:a($(r(),gn),{})}),de=o({version:n(1),name:a(r()),description:a(r()),slashCommand:a(r()),icon:a(o({type:n("emoji"),emoji:r()})),dataSources:a($(r(),bn),{}),capabilities:a(E(Xt))});var Qe=A(r(),ce("NotionUserId"));var ae=o({object:n("user"),id:Qe,name:a(r()),avatar_url:D(r()),type:n("person"),person:o({email:r()})});var Sn=r(),Ne=o({code:Sn,message:r(),isRetryable:b()}),Ae=class extends Error{constructor(t){super(t.message),this.name="CustomBlockInitializationError",this.code=t.code,this.isRetryable=t.isRetryable}code;isRetryable},We=v("status",[o({type:n("init"),initializationId:r(),status:n("success"),theme:Ce,contrastMode:xe,blockId:le,parent:re,page:_e,manifest:de,dataSources:o({bindings:ye}),currentUser:ae}),o({type:n("init"),initializationId:r(),status:n("error"),error:Ne})]);var Kt=o({type:n("contrastModeChanged"),contrastMode:xe});var Zt=o({type:n("pageChanged"),page:_e});var Jt=o({type:n("parentChanged"),parent:re});var Yt=o({type:n("themeChanged"),theme:Ce});var er=o({type:n("dataSourcesChanged"),dataSources:o({bindings:ye})});var Xe=o({unit:T(["year","month","week","day"]),value:O(),time:r(),defaultTimeZone:a(r())}),kn=o({unit:T(["hour","minute"]),value:O()}),Ue=o({unit:n("none")}),yt=d([Xe,kn]),tr=a(d([Xe,Ue])),rr=a(d([yt,Ue])),In=o({type:n("date"),start_date:r(),reminder:tr}),_n=o({type:n("daterange"),start_date:r(),end_date:r(),reminder:tr}),xn=o({type:n("datetime"),start_date:r(),start_time:r(),time_zone:a(r()),reminder:rr}),Cn=o({type:n("datetimerange"),start_date:r(),start_time:r(),end_date:r(),end_time:r(),time_zone:a(r()),reminder:rr}),or=v("type",[In,_n,xn,Cn]);var Ke=o({id:r(),table:r()});var nr=d([r(),O(),b(),or,E(r()),E(Ke)]);var ir=o({id:F,is_archived:b(),in_trash:b(),propertiesById:$(r(),a(nr))});var Pn=o({type:n("emoji"),emoji:r()}),En=o({type:n("custom_emoji"),custom_emoji:o({id:r(),name:a(r()),url:a(r())})}),sr=o({type:n("external"),external:o({url:r()})}),ar=o({type:n("file"),file:o({url:r(),expiry_time:a(r())})}),Pe=v("type",[Pn,En,sr,ar]),Ee=v("type",[sr,ar]);var L=D(r());var dt={start:r(),end:a(L),time_zone:a(L),reminder:a(d([yt,Ue]))},ur=d([o({...dt,start:A(r(),ut("T"))}),o({...dt,time_zone:r()}),o({...dt,reminder:a(d([Xe,Ue]))})]);var cr=d([o({type:n("external"),name:r(),external:o({url:r()})}),o({type:n("file"),name:r(),file:o({url:r(),expiry_time:a(r())})})]);var Oe=D(o({...Ke.entries,table:T(["notion_user","bot","organization_bot"]),spaceId:a(r())}));var lr=o({lat:O(),lon:O(),name:a(L),address:a(L),aws_place_id:a(L),google_place_id:a(L)});var pr=o({id:r()});var vt=$(r(),qe());var Ze=d([o({id:r(),name:a(r()),color:a(r()),description:a(L)}),o({name:r(),id:a(r()),color:a(r()),description:a(L)})]);var fr=d([o({object:a(n("user")),id:r()}),o({object:n("group"),id:r(),name:a(L)})]);var R={id:r()},ht=v("type",[o({...R,type:n("title"),title:E(vt)}),o({...R,type:n("rich_text"),rich_text:E(vt)}),o({...R,type:n("number"),number:D(O())}),o({...R,type:n("url"),url:L}),o({...R,type:n("email"),email:L}),o({...R,type:n("phone_number"),phone_number:L}),o({...R,type:n("checkbox"),checkbox:b()}),o({...R,type:n("select"),select:D(Ze)}),o({...R,type:n("status"),status:D(Ze)}),o({...R,type:n("multi_select"),multi_select:E(Ze)}),o({...R,type:n("date"),date:D(ur)}),o({...R,type:n("people"),people:E(fr)}),o({...R,type:n("relation"),has_more:a(b()),relation:E(pr)}),o({...R,type:n("files"),files:E(cr)}),o({...R,type:n("place"),place:D(lr)}),o({...R,type:n("created_time"),created_time:L}),o({...R,type:n("last_edited_time"),last_edited_time:L}),o({...R,type:n("created_by"),created_by:Oe}),o({...R,type:n("last_edited_by"),last_edited_by:Oe}),o({...R,type:n("last_visited_time"),last_visited_time:L}),o({...R,type:n("unique_id"),unique_id:r()}),o({...R,type:n("button"),button:r()}),o({...R,type:n("formula"),formula:r()}),o({...R,type:n("location"),location:r()}),o({...R,type:n("rollup"),rollup:r()}),o({...R,type:n("verification"),verification:r()})]);var je=$(r(),ht),mr=$(r(),D(ht));var oe=o({object:n("page"),id:F,parent:re,properties:mr,created_by:a(Oe,null),last_edited_by:a(Oe,null),last_visited_time:a(D(r()),null),created_time:a(D(r()),null),last_edited_time:a(D(r()),null),icon:a(D(Pe),null),cover:a(D(Ee),null),url:a(D(r()),null),public_url:a(D(r()),null),is_archived:b(),in_trash:b()});var yr=d([l({equals:b()}),l({does_not_equal:b()})]);var ue=d([l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var ge=d([r(),E(r())]);var dr=d([l({contains:ge}),l({contains_all:ge}),l({does_not_contain:ge}),ue]);var vr=l({object:n("user"),id:A(r(),he(1),we(2e3))}),hr=d([l({contains:vr}),l({does_not_contain:vr}),l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var J=T(["start_date","end_date"]),On=T(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Fe=d([On,r()]),gr=d([l({target:a(J),equals:Fe}),l({target:a(J),before:Fe}),l({target:a(J),after:Fe}),l({target:a(J),on_or_before:Fe}),l({target:a(J),on_or_after:Fe}),l({target:a(J),this_week:l({})}),l({target:a(J),past_week:l({})}),l({target:a(J),past_month:l({})}),l({target:a(J),past_year:l({})}),l({target:a(J),next_week:l({})}),l({target:a(J),next_month:l({})}),l({target:a(J),next_year:l({})}),l({target:a(J),is_empty:n(!0)}),l({target:a(J),is_not_empty:n(!0)})]);var br=d([l({equals:O()}),l({does_not_equal:O()}),l({greater_than:O()}),l({less_than:O()}),l({greater_than_or_equal_to:O()}),l({less_than_or_equal_to:O()}),ue]);var Je=d([l({equals:ge}),l({does_not_equal:ge}),ue]);var Sr=l({object:T(["user","group"]),id:A(r(),he(1))}),kr=d([l({contains:Sr}),l({does_not_contain:Sr}),ue]);var Ir=A(F,ct(/^(?:[0-9a-f]{32}|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12})$/i),lt(e=>e.replaceAll("-","").toLowerCase().replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5"))),Ye=d([l({contains:Ir}),l({does_not_contain:Ir}),l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var _r=T(["To-do","In progress","Complete","Current","Future"]),xr=d([_r,A(E(_r),he(1),we(5))]),Cr=d([l({group_equals:xr}),l({group_does_not_equal:xr})]);var Pr=d([Je,Cr]);var Be=d([l({equals:r()}),l({does_not_equal:r()}),l({contains:r()}),l({does_not_contain:r()}),l({starts_with:r()}),l({ends_with:r()}),ue]);var gt=d([l({propertyId:r(),relation:Ye}),l({propertyId:r(),created_by:hr}),l({propertyId:r(),title:Be}),l({propertyId:r(),rich_text:Be}),l({propertyId:r(),url:Be}),l({propertyId:r(),email:Be}),l({propertyId:r(),phone_number:Be}),l({propertyId:r(),number:br}),l({propertyId:r(),checkbox:yr}),l({propertyId:r(),select:Je}),l({propertyId:r(),multi_select:dr}),l({propertyId:r(),status:Pr}),l({propertyId:r(),date:gr}),l({propertyId:r(),people:kr})]);var Er=d([gt,l({and:E(gt)})]);var Or=T(["ascending","descending"]);var bt=10,jr=l({propertyId:r(),direction:Or});var Br=o({type:n("queryDataSource"),subscriptionId:r(),dataSourceId:Z,limit:O(),filter:a(Er),sorts:a(E(jr))}),jn=r(),Rr=o({code:jn,message:r(),isRetryable:b()}),Mr=v("status",[o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("success"),items:E(oe),hasMore:b()}),o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("error"),error:Rr})]),Dr=v("status",[o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("success"),items:E(d([oe,ir])),hasMore:b()}),o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("error"),error:Rr})]);var Bn=r(),Rn=o({code:Bn,message:r(),isRetryable:b()}),wr=o({type:n("openExternalUrl"),requestId:r(),url:r()}),Tr=v("status",[o({type:n("openExternalUrlResult"),requestId:r(),status:n("success")}),o({type:n("openExternalUrlResult"),requestId:r(),status:n("error"),error:Rn})]);var Re=o({object:n("page"),id:F,parent:re,properties:je,created_time:a(r()),last_edited_time:a(r()),icon:a(Pe),cover:a(Ee),url:a(r()),public_url:a(r()),is_archived:b(),in_trash:b()});var Mn=r(),Ar=o({code:Mn,message:r(),isRetryable:b()}),Nr=v("status",[o({type:n("createPageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("createPageResult"),requestId:r(),status:n("error"),error:Ar})]),Ur=v("status",[o({type:n("createPageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("createPageResult"),requestId:r(),status:n("error"),error:Ar})]),Dn=v("type",[o({type:n("start")}),o({type:n("end")}),o({type:n("before"),blockId:le}),o({type:n("after"),blockId:le})]),Wa=v("type",[Ge,$e]),qr={type:n("createPage"),requestId:r(),properties:je},Fr=v("type",[o({...qr,parent:Ge,position:a(Dn)}),o({...qr,parent:$e,position:a(ft())})]);var wn=r(),zr=o({code:wn,message:r(),isRetryable:b()}),Hr=o({type:n("getPage"),requestId:r(),pageId:F,dataSourceId:a(Z)}),Lr=v("status",[o({type:n("getPageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("getPageResult"),requestId:r(),status:n("error"),error:zr})]),Vr=v("status",[o({type:n("getPageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("getPageResult"),requestId:r(),status:n("error"),error:zr})]);var Tn=T(["side_peek","center_peek"]),qn=r(),An=o({code:qn,message:r(),isRetryable:b()}),Gr=o({type:n("openPage"),requestId:r(),pageId:F,mode:Tn}),$r=v("status",[o({type:n("openPageResult"),requestId:r(),status:n("success"),pageId:F}),o({type:n("openPageResult"),requestId:r(),status:n("error"),error:An})]);var Nn=r(),Qr=o({code:Nn,message:r(),isRetryable:b()}),Wr=v("status",[o({type:n("updatePageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("updatePageResult"),requestId:r(),status:n("error"),error:Qr})]),Xr=v("status",[o({type:n("updatePageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("updatePageResult"),requestId:r(),status:n("error"),error:Qr})]),Kr=o({type:n("updatePage"),requestId:r(),pageId:F,dataSourceId:a(Z),properties:a(je),icon:a(Pe),cover:a(Ee),archived:a(b())});var Zr=o({type:n("currentUserChanged"),currentUser:ae});var Un=r(),Fn=o({code:Un,message:r(),isRetryable:b()}),Jr=o({type:n("getUser"),requestId:r(),userId:Qe}),Yr=v("status",[o({type:n("getUserResult"),requestId:r(),status:n("success"),user:ae}),o({type:n("getUserResult"),requestId:r(),status:n("error"),error:Fn})]);var eo=o({object:n("list"),results:E(ae),next_cursor:D(r()),has_more:b(),type:n("user"),user:$(r(),qe())});var zn=r(),Hn=o({code:zn,message:r(),isRetryable:b()}),to=o({type:n("listUsers"),requestId:r(),startCursor:a(r()),pageSize:a(O())}),ro=v("status",[o({type:n("listUsersResult"),requestId:r(),status:n("success"),list:eo}),o({type:n("listUsersResult"),requestId:r(),status:n("error"),error:Hn})]);var oo=o({type:n("invalidSandboxMessage"),reason:r()});var no=v("type",[We,Yt,Kt,Jt,Zt,Zr,er,Yr,ro,$r,Tr,oo]),io=v("type",[...no.options,Mr,Lr,Nr,Wr]),wu=v("type",[...no.options,Dr,Vr,Ur,Xr]);function so(e){return{...e,dataSources:{bindings:Object.fromEntries(Object.entries(e.dataSources.bindings).map(([t,i])=>[t,{...i,collectionSchema:{...i.collectionSchema,propertiesById:{...i.collectionSchema?.propertiesById,...Vt}}}]))}}}function ee(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function ze(e){return{...e,properties:Object.fromEntries(Object.entries(e.properties).map(([t,i])=>{switch(i?.type){case"unique_id":case"button":case"formula":case"location":case"rollup":case"verification":return[t,null];case"title":case"rich_text":case"number":case"url":case"email":case"phone_number":case"checkbox":case"select":case"status":case"multi_select":case"date":case"people":case"relation":case"files":case"place":case"created_time":case"last_edited_time":case"created_by":case"last_edited_by":case"last_visited_time":case void 0:return[t,i];default:return ee(i)}}))}}function ao(e){return{...e,properties:Object.fromEntries(Object.values(e.properties).flatMap(t=>t?[[t.id,t]]:[])),icon:e.icon??void 0,cover:e.cover??void 0,created_time:e.created_time??void 0,last_edited_time:e.last_edited_time??void 0,url:e.url??void 0,public_url:e.public_url??void 0}}function be(e){if(e==null||e==="")return;let t=new Date(e);if(Number.isFinite(t.getTime()))return{type:"datetime",start_date:t.toISOString().slice(0,10),start_time:t.toISOString().slice(11,16),time_zone:"UTC"}}var Se=class extends Error{};function St(e){try{return Ln(e)}catch(t){throw t instanceof RangeError?new Se(t.message):t}}function Ln(e){let{start:t,end:i,time_zone:s,reminder:c}=e;if(!t.split("T")[0])throw new Se("Date values must include a date.");let p=t.includes("T")||s!=null,m=t.match(/([+-])(\d{2}):(\d{2})$/),h=m?(Number(m[2])*60+Number(m[3]))*(m[1]==="-"?-1:1):0,y=s?.match(/^UTC(?:([+-])(\d{1,2})(?::(\d{2}))?)?$/),x=y?(Number(y[2]??0)*60+Number(y[3]??0))*(y[1]==="-"?-1:1):h,_=g=>{if(!g.split("T")[0])throw new Se("Date values must include a date.");if(!g.includes("T"))return{date:g,time:"00:00"};let N=g.match(/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})(?::\d{2}(?:\.\d+)?)?$/);if(N)return{date:N[1],time:N[2]};if(!s||y){let U=new Date(new Date(g).getTime()+x*6e4).toISOString();return{date:U.slice(0,10),time:U.slice(11,16)}}let j=new Intl.DateTimeFormat("en-CA",{timeZone:s,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(g)),z=U=>j.find(te=>te.type===U)?.value;return{date:`${z("year")}-${z("month")}-${z("day")}`,time:`${z("hour")}:${z("minute")}`}},M=_(t),X=i?_(i):void 0;if(!p){if(c&&!("time"in c)&&c.unit!=="none")throw new Se("Hour and minute reminders require a date with a time.");return X?{type:"daterange",start_date:M.date,end_date:X.date,reminder:c}:{type:"date",start_date:M.date,reminder:c}}let V=s??(h===0?"UTC":`UTC${h<0?"-":"+"}${Math.floor(Math.abs(h)/60)}${Math.abs(h)%60===0?"":`:${String(Math.abs(h)%60).padStart(2,"0")}`}`);return X?{type:"datetimerange",start_date:M.date,start_time:M.time,end_date:X.date,end_time:X.time,time_zone:V,reminder:c}:{type:"datetime",start_date:M.date,start_time:M.time,time_zone:V,reminder:c}}function co(e){switch(e.type){case"title":return uo(e.title);case"rich_text":return uo(e.rich_text);case"number":return e.number??void 0;case"checkbox":return e.checkbox;case"url":return e.url??"";case"email":return e.email??"";case"phone_number":return e.phone_number??"";case"select":return e.select?.name;case"status":return e.status?.name;case"multi_select":return e.multi_select.flatMap(t=>t.name??[]);case"date":return e.date?St(e.date):void 0;case"people":return e.people.map(t=>t.object==="group"?{id:t.id,table:"space_permission_group",spaceId:t.id.split("|")[1]}:{id:t.id,table:"notion_user"});case"relation":return e.relation.map(t=>({id:t.id,table:"block"}));case"files":return e.files.map(t=>t.name).join(",");case"unique_id":return e.unique_id;case"button":return e.button;case"formula":return e.formula;case"location":return e.location;case"rollup":return e.rollup;case"verification":return e.verification;case"place":return"";case"created_time":return be(e.created_time);case"last_edited_time":return be(e.last_edited_time);case"last_visited_time":return be(e.last_visited_time);case"created_by":return e.created_by?[e.created_by]:void 0;case"last_edited_by":return e.last_edited_by?[e.last_edited_by]:void 0;default:return ee(e)}}function uo(e){return e.map(t=>{if(typeof t.plain_text=="string")return t.plain_text;let i=t.text;return i&&typeof i=="object"&&"content"in i&&typeof i.content=="string"?i.content:""}).join("")}function lo(e){let t={};for(let i of Object.values(e.properties))i&&(t[i.id]=co(i));return{id:e.id,is_archived:e.is_archived,in_trash:e.in_trash,propertiesById:{...t,created_time:be(e.created_time),last_edited_time:be(e.last_edited_time),created_by:e.created_by?[e.created_by]:void 0,last_edited_by:e.last_edited_by?[e.last_edited_by]:void 0}}}function po(e){return e.type==="queryDataSourceResult"?{...e,items:e.items.map(lo)}:{...e,page:ao(ze(e.page))}}function fo(e){return e.type==="queryDataSourceResult"?{...e,items:e.items.map(ze)}:{...e,page:ze(e.page)}}function mo(e,t){return e.type==="init"&&e.status==="success"||e.type==="dataSourcesChanged"?t<5?so(e):e:e.type!=="queryDataSourceResult"&&e.type!=="getPageResult"&&e.type!=="createPageResult"&&e.type!=="updatePageResult"||e.status==="error"?e:t<6?po(e):t<7?fo(e):e}var kt=o({theme:Ce,contrastMode:a(xe),blockId:le,parent:re,page:_e,manifest:de,dataSources:o({bindings:ye}),currentUser:ae}),yo=v("status",[o({status:n("success"),initialState:qt(kt,["manifest"])}),o({status:n("error"),error:Ne})]);var et=class{constructor(t){this.onUnsubscribe=t}onUnsubscribe;bySubscriptionId=new Map;subscribe(t){this.unsubscribe(t.subscriptionId);let i={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(t.subscriptionId,{message:t,token:i,isRefreshing:!0,shouldRefreshAgain:!1}),i}isCurrent(t,i){return this.bySubscriptionId.get(t)?.token===i}unsubscribe(t){this.bySubscriptionId.delete(t)&&this.onUnsubscribe(t)}refresh(t){let i=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===t){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,i.push({message:c.message,token:c.token})}return s?i:void 0}finish(t,i){let s=this.bySubscriptionId.get(t);if(s?.token===i&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let t of this.bySubscriptionId.keys())this.unsubscribe(t)}};function vo(e,t){if(e===void 0)return;let i="and"in e?e.and:[e];for(let s of i){let c=$n(s,t);if(c!==void 0)return c}}function $n(e,t){if(!Object.hasOwn(t.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 i=t.propertiesById[e.propertyId],s=Object.keys(e).find(h=>h!=="propertyId");if(s!==i.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${i.type}".`,isRetryable:!1};if("status"in e&&i.type==="status"){let h=e.status;if("group_equals"in h||"group_does_not_equal"in h){let y="group_equals"in h?h.group_equals:h.group_does_not_equal,_=(Array.isArray(y)?y:[y]).find(M=>!i.groups.some(X=>X.name===M));return _===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${_}".`,isRetryable:!1}}}if("relation"in e&&!Tt(Ye,e.relation))return{code:"invalid_data_source_query_filter",message:"Relation filters require a page ID.",isRetryable:!1};let c=Qn(e);if(c===void 0||i.type!==c.propertyType)return;let p=new Set(i.options.map(h=>h.name)),m=Wn(c.operator).find(h=>!p.has(h));if(m!==void 0)return{code:"invalid_data_source_query_filter",message:`Data source query filter option "${m}" is not defined for property "${e.propertyId}".`,isRetryable:!1}}function Qn(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 t=e.status;return"group_equals"in t||"group_does_not_equal"in t?void 0:{propertyType:"status",operator:t}}}function Wn(e){let t;if("equals"in e)t=e.equals;else if("does_not_equal"in e)t=e.does_not_equal;else if("contains"in e)t=e.contains;else if("contains_all"in e)t=e.contains_all;else if("does_not_contain"in e)t=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:ee(e);return Array.isArray(t)?t:[t]}var Xn=new Set(Ht);function ho(e,t){if(e===void 0)return;if(e.length>bt)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${bt} entries.`,isRetryable:!1};let i=new Set;for(let s of e){if(i.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(i.add(s.propertyId),!Object.hasOwn(t.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=t.propertiesById[s.propertyId];if(!Xn.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}}}function go(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function It(e){let{currentBridgeProtocolVersion:t}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version: ${t}`,isRetryable:!1}}function bo(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function So(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function tt(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function _t(e){let{currentBridgeProtocolVersion:t,minBridgeProtocolVersion:i}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${t} is not supported. Minimum supported version is ${i}.`,isRetryable:!1}}function xt(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var Kn=5e3,Zn=5e3,Jn=5e3;function ko(e){let{manifestSource:t,prepareInit:i,sendInitMessage:s,warn:c,flushPendingHostStateChanges:p,minBridgeProtocolVersion:m,noConnectTimeoutMs:h=Kn,initialStateTimeoutMs:y=Zn,noInitResultTimeoutMs:x=Jn,stopHostWithFailure:_,onInitResult:M,onInitSent:X,onConnectionFailure:V}=e,g="waitingForConnect",N,j,z,U,te=!1,pe=!1;function K(){N!==void 0&&(window.clearTimeout(N),N=void 0)}function H(){j!==void 0&&(window.clearTimeout(j),j=void 0)}function Q(){z!==void 0&&(window.clearTimeout(z),z=void 0)}function G(k){let{initializationId:C,error:I,phase:ie,source:ot}=k;switch(g){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"failed":case"stopped":return;default:return ee(g)}g="failed",U=C,K(),H(),s({type:"init",initializationId:C,status:"error",error:I}),V({...I,phase:ie,source:ot})}async function ne(k){if(g==="waitingForConnect"){g="preparingInit",U=k.initializationId,K(),j=window.setTimeout(()=>{if(g!=="preparingInit")return;let C=go();c({...C,initializationId:k.initializationId}),G({initializationId:k.initializationId,error:C,phase:"init",source:"host"})},y);try{let C=await i(k);if(g!=="preparingInit")return;if(H(),C.status==="error"){G({initializationId:k.initializationId,error:C.error,phase:"init",source:"host"});return}g="waitingForInitResult";let I={type:"init",initializationId:k.initializationId,status:"success",theme:C.initialState.theme,contrastMode:C.initialState.contrastMode??Wt,blockId:C.initialState.blockId,parent:C.initialState.parent,page:C.initialState.page,currentUser:C.initialState.currentUser,manifest:C.initialState.manifest,dataSources:C.initialState.dataSources};if(s(I),g!=="waitingForInitResult"||(X(),g!=="waitingForInitResult"))return;z=window.setTimeout(()=>{if(g!=="waitingForInitResult")return;g="failed";let ie=So();V({...ie,phase:"initResult",source:"host"}),c({...ie,initializationId:k.initializationId})},x)}catch(C){if(g!=="preparingInit")return;c({message:"Failed to prepare custom block initialization",error:C}),G({initializationId:k.initializationId,error:tt(),phase:"init",source:"host"})}}}function q(k){if(g!=="stopped"&&g==="waitingForConnect"){if(!xt(k.bridgeProtocolVersion)){let C=It({currentBridgeProtocolVersion:k.bridgeProtocolVersion});G({initializationId:k.initializationId,error:C,phase:"connect",source:"host"});return}if(k.bridgeProtocolVersion<m){let C=_t({currentBridgeProtocolVersion:k.bridgeProtocolVersion,minBridgeProtocolVersion:m});G({initializationId:k.initializationId,error:C,phase:"connect",source:"host"});return}if(k.status==="error"&&(t==="sandbox"||k.error.code!=="manifest_invalid")){G({initializationId:k.initializationId,error:k.error,phase:"connect",source:"sandbox"});return}pe=!0,ne(k)}}function Y(k){if(g==="stopped"||g!=="waitingForConnect")return"handled";let{initializationId:C,bridgeProtocolVersion:I}=k;if(C===void 0)return"nack";let ie=k.error;return I!==void 0&&(xt(I)?I<m&&(ie=_t({currentBridgeProtocolVersion:I,minBridgeProtocolVersion:m})):ie=It({currentBridgeProtocolVersion:I})),G({initializationId:C,error:ie,phase:"connect",source:"host"}),"handled"}function fe(k){let{initializationId:C,error:I}=k;g!=="waitingForInitResult"||C===void 0||C!==U||(K(),Q(),g="failed",c(I),V({...I,phase:"initResult",source:"host"}))}function He(){if(g!=="stopped"){if(te){_({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}te=!0,K(),g==="waitingForConnect"&&(N=window.setTimeout(()=>{if(g!=="waitingForConnect")return;g="failed";let k=bo();c(k),V({...k,phase:"connect",source:"host"})},h))}}function Me(k){if(g!=="waitingForInitResult"||k.initializationId!==U){c({message:"Ignored stale or unexpected initResult",payload:k});return}Q(),g=k.status==="success"?"initialized":"failed",k.status==="success"?p():V({...k.error,phase:"initResult",source:"sandbox"}),M(k)}function me(){g="stopped",K(),H(),Q()}return{get status(){return g},get hasConnectedSandbox(){return pe},handleConnect:q,handleInitResult:Me,handleInvalidConnect:Y,handleInvalidInitResult:fe,onIframeLoad:He,stop:me}}function Ct(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function Pt(){return{code:"invalid_local_preview_url",message:"Local custom blocks require an HTTP(S) URL on localhost, a .localhost subdomain, or 127.0.0.1, without credentials and on a different origin from the host.",isRetryable:!1}}function Io(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function _o(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function xo(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function Co(e){return(e.protocol==="http:"||e.protocol==="https:")&&(e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname.endsWith(".localhost"))&&e.username===""&&e.password===""}function rt({url:e,hostOrigin:t}){return typeof t=="string"&&t!==""&&e.origin!==t&&Co(e)}async function Po(e){return e.manifestSource==="host"?e.hostManifest:e.connectManifest!==void 0?{status:"success",manifest:e.connectManifest}:{status:"error",error:{code:"manifest_unavailable",message:"The sandbox did not provide a manifest in connect.",isRetryable:!1}}}var Eo=v("status",[o({status:n("success"),manifest:de}),o({status:n("error"),error:Ne})]);function Oo(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var jo=o({type:n("resize"),height:A(O(),De(),Te(0))});var Bo=o({type:n("unsubscribeDataSourceQuery"),subscriptionId:r()});var Ro=o({code:r(),message:r(),isRetryable:b()});var Mo={type:n("connect"),initializationId:r(),bridgeProtocolVersion:O(),sdkVersion:r()},Do=v("status",[o({status:n("success"),manifest:a(de),...Mo}),o({status:n("error"),error:Ro,...Mo})]);var Yn=r(),ei=o({code:Yn,message:r(),isRetryable:b()}),wo=v("status",[o({type:n("initResult"),initializationId:r(),status:n("success"),initialHeight:a(A(O(),De(),Te(0)))}),o({type:n("initResult"),initializationId:r(),status:n("error"),error:ei})]);var To=o({type:n("invalidHostMessage"),reason:r()});var qo=v("type",[Do,wo,Br,Bo,Fr,Hr,Jr,to,Gr,wr,Kr,jo,To]);function Ao(e){return Ie(qo,e)}function No(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Uo(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Fo(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function zo(e){let t=Fo(e);return t==="invalidHostMessage"||t==="invalidSandboxMessage"?{incomingType:t}:{incomingType:t,nack:{type:"invalidSandboxMessage",reason:ti(t)}}}function ti(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var Ho=o({initializationId:r()}),ri=o({bridgeProtocolVersion:d([O(),pt()])});function Lo(e){let{iframe:t,sandboxOrigin:i,getInitStatus:s,emit:c,sendNack:p,onInvalidConnect:m,onInvalidInitResult:h,onConnect:y,onInitResult:x,onQueryDataSource:_,onUnsubscribeDataSourceQuery:M,onCreatePage:X,onGetPage:V,onOpenPage:g,onOpenExternalUrl:N,onGetUser:j,onListUsers:z,onUpdatePage:U,onResize:te}=e;function pe(K,H){c("warn",{message:"Ignored unsupported sandbox message",payload:Et(K),issues:H});let Q=zo(K);if(Q.incomingType==="connect"){let G=Ie(Ho,K),ne=Ie(ri,K);if(m({initializationId:G.success?G.output.initializationId:void 0,error:No(),bridgeProtocolVersion:ne.success?ne.output.bridgeProtocolVersion:void 0})==="handled")return}if(Q.incomingType==="initResult"){let G=Ie(Ho,K);h({initializationId:G.success?G.output.initializationId:void 0,error:Uo()})}Q.nack!==void 0&&s()!=="stopped"&&p(Q.nack)}return function(H){let Q=H.source===t.contentWindow,G=H.origin===i;if(!Q||!G)return;let ne=Ao(H.data);if(!ne.success){pe(H.data,ne.issues);return}let q=ne.output;if(!Oo(q)&&s()!=="initialized"){c("warn",{message:`Ignored ${q.type} before initialization completed`,payload:Et(q)});return}switch(c("in",Et(q)),q.type){case"connect":y(q);return;case"initResult":x(q);return;case"queryDataSource":_(q);return;case"unsubscribeDataSourceQuery":M(q);return;case"createPage":X(q);return;case"openPage":g(q);return;case"openExternalUrl":N(q);return;case"getPage":V(q);return;case"getUser":j(q);return;case"listUsers":z(q);return;case"updatePage":U(q);return;case"resize":te(q);return;case"invalidHostMessage":return;default:ee(q)}}}function Et(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="openExternalUrl"?{type:"openExternalUrl",..."requestId"in e?{requestId:e.requestId}:{}}:e}function Vo(e){if(e.length>2048||!URL.canParse(e))return;let t=new URL(e);if(!(t.protocol!=="http:"&&t.protocol!=="https:"||t.username!==""||t.password!==""||t.href.length>2048))return t.href}var $o=5;function ni(e){let{iframe:t,prepareInitialState:i,handlers:s,onStatusChange:c,onLog:p,onQueryUnsubscribed:m,minBridgeProtocolVersion:h,noConnectTimeoutMs:y,initialStateTimeoutMs:x,noInitResultTimeoutMs:_}=e,M=ii(e.sandboxUrl,e.manifestSource),X=M.origin,V=Math.max(h??3,3),g=new AbortController,N,j={},z=!1,U=new AbortController,te,pe,K=8,H=new et(u=>{m?.(u)});function Q(u,S){p?.(u,S)}function G(u){let S=I.status;switch(S){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"failed":break;case"stopped":return;default:return ee(S)}let P=mo(u,K);Q("out",P),t.contentWindow?.postMessage(P,X)}function ne(u){G(se(We,u))}function q(u){G(u)}function Y(u){let S=I.status;switch(S){case"initialized":G(se(io,u));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"failed":case"stopped":return;default:ee(S)}}async function fe(u,S){if(S===void 0)return;let P=await S(u);Y({type:`${u.type}Result`,requestId:u.requestId,...P})}function He(u){let S=u.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"error",error:u.response.error}:{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"success",items:u.response.items,hasMore:u.response.hasMore};Y(S)}async function Me(u,S=H.subscribe(u)){try{let P=si(pe,u.dataSourceId),ve=ai(u,P);if(ve!==void 0){H.isCurrent(u.subscriptionId,S)&&(H.unsubscribe(u.subscriptionId),He({subscriptionId:u.subscriptionId,response:{status:"error",error:ve}}));return}let it=await s.queryDataSource(u);if(!H.isCurrent(u.subscriptionId,S))return;it.status==="error"&&!it.error.isRetryable&&H.unsubscribe(u.subscriptionId),He({subscriptionId:u.subscriptionId,response:it})}finally{let P=H.finish(u.subscriptionId,S);P!==void 0&&Me(P.message,P.token)}}function me(u){I.status==="stopped"||I.status==="failed"||(Object.assign(j,u),C())}async function k(u){if(s.openExternalUrl===void 0||g.signal.aborted||N===u.requestId)return;if(N!==void 0){let P={type:"openExternalUrlResult",requestId:u.requestId,status:"error",error:{code:"pending_navigation",message:"Another external navigation request is pending.",isRetryable:!0}};Y(P);return}let S=Vo(u.url);if(S===void 0){let P={type:"openExternalUrlResult",requestId:u.requestId,status:"error",error:{code:"invalid_url",message:"Only valid HTTP or HTTPS URLs without credentials, up to 2,048 characters, can be opened.",isRetryable:!1}};Y(P);return}N=u.requestId;try{let P=await s.openExternalUrl({...u,url:S},{signal:g.signal});if(g.signal.aborted)return;let ve={type:"openExternalUrlResult",requestId:u.requestId,...P};Y(ve)}catch(P){if(!g.signal.aborted)throw P}finally{N===u.requestId&&(N=void 0)}}function C(){if(I.status!=="initialized")return;let u=j;j={},u.theme!==void 0&&Y({type:"themeChanged",theme:u.theme}),u.contrastMode!==void 0&&Y({type:"contrastModeChanged",contrastMode:u.contrastMode}),u.parent!==void 0&&Y({type:"parentChanged",parent:u.parent}),u.page!==void 0&&Y({type:"pageChanged",page:u.page}),u.dataSources!==void 0&&Y({type:"dataSourcesChanged",dataSources:u.dataSources}),u.currentUser!==void 0&&Y({type:"currentUserChanged",currentUser:u.currentUser})}let I=ko({manifestSource:e.manifestSource,async prepareInit(u){let S=u.status==="success"?u.manifest:void 0;K=u.bridgeProtocolVersion,c({status:"preparingInit",localManifest:rt({url:M,hostOrigin:window.location.origin})?S:void 0,bridgeProtocolVersion:u.bridgeProtocolVersion,sdkVersion:u.sdkVersion});let P=await(Xo??jt(S));return I.status!=="preparingInit"?P:ie(P)},sendInitMessage:ne,onInitSent:()=>c({status:"waitingForInitResult"}),warn:u=>Q("warn",u),flushPendingHostStateChanges:C,minBridgeProtocolVersion:V,noConnectTimeoutMs:y,initialStateTimeoutMs:x,noInitResultTimeoutMs:_,stopHostWithFailure:Rt,onInitResult(u){u.status==="success"&&te!==void 0&&c({status:"initialized",resolvedManifest:te,initialHeight:u.initialHeight})},onConnectionFailure:u=>{U.abort(),c({status:"failed",error:u})}});function ie(u){if(u.status==="error")return u;let S=se(kt,{...u.initialState,...j});if(te=S.manifest,j={},K<$o&&S.page.type==="unavailable")return{status:"error",error:Ct()};let P=Qo(S.manifest,S.dataSources);return P!==void 0?{status:"error",error:P}:(pe=S.dataSources,z=!0,{status:"success",initialState:S})}let ot=Ko().catch(Ot),Xo=e.manifestSource==="host"?jt(void 0).catch(Ot):void 0;async function Ko(){U.signal.throwIfAborted();let u=await e.getPersistedManifest({signal:U.signal});return U.signal.throwIfAborted(),se(Eo,u)}function Ot(u){return U.signal.aborted||Q("warn",{message:"Failed to prepare custom block initialization",error:u}),{status:"error",error:tt()}}async function jt(u){U.signal.throwIfAborted();let S=await Po({manifestSource:e.manifestSource,hostManifest:ot,connectManifest:u});if(U.signal.throwIfAborted(),S.status==="error")return S;let P=se(yo,await i({manifest:S.manifest,signal:U.signal}));return P.status==="error"?P:{status:"success",initialState:{...P.initialState,manifest:S.manifest}}}let Bt=Lo({iframe:t,sandboxOrigin:X,getInitStatus:()=>I.status,emit:Q,sendNack:q,onInvalidConnect:I.handleInvalidConnect,onInvalidInitResult:I.handleInvalidInitResult,onConnect:I.handleConnect,onInitResult:I.handleInitResult,onQueryDataSource:Me,onUnsubscribeDataSourceQuery:u=>H.unsubscribe(u.subscriptionId),onOpenExternalUrl:k,onCreatePage:u=>fe(u,s.createPage),onGetPage:u=>fe(u,s.getPage),onOpenPage:u=>fe(u,s.openPage),onGetUser:u=>fe(u,s.getUser),onListUsers:u=>fe(u,s.listUsers),onUpdatePage:u=>fe(u,s.updatePage),onResize:u=>s.resize?.(u)});window.addEventListener("message",Bt),t.addEventListener("load",I.onIframeLoad);function nt(){g.abort(),U.abort(),window.removeEventListener("message",Bt),t.removeEventListener("load",I.onIframeLoad),I.stop(),H.unsubscribeAll()}function Zo(){let u=I.status;nt(),u!=="stopped"&&u!=="failed"&&c({status:"stopped"})}function Rt(u){if(I.status!=="stopped"){if(I.status==="failed"){nt();return}nt(),Q("warn",u),c({status:"failed",error:u})}}return c({status:"waitingForConnect"}),{stop:Zo,setTheme(u){me({theme:u})},setContrastMode(u){me({contrastMode:u})},setParent(u){me({parent:u})},setPage(u){if(u.type==="unavailable"&&K<$o&&(I.status==="preparingInit"&&z||I.status==="waitingForInitResult"||I.status==="initialized")){Rt({...Ct(),phase:"runtime",source:"host"});return}me({page:u})},setCurrentUser(u){me({currentUser:u})},setDataSources(u){let S={bindings:se(ye,u.bindings)};if(I.hasConnectedSandbox&&te!==void 0&&Qo(te,S)!==void 0){Q("warn",{message:"Ignored invalid data source bindings update",payload:S});return}pe=S,me({dataSources:S})},refreshQuery({dataSourceId:u}){if(I.status!=="initialized")return;let S=se(Z,u),P=H.refresh(S);if(P===void 0){Q("warn",`No active query exists for data source "${u}"`);return}for(let ve of P)Me(ve.message,ve.token)}}}function ii(e,t){let i;try{i=new URL(e)}catch(s){throw t==="host"?s:new Ae(Pt())}if(t==="sandbox"&&!rt({url:i,hostOrigin:window.location.origin}))throw new Ae(Pt());return i}function si(e,t){return Object.values(e?.bindings??{}).find(i=>i.collectionPointer?.id===t)?.collectionSchema}function Qo(e,t){for(let[i,s]of Object.entries(e.dataSources)){let c=t.bindings[i];if(c?.inaccessible===!0)continue;let p=Qt({manifestDataSource:s,collectionSchema:c?.collectionSchema,propertyIdsByKey:c?.propertyIdsByKey});if(c?.collectionPointer===void 0||p.status==="missing_schema")return _o();for(let m of p.properties){if(m.status==="missing")return xo();if(m.status!=="mapped")return Io()}}}function ai(e,t){return t===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}:vo(e.filter,t)??ho(e.sorts,t)}function ui(e){let{manifestProperties:t,propertySchemasById:i}=e,s=[];for(let[c,p]of Object.entries(t)){let m=ci({propertyKey:c,manifestProperty:p,propertySchemasById:i});m!==void 0&&s.push([c,m])}return Object.fromEntries(s)}function ci(e){let{propertyKey:t,manifestProperty:i,propertySchemasById:s}=e,c=Wo(i.name),p=Object.entries(s).filter(([m,h])=>h.type===i.type&&(m===t||Wo(h.name)===c));return p.length===1?p[0][0]:void 0}function Wo(e){return e.trim().toLowerCase()}function li(e){return se(F,e)}export{Se as InvalidNotionDateError,ni as createCustomBlockHost,ui as getAutoBoundPropertyIdsByKey,rt as isAllowedLocalPreviewUrl,St as toNotionDateValue,li as toNotionPageId};
|
|
1
|
+
var Le,Jo={lang:void 0,message:void 0,abortEarly:void 0,abortPipeEarly:void 0};function st(e){return!e&&!Le?Jo:{lang:e?.lang??Le?.lang,message:e?.message,abortEarly:e?.abortEarly??Le?.abortEarly,abortPipeEarly:e?.abortPipeEarly??Le?.abortPipeEarly}}var Yo;function en(e){return Yo?.get(e)}var tn;function rn(e){return tn?.get(e)}var on;function nn(e,t){return on?.get(e)?.get(t)}function ke(e){let t=typeof e;return t==="string"?`"${e}"`:t==="number"||t==="bigint"||t==="boolean"?`${e}`:t==="object"||t==="function"?(e&&Object.getPrototypeOf(e)?.constructor?.name)??"null":t}function w(e,t,i,s,c){let p=c&&"input"in c?c.input:i.value,f=c?.expected??e.expects??null,h=c?.received??ke(p),y={kind:e.kind,type:e.type,input:p,expected:f,received:h,message:`Invalid ${t}: ${f?`Expected ${f} but r`:"R"}eceived ${h}`,requirement:e.requirement,path:c?.path,issues:c?.issues,lang:s.lang,abortEarly:s.abortEarly,abortPipeEarly:s.abortPipeEarly},C=e.kind==="schema",_=c?.message??e.message??nn(e.reference,y.lang)??(C?rn(y.lang):null)??s.message??en(y.lang);_!==void 0&&(y.message=typeof _=="function"?_(y):_),C&&(i.typed=!1),i.issues?i.issues.push(y):i.issues=[y]}function sn(e,t){return e===t||Number.isNaN(e)&&Number.isNaN(t)}function an(e,t){return Object.prototype.hasOwnProperty.call(e,t)&&t!=="__proto__"&&t!=="prototype"&&t!=="constructor"}function at(e,t){let i=[...new Set(e)];return i.length>1?`(${i.join(` ${t} `)})`:i[0]??"never"}function W(e){return e["~standard"]={version:1,vendor:"valibot",validate:t=>e["~run"]({value:t},st())},e}var un=class extends Error{constructor(e){super(e[0].message),this.name="ValiError",this.issues=e}};function ce(e){return{kind:"transformation",type:"brand",reference:ce,async:!1,name:e,"~run"(t){return t}}}function De(e){return{kind:"validation",type:"finite",reference:De,async:!1,expects:null,requirement:Number.isFinite,message:e,"~run"(t,i){return t.typed&&!this.requirement(t.value)&&w(this,"finite",t,i),t}}}function ut(e,t){let i=ke(e);return{kind:"validation",type:"includes",reference:ut,async:!1,expects:i,requirement:e,message:t,"~run"(s,c){return s.typed&&!s.value.includes(this.requirement)&&w(this,"content",s,c,{received:`!${i}`}),s}}}function we(e,t){return{kind:"validation",type:"max_length",reference:we,async:!1,expects:`<=${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&i.value.length>this.requirement&&w(this,"length",i,s,{received:`${i.value.length}`}),i}}}function he(e,t){return{kind:"validation",type:"min_length",reference:he,async:!1,expects:`>=${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&i.value.length<this.requirement&&w(this,"length",i,s,{received:`${i.value.length}`}),i}}}function Te(e,t){return{kind:"validation",type:"min_value",reference:Te,async:!1,expects:`>=${e instanceof Date?e.toJSON():ke(e)}`,requirement:e,message:t,"~run"(i,s){return i.typed&&!(i.value>=this.requirement)&&w(this,"value",i,s,{received:i.value instanceof Date?i.value.toJSON():ke(i.value)}),i}}}function ct(e,t){return{kind:"validation",type:"regex",reference:ct,async:!1,expects:`${e}`,requirement:e,message:t,"~run"(i,s){return i.typed&&!this.requirement.test(i.value)&&w(this,"format",i,s),i}}}function lt(e){return{kind:"transformation",type:"transform",reference:lt,async:!1,operation:e,"~run"(t){return t.value=this.operation(t.value),t}}}var Dt={abortEarly:!0};function wt(e,t,i){return typeof e.fallback=="function"?e.fallback(t,i):e.fallback}function Ve(e,t,i){return typeof e.default=="function"?e.default(t,i):e.default}function Tt(e,t){return!e["~run"]({value:t},Dt).issues}function E(e,t){return W({kind:"schema",type:"array",reference:E,expects:"Array",async:!1,item:e,message:t,"~run"(i,s){let c=i.value;if(Array.isArray(c)){i.typed=!0,i.value=[];for(let p=0;p<c.length;p++){let f=c[p],h=this.item["~run"]({value:f},s);if(h.issues){let y={type:"array",origin:"value",input:c,key:p,value:f};for(let C of h.issues)C.path?C.path.unshift(y):C.path=[y],i.issues?.push(C);if(i.issues||(i.issues=h.issues),s.abortEarly){i.typed=!1;break}}h.typed||(i.typed=!1),i.value.push(h.value)}}else w(this,"type",i,s);return i}})}function b(e){return W({kind:"schema",type:"boolean",reference:b,expects:"boolean",async:!1,message:e,"~run"(t,i){return typeof t.value=="boolean"?t.typed=!0:w(this,"type",t,i),t}})}function n(e,t){return W({kind:"schema",type:"literal",reference:n,expects:ke(e),async:!1,literal:e,message:t,"~run"(i,s){return sn(i.value,this.literal)?i.typed=!0:w(this,"type",i,s),i}})}function pt(e){return W({kind:"schema",type:"nan",reference:pt,expects:"NaN",async:!1,message:e,"~run"(t,i){return Number.isNaN(t.value)?t.typed=!0:w(this,"type",t,i),t}})}function mt(e){return W({kind:"schema",type:"never",reference:mt,expects:"never",async:!1,message:e,"~run"(t,i){return w(this,"type",t,i),t}})}function D(e,t){return W({kind:"schema",type:"nullable",reference:D,expects:`(${e.expects} | null)`,async:!1,wrapped:e,default:t,"~run"(i,s){return i.value===null&&(this.default!==void 0&&(i.value=Ve(this,i,s)),i.value===null)?(i.typed=!0,i):this.wrapped["~run"](i,s)}})}function O(e){return W({kind:"schema",type:"number",reference:O,expects:"number",async:!1,message:e,"~run"(t,i){return typeof t.value=="number"&&!isNaN(t.value)?t.typed=!0:w(this,"type",t,i),t}})}function o(e,t){return W({kind:"schema",type:"object",reference:o,expects:"Object",async:!1,entries:e,message:t,"~run"(i,s){let c=i.value;if(c&&typeof c=="object"){i.typed=!0,i.value={};for(let p in this.entries){let f=this.entries[p];if(p in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let h=p in c?c[p]:Ve(f),y=f["~run"]({value:h},s);if(y.issues){let C={type:"object",origin:"value",input:c,key:p,value:h};for(let _ of y.issues)_.path?_.path.unshift(C):_.path=[C],i.issues?.push(_);if(i.issues||(i.issues=y.issues),s.abortEarly){i.typed=!1;break}}y.typed||(i.typed=!1),i.value[p]=y.value}else if(f.fallback!==void 0)i.value[p]=wt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(w(this,"key",i,s,{input:void 0,expected:`"${p}"`,path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]}),s.abortEarly))break}}else w(this,"type",i,s);return i}})}function a(e,t){return W({kind:"schema",type:"optional",reference:a,expects:`(${e.expects} | undefined)`,async:!1,wrapped:e,default:t,"~run"(i,s){return i.value===void 0&&(this.default!==void 0&&(i.value=Ve(this,i,s)),i.value===void 0)?(i.typed=!0,i):this.wrapped["~run"](i,s)}})}function T(e,t){return W({kind:"schema",type:"picklist",reference:T,expects:at(e.map(ke),"|"),async:!1,options:e,message:t,"~run"(i,s){return this.options.includes(i.value)?i.typed=!0:w(this,"type",i,s),i}})}function $(e,t,i){return W({kind:"schema",type:"record",reference:$,expects:"Object",async:!1,key:e,value:t,message:i,"~run"(s,c){let p=s.value;if(p&&typeof p=="object"){s.typed=!0,s.value={};for(let f in p)if(an(p,f)){let h=p[f],y=this.key["~run"]({value:f},c);if(y.issues){let _={type:"object",origin:"key",input:p,key:f,value:h};for(let M of y.issues)M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=y.issues),c.abortEarly){s.typed=!1;break}}let C=this.value["~run"]({value:h},c);if(C.issues){let _={type:"object",origin:"value",input:p,key:f,value:h};for(let M of C.issues)M.path?M.path.unshift(_):M.path=[_],s.issues?.push(M);if(s.issues||(s.issues=C.issues),c.abortEarly){s.typed=!1;break}}(!y.typed||!C.typed)&&(s.typed=!1),y.typed&&(s.value[y.value]=C.value)}}else w(this,"type",s,c);return s}})}function l(e,t){return W({kind:"schema",type:"strict_object",reference:l,expects:"Object",async:!1,entries:e,message:t,"~run"(i,s){let c=i.value;if(c&&typeof c=="object"){i.typed=!0,i.value={};for(let p in this.entries){let f=this.entries[p];if(p in c||(f.type==="exact_optional"||f.type==="optional"||f.type==="nullish")&&f.default!==void 0){let h=p in c?c[p]:Ve(f),y=f["~run"]({value:h},s);if(y.issues){let C={type:"object",origin:"value",input:c,key:p,value:h};for(let _ of y.issues)_.path?_.path.unshift(C):_.path=[C],i.issues?.push(_);if(i.issues||(i.issues=y.issues),s.abortEarly){i.typed=!1;break}}y.typed||(i.typed=!1),i.value[p]=y.value}else if(f.fallback!==void 0)i.value[p]=wt(f);else if(f.type!=="exact_optional"&&f.type!=="optional"&&f.type!=="nullish"&&(w(this,"key",i,s,{input:void 0,expected:`"${p}"`,path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]}),s.abortEarly))break}if(!i.issues||!s.abortEarly){for(let p in c)if(!Object.prototype.hasOwnProperty.call(this.entries,p)){w(this,"key",i,s,{input:p,expected:"never",path:[{type:"object",origin:"key",input:c,key:p,value:c[p]}]});break}}}else w(this,"type",i,s);return i}})}function r(e){return W({kind:"schema",type:"string",reference:r,expects:"string",async:!1,message:e,"~run"(t,i){return typeof t.value=="string"?t.typed=!0:w(this,"type",t,i),t}})}function Mt(e){let t;if(e)for(let i of e)if(t)for(let s of i.issues)t.push(s);else t=i.issues;return t}function d(e,t){return W({kind:"schema",type:"union",reference:d,expects:at(e.map(i=>i.expects),"|"),async:!1,options:e,message:t,"~run"(i,s){let c,p,f;for(let h of this.options){let y=h["~run"]({value:i.value},s);if(y.typed)if(y.issues)p?p.push(y):p=[y];else{c=y;break}else f?f.push(y):f=[y]}if(c)return c;if(p){if(p.length===1)return p[0];w(this,"type",i,s,{issues:Mt(p)}),i.typed=!0}else{if(f?.length===1)return f[0];w(this,"type",i,s,{issues:Mt(f)})}return i}})}function qe(){return W({kind:"schema",type:"unknown",reference:qe,expects:"unknown",async:!1,"~run"(e){return e.typed=!0,e}})}function v(e,t,i){return W({kind:"schema",type:"variant",reference:v,expects:"Object",async:!1,key:e,options:t,message:i,"~run"(s,c){let p=s.value;if(p&&typeof p=="object"){let f,h=0,y=this.key,C=[],_=(M,X)=>{for(let V of M.options){if(V.type==="variant")_(V,new Set(X).add(V.key));else{let g=!0,N=0;for(let j of X){let z=V.entries[j];if(j in p?z["~run"]({typed:!1,value:p[j]},Dt).issues:z.type!=="exact_optional"&&z.type!=="optional"&&z.type!=="nullish"){g=!1,y!==j&&(h<N||h===N&&j in p&&!(y in p))&&(h=N,y=j,C=[]),y===j&&C.push(V.entries[j].expects);break}N++}if(g){let j=V["~run"]({value:p},c);(!f||!f.typed&&j.typed)&&(f=j)}}if(f&&!f.issues)break}};if(_(this,new Set([this.key])),f)return f;w(this,"type",s,c,{input:p[y],expected:at(C,"|"),path:[{type:"object",origin:"value",input:p,key:y,value:p[y]}]})}else w(this,"type",s,c);return s}})}function qt(e,t){let i={...e.entries};for(let s of t)delete i[s];return W({...e,entries:i})}function se(e,t,i){let s=e["~run"]({value:t},st(i));if(s.issues)throw new un(s.issues);return s.value}function A(...e){return W({...e[0],pipe:e,"~run"(t,i){for(let s of e)if(s.kind!=="metadata"){if(t.issues&&(s.kind==="schema"||s.kind==="transformation")){t.typed=!1;break}(!t.issues||!i.abortEarly&&!i.abortPipeEarly)&&(t=s["~run"](t,i))}return t}})}function Ie(e,t,i){let s=e["~run"]({value:t},st(i));return{typed:s.typed,success:!s.issues,output:s.value,issues:s.issues}}var le=A(r(),ce("NotionBlockId")),Z=A(r(),ce("NotionDataSourceId")),F=A(r(),ce("NotionPageId")),At=A(r(),ce("NotionAgentId")),Nt=A(r(),ce("NotionSpaceId"));var Ut=o({id:Z,table:r(),spaceId:a(Nt)});var Ft=T(["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"]),ft=o({id:r(),name:r(),color:a(Ft),description:a(r())}),cn=o({id:r(),name:r(),color:a(Ft),option_ids:E(r())}),ln=o({synced_property_id:r(),synced_property_name:r()}),B=o({name:r(),description:a(r())}),pn=["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"],zt=T(pn),Ht=["title","rich_text","number","checkbox","url","email","phone_number","date","created_time","last_edited_time","people","created_by"],Lt=v("type",[o({...B.entries,type:n("title")}),o({...B.entries,type:n("rich_text")}),o({...B.entries,type:n("number")}),o({...B.entries,type:n("checkbox")}),o({...B.entries,type:n("url")}),o({...B.entries,type:n("email")}),o({...B.entries,type:n("phone_number")}),o({...B.entries,type:n("select"),options:E(ft)}),o({...B.entries,type:n("multi_select"),options:E(ft)}),o({...B.entries,type:n("status"),options:E(ft),groups:E(cn)}),o({...B.entries,type:n("date")}),o({...B.entries,type:n("people")}),o({...B.entries,type:n("files")}),o({...B.entries,type:n("unique_id")}),o({...B.entries,type:n("relation"),data_source_id:a(r()),dual_property:a(ln)}),o({...B.entries,type:n("place")}),o({...B.entries,type:n("formula")}),o({...B.entries,type:n("rollup")}),o({...B.entries,type:n("button")}),o({...B.entries,type:n("verification")}),o({...B.entries,type:n("last_visited_time")}),o({...B.entries,type:n("location")}),o({...B.entries,type:n("created_time")}),o({...B.entries,type:n("last_edited_time")}),o({...B.entries,type:n("created_by")}),o({...B.entries,type:n("last_edited_by")})]);var Vt={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 Gt=o({id:a(Z),propertiesById:$(r(),Lt)});var $t=o({collectionPointer:a(Ut),collectionSchema:a(Gt),propertyIdsByKey:a($(r(),a(r()))),inaccessible:a(n(!0))});var ye=$(r(),$t);function Qt(e){let t=Object.entries(e.manifestDataSource.properties??{}).map(([i,s])=>{let c=e.propertyIdsByKey?.[i],p=c===void 0?void 0:e.collectionSchema?.propertiesById[c];return mn(i,c,p?.type,s.type)});return e.collectionSchema===void 0?{status:"missing_schema",properties:t}:t.every(i=>i.status==="mapped")?{status:"complete",properties:t}:{status:"incomplete",properties:t}}function mn(e,t,i,s){return t===void 0?{status:"missing",propertyKey:e,propertyId:t}:i===void 0?{status:"invalid",propertyKey:e,propertyId:t}:{status:i===s?"mapped":"incompatible",propertyKey:e,propertyId:t}}var Ge=o({type:n("page_id"),page_id:F}),$e=o({type:n("data_source_id"),data_source_id:Z}),fn=o({type:n("workspace"),workspace:n(!0)}),yn=o({type:n("block_id"),block_id:le}),dn=o({type:n("agent_id"),agent_id:At}),vn=o({type:n("unavailable")}),re=v("type",[Ge,$e,fn,yn,dn,vn]);var _e=v("type",[o({type:n("unavailable")}),o({type:n("page"),id:F,parent:re})]);var xe=T(["standard","high"]),Wt="standard";var Ce=T(["light","dark"]);var Xt=o({capability:r(),resource:r()});var hn=v("type",[o({type:n("emoji"),emoji:r()}),o({type:n("external"),url:r()})]),gn=o({name:r(),description:a(r()),type:zt}),bn=o({name:r(),description:a(r()),icon:a(hn),properties:a($(r(),gn),{})}),de=o({version:n(1),name:a(r()),description:a(r()),slashCommand:a(r()),icon:a(o({type:n("emoji"),emoji:r()})),dataSources:a($(r(),bn),{}),capabilities:a(E(Xt))});var Qe=A(r(),ce("NotionUserId"));var ae=o({object:n("user"),id:Qe,name:a(r()),avatar_url:D(r()),type:n("person"),person:o({email:r()})});var Sn=r(),Ne=o({code:Sn,message:r(),isRetryable:b()}),Ae=class extends Error{constructor(t){super(t.message),this.name="CustomBlockInitializationError",this.code=t.code,this.isRetryable=t.isRetryable}code;isRetryable},We=v("status",[o({type:n("init"),initializationId:r(),status:n("success"),theme:Ce,contrastMode:xe,blockId:le,parent:re,page:_e,manifest:de,dataSources:o({bindings:ye}),currentUser:ae}),o({type:n("init"),initializationId:r(),status:n("error"),error:Ne})]);var Kt=o({type:n("contrastModeChanged"),contrastMode:xe});var Zt=o({type:n("pageChanged"),page:_e});var Jt=o({type:n("parentChanged"),parent:re});var Yt=o({type:n("themeChanged"),theme:Ce});var er=o({type:n("dataSourcesChanged"),dataSources:o({bindings:ye})});var Xe=o({unit:T(["year","month","week","day"]),value:O(),time:r(),defaultTimeZone:a(r())}),kn=o({unit:T(["hour","minute"]),value:O()}),Ue=o({unit:n("none")}),yt=d([Xe,kn]),tr=a(d([Xe,Ue])),rr=a(d([yt,Ue])),In=o({type:n("date"),start_date:r(),reminder:tr}),_n=o({type:n("daterange"),start_date:r(),end_date:r(),reminder:tr}),xn=o({type:n("datetime"),start_date:r(),start_time:r(),time_zone:a(r()),reminder:rr}),Cn=o({type:n("datetimerange"),start_date:r(),start_time:r(),end_date:r(),end_time:r(),time_zone:a(r()),reminder:rr}),or=v("type",[In,_n,xn,Cn]);var Ke=o({id:r(),table:r()});var nr=d([r(),O(),b(),or,E(r()),E(Ke)]);var ir=o({id:F,is_archived:b(),in_trash:b(),propertiesById:$(r(),a(nr))});var Pn=o({type:n("emoji"),emoji:r()}),En=o({type:n("custom_emoji"),custom_emoji:o({id:r(),name:a(r()),url:a(r())})}),sr=o({type:n("external"),external:o({url:r()})}),ar=o({type:n("file"),file:o({url:r(),expiry_time:a(r())})}),Pe=v("type",[Pn,En,sr,ar]),Ee=v("type",[sr,ar]);var L=D(r());var dt={start:r(),end:a(L),time_zone:a(L),reminder:a(d([yt,Ue]))},ur=d([o({...dt,start:A(r(),ut("T"))}),o({...dt,time_zone:r()}),o({...dt,reminder:a(d([Xe,Ue]))})]);var cr=d([o({type:n("external"),name:r(),external:o({url:r()})}),o({type:n("file"),name:r(),file:o({url:r(),expiry_time:a(r())})})]);var Oe=D(o({...Ke.entries,table:T(["notion_user","bot","organization_bot"]),spaceId:a(r())}));var lr=o({lat:O(),lon:O(),name:a(L),address:a(L),aws_place_id:a(L),google_place_id:a(L)});var pr=o({id:r()});var vt=$(r(),qe());var Ze=d([o({id:r(),name:a(r()),color:a(r()),description:a(L)}),o({name:r(),id:a(r()),color:a(r()),description:a(L)})]);var mr=d([o({object:a(n("user")),id:r()}),o({object:n("group"),id:r(),name:a(L)})]);var R={id:r()},ht=v("type",[o({...R,type:n("title"),title:E(vt)}),o({...R,type:n("rich_text"),rich_text:E(vt)}),o({...R,type:n("number"),number:D(O())}),o({...R,type:n("url"),url:L}),o({...R,type:n("email"),email:L}),o({...R,type:n("phone_number"),phone_number:L}),o({...R,type:n("checkbox"),checkbox:b()}),o({...R,type:n("select"),select:D(Ze)}),o({...R,type:n("status"),status:D(Ze)}),o({...R,type:n("multi_select"),multi_select:E(Ze)}),o({...R,type:n("date"),date:D(ur)}),o({...R,type:n("people"),people:E(mr)}),o({...R,type:n("relation"),has_more:a(b()),relation:E(pr)}),o({...R,type:n("files"),files:E(cr)}),o({...R,type:n("place"),place:D(lr)}),o({...R,type:n("created_time"),created_time:L}),o({...R,type:n("last_edited_time"),last_edited_time:L}),o({...R,type:n("created_by"),created_by:Oe}),o({...R,type:n("last_edited_by"),last_edited_by:Oe}),o({...R,type:n("last_visited_time"),last_visited_time:L}),o({...R,type:n("unique_id"),unique_id:r()}),o({...R,type:n("button"),button:r()}),o({...R,type:n("formula"),formula:r()}),o({...R,type:n("location"),location:r()}),o({...R,type:n("rollup"),rollup:r()}),o({...R,type:n("verification"),verification:r()})]);var je=$(r(),ht),fr=$(r(),D(ht));var oe=o({object:n("page"),id:F,parent:re,properties:fr,created_by:a(Oe,null),last_edited_by:a(Oe,null),last_visited_time:a(D(r()),null),created_time:a(D(r()),null),last_edited_time:a(D(r()),null),icon:a(D(Pe),null),cover:a(D(Ee),null),url:a(D(r()),null),public_url:a(D(r()),null),is_archived:b(),in_trash:b()});var yr=d([l({equals:b()}),l({does_not_equal:b()})]);var ue=d([l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var ge=d([r(),E(r())]);var dr=d([l({contains:ge}),l({contains_all:ge}),l({does_not_contain:ge}),ue]);var vr=l({object:n("user"),id:A(r(),he(1),we(2e3))}),hr=d([l({contains:vr}),l({does_not_contain:vr}),l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var J=T(["start_date","end_date"]),On=T(["today","tomorrow","yesterday","one_week_ago","one_week_from_now","one_month_ago","one_month_from_now"]),Fe=d([On,r()]),gr=d([l({target:a(J),equals:Fe}),l({target:a(J),before:Fe}),l({target:a(J),after:Fe}),l({target:a(J),on_or_before:Fe}),l({target:a(J),on_or_after:Fe}),l({target:a(J),this_week:l({})}),l({target:a(J),past_week:l({})}),l({target:a(J),past_month:l({})}),l({target:a(J),past_year:l({})}),l({target:a(J),next_week:l({})}),l({target:a(J),next_month:l({})}),l({target:a(J),next_year:l({})}),l({target:a(J),is_empty:n(!0)}),l({target:a(J),is_not_empty:n(!0)})]);var br=d([l({equals:O()}),l({does_not_equal:O()}),l({greater_than:O()}),l({less_than:O()}),l({greater_than_or_equal_to:O()}),l({less_than_or_equal_to:O()}),ue]);var Je=d([l({equals:ge}),l({does_not_equal:ge}),ue]);var Sr=l({object:T(["user","group"]),id:A(r(),he(1))}),kr=d([l({contains:Sr}),l({does_not_contain:Sr}),ue]);var Ir=A(F,ct(/^(?:[0-9a-f]{32}|[0-9a-f]{8}(?:-[0-9a-f]{4}){3}-[0-9a-f]{12})$/i),lt(e=>e.replaceAll("-","").toLowerCase().replace(/^(.{8})(.{4})(.{4})(.{4})(.{12})$/,"$1-$2-$3-$4-$5"))),Ye=d([l({contains:Ir}),l({does_not_contain:Ir}),l({is_empty:n(!0)}),l({is_not_empty:n(!0)})]);var _r=T(["To-do","In progress","Complete","Current","Future"]),xr=d([_r,A(E(_r),he(1),we(5))]),Cr=d([l({group_equals:xr}),l({group_does_not_equal:xr})]);var Pr=d([Je,Cr]);var Be=d([l({equals:r()}),l({does_not_equal:r()}),l({contains:r()}),l({does_not_contain:r()}),l({starts_with:r()}),l({ends_with:r()}),ue]);var gt=d([l({propertyId:r(),relation:Ye}),l({propertyId:r(),created_by:hr}),l({propertyId:r(),title:Be}),l({propertyId:r(),rich_text:Be}),l({propertyId:r(),url:Be}),l({propertyId:r(),email:Be}),l({propertyId:r(),phone_number:Be}),l({propertyId:r(),number:br}),l({propertyId:r(),checkbox:yr}),l({propertyId:r(),select:Je}),l({propertyId:r(),multi_select:dr}),l({propertyId:r(),status:Pr}),l({propertyId:r(),date:gr}),l({propertyId:r(),people:kr})]);var Er=d([gt,l({and:E(gt)})]);var Or=T(["ascending","descending"]);var bt=10,jr=l({propertyId:r(),direction:Or});var Br=o({type:n("queryDataSource"),subscriptionId:r(),dataSourceId:Z,limit:O(),filter:a(Er),sorts:a(E(jr))}),jn=r(),Rr=o({code:jn,message:r(),isRetryable:b()}),Mr=v("status",[o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("success"),items:E(oe),hasMore:b()}),o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("error"),error:Rr})]),Dr=v("status",[o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("success"),items:E(d([oe,ir])),hasMore:b()}),o({type:n("queryDataSourceResult"),subscriptionId:r(),status:n("error"),error:Rr})]);var Bn=r(),Rn=o({code:Bn,message:r(),isRetryable:b()}),wr=o({type:n("openExternalUrl"),requestId:r(),url:r()}),Tr=v("status",[o({type:n("openExternalUrlResult"),requestId:r(),status:n("success")}),o({type:n("openExternalUrlResult"),requestId:r(),status:n("error"),error:Rn})]);var Re=o({object:n("page"),id:F,parent:re,properties:je,created_time:a(r()),last_edited_time:a(r()),icon:a(Pe),cover:a(Ee),url:a(r()),public_url:a(r()),is_archived:b(),in_trash:b()});var Mn=r(),Ar=o({code:Mn,message:r(),isRetryable:b()}),Nr=v("status",[o({type:n("createPageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("createPageResult"),requestId:r(),status:n("error"),error:Ar})]),Ur=v("status",[o({type:n("createPageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("createPageResult"),requestId:r(),status:n("error"),error:Ar})]),Dn=v("type",[o({type:n("start")}),o({type:n("end")}),o({type:n("before"),blockId:le}),o({type:n("after"),blockId:le})]),Wa=v("type",[Ge,$e]),qr={type:n("createPage"),requestId:r(),properties:je},Fr=v("type",[o({...qr,parent:Ge,position:a(Dn)}),o({...qr,parent:$e,position:a(mt())})]);var wn=r(),zr=o({code:wn,message:r(),isRetryable:b()}),Hr=o({type:n("getPage"),requestId:r(),pageId:F,dataSourceId:a(Z)}),Lr=v("status",[o({type:n("getPageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("getPageResult"),requestId:r(),status:n("error"),error:zr})]),Vr=v("status",[o({type:n("getPageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("getPageResult"),requestId:r(),status:n("error"),error:zr})]);var Tn=T(["side_peek","center_peek"]),qn=r(),An=o({code:qn,message:r(),isRetryable:b()}),Gr=o({type:n("openPage"),requestId:r(),pageId:F,mode:Tn}),$r=v("status",[o({type:n("openPageResult"),requestId:r(),status:n("success"),pageId:F}),o({type:n("openPageResult"),requestId:r(),status:n("error"),error:An})]);var Nn=r(),Qr=o({code:Nn,message:r(),isRetryable:b()}),Wr=v("status",[o({type:n("updatePageResult"),requestId:r(),status:n("success"),page:oe}),o({type:n("updatePageResult"),requestId:r(),status:n("error"),error:Qr})]),Xr=v("status",[o({type:n("updatePageResult"),requestId:r(),status:n("success"),page:d([oe,Re])}),o({type:n("updatePageResult"),requestId:r(),status:n("error"),error:Qr})]),Kr=o({type:n("updatePage"),requestId:r(),pageId:F,dataSourceId:a(Z),properties:a(je),icon:a(Pe),cover:a(Ee),archived:a(b())});var Zr=o({type:n("currentUserChanged"),currentUser:ae});var Un=r(),Fn=o({code:Un,message:r(),isRetryable:b()}),Jr=o({type:n("getUser"),requestId:r(),userId:Qe}),Yr=v("status",[o({type:n("getUserResult"),requestId:r(),status:n("success"),user:ae}),o({type:n("getUserResult"),requestId:r(),status:n("error"),error:Fn})]);var eo=o({object:n("list"),results:E(ae),next_cursor:D(r()),has_more:b(),type:n("user"),user:$(r(),qe())});var zn=r(),Hn=o({code:zn,message:r(),isRetryable:b()}),to=o({type:n("listUsers"),requestId:r(),startCursor:a(r()),pageSize:a(O())}),ro=v("status",[o({type:n("listUsersResult"),requestId:r(),status:n("success"),list:eo}),o({type:n("listUsersResult"),requestId:r(),status:n("error"),error:Hn})]);var oo=o({type:n("invalidSandboxMessage"),reason:r()});var no=v("type",[We,Yt,Kt,Jt,Zt,Zr,er,Yr,ro,$r,Tr,oo]),io=v("type",[...no.options,Mr,Lr,Nr,Wr]),wu=v("type",[...no.options,Dr,Vr,Ur,Xr]);function so(e){return{...e,dataSources:{bindings:Object.fromEntries(Object.entries(e.dataSources.bindings).map(([t,i])=>[t,{...i,collectionSchema:{...i.collectionSchema,propertiesById:{...i.collectionSchema?.propertiesById,...Vt}}}]))}}}function ee(e){throw new Error(`[custom-blocks-host] Unexpected value encountered: ${JSON.stringify(e)}`)}function ze(e){return{...e,properties:Object.fromEntries(Object.entries(e.properties).map(([t,i])=>{switch(i?.type){case"unique_id":case"button":case"formula":case"location":case"rollup":case"verification":return[t,null];case"title":case"rich_text":case"number":case"url":case"email":case"phone_number":case"checkbox":case"select":case"status":case"multi_select":case"date":case"people":case"relation":case"files":case"place":case"created_time":case"last_edited_time":case"created_by":case"last_edited_by":case"last_visited_time":case void 0:return[t,i];default:return ee(i)}}))}}function ao(e){return{...e,properties:Object.fromEntries(Object.values(e.properties).flatMap(t=>t?[[t.id,t]]:[])),icon:e.icon??void 0,cover:e.cover??void 0,created_time:e.created_time??void 0,last_edited_time:e.last_edited_time??void 0,url:e.url??void 0,public_url:e.public_url??void 0}}function be(e){if(e==null||e==="")return;let t=new Date(e);if(Number.isFinite(t.getTime()))return{type:"datetime",start_date:t.toISOString().slice(0,10),start_time:t.toISOString().slice(11,16),time_zone:"UTC"}}var Se=class extends Error{};function St(e){try{return Ln(e)}catch(t){throw t instanceof RangeError?new Se(t.message):t}}function Ln(e){let{start:t,end:i,time_zone:s,reminder:c}=e;if(!t.split("T")[0])throw new Se("Date values must include a date.");let p=t.includes("T")||s!=null,f=t.match(/([+-])(\d{2}):(\d{2})$/),h=f?(Number(f[2])*60+Number(f[3]))*(f[1]==="-"?-1:1):0,y=s?.match(/^UTC(?:([+-])(\d{1,2})(?::(\d{2}))?)?$/),C=y?(Number(y[2]??0)*60+Number(y[3]??0))*(y[1]==="-"?-1:1):h,_=g=>{if(!g.split("T")[0])throw new Se("Date values must include a date.");if(!g.includes("T"))return{date:g,time:"00:00"};let N=g.match(/^(\d{4}-\d{2}-\d{2})T(\d{2}:\d{2})(?::\d{2}(?:\.\d+)?)?$/);if(N)return{date:N[1],time:N[2]};if(!s||y){let U=new Date(new Date(g).getTime()+C*6e4).toISOString();return{date:U.slice(0,10),time:U.slice(11,16)}}let j=new Intl.DateTimeFormat("en-CA",{timeZone:s,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",hourCycle:"h23"}).formatToParts(new Date(g)),z=U=>j.find(te=>te.type===U)?.value;return{date:`${z("year")}-${z("month")}-${z("day")}`,time:`${z("hour")}:${z("minute")}`}},M=_(t),X=i?_(i):void 0;if(!p){if(c&&!("time"in c)&&c.unit!=="none")throw new Se("Hour and minute reminders require a date with a time.");return X?{type:"daterange",start_date:M.date,end_date:X.date,reminder:c}:{type:"date",start_date:M.date,reminder:c}}let V=s??(h===0?"UTC":`UTC${h<0?"-":"+"}${Math.floor(Math.abs(h)/60)}${Math.abs(h)%60===0?"":`:${String(Math.abs(h)%60).padStart(2,"0")}`}`);return X?{type:"datetimerange",start_date:M.date,start_time:M.time,end_date:X.date,end_time:X.time,time_zone:V,reminder:c}:{type:"datetime",start_date:M.date,start_time:M.time,time_zone:V,reminder:c}}function co(e){switch(e.type){case"title":return uo(e.title);case"rich_text":return uo(e.rich_text);case"number":return e.number??void 0;case"checkbox":return e.checkbox;case"url":return e.url??"";case"email":return e.email??"";case"phone_number":return e.phone_number??"";case"select":return e.select?.name;case"status":return e.status?.name;case"multi_select":return e.multi_select.flatMap(t=>t.name??[]);case"date":return e.date?St(e.date):void 0;case"people":return e.people.map(t=>t.object==="group"?{id:t.id,table:"space_permission_group",spaceId:t.id.split("|")[1]}:{id:t.id,table:"notion_user"});case"relation":return e.relation.map(t=>({id:t.id,table:"block"}));case"files":return e.files.map(t=>t.name).join(",");case"unique_id":return e.unique_id;case"button":return e.button;case"formula":return e.formula;case"location":return e.location;case"rollup":return e.rollup;case"verification":return e.verification;case"place":return"";case"created_time":return be(e.created_time);case"last_edited_time":return be(e.last_edited_time);case"last_visited_time":return be(e.last_visited_time);case"created_by":return e.created_by?[e.created_by]:void 0;case"last_edited_by":return e.last_edited_by?[e.last_edited_by]:void 0;default:return ee(e)}}function uo(e){return e.map(t=>{if(typeof t.plain_text=="string")return t.plain_text;let i=t.text;return i&&typeof i=="object"&&"content"in i&&typeof i.content=="string"?i.content:""}).join("")}function lo(e){let t={};for(let i of Object.values(e.properties))i&&(t[i.id]=co(i));return{id:e.id,is_archived:e.is_archived,in_trash:e.in_trash,propertiesById:{...t,created_time:be(e.created_time),last_edited_time:be(e.last_edited_time),created_by:e.created_by?[e.created_by]:void 0,last_edited_by:e.last_edited_by?[e.last_edited_by]:void 0}}}function po(e){return e.type==="queryDataSourceResult"?{...e,items:e.items.map(lo)}:{...e,page:ao(ze(e.page))}}function mo(e){return e.type==="queryDataSourceResult"?{...e,items:e.items.map(ze)}:{...e,page:ze(e.page)}}function fo(e,t){return e.type==="init"&&e.status==="success"||e.type==="dataSourcesChanged"?t<5?so(e):e:e.type!=="queryDataSourceResult"&&e.type!=="getPageResult"&&e.type!=="createPageResult"&&e.type!=="updatePageResult"||e.status==="error"?e:t<6?po(e):t<7?mo(e):e}var kt=o({theme:Ce,contrastMode:a(xe),blockId:le,parent:re,page:_e,manifest:de,dataSources:o({bindings:ye}),currentUser:ae}),yo=v("status",[o({status:n("success"),initialState:qt(kt,["manifest"])}),o({status:n("error"),error:Ne})]);var et=class{constructor(t){this.onUnsubscribe=t}onUnsubscribe;bySubscriptionId=new Map;subscribe(t){this.unsubscribe(t.subscriptionId);let i={_tag:"QuerySubscriptionToken"};return this.bySubscriptionId.set(t.subscriptionId,{message:t,token:i,isRefreshing:!0,shouldRefreshAgain:!1}),i}isCurrent(t,i){return this.bySubscriptionId.get(t)?.token===i}unsubscribe(t){this.bySubscriptionId.delete(t)&&this.onUnsubscribe(t)}refresh(t){let i=[],s=!1;for(let c of this.bySubscriptionId.values())if(c.message.dataSourceId===t){if(s=!0,c.isRefreshing){c.shouldRefreshAgain=!0;continue}c.isRefreshing=!0,i.push({message:c.message,token:c.token})}return s?i:void 0}finish(t,i){let s=this.bySubscriptionId.get(t);if(s?.token===i&&(s.isRefreshing=!1,!!s.shouldRefreshAgain))return s.shouldRefreshAgain=!1,s.isRefreshing=!0,{message:s.message,token:s.token}}unsubscribeAll(){for(let t of this.bySubscriptionId.keys())this.unsubscribe(t)}};function vo(e,t){if(e===void 0)return;let i="and"in e?e.and:[e];for(let s of i){let c=$n(s,t);if(c!==void 0)return c}}function $n(e,t){if(!Object.hasOwn(t.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 i=t.propertiesById[e.propertyId],s=Object.keys(e).find(h=>h!=="propertyId");if(s!==i.type)return{code:"invalid_data_source_query_filter",message:`Data source query filter branch "${s}" does not match property type "${i.type}".`,isRetryable:!1};if("status"in e&&i.type==="status"){let h=e.status;if("group_equals"in h||"group_does_not_equal"in h){let y="group_equals"in h?h.group_equals:h.group_does_not_equal,_=(Array.isArray(y)?y:[y]).find(M=>!i.groups.some(X=>X.name===M));return _===void 0?void 0:{code:"invalid_data_source_query_filter",message:`Unknown status group "${_}".`,isRetryable:!1}}}if("relation"in e&&!Tt(Ye,e.relation))return{code:"invalid_data_source_query_filter",message:"Relation filters require a page ID.",isRetryable:!1};let c=Qn(e);if(c===void 0||i.type!==c.propertyType)return;let p=new Set(i.options.map(h=>h.name)),f=Wn(c.operator).find(h=>!p.has(h));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 Qn(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 t=e.status;return"group_equals"in t||"group_does_not_equal"in t?void 0:{propertyType:"status",operator:t}}}function Wn(e){let t;if("equals"in e)t=e.equals;else if("does_not_equal"in e)t=e.does_not_equal;else if("contains"in e)t=e.contains;else if("contains_all"in e)t=e.contains_all;else if("does_not_contain"in e)t=e.does_not_contain;else return"is_empty"in e||"is_not_empty"in e?[]:ee(e);return Array.isArray(t)?t:[t]}var Xn=new Set(Ht);function ho(e,t){if(e===void 0)return;if(e.length>bt)return{code:"invalid_data_source_query_sort",message:`Data source query sorts may contain at most ${bt} entries.`,isRetryable:!1};let i=new Set;for(let s of e){if(i.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(i.add(s.propertyId),!Object.hasOwn(t.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=t.propertiesById[s.propertyId];if(!Xn.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}}}function go(){return{code:"initial_state_timeout",message:"Host did not prepare initial state before the timeout.",isRetryable:!0}}function It(e){let{currentBridgeProtocolVersion:t}=e;return{code:"invalid_protocol_version",message:`Sandbox reported an invalid bridge protocol version: ${t}`,isRetryable:!1}}function bo(){return{code:"no_connect",message:"Sandbox did not send a connect message.",isRetryable:!0}}function So(){return{code:"no_init_result",message:"Sandbox did not acknowledge initialization.",isRetryable:!0}}function tt(){return{code:"unknown_error",message:"Unexpected error while initializing custom block.",isRetryable:!1}}function _t(e){let{currentBridgeProtocolVersion:t,minBridgeProtocolVersion:i}=e;return{code:"unsupported_protocol_version",message:`Sandbox bridge protocol version ${t} is not supported. Minimum supported version is ${i}.`,isRetryable:!1}}function xt(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=1}var Kn=5e3,Zn=5e3,Jn=5e3;function ko(e){let{manifestSource:t,prepareInit:i,sendInitMessage:s,warn:c,flushPendingHostStateChanges:p,minBridgeProtocolVersion:f,noConnectTimeoutMs:h=Kn,initialStateTimeoutMs:y=Zn,noInitResultTimeoutMs:C=Jn,stopHostWithFailure:_,onInitResult:M,onInitSent:X,onConnectionFailure:V}=e,g="waitingForConnect",N,j,z,U,te=!1,pe=!1;function K(){N!==void 0&&(window.clearTimeout(N),N=void 0)}function H(){j!==void 0&&(window.clearTimeout(j),j=void 0)}function Q(){z!==void 0&&(window.clearTimeout(z),z=void 0)}function G(k){let{initializationId:P,error:I,phase:ie,source:ot}=k;switch(g){case"waitingForConnect":case"preparingInit":break;case"waitingForInitResult":case"initialized":case"failed":case"stopped":return;default:return ee(g)}g="failed",U=P,K(),H(),s({type:"init",initializationId:P,status:"error",error:I}),V({...I,phase:ie,source:ot})}async function ne(k){if(g==="waitingForConnect"){g="preparingInit",U=k.initializationId,K(),j=window.setTimeout(()=>{if(g!=="preparingInit")return;let P=go();c({...P,initializationId:k.initializationId}),G({initializationId:k.initializationId,error:P,phase:"init",source:"host"})},y);try{let P=await i(k);if(g!=="preparingInit")return;if(H(),P.status==="error"){G({initializationId:k.initializationId,error:P.error,phase:"init",source:"host"});return}g="waitingForInitResult";let I={type:"init",initializationId:k.initializationId,status:"success",theme:P.initialState.theme,contrastMode:P.initialState.contrastMode??Wt,blockId:P.initialState.blockId,parent:P.initialState.parent,page:P.initialState.page,currentUser:P.initialState.currentUser,manifest:P.initialState.manifest,dataSources:P.initialState.dataSources};if(s(I),g!=="waitingForInitResult"||(X(),g!=="waitingForInitResult"))return;z=window.setTimeout(()=>{if(g!=="waitingForInitResult")return;g="failed";let ie=So();V({...ie,phase:"initResult",source:"host"}),c({...ie,initializationId:k.initializationId})},C)}catch(P){if(g!=="preparingInit")return;c({message:"Failed to prepare custom block initialization",error:P}),G({initializationId:k.initializationId,error:tt(),phase:"init",source:"host"})}}}function q(k){if(g!=="stopped"&&g==="waitingForConnect"){if(!xt(k.bridgeProtocolVersion)){let P=It({currentBridgeProtocolVersion:k.bridgeProtocolVersion});G({initializationId:k.initializationId,error:P,phase:"connect",source:"host"});return}if(k.bridgeProtocolVersion<f){let P=_t({currentBridgeProtocolVersion:k.bridgeProtocolVersion,minBridgeProtocolVersion:f});G({initializationId:k.initializationId,error:P,phase:"connect",source:"host"});return}if(k.status==="error"&&(t==="sandbox"||k.error.code!=="manifest_invalid")){G({initializationId:k.initializationId,error:k.error,phase:"connect",source:"sandbox"});return}pe=!0,ne(k)}}function Y(k){if(g==="stopped"||g!=="waitingForConnect")return"handled";let{initializationId:P,bridgeProtocolVersion:I}=k;if(P===void 0)return"nack";let ie=k.error;return I!==void 0&&(xt(I)?I<f&&(ie=_t({currentBridgeProtocolVersion:I,minBridgeProtocolVersion:f})):ie=It({currentBridgeProtocolVersion:I})),G({initializationId:P,error:ie,phase:"connect",source:"host"}),"handled"}function me(k){let{initializationId:P,error:I}=k;g!=="waitingForInitResult"||P===void 0||P!==U||(K(),Q(),g="failed",c(I),V({...I,phase:"initResult",source:"host"}))}function He(){if(g!=="stopped"){if(te){_({phase:"runtime",source:"host",code:"iframe_reloaded",message:"The iframe reloaded. Create a new host and iframe to reconnect.",isRetryable:!0});return}te=!0,K(),g==="waitingForConnect"&&(N=window.setTimeout(()=>{if(g!=="waitingForConnect")return;g="failed";let k=bo();c(k),V({...k,phase:"connect",source:"host"})},h))}}function Me(k){if(g!=="waitingForInitResult"||k.initializationId!==U){c({message:"Ignored stale or unexpected initResult",payload:k});return}Q(),g=k.status==="success"?"initialized":"failed",k.status==="success"?p():V({...k.error,phase:"initResult",source:"sandbox"}),M(k)}function fe(){g="stopped",K(),H(),Q()}return{get status(){return g},get hasConnectedSandbox(){return pe},handleConnect:q,handleInitResult:Me,handleInvalidConnect:Y,handleInvalidInitResult:me,onIframeLoad:He,stop:fe}}function Ct(){return{code:"context_unavailable",message:"Host page context is unavailable.",isRetryable:!0}}function Pt(){return{code:"invalid_local_preview_url",message:"Local custom blocks require an HTTP(S) URL on localhost, a .localhost subdomain, or 127.0.0.1, without credentials and on a different origin from the host.",isRetryable:!1}}function Io(){return{code:"invalid_property_binding",message:"A mapped data source property is missing or incompatible.",isRetryable:!1}}function _o(){return{code:"missing_data_source_binding",message:"A required data source is not mapped.",isRetryable:!1}}function xo(){return{code:"missing_property_binding",message:"A required data source property is not mapped.",isRetryable:!1}}function Co(e){return(e.protocol==="http:"||e.protocol==="https:")&&(e.hostname==="localhost"||e.hostname==="127.0.0.1"||e.hostname.endsWith(".localhost"))&&e.username===""&&e.password===""}function rt({url:e,hostOrigin:t}){return typeof t=="string"&&t!==""&&e.origin!==t&&Co(e)}async function Po(e){return e.manifestSource==="host"?e.hostManifest:e.connectManifest!==void 0?{status:"success",manifest:e.connectManifest}:{status:"error",error:{code:"manifest_unavailable",message:"The sandbox did not provide a manifest in connect.",isRetryable:!1}}}var Eo=v("status",[o({status:n("success"),manifest:de}),o({status:n("error"),error:Ne})]);function Oo(e){switch(e.type){case"connect":case"init":case"initResult":return!0;default:return!1}}var jo=o({type:n("resize"),height:A(O(),De(),Te(0))});var Bo=o({type:n("unsubscribeDataSourceQuery"),subscriptionId:r()});var Ro=o({code:r(),message:r(),isRetryable:b()});var Mo={type:n("connect"),initializationId:r(),bridgeProtocolVersion:O(),sdkVersion:r()},Do=v("status",[o({status:n("success"),manifest:a(de),...Mo}),o({status:n("error"),error:Ro,...Mo})]);var Yn=r(),ei=o({code:Yn,message:r(),isRetryable:b()}),wo=v("status",[o({type:n("initResult"),initializationId:r(),status:n("success"),initialHeight:a(A(O(),De(),Te(0)))}),o({type:n("initResult"),initializationId:r(),status:n("error"),error:ei})]);var To=o({type:n("invalidHostMessage"),reason:r()});var qo=v("type",[Do,wo,Br,Bo,Fr,Hr,Jr,to,Gr,wr,Kr,jo,To]);function Ao(e){return Ie(qo,e)}function No(){return{code:"invalid_connect_payload",message:"Sandbox sent an invalid connect message.",isRetryable:!1}}function Uo(){return{code:"invalid_init_result_payload",message:"Sandbox sent an invalid initialization result.",isRetryable:!1}}function Fo(e){if(typeof e=="object"&&e!==null&&"type"in e&&typeof e.type=="string")return e.type}function zo(e){let t=Fo(e);return t==="invalidHostMessage"||t==="invalidSandboxMessage"?{incomingType:t}:{incomingType:t,nack:{type:"invalidSandboxMessage",reason:ti(t)}}}function ti(e){return e!==void 0?`Unsupported sandbox message of type "${e}"`:"Unsupported sandbox message (no `type` field or non-object payload)"}var Ho=o({initializationId:r()}),ri=o({bridgeProtocolVersion:d([O(),pt()])});function Lo(e){let{iframe:t,sandboxOrigin:i,getInitStatus:s,emit:c,sendNack:p,onInvalidConnect:f,onInvalidInitResult:h,onConnect:y,onInitResult:C,onQueryDataSource:_,onUnsubscribeDataSourceQuery:M,onCreatePage:X,onGetPage:V,onOpenPage:g,onOpenExternalUrl:N,onGetUser:j,onListUsers:z,onUpdatePage:U,onResize:te}=e;function pe(K,H){c("warn",{message:"Ignored unsupported sandbox message",payload:Et(K),issues:H});let Q=zo(K);if(Q.incomingType==="connect"){let G=Ie(Ho,K),ne=Ie(ri,K);if(f({initializationId:G.success?G.output.initializationId:void 0,error:No(),bridgeProtocolVersion:ne.success?ne.output.bridgeProtocolVersion:void 0})==="handled")return}if(Q.incomingType==="initResult"){let G=Ie(Ho,K);h({initializationId:G.success?G.output.initializationId:void 0,error:Uo()})}Q.nack!==void 0&&s()!=="stopped"&&p(Q.nack)}return function(H){let Q=H.source===t.contentWindow,G=H.origin===i;if(!Q||!G)return;let ne=Ao(H.data);if(!ne.success){pe(H.data,ne.issues);return}let q=ne.output;if(!Oo(q)&&s()!=="initialized"){c("warn",{message:`Ignored ${q.type} before initialization completed`,payload:Et(q)});return}switch(c("in",Et(q)),q.type){case"connect":y(q);return;case"initResult":C(q);return;case"queryDataSource":_(q);return;case"unsubscribeDataSourceQuery":M(q);return;case"createPage":X(q);return;case"openPage":g(q);return;case"openExternalUrl":N(q);return;case"getPage":V(q);return;case"getUser":j(q);return;case"listUsers":z(q);return;case"updatePage":U(q);return;case"resize":te(q);return;case"invalidHostMessage":return;default:ee(q)}}}function Et(e){return typeof e=="object"&&e!==null&&"type"in e&&e.type==="openExternalUrl"?{type:"openExternalUrl",..."requestId"in e?{requestId:e.requestId}:{}}:e}function Vo(e){if(e.length>2048||!URL.canParse(e))return;let t=new URL(e);if(!(t.protocol!=="http:"&&t.protocol!=="https:"||t.username!==""||t.password!==""||t.href.length>2048))return t.href}var $o=5;function ni(e){let{iframe:t,prepareInitialState:i,handlers:s,onStatusChange:c,onLog:p,onQueryUnsubscribed:f,minBridgeProtocolVersion:h,noConnectTimeoutMs:y,initialStateTimeoutMs:C,noInitResultTimeoutMs:_}=e,M=ii(e.sandboxUrl,e.manifestSource),X=M.origin,V=Math.max(h??3,3),g=new AbortController,N,j={},z=!1,U=new AbortController,te,pe,K=8,H=new et(u=>{f?.(u)});function Q(u,S){p?.(u,S)}function G(u){let S=I.status;switch(S){case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"initialized":case"failed":break;case"stopped":return;default:return ee(S)}let x=fo(u,K);Q("out",x),t.contentWindow?.postMessage(x,X)}function ne(u){G(se(We,u))}function q(u){G(u)}function Y(u){let S=I.status;switch(S){case"initialized":G(se(io,u));return;case"waitingForConnect":case"preparingInit":case"waitingForInitResult":case"failed":case"stopped":return;default:ee(S)}}async function me(u,S){if(S===void 0)return;let x=await S(u);Y({type:`${u.type}Result`,requestId:u.requestId,...x})}function He(u){let S=u.response.status==="error"?{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"error",error:u.response.error}:{type:"queryDataSourceResult",subscriptionId:u.subscriptionId,status:"success",items:u.response.items,hasMore:u.response.hasMore};Y(S)}async function Me(u,S=H.subscribe(u)){try{let x=si(pe,u.dataSourceId),ve=ai(u,x);if(ve!==void 0){H.isCurrent(u.subscriptionId,S)&&(H.unsubscribe(u.subscriptionId),He({subscriptionId:u.subscriptionId,response:{status:"error",error:ve}}));return}let it=await s.queryDataSource(u);if(!H.isCurrent(u.subscriptionId,S))return;it.status==="error"&&!it.error.isRetryable&&H.unsubscribe(u.subscriptionId),He({subscriptionId:u.subscriptionId,response:it})}finally{let x=H.finish(u.subscriptionId,S);x!==void 0&&Me(x.message,x.token)}}function fe(u){I.status==="stopped"||I.status==="failed"||(Object.assign(j,u),P())}async function k(u){if(s.openExternalUrl===void 0||g.signal.aborted||N===u.requestId)return;if(N!==void 0){let x={type:"openExternalUrlResult",requestId:u.requestId,status:"error",error:{code:"pending_navigation",message:"Another external navigation request is pending.",isRetryable:!0}};Y(x);return}let S=Vo(u.url);if(S===void 0){let x={type:"openExternalUrlResult",requestId:u.requestId,status:"error",error:{code:"invalid_url",message:"Only valid HTTP or HTTPS URLs without credentials, up to 2,048 characters, can be opened.",isRetryable:!1}};Y(x);return}N=u.requestId;try{let x=await s.openExternalUrl({...u,url:S},{signal:g.signal});if(g.signal.aborted)return;let ve={type:"openExternalUrlResult",requestId:u.requestId,...x};Y(ve)}catch(x){if(!g.signal.aborted)throw x}finally{N===u.requestId&&(N=void 0)}}function P(){if(I.status!=="initialized")return;let u=j;j={},u.theme!==void 0&&Y({type:"themeChanged",theme:u.theme}),u.contrastMode!==void 0&&Y({type:"contrastModeChanged",contrastMode:u.contrastMode}),u.parent!==void 0&&Y({type:"parentChanged",parent:u.parent}),u.page!==void 0&&Y({type:"pageChanged",page:u.page}),u.dataSources!==void 0&&Y({type:"dataSourcesChanged",dataSources:u.dataSources}),u.currentUser!==void 0&&Y({type:"currentUserChanged",currentUser:u.currentUser})}let I=ko({manifestSource:e.manifestSource,async prepareInit(u){let S=u.status==="success"?u.manifest:void 0;K=u.bridgeProtocolVersion,c({status:"preparingInit",localManifest:rt({url:M,hostOrigin:window.location.origin})?S:void 0,bridgeProtocolVersion:u.bridgeProtocolVersion,sdkVersion:u.sdkVersion});let x=await(Xo??jt(S));return I.status!=="preparingInit"?x:ie(x)},sendInitMessage:ne,onInitSent:()=>c({status:"waitingForInitResult"}),warn:u=>Q("warn",u),flushPendingHostStateChanges:P,minBridgeProtocolVersion:V,noConnectTimeoutMs:y,initialStateTimeoutMs:C,noInitResultTimeoutMs:_,stopHostWithFailure:Rt,onInitResult(u){u.status==="success"&&te!==void 0&&c({status:"initialized",resolvedManifest:te,initialHeight:u.initialHeight})},onConnectionFailure:u=>{U.abort(),c({status:"failed",error:u})}});function ie(u){if(u.status==="error")return u;let S=se(kt,{...u.initialState,...j});if(te=S.manifest,j={},K<$o&&S.page.type==="unavailable")return{status:"error",error:Ct()};let x=Qo(S.manifest,S.dataSources);return x!==void 0?{status:"error",error:x}:(pe=S.dataSources,z=!0,{status:"success",initialState:S})}let ot=Ko().catch(Ot),Xo=e.manifestSource==="host"?jt(void 0).catch(Ot):void 0;async function Ko(){U.signal.throwIfAborted();let u=await e.getPersistedManifest({signal:U.signal});return U.signal.throwIfAborted(),se(Eo,u)}function Ot(u){return U.signal.aborted||Q("warn",{message:"Failed to prepare custom block initialization",error:u}),{status:"error",error:tt()}}async function jt(u){U.signal.throwIfAborted();let S=await Po({manifestSource:e.manifestSource,hostManifest:ot,connectManifest:u});if(U.signal.throwIfAborted(),S.status==="error")return S;let x=se(yo,await i({manifest:S.manifest,signal:U.signal}));return x.status==="error"?x:{status:"success",initialState:{...x.initialState,manifest:S.manifest}}}let Bt=Lo({iframe:t,sandboxOrigin:X,getInitStatus:()=>I.status,emit:Q,sendNack:q,onInvalidConnect:I.handleInvalidConnect,onInvalidInitResult:I.handleInvalidInitResult,onConnect:I.handleConnect,onInitResult:I.handleInitResult,onQueryDataSource:Me,onUnsubscribeDataSourceQuery:u=>H.unsubscribe(u.subscriptionId),onOpenExternalUrl:k,onCreatePage:u=>me(u,s.createPage),onGetPage:u=>me(u,s.getPage),onOpenPage:u=>me(u,s.openPage),onGetUser:u=>me(u,s.getUser),onListUsers:u=>me(u,s.listUsers),onUpdatePage:u=>me(u,s.updatePage),onResize:u=>s.resize?.(u)});window.addEventListener("message",Bt),t.addEventListener("load",I.onIframeLoad);function nt(){g.abort(),U.abort(),window.removeEventListener("message",Bt),t.removeEventListener("load",I.onIframeLoad),I.stop(),H.unsubscribeAll()}function Zo(){let u=I.status;nt(),u!=="stopped"&&u!=="failed"&&c({status:"stopped"})}function Rt(u){if(I.status!=="stopped"){if(I.status==="failed"){nt();return}nt(),Q("warn",u),c({status:"failed",error:u})}}return c({status:"waitingForConnect"}),{stop:Zo,setTheme(u){fe({theme:u})},setContrastMode(u){fe({contrastMode:u})},setParent(u){fe({parent:u})},setPage(u){if(u.type==="unavailable"&&K<$o&&(I.status==="preparingInit"&&z||I.status==="waitingForInitResult"||I.status==="initialized")){Rt({...Ct(),phase:"runtime",source:"host"});return}fe({page:u})},setCurrentUser(u){fe({currentUser:u})},setDataSources(u){let S={bindings:se(ye,u.bindings)},x=I.hasConnectedSandbox&&te!==void 0?Qo(te,S):void 0;return x!==void 0?(Q("warn",{message:"Ignored invalid data source bindings update",payload:S}),{status:"error",error:x}):(pe=S,fe({dataSources:S}),{status:"success"})},refreshQuery({dataSourceId:u}){if(I.status!=="initialized")return;let S=se(Z,u),x=H.refresh(S);if(x===void 0){Q("warn",`No active query exists for data source "${u}"`);return}for(let ve of x)Me(ve.message,ve.token)}}}function ii(e,t){let i;try{i=new URL(e)}catch(s){throw t==="host"?s:new Ae(Pt())}if(t==="sandbox"&&!rt({url:i,hostOrigin:window.location.origin}))throw new Ae(Pt());return i}function si(e,t){return Object.values(e?.bindings??{}).find(i=>i.collectionPointer?.id===t)?.collectionSchema}function Qo(e,t){for(let[i,s]of Object.entries(e.dataSources)){let c=t.bindings[i];if(c?.inaccessible===!0)continue;let p=Qt({manifestDataSource:s,collectionSchema:c?.collectionSchema,propertyIdsByKey:c?.propertyIdsByKey});if(c?.collectionPointer===void 0||p.status==="missing_schema")return _o();for(let f of p.properties){if(f.status==="missing")return xo();if(f.status!=="mapped")return Io()}}}function ai(e,t){return t===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}:vo(e.filter,t)??ho(e.sorts,t)}function ui(e){let{manifestProperties:t,propertySchemasById:i}=e,s=[];for(let[c,p]of Object.entries(t)){let f=ci({propertyKey:c,manifestProperty:p,propertySchemasById:i});f!==void 0&&s.push([c,f])}return Object.fromEntries(s)}function ci(e){let{propertyKey:t,manifestProperty:i,propertySchemasById:s}=e,c=Wo(i.name),p=Object.entries(s).filter(([f,h])=>h.type===i.type&&(f===t||Wo(h.name)===c));return p.length===1?p[0][0]:void 0}function Wo(e){return e.trim().toLowerCase()}function li(e){return se(F,e)}export{Se as InvalidNotionDateError,ni as createCustomBlockHost,ui as getAutoBoundPropertyIdsByKey,rt as isAllowedLocalPreviewUrl,St as toNotionDateValue,li as toNotionPageId};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { CustomBlockInitErrorInfo } from "../protocol/handshake/init.js";
|
|
2
1
|
import type { BridgeCustomBlockManifest } from "../protocol/manifest/manifest.js";
|
|
3
2
|
import * as v from "valibot";
|
|
3
|
+
import type { CustomBlockHostResult } from "../messages/result.js";
|
|
4
4
|
export declare const customBlockHostInitialStateSchema: v.ObjectSchema<{
|
|
5
5
|
readonly theme: v.PicklistSchema<["light", "dark"], undefined>;
|
|
6
6
|
/**
|
|
@@ -241,13 +241,9 @@ export declare const customBlockHostInitialStateSchema: v.ObjectSchema<{
|
|
|
241
241
|
}, undefined>;
|
|
242
242
|
}, undefined>;
|
|
243
243
|
export type CustomBlockHostInitialState = v.InferInput<typeof customBlockHostInitialStateSchema>;
|
|
244
|
-
export type CustomBlockHostInitialStateResult = {
|
|
245
|
-
status: "success";
|
|
244
|
+
export type CustomBlockHostInitialStateResult = CustomBlockHostResult<{
|
|
246
245
|
initialState: CustomBlockHostInitialState;
|
|
247
|
-
}
|
|
248
|
-
status: "error";
|
|
249
|
-
error: CustomBlockInitErrorInfo;
|
|
250
|
-
};
|
|
246
|
+
}>;
|
|
251
247
|
export declare const customBlockHostPreparedStateResultSchema: v.VariantSchema<"status", [v.ObjectSchema<{
|
|
252
248
|
readonly status: v.LiteralSchema<"success", undefined>;
|
|
253
249
|
readonly initialState: Omit<v.ObjectSchema<{
|
|
@@ -1795,13 +1791,9 @@ export declare const customBlockHostPreparedStateResultSchema: v.VariantSchema<"
|
|
|
1795
1791
|
}, undefined>;
|
|
1796
1792
|
}, undefined>], undefined>;
|
|
1797
1793
|
/** Adapter-owned state or an explicit preparation error. The host adds the manifest to init. */
|
|
1798
|
-
export type CustomBlockHostPreparedStateResult = {
|
|
1799
|
-
status: "success";
|
|
1794
|
+
export type CustomBlockHostPreparedStateResult = CustomBlockHostResult<{
|
|
1800
1795
|
initialState: Omit<CustomBlockHostInitialState, "manifest">;
|
|
1801
|
-
}
|
|
1802
|
-
status: "error";
|
|
1803
|
-
error: CustomBlockInitErrorInfo;
|
|
1804
|
-
};
|
|
1796
|
+
}>;
|
|
1805
1797
|
export type CustomBlockHostPrepareInitialState = (args: {
|
|
1806
1798
|
manifest: BridgeCustomBlockManifest;
|
|
1807
1799
|
signal: AbortSignal;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../src/context/initialState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"initialState.d.ts","sourceRoot":"","sources":["../../src/context/initialState.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,uDAAuD,CAAA;AAItG,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,eAAO,MAAM,iCAAiC;;IAE7C;;;OAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAQF,CAAA;AAEF,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,UAAU,CACrD,OAAO,iCAAiC,CACxC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG,qBAAqB,CAAC;IACrE,YAAY,EAAE,2BAA2B,CAAA;CACzC,CAAC,CAAA;AAEF,eAAO,MAAM,wCAAwC;;;;QArBpD;;;WAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAHH;;;eAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BA2BF,CAAA;AAEF,gGAAgG;AAChG,MAAM,MAAM,kCAAkC,GAAG,qBAAqB,CAAC;IACtE,YAAY,EAAE,IAAI,CAAC,2BAA2B,EAAE,UAAU,CAAC,CAAA;CAC3D,CAAC,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,CAAC,IAAI,EAAE;IACvD,QAAQ,EAAE,yBAAyB,CAAA;IACnC,MAAM,EAAE,WAAW,CAAA;CACnB,KAAK,OAAO,CAAC,kCAAkC,CAAC,CAAA"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { customBlockPageSchema } from "./protocol/context/containingPage.js";
|
|
2
|
-
import type {
|
|
2
|
+
import type { NotionContrastMode } from "./protocol/context/contrast.js";
|
|
3
3
|
import type { notionParentSchema } from "./protocol/context/parent.js";
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import {
|
|
4
|
+
import type { NotionTheme } from "./protocol/context/theme.js";
|
|
5
|
+
import type { BridgeUser } from "./protocol/users/bridgeUser.js";
|
|
6
|
+
import type { CustomBlockErrorInfo } from "./protocol/utils/errors.js";
|
|
7
7
|
import type { InferInput } from "valibot";
|
|
8
8
|
import type { CustomBlockHostPrepareInitialState } from "./context/initialState.js";
|
|
9
9
|
import type { CustomBlockHostDataSourcesPayload } from "./dataSources/types.js";
|
|
@@ -43,16 +43,27 @@ export type CustomBlockHostOptions = {
|
|
|
43
43
|
prepareInitialState: CustomBlockHostPrepareInitialState;
|
|
44
44
|
initialStateTimeoutMs?: number;
|
|
45
45
|
};
|
|
46
|
+
/** Reports local acceptance, not sandbox delivery or initialization success. */
|
|
47
|
+
export type CustomBlockHostSetDataSourcesResult = {
|
|
48
|
+
status: "success";
|
|
49
|
+
} | {
|
|
50
|
+
status: "error";
|
|
51
|
+
error: CustomBlockErrorInfo<"missing_data_source_binding" | "missing_property_binding" | "invalid_property_binding">;
|
|
52
|
+
};
|
|
46
53
|
export type CustomBlockHostHandle = {
|
|
47
54
|
stop: () => void;
|
|
48
|
-
setTheme: (theme:
|
|
49
|
-
setContrastMode: (contrastMode:
|
|
55
|
+
setTheme: (theme: NotionTheme) => void;
|
|
56
|
+
setContrastMode: (contrastMode: NotionContrastMode) => void;
|
|
50
57
|
setParent: (parent: InferInput<typeof notionParentSchema>) => void;
|
|
51
58
|
setPage: (page: InferInput<typeof customBlockPageSchema>) => void;
|
|
52
|
-
|
|
53
|
-
|
|
59
|
+
/**
|
|
60
|
+
* Reports synchronous local acceptance, not sandbox delivery or initialization success.
|
|
61
|
+
* Malformed bindings can throw during schema parsing.
|
|
62
|
+
*/
|
|
63
|
+
setDataSources: (dataSources: CustomBlockHostDataSourcesPayload) => CustomBlockHostSetDataSourcesResult;
|
|
64
|
+
setCurrentUser: (currentUser: BridgeUser) => void;
|
|
54
65
|
refreshQuery: (args: {
|
|
55
|
-
dataSourceId:
|
|
66
|
+
dataSourceId: string;
|
|
56
67
|
}) => void;
|
|
57
68
|
};
|
|
58
69
|
export declare function createCustomBlockHost(options: CustomBlockHostOptions): CustomBlockHostHandle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../src/createCustomBlockHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAA;AACvG,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createCustomBlockHost.d.ts","sourceRoot":"","sources":["../src/createCustomBlockHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4DAA4D,CAAA;AACvG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sDAAsD,CAAA;AAC9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oDAAoD,CAAA;AAC5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAA;AAuBpF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sDAAsD,CAAA;AACtF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,kDAAkD,CAAA;AAI5F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAGzC,OAAO,KAAK,EAGX,kCAAkC,EAClC,MAAM,2BAA2B,CAAA;AAOlC,OAAO,KAAK,EACX,iCAAiC,EAGjC,MAAM,wBAAwB,CAAA;AAW/B,OAAO,KAAK,EAEX,qBAAqB,EACrB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,KAAK,EACX,6BAA6B,EAE7B,yBAAyB,EACzB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACrE,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AASxE,MAAM,MAAM,sBAAsB,GAAG;IACpC,cAAc,EAAE,yBAAyB,CAAA;IACzC;;;;;OAKG;IACH,oBAAoB,EAAE,CAAC,IAAI,EAAE;QAC5B,MAAM,EAAE,WAAW,CAAA;KACnB,KAAK,OAAO,CAAC,6BAA6B,CAAC,CAAA;IAC5C,MAAM,EAAE,iBAAiB,CAAA;IACzB,0EAA0E;IAC1E,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,QAAQ,EAAE,uBAAuB,CAAA;IACjC,6FAA6F;IAC7F,cAAc,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAA;IACtD,+FAA+F;IAC/F,mBAAmB,EAAE,CAAC,CAAC,cAAc,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,SAAS,CAAA;IACnE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,2BAA2B,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1E,2DAA2D;IAC3D,mBAAmB,EAAE,kCAAkC,CAAA;IACvD,qBAAqB,CAAC,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED,gFAAgF;AAChF,MAAM,MAAM,mCAAmC,GAC5C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IACA,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,oBAAoB,CACxB,6BAA6B,GAC7B,0BAA0B,GAC1B,0BAA0B,CAC5B,CAAA;CACA,CAAA;AAEJ,MAAM,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,MAAM,IAAI,CAAA;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IACtC,eAAe,EAAE,CAAC,YAAY,EAAE,kBAAkB,KAAK,IAAI,CAAA;IAC3D,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,kBAAkB,CAAC,KAAK,IAAI,CAAA;IAClE,OAAO,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,qBAAqB,CAAC,KAAK,IAAI,CAAA;IACjE;;;OAGG;IACH,cAAc,EAAE,CACf,WAAW,EAAE,iCAAiC,KAC1C,mCAAmC,CAAA;IACxC,cAAc,EAAE,CAAC,WAAW,EAAE,UAAU,KAAK,IAAI,CAAA;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACtD,CAAA;AAQD,wBAAgB,qBAAqB,CACpC,OAAO,EAAE,sBAAsB,GAC7B,qBAAqB,CA6jBvB"}
|
|
@@ -472,17 +472,22 @@ export function createCustomBlockHost(options) {
|
|
|
472
472
|
const normalizedDataSources = {
|
|
473
473
|
bindings: v.parse(bridgeDataSourceBindingsSchema, dataSources.bindings),
|
|
474
474
|
};
|
|
475
|
-
|
|
476
|
-
manifest
|
|
477
|
-
|
|
475
|
+
const bindingError = initializationController.hasConnectedSandbox && manifest !== undefined
|
|
476
|
+
? getBindingError(manifest, normalizedDataSources)
|
|
477
|
+
: undefined;
|
|
478
|
+
if (bindingError !== undefined) {
|
|
478
479
|
emit("warn", {
|
|
479
480
|
message: "Ignored invalid data source bindings update",
|
|
480
481
|
payload: normalizedDataSources,
|
|
481
482
|
});
|
|
482
|
-
return
|
|
483
|
+
return {
|
|
484
|
+
status: "error",
|
|
485
|
+
error: bindingError,
|
|
486
|
+
};
|
|
483
487
|
}
|
|
484
488
|
activeDataSources = normalizedDataSources;
|
|
485
489
|
updateHostState({ dataSources: normalizedDataSources });
|
|
490
|
+
return { status: "success" };
|
|
486
491
|
},
|
|
487
492
|
refreshQuery({ dataSourceId }) {
|
|
488
493
|
if (initializationController.status !== "initialized") {
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
import type { bridgeDataSourceBindingsSchema } from "../protocol/dataSources/bridgeDataSourceBindings.js";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
2
|
+
import type { queryDataSourceMessageSchema } from "../protocol/dataSources/messages/queryDataSource.js";
|
|
3
|
+
import type { BridgePage } from "../protocol/pages/bridgePage.js";
|
|
4
4
|
import type * as v from "valibot";
|
|
5
5
|
import type { InferInput } from "valibot";
|
|
6
|
+
import type { CustomBlockHostResult } from "../messages/result.js";
|
|
6
7
|
export type QueryDataSourceMessageInput = InferInput<typeof queryDataSourceMessageSchema>;
|
|
7
|
-
export type CustomBlockHostQueryDataSourceResult = BridgeMessagePayload<InferInput<typeof queryDataSourceResultMessageSchema>, CustomBlockQueryDataSourceErrorInfo>;
|
|
8
8
|
export type CustomBlockHostDataSourcesPayload = {
|
|
9
9
|
bindings: v.InferInput<typeof bridgeDataSourceBindingsSchema>;
|
|
10
10
|
};
|
|
11
11
|
export type CustomBlockHostNormalizedDataSourcesPayload = {
|
|
12
12
|
bindings: v.InferOutput<typeof bridgeDataSourceBindingsSchema>;
|
|
13
13
|
};
|
|
14
|
+
export type CustomBlockHostQueryDataSourceResult = CustomBlockHostResult<{
|
|
15
|
+
items: BridgePage[];
|
|
16
|
+
hasMore: boolean;
|
|
17
|
+
}>;
|
|
14
18
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dataSources/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0EAA0E,CAAA;AAC9H,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dataSources/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,0EAA0E,CAAA;AAC9H,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,0EAA0E,CAAA;AAC5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sDAAsD,CAAA;AACtF,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACzC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,MAAM,MAAM,2BAA2B,GAAG,UAAU,CACnD,OAAO,4BAA4B,CACnC,CAAA;AAED,MAAM,MAAM,iCAAiC,GAAG;IAC/C,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC7D,CAAA;AAED,MAAM,MAAM,2CAA2C,GAAG;IACzD,QAAQ,EAAE,CAAC,CAAC,WAAW,CAAC,OAAO,8BAA8B,CAAC,CAAA;CAC9D,CAAA;AAED,MAAM,MAAM,oCAAoC,GAAG,qBAAqB,CAAC;IACxE,KAAK,EAAE,UAAU,EAAE,CAAA;IACnB,OAAO,EAAE,OAAO,CAAA;CAChB,CAAC,CAAA"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { CustomBlockHostInitialState, CustomBlockHostInitialStateResult, CustomBlockHostPreparedStateResult, CustomBlockHostPrepareInitialState, } from "./context/initialState.js";
|
|
2
2
|
export type { ResizeMessageInput } from "./context/resize.js";
|
|
3
|
-
export { type CustomBlockHostHandle, type CustomBlockHostOptions, createCustomBlockHost, } from "./createCustomBlockHost.js";
|
|
3
|
+
export { type CustomBlockHostHandle, type CustomBlockHostOptions, type CustomBlockHostSetDataSourcesResult, createCustomBlockHost, } from "./createCustomBlockHost.js";
|
|
4
4
|
export { type AutoBindableProperty, getAutoBoundPropertyIdsByKey, } from "./dataSources/bindings/getAutoBoundPropertyIdsByKey.js";
|
|
5
5
|
export { type CustomBlockDateValue, InvalidNotionDateError, toNotionDateValue, } from "./dataSources/properties/toNotionDateValue.js";
|
|
6
6
|
export type { CustomBlockHostDataSourcesPayload, CustomBlockHostQueryDataSourceResult, QueryDataSourceMessageInput, } from "./dataSources/types.js";
|
|
@@ -9,8 +9,9 @@ export type { CustomBlockHostFailure, CustomBlockHostStatus, } from "./lifecycle
|
|
|
9
9
|
export type { CustomBlockHostManifestResult, CustomBlockManifestSource, } from "./manifest/types.js";
|
|
10
10
|
export type { CustomBlockHostHandlers } from "./messages/handlers.js";
|
|
11
11
|
export type { CustomBlockHostLogDirection } from "./messages/logging.js";
|
|
12
|
-
export type {
|
|
13
|
-
export type {
|
|
14
|
-
export type {
|
|
12
|
+
export type { CustomBlockHostResult } from "./messages/result.js";
|
|
13
|
+
export type { CustomBlockHostNavigationContext, OpenExternalUrlMessageInput, } from "./navigation/types.js";
|
|
14
|
+
export type { CreatePageMessageInput, CustomBlockHostOpenPageResult, CustomBlockHostPageResult, GetPageMessageInput, OpenPageMessageInput, UpdatePageMessageInput, } from "./pages/types.js";
|
|
15
|
+
export type { CustomBlockHostUserListResult, CustomBlockHostUserResult, GetUserMessageInput, ListUsersMessageInput, } from "./users/types.js";
|
|
15
16
|
export { toNotionPageId } from "./utils/toNotionPageId.js";
|
|
16
17
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,GAClC,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACN,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,+CAA+C,CAAA;AACtD,YAAY,EACX,iCAAiC,EACjC,oCAAoC,EACpC,2BAA2B,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,YAAY,EACX,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,6BAA6B,EAC7B,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACxE,YAAY,EACX,gCAAgC,EAChC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACX,2BAA2B,EAC3B,iCAAiC,EACjC,kCAAkC,EAClC,kCAAkC,GAClC,MAAM,2BAA2B,CAAA;AAClC,YAAY,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAC7D,OAAO,EACN,KAAK,qBAAqB,EAC1B,KAAK,sBAAsB,EAC3B,KAAK,mCAAmC,EACxC,qBAAqB,GACrB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACN,KAAK,oBAAoB,EACzB,4BAA4B,GAC5B,MAAM,wDAAwD,CAAA;AAC/D,OAAO,EACN,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,iBAAiB,GACjB,MAAM,+CAA+C,CAAA;AACtD,YAAY,EACX,iCAAiC,EACjC,oCAAoC,EACpC,2BAA2B,GAC3B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,wBAAwB,EAAE,MAAM,yCAAyC,CAAA;AAClF,YAAY,EACX,sBAAsB,EACtB,qBAAqB,GACrB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,6BAA6B,EAC7B,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AACrE,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACxE,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAA;AACjE,YAAY,EACX,gCAAgC,EAChC,2BAA2B,GAC3B,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACtB,MAAM,kBAAkB,CAAA;AACzB,YAAY,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,GACrB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA"}
|
package/dist/manifest/types.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { CustomBlockInitErrorInfo } from "../protocol/handshake/init.js";
|
|
2
1
|
import { manifestSchema } from "../protocol/manifest/manifest.js";
|
|
3
2
|
import * as v from "valibot";
|
|
3
|
+
import type { CustomBlockHostResult } from "../messages/result.js";
|
|
4
4
|
/** Selects the manifest used to initialize a custom block. Both sources load independently. */
|
|
5
5
|
export type CustomBlockManifestSource =
|
|
6
6
|
/** Uses the persisted manifest returned by the host adapter's getPersistedManifest callback. */
|
|
@@ -48,12 +48,8 @@ export declare const customBlockHostManifestResultSchema: v.VariantSchema<"statu
|
|
|
48
48
|
}, undefined>;
|
|
49
49
|
}, undefined>], undefined>;
|
|
50
50
|
/** A persisted manifest or an explicit loading error. The host validates and normalizes it. */
|
|
51
|
-
export type CustomBlockHostManifestResult = {
|
|
52
|
-
status: "success";
|
|
51
|
+
export type CustomBlockHostManifestResult = CustomBlockHostResult<{
|
|
53
52
|
manifest: v.InferInput<typeof manifestSchema>;
|
|
54
|
-
}
|
|
55
|
-
status: "error";
|
|
56
|
-
error: CustomBlockInitErrorInfo;
|
|
57
|
-
};
|
|
53
|
+
}>;
|
|
58
54
|
export type CustomBlockHostNormalizedManifestResult = v.InferOutput<typeof customBlockHostManifestResultSchema>;
|
|
59
55
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manifest/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/manifest/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAA;AACtF,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAElE,+FAA+F;AAC/F,MAAM,MAAM,yBAAyB;AACpC,gGAAgG;AAC9F,MAAM;AACR,4FAA4F;GAC1F,SAAS,CAAA;AAEZ,eAAO,MAAM,mCAAmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAM9C,CAAA;AAEF,+FAA+F;AAC/F,MAAM,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;IACjE,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,OAAO,cAAc,CAAC,CAAA;CAC7C,CAAC,CAAA;AAEF,MAAM,MAAM,uCAAuC,GAAG,CAAC,CAAC,WAAW,CAClE,OAAO,mCAAmC,CAC1C,CAAA"}
|
|
@@ -8,19 +8,20 @@ import type { UpdatePageMessage } from "../protocol/pages/messages/updatePage.js
|
|
|
8
8
|
import type { GetUserMessage } from "../protocol/users/messages/getUser.js";
|
|
9
9
|
import type { ListUsersMessage } from "../protocol/users/messages/listUsers.js";
|
|
10
10
|
import type { CustomBlockHostQueryDataSourceResult } from "../dataSources/types.js";
|
|
11
|
-
import type { CustomBlockHostNavigationContext
|
|
12
|
-
import type {
|
|
13
|
-
import type {
|
|
11
|
+
import type { CustomBlockHostNavigationContext } from "../navigation/types.js";
|
|
12
|
+
import type { CustomBlockHostOpenPageResult, CustomBlockHostPageResult } from "../pages/types.js";
|
|
13
|
+
import type { CustomBlockHostUserListResult, CustomBlockHostUserResult } from "../users/types.js";
|
|
14
14
|
import type { MaybePromise } from "../utils/maybePromise.js";
|
|
15
|
+
import type { CustomBlockHostResult } from "./result.js";
|
|
15
16
|
export type CustomBlockHostHandlers = {
|
|
16
17
|
queryDataSource: (message: QueryDataSourceMessage) => MaybePromise<CustomBlockHostQueryDataSourceResult>;
|
|
17
|
-
createPage?: (message: CreatePageMessage) => MaybePromise<
|
|
18
|
-
getPage?: (message: GetPageMessage) => MaybePromise<
|
|
19
|
-
getUser?: (message: GetUserMessage) => MaybePromise<
|
|
20
|
-
listUsers?: (message: ListUsersMessage) => MaybePromise<
|
|
18
|
+
createPage?: (message: CreatePageMessage) => MaybePromise<CustomBlockHostPageResult>;
|
|
19
|
+
getPage?: (message: GetPageMessage) => MaybePromise<CustomBlockHostPageResult>;
|
|
20
|
+
getUser?: (message: GetUserMessage) => MaybePromise<CustomBlockHostUserResult>;
|
|
21
|
+
listUsers?: (message: ListUsersMessage) => MaybePromise<CustomBlockHostUserListResult>;
|
|
21
22
|
openPage?: (message: OpenPageMessage) => MaybePromise<CustomBlockHostOpenPageResult>;
|
|
22
|
-
openExternalUrl?: (message: OpenExternalUrlMessage, context: CustomBlockHostNavigationContext) => MaybePromise<
|
|
23
|
-
updatePage?: (message: UpdatePageMessage) => MaybePromise<
|
|
23
|
+
openExternalUrl?: (message: OpenExternalUrlMessage, context: CustomBlockHostNavigationContext) => MaybePromise<CustomBlockHostResult>;
|
|
24
|
+
updatePage?: (message: UpdatePageMessage) => MaybePromise<CustomBlockHostPageResult>;
|
|
24
25
|
resize?: (message: ResizeMessage) => void;
|
|
25
26
|
};
|
|
26
27
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/messages/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAA;AAChG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0EAA0E,CAAA;AACtH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AAC5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAA;AAClG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAA;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../src/messages/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6DAA6D,CAAA;AAChG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0EAA0E,CAAA;AACtH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gEAAgE,CAAA;AAC5G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAA;AAChG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6DAA6D,CAAA;AAClG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACtG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4DAA4D,CAAA;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,8DAA8D,CAAA;AACpG,OAAO,KAAK,EAAE,oCAAoC,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,KAAK,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EACX,6BAA6B,EAC7B,yBAAyB,EACzB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAExD,MAAM,MAAM,uBAAuB,GAAG;IACrC,eAAe,EAAE,CAChB,OAAO,EAAE,sBAAsB,KAC3B,YAAY,CAAC,oCAAoC,CAAC,CAAA;IACvD,UAAU,CAAC,EAAE,CACZ,OAAO,EAAE,iBAAiB,KACtB,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC5C,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC9E,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC9E,SAAS,CAAC,EAAE,CACX,OAAO,EAAE,gBAAgB,KACrB,YAAY,CAAC,6BAA6B,CAAC,CAAA;IAChD,QAAQ,CAAC,EAAE,CACV,OAAO,EAAE,eAAe,KACpB,YAAY,CAAC,6BAA6B,CAAC,CAAA;IAChD,eAAe,CAAC,EAAE,CACjB,OAAO,EAAE,sBAAsB,EAC/B,OAAO,EAAE,gCAAgC,KACrC,YAAY,CAAC,qBAAqB,CAAC,CAAA;IACxC,UAAU,CAAC,EAAE,CACZ,OAAO,EAAE,iBAAiB,KACtB,YAAY,CAAC,yBAAyB,CAAC,CAAA;IAC5C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,CAAA;CACzC,CAAA"}
|