@flyo/nitro-astro 1.2.3 → 1.3.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 CHANGED
@@ -1,5 +1,5 @@
1
1
  # nitro-astro
2
- Flyo Nitro for Astro Framework
2
+ Flyo Nitro for Astro Framework [foo]
3
3
 
4
4
  ## Install
5
5
 
@@ -25,6 +25,6 @@ if (componentFound) {
25
25
 
26
26
  ---
27
27
 
28
- <div onclick={`openBlockInFlyo('${block.uid}')`}>
29
- {Component && <Component block={block} {...props} />}
30
- </div>
28
+ {
29
+ Component && <Component block={block} {...props} />
30
+ }
@@ -2,6 +2,7 @@
2
2
  import { Page } from '@flyo/nitro-typescript';
3
3
  import FlyoNitroBlock from './FlyoNitroBlock.astro';
4
4
 
5
+
5
6
  interface Props {
6
7
  page: Page;
7
8
  }
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import type { AstroIntegration } from "astro";
2
- import { Configuration, ConfigApi, EntitiesApi, PagesApi, SearchApi, SitemapApi, VersionApi } from '@flyo/nitro-typescript';
2
+ import { Configuration, ConfigApi, EntitiesApi, PagesApi, SearchApi, SitemapApi, VersionApi, Block } from '@flyo/nitro-typescript';
3
3
  export type IntegrationOptions = {
4
4
  accessToken: string;
5
- liveEdit: boolean;
5
+ liveEdit: any;
6
6
  componentsDir: string;
7
7
  components: object;
8
8
  fallbackComponent?: string;
@@ -14,4 +14,5 @@ export declare function usePagesApi(): PagesApi;
14
14
  export declare function useSearchApi(): SearchApi;
15
15
  export declare function useSitemapApi(): SitemapApi;
16
16
  export declare function useVersionApi(): VersionApi;
17
+ export declare function editableBlock(block: Block): object;
17
18
  export default function flyoNitroIntegration(options: IntegrationOptions): AstroIntegration;
@@ -1,12 +1,12 @@
1
- (function(l,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(l=typeof globalThis<"u"?globalThis:l||self,h(l.flyoNitroIntegration={}))})(this,function(l){"use strict";const h="https://api.flyo.cloud/nitro/v1".replace(/\/+$/,"");class U{constructor(i={}){this.configuration=i}set config(i){this.configuration=i}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:h}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||q}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const i=this.configuration.apiKey;if(i)return typeof i=="function"?i:()=>i}get accessToken(){const i=this.configuration.accessToken;if(i)return typeof i=="function"?i:async()=>i}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const L=new U,_=class P{constructor(i=L){this.configuration=i,this.fetchApi=async(t,r)=>{let a={url:t,init:r};for(const s of this.middleware)s.pre&&(a=await s.pre({fetch:this.fetchApi,...a})||a);let o;try{o=await(this.configuration.fetchApi||fetch)(a.url,a.init)}catch(s){for(const u of this.middleware)u.onError&&(o=await u.onError({fetch:this.fetchApi,url:a.url,init:a.init,error:s,response:o?o.clone():void 0})||o);if(o===void 0)throw s instanceof Error?new O(s,"The request failed and the interceptors did not return an alternative response"):s}for(const s of this.middleware)s.post&&(o=await s.post({fetch:this.fetchApi,url:a.url,init:a.init,response:o.clone()})||o);return o},this.middleware=i.middleware}withMiddleware(...i){const t=this.clone();return t.middleware=t.middleware.concat(...i),t}withPreMiddleware(...i){const t=i.map(r=>({pre:r}));return this.withMiddleware(...t)}withPostMiddleware(...i){const t=i.map(r=>({post:r}));return this.withMiddleware(...t)}isJsonMime(i){return i?P.jsonRegex.test(i):!1}async request(i,t){const{url:r,init:a}=await this.createFetchParams(i,t),o=await this.fetchApi(r,a);if(o&&o.status>=200&&o.status<300)return o;throw new N(o,"Response returned an error code")}async createFetchParams(i,t){let r=this.configuration.basePath+i.path;i.query!==void 0&&Object.keys(i.query).length!==0&&(r+="?"+this.configuration.queryParamsStringify(i.query));const a=Object.assign({},this.configuration.headers,i.headers);Object.keys(a).forEach(g=>a[g]===void 0?delete a[g]:{});const o=typeof t=="function"?t:async()=>t,s={method:i.method,headers:a,body:i.body,credentials:this.configuration.credentials},u={...s,...await o({init:s,context:i})};let c;K(u.body)||u.body instanceof URLSearchParams||x(u.body)?c=u.body:this.isJsonMime(a["Content-Type"])?c=JSON.stringify(u.body):c=u.body;const d={...u,body:c};return{url:r,init:d}}clone(){const i=this.constructor,t=new i(this.configuration);return t.middleware=this.middleware.slice(),t}};_.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");let y=_;function x(e){return typeof Blob<"u"&&e instanceof Blob}function K(e){return typeof FormData<"u"&&e instanceof FormData}class N extends Error{constructor(i,t){super(t),this.response=i,this.name="ResponseError"}}class O extends Error{constructor(i,t){super(t),this.cause=i,this.name="FetchError"}}class v extends Error{constructor(i,t){super(t),this.field=i,this.name="RequiredError"}}function n(e,i){return e[i]!=null}function q(e,i=""){return Object.keys(e).map(t=>b(t,e[t],i)).filter(t=>t.length>0).join("&")}function b(e,i,t=""){const r=t+(t.length?`[${e}]`:e);if(i instanceof Array){const a=i.map(o=>encodeURIComponent(String(o))).join(`&${encodeURIComponent(r)}=`);return`${encodeURIComponent(r)}=${a}`}if(i instanceof Set){const a=Array.from(i);return b(e,a,t)}return i instanceof Date?`${encodeURIComponent(r)}=${encodeURIComponent(i.toISOString())}`:i instanceof Object?q(i,r):`${encodeURIComponent(r)}=${encodeURIComponent(String(i))}`}function m(e,i){return Object.keys(e).reduce((t,r)=>({...t,[r]:i(e[r])}),{})}class f{constructor(i,t=r=>r){this.raw=i,this.transformer=t}async value(){return this.transformer(await this.raw.json())}}function $(e){return M(e)}function M(e,i){return e==null?e:{identifier:n(e,"identifier")?e.identifier:void 0,content:n(e,"content")?e.content.map(R):void 0}}function R(e){return F(e)}function F(e,i){return e==null?e:{items:n(e,"items")?e.items:void 0,content:n(e,"content")?e.content:void 0,config:n(e,"config")?e.config:void 0,identifier:n(e,"identifier")?e.identifier:void 0,uid:n(e,"uid")?e.uid:void 0,component:n(e,"component")?e.component:void 0,slots:n(e,"slots")?m(e.slots,$):void 0}}function E(e){return B(e)}function B(e,i){return e==null?e:{type:n(e,"type")?e.type:void 0,target:n(e,"target")?e.target:void 0,label:n(e,"label")?e.label:void 0,href:n(e,"href")?e.href:void 0,slug:n(e,"slug")?e.slug:void 0,properties:n(e,"properties")?e.properties:void 0,children:n(e,"children")?e.children.map(E):void 0}}function D(e){return G(e)}function G(e,i){return e==null?e:{items:n(e,"items")?e.items.map(E):void 0,uid:n(e,"uid")?e.uid:void 0,identifier:n(e,"identifier")?e.identifier:void 0,label:n(e,"label")?e.label:void 0}}function J(e){return V(e)}function V(e,i){return e==null?e:{domain:n(e,"domain")?e.domain:void 0,slug:n(e,"slug")?e.slug:void 0,version:n(e,"version")?e.version:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,language:n(e,"language")?e.language:void 0}}function W(e){return z(e)}function z(e,i){return e==null?e:{nitro:n(e,"nitro")?J(e.nitro):void 0,pages:n(e,"pages")?e.pages:void 0,containers:n(e,"containers")?m(e.containers,D):void 0,globals:n(e,"globals")?e.globals:void 0}}function H(e){return X(e)}function X(e,i){return e==null?e:{api:n(e,"api")?e.api:void 0,image:n(e,"image")?e.image:void 0}}function Z(e){return Q(e)}function Q(e,i){return e==null?e:{_version:n(e,"_version")?e._version:void 0,entity_metric:n(e,"entity_metric")?H(e.entity_metric):void 0,entity_unique_id:n(e,"entity_unique_id")?e.entity_unique_id:void 0,entity_id:n(e,"entity_id")?e.entity_id:void 0,entity_image:n(e,"entity_image")?e.entity_image:void 0,entity_slug:n(e,"entity_slug")?e.entity_slug:void 0,entity_teaser:n(e,"entity_teaser")?e.entity_teaser:void 0,entity_time_end:n(e,"entity_time_end")?e.entity_time_end:void 0,entity_time_start:n(e,"entity_time_start")?e.entity_time_start:void 0,entity_title:n(e,"entity_title")?e.entity_title:void 0,entity_type:n(e,"entity_type")?e.entity_type:void 0,entity_type_id:n(e,"entity_type_id")?e.entity_type_id:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,routes:n(e,"routes")?e.routes:void 0}}function C(e){return Y(e)}function Y(e,i){return e==null?e:{entity:n(e,"entity")?Z(e.entity):void 0,model:n(e,"model")?e.model:void 0,language:n(e,"language")?e.language:void 0,jsonld:n(e,"jsonld")?e.jsonld:void 0}}function A(e){return ee(e)}function ee(e,i){return e==null?e:{entity_unique_id:n(e,"entity_unique_id")?e.entity_unique_id:void 0,entity_title:n(e,"entity_title")?e.entity_title:void 0,entity_teaser:n(e,"entity_teaser")?e.entity_teaser:void 0,entity_slug:n(e,"entity_slug")?e.entity_slug:void 0,entity_time_start:n(e,"entity_time_start")?e.entity_time_start:void 0,entity_type:n(e,"entity_type")?e.entity_type:void 0,entity_type_id:n(e,"entity_type_id")?e.entity_type_id:void 0,entity_image:n(e,"entity_image")?e.entity_image:void 0,routes:n(e,"routes")?e.routes:void 0}}function ie(e){return te(e)}function te(e,i){return e==null?e:{description:n(e,"description")?e.description:void 0,image:n(e,"image")?e.image:void 0,title:n(e,"title")?e.title:void 0}}function ne(e){return oe(e)}function oe(e,i){return e==null?e:{slug:n(e,"slug")?e.slug:void 0,title:n(e,"title")?e.title:void 0}}function re(e){return ae(e)}function ae(e,i){return e==null?e:{value:n(e,"value")?e.value:void 0,navigation:n(e,"navigation")?e.navigation:void 0,propagate:n(e,"propagate")?e.propagate:void 0}}function I(e){return se(e)}function se(e,i){return e==null?e:{id:n(e,"id")?e.id:void 0,title:n(e,"title")?e.title:void 0,href:n(e,"href")?e.href:void 0,slug:n(e,"slug")?e.slug:void 0,json:n(e,"json")?e.json.map(R):void 0,depth:n(e,"depth")?e.depth:void 0,is_home:n(e,"is_home")?e.is_home:void 0,created_at:n(e,"created_at")?e.created_at:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,is_visible:n(e,"is_visible")?e.is_visible:void 0,meta_json:n(e,"meta_json")?ie(e.meta_json):void 0,properties:n(e,"properties")?m(e.properties,re):void 0,uid:n(e,"uid")?e.uid:void 0,type:n(e,"type")?e.type:void 0,target:n(e,"target")?e.target:void 0,container:n(e,"container")?e.container:void 0,breadcrumb:n(e,"breadcrumb")?e.breadcrumb.map(ne):void 0}}function ue(e){return ce(e)}function ce(e,i){return e==null?e:{version:n(e,"version")?e.version:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0}}class de extends y{async configRaw(i){const t={},r={};this.configuration&&this.configuration.apiKey&&(t.token=this.configuration.apiKey("token"));const a=await this.request({path:"/config",method:"GET",headers:r,query:t},i);return new f(a,o=>W(o))}async config(i){return await(await this.configRaw(i)).value()}}class le extends y{async entityBySlugRaw(i,t){if(i.slug===null||i.slug===void 0)throw new v("slug","Required parameter requestParameters.slug was null or undefined when calling entityBySlug.");const r={};i.typeId!==void 0&&(r.typeId=i.typeId);const a={};this.configuration&&this.configuration.apiKey&&(r.token=this.configuration.apiKey("token"));const o=await this.request({path:"/entities/slug/{slug}".replace("{slug}",encodeURIComponent(String(i.slug))),method:"GET",headers:a,query:r},t);return new f(o,s=>C(s))}async entityBySlug(i,t){return await(await this.entityBySlugRaw(i,t)).value()}async entityByUniqueidRaw(i,t){if(i.uniqueid===null||i.uniqueid===void 0)throw new v("uniqueid","Required parameter requestParameters.uniqueid was null or undefined when calling entityByUniqueid.");const r={},a={};this.configuration&&this.configuration.apiKey&&(r.token=this.configuration.apiKey("token"));const o=await this.request({path:"/entities/uniqueid/{uniqueid}".replace("{uniqueid}",encodeURIComponent(String(i.uniqueid))),method:"GET",headers:a,query:r},t);return new f(o,s=>C(s))}async entityByUniqueid(i,t){return await(await this.entityByUniqueidRaw(i,t)).value()}}class fe extends y{async homeRaw(i){const t={},r={};this.configuration&&this.configuration.apiKey&&(t.token=this.configuration.apiKey("token"));const a=await this.request({path:"/pages/home",method:"GET",headers:r,query:t},i);return new f(a,o=>I(o))}async home(i){return await(await this.homeRaw(i)).value()}async pageRaw(i,t){const r={};i.slug!==void 0&&(r.slug=i.slug);const a={};this.configuration&&this.configuration.apiKey&&(r.token=this.configuration.apiKey("token"));const o=await this.request({path:"/pages",method:"GET",headers:a,query:r},t);return new f(o,s=>I(s))}async page(i={},t){return await(await this.pageRaw(i,t)).value()}}class pe extends y{async searchRaw(i,t){if(i.query===null||i.query===void 0)throw new v("query","Required parameter requestParameters.query was null or undefined when calling search.");const r={};i.query!==void 0&&(r.query=i.query);const a={};this.configuration&&this.configuration.apiKey&&(r.token=this.configuration.apiKey("token"));const o=await this.request({path:"/search",method:"GET",headers:a,query:r},t);return new f(o,s=>s.map(A))}async search(i,t){return await(await this.searchRaw(i,t)).value()}}class ye extends y{async sitemapRaw(i){const t={},r={};this.configuration&&this.configuration.apiKey&&(t.token=this.configuration.apiKey("token"));const a=await this.request({path:"/sitemap",method:"GET",headers:r,query:t},i);return new f(a,o=>o.map(A))}async sitemap(i){return await(await this.sitemapRaw(i)).value()}}class he extends y{async versionRaw(i){const t={},r={};this.configuration&&this.configuration.apiKey&&(t.token=this.configuration.apiKey("token"));const a=await this.request({path:"/version",method:"GET",headers:r,query:t},i);return new f(a,o=>ue(o))}async version(i){return await(await this.versionRaw(i)).value()}}const ge=/[\p{Lu}]/u,ve=/[\p{Ll}]/u,k=/^[\p{Lu}](?![\p{Lu}])/gu,S=/([\p{Alpha}\p{N}_]|$)/u,w=/[_.\- ]+/,me=new RegExp("^"+w.source),T=new RegExp(w.source+S.source,"gu"),j=new RegExp("\\d+"+S.source,"gu"),we=(e,i,t,r)=>{let a=!1,o=!1,s=!1,u=!1;for(let c=0;c<e.length;c++){const d=e[c];u=c>2?e[c-3]==="-":!0,a&&ge.test(d)?(e=e.slice(0,c)+"-"+e.slice(c),a=!1,s=o,o=!0,c++):o&&s&&ve.test(d)&&(!u||r)?(e=e.slice(0,c-1)+"-"+e.slice(c-1),s=o,o=!1,a=!0):(a=i(d)===d&&t(d)!==d,s=o,o=t(d)===d&&i(d)!==d)}return e},_e=(e,i)=>(k.lastIndex=0,e.replace(k,t=>i(t))),qe=(e,i)=>(T.lastIndex=0,j.lastIndex=0,e.replace(T,(t,r)=>i(r)).replace(j,t=>i(t)));function be(e,i){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(i={pascalCase:!1,preserveConsecutiveUppercase:!1,...i},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";const t=i.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(i.locale),r=i.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(i.locale);return e.length===1?w.test(e)?"":i.pascalCase?r(e):t(e):(e!==t(e)&&(e=we(e,t,r,i.preserveConsecutiveUppercase)),e=e.replace(me,""),e=i.preserveConsecutiveUppercase?_e(e,t):t(e),i.pascalCase&&(e=r(e.charAt(0))+e.slice(1)),qe(e,r))}function Re(e,i,t){const r="virtual:flyo-components",a="\0"+r;return{name:"vite-plugin-flyo-components",async resolveId(o){if(o===r)return a},async load(o){if(o===a){const s=[];for(const[c,d]of Object.entries(i)){const g=await this.resolve("/"+e+"/"+d+".astro");g&&s.push(`export { default as ${be(c)} } from "${g.id}"`)}let u=null;return t&&(u=await this.resolve("/"+e+"/"+t+".astro")),u?s.push(`export { default as fallback } from "${u.id}"`):s.push('export { default as fallback } from "@flyo/nitro-astro/FallbackComponent.astro"'),s.join(";")}}}}function p(){return globalThis.flyoNitroInstance||console.error("The Flyo Typescript Configuration has not been initialized correctly"),globalThis.flyoNitroInstance}function Ee(){return new de(p())}function Ce(){return new le(p())}function Ae(){return new fe(p())}function Ie(){return new pe(p())}function ke(){return new ye(p())}function Se(){return new he(p())}function Te(e){const i={accessToken:!1,liveEdit:!1,fallbackComponent:null,...e};return{name:"@flyo/nitro-astro",hooks:{"astro:config:setup":({injectScript:t,updateConfig:r,injectRoute:a})=>{a({pattern:"sitemap.xml",entrypoint:"@flyo/nitro-astro/sitemap.js"}),r({image:{service:{entrypoint:"@flyo/nitro-astro/cdn.ts"}},vite:{plugins:[Re(e.componentsDir,e.components,e.fallbackComponent)]}}),t("page-ssr",`
1
+ (function(l,h){typeof exports=="object"&&typeof module<"u"?h(exports):typeof define=="function"&&define.amd?define(["exports"],h):(l=typeof globalThis<"u"?globalThis:l||self,h(l.flyoNitroIntegration={}))})(this,function(l){"use strict";const h="https://api.flyo.cloud/nitro/v1".replace(/\/+$/,"");class j{constructor(t={}){this.configuration=t}set config(t){this.configuration=t}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:h}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||b}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const t=this.configuration.apiKey;if(t)return typeof t=="function"?t:()=>t}get accessToken(){const t=this.configuration.accessToken;if(t)return typeof t=="function"?t:async()=>t}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const L=new j,_=class U{constructor(t=L){this.configuration=t,this.fetchApi=async(i,o)=>{let a={url:i,init:o};for(const s of this.middleware)s.pre&&(a=await s.pre({fetch:this.fetchApi,...a})||a);let r;try{r=await(this.configuration.fetchApi||fetch)(a.url,a.init)}catch(s){for(const u of this.middleware)u.onError&&(r=await u.onError({fetch:this.fetchApi,url:a.url,init:a.init,error:s,response:r?r.clone():void 0})||r);if(r===void 0)throw s instanceof Error?new O(s,"The request failed and the interceptors did not return an alternative response"):s}for(const s of this.middleware)s.post&&(r=await s.post({fetch:this.fetchApi,url:a.url,init:a.init,response:r.clone()})||r);return r},this.middleware=t.middleware}withMiddleware(...t){const i=this.clone();return i.middleware=i.middleware.concat(...t),i}withPreMiddleware(...t){const i=t.map(o=>({pre:o}));return this.withMiddleware(...i)}withPostMiddleware(...t){const i=t.map(o=>({post:o}));return this.withMiddleware(...i)}isJsonMime(t){return t?U.jsonRegex.test(t):!1}async request(t,i){const{url:o,init:a}=await this.createFetchParams(t,i),r=await this.fetchApi(o,a);if(r&&r.status>=200&&r.status<300)return r;throw new N(r,"Response returned an error code")}async createFetchParams(t,i){let o=this.configuration.basePath+t.path;t.query!==void 0&&Object.keys(t.query).length!==0&&(o+="?"+this.configuration.queryParamsStringify(t.query));const a=Object.assign({},this.configuration.headers,t.headers);Object.keys(a).forEach(g=>a[g]===void 0?delete a[g]:{});const r=typeof i=="function"?i:async()=>i,s={method:t.method,headers:a,body:t.body,credentials:this.configuration.credentials},u={...s,...await r({init:s,context:t})};let c;K(u.body)||u.body instanceof URLSearchParams||x(u.body)?c=u.body:this.isJsonMime(a["Content-Type"])?c=JSON.stringify(u.body):c=u.body;const d={...u,body:c};return{url:o,init:d}}clone(){const t=this.constructor,i=new t(this.configuration);return i.middleware=this.middleware.slice(),i}};_.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");let y=_;function x(e){return typeof Blob<"u"&&e instanceof Blob}function K(e){return typeof FormData<"u"&&e instanceof FormData}class N extends Error{constructor(t,i){super(i),this.response=t,this.name="ResponseError"}}class O extends Error{constructor(t,i){super(i),this.cause=t,this.name="FetchError"}}class v extends Error{constructor(t,i){super(i),this.field=t,this.name="RequiredError"}}function n(e,t){return e[t]!=null}function b(e,t=""){return Object.keys(e).map(i=>q(i,e[i],t)).filter(i=>i.length>0).join("&")}function q(e,t,i=""){const o=i+(i.length?`[${e}]`:e);if(t instanceof Array){const a=t.map(r=>encodeURIComponent(String(r))).join(`&${encodeURIComponent(o)}=`);return`${encodeURIComponent(o)}=${a}`}if(t instanceof Set){const a=Array.from(t);return q(e,a,i)}return t instanceof Date?`${encodeURIComponent(o)}=${encodeURIComponent(t.toISOString())}`:t instanceof Object?b(t,o):`${encodeURIComponent(o)}=${encodeURIComponent(String(t))}`}function m(e,t){return Object.keys(e).reduce((i,o)=>({...i,[o]:t(e[o])}),{})}class f{constructor(t,i=o=>o){this.raw=t,this.transformer=i}async value(){return this.transformer(await this.raw.json())}}function $(e){return F(e)}function F(e,t){return e==null?e:{identifier:n(e,"identifier")?e.identifier:void 0,content:n(e,"content")?e.content.map(E):void 0}}function E(e){return M(e)}function M(e,t){return e==null?e:{items:n(e,"items")?e.items:void 0,content:n(e,"content")?e.content:void 0,config:n(e,"config")?e.config:void 0,identifier:n(e,"identifier")?e.identifier:void 0,uid:n(e,"uid")?e.uid:void 0,component:n(e,"component")?e.component:void 0,slots:n(e,"slots")?m(e.slots,$):void 0}}function R(e){return B(e)}function B(e,t){return e==null?e:{type:n(e,"type")?e.type:void 0,target:n(e,"target")?e.target:void 0,label:n(e,"label")?e.label:void 0,href:n(e,"href")?e.href:void 0,slug:n(e,"slug")?e.slug:void 0,properties:n(e,"properties")?e.properties:void 0,children:n(e,"children")?e.children.map(R):void 0}}function D(e){return G(e)}function G(e,t){return e==null?e:{items:n(e,"items")?e.items.map(R):void 0,uid:n(e,"uid")?e.uid:void 0,identifier:n(e,"identifier")?e.identifier:void 0,label:n(e,"label")?e.label:void 0}}function J(e){return V(e)}function V(e,t){return e==null?e:{domain:n(e,"domain")?e.domain:void 0,slug:n(e,"slug")?e.slug:void 0,version:n(e,"version")?e.version:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,language:n(e,"language")?e.language:void 0}}function W(e){return z(e)}function z(e,t){return e==null?e:{nitro:n(e,"nitro")?J(e.nitro):void 0,pages:n(e,"pages")?e.pages:void 0,containers:n(e,"containers")?m(e.containers,D):void 0,globals:n(e,"globals")?e.globals:void 0}}function H(e){return X(e)}function X(e,t){return e==null?e:{api:n(e,"api")?e.api:void 0,image:n(e,"image")?e.image:void 0}}function Z(e){return Q(e)}function Q(e,t){return e==null?e:{_version:n(e,"_version")?e._version:void 0,entity_metric:n(e,"entity_metric")?H(e.entity_metric):void 0,entity_unique_id:n(e,"entity_unique_id")?e.entity_unique_id:void 0,entity_id:n(e,"entity_id")?e.entity_id:void 0,entity_image:n(e,"entity_image")?e.entity_image:void 0,entity_slug:n(e,"entity_slug")?e.entity_slug:void 0,entity_teaser:n(e,"entity_teaser")?e.entity_teaser:void 0,entity_time_end:n(e,"entity_time_end")?e.entity_time_end:void 0,entity_time_start:n(e,"entity_time_start")?e.entity_time_start:void 0,entity_title:n(e,"entity_title")?e.entity_title:void 0,entity_type:n(e,"entity_type")?e.entity_type:void 0,entity_type_id:n(e,"entity_type_id")?e.entity_type_id:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,routes:n(e,"routes")?e.routes:void 0}}function A(e){return Y(e)}function Y(e,t){return e==null?e:{entity:n(e,"entity")?Z(e.entity):void 0,model:n(e,"model")?e.model:void 0,language:n(e,"language")?e.language:void 0,jsonld:n(e,"jsonld")?e.jsonld:void 0}}function C(e){return ee(e)}function ee(e,t){return e==null?e:{entity_unique_id:n(e,"entity_unique_id")?e.entity_unique_id:void 0,entity_title:n(e,"entity_title")?e.entity_title:void 0,entity_teaser:n(e,"entity_teaser")?e.entity_teaser:void 0,entity_slug:n(e,"entity_slug")?e.entity_slug:void 0,entity_time_start:n(e,"entity_time_start")?e.entity_time_start:void 0,entity_type:n(e,"entity_type")?e.entity_type:void 0,entity_type_id:n(e,"entity_type_id")?e.entity_type_id:void 0,entity_image:n(e,"entity_image")?e.entity_image:void 0,routes:n(e,"routes")?e.routes:void 0}}function te(e){return ie(e)}function ie(e,t){return e==null?e:{description:n(e,"description")?e.description:void 0,image:n(e,"image")?e.image:void 0,title:n(e,"title")?e.title:void 0}}function ne(e){return oe(e)}function oe(e,t){return e==null?e:{slug:n(e,"slug")?e.slug:void 0,title:n(e,"title")?e.title:void 0}}function re(e){return ae(e)}function ae(e,t){return e==null?e:{value:n(e,"value")?e.value:void 0,navigation:n(e,"navigation")?e.navigation:void 0,propagate:n(e,"propagate")?e.propagate:void 0}}function k(e){return se(e)}function se(e,t){return e==null?e:{id:n(e,"id")?e.id:void 0,title:n(e,"title")?e.title:void 0,href:n(e,"href")?e.href:void 0,slug:n(e,"slug")?e.slug:void 0,json:n(e,"json")?e.json.map(E):void 0,depth:n(e,"depth")?e.depth:void 0,is_home:n(e,"is_home")?e.is_home:void 0,created_at:n(e,"created_at")?e.created_at:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0,is_visible:n(e,"is_visible")?e.is_visible:void 0,meta_json:n(e,"meta_json")?te(e.meta_json):void 0,properties:n(e,"properties")?m(e.properties,re):void 0,uid:n(e,"uid")?e.uid:void 0,type:n(e,"type")?e.type:void 0,target:n(e,"target")?e.target:void 0,container:n(e,"container")?e.container:void 0,breadcrumb:n(e,"breadcrumb")?e.breadcrumb.map(ne):void 0}}function ue(e){return ce(e)}function ce(e,t){return e==null?e:{version:n(e,"version")?e.version:void 0,updated_at:n(e,"updated_at")?e.updated_at:void 0}}class le extends y{async configRaw(t){const i={},o={};this.configuration&&this.configuration.apiKey&&(i.token=this.configuration.apiKey("token"));const a=await this.request({path:"/config",method:"GET",headers:o,query:i},t);return new f(a,r=>W(r))}async config(t){return await(await this.configRaw(t)).value()}}class de extends y{async entityBySlugRaw(t,i){if(t.slug===null||t.slug===void 0)throw new v("slug","Required parameter requestParameters.slug was null or undefined when calling entityBySlug.");const o={};t.typeId!==void 0&&(o.typeId=t.typeId);const a={};this.configuration&&this.configuration.apiKey&&(o.token=this.configuration.apiKey("token"));const r=await this.request({path:"/entities/slug/{slug}".replace("{slug}",encodeURIComponent(String(t.slug))),method:"GET",headers:a,query:o},i);return new f(r,s=>A(s))}async entityBySlug(t,i){return await(await this.entityBySlugRaw(t,i)).value()}async entityByUniqueidRaw(t,i){if(t.uniqueid===null||t.uniqueid===void 0)throw new v("uniqueid","Required parameter requestParameters.uniqueid was null or undefined when calling entityByUniqueid.");const o={},a={};this.configuration&&this.configuration.apiKey&&(o.token=this.configuration.apiKey("token"));const r=await this.request({path:"/entities/uniqueid/{uniqueid}".replace("{uniqueid}",encodeURIComponent(String(t.uniqueid))),method:"GET",headers:a,query:o},i);return new f(r,s=>A(s))}async entityByUniqueid(t,i){return await(await this.entityByUniqueidRaw(t,i)).value()}}class fe extends y{async homeRaw(t){const i={},o={};this.configuration&&this.configuration.apiKey&&(i.token=this.configuration.apiKey("token"));const a=await this.request({path:"/pages/home",method:"GET",headers:o,query:i},t);return new f(a,r=>k(r))}async home(t){return await(await this.homeRaw(t)).value()}async pageRaw(t,i){const o={};t.slug!==void 0&&(o.slug=t.slug);const a={};this.configuration&&this.configuration.apiKey&&(o.token=this.configuration.apiKey("token"));const r=await this.request({path:"/pages",method:"GET",headers:a,query:o},i);return new f(r,s=>k(s))}async page(t={},i){return await(await this.pageRaw(t,i)).value()}}class pe extends y{async searchRaw(t,i){if(t.query===null||t.query===void 0)throw new v("query","Required parameter requestParameters.query was null or undefined when calling search.");const o={};t.query!==void 0&&(o.query=t.query);const a={};this.configuration&&this.configuration.apiKey&&(o.token=this.configuration.apiKey("token"));const r=await this.request({path:"/search",method:"GET",headers:a,query:o},i);return new f(r,s=>s.map(C))}async search(t,i){return await(await this.searchRaw(t,i)).value()}}class ye extends y{async sitemapRaw(t){const i={},o={};this.configuration&&this.configuration.apiKey&&(i.token=this.configuration.apiKey("token"));const a=await this.request({path:"/sitemap",method:"GET",headers:o,query:i},t);return new f(a,r=>r.map(C))}async sitemap(t){return await(await this.sitemapRaw(t)).value()}}class he extends y{async versionRaw(t){const i={},o={};this.configuration&&this.configuration.apiKey&&(i.token=this.configuration.apiKey("token"));const a=await this.request({path:"/version",method:"GET",headers:o,query:i},t);return new f(a,r=>ue(r))}async version(t){return await(await this.versionRaw(t)).value()}}const ge=/[\p{Lu}]/u,ve=/[\p{Ll}]/u,I=/^[\p{Lu}](?![\p{Lu}])/gu,S=/([\p{Alpha}\p{N}_]|$)/u,w=/[_.\- ]+/,me=new RegExp("^"+w.source),T=new RegExp(w.source+S.source,"gu"),P=new RegExp("\\d+"+S.source,"gu"),we=(e,t,i,o)=>{let a=!1,r=!1,s=!1,u=!1;for(let c=0;c<e.length;c++){const d=e[c];u=c>2?e[c-3]==="-":!0,a&&ge.test(d)?(e=e.slice(0,c)+"-"+e.slice(c),a=!1,s=r,r=!0,c++):r&&s&&ve.test(d)&&(!u||o)?(e=e.slice(0,c-1)+"-"+e.slice(c-1),s=r,r=!1,a=!0):(a=t(d)===d&&i(d)!==d,s=r,r=i(d)===d&&t(d)!==d)}return e},_e=(e,t)=>(I.lastIndex=0,e.replace(I,i=>t(i))),be=(e,t)=>(T.lastIndex=0,P.lastIndex=0,e.replace(T,(i,o)=>t(o)).replace(P,i=>t(i)));function qe(e,t){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(t={pascalCase:!1,preserveConsecutiveUppercase:!1,...t},Array.isArray(e)?e=e.map(r=>r.trim()).filter(r=>r.length).join("-"):e=e.trim(),e.length===0)return"";const i=t.locale===!1?r=>r.toLowerCase():r=>r.toLocaleLowerCase(t.locale),o=t.locale===!1?r=>r.toUpperCase():r=>r.toLocaleUpperCase(t.locale);return e.length===1?w.test(e)?"":t.pascalCase?o(e):i(e):(e!==i(e)&&(e=we(e,i,o,t.preserveConsecutiveUppercase)),e=e.replace(me,""),e=t.preserveConsecutiveUppercase?_e(e,i):i(e),t.pascalCase&&(e=o(e.charAt(0))+e.slice(1)),be(e,o))}function Ee(e,t,i){const o="virtual:flyo-components",a="\0"+o;return{name:"vite-plugin-flyo-components",async resolveId(r){if(r===o)return a},async load(r){if(r===a){const s=[];for(const[c,d]of Object.entries(t)){const g=await this.resolve("/"+e+"/"+d+".astro");g&&s.push(`export { default as ${qe(c)} } from "${g.id}"`)}let u=null;return i&&(u=await this.resolve("/"+e+"/"+i+".astro")),u?s.push(`export { default as fallback } from "${u.id}"`):s.push('export { default as fallback } from "@flyo/nitro-astro/FallbackComponent.astro"'),s.join(";")}}}}function Re(e){const t="virtual:flyo-user-config",i="\0"+t;return{name:"vite-plugin-flyo-components",async resolveId(o){if(o===t)return i},async load(o){if(o===i)return`export default ${JSON.stringify(e)}`}}}function p(){return globalThis.flyoNitroInstance||console.error("The Flyo Typescript Configuration has not been initialized correctly"),globalThis.flyoNitroInstance}function Ae(){return new le(p())}function Ce(){return new de(p())}function ke(){return new fe(p())}function Ie(){return new pe(p())}function Se(){return new ye(p())}function Te(){return new he(p())}function Pe(e){return{"data-flyo-block-uid":e.uid}}function Ue(e){const t={accessToken:!1,liveEdit:!1,fallbackComponent:null,...e};return t.liveEdit==="true"?t.liveEdit=!0:t.liveEdit==="false"&&(t.liveEdit=!1),{name:"@flyo/nitro-astro",hooks:{"astro:config:setup":({injectScript:i,updateConfig:o,injectRoute:a})=>{a({pattern:"sitemap.xml",entrypoint:"@flyo/nitro-astro/sitemap.js"}),o({image:{service:{entrypoint:"@flyo/nitro-astro/cdn.ts"}},vite:{plugins:[Ee(e.componentsDir,e.components,e.fallbackComponent),Re(t)]}}),i("page-ssr",`
2
2
  import { Configuration } from '@flyo/nitro-typescript'
3
3
 
4
4
  var defaultConfig = new Configuration({
5
- apiKey: '${i.accessToken}'
5
+ apiKey: '${t.accessToken}'
6
6
  })
7
7
 
8
8
  globalThis.flyoNitroInstance = defaultConfig;
9
- `),i.liveEdit&&t("page",`
9
+ `),t.liveEdit&&i("page",`
10
10
  window.addEventListener("message", (event) => {
11
11
  if (event.data?.action === 'pageRefresh') {
12
12
  window.location.reload(true);
@@ -28,4 +28,16 @@
28
28
  data: JSON.parse(JSON.stringify({item:{uid: blockUid}}))
29
29
  }, 'https://flyo.cloud')
30
30
  }
31
- `)}}}}l.default=Te,l.useConfigApi=Ee,l.useConfiguration=p,l.useEntitiesApi=Ce,l.usePagesApi=Ae,l.useSearchApi=Ie,l.useSitemapApi=ke,l.useVersionApi=Se,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
31
+
32
+ // Find all elements with the 'data-flyo-block-uid' attribute
33
+ const elements = document.querySelectorAll('[data-flyo-block-uid]');
34
+
35
+ // Add a click event listener to each element
36
+ elements.forEach(element => {
37
+ element.addEventListener('click', function() {
38
+ // On click, alert the value of 'data-flyo-block-uid'
39
+ console.log('open', this.getAttribute('data-flyo-block-uid'))
40
+ openBlockInFlyo(this.getAttribute('data-flyo-block-uid'))
41
+ });
42
+ });
43
+ `)}}}}l.default=Ue,l.editableBlock=Pe,l.useConfigApi=Ae,l.useConfiguration=p,l.useEntitiesApi=Ce,l.usePagesApi=ke,l.useSearchApi=Ie,l.useSitemapApi=Se,l.useVersionApi=Te,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,5 +1,5 @@
1
- const U = "https://api.flyo.cloud/nitro/v1".replace(/\/+$/, "");
2
- class x {
1
+ const x = "https://api.flyo.cloud/nitro/v1".replace(/\/+$/, "");
2
+ class T {
3
3
  constructor(t = {}) {
4
4
  this.configuration = t;
5
5
  }
@@ -7,7 +7,7 @@ class x {
7
7
  this.configuration = t;
8
8
  }
9
9
  get basePath() {
10
- return this.configuration.basePath != null ? this.configuration.basePath : U;
10
+ return this.configuration.basePath != null ? this.configuration.basePath : x;
11
11
  }
12
12
  get fetchApi() {
13
13
  return this.configuration.fetchApi;
@@ -16,7 +16,7 @@ class x {
16
16
  return this.configuration.middleware || [];
17
17
  }
18
18
  get queryParamsStringify() {
19
- return this.configuration.queryParamsStringify || C;
19
+ return this.configuration.queryParamsStringify || k;
20
20
  }
21
21
  get username() {
22
22
  return this.configuration.username;
@@ -41,38 +41,38 @@ class x {
41
41
  return this.configuration.credentials;
42
42
  }
43
43
  }
44
- const j = new x(), b = class E {
45
- constructor(t = j) {
46
- this.configuration = t, this.fetchApi = async (i, r) => {
47
- let a = { url: i, init: r };
44
+ const P = new T(), R = class E {
45
+ constructor(t = P) {
46
+ this.configuration = t, this.fetchApi = async (i, o) => {
47
+ let a = { url: i, init: o };
48
48
  for (const s of this.middleware)
49
49
  s.pre && (a = await s.pre({
50
50
  fetch: this.fetchApi,
51
51
  ...a
52
52
  }) || a);
53
- let o;
53
+ let r;
54
54
  try {
55
- o = await (this.configuration.fetchApi || fetch)(a.url, a.init);
55
+ r = await (this.configuration.fetchApi || fetch)(a.url, a.init);
56
56
  } catch (s) {
57
57
  for (const u of this.middleware)
58
- u.onError && (o = await u.onError({
58
+ u.onError && (r = await u.onError({
59
59
  fetch: this.fetchApi,
60
60
  url: a.url,
61
61
  init: a.init,
62
62
  error: s,
63
- response: o ? o.clone() : void 0
64
- }) || o);
65
- if (o === void 0)
63
+ response: r ? r.clone() : void 0
64
+ }) || r);
65
+ if (r === void 0)
66
66
  throw s instanceof Error ? new N(s, "The request failed and the interceptors did not return an alternative response") : s;
67
67
  }
68
68
  for (const s of this.middleware)
69
- s.post && (o = await s.post({
69
+ s.post && (r = await s.post({
70
70
  fetch: this.fetchApi,
71
71
  url: a.url,
72
72
  init: a.init,
73
- response: o.clone()
74
- }) || o);
75
- return o;
73
+ response: r.clone()
74
+ }) || r);
75
+ return r;
76
76
  }, this.middleware = t.middleware;
77
77
  }
78
78
  withMiddleware(...t) {
@@ -80,11 +80,11 @@ const j = new x(), b = class E {
80
80
  return i.middleware = i.middleware.concat(...t), i;
81
81
  }
82
82
  withPreMiddleware(...t) {
83
- const i = t.map((r) => ({ pre: r }));
83
+ const i = t.map((o) => ({ pre: o }));
84
84
  return this.withMiddleware(...i);
85
85
  }
86
86
  withPostMiddleware(...t) {
87
- const i = t.map((r) => ({ post: r }));
87
+ const i = t.map((o) => ({ post: o }));
88
88
  return this.withMiddleware(...i);
89
89
  }
90
90
  /**
@@ -101,35 +101,35 @@ const j = new x(), b = class E {
101
101
  return t ? E.jsonRegex.test(t) : !1;
102
102
  }
103
103
  async request(t, i) {
104
- const { url: r, init: a } = await this.createFetchParams(t, i), o = await this.fetchApi(r, a);
105
- if (o && o.status >= 200 && o.status < 300)
106
- return o;
107
- throw new K(o, "Response returned an error code");
104
+ const { url: o, init: a } = await this.createFetchParams(t, i), r = await this.fetchApi(o, a);
105
+ if (r && r.status >= 200 && r.status < 300)
106
+ return r;
107
+ throw new K(r, "Response returned an error code");
108
108
  }
109
109
  async createFetchParams(t, i) {
110
- let r = this.configuration.basePath + t.path;
111
- t.query !== void 0 && Object.keys(t.query).length !== 0 && (r += "?" + this.configuration.queryParamsStringify(t.query));
110
+ let o = this.configuration.basePath + t.path;
111
+ t.query !== void 0 && Object.keys(t.query).length !== 0 && (o += "?" + this.configuration.queryParamsStringify(t.query));
112
112
  const a = Object.assign({}, this.configuration.headers, t.headers);
113
113
  Object.keys(a).forEach((y) => a[y] === void 0 ? delete a[y] : {});
114
- const o = typeof i == "function" ? i : async () => i, s = {
114
+ const r = typeof i == "function" ? i : async () => i, s = {
115
115
  method: t.method,
116
116
  headers: a,
117
117
  body: t.body,
118
118
  credentials: this.configuration.credentials
119
119
  }, u = {
120
120
  ...s,
121
- ...await o({
121
+ ...await r({
122
122
  init: s,
123
123
  context: t
124
124
  })
125
125
  };
126
126
  let c;
127
- L(u.body) || u.body instanceof URLSearchParams || P(u.body) ? c = u.body : this.isJsonMime(a["Content-Type"]) ? c = JSON.stringify(u.body) : c = u.body;
128
- const d = {
127
+ L(u.body) || u.body instanceof URLSearchParams || j(u.body) ? c = u.body : this.isJsonMime(a["Content-Type"]) ? c = JSON.stringify(u.body) : c = u.body;
128
+ const l = {
129
129
  ...u,
130
130
  body: c
131
131
  };
132
- return { url: r, init: d };
132
+ return { url: o, init: l };
133
133
  }
134
134
  /**
135
135
  * Create a shallow clone of `this` by constructing a new instance
@@ -140,9 +140,9 @@ const j = new x(), b = class E {
140
140
  return i.middleware = this.middleware.slice(), i;
141
141
  }
142
142
  };
143
- b.jsonRegex = new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$", "i");
144
- let f = b;
145
- function P(e) {
143
+ R.jsonRegex = new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$", "i");
144
+ let f = R;
145
+ function j(e) {
146
146
  return typeof Blob < "u" && e instanceof Blob;
147
147
  }
148
148
  function L(e) {
@@ -166,45 +166,45 @@ class h extends Error {
166
166
  function n(e, t) {
167
167
  return e[t] != null;
168
168
  }
169
- function C(e, t = "") {
170
- return Object.keys(e).map((i) => I(i, e[i], t)).filter((i) => i.length > 0).join("&");
169
+ function k(e, t = "") {
170
+ return Object.keys(e).map((i) => C(i, e[i], t)).filter((i) => i.length > 0).join("&");
171
171
  }
172
- function I(e, t, i = "") {
173
- const r = i + (i.length ? `[${e}]` : e);
172
+ function C(e, t, i = "") {
173
+ const o = i + (i.length ? `[${e}]` : e);
174
174
  if (t instanceof Array) {
175
- const a = t.map((o) => encodeURIComponent(String(o))).join(`&${encodeURIComponent(r)}=`);
176
- return `${encodeURIComponent(r)}=${a}`;
175
+ const a = t.map((r) => encodeURIComponent(String(r))).join(`&${encodeURIComponent(o)}=`);
176
+ return `${encodeURIComponent(o)}=${a}`;
177
177
  }
178
178
  if (t instanceof Set) {
179
179
  const a = Array.from(t);
180
- return I(e, a, i);
180
+ return C(e, a, i);
181
181
  }
182
- return t instanceof Date ? `${encodeURIComponent(r)}=${encodeURIComponent(t.toISOString())}` : t instanceof Object ? C(t, r) : `${encodeURIComponent(r)}=${encodeURIComponent(String(t))}`;
182
+ return t instanceof Date ? `${encodeURIComponent(o)}=${encodeURIComponent(t.toISOString())}` : t instanceof Object ? k(t, o) : `${encodeURIComponent(o)}=${encodeURIComponent(String(t))}`;
183
183
  }
184
184
  function g(e, t) {
185
185
  return Object.keys(e).reduce(
186
- (i, r) => ({ ...i, [r]: t(e[r]) }),
186
+ (i, o) => ({ ...i, [o]: t(e[o]) }),
187
187
  {}
188
188
  );
189
189
  }
190
- class l {
191
- constructor(t, i = (r) => r) {
190
+ class d {
191
+ constructor(t, i = (o) => o) {
192
192
  this.raw = t, this.transformer = i;
193
193
  }
194
194
  async value() {
195
195
  return this.transformer(await this.raw.json());
196
196
  }
197
197
  }
198
- function $(e) {
199
- return O(e);
198
+ function O(e) {
199
+ return $(e);
200
200
  }
201
- function O(e, t) {
201
+ function $(e, t) {
202
202
  return e == null ? e : {
203
203
  identifier: n(e, "identifier") ? e.identifier : void 0,
204
- content: n(e, "content") ? e.content.map(A) : void 0
204
+ content: n(e, "content") ? e.content.map(I) : void 0
205
205
  };
206
206
  }
207
- function A(e) {
207
+ function I(e) {
208
208
  return F(e);
209
209
  }
210
210
  function F(e, t) {
@@ -215,10 +215,10 @@ function F(e, t) {
215
215
  identifier: n(e, "identifier") ? e.identifier : void 0,
216
216
  uid: n(e, "uid") ? e.uid : void 0,
217
217
  component: n(e, "component") ? e.component : void 0,
218
- slots: n(e, "slots") ? g(e.slots, $) : void 0
218
+ slots: n(e, "slots") ? g(e.slots, O) : void 0
219
219
  };
220
220
  }
221
- function k(e) {
221
+ function A(e) {
222
222
  return B(e);
223
223
  }
224
224
  function B(e, t) {
@@ -229,7 +229,7 @@ function B(e, t) {
229
229
  href: n(e, "href") ? e.href : void 0,
230
230
  slug: n(e, "slug") ? e.slug : void 0,
231
231
  properties: n(e, "properties") ? e.properties : void 0,
232
- children: n(e, "children") ? e.children.map(k) : void 0
232
+ children: n(e, "children") ? e.children.map(A) : void 0
233
233
  };
234
234
  }
235
235
  function M(e) {
@@ -237,7 +237,7 @@ function M(e) {
237
237
  }
238
238
  function D(e, t) {
239
239
  return e == null ? e : {
240
- items: n(e, "items") ? e.items.map(k) : void 0,
240
+ items: n(e, "items") ? e.items.map(A) : void 0,
241
241
  uid: n(e, "uid") ? e.uid : void 0,
242
242
  identifier: n(e, "identifier") ? e.identifier : void 0,
243
243
  label: n(e, "label") ? e.label : void 0
@@ -361,7 +361,7 @@ function ae(e, t) {
361
361
  title: n(e, "title") ? e.title : void 0,
362
362
  href: n(e, "href") ? e.href : void 0,
363
363
  slug: n(e, "slug") ? e.slug : void 0,
364
- json: n(e, "json") ? e.json.map(A) : void 0,
364
+ json: n(e, "json") ? e.json.map(I) : void 0,
365
365
  depth: n(e, "depth") ? e.depth : void 0,
366
366
  is_home: n(e, "is_home") ? e.is_home : void 0,
367
367
  created_at: n(e, "created_at") ? e.created_at : void 0,
@@ -391,15 +391,15 @@ class ce extends f {
391
391
  * Get Config
392
392
  */
393
393
  async configRaw(t) {
394
- const i = {}, r = {};
394
+ const i = {}, o = {};
395
395
  this.configuration && this.configuration.apiKey && (i.token = this.configuration.apiKey("token"));
396
396
  const a = await this.request({
397
397
  path: "/config",
398
398
  method: "GET",
399
- headers: r,
399
+ headers: o,
400
400
  query: i
401
401
  }, t);
402
- return new l(a, (o) => V(o));
402
+ return new d(a, (r) => V(r));
403
403
  }
404
404
  /**
405
405
  * The config API endpoint provides comprehensive information required for configuring the layout of websites. It encompasses various essential elements, including containers with pages, an extensive list of available slugs, globals containing content pool data, and crucial details about the Nitro configuration itself. By accessing this endpoint, developers can gather all the necessary data to effectively design and structure their websites. The endpoint offers a holistic view of the website\'s layout, empowering developers to tailor the user experience and optimize the overall design.
@@ -409,7 +409,7 @@ class ce extends f {
409
409
  return await (await this.configRaw(t)).value();
410
410
  }
411
411
  }
412
- class de extends f {
412
+ class le extends f {
413
413
  /**
414
414
  *
415
415
  * Find entity by slug and optional Type-ID
@@ -417,17 +417,17 @@ class de extends f {
417
417
  async entityBySlugRaw(t, i) {
418
418
  if (t.slug === null || t.slug === void 0)
419
419
  throw new h("slug", "Required parameter requestParameters.slug was null or undefined when calling entityBySlug.");
420
- const r = {};
421
- t.typeId !== void 0 && (r.typeId = t.typeId);
420
+ const o = {};
421
+ t.typeId !== void 0 && (o.typeId = t.typeId);
422
422
  const a = {};
423
- this.configuration && this.configuration.apiKey && (r.token = this.configuration.apiKey("token"));
424
- const o = await this.request({
423
+ this.configuration && this.configuration.apiKey && (o.token = this.configuration.apiKey("token"));
424
+ const r = await this.request({
425
425
  path: "/entities/slug/{slug}".replace("{slug}", encodeURIComponent(String(t.slug))),
426
426
  method: "GET",
427
427
  headers: a,
428
- query: r
428
+ query: o
429
429
  }, i);
430
- return new l(o, (s) => m(s));
430
+ return new d(r, (s) => m(s));
431
431
  }
432
432
  /**
433
433
  *
@@ -443,15 +443,15 @@ class de extends f {
443
443
  async entityByUniqueidRaw(t, i) {
444
444
  if (t.uniqueid === null || t.uniqueid === void 0)
445
445
  throw new h("uniqueid", "Required parameter requestParameters.uniqueid was null or undefined when calling entityByUniqueid.");
446
- const r = {}, a = {};
447
- this.configuration && this.configuration.apiKey && (r.token = this.configuration.apiKey("token"));
448
- const o = await this.request({
446
+ const o = {}, a = {};
447
+ this.configuration && this.configuration.apiKey && (o.token = this.configuration.apiKey("token"));
448
+ const r = await this.request({
449
449
  path: "/entities/uniqueid/{uniqueid}".replace("{uniqueid}", encodeURIComponent(String(t.uniqueid))),
450
450
  method: "GET",
451
451
  headers: a,
452
- query: r
452
+ query: o
453
453
  }, i);
454
- return new l(o, (s) => m(s));
454
+ return new d(r, (s) => m(s));
455
455
  }
456
456
  /**
457
457
  * The endpoint provides comprehensive information about a specified entity. An entity represents a collection of information pertaining to a specific data type and is defined by a key-value pair. You can use various data types such as blogs, events, or any other relevant data. However, in order to access an entity, it must be properly configured within the nitro config.
@@ -461,21 +461,21 @@ class de extends f {
461
461
  return await (await this.entityByUniqueidRaw(t, i)).value();
462
462
  }
463
463
  }
464
- class le extends f {
464
+ class de extends f {
465
465
  /**
466
466
  * This endpoint allows you to retrieve the designated homepage of a website. Alternatively, you can utilize the pages endpoint by specifying an empty slug parameter to achieve the same result. By using either of these methods, you can effectively access the desired homepage of the website.
467
467
  * Get Home
468
468
  */
469
469
  async homeRaw(t) {
470
- const i = {}, r = {};
470
+ const i = {}, o = {};
471
471
  this.configuration && this.configuration.apiKey && (i.token = this.configuration.apiKey("token"));
472
472
  const a = await this.request({
473
473
  path: "/pages/home",
474
474
  method: "GET",
475
- headers: r,
475
+ headers: o,
476
476
  query: i
477
477
  }, t);
478
- return new l(a, (o) => w(o));
478
+ return new d(a, (r) => w(r));
479
479
  }
480
480
  /**
481
481
  * This endpoint allows you to retrieve the designated homepage of a website. Alternatively, you can utilize the pages endpoint by specifying an empty slug parameter to achieve the same result. By using either of these methods, you can effectively access the desired homepage of the website.
@@ -489,17 +489,17 @@ class le extends f {
489
489
  * Get Page by slug
490
490
  */
491
491
  async pageRaw(t, i) {
492
- const r = {};
493
- t.slug !== void 0 && (r.slug = t.slug);
492
+ const o = {};
493
+ t.slug !== void 0 && (o.slug = t.slug);
494
494
  const a = {};
495
- this.configuration && this.configuration.apiKey && (r.token = this.configuration.apiKey("token"));
496
- const o = await this.request({
495
+ this.configuration && this.configuration.apiKey && (o.token = this.configuration.apiKey("token"));
496
+ const r = await this.request({
497
497
  path: "/pages",
498
498
  method: "GET",
499
499
  headers: a,
500
- query: r
500
+ query: o
501
501
  }, i);
502
- return new l(o, (s) => w(s));
502
+ return new d(r, (s) => w(s));
503
503
  }
504
504
  /**
505
505
  * This endpoint retrieves comprehensive information from a specified page using either a slug or a path. The slug refers to a unique identifier for the page, while the path is the slug with a leading slash. By providing either the slug or the path as input, the function will gather all the relevant details associated with the page.
@@ -517,17 +517,17 @@ class fe extends f {
517
517
  async searchRaw(t, i) {
518
518
  if (t.query === null || t.query === void 0)
519
519
  throw new h("query", "Required parameter requestParameters.query was null or undefined when calling search.");
520
- const r = {};
521
- t.query !== void 0 && (r.query = t.query);
520
+ const o = {};
521
+ t.query !== void 0 && (o.query = t.query);
522
522
  const a = {};
523
- this.configuration && this.configuration.apiKey && (r.token = this.configuration.apiKey("token"));
524
- const o = await this.request({
523
+ this.configuration && this.configuration.apiKey && (o.token = this.configuration.apiKey("token"));
524
+ const r = await this.request({
525
525
  path: "/search",
526
526
  method: "GET",
527
527
  headers: a,
528
- query: r
528
+ query: o
529
529
  }, i);
530
- return new l(o, (s) => s.map(S));
530
+ return new d(r, (s) => s.map(S));
531
531
  }
532
532
  /**
533
533
  * This endpoint offers a powerful capability to search through the websites sitemap, encompassing both pages and entities. With this endpoint, users can efficiently explore and retrieve information from your sitemap by creating a paginated search experience.
@@ -543,15 +543,15 @@ class pe extends f {
543
543
  * Get Sitemap
544
544
  */
545
545
  async sitemapRaw(t) {
546
- const i = {}, r = {};
546
+ const i = {}, o = {};
547
547
  this.configuration && this.configuration.apiKey && (i.token = this.configuration.apiKey("token"));
548
548
  const a = await this.request({
549
549
  path: "/sitemap",
550
550
  method: "GET",
551
- headers: r,
551
+ headers: o,
552
552
  query: i
553
553
  }, t);
554
- return new l(a, (o) => o.map(S));
554
+ return new d(a, (r) => r.map(S));
555
555
  }
556
556
  /**
557
557
  * This endpoint provides comprehensive data for generating the sitemap. It encompasses all the necessary information, including pages from containers, as well as all entities that have been mapped.
@@ -567,15 +567,15 @@ class ye extends f {
567
567
  * Get Version Information
568
568
  */
569
569
  async versionRaw(t) {
570
- const i = {}, r = {};
570
+ const i = {}, o = {};
571
571
  this.configuration && this.configuration.apiKey && (i.token = this.configuration.apiKey("token"));
572
572
  const a = await this.request({
573
573
  path: "/version",
574
574
  method: "GET",
575
- headers: r,
575
+ headers: o,
576
576
  query: i
577
577
  }, t);
578
- return new l(a, (o) => se(o));
578
+ return new d(a, (r) => se(r));
579
579
  }
580
580
  /**
581
581
  * The Version API endpoint offers a highly efficient solution for evaluating the current caching status of your application\'s caching mechanism. This functionality allows you to cache the entire application configuration and page responses indefinitely. However, utilizing this endpoint enables you to assess the validity of the cache by sending a request to determine its current status. This caching endpoint is specifically designed for optimal performance when compared to the configuration endpoint, which requires more thorough evaluation and encompasses a substantial response body.
@@ -585,42 +585,42 @@ class ye extends f {
585
585
  return await (await this.versionRaw(t)).value();
586
586
  }
587
587
  }
588
- const he = /[\p{Lu}]/u, ge = /[\p{Ll}]/u, _ = /^[\p{Lu}](?![\p{Lu}])/gu, T = /([\p{Alpha}\p{N}_]|$)/u, v = /[_.\- ]+/, ve = new RegExp("^" + v.source), q = new RegExp(v.source + T.source, "gu"), R = new RegExp("\\d+" + T.source, "gu"), me = (e, t, i, r) => {
589
- let a = !1, o = !1, s = !1, u = !1;
588
+ const he = /[\p{Lu}]/u, ge = /[\p{Ll}]/u, _ = /^[\p{Lu}](?![\p{Lu}])/gu, U = /([\p{Alpha}\p{N}_]|$)/u, v = /[_.\- ]+/, ve = new RegExp("^" + v.source), b = new RegExp(v.source + U.source, "gu"), q = new RegExp("\\d+" + U.source, "gu"), me = (e, t, i, o) => {
589
+ let a = !1, r = !1, s = !1, u = !1;
590
590
  for (let c = 0; c < e.length; c++) {
591
- const d = e[c];
592
- u = c > 2 ? e[c - 3] === "-" : !0, a && he.test(d) ? (e = e.slice(0, c) + "-" + e.slice(c), a = !1, s = o, o = !0, c++) : o && s && ge.test(d) && (!u || r) ? (e = e.slice(0, c - 1) + "-" + e.slice(c - 1), s = o, o = !1, a = !0) : (a = t(d) === d && i(d) !== d, s = o, o = i(d) === d && t(d) !== d);
591
+ const l = e[c];
592
+ u = c > 2 ? e[c - 3] === "-" : !0, a && he.test(l) ? (e = e.slice(0, c) + "-" + e.slice(c), a = !1, s = r, r = !0, c++) : r && s && ge.test(l) && (!u || o) ? (e = e.slice(0, c - 1) + "-" + e.slice(c - 1), s = r, r = !1, a = !0) : (a = t(l) === l && i(l) !== l, s = r, r = i(l) === l && t(l) !== l);
593
593
  }
594
594
  return e;
595
- }, we = (e, t) => (_.lastIndex = 0, e.replace(_, (i) => t(i))), _e = (e, t) => (q.lastIndex = 0, R.lastIndex = 0, e.replace(q, (i, r) => t(r)).replace(R, (i) => t(i)));
596
- function qe(e, t) {
595
+ }, we = (e, t) => (_.lastIndex = 0, e.replace(_, (i) => t(i))), _e = (e, t) => (b.lastIndex = 0, q.lastIndex = 0, e.replace(b, (i, o) => t(o)).replace(q, (i) => t(i)));
596
+ function be(e, t) {
597
597
  if (!(typeof e == "string" || Array.isArray(e)))
598
598
  throw new TypeError("Expected the input to be `string | string[]`");
599
599
  if (t = {
600
600
  pascalCase: !1,
601
601
  preserveConsecutiveUppercase: !1,
602
602
  ...t
603
- }, Array.isArray(e) ? e = e.map((o) => o.trim()).filter((o) => o.length).join("-") : e = e.trim(), e.length === 0)
603
+ }, Array.isArray(e) ? e = e.map((r) => r.trim()).filter((r) => r.length).join("-") : e = e.trim(), e.length === 0)
604
604
  return "";
605
- const i = t.locale === !1 ? (o) => o.toLowerCase() : (o) => o.toLocaleLowerCase(t.locale), r = t.locale === !1 ? (o) => o.toUpperCase() : (o) => o.toLocaleUpperCase(t.locale);
606
- return e.length === 1 ? v.test(e) ? "" : t.pascalCase ? r(e) : i(e) : (e !== i(e) && (e = me(e, i, r, t.preserveConsecutiveUppercase)), e = e.replace(ve, ""), e = t.preserveConsecutiveUppercase ? we(e, i) : i(e), t.pascalCase && (e = r(e.charAt(0)) + e.slice(1)), _e(e, r));
605
+ const i = t.locale === !1 ? (r) => r.toLowerCase() : (r) => r.toLocaleLowerCase(t.locale), o = t.locale === !1 ? (r) => r.toUpperCase() : (r) => r.toLocaleUpperCase(t.locale);
606
+ return e.length === 1 ? v.test(e) ? "" : t.pascalCase ? o(e) : i(e) : (e !== i(e) && (e = me(e, i, o, t.preserveConsecutiveUppercase)), e = e.replace(ve, ""), e = t.preserveConsecutiveUppercase ? we(e, i) : i(e), t.pascalCase && (e = o(e.charAt(0)) + e.slice(1)), _e(e, o));
607
607
  }
608
- function Re(e, t, i) {
609
- const r = "virtual:flyo-components", a = "\0" + r;
608
+ function qe(e, t, i) {
609
+ const o = "virtual:flyo-components", a = "\0" + o;
610
610
  return {
611
611
  name: "vite-plugin-flyo-components",
612
- async resolveId(o) {
613
- if (o === r)
612
+ async resolveId(r) {
613
+ if (r === o)
614
614
  return a;
615
615
  },
616
- async load(o) {
617
- if (o === a) {
616
+ async load(r) {
617
+ if (r === a) {
618
618
  const s = [];
619
- for (const [c, d] of Object.entries(t)) {
619
+ for (const [c, l] of Object.entries(t)) {
620
620
  const y = await this.resolve(
621
- "/" + e + "/" + d + ".astro"
621
+ "/" + e + "/" + l + ".astro"
622
622
  );
623
- y && s.push(`export { default as ${qe(c)} } from "${y.id}"`);
623
+ y && s.push(`export { default as ${be(c)} } from "${y.id}"`);
624
624
  }
625
625
  let u = null;
626
626
  return i && (u = await this.resolve(
@@ -630,17 +630,31 @@ function Re(e, t, i) {
630
630
  }
631
631
  };
632
632
  }
633
+ function Re(e) {
634
+ const t = "virtual:flyo-user-config", i = "\0" + t;
635
+ return {
636
+ name: "vite-plugin-flyo-components",
637
+ async resolveId(o) {
638
+ if (o === t)
639
+ return i;
640
+ },
641
+ async load(o) {
642
+ if (o === i)
643
+ return `export default ${JSON.stringify(e)}`;
644
+ }
645
+ };
646
+ }
633
647
  function p() {
634
648
  return globalThis.flyoNitroInstance || console.error("The Flyo Typescript Configuration has not been initialized correctly"), globalThis.flyoNitroInstance;
635
649
  }
636
- function be() {
650
+ function Ee() {
637
651
  return new ce(p());
638
652
  }
639
- function Ee() {
640
- return new de(p());
653
+ function ke() {
654
+ return new le(p());
641
655
  }
642
656
  function Ce() {
643
- return new le(p());
657
+ return new de(p());
644
658
  }
645
659
  function Ie() {
646
660
  return new fe(p());
@@ -648,24 +662,29 @@ function Ie() {
648
662
  function Ae() {
649
663
  return new pe(p());
650
664
  }
651
- function ke() {
665
+ function Se() {
652
666
  return new ye(p());
653
667
  }
654
- function Se(e) {
668
+ function Ue(e) {
669
+ return {
670
+ "data-flyo-block-uid": e.uid
671
+ };
672
+ }
673
+ function xe(e) {
655
674
  const t = {
656
675
  accessToken: !1,
657
676
  liveEdit: !1,
658
677
  fallbackComponent: null,
659
678
  ...e
660
679
  };
661
- return {
680
+ return t.liveEdit === "true" ? t.liveEdit = !0 : t.liveEdit === "false" && (t.liveEdit = !1), {
662
681
  name: "@flyo/nitro-astro",
663
682
  hooks: {
664
- "astro:config:setup": ({ injectScript: i, updateConfig: r, injectRoute: a }) => {
683
+ "astro:config:setup": ({ injectScript: i, updateConfig: o, injectRoute: a }) => {
665
684
  a({
666
685
  pattern: "sitemap.xml",
667
686
  entrypoint: "@flyo/nitro-astro/sitemap.js"
668
- }), r({
687
+ }), o({
669
688
  image: {
670
689
  service: {
671
690
  entrypoint: "@flyo/nitro-astro/cdn.ts"
@@ -673,11 +692,12 @@ function Se(e) {
673
692
  },
674
693
  vite: {
675
694
  plugins: [
676
- Re(
695
+ qe(
677
696
  e.componentsDir,
678
697
  e.components,
679
698
  e.fallbackComponent
680
- )
699
+ ),
700
+ Re(t)
681
701
  ]
682
702
  }
683
703
  }), i(
@@ -715,6 +735,18 @@ function Se(e) {
715
735
  data: JSON.parse(JSON.stringify({item:{uid: blockUid}}))
716
736
  }, 'https://flyo.cloud')
717
737
  }
738
+
739
+ // Find all elements with the 'data-flyo-block-uid' attribute
740
+ const elements = document.querySelectorAll('[data-flyo-block-uid]');
741
+
742
+ // Add a click event listener to each element
743
+ elements.forEach(element => {
744
+ element.addEventListener('click', function() {
745
+ // On click, alert the value of 'data-flyo-block-uid'
746
+ console.log('open', this.getAttribute('data-flyo-block-uid'))
747
+ openBlockInFlyo(this.getAttribute('data-flyo-block-uid'))
748
+ });
749
+ });
718
750
  `
719
751
  );
720
752
  }
@@ -722,12 +754,13 @@ function Se(e) {
722
754
  };
723
755
  }
724
756
  export {
725
- Se as default,
726
- be as useConfigApi,
757
+ xe as default,
758
+ Ue as editableBlock,
759
+ Ee as useConfigApi,
727
760
  p as useConfiguration,
728
- Ee as useEntitiesApi,
761
+ ke as useEntitiesApi,
729
762
  Ce as usePagesApi,
730
763
  Ie as useSearchApi,
731
764
  Ae as useSitemapApi,
732
- ke as useVersionApi
765
+ Se as useVersionApi
733
766
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flyo/nitro-astro",
3
- "version": "1.2.3",
3
+ "version": "1.3.0",
4
4
  "description": "Astro Framework",
5
5
  "main": "./dist/nitro-astro.js",
6
6
  "module": "./dist/nitro-astro.mjs",