@aegis-cms/types
v1.1.0
Published
Contrat officiel des thèmes Aegis CMS : types du manifest, des jetons visuels, des pages Puck et de l'API publique.
Maintainers
Readme
@aegis-cms/types
Contrat officiel des thèmes Aegis CMS (contractVersion 1).
Types TypeScript du manifest (aegis.config.json), des jetons visuels
(theme.json), des pages Puck (pages/*.json) et de l'API publique.
Aucune dépendance.
Installation
npm install -D @aegis-cms/typesUsage
Écrivez vos fichiers en TypeScript avec un typage complet, puis exportez-les en JSON pour le ZIP :
import { defineManifest, defineTheme, definePage } from "@aegis-cms/types";
export const manifest = defineManifest({
name: "mon-theme",
label: "Mon thème",
version: "1.0.0",
contractVersion: 1,
pages: [{ slug: "accueil", title: "Accueil", file: "pages/accueil.json" }],
});
export const theme = defineTheme({
serif: "'Georgia', serif",
heading: "#1b1b1e",
text: "#514443",
muted: "#9a8c8b",
surface: "#f3ece9",
primary: "#7e5353",
primaryText: "#ffffff",
});
export const accueil = definePage({
content: [
{
type: "Hero",
props: {
id: "Hero-1",
title: "Bienvenue",
subtitle: "Un site propulsé par Aegis.",
src: "",
ctaLabel: "Découvrir",
ctaHref: "#",
},
},
],
root: {},
});Script d'export JSON :
import { writeFileSync } from "fs";
import { manifest, theme, accueil } from "./src/theme";
writeFileSync("build/aegis.config.json", JSON.stringify(manifest, null, 2));
writeFileSync("build/theme.json", JSON.stringify(theme, null, 2));
writeFileSync("build/pages/accueil.json", JSON.stringify(accueil, null, 2));
// puis zippez build/ et importez-le dans Dashboard → TemplatesCôté rendu : lire les données du thème
import { PUBLIC_API, type ApiResponse, type TemplateDataEntry } from "@aegis-cms/types";
const res = await fetch(PUBLIC_API.data("produits"));
const json: ApiResponse<TemplateDataEntry[]> = await res.json();Documentation complète
Guide pas à pas : page Docs → Thèmes → Développement de thème de votre
instance Aegis (/docs/developpement-de-theme).
