@flyo/nitro-astro 2.0.6 → 2.0.8

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 ADDED
@@ -0,0 +1,260 @@
1
+ # Flyo Nitro Astro Framework Integration
2
+
3
+ The Flyo Nitro Astro Framework Integration provides a comprehensive solution for implementing the Flyo Nitro CMS within the Astro (astro.build) environment. This guide details the integration process, emphasizing the use of Nitro [configurations](https://dev.flyo.cloud/dev/nitro/#die-grundlagen-von-nitro) within the Astro layout framework. Key highlights include:
4
+
5
+ - **Nitro Configuration in Astro**: This section explores methods for incorporating Nitro configurations into the Astro layout, offering step-by-step instructions for seamless integration that leverages the strengths of both systems.
6
+ - **Page Resolution and Block Integration**: Learn to manage and resolve pages within the Astro framework, including integrating Nitro's dynamic [blocks](https://dev.flyo.cloud/dev/nitro/block.html). This part provides insights into creating responsive and interactive web pages using Nitro block technology.
7
+ - **Fetching Entity Details**: Focus on techniques for retrieving and displaying detailed information about entities within Astro. This segment covers data fetching, handling, and presentation methods.
8
+ - **Image Service Integration**: Understand the integration of Flyo Storage's image service, as detailed in [Flyo Storage Documentation](https://dev.flyo.cloud/dev/infos/images.html). This section delves into working with images in Astro, including uploading, retrieving, and displaying images from Flyo Storage.
9
+ - **Meta Information Extraction**: The guide concludes with extracting and utilizing meta information, discussing the importance of meta tags for SEO and user engagement within the Astro framework.
10
+
11
+ This guide targets developers and web designers aiming to combine Flyo Nitro CMS and Astro framework capabilities to create dynamic, efficient, and feature-rich websites.
12
+
13
+ ## Installation
14
+
15
+ To install the package, execute the following command:
16
+
17
+ ```bash
18
+ astro add @flyo/nitro-astro
19
+ ```
20
+
21
+ Then, revise and adjust the configuration in your `astro.config.mjs`:
22
+
23
+ ```js
24
+ import flyoNitroIntegration from "@flyo/nitro-astro";
25
+
26
+ export default defineConfig({
27
+ site: "https://myflyowebsite.com", // required to make the sitemap.xml work
28
+ integrations: [
29
+ flyoNitroIntegration({
30
+ accessToken: "ADD_YOUR_TOKEN_HERE", // Switch between dev and prod tokens depending on the environment
31
+ liveEdit: true, // Enable on dev and preview systems for application reloading in the Flyo preview frame upon changes
32
+ components: {
33
+ // Define where the Flyo components are located. The suffix .astro is not required. The object key is the value from Flyo, while the object value is the component in the Astro components folder
34
+ // [!] Adding new elements requires restarting the development process
35
+ FlyoElementName: "AstroElementName",
36
+ AnotherFlyoElement: "subfolder/AnotherFlyoElement",
37
+ },
38
+ }),
39
+ ],
40
+ output: "server",
41
+ });
42
+ ```
43
+
44
+ > The nitro astro integration requires an SSR setup which is done by using `output: 'server'`.
45
+
46
+ ### Pages
47
+
48
+ Add a `[...slug].astro` file in the pages directory with the following example content as a catch-all CMS handler:
49
+
50
+ ```astro
51
+ ---
52
+ import Layout from "../layouts/Layout.astro";
53
+ import { usePagesApi, useConfig } from "@flyo/nitro-astro";
54
+ import FlyoNitroPage from "@flyo/nitro-astro/FlyoNitroPage.astro";
55
+ import MetaInfoPage from "@flyo/nitro-astro/MetaInfoPage.astro";
56
+
57
+ const { slug } = Astro.params;
58
+ const resolveSlug = slug === undefined ? "" : slug;
59
+ const config = await useConfig(Astro);
60
+ let page;
61
+
62
+ try {
63
+ if (!config.pages.includes(resolveSlug)) {
64
+ return new Response("Not Found", {
65
+ status: 404,
66
+ statusText: "Page Not Found",
67
+ });
68
+ }
69
+
70
+ page = await usePagesApi().page({ slug: resolveSlug });
71
+ } catch (e) {
72
+ return new Response(e.body.name, {
73
+ status: 404,
74
+ statusText: "Page Not Found",
75
+ });
76
+ }
77
+ ---
78
+
79
+ <Layout title={page.title}>
80
+ <MetaInfoPage page={page} slot="head" />
81
+ <FlyoNitroPage page={page} />
82
+ </Layout>
83
+ ```
84
+
85
+ To receive the config in the layout in `src/layouts/Layout.astro`:
86
+
87
+ ```astro
88
+ ---
89
+ import { useConfig } from "@flyo/nitro-astro";
90
+
91
+ const config = await useConfig(Astro);
92
+ const { title } = Astro.props;
93
+ const currentPath = Astro.url.pathname;
94
+ ---
95
+
96
+ <!doctype html>
97
+ <html lang="en">
98
+ <head>
99
+ <title>{title}</title>
100
+ <meta charset="UTF-8" />
101
+ <meta name="viewport" content="width=device-width" />
102
+ <!-- Auto-inject meta information for pages and entities -->
103
+ <slot name="head" />
104
+ </head>
105
+ <body>
106
+ {
107
+ config.containers.nav.items.map((item: object) => (
108
+ <a
109
+ style="background-color: red; color: white"
110
+ href={item.href}
111
+ class={`nav-class ${currentPath === item.href ? "text-red" : ""}`}
112
+ >
113
+ {item.label}
114
+ <br />
115
+ </a>
116
+ ))
117
+ }
118
+ <div class="container">
119
+ <slot />
120
+ </div>
121
+ </body>
122
+ </html>
123
+ ```
124
+
125
+ ### Blocks
126
+
127
+ Block Component Example (which are mostly located in `src/components/flyo`):
128
+
129
+ ```astro
130
+ ---
131
+ import { Image } from "astro:assets";
132
+ import { editableBlock } from "@flyo/nitro-astro";
133
+ import BlockSlot from "@flyo/nitro-astro/BlockSlot.astro";
134
+ const { block } = Astro.props;
135
+ ---
136
+
137
+ <!-- Make the block editable if necessary -->
138
+ <div {...editableBlock(block)}>
139
+ <!-- Content variable -->
140
+ <div set:html={block.content.content.html} />
141
+
142
+ <!-- Handling items -->
143
+ {
144
+ block.items.map((item: object) => (
145
+ <div>
146
+ {item.title}
147
+ <a href={item.link.routes.detail}>Go to Detail</a>
148
+ </div>
149
+ ))
150
+ }
151
+
152
+ <!-- Image Proxy -->
153
+ <Image
154
+ src={block.content.image.source}
155
+ alt={block.content.alt ?? ""}
156
+ width={1920}
157
+ height={768}
158
+ />
159
+
160
+ <!-- Handling slots -->
161
+ <BlockSlot slot={block.slots.mysuperslotname} />
162
+ </div>
163
+ ```
164
+
165
+ ### Entities
166
+
167
+ The **Entity Details** API provides all the information about an entity and the associated model data configured in the Flyo interface. You can request detail pages either by using a slug (with an additional schema ID) or by a unique ID.
168
+
169
+ #### Example: Request by slug (type ID 9999)
170
+
171
+ For a blog post, use `src/pages/blog/[slug].astro` with `entityBySlug`. Since slugs can be unique within an entity but may not be unique across the entire system, it’s recommended to include the schema ID to fetch the correct entity.
172
+
173
+ ```astro
174
+ ---
175
+ import Layout from "../../layouts/Layout.astro";
176
+ import { useEntitiesApi } from "@flyo/nitro-astro";
177
+ import MetaInfoEntity from "@flyo/nitro-astro/MetaInfoEntity.astro";
178
+
179
+ const { slug } = Astro.params;
180
+ let response = null;
181
+ try {
182
+ response = await useEntitiesApi().entityBySlug({
183
+ slug,
184
+ lang: Astro.currentLocale,
185
+ typeId: 9999,
186
+ });
187
+ } catch (e) {
188
+ return new Response(e.body, {
189
+ status: 404,
190
+ statusText: "Entity Not Found",
191
+ });
192
+ }
193
+ const isProd = import.meta.env.PROD;
194
+ ---
195
+
196
+ <Layout>
197
+ <MetaInfoEntity response={response} slot="head" />
198
+ <h1>{slug}</h1>
199
+ <img src={response.model.image.source} style="width:100%" />
200
+ </Layout>
201
+ {
202
+ isProd && (
203
+ <script is:inline define:vars={{ api: response.entity.entity_metric.api }}>
204
+ fetch(api)
205
+ </script>
206
+ )
207
+ }
208
+ ```
209
+
210
+ #### Example: Request by unique ID
211
+
212
+ For fetching by unique ID, use `src/pages/blog/[uniqueid].astro` with `entityByUniqueid`. The unique ID is globally unique across the entire system, making it reliable for fetching specific entities.
213
+
214
+ ```astro
215
+ const { uniqueid } = Astro.params;
216
+ // ....
217
+ await useEntitiesApi().entityByUniqueid({
218
+ uniqueid,
219
+ lang: Astro.currentLocale,
220
+ });
221
+ ```
222
+
223
+ ### Multiple Languages (i18n)
224
+
225
+ Refer to the [Astro internationalization documentation](https://docs.astro.build/en/guides/internationalization/) to configure languages. Ensure that the languages used in Flyo are defined in the `locales` array, and set the default language in `defaultLocale` in `astro.config.mjs`.
226
+
227
+ ```astro
228
+ import { defineConfig } from "astro/config"
229
+ export default defineConfig({
230
+ i18n: {
231
+ defaultLocale: "en",
232
+ locales: ["en", "fr"],
233
+ }
234
+ })
235
+ ```
236
+
237
+ All endpoints accept a `lang` parameter to retrieve data in the desired language. The **Nitro Astro** package handles this automatically. However, since the Entity Details page is custom-built, you need to manually pass the language parameter.
238
+
239
+ + For slug-based requests:
240
+ ```js
241
+ await useEntitiesApi().entityBySlug({ slug, lang: Astro.currentLocale });
242
+ ```
243
+ + For unique ID-based requests:
244
+ ```js
245
+ await useEntitiesApi().entityByUniqueid({ uniqueid, lang: Astro.currentLocale });
246
+ ```
247
+
248
+ Note: If your entity details are internationalized (i18n), you need to create separate detail pages for each language.
249
+
250
+ ```
251
+ .
252
+ ├── de
253
+ │ └── detail
254
+ │ └── [slug].astro
255
+ ├── fr
256
+ │ └── detail
257
+ │ └── [slug].astro
258
+ ```
259
+
260
+ The above structure would be `/de/detail/[slug].astro` and `/fr/detail/[slug].astro`.
@@ -1,4 +1,4 @@
1
- (function(u,g){typeof exports=="object"&&typeof module<"u"?g(exports):typeof define=="function"&&define.amd?define(["exports"],g):(u=typeof globalThis<"u"?globalThis:u||self,g(u.flyoNitroIntegration={}))})(this,function(u){"use strict";const g="https://api.flyo.cloud/nitro/v1".replace(/\/+$/,"");class F{constructor(n={}){this.configuration=n}set config(n){this.configuration=n}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:g}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||_}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const n=this.configuration.apiKey;if(n)return typeof n=="function"?n:()=>n}get accessToken(){const n=this.configuration.accessToken;if(n)return typeof n=="function"?n:async()=>n}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const L=new F,w=class j{constructor(n=L){this.configuration=n,this.fetchApi=async(t,i)=>{let r={url:t,init:i};for(const a of this.middleware)a.pre&&(r=await a.pre({fetch:this.fetchApi,...r})||r);let o;try{o=await(this.configuration.fetchApi||fetch)(r.url,r.init)}catch(a){for(const l of this.middleware)l.onError&&(o=await l.onError({fetch:this.fetchApi,url:r.url,init:r.init,error:a,response:o?o.clone():void 0})||o);if(o===void 0)throw a instanceof Error?new N(a,"The request failed and the interceptors did not return an alternative response"):a}for(const a of this.middleware)a.post&&(o=await a.post({fetch:this.fetchApi,url:r.url,init:r.init,response:o.clone()})||o);return o},this.middleware=n.middleware}withMiddleware(...n){const t=this.clone();return t.middleware=t.middleware.concat(...n),t}withPreMiddleware(...n){const t=n.map(i=>({pre:i}));return this.withMiddleware(...t)}withPostMiddleware(...n){const t=n.map(i=>({post:i}));return this.withMiddleware(...t)}isJsonMime(n){return n?j.jsonRegex.test(n):!1}async request(n,t){const{url:i,init:r}=await this.createFetchParams(n,t),o=await this.fetchApi(i,r);if(o&&o.status>=200&&o.status<300)return o;throw new K(o,"Response returned an error code")}async createFetchParams(n,t){let i=this.configuration.basePath+n.path;n.query!==void 0&&Object.keys(n.query).length!==0&&(i+="?"+this.configuration.queryParamsStringify(n.query));const r=Object.assign({},this.configuration.headers,n.headers);Object.keys(r).forEach(y=>r[y]===void 0?delete r[y]:{});const o=typeof t=="function"?t:async()=>t,a={method:n.method,headers:r,body:n.body,credentials:this.configuration.credentials},l={...a,...await o({init:a,context:n})};let s;x(l.body)||l.body instanceof URLSearchParams||P(l.body)?s=l.body:this.isJsonMime(r["Content-Type"])?s=JSON.stringify(l.body):s=l.body;const c={...l,body:s};return{url:i,init:c}}clone(){const n=this.constructor,t=new n(this.configuration);return t.middleware=this.middleware.slice(),t}};w.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");let p=w;function P(e){return typeof Blob<"u"&&e instanceof Blob}function x(e){return typeof FormData<"u"&&e instanceof FormData}class K extends Error{constructor(n,t){super(t),this.response=n,this.name="ResponseError"}}class N extends Error{constructor(n,t){super(t),this.cause=n,this.name="FetchError"}}class h extends Error{constructor(n,t){super(t),this.field=n,this.name="RequiredError"}}function _(e,n=""){return Object.keys(e).map(t=>b(t,e[t],n)).filter(t=>t.length>0).join("&")}function b(e,n,t=""){const i=t+(t.length?`[${e}]`:e);if(n instanceof Array){const r=n.map(o=>encodeURIComponent(String(o))).join(`&${encodeURIComponent(i)}=`);return`${encodeURIComponent(i)}=${r}`}if(n instanceof Set){const r=Array.from(n);return b(e,r,t)}return n instanceof Date?`${encodeURIComponent(i)}=${encodeURIComponent(n.toISOString())}`:n instanceof Object?_(n,i):`${encodeURIComponent(i)}=${encodeURIComponent(String(n))}`}function v(e,n){return Object.keys(e).reduce((t,i)=>({...t,[i]:n(e[i])}),{})}class d{constructor(n,t=i=>i){this.raw=n,this.transformer=t}async value(){return this.transformer(await this.raw.json())}}function M(e){return $(e)}function $(e,n){return e==null?e:{identifier:e.identifier==null?void 0:e.identifier,content:e.content==null?void 0:e.content.map(C)}}function C(e){return B(e)}function B(e,n){return e==null?e:{items:e.items==null?void 0:e.items,content:e.content==null?void 0:e.content,config:e.config==null?void 0:e.config,identifier:e.identifier==null?void 0:e.identifier,uid:e.uid==null?void 0:e.uid,component:e.component==null?void 0:e.component,slots:e.slots==null?void 0:v(e.slots,M)}}function E(e){return O(e)}function O(e,n){return e==null?e:{type:e.type==null?void 0:e.type,target:e.target==null?void 0:e.target,label:e.label==null?void 0:e.label,href:e.href==null?void 0:e.href,slug:e.slug==null?void 0:e.slug,properties:e.properties==null?void 0:e.properties,children:e.children==null?void 0:e.children.map(E)}}function D(e){return G(e)}function G(e,n){return e==null?e:{items:e.items==null?void 0:e.items.map(E),uid:e.uid==null?void 0:e.uid,identifier:e.identifier==null?void 0:e.identifier,label:e.label==null?void 0:e.label}}function H(e){return V(e)}function V(e,n){return e==null?e:{domain:e.domain==null?void 0:e.domain,slug:e.slug==null?void 0:e.slug,version:e.version==null?void 0:e.version,updated_at:e.updated_at==null?void 0:e.updated_at,language:e.language==null?void 0:e.language,primary_language:e.primary_language==null?void 0:e.primary_language}}function z(e){return J(e)}function J(e,n){return e==null?e:{nitro:e.nitro==null?void 0:H(e.nitro),pages:e.pages==null?void 0:e.pages,containers:e.containers==null?void 0:v(e.containers,D),globals:e.globals==null?void 0:e.globals}}function W(e){return Q(e)}function Q(e,n){return e==null?e:{api:e.api==null?void 0:e.api,image:e.image==null?void 0:e.image}}function Y(e){return Z(e)}function Z(e,n){return e==null?e:{_version:e._version==null?void 0:e._version,entity_metric:e.entity_metric==null?void 0:W(e.entity_metric),entity_unique_id:e.entity_unique_id==null?void 0:e.entity_unique_id,entity_id:e.entity_id==null?void 0:e.entity_id,entity_image:e.entity_image==null?void 0:e.entity_image,entity_slug:e.entity_slug==null?void 0:e.entity_slug,entity_teaser:e.entity_teaser==null?void 0:e.entity_teaser,entity_time_end:e.entity_time_end==null?void 0:e.entity_time_end,entity_time_start:e.entity_time_start==null?void 0:e.entity_time_start,entity_title:e.entity_title==null?void 0:e.entity_title,entity_type:e.entity_type==null?void 0:e.entity_type,entity_type_id:e.entity_type_id==null?void 0:e.entity_type_id,updated_at:e.updated_at==null?void 0:e.updated_at,routes:e.routes==null?void 0:e.routes}}function q(e){return X(e)}function X(e,n){return e==null?e:{entity:e.entity==null?void 0:Y(e.entity),model:e.model==null?void 0:e.model,language:e.language==null?void 0:e.language,jsonld:e.jsonld==null?void 0:e.jsonld}}function R(e){return ee(e)}function ee(e,n){return e==null?e:{entity_unique_id:e.entity_unique_id==null?void 0:e.entity_unique_id,entity_title:e.entity_title==null?void 0:e.entity_title,entity_teaser:e.entity_teaser==null?void 0:e.entity_teaser,entity_slug:e.entity_slug==null?void 0:e.entity_slug,entity_time_start:e.entity_time_start==null?void 0:e.entity_time_start,entity_type:e.entity_type==null?void 0:e.entity_type,entity_type_id:e.entity_type_id==null?void 0:e.entity_type_id,entity_image:e.entity_image==null?void 0:e.entity_image,routes:e.routes==null?void 0:e.routes}}function ne(e){return te(e)}function te(e,n){return e==null?e:{description:e.description==null?void 0:e.description,image:e.image==null?void 0:e.image,title:e.title==null?void 0:e.title}}function ie(e){return oe(e)}function oe(e,n){return e==null?e:{slug:e.slug==null?void 0:e.slug,title:e.title==null?void 0:e.title}}function re(e){return ae(e)}function ae(e,n){return e==null?e:{value:e.value==null?void 0:e.value,navigation:e.navigation==null?void 0:e.navigation,propagate:e.propagate==null?void 0:e.propagate}}function A(e){return le(e)}function le(e,n){return e==null?e:{id:e.id==null?void 0:e.id,title:e.title==null?void 0:e.title,href:e.href==null?void 0:e.href,slug:e.slug==null?void 0:e.slug,json:e.json==null?void 0:e.json.map(C),depth:e.depth==null?void 0:e.depth,is_home:e.is_home==null?void 0:e.is_home,created_at:e.created_at==null?void 0:e.created_at,updated_at:e.updated_at==null?void 0:e.updated_at,is_visible:e.is_visible==null?void 0:e.is_visible,meta_json:e.meta_json==null?void 0:ne(e.meta_json),properties:e.properties==null?void 0:v(e.properties,re),uid:e.uid==null?void 0:e.uid,type:e.type==null?void 0:e.type,target:e.target==null?void 0:e.target,container:e.container==null?void 0:e.container,breadcrumb:e.breadcrumb==null?void 0:e.breadcrumb.map(ie)}}function se(e){return ue(e)}function ue(e,n){return e==null?e:{version:e.version==null?void 0:e.version,updated_at:e.updated_at==null?void 0:e.updated_at}}class ce extends p{async configRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/config",method:"GET",headers:r,query:i},t);return new d(o,a=>z(a))}async config(n={},t){return await(await this.configRaw(n,t)).value()}}class de extends p{async entityBySlugRaw(n,t){if(n.slug==null)throw new h("slug",'Required parameter "slug" was null or undefined when calling entityBySlug().');const i={};n.lang!=null&&(i.lang=n.lang),n.typeId!=null&&(i.typeId=n.typeId);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/entities/slug/{slug}".replace("{slug}",encodeURIComponent(String(n.slug))),method:"GET",headers:r,query:i},t);return new d(o,a=>q(a))}async entityBySlug(n,t){return await(await this.entityBySlugRaw(n,t)).value()}async entityByUniqueidRaw(n,t){if(n.uniqueid==null)throw new h("uniqueid",'Required parameter "uniqueid" was null or undefined when calling entityByUniqueid().');const i={};n.lang!=null&&(i.lang=n.lang);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/entities/uniqueid/{uniqueid}".replace("{uniqueid}",encodeURIComponent(String(n.uniqueid))),method:"GET",headers:r,query:i},t);return new d(o,a=>q(a))}async entityByUniqueid(n,t){return await(await this.entityByUniqueidRaw(n,t)).value()}}class fe extends p{async homeRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/pages/home",method:"GET",headers:r,query:i},t);return new d(o,a=>A(a))}async home(n={},t){return await(await this.homeRaw(n,t)).value()}async pageRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang),n.slug!=null&&(i.slug=n.slug);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/pages",method:"GET",headers:r,query:i},t);return new d(o,a=>A(a))}async page(n={},t){return await(await this.pageRaw(n,t)).value()}}class pe extends p{async searchRaw(n,t){if(n.query==null)throw new h("query",'Required parameter "query" was null or undefined when calling search().');const i={};n.lang!=null&&(i.lang=n.lang),n.query!=null&&(i.query=n.query);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/search",method:"GET",headers:r,query:i},t);return new d(o,a=>a.map(R))}async search(n,t){return await(await this.searchRaw(n,t)).value()}}class ge extends p{async sitemapRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/sitemap",method:"GET",headers:r,query:i},t);return new d(o,a=>a.map(R))}async sitemap(n={},t){return await(await this.sitemapRaw(n,t)).value()}}class ye extends p{async versionRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const r={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/version",method:"GET",headers:r,query:i},t);return new d(o,a=>se(a))}async version(n={},t){return await(await this.versionRaw(n,t)).value()}}const he=/[\p{Lu}]/u,ve=/[\p{Ll}]/u,I=/^[\p{Lu}](?![\p{Lu}])/gu,k=/([\p{Alpha}\p{N}_]|$)/u,m=/[_.\- ]+/,me=new RegExp("^"+m.source),T=new RegExp(m.source+k.source,"gu"),S=new RegExp("\\d+"+k.source,"gu"),we=(e,n,t,i)=>{let r=!1,o=!1,a=!1,l=!1;for(let s=0;s<e.length;s++){const c=e[s];l=s>2?e[s-3]==="-":!0,r&&he.test(c)?(e=e.slice(0,s)+"-"+e.slice(s),r=!1,a=o,o=!0,s++):o&&a&&ve.test(c)&&(!l||i)?(e=e.slice(0,s-1)+"-"+e.slice(s-1),a=o,o=!1,r=!0):(r=n(c)===c&&t(c)!==c,a=o,o=t(c)===c&&n(c)!==c)}return e},_e=(e,n)=>(I.lastIndex=0,e.replace(I,t=>n(t))),be=(e,n)=>(T.lastIndex=0,S.lastIndex=0,e.replace(T,(t,i)=>n(i)).replace(S,t=>n(t)));function Ce(e,n){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(n={pascalCase:!1,preserveConsecutiveUppercase:!1,...n},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";const t=n.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(n.locale),i=n.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(n.locale);return e.length===1?m.test(e)?"":n.pascalCase?i(e):t(e):(e!==t(e)&&(e=we(e,t,i,n.preserveConsecutiveUppercase)),e=e.replace(me,""),e=n.preserveConsecutiveUppercase?_e(e,t):t(e),n.pascalCase&&(e=i(e.charAt(0))+e.slice(1)),be(e,i))}function Ee(e,n,t){const i="virtual:flyo-components",r="\0"+i;return{name:"vite-plugin-flyo-components",async resolveId(o){if(o===i)return r},async load(o){if(o===r){const a=[];for(const[s,c]of Object.entries(n)){const y=await this.resolve("/"+e+"/"+c+".astro");y&&a.push(`export { default as ${Ce(s)} } from "${y.id}"`)}let l=null;return t&&(l=await this.resolve("/"+e+"/"+t+".astro")),l?a.push(`export { default as fallback } from "${l.id}"`):a.push('export { default as fallback } from "@flyo/nitro-astro/FallbackComponent.astro"'),a.join(";")}}}}function U(){return globalThis.flyoNitroInstance||console.error("The Flyo Typescript Configuration has not been initialized correctly"),globalThis.flyoNitroInstance}function f(){return U().config}async function qe(e){return await e.locals.config}function Re(){return new ce(f())}function Ae(){return new de(f())}function Ie(){return new fe(f())}function ke(){return new pe(f())}function Te(){return new ge(f())}function Se(){return new ye(f())}function Ue(e){return{"data-flyo-block-uid":e.uid}}const je=`
1
+ (function(u,p){typeof exports=="object"&&typeof module<"u"?p(exports):typeof define=="function"&&define.amd?define(["exports"],p):(u=typeof globalThis<"u"?globalThis:u||self,p(u.flyoNitroIntegration={}))})(this,function(u){"use strict";const p="https://api.flyo.cloud/nitro/v1".replace(/\/+$/,"");class P{constructor(n={}){this.configuration=n}set config(n){this.configuration=n}get basePath(){return this.configuration.basePath!=null?this.configuration.basePath:p}get fetchApi(){return this.configuration.fetchApi}get middleware(){return this.configuration.middleware||[]}get queryParamsStringify(){return this.configuration.queryParamsStringify||_}get username(){return this.configuration.username}get password(){return this.configuration.password}get apiKey(){const n=this.configuration.apiKey;if(n)return typeof n=="function"?n:()=>n}get accessToken(){const n=this.configuration.accessToken;if(n)return typeof n=="function"?n:async()=>n}get headers(){return this.configuration.headers}get credentials(){return this.configuration.credentials}}const x=new P,w=class F{constructor(n=x){this.configuration=n,this.fetchApi=async(t,i)=>{let a={url:t,init:i};for(const r of this.middleware)r.pre&&(a=await r.pre({fetch:this.fetchApi,...a})||a);let o;try{o=await(this.configuration.fetchApi||fetch)(a.url,a.init)}catch(r){for(const l of this.middleware)l.onError&&(o=await l.onError({fetch:this.fetchApi,url:a.url,init:a.init,error:r,response:o?o.clone():void 0})||o);if(o===void 0)throw r instanceof Error?new N(r,"The request failed and the interceptors did not return an alternative response"):r}for(const r of this.middleware)r.post&&(o=await r.post({fetch:this.fetchApi,url:a.url,init:a.init,response:o.clone()})||o);return o},this.middleware=n.middleware}withMiddleware(...n){const t=this.clone();return t.middleware=t.middleware.concat(...n),t}withPreMiddleware(...n){const t=n.map(i=>({pre:i}));return this.withMiddleware(...t)}withPostMiddleware(...n){const t=n.map(i=>({post:i}));return this.withMiddleware(...t)}isJsonMime(n){return n?F.jsonRegex.test(n):!1}async request(n,t){const{url:i,init:a}=await this.createFetchParams(n,t),o=await this.fetchApi(i,a);if(o&&o.status>=200&&o.status<300)return o;throw new M(o,"Response returned an error code")}async createFetchParams(n,t){let i=this.configuration.basePath+n.path;n.query!==void 0&&Object.keys(n.query).length!==0&&(i+="?"+this.configuration.queryParamsStringify(n.query));const a=Object.assign({},this.configuration.headers,n.headers);Object.keys(a).forEach(h=>a[h]===void 0?delete a[h]:{});const o=typeof t=="function"?t:async()=>t,r={method:n.method,headers:a,body:n.body,credentials:this.configuration.credentials},l={...r,...await o({init:r,context:n})};let s;K(l.body)||l.body instanceof URLSearchParams||$(l.body)?s=l.body:this.isJsonMime(a["Content-Type"])?s=JSON.stringify(l.body):s=l.body;const c={...l,body:s};return{url:i,init:c}}clone(){const n=this.constructor,t=new n(this.configuration);return t.middleware=this.middleware.slice(),t}};w.jsonRegex=new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$","i");let g=w;function $(e){return typeof Blob<"u"&&e instanceof Blob}function K(e){return typeof FormData<"u"&&e instanceof FormData}class M extends Error{constructor(n,t){super(t),this.response=n,this.name="ResponseError"}}class N extends Error{constructor(n,t){super(t),this.cause=n,this.name="FetchError"}}class y extends Error{constructor(n,t){super(t),this.field=n,this.name="RequiredError"}}function _(e,n=""){return Object.keys(e).map(t=>b(t,e[t],n)).filter(t=>t.length>0).join("&")}function b(e,n,t=""){const i=t+(t.length?`[${e}]`:e);if(n instanceof Array){const a=n.map(o=>encodeURIComponent(String(o))).join(`&${encodeURIComponent(i)}=`);return`${encodeURIComponent(i)}=${a}`}if(n instanceof Set){const a=Array.from(n);return b(e,a,t)}return n instanceof Date?`${encodeURIComponent(i)}=${encodeURIComponent(n.toISOString())}`:n instanceof Object?_(n,i):`${encodeURIComponent(i)}=${encodeURIComponent(String(n))}`}function v(e,n){return Object.keys(e).reduce((t,i)=>({...t,[i]:n(e[i])}),{})}class d{constructor(n,t=i=>i){this.raw=n,this.transformer=t}async value(){return this.transformer(await this.raw.json())}}function B(e){return O(e)}function O(e,n){return e==null?e:{identifier:e.identifier==null?void 0:e.identifier,content:e.content==null?void 0:e.content.map(C)}}function C(e){return D(e)}function D(e,n){return e==null?e:{items:e.items==null?void 0:e.items,content:e.content==null?void 0:e.content,config:e.config==null?void 0:e.config,identifier:e.identifier==null?void 0:e.identifier,uid:e.uid==null?void 0:e.uid,component:e.component==null?void 0:e.component,slots:e.slots==null?void 0:v(e.slots,B)}}function E(e){return G(e)}function G(e,n){return e==null?e:{slug:e.slug==null?void 0:e.slug,title:e.title==null?void 0:e.title,href:e.href==null?void 0:e.href}}function q(e){return H(e)}function H(e,n){return e==null?e:{type:e.type==null?void 0:e.type,target:e.target==null?void 0:e.target,label:e.label==null?void 0:e.label,href:e.href==null?void 0:e.href,slug:e.slug==null?void 0:e.slug,properties:e.properties==null?void 0:e.properties,children:e.children==null?void 0:e.children.map(q)}}function z(e){return V(e)}function V(e,n){return e==null?e:{items:e.items==null?void 0:e.items.map(q),uid:e.uid==null?void 0:e.uid,identifier:e.identifier==null?void 0:e.identifier,label:e.label==null?void 0:e.label}}function J(e){return W(e)}function W(e,n){return e==null?e:{domain:e.domain==null?void 0:e.domain,slug:e.slug==null?void 0:e.slug,version:e.version==null?void 0:e.version,updated_at:e.updated_at==null?void 0:e.updated_at,language:e.language==null?void 0:e.language,primary_language:e.primary_language==null?void 0:e.primary_language}}function Q(e){return X(e)}function X(e,n){return e==null?e:{nitro:e.nitro==null?void 0:J(e.nitro),pages:e.pages==null?void 0:e.pages,containers:e.containers==null?void 0:v(e.containers,z),globals:e.globals==null?void 0:e.globals}}function Y(e){return Z(e)}function Z(e,n){return e==null?e:{api:e.api==null?void 0:e.api,image:e.image==null?void 0:e.image}}function ee(e){return ne(e)}function ne(e,n){return e==null?e:{_version:e._version==null?void 0:e._version,entity_metric:e.entity_metric==null?void 0:Y(e.entity_metric),entity_unique_id:e.entity_unique_id==null?void 0:e.entity_unique_id,entity_id:e.entity_id==null?void 0:e.entity_id,entity_image:e.entity_image==null?void 0:e.entity_image,entity_slug:e.entity_slug==null?void 0:e.entity_slug,entity_teaser:e.entity_teaser==null?void 0:e.entity_teaser,entity_time_end:e.entity_time_end==null?void 0:e.entity_time_end,entity_time_start:e.entity_time_start==null?void 0:e.entity_time_start,entity_title:e.entity_title==null?void 0:e.entity_title,entity_type:e.entity_type==null?void 0:e.entity_type,entity_type_id:e.entity_type_id==null?void 0:e.entity_type_id,updated_at:e.updated_at==null?void 0:e.updated_at,routes:e.routes==null?void 0:e.routes}}function te(e){return ie(e)}function ie(e,n){return e==null?e:{shortcode:e.shortcode==null?void 0:e.shortcode,name:e.name==null?void 0:e.name}}function R(e){return oe(e)}function oe(e,n){return e==null?e:{language:e.language==null?void 0:te(e.language),slug:e.slug==null?void 0:e.slug,title:e.title==null?void 0:e.title,href:e.href==null?void 0:e.href}}function A(e){return ae(e)}function ae(e,n){return e==null?e:{entity:e.entity==null?void 0:ee(e.entity),model:e.model==null?void 0:e.model,language:e.language==null?void 0:e.language,jsonld:e.jsonld==null?void 0:e.jsonld,translation:e.translation==null?void 0:e.translation.map(R),breadcrumb:e.breadcrumb==null?void 0:e.breadcrumb.map(E)}}function I(e){return re(e)}function re(e,n){return e==null?e:{entity_unique_id:e.entity_unique_id==null?void 0:e.entity_unique_id,entity_title:e.entity_title==null?void 0:e.entity_title,entity_teaser:e.entity_teaser==null?void 0:e.entity_teaser,entity_slug:e.entity_slug==null?void 0:e.entity_slug,entity_time_start:e.entity_time_start==null?void 0:e.entity_time_start,entity_type:e.entity_type==null?void 0:e.entity_type,entity_type_id:e.entity_type_id==null?void 0:e.entity_type_id,entity_image:e.entity_image==null?void 0:e.entity_image,routes:e.routes==null?void 0:e.routes}}function le(e){return se(e)}function se(e,n){return e==null?e:{description:e.description==null?void 0:e.description,image:e.image==null?void 0:e.image,title:e.title==null?void 0:e.title}}function ue(e){return ce(e)}function ce(e,n){return e==null?e:{value:e.value==null?void 0:e.value,navigation:e.navigation==null?void 0:e.navigation,propagate:e.propagate==null?void 0:e.propagate}}function k(e){return de(e)}function de(e,n){return e==null?e:{id:e.id==null?void 0:e.id,title:e.title==null?void 0:e.title,href:e.href==null?void 0:e.href,slug:e.slug==null?void 0:e.slug,json:e.json==null?void 0:e.json.map(C),depth:e.depth==null?void 0:e.depth,is_home:e.is_home==null?void 0:e.is_home,created_at:e.created_at==null?void 0:e.created_at,updated_at:e.updated_at==null?void 0:e.updated_at,is_visible:e.is_visible==null?void 0:e.is_visible,meta_json:e.meta_json==null?void 0:le(e.meta_json),properties:e.properties==null?void 0:v(e.properties,ue),uid:e.uid==null?void 0:e.uid,type:e.type==null?void 0:e.type,target:e.target==null?void 0:e.target,container:e.container==null?void 0:e.container,breadcrumb:e.breadcrumb==null?void 0:e.breadcrumb.map(E),translation:e.translation==null?void 0:e.translation.map(R)}}function fe(e){return ge(e)}function ge(e,n){return e==null?e:{version:e.version==null?void 0:e.version,updated_at:e.updated_at==null?void 0:e.updated_at}}class pe extends g{async configRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/config",method:"GET",headers:a,query:i},t);return new d(o,r=>Q(r))}async config(n={},t){return await(await this.configRaw(n,t)).value()}}class he extends g{async entityBySlugRaw(n,t){if(n.slug==null)throw new y("slug",'Required parameter "slug" was null or undefined when calling entityBySlug().');const i={};n.typeId!=null&&(i.typeId=n.typeId),n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/entities/slug/{slug}".replace("{slug}",encodeURIComponent(String(n.slug))),method:"GET",headers:a,query:i},t);return new d(o,r=>A(r))}async entityBySlug(n,t){return await(await this.entityBySlugRaw(n,t)).value()}async entityByUniqueidRaw(n,t){if(n.uniqueid==null)throw new y("uniqueid",'Required parameter "uniqueid" was null or undefined when calling entityByUniqueid().');const i={};n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/entities/uniqueid/{uniqueid}".replace("{uniqueid}",encodeURIComponent(String(n.uniqueid))),method:"GET",headers:a,query:i},t);return new d(o,r=>A(r))}async entityByUniqueid(n,t){return await(await this.entityByUniqueidRaw(n,t)).value()}}class ye extends g{async homeRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/pages/home",method:"GET",headers:a,query:i},t);return new d(o,r=>k(r))}async home(n={},t){return await(await this.homeRaw(n,t)).value()}async pageRaw(n,t){const i={};n.slug!=null&&(i.slug=n.slug),n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/pages",method:"GET",headers:a,query:i},t);return new d(o,r=>k(r))}async page(n={},t){return await(await this.pageRaw(n,t)).value()}}class ve extends g{async searchRaw(n,t){if(n.query==null)throw new y("query",'Required parameter "query" was null or undefined when calling search().');const i={};n.query!=null&&(i.query=n.query),n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/search",method:"GET",headers:a,query:i},t);return new d(o,r=>r.map(I))}async search(n,t){return await(await this.searchRaw(n,t)).value()}}class me extends g{async sitemapRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/sitemap",method:"GET",headers:a,query:i},t);return new d(o,r=>r.map(I))}async sitemap(n={},t){return await(await this.sitemapRaw(n,t)).value()}}class we extends g{async versionRaw(n,t){const i={};n.lang!=null&&(i.lang=n.lang);const a={};this.configuration&&this.configuration.apiKey&&(i.token=await this.configuration.apiKey("token"));const o=await this.request({path:"/version",method:"GET",headers:a,query:i},t);return new d(o,r=>fe(r))}async version(n={},t){return await(await this.versionRaw(n,t)).value()}}const _e=/[\p{Lu}]/u,be=/[\p{Ll}]/u,T=/^[\p{Lu}](?![\p{Lu}])/gu,S=/([\p{Alpha}\p{N}_]|$)/u,m=/[_.\- ]+/,Ce=new RegExp("^"+m.source),U=new RegExp(m.source+S.source,"gu"),j=new RegExp("\\d+"+S.source,"gu"),Ee=(e,n,t,i)=>{let a=!1,o=!1,r=!1,l=!1;for(let s=0;s<e.length;s++){const c=e[s];l=s>2?e[s-3]==="-":!0,a&&_e.test(c)?(e=e.slice(0,s)+"-"+e.slice(s),a=!1,r=o,o=!0,s++):o&&r&&be.test(c)&&(!l||i)?(e=e.slice(0,s-1)+"-"+e.slice(s-1),r=o,o=!1,a=!0):(a=n(c)===c&&t(c)!==c,r=o,o=t(c)===c&&n(c)!==c)}return e},qe=(e,n)=>(T.lastIndex=0,e.replaceAll(T,t=>n(t))),Re=(e,n)=>(U.lastIndex=0,j.lastIndex=0,e.replaceAll(j,(t,i,a)=>["_","-"].includes(e.charAt(a+t.length))?t:n(t)).replaceAll(U,(t,i)=>n(i)));function Ae(e,n){if(!(typeof e=="string"||Array.isArray(e)))throw new TypeError("Expected the input to be `string | string[]`");if(n={pascalCase:!1,preserveConsecutiveUppercase:!1,...n},Array.isArray(e)?e=e.map(o=>o.trim()).filter(o=>o.length).join("-"):e=e.trim(),e.length===0)return"";const t=n.locale===!1?o=>o.toLowerCase():o=>o.toLocaleLowerCase(n.locale),i=n.locale===!1?o=>o.toUpperCase():o=>o.toLocaleUpperCase(n.locale);return e.length===1?m.test(e)?"":n.pascalCase?i(e):t(e):(e!==t(e)&&(e=Ee(e,t,i,n.preserveConsecutiveUppercase)),e=e.replace(Ce,""),e=n.preserveConsecutiveUppercase?qe(e,t):t(e),n.pascalCase&&(e=i(e.charAt(0))+e.slice(1)),Re(e,i))}function Ie(e,n,t){const i="virtual:flyo-components",a="\0"+i;return{name:"vite-plugin-flyo-components",async resolveId(o){if(o===i)return a},async load(o){if(o===a){const r=[];for(const[s,c]of Object.entries(n)){const h=await this.resolve("/"+e+"/"+c+".astro");h&&r.push(`export { default as ${Ae(s)} } from "${h.id}"`)}let l=null;return t&&(l=await this.resolve("/"+e+"/"+t+".astro")),l?r.push(`export { default as fallback } from "${l.id}"`):r.push('export { default as fallback } from "@flyo/nitro-astro/FallbackComponent.astro"'),r.join(";")}}}}function L(){return globalThis.flyoNitroInstance||console.error("The Flyo Typescript Configuration has not been initialized correctly"),globalThis.flyoNitroInstance}function f(){return L().config}async function ke(e){return await e.locals.config}function Te(){return new pe(f())}function Se(){return new he(f())}function Ue(){return new ye(f())}function je(){return new ve(f())}function Le(){return new me(f())}function Fe(){return new we(f())}function Pe(e){return{"data-flyo-block-uid":e.uid}}const xe=`
2
2
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 163.4 88.5">
3
3
  <style type="text/css">
4
4
  .st8{fill:#FFFFFF;}
@@ -29,7 +29,7 @@
29
29
  </g>
30
30
  </g>
31
31
  </svg>
32
- `;function Fe(e){const n={accessToken:!1,liveEdit:!1,fallbackComponent:null,componentsDir:"src/components/flyo",serverCacheHeaderTtl:1200,clientCacheHeaderTtl:900,...e};return n.liveEdit==="true"?n.liveEdit=!0:n.liveEdit==="false"&&(n.liveEdit=!1),{name:"@flyo/nitro-astro",hooks:{"astro:config:setup":({injectScript:t,updateConfig:i,injectRoute:r,addMiddleware:o,addDevToolbarApp:a})=>{a({id:"flyo-nitro",name:"Flyo Nitro",icon:je,entrypoint:"@flyo/nitro-astro/toolbar.ts"}),r({pattern:"sitemap.xml",entrypoint:"@flyo/nitro-astro/sitemap.ts"}),o({entrypoint:"@flyo/nitro-astro/middleware.ts",order:"post"}),i({image:{service:{entrypoint:"@flyo/nitro-astro/cdn.ts"}},vite:{plugins:[Ee(e.componentsDir,e.components||{},e.fallbackComponent)]}}),t("page-ssr",`
32
+ `;function $e(e){const n={accessToken:!1,liveEdit:!1,fallbackComponent:null,componentsDir:"src/components/flyo",serverCacheHeaderTtl:1200,clientCacheHeaderTtl:900,...e};return n.liveEdit==="true"?n.liveEdit=!0:n.liveEdit==="false"&&(n.liveEdit=!1),{name:"@flyo/nitro-astro",hooks:{"astro:config:setup":({injectScript:t,updateConfig:i,injectRoute:a,addMiddleware:o,addDevToolbarApp:r})=>{r({id:"flyo-nitro",name:"Flyo Nitro",icon:xe,entrypoint:"@flyo/nitro-astro/toolbar.ts"}),a({pattern:"sitemap.xml",entrypoint:"@flyo/nitro-astro/sitemap.ts"}),o({entrypoint:"@flyo/nitro-astro/middleware.ts",order:"post"}),i({image:{service:{entrypoint:"@flyo/nitro-astro/cdn.ts"}},vite:{plugins:[Ie(e.componentsDir,e.components||{},e.fallbackComponent)]}}),t("page-ssr",`
33
33
  import { Configuration } from '@flyo/nitro-typescript'
34
34
 
35
35
  var defaultConfig = new Configuration({
@@ -76,4 +76,4 @@
76
76
  openBlockInFlyo(this.getAttribute('data-flyo-block-uid'))
77
77
  });
78
78
  });
