create-prenta 1.3.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.
- package/CHANGELOG.md +964 -0
- package/LICENSE +21 -0
- package/assets/prisma/migrations/0001_init/migration.sql +941 -0
- package/assets/prisma/migrations/0002_media_usage_field_path/migration.sql +11 -0
- package/assets/prisma/migrations/0003_ai_crawler_hits/migration.sql +21 -0
- package/assets/prisma/migrations/0004_drop_search_vector/migration.sql +4 -0
- package/assets/prisma/migrations/0005_script_tag_delivery_controls/migration.sql +8 -0
- package/assets/prisma/migrations/0006_totp_last_step/migration.sql +4 -0
- package/assets/prisma/migrations/0007_workflow_fk_drop_dead_enums/migration.sql +27 -0
- package/assets/prisma/migrations/0008_form_delivery_attempts/migration.sql +29 -0
- package/assets/prisma/migrations/0009_webhook_secret_rotation/migration.sql +6 -0
- package/assets/prisma/migrations/0010_media_is_decorative/migration.sql +3 -0
- package/assets/prisma/migrations/0011_media_content_hash/migration.sql +4 -0
- package/assets/prisma/migrations/0012_rename_to_prenta/migration.sql +89 -0
- package/assets/prisma/migrations/migration_lock.toml +3 -0
- package/assets/prisma/schema.prisma +989 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +182 -0
- package/dist/index.js.map +1 -0
- package/dist/options.d.ts +160 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +206 -0
- package/dist/options.js.map +1 -0
- package/dist/scaffold.d.ts +45 -0
- package/dist/scaffold.d.ts.map +1 -0
- package/dist/scaffold.js +2163 -0
- package/dist/scaffold.js.map +1 -0
- package/dist/templates/admin-page.ts.template.d.ts +24 -0
- package/dist/templates/admin-page.ts.template.d.ts.map +1 -0
- package/dist/templates/admin-page.ts.template.js +145 -0
- package/dist/templates/admin-page.ts.template.js.map +1 -0
- package/dist/templates/astro-site.d.ts +36 -0
- package/dist/templates/astro-site.d.ts.map +1 -0
- package/dist/templates/astro-site.js +918 -0
- package/dist/templates/astro-site.js.map +1 -0
- package/dist/templates/login-page.ts.template.d.ts +14 -0
- package/dist/templates/login-page.ts.template.d.ts.map +1 -0
- package/dist/templates/login-page.ts.template.js +143 -0
- package/dist/templates/login-page.ts.template.js.map +1 -0
- package/dist/templates/marketing-custom.d.ts +56 -0
- package/dist/templates/marketing-custom.d.ts.map +1 -0
- package/dist/templates/marketing-custom.js +814 -0
- package/dist/templates/marketing-custom.js.map +1 -0
- package/dist/templates/prenta.config.ts.template.d.ts +3 -0
- package/dist/templates/prenta.config.ts.template.d.ts.map +1 -0
- package/dist/templates/prenta.config.ts.template.js +253 -0
- package/dist/templates/prenta.config.ts.template.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"marketing-custom.js","sourceRoot":"","sources":["../../src/templates/marketing-custom.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prenta.config.ts.template.d.ts","sourceRoot":"","sources":["../../src/templates/prenta.config.ts.template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AA2EpD,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAgMpE"}
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
const PLUGIN_IMPORTS = {
|
|
2
|
+
seo: { importName: 'seoPlugin', package: '@prenta/plugin-seo' },
|
|
3
|
+
blocks: { importName: 'blocksPlugin', package: '@prenta/plugin-blocks' },
|
|
4
|
+
forms: { importName: 'formsPlugin', package: '@prenta/plugin-forms' },
|
|
5
|
+
email: { importName: 'emailPlugin', package: '@prenta/plugin-email' },
|
|
6
|
+
media: { importName: 'mediaPlugin', package: '@prenta/plugin-media' },
|
|
7
|
+
redirects: { importName: 'redirectsPlugin', package: '@prenta/plugin-redirects' },
|
|
8
|
+
navigation: { importName: 'navigationPlugin', package: '@prenta/plugin-navigation' },
|
|
9
|
+
commerce: { importName: 'commercePlugin', package: '@prenta/plugin-commerce' },
|
|
10
|
+
ai: { importName: 'aiPlugin', package: '@prenta/plugin-ai' },
|
|
11
|
+
consent: { importName: 'consentPlugin', package: '@prenta/plugin-consent' },
|
|
12
|
+
};
|
|
13
|
+
function buildSeoBlock(options) {
|
|
14
|
+
const name = options.projectName;
|
|
15
|
+
const siteUrlNote = options.framework === 'astro-split'
|
|
16
|
+
? ` // Public apex (Astro). Do NOT set this to the Next CMS host origin — View live
|
|
17
|
+
// and SEO canonicals use it. Admin → Settings → General can override without redeploy.`
|
|
18
|
+
: ` // Site-wide SEO defaults. Admins can override most fields in Admin → Settings
|
|
19
|
+
// without redeploying. \`siteUrl\` must match NEXT_PUBLIC_SITE_URL in production
|
|
20
|
+
// (no trailing slash). See DEPLOYMENT.md and the Prenta docs "Prototype → Production"
|
|
21
|
+
// guide for the full launch checklist.`;
|
|
22
|
+
return `${siteUrlNote}
|
|
23
|
+
seo: {
|
|
24
|
+
siteUrl: process.env.NEXT_PUBLIC_SITE_URL,
|
|
25
|
+
siteName: '${name}',
|
|
26
|
+
defaultMetaDescription: 'Welcome to ${name}.',
|
|
27
|
+
// Upload a 1200×630 image in Media and set defaultSocialImageAssetId in Admin → SEO,
|
|
28
|
+
// or place a file at public/og-default.png and use an absolute URL in production.
|
|
29
|
+
defaultOgImage: '/og-default.png',
|
|
30
|
+
organization: {
|
|
31
|
+
name: '${name}',
|
|
32
|
+
},
|
|
33
|
+
robots: {
|
|
34
|
+
noIndexNonProduction: true,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
`;
|
|
38
|
+
}
|
|
39
|
+
function buildPluginConfig(plugin) {
|
|
40
|
+
switch (plugin) {
|
|
41
|
+
case 'email':
|
|
42
|
+
return ` emailPlugin({
|
|
43
|
+
provider: 'resend',
|
|
44
|
+
from: 'noreply@example.com',
|
|
45
|
+
})`;
|
|
46
|
+
case 'media':
|
|
47
|
+
return ` mediaPlugin({
|
|
48
|
+
maxFileSize: 10 * 1024 * 1024,
|
|
49
|
+
allowedTypes: ['image/*', 'application/pdf', 'video/mp4'],
|
|
50
|
+
})`;
|
|
51
|
+
case 'commerce':
|
|
52
|
+
return ` commercePlugin({
|
|
53
|
+
currency: 'USD',
|
|
54
|
+
stripe: { webhookEndpoint: '/api/cms/stripe/webhook' },
|
|
55
|
+
})`;
|
|
56
|
+
case 'ai':
|
|
57
|
+
return ` aiPlugin({
|
|
58
|
+
provider: 'openai',
|
|
59
|
+
features: ['scoring', 'suggestions', 'alt-text'],
|
|
60
|
+
})`;
|
|
61
|
+
case 'consent':
|
|
62
|
+
return ` consentPlugin({
|
|
63
|
+
privacyUrl: '/privacy-policy',
|
|
64
|
+
termsUrl: '/terms',
|
|
65
|
+
})`;
|
|
66
|
+
default:
|
|
67
|
+
return ` ${PLUGIN_IMPORTS[plugin]?.importName ?? plugin + 'Plugin'}()`;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
export function generatePrentaConfig(options) {
|
|
71
|
+
const marketingCustom = options.template === 'marketing-custom';
|
|
72
|
+
const imports = [
|
|
73
|
+
`import { defineConfig } from '@prenta/core/config';`,
|
|
74
|
+
`import { blogPostCollection } from '@prenta/core';`,
|
|
75
|
+
];
|
|
76
|
+
for (const plugin of options.plugins) {
|
|
77
|
+
const info = PLUGIN_IMPORTS[plugin];
|
|
78
|
+
if (info) {
|
|
79
|
+
imports.push(`import { ${info.importName} } from '${info.package}';`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
// The marketing-custom template declares its section-type schema in a
|
|
83
|
+
// separate module so the same array can be shared with tooling/tests.
|
|
84
|
+
// Workspace scaffolds (astro-split) host the schema in the shared section
|
|
85
|
+
// kit; imported RELATIVELY (not by package name) because this file is also
|
|
86
|
+
// loaded by Next's config loader, which only compiles relative TS imports.
|
|
87
|
+
const workspaceKit = options.framework === 'astro-split';
|
|
88
|
+
if (marketingCustom) {
|
|
89
|
+
imports.push(workspaceKit
|
|
90
|
+
? `import { marketingSectionTypes } from '../../packages/sections/src/types';`
|
|
91
|
+
: `import { marketingSectionTypes } from './src/sections/types';`);
|
|
92
|
+
}
|
|
93
|
+
const pluginEntries = options.plugins.map(buildPluginConfig);
|
|
94
|
+
// Active `sections.types` for marketing-custom; a commented example otherwise
|
|
95
|
+
// so default scaffolds document the capability without an unrenderable type.
|
|
96
|
+
const sectionsBlock = marketingCustom
|
|
97
|
+
? workspaceKit
|
|
98
|
+
? ` // Custom section types for the Page/Post editor. Schema lives in the shared
|
|
99
|
+
// section kit (packages/sections/src/types.ts); the matching renderers are
|
|
100
|
+
// registered in packages/sections/src/register.tsx (imported by the admin
|
|
101
|
+
// page here and by apps/site's PageSections). See SECTIONS.md.
|
|
102
|
+
sections: {
|
|
103
|
+
types: marketingSectionTypes,
|
|
104
|
+
},
|
|
105
|
+
`
|
|
106
|
+
: ` // Custom section types for the Page/Post editor. Schema lives in
|
|
107
|
+
// src/sections/types.ts; the matching public renderers are registered in
|
|
108
|
+
// src/sections/register.tsx (imported by app/(site)/layout.tsx). See SECTIONS.md.
|
|
109
|
+
sections: {
|
|
110
|
+
types: marketingSectionTypes,
|
|
111
|
+
},
|
|
112
|
+
`
|
|
113
|
+
: ` // Custom section types for the Page/Post editor. Declare them here and they
|
|
114
|
+
// appear in the Add Section gallery with a field-driven inspector — no
|
|
115
|
+
// separate registry to bundle. Register the matching public renderer with
|
|
116
|
+
// \`registerSectionRenderer\` from '@prenta/sections-react'.
|
|
117
|
+
//
|
|
118
|
+
// sections: {
|
|
119
|
+
// types: [
|
|
120
|
+
// {
|
|
121
|
+
// id: 'pricing',
|
|
122
|
+
// name: 'Pricing Table',
|
|
123
|
+
// scope: ['page'],
|
|
124
|
+
// fields: [
|
|
125
|
+
// { key: 'heading', label: 'Heading', type: 'text', required: true },
|
|
126
|
+
// {
|
|
127
|
+
// key: 'plans',
|
|
128
|
+
// label: 'Plans',
|
|
129
|
+
// type: 'repeater',
|
|
130
|
+
// rowLabel: 'Plan',
|
|
131
|
+
// fields: [
|
|
132
|
+
// { key: 'name', label: 'Plan name', type: 'text', required: true },
|
|
133
|
+
// { key: 'price', label: 'Price', type: 'text' },
|
|
134
|
+
// ],
|
|
135
|
+
// },
|
|
136
|
+
// ],
|
|
137
|
+
// defaultContent: { heading: 'Plans', plans: [] },
|
|
138
|
+
// },
|
|
139
|
+
// ],
|
|
140
|
+
// },
|
|
141
|
+
`;
|
|
142
|
+
// Canonical page-content model (ADR 0001): a page/post's renderable content
|
|
143
|
+
// is the ordered `PageSection[]` array stored at `data.sections`. The
|
|
144
|
+
// section-based Page/Post editors read/write this `json` field, and the
|
|
145
|
+
// public site renders it with `<Sections>` from `@prenta/sections-react`.
|
|
146
|
+
// Posts additionally keep a rich-text `body` field for the article-body
|
|
147
|
+
// section's field-source mode.
|
|
148
|
+
const config = `${imports.join('\n')}
|
|
149
|
+
|
|
150
|
+
export default defineConfig({
|
|
151
|
+
// This file is imported by the admin (client) bundle, so it must stay free of
|
|
152
|
+
// platform adapters — they pull in \`node:*\` and break the client build. These
|
|
153
|
+
// are client-safe shorthands; Prenta auto-wires the matching platform adapter
|
|
154
|
+
// (storage, etc.) server-side when the API handler boots. To register a custom
|
|
155
|
+
// adapter, call \`setStorageAdapter()\` in your API route — never here.
|
|
156
|
+
platform: {
|
|
157
|
+
database: { provider: 'prisma' },
|
|
158
|
+
storage: { provider: '${options.platform === 'vercel' ? 'vercel-blob' : options.platform === 'aws' ? 's3' : 'local'}' },
|
|
159
|
+
},
|
|
160
|
+
|
|
161
|
+
auth: {
|
|
162
|
+
providers: [],
|
|
163
|
+
credentials: { enabled: true },
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
collections: {
|
|
167
|
+
pages: {
|
|
168
|
+
slug: 'pages',
|
|
169
|
+
labels: { singular: 'Page', plural: 'Pages' },
|
|
170
|
+
type: 'page',
|
|
171
|
+
urlPrefix: '',
|
|
172
|
+
seo: { sitemapPriority: 0.8, sitemapChangeFreq: 'monthly' },
|
|
173
|
+
fields: {
|
|
174
|
+
title: { type: 'text', label: 'Title', required: true },
|
|
175
|
+
slug: { type: 'slug', label: 'URL Slug', from: 'title' },
|
|
176
|
+
// Full route this page renders at (e.g. '/', '/about', '/services/seo').
|
|
177
|
+
// Distinct from \`slug\`: \`path\` lets a page model nested/custom routes;
|
|
178
|
+
// the renderer falls back to \`/\${slug}\` when it's blank.
|
|
179
|
+
path: { type: 'text', label: 'Path' },
|
|
180
|
+
// Ordered list of page-editor sections (flat PageSection[] JSON). The
|
|
181
|
+
// section-based Page Editor reads/writes this; the public site renders
|
|
182
|
+
// it with <Sections>. Declared as \`json\` so the field-access layer
|
|
183
|
+
// doesn't strip it on write.
|
|
184
|
+
sections: { type: 'json', label: 'Sections' },
|
|
185
|
+
featuredImage: { type: 'media', label: 'Featured Image', accept: ['image/*'] },
|
|
186
|
+
// Organizational tags (slugs from the page-tags collection) + tree
|
|
187
|
+
// parent. Must be declared so Pages list bulk-tag / nest writes persist.
|
|
188
|
+
tags: { type: 'json', label: 'Tags' },
|
|
189
|
+
primaryTag: { type: 'text', label: 'Primary Tag' },
|
|
190
|
+
parentPageId: { type: 'text', label: 'Parent Page' },
|
|
191
|
+
metaTitle: { type: 'text', label: 'Meta Title' },
|
|
192
|
+
metaDescription: { type: 'text', label: 'Meta Description' },
|
|
193
|
+
ogImage: { type: 'media', label: 'OG Image', accept: ['image/*'] },
|
|
194
|
+
},
|
|
195
|
+
},
|
|
196
|
+
// Hidden collection backing the Pages tag system. Tag documents store
|
|
197
|
+
// name (title) + slug + color; pages reference them by slug in data.tags.
|
|
198
|
+
'page-tags': {
|
|
199
|
+
slug: 'page-tags',
|
|
200
|
+
labels: { singular: 'Page Tag', plural: 'Page Tags' },
|
|
201
|
+
fields: {
|
|
202
|
+
title: { type: 'text', label: 'Name', required: true },
|
|
203
|
+
slug: { type: 'slug', label: 'Slug', from: 'title' },
|
|
204
|
+
color: { type: 'text', label: 'Color' },
|
|
205
|
+
description: { type: 'text', label: 'Description' },
|
|
206
|
+
sortOrder: { type: 'number', label: 'Sort Order' },
|
|
207
|
+
active: { type: 'boolean', label: 'Active' },
|
|
208
|
+
},
|
|
209
|
+
admin: { hidden: true },
|
|
210
|
+
},
|
|
211
|
+
// Canonical blog-post schema (sections, body, excerpt, category,
|
|
212
|
+
// publishDate, SEO fields, related posts) — guaranteed compatible with
|
|
213
|
+
// the admin Post Editor. Override or extend via the factory's options:
|
|
214
|
+
// blogPostCollection({ extraFields: { … }, urlPrefix: 'news' }).
|
|
215
|
+
posts: blogPostCollection(),
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
globals: {
|
|
219
|
+
'site-settings': {
|
|
220
|
+
slug: 'site-settings',
|
|
221
|
+
label: 'Site Settings',
|
|
222
|
+
access: { read: () => true },
|
|
223
|
+
fields: {
|
|
224
|
+
siteName: { type: 'text', label: 'Site Name' },
|
|
225
|
+
description: { type: 'text', label: 'Description' },
|
|
226
|
+
phone: { type: 'text', label: 'Phone' },
|
|
227
|
+
email: { type: 'email', label: 'Email' },
|
|
228
|
+
},
|
|
229
|
+
},
|
|
230
|
+
},
|
|
231
|
+
|
|
232
|
+
${sectionsBlock}${buildSeoBlock(options)}
|
|
233
|
+
plugins: [
|
|
234
|
+
${pluginEntries.join(',\n')}${pluginEntries.length > 0 ? ',' : ''}
|
|
235
|
+
],
|
|
236
|
+
|
|
237
|
+
admin: {
|
|
238
|
+
path: '${options.adminPath}',${options.loginPath !== options.adminPath
|
|
239
|
+
? `
|
|
240
|
+
// Split login: auth screens (login, setup wizard, password reset) live on
|
|
241
|
+
// their own mount; signed-out visits to \`path\` get a 404 lookalike, and
|
|
242
|
+
// emailed reset/invite links point here.
|
|
243
|
+
loginPath: '${options.loginPath}',`
|
|
244
|
+
: ''}
|
|
245
|
+
branding: {
|
|
246
|
+
name: '${options.projectName}',
|
|
247
|
+
},
|
|
248
|
+
},
|
|
249
|
+
});
|
|
250
|
+
`;
|
|
251
|
+
return config;
|
|
252
|
+
}
|
|
253
|
+
//# sourceMappingURL=prenta.config.ts.template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prenta.config.ts.template.js","sourceRoot":"","sources":["../../src/templates/prenta.config.ts.template.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "create-prenta",
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Scaffold a new Prenta CMS project",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "https://github.com/actuate-media/prenta.git",
|
|
8
|
+
"directory": "create-prenta"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"type": "module",
|
|
14
|
+
"bin": {
|
|
15
|
+
"create-prenta": "dist/index.js"
|
|
16
|
+
},
|
|
17
|
+
"exports": {
|
|
18
|
+
".": "./dist/index.js",
|
|
19
|
+
"./scaffold": {
|
|
20
|
+
"types": "./dist/scaffold.d.ts",
|
|
21
|
+
"import": "./dist/scaffold.js",
|
|
22
|
+
"default": "./dist/scaffold.js"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"files": [
|
|
26
|
+
"dist",
|
|
27
|
+
"assets",
|
|
28
|
+
"CHANGELOG.md"
|
|
29
|
+
],
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"chalk": "^5.4.0",
|
|
32
|
+
"commander": "^13.0.0",
|
|
33
|
+
"ora": "^8.1.0",
|
|
34
|
+
"prompts": "^2.4.2"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/prompts": "^2.4.9",
|
|
38
|
+
"tsx": "^4.0.0",
|
|
39
|
+
"typescript": "^5.7.0",
|
|
40
|
+
"vitest": "^4.1.0"
|
|
41
|
+
},
|
|
42
|
+
"keywords": [
|
|
43
|
+
"prenta",
|
|
44
|
+
"cms",
|
|
45
|
+
"scaffolding",
|
|
46
|
+
"create"
|
|
47
|
+
],
|
|
48
|
+
"license": "MIT",
|
|
49
|
+
"scripts": {
|
|
50
|
+
"dev": "tsc --watch",
|
|
51
|
+
"build": "tsc",
|
|
52
|
+
"type-check": "tsc --noEmit",
|
|
53
|
+
"sync:prisma": "tsx scripts/sync-prisma-assets.ts",
|
|
54
|
+
"sync:astro-example": "tsx scripts/sync-astro-example.ts",
|
|
55
|
+
"test": "vitest run",
|
|
56
|
+
"test:watch": "vitest"
|
|
57
|
+
}
|
|
58
|
+
}
|