Updates to starlight-ghostcms and create-astro-ghostcms

This commit is contained in:
Adam Matthiesen 2024-03-05 19:00:22 -08:00
parent 9f6f137155
commit 9ec2a61782
39 changed files with 212 additions and 446 deletions

View File

@ -0,0 +1,5 @@
---
"@matthiesenxyz/create-astro-ghostcms": minor
---
Bumb all templates to new `astro-ghostcms` version v3.3

View File

@ -0,0 +1,5 @@
---
"@matthiesenxyz/starlight-ghostcms": minor
---
Bumb GhostCMS API, No user facing breaking changes.

View File

@ -10,9 +10,9 @@
"astro": "astro"
},
"dependencies": {
"astro": "^4.2.8",
"@matthiesenxyz/astro-ghostcms": "^3.1.5",
"@matthiesenxyz/astro-ghostcms-theme-default": "^0.1.5"
"astro": "^4.4.0",
"@matthiesenxyz/astro-ghostcms": "^3.3.0",
"@matthiesenxyz/astro-ghostcms-theme-default": "^0.1.13"
},
"devDependencies": {
"@astrojs/check": "^0.4.1",

View File

@ -1,4 +1,4 @@
import ghostcms from "@matthiesenxyz/astro-ghostcms";
import astroGhostCMS from "@matthiesenxyz/astro-ghostcms";
import { defineConfig } from "astro/config";
import UnoCSS from "unocss/astro";
@ -8,9 +8,11 @@ export default defineConfig({
trailingSlash: "ignore",
integrations: [
UnoCSS({ injectReset: true }),
ghostcms({
theme: "@matthiesenxyz/astro-ghostcms-brutalbyelian",
astroGhostCMS({
ghostURL: "https://ghostdemo.matthiesen.xyz",
ThemeProvider: {
theme: "@matthiesenxyz/astro-ghostcms-brutal",
},
}),
],
});

View File

@ -10,9 +10,9 @@
"astro": "astro"
},
"dependencies": {
"astro": "^4.3.2",
"@matthiesenxyz/astro-ghostcms": "^3.2.2",
"@matthiesenxyz/astro-ghostcms-brutalbyelian": "^0.0.5",
"astro": "^4.4.0",
"@matthiesenxyz/astro-ghostcms": "^3.3.0",
"@matthiesenxyz/astro-ghostcms-brutalbyelian": "^0.0.11",
"@unocss/astro": "^0.57.7"
},
"devDependencies": {

View File

@ -1,5 +1,5 @@
import tailwind from "@astrojs/tailwind";
import ghostcms from "@matthiesenxyz/astro-ghostcms";
import astroGhostCMS from "@matthiesenxyz/astro-ghostcms";
import { defineConfig } from "astro/config";
// https://astro.build/config
@ -7,9 +7,11 @@ export default defineConfig({
site: "https://example.xyz/",
integrations: [
tailwind(),
ghostcms({
theme: "@matthiesenxyz/astro-ghostcms-catppuccin",
astroGhostCMS({
ghostURL: "https://ghostdemo.matthiesen.xyz",
ThemeProvider: {
theme: "@matthiesenxyz/astro-ghostcms-catppuccin",
},
}),
],
});

View File

@ -10,9 +10,9 @@
"astro": "astro"
},
"dependencies": {
"astro": "^4.2.8",
"@matthiesenxyz/astro-ghostcms": "^3.1.8",
"@matthiesenxyz/astro-ghostcms-catppuccin": "^0.0.3",
"astro": "^4.4.0",
"@matthiesenxyz/astro-ghostcms": "^3.3.0",
"@matthiesenxyz/astro-ghostcms-catppuccin": "^0.0.8",
"@astrojs/tailwind": "^5.1.0",
"tailwindcss": "^3.3.5"
},

View File

@ -9,10 +9,13 @@ export default defineConfig({
// Includes GhostCMS API, @astrojs/rss, @astrojs/sitemap, and astro-robots-txt
GhostCMS({
ghostURL: "https://ghostdemo.matthiesen.xyz",
// This Option Disables all default theme injection and allows DIY mode.
disableRouteInjection: true,
// Enable this to disable the extra console logs
disableConsoleOutput: false,
ThemeProvider: {
disableThemeProvider: true,
},
disableDefault404: true,
enableRSSFeed: false,
enableOGImages: false,
verbose: false,
}),
],
});

View File

@ -11,8 +11,8 @@
},
"dependencies": {
"@astrojs/check": "^0.4.1",
"@matthiesenxyz/astro-ghostcms": "^3.1.4",
"astro": "^4.2.8",
"@matthiesenxyz/astro-ghostcms": "^3.3.0",
"astro": "^4.4.0",
"typescript": "^5.3.3",
"astro-font": "^0.0.77"
},

View File

@ -60,19 +60,19 @@
},
"devDependencies": {
"@astrojs/starlight": "^0.19.0",
"@ts-ghost/tsconfig": "workspace:*",
"astro": "^4.4.0",
"vitest": "^1.2.2",
"vitest": "^1.3.1",
"vitest-fetch-mock": "^0.2.2"
},
"dependencies": {
"@astrojs/rss": "^4.0.5",
"@ts-ghost/core-api": "5.1.2",
"vite": "^5.1.2",
"vite-tsconfig-paths": "^4.2.2"
"@ts-ghost/core-api": "^6.0.0",
"@ts-ghost/content-api": "^4.0.12",
"vite": "^5.1.5",
"vite-tsconfig-paths": "^4.3.1"
},
"peerDependencies": {
"@astrojs/starlight": ">=0.19.0",
"astro": ">=4.3.7"
"astro": ">=4.4.0"
}
}

