create-win-project 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/LICENSE +21 -0
- package/README.md +187 -0
- package/ci/expo.yml +28 -0
- package/ci/laravel.yml +49 -0
- package/ci/nextjs.yml +29 -0
- package/ci/springboot.yml +33 -0
- package/ci/vite.yml +36 -0
- package/compatibility/profiles.json +237 -0
- package/docs/ARCHITECTURE.md +118 -0
- package/docs/CONTENT_MODEL.md +36 -0
- package/docs/DEPENDENCY_MAINTENANCE.md +31 -0
- package/index.js +431 -0
- package/lib/application-shapes.js +95 -0
- package/lib/banner.js +45 -0
- package/lib/catalog.js +343 -0
- package/lib/compatibility.js +116 -0
- package/lib/constants.js +3 -0
- package/lib/doctor.js +45 -0
- package/lib/files.js +158 -0
- package/lib/generator.js +366 -0
- package/lib/interview.js +77 -0
- package/lib/laravel-scaffold.js +3 -0
- package/lib/playbooks.js +172 -0
- package/lib/project-location.js +18 -0
- package/lib/scaffold.js +467 -0
- package/lib/stacks/context.js +27 -0
- package/lib/stacks/contract.js +142 -0
- package/lib/stacks/index.js +8 -0
- package/lib/stacks/laravel/architecture.js +27 -0
- package/lib/stacks/laravel/auth/oidc.js +13 -0
- package/lib/stacks/laravel/auth/public.js +28 -0
- package/lib/stacks/laravel/auth/sanctum.js +14 -0
- package/lib/stacks/laravel/auth/session.js +17 -0
- package/lib/stacks/laravel/composer.js +50 -0
- package/lib/stacks/laravel/generate.js +362 -0
- package/lib/stacks/laravel/index.js +18 -0
- package/lib/stacks/laravel/ui/blade.js +15 -0
- package/lib/stacks/laravel/ui/index.js +29 -0
- package/lib/stacks/laravel/ui/inertia-react.js +35 -0
- package/lib/stacks/laravel/ui/livewire.js +39 -0
- package/lib/stacks/laravel/ui/shared.js +14 -0
- package/lib/stacks/registry.js +42 -0
- package/lib/stacks/shared/contributions.js +25 -0
- package/lib/template.js +62 -0
- package/package.json +49 -0
- package/playbooks/INDEX.md +58 -0
- package/playbooks/capabilities/auth/oidc-resource-server.md +15 -0
- package/playbooks/capabilities/auth/spring-session.md +15 -0
- package/playbooks/capabilities/ci/github-actions.manifest.json +10 -0
- package/playbooks/capabilities/ci/github-actions.md +61 -0
- package/playbooks/capabilities/docker/docker.manifest.json +11 -0
- package/playbooks/capabilities/docker/overview.md +55 -0
- package/playbooks/capabilities/flyway/environments.md +5 -0
- package/playbooks/capabilities/flyway/flyway.manifest.json +12 -0
- package/playbooks/capabilities/flyway/migrations.md +7 -0
- package/playbooks/capabilities/flyway/testing.md +5 -0
- package/playbooks/capabilities/laravel/database.md +8 -0
- package/playbooks/capabilities/laravel/migrations.md +15 -0
- package/playbooks/capabilities/laravel/observability.md +8 -0
- package/playbooks/capabilities/laravel/oidc-resource-server.md +10 -0
- package/playbooks/capabilities/laravel/queues.md +8 -0
- package/playbooks/capabilities/laravel/sanctum-spa.md +8 -0
- package/playbooks/capabilities/laravel/scheduler.md +7 -0
- package/playbooks/capabilities/laravel/session-auth.md +8 -0
- package/playbooks/capabilities/laravel/storage-uploads.md +7 -0
- package/playbooks/capabilities/postgresql/architecture.md +5 -0
- package/playbooks/capabilities/postgresql/migrations.md +5 -0
- package/playbooks/capabilities/postgresql/postgresql.manifest.json +15 -0
- package/playbooks/capabilities/postgresql/schema-design.md +7 -0
- package/playbooks/capabilities/postgresql/security.md +5 -0
- package/playbooks/capabilities/postgresql/testing.md +5 -0
- package/playbooks/capabilities/prisma/architecture.md +5 -0
- package/playbooks/capabilities/prisma/migrations.md +11 -0
- package/playbooks/capabilities/prisma/prisma.manifest.json +14 -0
- package/playbooks/capabilities/prisma/runtime.md +5 -0
- package/playbooks/capabilities/prisma/schema.md +5 -0
- package/playbooks/capabilities/prisma/testing.md +5 -0
- package/playbooks/capabilities/supabase/architecture.md +5 -0
- package/playbooks/capabilities/supabase/authentication.md +5 -0
- package/playbooks/capabilities/supabase/expo.md +16 -0
- package/playbooks/capabilities/supabase/migrations.md +7 -0
- package/playbooks/capabilities/supabase/nextjs.md +24 -0
- package/playbooks/capabilities/supabase/rls.md +7 -0
- package/playbooks/capabilities/supabase/supabase.manifest.json +32 -0
- package/playbooks/capabilities/supabase/testing.md +5 -0
- package/playbooks/capabilities/supabase/vite.md +14 -0
- package/playbooks/concerns/axios.md +123 -0
- package/playbooks/concerns/next-safe-action.md +66 -0
- package/playbooks/concerns/next-themes.md +87 -0
- package/playbooks/concerns/nuqs.md +59 -0
- package/playbooks/concerns/t3-env.md +48 -0
- package/playbooks/concerns/tanstack-query.md +145 -0
- package/playbooks/concerns/zod.md +174 -0
- package/playbooks/concerns/zustand.md +93 -0
- package/playbooks/devops/makefile.manifest.json +10 -0
- package/playbooks/devops/makefile.md +556 -0
- package/playbooks/devops/pr-template.manifest.json +10 -0
- package/playbooks/devops/pr-template.md +106 -0
- package/playbooks/platform/laravel-ui/blade/architecture.md +5 -0
- package/playbooks/platform/laravel-ui/blade/runtime.md +5 -0
- package/playbooks/platform/laravel-ui/blade/security.md +5 -0
- package/playbooks/platform/laravel-ui/blade/structure.md +5 -0
- package/playbooks/platform/laravel-ui/blade/testing.md +5 -0
- package/playbooks/platform/laravel-ui/inertia-react/architecture.md +5 -0
- package/playbooks/platform/laravel-ui/inertia-react/runtime.md +5 -0
- package/playbooks/platform/laravel-ui/inertia-react/security.md +5 -0
- package/playbooks/platform/laravel-ui/inertia-react/structure.md +5 -0
- package/playbooks/platform/laravel-ui/inertia-react/testing.md +5 -0
- package/playbooks/platform/laravel-ui/livewire/architecture.md +5 -0
- package/playbooks/platform/laravel-ui/livewire/runtime.md +5 -0
- package/playbooks/platform/laravel-ui/livewire/security.md +5 -0
- package/playbooks/platform/laravel-ui/livewire/structure.md +5 -0
- package/playbooks/platform/laravel-ui/livewire/testing.md +5 -0
- package/playbooks/platform/mobile.manifest.json +17 -0
- package/playbooks/platform/mobile.md +15 -0
- package/playbooks/platform/web.manifest.json +17 -0
- package/playbooks/platform/web.md +17 -0
- package/playbooks/stack/expo/architecture.md +27 -0
- package/playbooks/stack/expo/runtime.md +14 -0
- package/playbooks/stack/expo/security.md +18 -0
- package/playbooks/stack/expo/structure.md +26 -0
- package/playbooks/stack/expo/testing.md +13 -0
- package/playbooks/stack/laravel/architecture.md +34 -0
- package/playbooks/stack/laravel/runtime.md +27 -0
- package/playbooks/stack/laravel/security.md +23 -0
- package/playbooks/stack/laravel/structure.md +29 -0
- package/playbooks/stack/laravel/testing.md +22 -0
- package/playbooks/stack/laravel-ui.manifest.json +42 -0
- package/playbooks/stack/laravel.manifest.json +35 -0
- package/playbooks/stack/nextjs/architecture.md +62 -0
- package/playbooks/stack/nextjs/runtime.md +31 -0
- package/playbooks/stack/nextjs/security.md +32 -0
- package/playbooks/stack/nextjs/structure.md +50 -0
- package/playbooks/stack/nextjs/testing.md +20 -0
- package/playbooks/stack/nextjs.manifest.json +49 -0
- package/playbooks/stack/no-frontend.manifest.json +25 -0
- package/playbooks/stack/none.manifest.json +21 -0
- package/playbooks/stack/react-native.manifest.json +49 -0
- package/playbooks/stack/react-vite/architecture.md +33 -0
- package/playbooks/stack/react-vite/runtime.md +13 -0
- package/playbooks/stack/react-vite/security.md +16 -0
- package/playbooks/stack/react-vite/structure.md +23 -0
- package/playbooks/stack/react-vite/testing.md +12 -0
- package/playbooks/stack/react-vite.manifest.json +46 -0
- package/playbooks/stack/springboot/architecture.md +40 -0
- package/playbooks/stack/springboot/runtime.md +28 -0
- package/playbooks/stack/springboot/security.md +28 -0
- package/playbooks/stack/springboot/structure.md +30 -0
- package/playbooks/stack/springboot/testing.md +22 -0
- package/playbooks/stack/springboot.manifest.json +38 -0
- package/playbooks/styling/css-modules-extensions.md +267 -0
- package/playbooks/styling/css-modules.manifest.json +11 -0
- package/playbooks/styling/native-styles.manifest.json +9 -0
- package/playbooks/styling/native-styles.md +29 -0
- package/playbooks/styling/tailwind-extensions.md +182 -0
- package/playbooks/styling/tailwind.manifest.json +11 -0
- package/playbooks/universal/accessibility.manifest.json +11 -0
- package/playbooks/universal/accessibility.md +45 -0
- package/playbooks/universal/coding-rules.manifest.json +12 -0
- package/playbooks/universal/coding-rules.md +281 -0
- package/playbooks/universal/error-handling.manifest.json +10 -0
- package/playbooks/universal/error-handling.md +21 -0
- package/playbooks/universal/git-conventions.manifest.json +10 -0
- package/playbooks/universal/git-conventions.md +186 -0
- package/playbooks/universal/observability.manifest.json +10 -0
- package/playbooks/universal/observability.md +29 -0
- package/playbooks/universal/security.manifest.json +11 -0
- package/playbooks/universal/security.md +30 -0
- package/playbooks/universal/typescript.manifest.json +11 -0
- package/playbooks/universal/typescript.md +272 -0
- package/scripts/compatibility-matrix.mjs +48 -0
- package/scripts/validate-content.mjs +76 -0
- package/scripts/verify-generated.mjs +153 -0
- package/templates/agents/nextjs.md +47 -0
- package/templates/agents/react-native.md +48 -0
- package/templates/agents/react-vite.md +48 -0
- package/templates/docker/compose/postgres.yml +29 -0
- package/templates/docker/compose/springboot.yml +69 -0
- package/templates/docker/compose/supabase.yml +18 -0
- package/templates/docker/compose-prod/springboot.yml +64 -0
- package/templates/docker/dockerfile/laravel-inertia.dev.dockerfile +21 -0
- package/templates/docker/dockerfile/laravel.dev.dockerfile +12 -0
- package/templates/docker/dockerfile/laravel.prod.dockerfile +13 -0
- package/templates/docker/dockerfile/nextjs.dev.dockerfile +6 -0
- package/templates/docker/dockerfile/nextjs.prod.dockerfile +18 -0
- package/templates/docker/dockerfile/springboot.dev.dockerfile +5 -0
- package/templates/docker/dockerfile/springboot.prod.dockerfile +10 -0
- package/templates/docker/dockerfile/vite.dev.dockerfile +6 -0
- package/templates/docker/dockerfile/vite.prod.dockerfile +12 -0
- package/templates/gitignore/base.gitignore +32 -0
- package/templates/gitignore/nextjs.gitignore +40 -0
- package/templates/gitignore/react-native.gitignore +43 -0
- package/templates/gitignore/react-vite.gitignore +39 -0
- package/templates/makefile/frontend.mk +31 -0
- package/templates/makefile/laravel.mk +47 -0
- package/templates/makefile/postgres.mk +40 -0
- package/templates/makefile/springboot.mk +125 -0
- package/templates/makefile/supabase.mk +42 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Makefile — {{PROJECT_NAME}}
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
# Variables
|
|
6
|
+
COMPOSE := docker compose
|
|
7
|
+
FRONTEND := $(COMPOSE) exec frontend
|
|
8
|
+
BACKEND := $(COMPOSE) exec backend
|
|
9
|
+
DB := $(COMPOSE) exec db
|
|
10
|
+
WORKDIR := $(PWD)
|
|
11
|
+
|
|
12
|
+
# =============================================================================
|
|
13
|
+
# Default
|
|
14
|
+
# =============================================================================
|
|
15
|
+
|
|
16
|
+
.DEFAULT_GOAL := help
|
|
17
|
+
|
|
18
|
+
.PHONY: help
|
|
19
|
+
help: ## Show all available commands
|
|
20
|
+
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
|
|
21
|
+
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
22
|
+
|
|
23
|
+
# =============================================================================
|
|
24
|
+
# Project Lifecycle
|
|
25
|
+
# =============================================================================
|
|
26
|
+
|
|
27
|
+
.PHONY: dev up down restart logs logs-front logs-back clean
|
|
28
|
+
|
|
29
|
+
dev: ## Start all containers and follow logs
|
|
30
|
+
$(COMPOSE) up --build
|
|
31
|
+
|
|
32
|
+
up: ## Start all containers in background
|
|
33
|
+
$(COMPOSE) up -d --build
|
|
34
|
+
|
|
35
|
+
down: ## Stop and remove all containers
|
|
36
|
+
$(COMPOSE) down
|
|
37
|
+
|
|
38
|
+
restart: down up ## Stop then start all containers
|
|
39
|
+
|
|
40
|
+
logs: ## Follow logs from all containers
|
|
41
|
+
$(COMPOSE) logs -f
|
|
42
|
+
|
|
43
|
+
logs-front: ## Follow frontend logs only
|
|
44
|
+
$(COMPOSE) logs -f frontend
|
|
45
|
+
|
|
46
|
+
logs-back: ## Follow backend logs only
|
|
47
|
+
$(COMPOSE) logs -f backend
|
|
48
|
+
|
|
49
|
+
clean: ## Remove containers, volumes, orphans (full reset)
|
|
50
|
+
$(COMPOSE) down -v --remove-orphans
|
|
51
|
+
|
|
52
|
+
# =============================================================================
|
|
53
|
+
# Individual Services
|
|
54
|
+
# =============================================================================
|
|
55
|
+
|
|
56
|
+
.PHONY: dev-front dev-back
|
|
57
|
+
|
|
58
|
+
dev-front: ## Start frontend container only
|
|
59
|
+
$(COMPOSE) up frontend --build
|
|
60
|
+
|
|
61
|
+
dev-back: ## Start backend + DB containers only
|
|
62
|
+
$(COMPOSE) up backend db --build
|
|
63
|
+
|
|
64
|
+
# =============================================================================
|
|
65
|
+
# Database
|
|
66
|
+
# =============================================================================
|
|
67
|
+
|
|
68
|
+
.PHONY: migrate seed db-reset db-shell
|
|
69
|
+
|
|
70
|
+
migrate: ## Run pending Flyway migrations
|
|
71
|
+
$(BACKEND) mvn flyway:migrate
|
|
72
|
+
|
|
73
|
+
seed: ## Seed the database with dev data
|
|
74
|
+
$(DB) psql -U $${POSTGRES_USER} -d $${POSTGRES_DB} -f /docker-entrypoint-initdb.d/seed.sql
|
|
75
|
+
|
|
76
|
+
db-reset: ## Drop + migrate + seed (full fresh slate)
|
|
77
|
+
$(BACKEND) mvn flyway:clean flyway:migrate
|
|
78
|
+
$(MAKE) seed
|
|
79
|
+
|
|
80
|
+
db-shell: ## Open psql shell inside DB container
|
|
81
|
+
$(DB) psql -U $${POSTGRES_USER} -d $${POSTGRES_DB}
|
|
82
|
+
|
|
83
|
+
# =============================================================================
|
|
84
|
+
# Shells
|
|
85
|
+
# =============================================================================
|
|
86
|
+
|
|
87
|
+
.PHONY: shell-front shell-back
|
|
88
|
+
|
|
89
|
+
shell-front: ## Open shell inside frontend container
|
|
90
|
+
$(FRONTEND) sh
|
|
91
|
+
|
|
92
|
+
shell-back: ## Open shell inside backend container
|
|
93
|
+
$(BACKEND) sh
|
|
94
|
+
|
|
95
|
+
# =============================================================================
|
|
96
|
+
# Quality
|
|
97
|
+
# =============================================================================
|
|
98
|
+
|
|
99
|
+
.PHONY: lint test test-front test-back
|
|
100
|
+
|
|
101
|
+
lint: ## Run ESLint on frontend
|
|
102
|
+
$(FRONTEND) npm run lint
|
|
103
|
+
|
|
104
|
+
test: test-front test-back ## Run all tests
|
|
105
|
+
|
|
106
|
+
test-front: ## Run Vitest (frontend)
|
|
107
|
+
$(FRONTEND) npm run test
|
|
108
|
+
|
|
109
|
+
test-back: ## Run JUnit (backend)
|
|
110
|
+
$(BACKEND) mvn test
|
|
111
|
+
|
|
112
|
+
# =============================================================================
|
|
113
|
+
# Production
|
|
114
|
+
# =============================================================================
|
|
115
|
+
|
|
116
|
+
.PHONY: build prod-up prod-down
|
|
117
|
+
|
|
118
|
+
build: ## Build production Docker images
|
|
119
|
+
$(COMPOSE) -f docker-compose.prod.yml build
|
|
120
|
+
|
|
121
|
+
prod-up: ## Start production containers
|
|
122
|
+
$(COMPOSE) -f docker-compose.prod.yml up -d
|
|
123
|
+
|
|
124
|
+
prod-down: ## Stop production containers
|
|
125
|
+
$(COMPOSE) -f docker-compose.prod.yml down
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# =============================================================================
|
|
2
|
+
# Makefile — {{PROJECT_NAME}} ({{STACK}} + Supabase)
|
|
3
|
+
# =============================================================================
|
|
4
|
+
|
|
5
|
+
.DEFAULT_GOAL := help
|
|
6
|
+
NPM_DIR := {{FRONTEND_DIR}}
|
|
7
|
+
|
|
8
|
+
.PHONY: help dev build lint test test-e2e db-start db-stop db-reset db-test db-types
|
|
9
|
+
|
|
10
|
+
help: ## Show all commands
|
|
11
|
+
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
|
|
12
|
+
| awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
13
|
+
|
|
14
|
+
dev: ## Start dev server + Supabase local
|
|
15
|
+
npm --prefix $(NPM_DIR) run supabase:start && npm --prefix $(NPM_DIR) run dev
|
|
16
|
+
|
|
17
|
+
build: ## Build frontend for production
|
|
18
|
+
npm --prefix $(NPM_DIR) run build
|
|
19
|
+
|
|
20
|
+
lint: ## Run ESLint
|
|
21
|
+
npm --prefix $(NPM_DIR) run lint
|
|
22
|
+
|
|
23
|
+
test: ## Run Vitest
|
|
24
|
+
npm --prefix $(NPM_DIR) run test --if-present
|
|
25
|
+
|
|
26
|
+
test-e2e: ## Run Playwright E2E tests
|
|
27
|
+
npm --prefix $(NPM_DIR) run test:e2e --if-present
|
|
28
|
+
|
|
29
|
+
db-start: ## Start local Supabase stack
|
|
30
|
+
npm --prefix $(NPM_DIR) run supabase:start
|
|
31
|
+
|
|
32
|
+
db-stop: ## Stop local Supabase stack
|
|
33
|
+
npm --prefix $(NPM_DIR) run supabase:stop
|
|
34
|
+
|
|
35
|
+
db-reset: ## Reset local DB (apply migrations + seed)
|
|
36
|
+
npm --prefix $(NPM_DIR) run supabase:reset
|
|
37
|
+
|
|
38
|
+
db-test: ## Run local database and RLS tests
|
|
39
|
+
npm --prefix $(NPM_DIR) run supabase:test
|
|
40
|
+
|
|
41
|
+
db-types: ## Regenerate TypeScript types from Supabase schema
|
|
42
|
+
npm --prefix $(NPM_DIR) run supabase:types
|