create-nextblock 0.15.5 → 0.15.8
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/package.json +50 -26
- package/templates/nextblock-template/app/api/cron/reset-sandbox/route.ts +14 -0
- package/templates/nextblock-template/app/layout.tsx +7 -3
- package/templates/nextblock-template/app/lib/seo.ts +319 -311
- package/templates/nextblock-template/docs/05-DEVELOPER-GUIDE.md +25 -19
- package/templates/nextblock-template/docs/06-CLI-AND-SCAFFOLDING.md +1 -1
- package/templates/nextblock-template/docs/08-NEXTBLOCK-CORTEX-AI-ARCHITECTURE.md +2 -2
- package/templates/nextblock-template/docs/12-VERCEL-DEPLOYMENT.md +32 -9
- package/templates/nextblock-template/docs/TECHNICAL_SPECIFICATION.md +540 -542
- package/templates/nextblock-template/docs/assets/lighthouse-scores.png +0 -0
- package/templates/nextblock-template/package.json +14 -1
- package/templates/nextblock-template/public/assets/nextblock-banner.jpg +0 -0
package/package.json
CHANGED
|
@@ -1,26 +1,50 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "create-nextblock",
|
|
3
|
-
"version": "0.15.
|
|
4
|
-
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
6
|
-
"bin": {
|
|
7
|
-
"create-nextblock": "bin/create-nextblock.js"
|
|
8
|
-
},
|
|
9
|
-
"scripts": {
|
|
10
|
-
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
-
"sync-template": "node ./scripts/sync-template.js",
|
|
12
|
-
"prepack": "npm run sync-template"
|
|
13
|
-
},
|
|
14
|
-
"keywords": [
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
"
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "create-nextblock",
|
|
3
|
+
"version": "0.15.8",
|
|
4
|
+
"description": "Scaffold a production-ready NextBlock CMS project — the open-source, full-stack AI-native CMS for Next.js 16, Supabase, and Tailwind CSS.",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"create-nextblock": "bin/create-nextblock.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"test": "echo \"Error: no test specified\" && exit 1",
|
|
11
|
+
"sync-template": "node ./scripts/sync-template.js",
|
|
12
|
+
"prepack": "npm run sync-template"
|
|
13
|
+
},
|
|
14
|
+
"keywords": [
|
|
15
|
+
"create-nextblock",
|
|
16
|
+
"nextblock",
|
|
17
|
+
"cms",
|
|
18
|
+
"nextjs",
|
|
19
|
+
"nextjs16",
|
|
20
|
+
"supabase",
|
|
21
|
+
"rsc",
|
|
22
|
+
"tailwind",
|
|
23
|
+
"tiptap",
|
|
24
|
+
"fullstack",
|
|
25
|
+
"open-source",
|
|
26
|
+
"scaffolding",
|
|
27
|
+
"starter",
|
|
28
|
+
"cli"
|
|
29
|
+
],
|
|
30
|
+
"author": "NextBlock CMS (https://nextblock.dev)",
|
|
31
|
+
"license": "AGPL-3.0-or-later",
|
|
32
|
+
"repository": {
|
|
33
|
+
"type": "git",
|
|
34
|
+
"url": "git+https://github.com/nextblock-cms/nextblock.git",
|
|
35
|
+
"directory": "apps/create-nextblock"
|
|
36
|
+
},
|
|
37
|
+
"bugs": {
|
|
38
|
+
"url": "https://github.com/nextblock-cms/nextblock/issues"
|
|
39
|
+
},
|
|
40
|
+
"homepage": "https://nextblock.dev",
|
|
41
|
+
"type": "module",
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@clack/prompts": "^0.8.1",
|
|
44
|
+
"@nextblock-cms/db": "latest",
|
|
45
|
+
"chalk": "^5.6.2",
|
|
46
|
+
"commander": "^14.0.1",
|
|
47
|
+
"execa": "^9.3.0",
|
|
48
|
+
"fs-extra": "^11.3.2"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
@@ -2621,6 +2621,20 @@ async function seedFakeStoreData(sql: SqlClient, supabaseAdmin: any) {
|
|
|
2621
2621
|
console.log(`[Sandbox Reset] Created new demo user with ID: ${demoUser.id}`);
|
|
2622
2622
|
} else {
|
|
2623
2623
|
console.log(`[Sandbox Reset] Found existing demo user with ID: ${demoUser.id}`);
|
|
2624
|
+
// The demo credentials are published (README + community posts), so any visitor can
|
|
2625
|
+
// change this account's password and lock everyone else out. The SQL reset below does
|
|
2626
|
+
// not touch auth.users, so re-assert the known-good password on every run — otherwise a
|
|
2627
|
+
// single password change survives every future reset.
|
|
2628
|
+
const { error: resetPwError } = await supabaseAdmin.auth.admin.updateUserById(demoUser.id, {
|
|
2629
|
+
password: 'password',
|
|
2630
|
+
email_confirm: true,
|
|
2631
|
+
});
|
|
2632
|
+
if (resetPwError) {
|
|
2633
|
+
// Non-fatal: the rest of the sandbox reset is still worth doing.
|
|
2634
|
+
console.error('[Sandbox Reset] Failed to restore demo password:', resetPwError);
|
|
2635
|
+
} else {
|
|
2636
|
+
console.log('[Sandbox Reset] Restored demo user password to the published default.');
|
|
2637
|
+
}
|
|
2624
2638
|
}
|
|
2625
2639
|
|
|
2626
2640
|
const userId = demoUser.id;
|
|
@@ -33,7 +33,11 @@ import { headers, cookies, draftMode } from 'next/headers';
|
|
|
33
33
|
import { verifyPackageOnline } from '@nextblock-cms/db/server';
|
|
34
34
|
import { unstable_cache } from 'next/cache';
|
|
35
35
|
import { createStaticSupabaseClient, getSiteSettings } from './lib/site-settings';
|
|
36
|
-
import {
|
|
36
|
+
import {
|
|
37
|
+
DEFAULT_OG_IMAGE,
|
|
38
|
+
DEFAULT_OG_IMAGE_WIDTH,
|
|
39
|
+
DEFAULT_OG_IMAGE_HEIGHT,
|
|
40
|
+
} from './lib/seo';
|
|
37
41
|
import { resolveActiveLogo } from '../lib/logos/active-logo';
|
|
38
42
|
import {
|
|
39
43
|
isSupabaseConfigured,
|
|
@@ -489,8 +493,8 @@ export async function generateMetadata(): Promise<Metadata> {
|
|
|
489
493
|
images: [
|
|
490
494
|
{
|
|
491
495
|
url: DEFAULT_OG_IMAGE,
|
|
492
|
-
width:
|
|
493
|
-
height:
|
|
496
|
+
width: DEFAULT_OG_IMAGE_WIDTH,
|
|
497
|
+
height: DEFAULT_OG_IMAGE_HEIGHT,
|
|
494
498
|
alt: siteTitle,
|
|
495
499
|
},
|
|
496
500
|
],
|