@storyblok/nuxt 8.0.1 → 8.0.4

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,448 +1,79 @@
1
1
  <div align="center">
2
- <a href="https://www.storyblok.com?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt" align="center">
3
- <img src="https://a.storyblok.com/f/88751/1776x360/b8979e5c96/sb-nuxt.png" alt="Storyblok Logo">
4
- </a>
5
- <h1 align="center">@storyblok/nuxt</h1>
6
- <p align="center">Nuxt 3 module for the <a href="http://www.storyblok.com?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt" target="_blank">Storyblok</a>, Headless CMS.</p> <br />
2
+
3
+ ![Storyblok ImagoType](https://raw.githubusercontent.com/storyblok/.github/refs/heads/main/profile/public/github-banner.png)
4
+
5
+ <h1 align="center">@storyblok/nuxt</h1>
6
+ <p>
7
+ The Nuxt 3 module to interact with <a href="http://www.storyblok.com?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt" target="_blank">Storyblok API</a> and enable the <a href="https://www.storyblok.com/docs/guide/essentials/visual-editor?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt" target="_blank">Real-time Visual Editing Experience</a>.
8
+ </p>
9
+ <br />
7
10
  </div>
8
11
 
9
12
  <p align="center">
10
13
  <a href="https://npmjs.com/package/@storyblok/nuxt">
11
- <img src="https://img.shields.io/npm/v/@storyblok/nuxt/latest.svg?style=flat-square" alt="Storyblok JS Client" />
14
+ <img src="https://img.shields.io/npm/v/@storyblok/nuxt/latest.svg?style=flat-square&color=8d60ff" alt="Storyblok Nuxt Module" />
12
15
  </a>
13
16
  <a href="https://npmjs.com/package/@storyblok/nuxt" rel="nofollow">
14
- <img src="https://img.shields.io/npm/dt/@storyblok/nuxt.svg?style=flat-square" alt="npm">
17
+ <img src="https://img.shields.io/npm/dt/@storyblok/nuxt.svg?style=appveyor&color=8d60ff" alt="npm">
15
18
  </a>
16
- </p>
17
-
18
- <p align="center">
19
19
  <a href="https://storyblok.com/join-discord">
20
20
  <img src="https://img.shields.io/discord/700316478792138842?label=Join%20Our%20Discord%20Community&style=appveyor&logo=discord&color=8d60ff">
21
21
  </a>
22
22
  <a href="https://twitter.com/intent/follow?screen_name=storyblok">
23
23
  <img src="https://img.shields.io/badge/Follow-%40storyblok-8d60ff?style=appveyor&logo=twitter" alt="Follow @Storyblok" />
24
- </a><br />
25
- <a href="https://app.storyblok.com/#!/signup?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt">
24
+ </a><br/>
25
+ <a href="https://app.storyblok.com/#!/signup?utm_source=github.com&utm_medium=readme&utm_campaign=@storyblok/nuxt">
26
26
  <img src="https://img.shields.io/badge/Try%20Storyblok-Free-8d60ff?style=appveyor&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAYAAAA7MK6iAAAABGdBTUEAALGPC/xhBQAAADhlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAAqACAAQAAAABAAAAHqADAAQAAAABAAAAHgAAAADpiRU/AAACRElEQVRIDWNgGGmAEd3D3Js3LPrP8D8WXZwSPiMjw6qvPoHhyGYwIXNAbGpbCjbzP0MYuj0YFqMroBV/wCxmIeSju64eDNzMBJUxvP/9i2Hnq5cM1devMnz984eQsQwETeRhYWHgIcJiXqC6VHlFBjUeXgav40cIWkz1oLYXFmGwFBImaDFBHyObcOzdW4aSq5eRhRiE2dgYlpuYoYSKJi8vw3GgWnyAJIs/AuPu4scPGObd/fqVQZ+PHy7+6udPOBsXgySLDfn5GRYYmaKYJcXBgWLpsx8/GPa8foWiBhuHJIsl2DkYQqWksZkDFgP5PObcKYYff//iVAOTIDlx/QPqRMb/YSYBaWlOToZIaVkGZmAZSQiQ5OPtwHwacuo4iplMQEu6tXUZMhSUGDiYmBjylFQYvv/7x9B04xqKOnQOyT5GN+Df//8M59ASXKyMHLoyDD5JPtbj42OYrm+EYgg70JfuYuIoYmLs7AwMjIzA+uY/zjAnyWJpDk6GOFnCvrn86SOwmsNtKciVFAc1ileBHFDC67lzG10Yg0+SjzF0ownsf/OaofvOLYaDQJoQIGix94ljv1gIZI8Pv38zPvj2lQWYf3HGKbpDCFp85v07NnRN1OBTPY6JdRSGxcCw2k6sZuLVMZ5AV4s1TozPnGGFKbz+/PE7IJsHmC//MDMyhXBw8e6FyRFLv3Z0/IKuFqvFyIqAzd1PwBzJw8jAGPfVx38JshwlbIygxmYY43/GQmpais0ODDHuzevLMARHBcgIAQAbOJHZW0/EyQAAAABJRU5ErkJggg==" alt="Follow @Storyblok" />
27
27
  </a>
28
28
  </p>
29
29
 
30
- ## Kickstart a new project
31
- Are you eager to dive into coding? **[Follow these steps to kickstart a new project with Storyblok and Nuxt](https://www.storyblok.com/technologies?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt#nuxt)**, and get started in just a few minutes!
32
-
33
- ## Ultimate Tutorial
34
- Are you looking for a hands-on, step-by-step tutorial? The **[Nuxt Ultimate Tutorial](https://www.storyblok.com/tp/storyblok-nuxt-ultimate-tutorial?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)** has you covered! It provides comprehensive instructions on building a complete, multilingual website using Storyblok and Nuxt from start to finish.
35
-
36
- ## Installation
37
-
38
- Install `@storyblok/nuxt`:
39
-
40
- ```bash
41
- npx nuxi@latest module add storyblok
42
- ```
43
-
44
- Add following code to modules section of `nuxt.config.js` and replace the accessToken with API token from Storyblok space.
45
-
46
- ```js
47
- import { defineNuxtConfig } from 'nuxt';
48
-
49
- export default defineNuxtConfig({
50
- modules: [
51
- ['@storyblok/nuxt', { accessToken: '<your-access-token>' }]
52
- // ...
53
- ]
54
- });
55
- ```
56
-
57
- You can also use the `storyblok` config if you prefer:
58
-
59
- ```js
60
- import { defineNuxtConfig } from 'nuxt';
61
-
62
- export default defineNuxtConfig({
63
- modules: ['@storyblok/nuxt'],
64
- storyblok: {
65
- accessToken: '<your-access-token>'
66
- }
67
- });
68
- ```
69
-
70
- > **Warning**
71
- > This SDK uses the Fetch API under the hood. If your environment doesn't support it, you need to install a polyfill like [isomorphic-fetch](https://github.com/matthew-andrews/isomorphic-fetch). More info on [storyblok-js-client docs](https://github.com/storyblok/storyblok-js-client#fetch-use-polyfill-if-needed---version-5).
72
-
73
- ### Options
74
-
75
- When you initialize the module, you can pass all [_@storyblok/vue_ options](https://github.com/storyblok/storyblok-vue#storyblok-api) plus a `bridge` option explained in our [JS SDK Storyblok bridge section](https://github.com/storyblok/storyblok-js#storyblok-bridge) and a `enableSudoMode` option to define your own plugin (see below).
76
-
77
- > **Note**
78
- > If you want to use Storyblok inside `nuxt-devtools` you can use the option `devtools`, if enabled, make sure to have installed the @nuxt/devtools module and enable it on your nuxt config.
79
-
80
- ```js
81
- // Defaults
82
- ["@storyblok/nuxt", {
83
- {
84
- accessToken: "<your-access-token>",
85
- bridge: true,
86
- devtools: true,
87
- apiOptions: {}, // storyblok-js-client options
88
- }
89
- }]
90
- ```
91
-
92
- ### Define your own plugin
93
-
94
- While the recommended approach covers most cases, there are specific instances where you may need to use the `enableSudoMode` option and disable our plugin, allowing you to incorporate your own.
95
-
96
- ```js
97
- // nuxt.config.ts
98
- modules: [
99
- [
100
- '@storyblok/nuxt',
101
- {
102
- accessToken: '<your-access-token>',
103
- enableSudoMode: true
104
- }
105
- ]
106
- ];
107
- ```
108
-
109
- To include additional functionalities in the SDK's `apiOptions`, such as custom cache methods, you can implement the following solution inside the plugins folder (autoimported):
110
-
111
- ```js
112
- // plugins/storyblok.js
113
- import { apiPlugin, StoryblokVue } from '@storyblok/vue';
114
-
115
- export default defineNuxtPlugin(({ vueApp }) => {
116
- vueApp.use(StoryblokVue, {
117
- accessToken: '<your-access-token>',
118
- apiOptions: {
119
- cache: {
120
- type: 'custom',
121
- custom: {
122
- flush() {
123
- console.log('all right');
124
- }
125
- }
126
- }
127
- },
128
- use: [apiPlugin]
129
- });
130
- });
131
- ```
132
-
133
- ## Region parameter
134
-
135
- Possible values:
136
-
137
- - `eu` (default): For spaces created in the EU
138
- - `us`: For spaces created in the US
139
- - `ap`: For spaces created in Australia
140
- - `ca`: For spaces created in Canada
141
- - `cn`: For spaces created in China
142
-
143
- Full example for a space created in the US:
144
-
145
- ```js
146
- ["@storyblok/nuxt", {
147
- {
148
- accessToken: "<your-access-token>",
149
- apiOptions: {
150
- region: "us"
151
- }
152
- }
153
- }]
154
- ```
155
-
156
- > **Important**
157
- > For spaces created in the United States or China, the `region` parameter **must** be specified.
158
-
159
- ## Getting started
160
-
161
- ### 1. Creating and linking your components to the Storyblok Visual Editor
162
-
163
- To link your Vue components to the equivalent one in your Storyblok space:
164
-
165
- - First, you need to load them globally adding them to the `~/storyblok` directory. It's important to name them with Pascal case in your code `ExampleComponent.vue` and with a hyphen inside your Storyblok space `example-component`, so they will be imported automatically.
166
-
167
- If you want to define your own directory for the Storyblok related components, you can use the option `componentsDir` in the `nuxt.config.js`:
168
-
169
- ```js
170
- // nuxt.config.ts
171
- modules: [
172
- [
173
- "@storyblok/nuxt",
174
- {
175
- accessToken: "<your-access-token>",
176
- componentsDir: '~/components',
177
- }
178
- ]
179
- ],
180
- components: {
181
- dirs: [
182
- {
183
- path: '~/components/storyblok',
184
- global: true,
185
- }
186
- ]
187
- },
188
- ```
189
-
190
- Otherwise, you can set another directory and load them manually (for example, by [using a Nuxt plugin](https://stackoverflow.com/questions/43040692/global-components-in-vue-nuxt)).
191
-
192
- > **Warning**
193
- > Take into account that if you name a component inside the `storyblok` folder the same as another in the `components` folder, it won't work properly. Tip: Keep the components in your Nuxt project with different names.
194
-
195
- - For each component, use the `v-editable` directive on its root element, passing the `blok` property that they receive:
196
-
197
- ```html
198
- <div v-editable="blok"></div>
199
- ```
200
-
201
- - Finally, use `<StoryblokComponent>` which is available globally in the Nuxt app:
202
-
203
- ```html
204
- <StoryblokComponent :blok="blok" />
205
- ```
206
-
207
- > The `blok` is the actual blok data coming from [Storblok's Content Delivery API](https://www.storyblok.com/docs/api/content-delivery/v2?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt).
208
-
209
- ### 2. Getting Storyblok Stories and listen to Visual Editor events
30
+ ## Features
210
31
 
211
- #### Composition API
32
+ - Fetch content from the Content Delivery API
33
+ - Connect frontend components with the Visual Editor via StoryblokBridge
34
+ - Render rich text content with the Storyblok Rich Text Renderer based on `@storyblok/richtext`
35
+ - Nuxt 3 module with automatic setup and configuration
36
+ - Auto-imported composables: `useAsyncStoryblok`, `useStoryblok`, `useStoryblokApi`, `useStoryblokBridge`
37
+ - Auto-imported components: `StoryblokComponent`, `StoryblokRichText`
38
+ - Auto-imported utilities: `renderRichText`, `useStoryblokRichText`
39
+ - Built-in TypeScript support with auto-generated types
40
+ - SSR/SSG compatibility with proper hydration
41
+ - DevTools integration for Storyblok management
212
42
 
213
- The simplest way is by using the `useAsyncStoryblok` one-liner composable (it's autoimported). Where you need to pass as first parameter the `slug`, while the second and third parameters, `apiOptions` and `bridgeOptions` respectively, are optional.
43
+ ## Documentation
214
44
 
215
- Check the available [apiOptions](https://www.storyblok.com/docs/api/content-delivery/v2/stories/retrieve-a-single-story?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) in our API docs and [bridgeOptions](https://www.storyblok.com/docs/Guides/storyblok-latest-js?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) passed to the Storyblok Bridge.
45
+ For complete documentation, please visit [package reference](https://www.storyblok.com/docs/packages/storyblok-nuxt)
216
46
 
217
- > **Note**
218
- > If you want to know more about versioning `{ version: "draft" /* or "publish" */ }` then go to the section [Working with preview and/or production environments](#3-working-with-preview-andor-production-environments)
219
-
220
- ```html
221
- <script setup>
222
- const story = await useAsyncStoryblok(
223
- "vue",
224
- { version: "draft", resolve_relations: "Article.author" }, // API Options
225
- { resolveRelations: ["Article.author"], resolveLinks: "url" } // Bridge Options
226
- );
227
-
228
- if (story.value.status) {
229
- throw createError({
230
- statusCode: story.value.status,
231
- statusMessage: story.value.response
232
- });
233
- }
234
- </script>
235
-
236
- <template>
237
- <StoryblokComponent v-if="story" :blok="story.content" />
238
- </template>
239
- ```
240
-
241
- Which is the short-hand equivalent to using `useStoryblokApi` inside `useState` and `useStoryblokBridge` functions separately:
242
-
243
- ```html
244
- <script setup>
245
- const story = useState();
246
- const storyblokApi = useStoryblokApi();
247
-
248
- const { data } = await storyblokApi.get(
249
- `cdn/stories/vue`,
250
- {
251
- version: "draft"
252
- }
253
- );
254
- story.value = data.story;
255
-
256
- onMounted(() => {
257
- useStoryblokBridge(
258
- story.value.id,
259
- (evStory) => (story.value = evStory),
260
- { resolveRelations: ["Article.author"], resolveLinks: "url" } // Bridge Options
261
- );
262
- });
263
- </script>
264
-
265
- <template>
266
- <StoryblokComponent v-if="story" :blok="story.content" />
267
- </template>
268
- ```
269
-
270
- > The `useState` is an SSR-friendly `ref` replacement. Its value will be preserved after server-side rendering (during client-side hydration).
271
-
272
- ## Rendering Rich Text
273
-
274
- You can render rich text fields by using the `StoryblokRichText` component:
275
-
276
- ```html
277
- <template>
278
- <StoryblokRichText :doc="blok.articleContent" />
279
- </template>
280
- ```
281
-
282
- Or you can have more control by using the `useStoryblokRichText` composable:
283
-
284
- ```html
285
- <script setup>
286
- const { render } = useStoryblokRichText({
287
- // options like resolvers
288
- })
289
-
290
- const root = () => render(blok.articleContent);
291
- </script>
292
-
293
- <template>
294
- <root />
295
- </template>
296
- ```
297
-
298
- For more incredible options you can pass to the `useStoryblokRichText`, please consult the [Full options](https://github.com/storyblok/richtext?tab=readme-ov-file#options) documentation.
299
-
300
-
301
- #### Overriding the default resolvers
302
-
303
- You can override the default resolvers by passing a `resolver` prop to the `StoryblokRichText` component, for example, to use vue-router links or add a custom codeblok component: :
304
-
305
- ```html
306
- <script setup>
307
- import { NuxtLink } from '#components';
308
- import type { StoryblokRichTextNode } from '@storyblok/vue';
309
- import CodeBlok from "./components/CodeBlok.vue";
310
-
311
- const resolvers = {
312
- // NuxtLink example:
313
- [MarkTypes.LINK]: (node: StoryblokRichTextNode<VNode>) =>
314
- h(NuxtLink, {
315
- to: node.attrs?.href,
316
- target: node.attrs?.target,
317
- }, node.text),
318
- // Custom code block component example:
319
- [BlockTypes.CODE_BLOCK]: (node: Node) => {
320
- return h(CodeBlock, {
321
- class: node?.attrs?.class,
322
- }, node.children)
323
- },
324
- }
325
- </script>
326
-
327
- <template>
328
- <StoryblokRichText :doc="blok.articleContent" :resolvers="resolvers" />
329
- </template>
330
- ```
331
-
332
- If you want to use the `useStoryblokRichText` composable, you can pass the `resolvers` via the options object:
333
-
334
- ```html
335
- <script setup>
336
- import CodeBlok from "./components/CodeBlok.vue";
337
-
338
- const { render } = useStoryblokRichText({
339
- resolvers: {
340
- // NuxtLink example:
341
- [MarkTypes.LINK]: (node: StoryblokRichTextNode<VNode>) =>
342
- h(NuxtLink, {
343
- to: node.attrs?.href,
344
- target: node.attrs?.target,
345
- }, node.text),
346
- // Custom code block component example:
347
- [BlockTypes.CODE_BLOCK]: (node: Node) =>
348
- h(CodeBlock, {
349
- class: node?.attrs?.class,
350
- }, node.children)
351
- }
352
- });
353
-
354
- const root = () => render(blok.articleContent);
355
- </script>
356
- ```
357
-
358
- ## 3. Working with preview and/or production environments
359
-
360
- Remember that the bridge only works using `version: 'draft'` and the _Preview Access Token_.
361
-
362
- For the production site, NOT used as a preview for content editors, `version: 'published'` and _Public Access Token_ should be used.
363
-
364
- > **Note**
365
- > If you're using production as a preview for marketeers and your public site, you will need a plugin to handle different .env variables, or versions using the _Preview Access Token_, checking if you are inside Storyblok or not. For example, something like `if (window.location.search.includes(_storyblok_tk[token]=<YOUR_TOKEN>)`.
366
-
367
- Check the official docs on how to [access different content versions](https://www.storyblok.com/docs/guide/essentials/accessing-data#content-versions).
368
-
369
- The recommended way to handle different content versions with Nuxt is by using environment variables in combination with [Nuxt runtime config](https://nuxt.com/docs/guide/going-further/runtime-config) to expose configuration and secrets within your application
370
-
371
- In your `nuxt.config.ts`:
372
-
373
- ```ts
374
- export default defineNuxtConfig({
375
- runtimeConfig: {
376
- public: {
377
- storyblokVersion: process.env.STORYBLOK_VERSION || 'published'
378
- }
379
- }
380
- });
381
- ```
382
-
383
- Then you can access the runtime config in your components:
384
-
385
- ```ts
386
- const config = useRuntimeConfig();
387
-
388
- const story = await useAsyncStoryblok(
389
- 'blog',
390
- {
391
- version: config.public.storyblokVersion,
392
- resolve_relations: 'overview.featured_story'
393
- },
394
- { resolveRelations: 'overview.featured_story' }
395
- );
396
-
397
- // or
398
-
399
- const { data: articles } = await storyblokApi.get('cdn/stories', {
400
- version: config.public.storyblokVersion,
401
- starts_with: 'blog',
402
- is_startpage: false
403
- });
404
- ```
405
-
406
- ## API
407
-
408
- ### useAsyncStoryblok(slug, apiOptions, bridgeOptions)
47
+ ## Contributing
409
48
 
410
- (Recommended Option) Uses [`useState`](https://v3.nuxtjs.org/api/composables/use-state) under the hood to help with SSR compatibility.
49
+ If you'd like to contribute, please refer to the [contributing guidelines](CONTRIBUTING.md).
411
50
 
412
- Check the available [apiOptions](https://www.storyblok.com/docs/api/content-delivery/v2/stories/retrieve-a-single-story?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) (passed to `storyblok-js-client`) and [bridgeOptions](https://www.storyblok.com/docs/Guides/storyblok-latest-js?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) (passed to the Storyblok Bridge).
51
+ ## Community
413
52
 
414
- ### useStoryblok(slug, apiOptions, bridgeOptions)
53
+ For help, discussion about best practices, or any other conversation that would benefit from being searchable:
415
54
 
416
- It could be helpful to use `useStoryblok` instead of `useAsyncStoryblok` when we need to make full client-side requests, for example, getting personalized data for a logged user.
55
+ - [Discuss Storyblok on Github Discussions](https://github.com/storyblok/monoblok/discussions)
417
56
 
418
- Check the available [apiOptions](https://www.storyblok.com/docs/api/content-delivery/v2/stories/retrieve-a-single-story?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) (passed to `storyblok-js-client`) and [bridgeOptions](https://www.storyblok.com/docs/Guides/storyblok-latest-js?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt) (passed to the Storyblok Bridge).
57
+ For community support, chatting with other users, please visit:
419
58
 
420
- ### useStoryblokApi()
59
+ - [Discuss Storyblok on Discord](https://storyblok.com/join-discord)
421
60
 
422
- Returns the instance of the `storyblok-js-client`.
61
+ ## Support
423
62
 
424
- ### useStoryblokBridge(storyId, callback, bridgeOptions)
63
+ For bugs or feature requests, please [submit an issue](https://github.com/storyblok/monoblok/issues/new/choose).
425
64
 
426
- Use this one-line function to cover the most common use case: updating the story when any kind of change happens on Storyblok Visual Editor.
65
+ > [!IMPORTANT]
66
+ > Please search existing issues before submitting a new one. Issues without a minimal reproducible example will be closed. [Why reproductions are Required](https://antfu.me/posts/why-reproductions-are-required).
427
67
 
428
- ## The Storyblok JavaScript SDK Ecosystem
68
+ ### I can't share my company project code
429
69
 
430
- ![A visual representation of the Storyblok JavaScript SDK Ecosystem](https://a.storyblok.com/f/88751/2400x1350/be4a4a4180/sdk-ecosystem.png/m/1200x0)
70
+ We understand that you might not be able to share your company's project code. Please provide a minimal reproducible example that demonstrates the issue by using tools like [Stackblitz](https://stackblitz.com) or a link to a Github Repo lease make sure you include a README file with the instructions to build and run the project, important not to include any access token, password or personal information of any kind.
431
71
 
432
- ## Further Resources
72
+ ### Feedback
433
73
 
434
- - [Quick Start](https://www.storyblok.com/technologies?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)
435
- - [API Documentation](https://www.storyblok.com/docs/api?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)
436
- - [Developer Tutorials](https://www.storyblok.com/tutorials?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)
437
- - [Developer Guides](https://www.storyblok.com/docs/guide/introduction?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)
438
- - [FAQs](https://www.storyblok.com/faqs?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt)
74
+ If you have a question, please ask in the [Discuss Storyblok on Discord](https://storyblok.com/join-discord) channel.
439
75
 
440
- ## Support
441
76
 
442
- - Bugs or Feature Requests? [Submit an issue](/../../issues/new);
443
- - Do you have questions about Storyblok or you need help? [Join our Discord Community](https://storyblok.com/join-discord).
444
-
445
- ## Contributing
77
+ ## License
446
78
 
447
- Please see our [contributing guidelines](https://github.com/storyblok/.github/blob/master/contributing.md) and our [code of conduct](https://www.storyblok.com/trust-center?utm_source=github.com&utm_medium=readme&utm_campaign=storyblok-nuxt#code-of-conduct).
448
- This project use [semantic-release](https://semantic-release.gitbook.io/semantic-release/) for generate new versions by using commit messages and we use the Angular Convention to naming the commits. Check [this question](https://semantic-release.gitbook.io/semantic-release/support/faq#how-can-i-change-the-type-of-commits-that-trigger-a-release) about it in semantic-release FAQ.
79
+ [License](/LICENSE)
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@storyblok/nuxt",
3
3
  "configKey": "storyblok",
4
- "version": "8.0.1",
4
+ "version": "8.0.4",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "0.8.4",
7
7
  "unbuild": "unknown"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@storyblok/nuxt",
3
3
  "type": "module",
4
- "version": "8.0.1",
4
+ "version": "8.0.4",
5
5
  "description": "Storyblok Nuxt module",
6
6
  "homepage": "https://github.com/storyblok/monoblok/tree/main/packages/nuxt#readme",
7
7
  "repository": {
@@ -25,7 +25,7 @@
25
25
  "dist"
26
26
  ],
27
27
  "dependencies": {
28
- "@storyblok/vue": "9.2.1"
28
+ "@storyblok/vue": "9.2.4"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@cypress/vite-dev-server": "^6.0.3",
@@ -45,7 +45,7 @@
45
45
  "nuxt": "^3.15.4",
46
46
  "prettier": "^3.4.2",
47
47
  "start-server-and-test": "^2.0.11",
48
- "@storyblok/eslint-config": "0.4.0"
48
+ "@storyblok/eslint-config": "0.4.1"
49
49
  },
50
50
  "release": {
51
51
  "branches": [
@@ -66,6 +66,7 @@
66
66
  },
67
67
  "scripts": {
68
68
  "build": "nuxt-module-build prepare && nuxt-module-build build",
69
+ "test:types": "tsc --noEmit --skipLibCheck",
69
70
  "dev": "nuxi dev playground",
70
71
  "dev:build": "nuxi build playground",
71
72
  "dev:preview": "nuxi preview playground",