@forgeailab/spark 0.2.0 → 0.4.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/package.json +8 -6
- package/src/commands/add.ts +3 -1
- package/src/commands/preset.ts +1 -0
- package/src/internal/board.ts +266 -304
- package/src/io/board.ts +29 -65
- package/src/io/env.ts +8 -3
- package/src/io/files.ts +22 -7
- package/packs/README.md +0 -130
- package/packs/ai-anthropic/files/app/api/ai/route.ts +0 -57
- package/packs/ai-anthropic/files/lib/anthropic.ts +0 -58
- package/packs/ai-anthropic/pack.toml +0 -31
- package/packs/ai-anthropic/skills/ai-feature-patterns/SKILL.md +0 -87
- package/packs/ai-anthropic/tasks.yaml +0 -9
- package/packs/ai-openai/files/app/api/ai-openai/route.ts +0 -55
- package/packs/ai-openai/files/lib/openai.ts +0 -21
- package/packs/ai-openai/pack.toml +0 -30
- package/packs/ai-openai/tasks.yaml +0 -9
- package/packs/analytics-posthog/files/components/PostHogProvider.tsx +0 -19
- package/packs/analytics-posthog/files/lib/posthog/client.ts +0 -20
- package/packs/analytics-posthog/files/lib/posthog/server.ts +0 -24
- package/packs/analytics-posthog/pack.toml +0 -35
- package/packs/analytics-posthog/tasks.yaml +0 -15
- package/packs/auth-better-auth/files/app/(auth)/login/page.tsx +0 -58
- package/packs/auth-better-auth/files/app/api/auth/[...all]/route.ts +0 -4
- package/packs/auth-better-auth/files/lib/auth.ts +0 -60
- package/packs/auth-better-auth/pack.toml +0 -28
- package/packs/auth-better-auth/tasks.yaml +0 -10
- package/packs/auth-better-auth-pg/files/app/api/auth/[...all]/route.ts +0 -4
- package/packs/auth-better-auth-pg/files/lib/auth.ts +0 -125
- package/packs/auth-better-auth-pg/pack.toml +0 -28
- package/packs/auth-better-auth-pg/tasks.yaml +0 -17
- package/packs/auth-supabase/files/app/(auth)/login/page.tsx +0 -64
- package/packs/auth-supabase/files/app/auth/callback/route.ts +0 -15
- package/packs/auth-supabase/files/middleware.ts +0 -41
- package/packs/auth-supabase/pack.toml +0 -34
- package/packs/auth-supabase/tasks.yaml +0 -10
- package/packs/db-postgres/files/compose/postgres.yml +0 -28
- package/packs/db-postgres/files/docker-compose.include.yml +0 -1
- package/packs/db-postgres/files/docker-compose.yml +0 -6
- package/packs/db-postgres/files/drizzle.config.ts +0 -10
- package/packs/db-postgres/files/lib/db/index.ts +0 -10
- package/packs/db-postgres/files/lib/db/schema.ts +0 -11
- package/packs/db-postgres/pack.toml +0 -53
- package/packs/db-postgres/tasks.yaml +0 -11
- package/packs/db-sqlite/files/drizzle.config.ts +0 -10
- package/packs/db-sqlite/files/lib/db.ts +0 -8
- package/packs/db-sqlite/files/lib/schema.ts +0 -13
- package/packs/db-sqlite/pack.toml +0 -34
- package/packs/db-sqlite/tasks.yaml +0 -6
- package/packs/db-supabase/files/lib/supabase/client.ts +0 -8
- package/packs/db-supabase/files/lib/supabase/server.ts +0 -27
- package/packs/db-supabase/pack.toml +0 -32
- package/packs/db-supabase/skills/supabase-patterns/SKILL.md +0 -82
- package/packs/db-supabase/tasks.yaml +0 -6
- package/packs/deploy-vercel/files/docs/deploy.md +0 -21
- package/packs/deploy-vercel/files/vercel.json +0 -4
- package/packs/deploy-vercel/pack.toml +0 -30
- package/packs/deploy-vercel/tasks.yaml +0 -14
- package/packs/docker-compose-dev/files/.env.docker.example +0 -2
- package/packs/docker-compose-dev/files/compose/redis.yml +0 -17
- package/packs/docker-compose-dev/files/docker-compose.include.yml +0 -1
- package/packs/docker-compose-dev/files/docker-compose.yml +0 -6
- package/packs/docker-compose-dev/pack.toml +0 -38
- package/packs/docker-compose-dev/tasks.yaml +0 -9
- package/packs/email-resend/files/app/api/email/test/route.ts +0 -38
- package/packs/email-resend/files/emails/welcome.tsx +0 -66
- package/packs/email-resend/files/lib/email.ts +0 -40
- package/packs/email-resend/pack.toml +0 -34
- package/packs/email-resend/tasks.yaml +0 -9
- package/packs/example/pack.toml +0 -69
- package/packs/payments-stripe/files/app/api/billing-portal/route.ts +0 -24
- package/packs/payments-stripe/files/app/api/checkout/route.ts +0 -58
- package/packs/payments-stripe/files/app/api/webhooks/stripe/route.ts +0 -84
- package/packs/payments-stripe/files/lib/stripe.ts +0 -158
- package/packs/payments-stripe/pack.toml +0 -45
- package/packs/payments-stripe/skills/stripe-patterns/SKILL.md +0 -93
- package/packs/payments-stripe/tasks.yaml +0 -16
- package/packs/sync-zero/files/components/ZeroProvider.tsx +0 -13
- package/packs/sync-zero/files/compose/zero-cache.yml +0 -26
- package/packs/sync-zero/files/docker-compose.include.yml +0 -1
- package/packs/sync-zero/files/docker-compose.yml +0 -6
- package/packs/sync-zero/files/lib/zero/client.ts +0 -18
- package/packs/sync-zero/files/lib/zero/schema.ts +0 -30
- package/packs/sync-zero/files/zero.config.ts +0 -26
- package/packs/sync-zero/pack.toml +0 -57
- package/packs/sync-zero/skills/zero-patterns/SKILL.md +0 -69
- package/packs/sync-zero/tasks.yaml +0 -16
- package/packs/testing-playwright/files/e2e/example.spec.ts +0 -7
- package/packs/testing-playwright/files/playwright.config.ts +0 -33
- package/packs/testing-playwright/pack.toml +0 -25
- package/packs/testing-playwright/tasks.yaml +0 -9
- package/packs/ui-shadcn/files/app/globals.css +0 -56
- package/packs/ui-shadcn/files/components/ui/button.tsx +0 -47
- package/packs/ui-shadcn/files/components/ui/card.tsx +0 -33
- package/packs/ui-shadcn/files/lib/utils.ts +0 -6
- package/packs/ui-shadcn/files/postcss.config.mjs +0 -7
- package/packs/ui-shadcn/files/tailwind.config.ts +0 -57
- package/packs/ui-shadcn/pack.toml +0 -44
- package/packs/ui-shadcn/skills/shadcn-dashboard-patterns/SKILL.md +0 -85
- package/packs/ui-shadcn/tasks.yaml +0 -6
- package/presets/docs-site.toml +0 -4
- package/presets/internal-tool.toml +0 -4
- package/presets/lean-saas.toml +0 -4
- package/presets/local-ai-mvp.toml +0 -4
- package/presets/saas-classic.toml +0 -4
- package/templates/README.md +0 -43
- package/templates/astro/README.md +0 -3
- package/templates/astro/template.toml +0 -4
- package/templates/astro-starlight/README.md +0 -3
- package/templates/astro-starlight/template.toml +0 -4
- package/templates/nextjs/.ai/architecture.md +0 -13
- package/templates/nextjs/.ai/board.md +0 -7
- package/templates/nextjs/.ai/product-spec.md +0 -11
- package/templates/nextjs/.claude/skills/.gitkeep +0 -0
- package/templates/nextjs/.codex/skills/.gitkeep +0 -0
- package/templates/nextjs/AGENTS.md +0 -95
- package/templates/nextjs/CLAUDE.md +0 -3
- package/templates/nextjs/README.md +0 -20
- package/templates/nextjs/app/(app)/home/page.tsx +0 -43
- package/templates/nextjs/app/(app)/home/posts-panel.tsx +0 -83
- package/templates/nextjs/app/(app)/layout.tsx +0 -12
- package/templates/nextjs/app/(auth)/login/page.tsx +0 -97
- package/templates/nextjs/app/globals.css +0 -23
- package/templates/nextjs/app/layout.tsx +0 -20
- package/templates/nextjs/app/page.tsx +0 -39
- package/templates/nextjs/lib/auth-placeholder.ts +0 -21
- package/templates/nextjs/lib/posts-placeholder.ts +0 -30
- package/templates/nextjs/next.config.ts +0 -5
- package/templates/nextjs/package.json +0 -26
- package/templates/nextjs/postcss.config.mjs +0 -7
- package/templates/nextjs/spark.config.json +0 -4
- package/templates/nextjs/template.toml +0 -4
- package/templates/nextjs/tsconfig.json +0 -27
- package/templates/nextjs/types/post.ts +0 -13
- package/templates/one/README.md +0 -5
- package/templates/one/template.toml +0 -4
- package/templates/vite-react/README.md +0 -3
- package/templates/vite-react/template.toml +0 -4
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import Link from 'next/link';
|
|
2
|
-
|
|
3
|
-
export default function PublicLanding() {
|
|
4
|
-
return (
|
|
5
|
-
<main className="min-h-screen flex items-center justify-center bg-gradient-to-b from-slate-50 to-slate-100 px-6 py-16">
|
|
6
|
-
<section className="w-full max-w-xl text-center">
|
|
7
|
-
<p className="text-xs font-semibold uppercase tracking-[0.2em] text-slate-500">
|
|
8
|
-
Spark
|
|
9
|
-
</p>
|
|
10
|
-
<h1 className="mt-3 text-4xl font-semibold tracking-tight text-slate-900 sm:text-5xl">
|
|
11
|
-
{'{{appName}}'}
|
|
12
|
-
</h1>
|
|
13
|
-
<p className="mt-4 text-base leading-relaxed text-slate-600">
|
|
14
|
-
A board-driven Next.js scaffold. Plan the work in{' '}
|
|
15
|
-
<code className="rounded bg-slate-200/70 px-1.5 py-0.5 text-sm text-slate-800">
|
|
16
|
-
.ai/board.md
|
|
17
|
-
</code>{' '}
|
|
18
|
-
and add capabilities with packs.
|
|
19
|
-
</p>
|
|
20
|
-
<div className="mt-8 flex items-center justify-center gap-3">
|
|
21
|
-
<Link
|
|
22
|
-
href="/login"
|
|
23
|
-
className="inline-flex items-center justify-center rounded-md bg-slate-900 px-5 py-2.5 text-sm font-medium text-white shadow-sm transition hover:bg-slate-800 focus:outline-none focus:ring-2 focus:ring-slate-900 focus:ring-offset-2"
|
|
24
|
-
>
|
|
25
|
-
Sign in
|
|
26
|
-
</Link>
|
|
27
|
-
<a
|
|
28
|
-
href="https://nextjs.org/docs/app"
|
|
29
|
-
target="_blank"
|
|
30
|
-
rel="noreferrer"
|
|
31
|
-
className="inline-flex items-center justify-center rounded-md border border-slate-300 bg-white px-5 py-2.5 text-sm font-medium text-slate-700 shadow-sm transition hover:bg-slate-50"
|
|
32
|
-
>
|
|
33
|
-
Docs
|
|
34
|
-
</a>
|
|
35
|
-
</div>
|
|
36
|
-
</section>
|
|
37
|
-
</main>
|
|
38
|
-
);
|
|
39
|
-
}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Placeholder session lookup.
|
|
3
|
-
*
|
|
4
|
-
* Returns `null` until an auth pack (e.g. `auth-better-auth`) replaces this
|
|
5
|
-
* module with a real `getSessionUser` that reads cookies / headers and
|
|
6
|
-
* resolves the active user.
|
|
7
|
-
*
|
|
8
|
-
* The shape returned here is the contract auth packs must honor: they should
|
|
9
|
-
* export the same `getSessionUser` signature so consumers in `app/(app)/**`
|
|
10
|
-
* keep working without further edits.
|
|
11
|
-
*/
|
|
12
|
-
export interface SessionUser {
|
|
13
|
-
id: string;
|
|
14
|
-
name: string;
|
|
15
|
-
email: string;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
export async function getSessionUser(): Promise<SessionUser | null> {
|
|
19
|
-
// TODO: replaced by `auth-better-auth` (or another auth pack).
|
|
20
|
-
return null;
|
|
21
|
-
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
import { useMemo } from 'react';
|
|
4
|
-
import type { Post } from '@/types/post';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Placeholder posts hook.
|
|
8
|
-
*
|
|
9
|
-
* Returns an empty list and a no-op `createPost` until a sync pack
|
|
10
|
-
* (e.g. `sync-zero`) replaces this module with a real Zero client query.
|
|
11
|
-
*
|
|
12
|
-
* Sync packs should export the same `usePosts` signature so the UI in
|
|
13
|
-
* `app/(app)/page.tsx` keeps working without further edits.
|
|
14
|
-
*/
|
|
15
|
-
export interface UsePostsResult {
|
|
16
|
-
posts: Post[];
|
|
17
|
-
createPost: (input: { title: string; body: string }) => Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
export function usePosts(): UsePostsResult {
|
|
21
|
-
return useMemo<UsePostsResult>(
|
|
22
|
-
() => ({
|
|
23
|
-
posts: [],
|
|
24
|
-
createPost: async () => {
|
|
25
|
-
// TODO: replaced by `sync-zero` (or another sync pack).
|
|
26
|
-
},
|
|
27
|
-
}),
|
|
28
|
-
[],
|
|
29
|
-
);
|
|
30
|
-
}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "spark-nextjs-template",
|
|
3
|
-
"version": "0.0.0",
|
|
4
|
-
"private": true,
|
|
5
|
-
"type": "module",
|
|
6
|
-
"packageManager": "bun@1.3.0",
|
|
7
|
-
"scripts": {
|
|
8
|
-
"dev": "next dev",
|
|
9
|
-
"build": "next build",
|
|
10
|
-
"start": "next start"
|
|
11
|
-
},
|
|
12
|
-
"dependencies": {
|
|
13
|
-
"next": "^15",
|
|
14
|
-
"react": "^19",
|
|
15
|
-
"react-dom": "^19"
|
|
16
|
-
},
|
|
17
|
-
"devDependencies": {
|
|
18
|
-
"@tailwindcss/postcss": "^4",
|
|
19
|
-
"@types/node": "^22",
|
|
20
|
-
"@types/react": "^19",
|
|
21
|
-
"@types/react-dom": "^19",
|
|
22
|
-
"postcss": "^8",
|
|
23
|
-
"tailwindcss": "^4",
|
|
24
|
-
"typescript": "^5"
|
|
25
|
-
}
|
|
26
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2017",
|
|
4
|
-
"lib": ["dom", "dom.iterable", "esnext"],
|
|
5
|
-
"allowJs": false,
|
|
6
|
-
"skipLibCheck": true,
|
|
7
|
-
"strict": true,
|
|
8
|
-
"noEmit": true,
|
|
9
|
-
"esModuleInterop": true,
|
|
10
|
-
"module": "esnext",
|
|
11
|
-
"moduleResolution": "bundler",
|
|
12
|
-
"resolveJsonModule": true,
|
|
13
|
-
"isolatedModules": true,
|
|
14
|
-
"jsx": "preserve",
|
|
15
|
-
"incremental": true,
|
|
16
|
-
"plugins": [
|
|
17
|
-
{
|
|
18
|
-
"name": "next"
|
|
19
|
-
}
|
|
20
|
-
],
|
|
21
|
-
"paths": {
|
|
22
|
-
"@/*": ["./*"]
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
|
|
26
|
-
"exclude": ["node_modules"]
|
|
27
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Post entity shape.
|
|
3
|
-
*
|
|
4
|
-
* Kept stable so packs that wire real data (e.g. `sync-zero`) can reuse the
|
|
5
|
-
* same type without diverging field names.
|
|
6
|
-
*/
|
|
7
|
-
export interface Post {
|
|
8
|
-
id: string;
|
|
9
|
-
userId: string;
|
|
10
|
-
title: string;
|
|
11
|
-
body: string;
|
|
12
|
-
createdAt: Date;
|
|
13
|
-
}
|
package/templates/one/README.md
DELETED
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
# One Template
|
|
2
|
-
|
|
3
|
-
This template is registered for pack compatibility planning, but it is not implemented yet. The planned scope is a full-stack web and native scaffold using the One framework: https://onestack.dev/
|
|
4
|
-
|
|
5
|
-
Implementation should follow the Bun workspace and CLI shape proven in the takeout2 reference project while keeping the generated scaffold minimal and ready for pack-based composition.
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
# Vite React Template
|
|
2
|
-
|
|
3
|
-
This template is registered for pack compatibility planning, but it is not implemented yet. The planned scope is a Vite-powered React scaffold for SPAs and internal tools, with no server runtime by default and the same AI workflow artifacts as the stable Next.js template.
|