View File

@ -3,7 +3,7 @@ import StarlightSidebar from '@astrojs/starlight/components/Sidebar.astro'
import type { Props } from '@astrojs/starlight/props'
import config from 'virtual:starlight-ghost-config'
import { isBlogPostPage, isBlogRoot } from '../utils/page'
import { getAllPages, getAllPosts, getSluggedPage } from '../utils/api/api-functions.js'
import { getAllPages, getAllPosts, getSluggedPage } from '../utils/api'
import type { SidebarEntry } from './sidebartypes'
export async function getRecentBlogEntries(){

View File

@ -2,7 +2,7 @@
import config from 'virtual:starlight-ghost-config'
import Page from '../components/Page.astro'
//import PrevNextLinks from '../components/PrevNextLinks.astro'
import { getAllAuthors } from '../utils/api/api-functions'
import { getAllAuthors } from '../utils/api'
import { getPageProps } from '../utils/page'
import AdvancedAuthorCard from '../components/AdvancedAuthorCard.astro';

View File

@ -1,116 +0,0 @@
import {
APIComposer,
BasicFetcher,
HTTPClient,
contentAPICredentialsSchema,
slugOrIdSchema,
} from "@ts-ghost/core-api";
import {
authorsIncludeSchema,
authorsSchema,
pagesIncludeSchema,
pagesSchema,
postsIncludeSchema,
postsSchema,
settingsSchema,
tagsIncludeSchema,
tagsSchema,
tiersIncludeSchema,
tiersSchema,
} from "./schemas";
export type { ContentAPICredentials, APIVersions } from "@ts-ghost/core-api";
export enum BrowseEndpointType {
authors = "authors",
tiers = "tiers",
posts = "posts",
pages = "pages",
tags = "tags",
settings = "settings",
}
export default class TS_API<Version extends `v5.${string}` = any> {
private httpClient: HTTPClient;
constructor(
protected readonly url: string,
protected readonly key: string,
protected readonly version: Version,
) {
const apiCredentials = contentAPICredentialsSchema.parse({
key,
version,
url,
});
this.httpClient = new HTTPClient({
...apiCredentials,
endpoint: "content",
});
}
get authors() {
return new APIComposer(
"authors",
{
schema: authorsSchema,
identitySchema: slugOrIdSchema,
include: authorsIncludeSchema,
},
this.httpClient,
).access(["read", "browse"]);
}
get tiers() {
return new APIComposer(
"tiers",
{
schema: tiersSchema,
identitySchema: slugOrIdSchema,
include: tiersIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get posts() {
return new APIComposer(
"posts",
{
schema: postsSchema,
identitySchema: slugOrIdSchema,
include: postsIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get pages() {
return new APIComposer(
"pages",
{
schema: pagesSchema,
identitySchema: slugOrIdSchema,
include: pagesIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get tags() {
return new APIComposer(
"tags",
{
schema: tagsSchema,
identitySchema: slugOrIdSchema,
include: tagsIncludeSchema,
},
this.httpClient,
).access(["browse", "read"]);
}
get settings() {
return new BasicFetcher(
"settings",
{ output: settingsSchema },
this.httpClient,
);
}
}

View File

@ -1,8 +0,0 @@
export { default as TS_API } from "./content-api";
export * from "./schemas";
export type {
InferFetcherDataShape,
InferResponseDataShape,
BrowseParams,
} from "@ts-ghost/core-api";

View File

@ -1 +0,0 @@
export * from "./authors";

View File

@ -1 +0,0 @@
export * from "./socials";

View File

@ -1 +0,0 @@
export * from "./pages";

View File

@ -1 +0,0 @@
export * from "./posts";

View File

@ -1 +0,0 @@
export * from "./settings";

View File

@ -1 +0,0 @@
export * from "./tags";

View File

@ -1 +0,0 @@
export * from "./tiers";

View File

@ -1,11 +1,15 @@
import { assert, beforeEach, describe, expect, test } from "vitest";
import TS_API from "./content-api";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
describe("content-api", () => {
let api: TS_API;
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TS_API("https://ghost.org", "59d4bf56c73c04a18c867dc3ba", "v5.0");
api = new TSGhostContentAPI(
"https://ghost.org",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",
);
});
test("content-api", () => {
@ -14,21 +18,25 @@ describe("content-api", () => {
test("content-api shouldn't instantiate with an incorrect url", () => {
assert.throws(() => {
const api = new TS_API("ghost.org", "59d4bf56c73c04a18c867dc3ba", "v5.0");
const api = new TSGhostContentAPI(
"ghost.org",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",
);
api.settings;
});
});
test("content-api shouldn't instantiate with an incorrect key", () => {
assert.throws(() => {
const api = new TS_API("https://ghost.org", "a", "v5.0");
const api = new TSGhostContentAPI("https://ghost.org", "a", "v5.0");
api.settings;
});
});
test("content-api shouldn't instantiate with an incorrect version", () => {
assert.throws(() => {
const api = new TS_API(
const api = new TSGhostContentAPI(
"https://ghost.org",
"1efedd9db174adee2d23d982:4b74dca0219bad629852191af326a45037346c2231240e0f7aec1f9371cc14e8",
// @ts-expect-error

View File

@ -1,9 +1,8 @@
import { TSGhostContentAPI } from "@ts-ghost/content-api";
import type { Page, Post } from "./schemas";
// LOAD ENVIRONMENT VARIABLES
import { loadEnv } from "vite";
import { TS_API } from "./content-api";
import type { ContentAPICredentials } from "./content-api/content-api";
import type { Page, Post } from "./content-api/schemas";
import { invariant } from "./invariant.js";
const { CONTENT_API_KEY, CONTENT_API_URL } = loadEnv(
"all",
@ -11,13 +10,11 @@ const { CONTENT_API_KEY, CONTENT_API_URL } = loadEnv(
"CONTENT_",
);
invariant(CONTENT_API_KEY, "CONTENT_API_KEY Missing from .env");
invariant(CONTENT_API_URL, "CONTENT_API_URL Missing from .env");
const key: ContentAPICredentials["key"] = CONTENT_API_KEY;
const url: ContentAPICredentials["url"] = CONTENT_API_URL;
// SETUP GHOST API
const ghostApiKey = CONTENT_API_KEY || "";
const ghostUrl = CONTENT_API_URL || "";
const version = "v5.0";
const api = new TS_API(url, key, version);
const api = new TSGhostContentAPI(ghostUrl, ghostApiKey, version);
export const getAllAuthors = async () => {
const results = await api.authors
@ -67,21 +64,20 @@ export const getAllPosts = async () => {
return posts;
};
export const getSluggedPost = async (slug: string) => {
export const getSluggedPost = async (slug:string) => {
const results = await api.posts
.read({ slug: slug })
.read({slug: slug})
.include({
authors: true,
tags: true,
})
.fetch();
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
}
return {
post: results.data,
};
}).fetch()
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
}
return {
post: results.data,
};
};
export const getAllPages = async () => {
@ -101,21 +97,20 @@ export const getAllPages = async () => {
return pages;
};
export const getSluggedPage = async (slug: string) => {
export const getSluggedPage = async (slug:string) => {
const results = await api.pages
.read({ slug: slug })
.read({slug: slug})
.include({
authors: true,
tags: true,
})
.fetch();
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
}
return {
post: results.data,
};
}).fetch()
if (!results.success) {
throw new Error(results.errors.map((e) => e.message).join(", "));
}
return {
post: results.data,
};
};
export const getSettings = async () => {

View File

@ -1,3 +1,3 @@
export * from "./api-functions";
export * from "./content-api/schemas";
export * from "./ghostAPI";
export * from "./schemas";
export * from "./invariant";

View File

@ -20,7 +20,6 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
*/
const tinyinvariant = "merged";
const isProduction: boolean = process.env.NODE_ENV === "production";
const prefix: string = "Invariant failed";

View File

@ -1,7 +1,7 @@
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
import createFetchMock from "vitest-fetch-mock";
import TS_API from "../../content-api";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
const fetchMocker = createFetchMock(vi);
@ -9,7 +9,7 @@ describe("authors api .browse() Args Type-safety", () => {
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
const api = new TS_API(url, key, "v5.0");
const api = new TSGhostContentAPI(url, key, "v5.0");
test(".browse() params shouldnt accept invalid params", () => {
// @ts-expect-error - shouldnt accept invalid params
const browse = api.authors.browse({ pp: 2 });
@ -95,10 +95,10 @@ describe("authors api .browse() Args Type-safety", () => {
});
describe("authors resource mocked", () => {
let api: TS_API;
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TS_API(
api = new TSGhostContentAPI(
"https://my-ghost-blog.com",
"59d4bf56c73c04a18c867dc3ba",
"v5.0",

View File

@ -1,7 +1,7 @@
export * from "./authors";
export * from "./helpers";
export * from "./pages";
export * from "./posts";
export * from "./settings";
export * from "./socials";
export * from "./tags";
export * from "./tiers";

View File

@ -7,8 +7,8 @@ import {
} from "@ts-ghost/core-api";
import { z } from "astro/zod";
import { authorsSchema } from "../authors";
import { tagsSchema } from "../tags";
import { authorsSchema } from "./authors";
import { tagsSchema } from "./tags";
const postsAuthorSchema = authorsSchema.extend({
url: z.string().nullish(),

View File

@ -1,14 +1,14 @@
import { describe, expect, test } from "vitest";
import TS_API from "../../content-api";
import type { Post } from "./posts";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
import type { Post } from "./index";
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
describe("posts api .browse() Args Type-safety", () => {
const api = new TS_API(url, key, "v5.0");
const api = new TSGhostContentAPI(url, key, "v5.0");
test(".browse() params shouldnt accept invalid params", () => {
// @ts-expect-error - shouldnt accept invalid params
const browse = api.posts.browse({ pp: 2 });
@ -21,8 +21,7 @@ describe("posts api .browse() Args Type-safety", () => {
foo: true,
} satisfies { [k in keyof Post]?: true | undefined };
// biome-ignore lint/style/useConst: <explanation>
let test = api.posts
const test = api.posts
.browse()
// @ts-expect-error - shouldnt accept invalid params
.fields(outputFields);
@ -45,8 +44,7 @@ describe("posts api .browse() Args Type-safety", () => {
title: true,
} satisfies { [k in keyof Post]?: true | undefined };
// biome-ignore lint/style/useConst: <explanation>
let test = api.posts.browse().fields(outputFields);
const test = api.posts.browse().fields(outputFields);
expect(test.getOutputFields()).toEqual(["slug", "title"]);
// @ts-expect-error - shouldnt accept invalid params

View File

@ -7,8 +7,8 @@ import {
} from "@ts-ghost/core-api";
import { z } from "astro/zod";
import { authorsSchema } from "../authors";
import { tagsSchema } from "../tags";
import { authorsSchema } from "./authors";
import { tagsSchema } from "./tags";
const postsAuthorSchema = authorsSchema.extend({
url: z.string().nullish(),

View File

@ -0,0 +1,39 @@
import { beforeEach, describe, expect, test } from "vitest";
import { TSGhostContentAPI } from "@ts-ghost/content-api";
const url = process.env.VITE_GHOST_URL || "https://my-ghost-blog.com";
const key =
process.env.VITE_GHOST_CONTENT_API_KEY || "59d4bf56c73c04a18c867dc3ba";
describe("settings integration tests browse", () => {
let api: TSGhostContentAPI;
beforeEach(() => {
api = new TSGhostContentAPI(url, key, "v5.0");
});
test("settings.fetch()", async () => {
const result = await api.settings.fetch();
expect(result).not.toBeUndefined();
expect(result).not.toBeNull();
if (!result.success) {
expect(result.errors).toBeDefined();
expect(result.errors).toHaveLength(1);
} else {
expect(result.data).toBeDefined();
const settings = result.data;
expect(settings).toBeDefined();
expect(settings.title).toBe("Astro Starter");
expect(settings.description).toBe("Thoughts, stories and ideas.");
expect(settings.logo).toBeNull();
expect(settings.cover_image).toBe(
"https://static.ghost.org/v4.0.0/images/publication-cover.jpg",
);
expect(settings.icon).toBeNull();
expect(settings.lang).toBe("en");
expect(settings.timezone).toBe("Etc/UTC");
expect(settings.codeinjection_head).toBeNull();
expect(settings.codeinjection_foot).toBeNull();
expect(settings.members_support_address).toBe("noreply");
}
});
});

View File

@ -10,11 +10,11 @@ export default defineConfig({
//tailwind(),
UnoCSS({ injectReset: true }),
ghostcms({
ghostURL: "https://ghostdemo.matthiesen.xyz",
ghostURL: 'https://ghostdemo.matthiesen.xyz',
ThemeProvider: {
theme: "@matthiesenxyz/astro-ghostcms-brutalbyelian",
},
verbose: false,
verbose: true,
}),
],
});

View File

@ -13,6 +13,7 @@
"dependencies": {
"astro": "^4.4.0",
"@matthiesenxyz/astro-ghostcms": "workspace:*",
"@matthiesenxyz/astro-ghostcms-theme-default": "workspace:*",
"@matthiesenxyz/astro-ghostcms-brutalbyelian": "workspace:*",
"@astrojs/tailwind": "^5.1.0",
"@unocss/astro": "^0.58.5",

View File

@ -104,7 +104,7 @@ importers:
version: link:../astro-ghostcms-rendercontent
'@unocss/astro':
specifier: ^0.58.5
version: 0.58.5(vite@5.1.4)
version: 0.58.5(vite@5.1.5)
'@unocss/reset':
specifier: ^0.58.5
version: 0.58.5
@ -122,7 +122,7 @@ importers:
version: 1.5.2
unocss:
specifier: ^0.58.5
version: 0.58.5(postcss@8.4.35)(vite@5.1.4)
version: 0.58.5(postcss@8.4.35)(vite@5.1.5)
devDependencies:
'@typescript-eslint/parser':
specifier: ^7.0.1
@ -247,31 +247,31 @@ importers:
'@astrojs/rss':
specifier: ^4.0.5
version: 4.0.5
'@ts-ghost/content-api':
specifier: ^4.0.12
version: 4.0.12
'@ts-ghost/core-api':
specifier: 5.1.2
version: 5.1.2
specifier: ^6.0.0
version: 6.0.0
vite:
specifier: ^5.1.2
version: 5.1.3
specifier: ^5.1.5
version: 5.1.5(@types/node@20.11.24)
vite-tsconfig-paths:
specifier: ^4.2.2
version: 4.3.1(vite@5.1.3)
specifier: ^4.3.1
version: 4.3.1(vite@5.1.5)
devDependencies:
'@astrojs/starlight':
specifier: ^0.19.0
version: 0.19.0(astro@4.4.0)
'@ts-ghost/tsconfig':
specifier: workspace:*
version: link:../tsconfig
astro:
specifier: ^4.4.0
version: 4.4.0(typescript@5.3.3)
vitest:
specifier: ^1.2.2
version: 1.2.2(@vitest/ui@1.3.1)
specifier: ^1.3.1
version: 1.3.1(@vitest/ui@1.3.1)
vitest-fetch-mock:
specifier: ^0.2.2
version: 0.2.2(vitest@1.2.2)
version: 0.2.2(vitest@1.3.1)
packages/tsconfig: {}
@ -286,9 +286,12 @@ importers:
'@matthiesenxyz/astro-ghostcms-brutalbyelian':
specifier: workspace:*
version: link:../../packages/astro-ghostcms-brutalbyelian
'@matthiesenxyz/astro-ghostcms-theme-default':
specifier: workspace:*
version: link:../../packages/astro-ghostcms-theme-default
'@unocss/astro':
specifier: ^0.58.5
version: 0.58.5(vite@5.1.4)
version: 0.58.5(vite@5.1.5)
astro:
specifier: ^4.4.0
version: 4.4.0(typescript@5.3.3)
@ -304,7 +307,7 @@ importers:
version: 5.3.3
unocss:
specifier: ^0.58.5
version: 0.58.5(postcss@8.4.35)(vite@5.1.4)
version: 0.58.5(postcss@8.4.35)(vite@5.1.5)
playgrounds/starlight-playground:
dependencies:
@ -1891,13 +1894,6 @@ packages:
zod: 3.22.4
dev: false
/@ts-ghost/core-api@5.1.2:
resolution: {integrity: sha512-YqLLGAJ8GxHx3GvotnZxmkDuT9ZjJo4DVLl30n5aXr/+1Y3O6PpNpwAa1ws67cshx0rbFmTAGN76goKbVfLDTg==}
dependencies:
jose: 5.2.2
zod: 3.22.4
dev: false
/@ts-ghost/core-api@6.0.0:
resolution: {integrity: sha512-5Q7nbrmAoJ/5PcW2lPgCVyAJloVaQqybHpzXuFRbKj5sYWNeJbcwSrnYOBw/3t1tA2ghPrNVXqWOGrGKqZl1Zg==}
dependencies:
@ -2134,7 +2130,7 @@ packages:
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
/@unocss/astro@0.58.5(vite@5.1.4):
/@unocss/astro@0.58.5(vite@5.1.5):
resolution: {integrity: sha512-LtuVnj8oFAK9663OVhQO8KpdJFiOyyPsYfnOZlDCOFK3gHb/2WMrzdBwr1w8LoQF3bDedkFMKirVF7gWjyZiaw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
@ -2144,8 +2140,8 @@ packages:
dependencies:
'@unocss/core': 0.58.5
'@unocss/reset': 0.58.5
'@unocss/vite': 0.58.5(vite@5.1.4)
vite: 5.1.4(sass@1.71.0)
'@unocss/vite': 0.58.5(vite@5.1.5)
vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies:
- rollup
@ -2305,7 +2301,7 @@ packages:
dependencies:
'@unocss/core': 0.58.5
/@unocss/vite@0.58.5(vite@5.1.4):
/@unocss/vite@0.58.5(vite@5.1.5):
resolution: {integrity: sha512-p4o1XNX1rvjmoUqSSdua8XyWNg/d+YUChDd2L/xEty+6j2qv0wUaohs3UQ87vWlv632/UmgdX+2MbrgtqthCtw==}
peerDependencies:
vite: ^2.9.0 || ^3.0.0-0 || ^4.0.0 || ^5.0.0-0
@ -2320,18 +2316,10 @@ packages:
chokidar: 3.6.0
fast-glob: 3.3.2
magic-string: 0.30.7
vite: 5.1.4(sass@1.71.0)
vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies:
- rollup
/@vitest/expect@1.2.2:
resolution: {integrity: sha512-3jpcdPAD7LwHUUiT2pZTj2U82I2Tcgg2oVPvKxhn6mDI2On6tfvPQTjAI4628GUGDZrCm4Zna9iQHm5cEexOAg==}
dependencies:
'@vitest/spy': 1.2.2
'@vitest/utils': 1.2.2
chai: 4.4.1
dev: true
/@vitest/expect@1.3.1:
resolution: {integrity: sha512-xofQFwIzfdmLLlHa6ag0dPV8YsnKOCP1KdAeVVh34vSjN2dcUiXYCD9htu/9eM7t8Xln4v03U9HLxLpPlsXdZw==}
dependencies:
@ -2340,14 +2328,6 @@ packages:
chai: 4.4.1
dev: true
/@vitest/runner@1.2.2:
resolution: {integrity: sha512-JctG7QZ4LSDXr5CsUweFgcpEvrcxOV1Gft7uHrvkQ+fsAVylmWQvnaAr/HDp3LAH1fztGMQZugIheTWjaGzYIg==}
dependencies:
'@vitest/utils': 1.2.2
p-limit: 5.0.0
pathe: 1.1.2
dev: true
/@vitest/runner@1.3.1:
resolution: {integrity: sha512-5FzF9c3jG/z5bgCnjr8j9LNq/9OxV2uEBAITOXfoe3rdZJTdO7jzThth7FXv/6b+kdY65tpRQB7WaKhNZwX+Kg==}
dependencies:
@ -2356,14 +2336,6 @@ packages:
pathe: 1.1.2
dev: true
/@vitest/snapshot@1.2.2:
resolution: {integrity: sha512-SmGY4saEw1+bwE1th6S/cZmPxz/Q4JWsl7LvbQIky2tKE35US4gd0Mjzqfr84/4OD0tikGWaWdMja/nWL5NIPA==}
dependencies:
magic-string: 0.30.7
pathe: 1.1.2
pretty-format: 29.7.0
dev: true
/@vitest/snapshot@1.3.1:
resolution: {integrity: sha512-EF++BZbt6RZmOlE3SuTPu/NfwBF6q4ABS37HHXzs2LUVPBLx2QoY/K0fKpRChSo8eLiuxcbCVfqKgx/dplCDuQ==}
dependencies:
@ -2372,12 +2344,6 @@ packages:
pretty-format: 29.7.0
dev: true
/@vitest/spy@1.2.2:
resolution: {integrity: sha512-k9Gcahssw8d7X3pSLq3e3XEu/0L78mUkCjivUqCQeXJm9clfXR/Td8+AP+VC1O6fKPIDLcHDTAmBOINVuv6+7g==}
dependencies:
tinyspy: 2.2.1
dev: true
/@vitest/spy@1.3.1:
resolution: {integrity: sha512-xAcW+S099ylC9VLU7eZfdT9myV67Nor9w9zhf0mGCYJSO+zM2839tOeROTdikOi/8Qeusffvxb/MyBSOja1Uig==}
dependencies:
@ -2399,15 +2365,6 @@ packages:
vitest: 1.3.1(@vitest/ui@1.3.1)
dev: true
/@vitest/utils@1.2.2:
resolution: {integrity: sha512-WKITBHLsBHlpjnDQahr+XK6RE7MiAsgrIkr0pGhQ9ygoxBfUeG0lUG5iLlzqjmKSlBv3+j5EGsriBzh+C3Tq9g==}
dependencies:
diff-sequences: 29.6.3
estree-walker: 3.0.3
loupe: 2.3.7
pretty-format: 29.7.0
dev: true
/@vitest/utils@1.3.1:
resolution: {integrity: sha512-d3Waie/299qqRyHTm2DjADeTaNdNSVsnwHPWrs20JMpjh6eiVq7ggggweO8rc4arhf6rRkWuHKwvxGvejUXZZQ==}
dependencies:
@ -7303,12 +7260,6 @@ packages:
engines: {node: '>=8'}
dev: true
/strip-literal@1.3.0:
resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==}
dependencies:
acorn: 8.11.3
dev: true
/strip-literal@2.0.0:
resolution: {integrity: sha512-f9vHgsCWBq2ugHAkGMiiYY+AYG0D/cbloKKg0nhaaaSNsujdGIpVXCNsrJpCKr5M0f4aI31mr13UjY6GAuXCKA==}
dependencies:
@ -7798,7 +7749,7 @@ packages:
engines: {node: '>= 10.0.0'}
dev: false
/unocss@0.58.5(postcss@8.4.35)(vite@5.1.4):
/unocss@0.58.5(postcss@8.4.35)(vite@5.1.5):
resolution: {integrity: sha512-0g4P6jLgRRNnhscxw7nQ9RHGrKJ1UPPiHPet+YT3TXUcmy4mTiYgo9+kGQf5bjyrzsELJ10cT6Qz2y6g9Tls4g==}
engines: {node: '>=14'}
peerDependencies:
@ -7810,7 +7761,7 @@ packages:
vite:
optional: true
dependencies:
'@unocss/astro': 0.58.5(vite@5.1.4)
'@unocss/astro': 0.58.5(vite@5.1.5)
'@unocss/cli': 0.58.5
'@unocss/core': 0.58.5
'@unocss/extractor-arbitrary-variants': 0.58.5
@ -7829,8 +7780,8 @@ packages:
'@unocss/transformer-compile-class': 0.58.5
'@unocss/transformer-directives': 0.58.5
'@unocss/transformer-variant-group': 0.58.5
'@unocss/vite': 0.58.5(vite@5.1.4)
vite: 5.1.4(sass@1.71.0)
'@unocss/vite': 0.58.5(vite@5.1.5)
vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies:
- postcss
- rollup
@ -7907,48 +7858,6 @@ packages:
unist-util-stringify-position: 4.0.0
vfile-message: 4.0.2
/vite-node@1.2.2:
resolution: {integrity: sha512-1as4rDTgVWJO3n1uHmUYqq7nsFgINQ9u+mRcXpjeOMJUmviqNKjcZB7UfRZrlM7MjYXMKpuWp5oGkjaFLnjawg==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.0
vite: 5.1.4(sass@1.71.0)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite-node@1.3.1:
resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
dependencies:
cac: 6.7.14
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.0
vite: 5.1.4(sass@1.71.0)
transitivePeerDependencies:
- '@types/node'
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vite-node@1.3.1(@types/node@20.11.24):
resolution: {integrity: sha512-azbRrqRxlWTJEVbzInZCTchx0X69M/XPTCz4H+TLvlTcR/xH/3hkRqhOakT41fMJCMzXTu4UvegkZiEoJAWvng==}
engines: {node: ^18.0.0 || >=20.0.0}
@ -7958,7 +7867,7 @@ packages:
debug: 4.3.4
pathe: 1.1.2
picocolors: 1.0.0
vite: 5.1.4(@types/node@20.11.24)
vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies:
- '@types/node'
- less
@ -7970,7 +7879,7 @@ packages:
- terser
dev: true
/vite-tsconfig-paths@4.3.1(vite@5.1.3):
/vite-tsconfig-paths@4.3.1(vite@5.1.5):
resolution: {integrity: sha512-cfgJwcGOsIxXOLU/nELPny2/LUD/lcf1IbfyeKTv2bsupVbTH/xpFtdQlBmIP1GEK2CjjLxYhFfB+QODFAx5aw==}
peerDependencies:
vite: '*'
@ -7981,47 +7890,12 @@ packages:
debug: 4.3.4
globrex: 0.1.2
tsconfck: 3.0.2(typescript@5.3.3)
vite: 5.1.3
vite: 5.1.5(@types/node@20.11.24)
transitivePeerDependencies:
- supports-color
- typescript
dev: false
/vite@5.1.3:
resolution: {integrity: sha512-UfmUD36DKkqhi/F75RrxvPpry+9+tTkrXfMNZD+SboZqBCMsxKtO52XeGzzuh7ioz+Eo/SYDBbdb0Z7vgcDJew==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
esbuild: 0.19.12
postcss: 8.4.35
rollup: 4.11.0
optionalDependencies:
fsevents: 2.3.3
dev: false
/vite@5.1.4(@types/node@20.11.24):
resolution: {integrity: sha512-n+MPqzq+d9nMVTKyewqw6kSt+R3CkvF9QAKY8obiQn8g1fwTscKxyfaYnC632HtBXAQGc1Yjomphwn1dtwGAHg==}
engines: {node: ^18.0.0 || >=20.0.0}
@ -8092,6 +7966,41 @@ packages:
optionalDependencies:
fsevents: 2.3.3
/vite@5.1.5(@types/node@20.11.24):
resolution: {integrity: sha512-BdN1xh0Of/oQafhU+FvopafUp6WaYenLU/NFoL5WyJL++GxkNfieKzBhM24H3HVsPQrlAqB7iJYTHabzaRed5Q==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@types/node': ^18.0.0 || >=20.0.0
less: '*'
lightningcss: ^1.21.0
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
'@types/node': 20.11.24
esbuild: 0.19.12
postcss: 8.4.35
rollup: 4.11.0
optionalDependencies:
fsevents: 2.3.3
/vitefu@0.2.5(vite@5.1.4):
resolution: {integrity: sha512-SgHtMLoqaeeGnd2evZ849ZbACbnwQCIwRH57t18FxcXoZop0uQu0uzlIhJBlF/eWVzuce0sHeqPcDo+evVcg8Q==}
peerDependencies:
@ -8102,18 +8011,6 @@ packages:
dependencies:
vite: 5.1.4(@types/node@20.11.24)
/vitest-fetch-mock@0.2.2(vitest@1.2.2):
resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==}
engines: {node: '>=14.14.0'}
peerDependencies:
vitest: '>=0.16.0'
dependencies:
cross-fetch: 3.1.8
vitest: 1.2.2(@vitest/ui@1.3.1)
transitivePeerDependencies:
- encoding
dev: true
/vitest-fetch-mock@0.2.2(vitest@1.3.1):
resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==}
engines: {node: '>=14.14.0'}
@ -8126,63 +8023,6 @@ packages:
- encoding
dev: true
/vitest@1.2.2(@vitest/ui@1.3.1):
resolution: {integrity: sha512-d5Ouvrnms3GD9USIK36KG8OZ5bEvKEkITFtnGv56HFaSlbItJuYr7hv2Lkn903+AvRAgSixiamozUVfORUekjw==}
engines: {node: ^18.0.0 || >=20.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@types/node': ^18.0.0 || >=20.0.0
'@vitest/browser': ^1.0.0
'@vitest/ui': ^1.0.0
happy-dom: '*'
jsdom: '*'
peerDependenciesMeta:
'@edge-runtime/vm':
optional: true
'@types/node':
optional: true
'@vitest/browser':
optional: true
'@vitest/ui':
optional: true
happy-dom:
optional: true
jsdom:
optional: true
dependencies:
'@vitest/expect': 1.2.2
'@vitest/runner': 1.2.2
'@vitest/snapshot': 1.2.2
'@vitest/spy': 1.2.2
'@vitest/ui': 1.3.1(vitest@1.3.1)
'@vitest/utils': 1.2.2
acorn-walk: 8.3.2
cac: 6.7.14
chai: 4.4.1
debug: 4.3.4
execa: 8.0.1
local-pkg: 0.5.0
magic-string: 0.30.7
pathe: 1.1.2
picocolors: 1.0.0
std-env: 3.7.0
strip-literal: 1.3.0
tinybench: 2.6.0
tinypool: 0.8.2
vite: 5.1.4(sass@1.71.0)
vite-node: 1.2.2
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
- lightningcss
- sass
- stylus
- sugarss
- supports-color
- terser
dev: true
/vitest@1.3.1(@types/node@20.11.24)(@vitest/ui@1.3.1):
resolution: {integrity: sha512-/1QJqXs8YbCrfv/GPQ05wAZf2eakUPLPa18vkJAKE7RXOKfVHqMZZ1WlTjiwl6Gcn65M5vpNUB6EFLnEdRdEXQ==}
engines: {node: ^18.0.0 || >=20.0.0}
@ -8284,7 +8124,7 @@ packages:
tinybench: 2.6.0
tinypool: 0.8.2
vite: 5.1.4(sass@1.71.0)
vite-node: 1.3.1
vite-node: 1.3.1(@types/node@20.11.24)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less