svelte-meta-tags 2.7.1 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ <script>
2
+ /** @type {import("./types").JsonLdProps['output']} */
3
+ export let output = 'head';
4
+
5
+ /** @type {import("./types").JsonLdProps['schema']} */
6
+ export let schema = undefined;
7
+
8
+ $: isValid = schema && typeof schema === 'object';
9
+
10
+ /**
11
+ * @param {import("./types").JsonLdProps['schema']} schema
12
+ */
13
+ function createSchema(schema) {
14
+ const addContext = (context) => ({ '@context': 'https://schema.org', ...context });
15
+
16
+ return Array.isArray(schema) ? schema.map((context) => addContext(context)) : addContext(schema);
17
+ }
18
+
19
+ $: json = `${'<scri' + 'pt type="application/ld+json">'}${JSON.stringify(createSchema(schema))}${'</scri' + 'pt>'}`;
20
+ </script>
21
+
22
+ <svelte:head>
23
+ {#if isValid && output === 'head'}
24
+ {@html json}
25
+ {/if}
26
+ </svelte:head>
27
+
28
+ {#if isValid && output === 'body'}
29
+ {@html json}
30
+ {/if}
@@ -0,0 +1,25 @@
1
+ /** @typedef {typeof __propDef.props} JsonLdProps */
2
+ /** @typedef {typeof __propDef.events} JsonLdEvents */
3
+ /** @typedef {typeof __propDef.slots} JsonLdSlots */
4
+ export default class JsonLd extends SvelteComponentTyped<{
5
+ output?: "head" | "body";
6
+ schema?: import("schema-dts").Thing | import("schema-dts").WithContext<import("schema-dts").Thing> | import("schema-dts").Thing[] | import("schema-dts").WithContext<import("schema-dts").Thing>[];
7
+ }, {
8
+ [evt: string]: CustomEvent<any>;
9
+ }, {}> {
10
+ }
11
+ export type JsonLdProps = typeof __propDef.props;
12
+ export type JsonLdEvents = typeof __propDef.events;
13
+ export type JsonLdSlots = typeof __propDef.slots;
14
+ import { SvelteComponentTyped } from "svelte";
15
+ declare const __propDef: {
16
+ props: {
17
+ output?: import("./types").JsonLdProps['output'];
18
+ schema?: import("./types").JsonLdProps['schema'];
19
+ };
20
+ events: {
21
+ [evt: string]: CustomEvent<any>;
22
+ };
23
+ slots: {};
24
+ };
25
+ export {};
@@ -0,0 +1,301 @@
1
+ <script>
2
+ /** @type {import("./types").MetaTagsProps['title']} */
3
+ export let title = '';
4
+
5
+ /** @type {import("./types").MetaTagsProps['titleTemplate']} */
6
+ export let titleTemplate = '';
7
+
8
+ /** @type {import("./types").MetaTagsProps['noindex']} */
9
+ export let noindex = false;
10
+
11
+ /** @type {import("./types").MetaTagsProps['nofollow']} */
12
+ export let nofollow = false;
13
+
14
+ /** @type {import("./types").MetaTagsProps['robotsProps']} */
15
+ export let robotsProps = undefined;
16
+
17
+ /** @type {import("./types").MetaTagsProps['description']} */
18
+ export let description = undefined;
19
+
20
+ /** @type {import("./types").MetaTagsProps['mobileAlternate']} */
21
+ export let mobileAlternate = undefined;
22
+
23
+ /** @type {import("./types").MetaTagsProps['languageAlternates']} */
24
+ export let languageAlternates = undefined;
25
+
26
+ /** @type {import("./types").MetaTagsProps['twitter']} */
27
+ export let twitter = undefined;
28
+
29
+ /** @type {import("./types").MetaTagsProps['facebook']} */
30
+ export let facebook = undefined;
31
+
32
+ /** @type {import("./types").MetaTagsProps['openGraph']} */
33
+ export let openGraph = undefined;
34
+
35
+ /** @type {import("./types").MetaTagsProps['canonical']} */
36
+ export let canonical = undefined;
37
+
38
+ /** @type {import("./types").MetaTagsProps['additionalMetaTags']} */
39
+ export let additionalMetaTags = undefined;
40
+
41
+ /** @type {import("./types").MetaTagsProps['additionalLinkTags']} */
42
+ export let additionalLinkTags = undefined;
43
+
44
+ $: updatedTitle = titleTemplate ? titleTemplate.replace(/%s/g, title) : title;
45
+
46
+ let robotsParams = '';
47
+ if (robotsProps) {
48
+ const {
49
+ nosnippet,
50
+ maxSnippet,
51
+ maxImagePreview,
52
+ maxVideoPreview,
53
+ noarchive,
54
+ noimageindex,
55
+ notranslate,
56
+ unavailableAfter
57
+ } = robotsProps;
58
+
59
+ robotsParams = `${nosnippet ? ',nosnippet' : ''}${maxSnippet ? `,max-snippet:${maxSnippet}` : ''}${
60
+ maxImagePreview ? `,max-image-preview:${maxImagePreview}` : ''
61
+ }${noarchive ? ',noarchive' : ''}${unavailableAfter ? `,unavailable_after:${unavailableAfter}` : ''}${
62
+ noimageindex ? ',noimageindex' : ''
63
+ }${maxVideoPreview ? `,max-video-preview:${maxVideoPreview}` : ''}${notranslate ? ',notranslate' : ''}`;
64
+ }
65
+ </script>
66
+
67
+ <svelte:head>
68
+ <title>{updatedTitle}</title>
69
+
70
+ <meta name="robots" content={`${noindex ? 'noindex' : 'index'},${nofollow ? 'nofollow' : 'follow'}${robotsParams}`} />
71
+ <meta
72
+ name="googlebot"
73
+ content={`${noindex ? 'noindex' : 'index'},${nofollow ? 'nofollow' : 'follow'}${robotsParams}`}
74
+ />
75
+
76
+ {#if description}
77
+ <meta name="description" content={description} />
78
+ {/if}
79
+
80
+ {#if canonical}
81
+ <link rel="canonical" href={canonical} />
82
+ {/if}
83
+
84
+ {#if mobileAlternate}
85
+ <link rel="alternate" media={mobileAlternate.media} href={mobileAlternate.href} />
86
+ {/if}
87
+
88
+ {#if languageAlternates && languageAlternates.length > 0}
89
+ {#each languageAlternates as languageAlternate}
90
+ <link rel="alternate" hrefLang={languageAlternate.hrefLang} href={languageAlternate.href} />
91
+ {/each}
92
+ {/if}
93
+
94
+ {#if twitter}
95
+ {#if twitter.cardType}
96
+ <meta name="twitter:card" content={twitter.cardType} />
97
+ {/if}
98
+ {#if twitter.site}
99
+ <meta name="twitter:site" content={twitter.site} />
100
+ {/if}
101
+ {#if twitter.handle}
102
+ <meta name="twitter:creator" content={twitter.handle} />
103
+ {/if}
104
+ {#if twitter.title}
105
+ <meta name="twitter:title" content={twitter.title} />
106
+ {/if}
107
+ {#if twitter.description}
108
+ <meta name="twitter:description" content={twitter.description} />
109
+ {/if}
110
+ {#if twitter.image}
111
+ <meta name="twitter:image" content={twitter.image} />
112
+ {/if}
113
+ {#if twitter.imageAlt}
114
+ <meta name="twitter:image:alt" content={twitter.imageAlt} />
115
+ {/if}
116
+ {/if}
117
+
118
+ {#if facebook}
119
+ <meta property="fb:app_id" content={facebook.appId} />
120
+ {/if}
121
+
122
+ {#if openGraph}
123
+ {#if openGraph.url || canonical}
124
+ <meta property="og:url" content={openGraph.url || canonical} />
125
+ {/if}
126
+
127
+ {#if openGraph.type}
128
+ <meta property="og:type" content={openGraph.type.toLowerCase()} />
129
+ {#if openGraph.type.toLowerCase() === 'profile' && openGraph.profile}
130
+ {#if openGraph.profile.firstName}
131
+ <meta property="profile:first_name" content={openGraph.profile.firstName} />
132
+ {/if}
133
+
134
+ {#if openGraph.profile.lastName}
135
+ <meta property="profile:last_name" content={openGraph.profile.lastName} />
136
+ {/if}
137
+
138
+ {#if openGraph.profile.username}
139
+ <meta property="profile:username" content={openGraph.profile.username} />
140
+ {/if}
141
+
142
+ {#if openGraph.profile.gender}
143
+ <meta property="profile:gender" content={openGraph.profile.gender} />
144
+ {/if}
145
+ {:else if openGraph.type.toLowerCase() === 'book' && openGraph.book}
146
+ {#if openGraph.book.authors && openGraph.book.authors.length}
147
+ {#each openGraph.book.authors as author}
148
+ <meta property="book:author" content={author} />
149
+ {/each}
150
+ {/if}
151
+
152
+ {#if openGraph.book.isbn}
153
+ <meta property="book:isbn" content={openGraph.book.isbn} />
154
+ {/if}
155
+
156
+ {#if openGraph.book.releaseDate}
157
+ <meta property="book:release_date" content={openGraph.book.releaseDate} />
158
+ {/if}
159
+
160
+ {#if openGraph.book.tags && openGraph.book.tags.length}
161
+ {#each openGraph.book.tags as tag}
162
+ <meta property="book:tag" content={tag} />
163
+ {/each}
164
+ {/if}
165
+ {:else if openGraph.type.toLowerCase() === 'article' && openGraph.article}
166
+ {#if openGraph.article.publishedTime}
167
+ <meta property="article:published_time" content={openGraph.article.publishedTime} />
168
+ {/if}
169
+
170
+ {#if openGraph.article.modifiedTime}
171
+ <meta property="article:modified_time" content={openGraph.article.modifiedTime} />
172
+ {/if}
173
+
174
+ {#if openGraph.article.expirationTime}
175
+ <meta property="article:expiration_time" content={openGraph.article.expirationTime} />
176
+ {/if}
177
+
178
+ {#if openGraph.article.authors && openGraph.article.authors.length}
179
+ {#each openGraph.article.authors as author}
180
+ <meta property="article:author" content={author} />
181
+ {/each}
182
+ {/if}
183
+
184
+ {#if openGraph.article.section}
185
+ <meta property="article:section" content={openGraph.article.section} />
186
+ {/if}
187
+
188
+ {#if openGraph.article.tags && openGraph.article.tags.length}
189
+ {#each openGraph.article.tags as tag}
190
+ <meta property="article:tag" content={tag} />
191
+ {/each}
192
+ {/if}
193
+ {:else if openGraph.type.toLowerCase() === 'video.movie' || openGraph.type.toLowerCase() === 'video.episode' || openGraph.type.toLowerCase() === 'video.tv_show' || (openGraph.type.toLowerCase() === 'video.other' && openGraph.video)}
194
+ {#if openGraph.video.actors && openGraph.video.actors.length}
195
+ {#each openGraph.video.actors as actor}
196
+ {#if actor.profile}
197
+ <meta property="video:actor" content={actor.profile} />
198
+ {/if}
199
+ {#if actor.role}
200
+ <meta property="video:actor:role" content={actor.role} />
201
+ {/if}
202
+ {/each}
203
+ {/if}
204
+
205
+ {#if openGraph.video.directors && openGraph.video.directors.length}
206
+ {#each openGraph.video.directors as director}
207
+ <meta property="video:director" content={director} />
208
+ {/each}
209
+ {/if}
210
+
211
+ {#if openGraph.video.writers && openGraph.video.writers.length}
212
+ {#each openGraph.video.writers as writer}
213
+ <meta property="video:writer" content={writer} />
214
+ {/each}
215
+ {/if}
216
+
217
+ {#if openGraph.video.duration}
218
+ <meta property="video:duration" content={openGraph.video.duration.toString()} />
219
+ {/if}
220
+
221
+ {#if openGraph.video.releaseDate}
222
+ <meta property="video:release_date" content={openGraph.video.releaseDate} />
223
+ {/if}
224
+
225
+ {#if openGraph.video.tags && openGraph.video.tags.length}
226
+ {#each openGraph.video.tags as tag}
227
+ <meta property="video:tag" content={tag} />
228
+ {/each}
229
+ {/if}
230
+
231
+ {#if openGraph.video.series}
232
+ <meta property="video:series" content={openGraph.video.series} />
233
+ {/if}
234
+ {/if}
235
+ {/if}
236
+
237
+ {#if openGraph.title || updatedTitle}
238
+ <meta property="og:title" content={openGraph.title || updatedTitle} />
239
+ {/if}
240
+
241
+ {#if openGraph.description || description}
242
+ <meta property="og:description" content={openGraph.description || description} />
243
+ {/if}
244
+
245
+ {#if openGraph.images && openGraph.images.length}
246
+ {#each openGraph.images as image}
247
+ <meta property="og:image" content={image.url} />
248
+ {#if image.alt}
249
+ <meta property="og:image:alt" content={image.alt} />
250
+ {/if}
251
+ {#if image.width}
252
+ <meta property="og:image:width" content={image.width.toString()} />
253
+ {/if}
254
+ {#if image.height}
255
+ <meta property="og:image:height" content={image.height.toString()} />
256
+ {/if}
257
+ {/each}
258
+ {/if}
259
+
260
+ {#if openGraph.videos && openGraph.videos.length}
261
+ {#each openGraph.videos as video}
262
+ <meta property="og:video" content={video.url} />
263
+ {#if video.alt}
264
+ <meta property="og:video:alt" content={video.alt} />
265
+ {/if}
266
+ {#if video.width}
267
+ <meta property="og:video:width" content={video.width.toString()} />
268
+ {/if}
269
+ {#if video.height}
270
+ <meta property="og:video:height" content={video.height.toString()} />
271
+ {/if}
272
+ {#if video.secureUrl}
273
+ <meta property="og:video:secure_url" content={video.secureUrl.toString()} />
274
+ {/if}
275
+ {#if video.type}
276
+ <meta property="og:video:type" content={video.type.toString()} />
277
+ {/if}
278
+ {/each}
279
+ {/if}
280
+
281
+ {#if openGraph.locale}
282
+ <meta property="og:locale" content={openGraph.locale} />
283
+ {/if}
284
+
285
+ {#if openGraph.site_name}
286
+ <meta property="og:site_name" content={openGraph.site_name} />
287
+ {/if}
288
+ {/if}
289
+
290
+ {#if additionalMetaTags && additionalMetaTags.length > 0}
291
+ {#each additionalMetaTags as tag}
292
+ <meta {...tag} />
293
+ {/each}
294
+ {/if}
295
+
296
+ {#if additionalLinkTags?.length}
297
+ {#each additionalLinkTags as tag}
298
+ <link {...tag} />
299
+ {/each}
300
+ {/if}
301
+ </svelte:head>
@@ -0,0 +1,49 @@
1
+ /** @typedef {typeof __propDef.props} MetaTagsProps */
2
+ /** @typedef {typeof __propDef.events} MetaTagsEvents */
3
+ /** @typedef {typeof __propDef.slots} MetaTagsSlots */
4
+ export default class MetaTags extends SvelteComponentTyped<{
5
+ title?: string;
6
+ titleTemplate?: string;
7
+ noindex?: boolean;
8
+ nofollow?: boolean;
9
+ robotsProps?: import("./types").AdditionalRobotsProps;
10
+ description?: string;
11
+ mobileAlternate?: import("./types").MobileAlternate;
12
+ languageAlternates?: readonly import("./types").LanguageAlternate[];
13
+ twitter?: import("./types").Twitter;
14
+ facebook?: import("./types").Facebook;
15
+ openGraph?: import("./types").OpenGraph;
16
+ canonical?: string;
17
+ additionalMetaTags?: readonly import("./types").MetaTag[];
18
+ additionalLinkTags?: readonly import("./types").LinkTag[];
19
+ }, {
20
+ [evt: string]: CustomEvent<any>;
21
+ }, {}> {
22
+ }
23
+ export type MetaTagsProps = typeof __propDef.props;
24
+ export type MetaTagsEvents = typeof __propDef.events;
25
+ export type MetaTagsSlots = typeof __propDef.slots;
26
+ import { SvelteComponentTyped } from "svelte";
27
+ declare const __propDef: {
28
+ props: {
29
+ title?: import("./types").MetaTagsProps['title'];
30
+ titleTemplate?: import("./types").MetaTagsProps['titleTemplate'];
31
+ noindex?: import("./types").MetaTagsProps['noindex'];
32
+ nofollow?: import("./types").MetaTagsProps['nofollow'];
33
+ robotsProps?: import("./types").MetaTagsProps['robotsProps'];
34
+ description?: import("./types").MetaTagsProps['description'];
35
+ mobileAlternate?: import("./types").MetaTagsProps['mobileAlternate'];
36
+ languageAlternates?: import("./types").MetaTagsProps['languageAlternates'];
37
+ twitter?: import("./types").MetaTagsProps['twitter'];
38
+ facebook?: import("./types").MetaTagsProps['facebook'];
39
+ openGraph?: import("./types").MetaTagsProps['openGraph'];
40
+ canonical?: import("./types").MetaTagsProps['canonical'];
41
+ additionalMetaTags?: import("./types").MetaTagsProps['additionalMetaTags'];
42
+ additionalLinkTags?: import("./types").MetaTagsProps['additionalLinkTags'];
43
+ };
44
+ events: {
45
+ [evt: string]: CustomEvent<any>;
46
+ };
47
+ slots: {};
48
+ };
49
+ export {};
@@ -0,0 +1,3 @@
1
+ export { default as MetaTags } from './MetaTags.svelte';
2
+ export { default as JsonLd } from './JsonLd.svelte';
3
+ export type { MetaTagsProps, JsonLdProps, AdditionalRobotsProps, MobileAlternate, LanguageAlternate, Twitter, Facebook, OpenGraph, MetaTag, LinkTag } from './types';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { default as MetaTags } from './MetaTags.svelte';
2
+ export { default as JsonLd } from './JsonLd.svelte';
@@ -0,0 +1,154 @@
1
+ import { Thing, WithContext } from 'schema-dts';
2
+
3
+ export interface MobileAlternate {
4
+ media: string;
5
+ href: string;
6
+ }
7
+
8
+ export interface LanguageAlternate {
9
+ hrefLang: string;
10
+ href: string;
11
+ }
12
+
13
+ export interface AdditionalRobotsProps {
14
+ nosnippet?: boolean;
15
+ maxSnippet?: number;
16
+ maxImagePreview?: 'none' | 'standard' | 'large';
17
+ maxVideoPreview?: number;
18
+ noarchive?: boolean;
19
+ unavailableAfter?: string;
20
+ noimageindex?: boolean;
21
+ notranslate?: boolean;
22
+ }
23
+ export interface Twitter {
24
+ cardType?: 'summary' | 'summary_large_image' | 'app' | 'player';
25
+ site?: string;
26
+ handle?: string;
27
+ title?: string;
28
+ description?: string;
29
+ image?: string;
30
+ imageAlt?: string;
31
+ }
32
+
33
+ export interface Facebook {
34
+ appId?: string;
35
+ }
36
+
37
+ export interface OpenGraph {
38
+ url?: string;
39
+ type?: string;
40
+ title?: string;
41
+ description?: string;
42
+ images?: ReadonlyArray<OpenGraphImages>;
43
+ videos?: ReadonlyArray<OpenGraphVideos>;
44
+ locale?: string;
45
+ site_name?: string;
46
+ profile?: OpenGraphProfile;
47
+ book?: OpenGraphBook;
48
+ article?: OpenGraphArticle;
49
+ video?: OpenGraphVideo;
50
+ }
51
+ interface OpenGraphImages {
52
+ url: string;
53
+ alt?: string;
54
+ width?: number;
55
+ height?: number;
56
+ }
57
+ interface OpenGraphVideos {
58
+ url: string;
59
+ alt?: string;
60
+ width?: number;
61
+ height?: number;
62
+ secureUrl?: string;
63
+ type?: string;
64
+ }
65
+ interface OpenGraphProfile {
66
+ firstName?: string;
67
+ lastName?: string;
68
+ username?: string;
69
+ gender?: string;
70
+ }
71
+
72
+ interface OpenGraphBook {
73
+ authors?: ReadonlyArray<string>;
74
+ isbn?: string;
75
+ releaseDate?: string;
76
+ tags?: ReadonlyArray<string>;
77
+ }
78
+ interface OpenGraphArticle {
79
+ publishedTime?: string;
80
+ modifiedTime?: string;
81
+ expirationTime?: string;
82
+ authors?: ReadonlyArray<string>;
83
+ section?: string;
84
+ tags?: ReadonlyArray<string>;
85
+ }
86
+
87
+ interface OpenGraphVideo {
88
+ actors?: ReadonlyArray<OpenGraphVideoActors>;
89
+ directors?: ReadonlyArray<string>;
90
+ writers?: ReadonlyArray<string>;
91
+ duration?: number;
92
+ releaseDate?: string;
93
+ tags?: ReadonlyArray<string>;
94
+ series?: string;
95
+ }
96
+
97
+ interface OpenGraphVideoActors {
98
+ profile: string;
99
+ role?: string;
100
+ }
101
+
102
+ interface BaseMetaTag {
103
+ content: string;
104
+ }
105
+
106
+ interface HTML5MetaTag extends BaseMetaTag {
107
+ name: string;
108
+ property?: undefined;
109
+ httpEquiv?: undefined;
110
+ }
111
+
112
+ interface RDFaMetaTag extends BaseMetaTag {
113
+ property: string;
114
+ name?: undefined;
115
+ httpEquiv?: undefined;
116
+ }
117
+
118
+ interface HTTPEquivMetaTag extends BaseMetaTag {
119
+ httpEquiv: 'content-security-policy' | 'content-type' | 'default-style' | 'x-ua-compatible' | 'refresh';
120
+ name?: undefined;
121
+ property?: undefined;
122
+ }
123
+
124
+ export type MetaTag = HTML5MetaTag | RDFaMetaTag | HTTPEquivMetaTag;
125
+
126
+ export interface LinkTag {
127
+ rel: string;
128
+ href: string;
129
+ sizes?: string;
130
+ type?: string;
131
+ color?: string;
132
+ }
133
+
134
+ export interface MetaTagsProps {
135
+ title?: string;
136
+ titleTemplate?: string;
137
+ noindex?: boolean;
138
+ nofollow?: boolean;
139
+ robotsProps?: AdditionalRobotsProps;
140
+ description?: string;
141
+ canonical?: string;
142
+ mobileAlternate?: MobileAlternate;
143
+ languageAlternates?: ReadonlyArray<LanguageAlternate>;
144
+ twitter?: Twitter;
145
+ facebook?: Facebook;
146
+ openGraph?: OpenGraph;
147
+ additionalMetaTags?: ReadonlyArray<MetaTag>;
148
+ additionalLinkTags?: ReadonlyArray<LinkTag>;
149
+ }
150
+
151
+ export interface JsonLdProps {
152
+ output?: 'head' | 'body';
153
+ schema?: Thing | WithContext<Thing> | Thing[] | WithContext<Thing>[];
154
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "svelte-meta-tags",
3
- "version": "2.7.1",
3
+ "version": "2.8.0",
4
4
  "description": "Svelte Meta Tags is a plugin that makes managing your SEO easier in Svelte projects.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -22,28 +22,28 @@
22
22
  },
23
23
  "devDependencies": {
24
24
  "@changesets/cli": "^2.26.1",
25
- "@playwright/test": "^1.33.0",
26
- "@sveltejs/adapter-auto": "^2.0.1",
27
- "@sveltejs/kit": "^1.16.2",
25
+ "@playwright/test": "^1.34.3",
26
+ "@sveltejs/adapter-auto": "^2.1.0",
27
+ "@sveltejs/kit": "^1.20.0",
28
28
  "@sveltejs/package": "^2.0.2",
29
- "@typescript-eslint/eslint-plugin": "^5.59.5",
30
- "@typescript-eslint/parser": "^5.59.5",
31
- "eslint": "^8.40.0",
29
+ "@typescript-eslint/eslint-plugin": "^5.59.8",
30
+ "@typescript-eslint/parser": "^5.59.8",
31
+ "eslint": "^8.41.0",
32
32
  "eslint-config-prettier": "^8.8.0",
33
- "eslint-plugin-svelte": "^2.27.4",
33
+ "eslint-plugin-svelte": "^2.29.0",
34
34
  "husky": "^8.0.3",
35
35
  "lint-staged": "^13.2.2",
36
36
  "prettier": "^2.8.8",
37
- "prettier-plugin-svelte": "^2.10.0",
38
- "publint": "^0.1.11",
37
+ "prettier-plugin-svelte": "^2.10.1",
38
+ "publint": "^0.1.12",
39
39
  "svelte": "^3.59.1",
40
- "svelte-check": "^3.3.2",
41
- "tslib": "^2.5.0",
40
+ "svelte-check": "^3.4.3",
41
+ "tslib": "^2.5.2",
42
42
  "typescript": "^5.0.4",
43
- "vite": "^4.3.5"
43
+ "vite": "^4.3.9"
44
44
  },
45
45
  "peerDependencies": {
46
- "svelte": "^3.44.0"
46
+ "svelte": "^3.55.0 || ^4.0.0"
47
47
  },
48
48
  "exports": {
49
49
  "./JsonLd.svelte": {