79
- `)}}}}u.default=Fe,u.editableBlock=Ue,u.useConfig=qe,u.useConfigApi=Re,u.useConfiguration=f,u.useEntitiesApi=Ae,u.useFlyoIntegration=U,u.usePagesApi=Ie,u.useSearchApi=ke,u.useSitemapApi=Te,u.useVersionApi=Se,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
79
+ `)}}}}u.default=$e,u.editableBlock=Pe,u.useConfig=ke,u.useConfigApi=Te,u.useConfiguration=f,u.useEntitiesApi=Se,u.useFlyoIntegration=L,u.usePagesApi=Ue,u.useSearchApi=je,u.useSitemapApi=Le,u.useVersionApi=Fe,Object.defineProperties(u,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
@@ -1,5 +1,5 @@
1
- const x = "https://api.flyo.cloud/nitro/v1".replace(/\/+$/, "");
2
- class S {
1
+ const U = "https://api.flyo.cloud/nitro/v1".replace(/\/+$/, "");
2
+ class L {
3
3
  constructor(n = {}) {
4
4
  this.configuration = n;
5
5
  }
@@ -7,7 +7,7 @@ class S {
7
7
  this.configuration = n;
8
8
  }
9
9
  get basePath() {
10
- return this.configuration.basePath != null ? this.configuration.basePath : x;
10
+ return this.configuration.basePath != null ? this.configuration.basePath : U;
11
11
  }
12
12
  get fetchApi() {
13
13
  return this.configuration.fetchApi;
@@ -41,8 +41,8 @@ class S {
41
41
  return this.configuration.credentials;
42
42
  }
43
43
  }
44
- const U = new S(), C = class E {
45
- constructor(n = U) {
44
+ const j = new L(), C = class E {
45
+ constructor(n = j) {
46
46
  this.configuration = n, this.fetchApi = async (t, i) => {
47
47
  let r = { url: t, init: i };
48
48
  for (const a of this.middleware)
@@ -63,7 +63,7 @@ const U = new S(), C = class E {
63
63
  response: o ? o.clone() : void 0
64
64
  }) || o);
65
65
  if (o === void 0)
66
- throw a instanceof Error ? new P(a, "The request failed and the interceptors did not return an alternative response") : a;
66
+ throw a instanceof Error ? new K(a, "The request failed and the interceptors did not return an alternative response") : a;
67
67
  }
68
68
  for (const a of this.middleware)
69
69
  a.post && (o = await a.post({
@@ -104,7 +104,7 @@ const U = new S(), C = class E {
104
104
  const { url: i, init: r } = await this.createFetchParams(n, t), o = await this.fetchApi(i, r);
105
105
  if (o && o.status >= 200 && o.status < 300)
106
106
  return o;
107
- throw new F(o, "Response returned an error code");
107
+ throw new $(o, "Response returned an error code");
108
108
  }
109
109
  async createFetchParams(n, t) {
110
110
  let i = this.configuration.basePath + n.path;
@@ -124,7 +124,7 @@ const U = new S(), C = class E {
124
124
  })
125
125
  };
126
126
  let s;
127
- L(l.body) || l.body instanceof URLSearchParams || j(l.body) ? s = l.body : this.isJsonMime(r["Content-Type"]) ? s = JSON.stringify(l.body) : s = l.body;
127
+ P(l.body) || l.body instanceof URLSearchParams || F(l.body) ? s = l.body : this.isJsonMime(r["Content-Type"]) ? s = JSON.stringify(l.body) : s = l.body;
128
128
  const u = {
129
129
  ...l,
130
130
  body: s
@@ -142,18 +142,18 @@ const U = new S(), C = class E {
142
142
  };
143
143
  C.jsonRegex = new RegExp("^(:?application/json|[^;/ ]+/[^;/ ]+[+]json)[ ]*(:?;.*)?$", "i");
144
144
  let d = C;
145
- function j(e) {
145
+ function F(e) {
146
146
  return typeof Blob < "u" && e instanceof Blob;
147
147
  }
148
- function L(e) {
148
+ function P(e) {
149
149
  return typeof FormData < "u" && e instanceof FormData;
150
150
  }
151
- class F extends Error {
151
+ class $ extends Error {
152
152
  constructor(n, t) {
153
153
  super(t), this.response = n, this.name = "ResponseError";
154
154
  }
155
155
  }
156
- class P extends Error {
156
+ class K extends Error {
157
157
  constructor(n, t) {
158
158
  super(t), this.cause = n, this.name = "FetchError";
159
159
  }
@@ -178,7 +178,7 @@ function R(e, n, t = "") {
178
178
  }
179
179
  return n instanceof Date ? `${encodeURIComponent(i)}=${encodeURIComponent(n.toISOString())}` : n instanceof Object ? q(n, i) : `${encodeURIComponent(i)}=${encodeURIComponent(String(n))}`;
180
180
  }
181
- function y(e, n) {
181
+ function h(e, n) {
182
182
  return Object.keys(e).reduce(
183
183
  (t, i) => ({ ...t, [i]: n(e[i]) }),
184
184
  {}
@@ -192,19 +192,19 @@ class c {
192
192
  return this.transformer(await this.raw.json());
193
193
  }
194
194
  }
195
- function K(e) {
196
- return N(e);
195
+ function N(e) {
196
+ return M(e);
197
197
  }
198
- function N(e, n) {
198
+ function M(e, n) {
199
199
  return e == null ? e : {
200
200
  identifier: e.identifier == null ? void 0 : e.identifier,
201
201
  content: e.content == null ? void 0 : e.content.map(A)
202
202
  };
203
203
  }
204
204
  function A(e) {
205
- return $(e);
205
+ return B(e);
206
206
  }
207
- function $(e, n) {
207
+ function B(e, n) {
208
208
  return e == null ? e : {
209
209
  items: e.items == null ? void 0 : e.items,
210
210
  content: e.content == null ? void 0 : e.content,
@@ -212,13 +212,23 @@ function $(e, n) {
212
212
  identifier: e.identifier == null ? void 0 : e.identifier,
213
213
  uid: e.uid == null ? void 0 : e.uid,
214
214
  component: e.component == null ? void 0 : e.component,
215
- slots: e.slots == null ? void 0 : y(e.slots, K)
215
+ slots: e.slots == null ? void 0 : h(e.slots, N)
216
+ };
217
+ }
218
+ function k(e) {
219
+ return O(e);
220
+ }
221
+ function O(e, n) {
222
+ return e == null ? e : {
223
+ slug: e.slug == null ? void 0 : e.slug,
224
+ title: e.title == null ? void 0 : e.title,
225
+ href: e.href == null ? void 0 : e.href
216
226
  };
217
227
  }
218
228
  function I(e) {
219
- return B(e);
229
+ return D(e);
220
230
  }
221
- function B(e, n) {
231
+ function D(e, n) {
222
232
  return e == null ? e : {
223
233
  type: e.type == null ? void 0 : e.type,
224
234
  target: e.target == null ? void 0 : e.target,
@@ -229,10 +239,10 @@ function B(e, n) {
229
239
  children: e.children == null ? void 0 : e.children.map(I)
230
240
  };
231
241
  }
232
- function M(e) {
233
- return O(e);
242
+ function G(e) {
243
+ return H(e);
234
244
  }
235
- function O(e, n) {
245
+ function H(e, n) {
236
246
  return e == null ? e : {
237
247
  items: e.items == null ? void 0 : e.items.map(I),
238
248
  uid: e.uid == null ? void 0 : e.uid,
@@ -240,10 +250,10 @@ function O(e, n) {
240
250
  label: e.label == null ? void 0 : e.label
241
251
  };
242
252
  }
243
- function D(e) {
244
- return G(e);
253
+ function z(e) {
254
+ return V(e);
245
255
  }
246
- function G(e, n) {
256
+ function V(e, n) {
247
257
  return e == null ? e : {
248
258
  domain: e.domain == null ? void 0 : e.domain,
249
259
  slug: e.slug == null ? void 0 : e.slug,
@@ -253,33 +263,33 @@ function G(e, n) {
253
263
  primary_language: e.primary_language == null ? void 0 : e.primary_language
254
264
  };
255
265
  }
256
- function H(e) {
257
- return V(e);
266
+ function J(e) {
267
+ return W(e);
258
268
  }
259
- function V(e, n) {
269
+ function W(e, n) {
260
270
  return e == null ? e : {
261
- nitro: e.nitro == null ? void 0 : D(e.nitro),
271
+ nitro: e.nitro == null ? void 0 : z(e.nitro),
262
272
  pages: e.pages == null ? void 0 : e.pages,
263
- containers: e.containers == null ? void 0 : y(e.containers, M),
273
+ containers: e.containers == null ? void 0 : h(e.containers, G),
264
274
  globals: e.globals == null ? void 0 : e.globals
265
275
  };
266
276
  }
267
- function z(e) {
268
- return J(e);
277
+ function Q(e) {
278
+ return X(e);
269
279
  }
270
- function J(e, n) {
280
+ function X(e, n) {
271
281
  return e == null ? e : {
272
282
  api: e.api == null ? void 0 : e.api,
273
283
  image: e.image == null ? void 0 : e.image
274
284
  };
275
285
  }
276
- function W(e) {
277
- return Q(e);
286
+ function Y(e) {
287
+ return Z(e);
278
288
  }
279
- function Q(e, n) {
289
+ function Z(e, n) {
280
290
  return e == null ? e : {
281
291
  _version: e._version == null ? void 0 : e._version,
282
- entity_metric: e.entity_metric == null ? void 0 : z(e.entity_metric),
292
+ entity_metric: e.entity_metric == null ? void 0 : Q(e.entity_metric),
283
293
  entity_unique_id: e.entity_unique_id == null ? void 0 : e.entity_unique_id,
284
294
  entity_id: e.entity_id == null ? void 0 : e.entity_id,
285
295
  entity_image: e.entity_image == null ? void 0 : e.entity_image,
@@ -294,21 +304,43 @@ function Q(e, n) {
294
304
  routes: e.routes == null ? void 0 : e.routes
295
305
  };
296
306
  }
307
+ function ee(e) {
308
+ return ne(e);
309
+ }
310
+ function ne(e, n) {
311
+ return e == null ? e : {
312
+ shortcode: e.shortcode == null ? void 0 : e.shortcode,
313
+ name: e.name == null ? void 0 : e.name
314
+ };
315
+ }
316
+ function T(e) {
317
+ return te(e);
318
+ }
319
+ function te(e, n) {
320
+ return e == null ? e : {
321
+ language: e.language == null ? void 0 : ee(e.language),
322
+ slug: e.slug == null ? void 0 : e.slug,
323
+ title: e.title == null ? void 0 : e.title,
324
+ href: e.href == null ? void 0 : e.href
325
+ };
326
+ }
297
327
  function v(e) {
298
- return Y(e);
328
+ return ie(e);
299
329
  }
300
- function Y(e, n) {
330
+ function ie(e, n) {
301
331
  return e == null ? e : {
302
- entity: e.entity == null ? void 0 : W(e.entity),
332
+ entity: e.entity == null ? void 0 : Y(e.entity),
303
333
  model: e.model == null ? void 0 : e.model,
304
334
  language: e.language == null ? void 0 : e.language,
305
- jsonld: e.jsonld == null ? void 0 : e.jsonld
335
+ jsonld: e.jsonld == null ? void 0 : e.jsonld,
336
+ translation: e.translation == null ? void 0 : e.translation.map(T),
337
+ breadcrumb: e.breadcrumb == null ? void 0 : e.breadcrumb.map(k)
306
338
  };
307
339
  }
308
- function k(e) {
309
- return Z(e);
340
+ function x(e) {
341
+ return oe(e);
310
342
  }
311
- function Z(e, n) {
343
+ function oe(e, n) {
312
344
  return e == null ? e : {
313
345
  entity_unique_id: e.entity_unique_id == null ? void 0 : e.entity_unique_id,
314
346
  entity_title: e.entity_title == null ? void 0 : e.entity_title,
@@ -321,29 +353,20 @@ function Z(e, n) {
321
353
  routes: e.routes == null ? void 0 : e.routes
322
354
  };
323
355
  }
324
- function X(e) {
325
- return ee(e);
356
+ function re(e) {
357
+ return ae(e);
326
358
  }
327
- function ee(e, n) {
359
+ function ae(e, n) {
328
360
  return e == null ? e : {
329
361
  description: e.description == null ? void 0 : e.description,
330
362
  image: e.image == null ? void 0 : e.image,
331
363
  title: e.title == null ? void 0 : e.title
332
364
  };
333
365
  }
334
- function ne(e) {
335
- return te(e);
336
- }
337
- function te(e, n) {
338
- return e == null ? e : {
339
- slug: e.slug == null ? void 0 : e.slug,
340
- title: e.title == null ? void 0 : e.title
341
- };
342
- }
343
- function ie(e) {
344
- return oe(e);
366
+ function le(e) {
367
+ return se(e);
345
368
  }
346
- function oe(e, n) {
369
+ function se(e, n) {
347
370
  return e == null ? e : {
348
371
  value: e.value == null ? void 0 : e.value,
349
372
  navigation: e.navigation == null ? void 0 : e.navigation,
@@ -351,9 +374,9 @@ function oe(e, n) {
351
374
  };
352
375
  }
353
376
  function m(e) {
354
- return re(e);
377
+ return ue(e);
355
378
  }
356
- function re(e, n) {
379
+ function ue(e, n) {
357
380
  return e == null ? e : {
358
381
  id: e.id == null ? void 0 : e.id,
359
382
  title: e.title == null ? void 0 : e.title,
@@ -365,25 +388,26 @@ function re(e, n) {
365
388
  created_at: e.created_at == null ? void 0 : e.created_at,
366
389
  updated_at: e.updated_at == null ? void 0 : e.updated_at,
367
390
  is_visible: e.is_visible == null ? void 0 : e.is_visible,
368
- meta_json: e.meta_json == null ? void 0 : X(e.meta_json),
369
- properties: e.properties == null ? void 0 : y(e.properties, ie),
391
+ meta_json: e.meta_json == null ? void 0 : re(e.meta_json),
392
+ properties: e.properties == null ? void 0 : h(e.properties, le),
370
393
  uid: e.uid == null ? void 0 : e.uid,
371
394
  type: e.type == null ? void 0 : e.type,
372
395
  target: e.target == null ? void 0 : e.target,
373
396
  container: e.container == null ? void 0 : e.container,
374
- breadcrumb: e.breadcrumb == null ? void 0 : e.breadcrumb.map(ne)
397
+ breadcrumb: e.breadcrumb == null ? void 0 : e.breadcrumb.map(k),
398
+ translation: e.translation == null ? void 0 : e.translation.map(T)
375
399
  };
376
400
  }
377
- function ae(e) {
378
- return le(e);
401
+ function ce(e) {
402
+ return de(e);
379
403
  }
380
- function le(e, n) {
404
+ function de(e, n) {
381
405
  return e == null ? e : {
382
406
  version: e.version == null ? void 0 : e.version,
383
407
  updated_at: e.updated_at == null ? void 0 : e.updated_at
384
408
  };
385
409
  }
386
- class se extends d {
410
+ class fe extends d {
387
411
  /**
388
412
  * 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.
389
413
  * Get Config
@@ -399,7 +423,7 @@ class se extends d {
399
423
  headers: r,
400
424
  query: i
401
425
  }, t);
402
- return new c(o, (a) => H(a));
426
+ return new c(o, (a) => J(a));
403
427
  }
404
428
  /**
405
429
  * 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 +433,7 @@ class se extends d {
409
433
  return await (await this.configRaw(n, t)).value();
410
434
  }
411
435
  }
412
- class ue extends d {
436
+ class pe extends d {
413
437
  /**
414
438
  * The endpoint allows for the retrieval of entities based on their slug, with an optional Entity-Type-ID for more accurate results. The endpoint requires a `slug` parameter to be passed in the path, which is necessary for identifying the entity. However, since slugs are not unique across different entities, it is highly recommended to also provide the `typeId` parameter through the query to avoid incorrect or unintended results. This `typeId` serves as an Entity-Definition-Schema ID, ensuring a more precise and targeted entity retrieval by distinguishing the entities more clearly. The `slug` parameter is mandatory and should be a string (e.g., \'hello-world\'), while the `typeId` parameter is optional and should be an integer (e.g., 123), representing the Entity-Definition-Schema ID.
415
439
  * Find entity by slug and optional Entity-Type-ID
@@ -421,7 +445,7 @@ class ue extends d {
421
445
  'Required parameter "slug" was null or undefined when calling entityBySlug().'
422
446
  );
423
447
  const i = {};
424
- n.lang != null && (i.lang = n.lang), n.typeId != null && (i.typeId = n.typeId);
448
+ n.typeId != null && (i.typeId = n.typeId), n.lang != null && (i.lang = n.lang);
425
449
  const r = {};
426
450
  this.configuration && this.configuration.apiKey && (i.token = await this.configuration.apiKey("token"));
427
451
  const o = await this.request({
@@ -469,7 +493,7 @@ class ue extends d {
469
493
  return await (await this.entityByUniqueidRaw(n, t)).value();
470
494
  }
471
495
  }
472
- class ce extends d {
496
+ class ge extends d {
473
497
  /**
474
498
  * 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.
475
499
  * Get Home
@@ -500,7 +524,7 @@ class ce extends d {
500
524
  */
501
525
  async pageRaw(n, t) {
502
526
  const i = {};
503
- n.lang != null && (i.lang = n.lang), n.slug != null && (i.slug = n.slug);
527
+ n.slug != null && (i.slug = n.slug), n.lang != null && (i.lang = n.lang);
504
528
  const r = {};
505
529
  this.configuration && this.configuration.apiKey && (i.token = await this.configuration.apiKey("token"));
506
530
  const o = await this.request({
@@ -519,7 +543,7 @@ class ce extends d {
519
543
  return await (await this.pageRaw(n, t)).value();
520
544
  }
521
545
  }
522
- class de extends d {
546
+ class he extends d {
523
547
  /**
524
548
  * 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.
525
549
  * Get Search by query
@@ -531,7 +555,7 @@ class de extends d {
531
555
  'Required parameter "query" was null or undefined when calling search().'
532
556
  );
533
557
  const i = {};
534
- n.lang != null && (i.lang = n.lang), n.query != null && (i.query = n.query);
558
+ n.query != null && (i.query = n.query), n.lang != null && (i.lang = n.lang);
535
559
  const r = {};
536
560
  this.configuration && this.configuration.apiKey && (i.token = await this.configuration.apiKey("token"));
537
561
  const o = await this.request({
@@ -540,7 +564,7 @@ class de extends d {
540
564
  headers: r,
541
565
  query: i
542
566
  }, t);
543
- return new c(o, (a) => a.map(k));
567
+ return new c(o, (a) => a.map(x));
544
568
  }
545
569
  /**
546
570
  * 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.
@@ -550,7 +574,7 @@ class de extends d {
550
574
  return await (await this.searchRaw(n, t)).value();
551
575
  }
552
576
  }
553
- class fe extends d {
577
+ class ye extends d {
554
578
  /**
555
579
  * 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.
556
580
  * Get Sitemap
@@ -566,7 +590,7 @@ class fe extends d {
566
590
  headers: r,
567
591
  query: i
568
592
  }, t);
569
- return new c(o, (a) => a.map(k));
593
+ return new c(o, (a) => a.map(x));
570
594
  }
571
595
  /**
572
596
  * 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.
@@ -576,7 +600,7 @@ class fe extends d {
576
600
  return await (await this.sitemapRaw(n, t)).value();
577
601
  }
578
602
  }
579
- class pe extends d {
603
+ class ve extends d {
580
604
  /**
581
605
  * 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.
582
606
  * Get Version Information
@@ -592,7 +616,7 @@ class pe extends d {
592
616
  headers: r,
593
617
  query: i
594
618
  }, t);
595
- return new c(o, (a) => ae(a));
619
+ return new c(o, (a) => ce(a));
596
620
  }
597
621
  /**
598
622
  * 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.
@@ -602,15 +626,15 @@ class pe extends d {
602
626
  return await (await this.versionRaw(n, t)).value();
603
627
  }
604
628
  }
605
- const ge = /[\p{Lu}]/u, ye = /[\p{Ll}]/u, w = /^[\p{Lu}](?![\p{Lu}])/gu, T = /([\p{Alpha}\p{N}_]|$)/u, h = /[_.\- ]+/, he = new RegExp("^" + h.source), _ = new RegExp(h.source + T.source, "gu"), b = new RegExp("\\d+" + T.source, "gu"), ve = (e, n, t, i) => {
629
+ const me = /[\p{Lu}]/u, we = /[\p{Ll}]/u, w = /^[\p{Lu}](?![\p{Lu}])/gu, S = /([\p{Alpha}\p{N}_]|$)/u, y = /[_.\- ]+/, _e = new RegExp("^" + y.source), _ = new RegExp(y.source + S.source, "gu"), b = new RegExp("\\d+" + S.source, "gu"), be = (e, n, t, i) => {
606
630
  let r = !1, o = !1, a = !1, l = !1;
607
631
  for (let s = 0; s < e.length; s++) {
608
632
  const u = e[s];
609
- l = s > 2 ? e[s - 3] === "-" : !0, r && ge.test(u) ? (e = e.slice(0, s) + "-" + e.slice(s), r = !1, a = o, o = !0, s++) : o && a && ye.test(u) && (!l || i) ? (e = e.slice(0, s - 1) + "-" + e.slice(s - 1), a = o, o = !1, r = !0) : (r = n(u) === u && t(u) !== u, a = o, o = t(u) === u && n(u) !== u);
633
+ l = s > 2 ? e[s - 3] === "-" : !0, r && me.test(u) ? (e = e.slice(0, s) + "-" + e.slice(s), r = !1, a = o, o = !0, s++) : o && a && we.test(u) && (!l || i) ? (e = e.slice(0, s - 1) + "-" + e.slice(s - 1), a = o, o = !1, r = !0) : (r = n(u) === u && t(u) !== u, a = o, o = t(u) === u && n(u) !== u);
610
634
  }
611
635
  return e;
612
- }, me = (e, n) => (w.lastIndex = 0, e.replace(w, (t) => n(t))), we = (e, n) => (_.lastIndex = 0, b.lastIndex = 0, e.replace(_, (t, i) => n(i)).replace(b, (t) => n(t)));
613
- function _e(e, n) {
636
+ }, Ce = (e, n) => (w.lastIndex = 0, e.replaceAll(w, (t) => n(t))), Ee = (e, n) => (_.lastIndex = 0, b.lastIndex = 0, e.replaceAll(b, (t, i, r) => ["_", "-"].includes(e.charAt(r + t.length)) ? t : n(t)).replaceAll(_, (t, i) => n(i)));
637
+ function qe(e, n) {
614
638
  if (!(typeof e == "string" || Array.isArray(e)))
615
639
  throw new TypeError("Expected the input to be `string | string[]`");
616
640
  if (n = {
@@ -620,9 +644,9 @@ function _e(e, n) {
620
644
  }, Array.isArray(e) ? e = e.map((o) => o.trim()).filter((o) => o.length).join("-") : e = e.trim(), e.length === 0)
621
645
  return "";
622
646
  const t = n.locale === !1 ? (o) => o.toLowerCase() : (o) => o.toLocaleLowerCase(n.locale), i = n.locale === !1 ? (o) => o.toUpperCase() : (o) => o.toLocaleUpperCase(n.locale);
623
- return e.length === 1 ? h.test(e) ? "" : n.pascalCase ? i(e) : t(e) : (e !== t(e) && (e = ve(e, t, i, n.preserveConsecutiveUppercase)), e = e.replace(he, ""), e = n.preserveConsecutiveUppercase ? me(e, t) : t(e), n.pascalCase && (e = i(e.charAt(0)) + e.slice(1)), we(e, i));
647
+ return e.length === 1 ? y.test(e) ? "" : n.pascalCase ? i(e) : t(e) : (e !== t(e) && (e = be(e, t, i, n.preserveConsecutiveUppercase)), e = e.replace(_e, ""), e = n.preserveConsecutiveUppercase ? Ce(e, t) : t(e), n.pascalCase && (e = i(e.charAt(0)) + e.slice(1)), Ee(e, i));
624
648
  }
625
- function be(e, n, t) {
649
+ function Re(e, n, t) {
626
650
  const i = "virtual:flyo-components", r = "\0" + i;
627
651
  return {
628
652
  name: "vite-plugin-flyo-components",
@@ -640,7 +664,7 @@ function be(e, n, t) {
640
664
  "/" + e + "/" + u + ".astro"
641
665
  );
642
666
  p && a.push(
643
- `export { default as ${_e(s)} } from "${p.id}"`
667
+ `export { default as ${qe(s)} } from "${p.id}"`
644
668
  );
645
669
  }
646
670
  let l = null;
@@ -655,41 +679,41 @@ function be(e, n, t) {
655
679
  }
656
680
  };
657
681
  }
658
- function Ce() {
682
+ function Ae() {
659
683
  return globalThis.flyoNitroInstance || console.error(
660
684
  "The Flyo Typescript Configuration has not been initialized correctly"
661
685
  ), globalThis.flyoNitroInstance;
662
686
  }
663
687
  function f() {
664
- return Ce().config;
688
+ return Ae().config;
665
689
  }
666
- async function qe(e) {
690
+ async function Ie(e) {
667
691
  return await e.locals.config;
668
692
  }
669
- function Re() {
670
- return new se(f());
671
- }
672
- function Ae() {
673
- return new ue(f());
674
- }
675
- function Ie() {
676
- return new ce(f());
677
- }
678
- function ke() {
679
- return new de(f());
680
- }
681
693
  function Te() {
682
694
  return new fe(f());
683
695
  }
684
696
  function xe() {
685
697
  return new pe(f());
686
698
  }
687
- function Se(e) {
699
+ function Se() {
700
+ return new ge(f());
701
+ }
702
+ function Ue() {
703
+ return new he(f());
704
+ }
705
+ function Le() {
706
+ return new ye(f());
707
+ }
708
+ function je() {
709
+ return new ve(f());
710
+ }
711
+ function Fe(e) {
688
712
  return {
689
713
  "data-flyo-block-uid": e.uid
690
714
  };
691
715
  }
692
- const Ee = `
716
+ const ke = `
693
717
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 163.4 88.5">
694
718
  <style type="text/css">
695
719
  .st8{fill:#FFFFFF;}
@@ -721,7 +745,7 @@ const Ee = `
721
745
  </g>
722
746
  </svg>
723
747
  `;
724
- function Ue(e) {
748
+ function Pe(e) {
725
749
  const n = {
726
750
  accessToken: !1,
727
751
  liveEdit: !1,
@@ -747,7 +771,7 @@ function Ue(e) {
747
771
  id: "flyo-nitro",
748
772
  name: "Flyo Nitro",
749
773
  //icon: 'lightbulb',
750
- icon: Ee,
774
+ icon: ke,
751
775
  //icon: '<svg width="200" height="200" viewBox="0 0 200 200" xmlns="http://www.w3.org/2000/svg"><ellipse cx="100" cy="60" rx="90" ry="50" fill="#F4A460" /><circle cx="70" cy="45" r="5" fill="white" /><circle cx="90" cy="30" r="5" fill="white" /><circle cx="110" cy="45" r="5" fill="white" /><circle cx="130" cy="30" r="5" fill="white" /><circle cx="150" cy="45" r="5" fill="white" /><path d="M30 90 Q60 75, 90 90 T150 90 Q160 80, 180 90" fill="#228B22" /><rect x="30" y="90" width="140" height="15" fill="#FF6347" /><rect x="30" y="105" width="140" height="15" fill="#FFD700" /><rect x="30" y="120" width="140" height="25" fill="#8B4513" /><ellipse cx="100" cy="160" rx="90" ry="30" fill="#F4A460" /></svg>',
752
776
  entrypoint: "@flyo/nitro-astro/toolbar.ts"
753
777
  }), r({
@@ -764,7 +788,7 @@ function Ue(e) {
764
788
  },
765
789
  vite: {
766
790
  plugins: [
767
- be(
791
+ Re(
768
792
  e.componentsDir,
769
793
  e.components || {},
770
794
  e.fallbackComponent
@@ -830,15 +854,15 @@ function Ue(e) {
830
854
  };
831
855
  }
832
856
  export {
833
- Ue as default,
834
- Se as editableBlock,
835
- qe as useConfig,
836
- Re as useConfigApi,
857
+ Pe as default,
858
+ Fe as editableBlock,
859
+ Ie as useConfig,
860
+ Te as useConfigApi,
837
861
  f as useConfiguration,
838
- Ae as useEntitiesApi,
839
- Ce as useFlyoIntegration,
840
- Ie as usePagesApi,
841
- ke as useSearchApi,
842
- Te as useSitemapApi,
843
- xe as useVersionApi
862
+ xe as useEntitiesApi,
863
+ Ae as useFlyoIntegration,
864
+ Se as usePagesApi,
865
+ Ue as useSearchApi,
866
+ Le as useSitemapApi,
867
+ je as useVersionApi
844
868
  };
package/package.json CHANGED
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "name": "@flyo/nitro-astro",
3
- "version": "2.0.6",
3
+ "version": "2.0.8",
4
4
  "description": "Connecting Flyo Headless Content Hub into your Astro project.",
5
+ "homepage": "https://dev.flyo.cloud/nitro",
5
6
  "keywords": [
6
- "withastro"
7
+ "withastro",
8
+ "astro-adapter"
7
9
  ],
8
10
  "main": "./dist/nitro-astro.js",
9
11
  "module": "./dist/nitro-astro.mjs",
@@ -12,13 +14,13 @@
12
14
  "build": "vite build"
13
15
  },
14
16
  "dependencies": {
15
- "@flyo/nitro-typescript": "^1.0.9"
17
+ "@flyo/nitro-typescript": "^1.1.0"
16
18
  },
17
19
  "devDependencies": {
18
- "astro": "^4.11.4",
19
- "typescript": "5.5.3",
20
- "@types/node": "20.14.9",
21
- "vite": "^5.3.3",
20
+ "astro": "^4.16.7",
21
+ "typescript": "5.6.3",
22
+ "@types/node": "20.17.0",
23
+ "vite": "^5.4.10",
22
24
  "vite-plugin-dts": "^3.9.1"
23
25
  },
24
26
  "exports": {