bhooai-nexus 2.0.4 → 2.0.6
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/README.md +138 -27
- package/package.json +1 -1
- package/packages/nexus-admin/package.json +1 -1
- package/packages/nexus-admin/src/App.tsx +124 -120
- package/packages/nexus-admin/src/alertCenter.tsx +3 -2
- package/packages/nexus-admin/src/api.ts +11 -11
- package/packages/nexus-admin/src/icons.tsx +104 -0
- package/packages/nexus-admin/src/index.css +77 -19
- package/packages/nexus-ads/package.json +1 -1
- package/packages/nexus-ai-client/package.json +1 -1
- package/packages/nexus-auth/package.json +1 -1
- package/packages/nexus-cache/package.json +1 -1
- package/packages/nexus-cli/package.json +1 -1
- package/packages/nexus-cli/src/commands/add.ts +8 -3
- package/packages/nexus-cli/src/commands/dev.ts +18 -2
- package/packages/nexus-cli/src/commands/init.ts +3 -0
- package/packages/nexus-cli/src/devPanel.ts +138 -11
- package/packages/nexus-cli/src/devServiceManager.ts +210 -11
- package/packages/nexus-cli/src/index.ts +19 -0
- package/packages/nexus-cli/templates/base/apps/admin/package.json.ejs +1 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/App.tsx +38 -4127
- package/packages/nexus-cli/templates/base/apps/admin/src/alertCenter.tsx +3 -2
- package/packages/nexus-cli/templates/base/apps/admin/src/api.ts +11 -11
- package/packages/nexus-cli/templates/base/apps/admin/src/components/ThemeCentre.tsx +201 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/AppearancePanel.tsx +37 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/Dashboard.tsx +441 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/Login.tsx +69 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/NotifyPanel.tsx +102 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/RailPanel.tsx +133 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/SettingsDialog.tsx +217 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/ConfirmDialog.tsx +38 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/LintChecks.tsx +54 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/PageHead.tsx +13 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/PageHero.tsx +15 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/icons.tsx +104 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/index.css +77 -19
- package/packages/nexus-cli/templates/base/apps/admin/src/lib/constants.ts +94 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/lib/theme.ts +80 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/lib/types.ts +39 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/lib/utils.ts +147 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/main.tsx.ejs +3 -2
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Config.tsx +108 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Databases.tsx +122 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Environment.tsx +69 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Logs.tsx +270 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Monitoring.tsx +88 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Overview.tsx +108 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Payments.tsx +68 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Plugins.tsx +36 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Processes.tsx +67 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Schema.tsx +130 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/Users.tsx +144 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AddProviderDialog.tsx +150 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiAgents.tsx +31 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiChatPlayground.tsx +208 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiProviders.tsx +276 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiSettings.tsx +84 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderCard.tsx +145 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderGroup.tsx +50 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderKeyDialog.tsx +66 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/monitoring/RequestSeriesChart.tsx +70 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/overview/TrafficChart.tsx +32 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/OrdersTable.tsx +27 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/PaymentKeysDialog.tsx +74 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/TestConsole.tsx +173 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/TransactionsTable.tsx +26 -0
- package/packages/nexus-cli/templates/base/apps/admin/src/style.css +6517 -0
- package/packages/nexus-cli/templates/base/apps/admin/vite.config.ts.ejs +13 -8
- package/packages/nexus-cli/templates/base/apps/ai-server/main.py.ejs +2 -2
- package/packages/nexus-cli/templates/base/apps/backend/src/routes/index.ts.ejs +1 -1
- package/packages/nexus-cli/templates/base/apps/frontend/src/App.tsx.ejs +10 -0
- package/packages/nexus-cli/templates/base/apps/frontend/src/main.tsx.ejs +2 -10
- package/packages/nexus-cli/templates/base/apps/frontend/vite.config.ts.ejs +9 -4
- package/packages/nexus-cli/templates/base/docker-compose.yml.ejs +2 -2
- package/packages/nexus-core/package.json +4 -1
- package/packages/nexus-core/src/app/adminModule.ts +579 -48
- package/packages/nexus-core/src/app/aiProxyModule.ts +160 -0
- package/packages/nexus-core/src/app/aiSchemaModule.ts +130 -0
- package/packages/nexus-core/src/app/authModule.ts +243 -0
- package/packages/nexus-core/src/app/createNexusApp.ts +73 -2
- package/packages/nexus-core/src/app/databaseAdminModule.ts +222 -0
- package/packages/nexus-core/src/app/index.ts +2 -0
- package/packages/nexus-core/src/app/lintModule.ts +102 -0
- package/packages/nexus-core/src/app/preflightModule.ts +259 -0
- package/packages/nexus-core/src/app/roleCatalog.ts +78 -0
- package/packages/nexus-core/src/app/userModel.ts +101 -0
- package/packages/nexus-core/src/config/runtimeJson.ts +25 -2
- package/packages/nexus-crypto/package.json +1 -1
- package/packages/nexus-data/package.json +1 -1
- package/packages/nexus-email/package.json +1 -1
- package/packages/nexus-examples/examples/ai-chat/apps/frontend/src/App.tsx +101 -0
- package/packages/nexus-examples/examples/ai-chat/apps/frontend/src/main.tsx +5 -102
- package/packages/nexus-examples/package.json +1 -1
- package/packages/nexus-graphql/package.json +1 -1
- package/packages/nexus-payments/package.json +1 -1
- package/packages/nexus-plugins/package.json +1 -1
- package/packages/nexus-postcss/package.json +1 -1
- package/packages/nexus-realtime/package.json +1 -1
- package/packages/nexus-safe-goto/package.json +1 -1
- package/packages/nexus-telemetry/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# BhooAI Nexus
|
|
1
|
+
# BhooAI Nexus
|
|
2
2
|
|
|
3
3
|
A production-ready Node.js full-stack framework. One config file, one CLI, multi-app monorepo.
|
|
4
4
|
|
|
5
|
-
> v2 is a fresh workspace
|
|
5
|
+
> v2 is a fresh workspace — reuses v1's packages, removes the
|
|
6
6
|
> cluster subsystem (Docker handles scaling), rewrites the CLI, and adds a Laravel-style
|
|
7
7
|
> convention layer on top.
|
|
8
8
|
|
|
@@ -38,36 +38,121 @@ nexus init my-app --no-install
|
|
|
38
38
|
|
|
39
39
|
## Architecture at a glance
|
|
40
40
|
|
|
41
|
+
N backends × N frontends, all discovered by a single admin SPA. Each backend is an isolated `createNexusApp()` instance with its own port, routes folder, storage root, and per-app config. Docker handles horizontal scaling — `docker compose up --scale backend-main=4` — so the v1 cluster subsystem (master/slave mesh, node agents, autoscaler, load balancer) is gone entirely.
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
┌─────────────────────── Docker Host ───────────────────────┐
|
|
45
|
+
│ │
|
|
46
|
+
│ frontend(s) Vite + React, served via Nginx │
|
|
47
|
+
│ admin Vite + React, wraps @bhooai/nexus-admin │
|
|
48
|
+
│ ai-server FastAPI :8000 (optional Python sidecar) │
|
|
49
|
+
│ │
|
|
50
|
+
│ ▲ ▲ ▲ │
|
|
51
|
+
│ │ │ │ │
|
|
52
|
+
│ ┌──────┴──────┐ ┌───────┴───────┐ ┌──────┴──────┐ │
|
|
53
|
+
│ │ backend-main│ │ backend-shop │ │ backend-… │ │
|
|
54
|
+
│ │ :4000 │ │ :4010 │ │ :4020+ │ │
|
|
55
|
+
│ └──────┬──────┘ └───────┬───────┘ └──────┬──────┘ │
|
|
56
|
+
│ │ │ │ │
|
|
57
|
+
│ └──────────┬───────┴──────────────────┘ │
|
|
58
|
+
│ ▼ │
|
|
59
|
+
│ ┌────────┬────────┬──────────┬─────────┬───────────┐ │
|
|
60
|
+
│ │ MongoDB│ Redis │ storage/ │ S3/CDN │ queue │ │
|
|
61
|
+
│ └────────┴────────┴──────────┴─────────┴───────────┘ │
|
|
62
|
+
│ │
|
|
63
|
+
│ .nexus-ports.json ← stable port registry │
|
|
64
|
+
│ nexus.config.ts ← single source of truth │
|
|
65
|
+
│ docker-compose.yml ← orchestration │
|
|
66
|
+
└────────────────────────────────────────────────────────────┘
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Workspace layout
|
|
70
|
+
|
|
41
71
|
```
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
│ .nexus-ports.json ← stable port registry │
|
|
50
|
-
│ nexus.config.ts │
|
|
51
|
-
│ docker-compose.yml │
|
|
52
|
-
└──────────────────────────────────────────────────────┘
|
|
72
|
+
apps/
|
|
73
|
+
├── backend/ Node.js backend — auto-discovery, createNexusApp()
|
|
74
|
+
├── backend-shop/ add more backends via `nexus add backend <name>`
|
|
75
|
+
├── frontend/ Vite + React
|
|
76
|
+
├── frontend-shop/ add more frontends via `nexus add frontend <name> [--for <backend>]`
|
|
77
|
+
├── admin/ wraps @bhooai/nexus-admin
|
|
78
|
+
└── ai-server/ FastAPI sidecar (optional)
|
|
53
79
|
```
|
|
54
80
|
|
|
55
|
-
|
|
81
|
+
### Per-backend `src/` convention (Laravel-style)
|
|
82
|
+
|
|
83
|
+
Each backend lives under `apps/<backend>/` and follows a flat, auto-discovered folder convention inspired by Laravel. `createNexusApp()` scans these folders at boot — no manual registration.
|
|
56
84
|
|
|
57
85
|
```
|
|
58
|
-
src/
|
|
59
|
-
├── main.ts
|
|
60
|
-
|
|
61
|
-
├──
|
|
62
|
-
├──
|
|
63
|
-
├──
|
|
64
|
-
|
|
65
|
-
├──
|
|
66
|
-
├──
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
├──
|
|
70
|
-
├──
|
|
86
|
+
apps/<backend>/src/
|
|
87
|
+
├── main.ts # 20-line createNexusApp() entry point
|
|
88
|
+
│
|
|
89
|
+
├── routes/ # HTTP endpoints — *.ts, auto-discovered
|
|
90
|
+
├── graphql/ # Federated subgraphs — *.graph.ts → /graphql
|
|
91
|
+
├── ws/ # WebSocket rooms — *.room.ts → /ws
|
|
92
|
+
│
|
|
93
|
+
├── mail/
|
|
94
|
+
│ ├── templates/ # *.ejs email templates
|
|
95
|
+
│ └── mailables/ # classes extending Mailable
|
|
96
|
+
│
|
|
97
|
+
├── errors/
|
|
98
|
+
│ ├── pages/ # 404.html · 500.html · 403.html · 503.html · maintenance.html
|
|
99
|
+
│ └── Handler.ts # global exception handler
|
|
100
|
+
│
|
|
101
|
+
├── models/ # nexus-data ODM models (schemas, hooks, populate)
|
|
102
|
+
├── services/ # business logic layer
|
|
103
|
+
├── repositories/ # DB query layer (encapsulates ODM calls)
|
|
104
|
+
├── controllers/ # optional route extraction (thin handlers)
|
|
105
|
+
├── middleware/ # route-level middleware
|
|
106
|
+
├── validators/ # zod schemas
|
|
107
|
+
├── jobs/ # queue jobs — *Job.ts
|
|
108
|
+
├── listeners/ # event subscribers — On*.ts (auto-wired)
|
|
109
|
+
├── events/ # domain event classes
|
|
110
|
+
├── policies/ # authorization rules — *Policy.ts
|
|
111
|
+
├── resources/ # API response transformers — *Resource.ts
|
|
112
|
+
├── requests/ # form-request classes — *Request.ts (validation + auth)
|
|
113
|
+
├── helpers/ # pure utilities
|
|
114
|
+
├── config/ # app-level config (NOT framework config)
|
|
115
|
+
│
|
|
116
|
+
├── database/
|
|
117
|
+
│ ├── seeds/ # *Seeder.ts — via `nexus db:seed`
|
|
118
|
+
│ └── migrations/ # <timestamp>_*.ts — via `nexus db:migrate`
|
|
119
|
+
│
|
|
120
|
+
├── providers/ # *ServiceProvider.ts — DI registration (register + boot)
|
|
121
|
+
├── plugins/ # project-local plugins — <name>/index.ts
|
|
122
|
+
├── types/ # shared TS types
|
|
123
|
+
└── constants/ # app constants
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**Auto-discovery map** — what `createNexusApp()` scans at boot:
|
|
127
|
+
|
|
128
|
+
| Folder | Pattern | Mounted as |
|
|
129
|
+
|---|---|---|
|
|
130
|
+
| `routes/` | `*.ts` (`defineRoutes` default export) | HTTP routes (optional per-file prefix) |
|
|
131
|
+
| `graphql/` | `*.graph.ts` | Federated supergraph under `/graphql` |
|
|
132
|
+
| `ws/` | `*.room.ts` | WS rooms under `/ws` |
|
|
133
|
+
| `mail/templates/` | `*.ejs` | Email rendering |
|
|
134
|
+
| `mail/mailables/` | `*.ts extends Mailable` | Mailable classes |
|
|
135
|
+
| `errors/pages/` | `<status>.html` | Error page lookups |
|
|
136
|
+
| `errors/Handler.ts` | single file | Global exception handler |
|
|
137
|
+
| `events/` | `*.ts` | Domain event classes |
|
|
138
|
+
| `listeners/` | `On*.ts` | Auto-wired to matching events |
|
|
139
|
+
| `jobs/` | `*Job.ts` | Queue jobs |
|
|
140
|
+
| `policies/` | `*Policy.ts` | Authorization registry |
|
|
141
|
+
| `providers/` | `*ServiceProvider.ts` | DI registrations (register + boot) |
|
|
142
|
+
| `database/seeds/` | `*Seeder.ts` | `nexus db:seed` |
|
|
143
|
+
| `database/migrations/` | `*.ts` | `nexus db:migrate` |
|
|
144
|
+
| `plugins/<name>/index.ts` | folder | Local plugins |
|
|
145
|
+
| `config/*.ts` | folder | Merged into app config |
|
|
146
|
+
|
|
147
|
+
**Sibling `storage/`** (gitignored, per-backend):
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
apps/<backend>/storage/
|
|
151
|
+
├── uploads/ # PUBLIC — served at GET /uploads/*
|
|
152
|
+
├── private/ # signed-URL only — GET /files/:id?sig=…
|
|
153
|
+
├── temp/ # multipart assembly chunks (cleaned up)
|
|
154
|
+
├── cache/
|
|
155
|
+
└── logs/
|
|
71
156
|
```
|
|
72
157
|
|
|
73
158
|
## CLI
|
|
@@ -131,6 +216,31 @@ Prefer narrower imports for smaller bundles? Use the sub-path exports
|
|
|
131
216
|
(`bhooai-nexus/core`, `bhooai-nexus/data`, `bhooai-nexus/ai-client`, …) or the
|
|
132
217
|
scoped packages (`@bhooai/nexus-core`, `@bhooai/nexus-data`, …) directly.
|
|
133
218
|
|
|
219
|
+
## Packages
|
|
220
|
+
|
|
221
|
+
18 workspace packages ship under `packages/`, each independently versioned and re-exported by the umbrella `bhooai-nexus` package.
|
|
222
|
+
|
|
223
|
+
| Package | Scope | Import path | Purpose |
|
|
224
|
+
|---|---|---|---|
|
|
225
|
+
| nexus-admin | `@bhooai/nexus-admin` | `bhooai-nexus/admin` | Admin SPA — Apps-tab-first, live registry/health/logs/config/users/payments/AI |
|
|
226
|
+
| nexus-ads | `@bhooai/nexus-ads` | — | Advertising module |
|
|
227
|
+
| nexus-ai-client | `@bhooai/nexus-ai-client` | `bhooai-nexus/ai-client` | AI provider client (streaming, provider switching) |
|
|
228
|
+
| nexus-auth | `@bhooai/nexus-auth` | `bhooai-nexus/auth` | Authentication (JWT, OAuth, sessions, refresh tokens) |
|
|
229
|
+
| nexus-cache | `@bhooai/nexus-cache` | `bhooai-nexus/cache` | Caching layer (Redis-backed) |
|
|
230
|
+
| nexus-cli | `@bhooai/nexus-cli` | `bhooai-nexus/cli` | CLI — init, dev, build, test, scaffolding, plugins, queue, db |
|
|
231
|
+
| nexus-core | `@bhooai/nexus-core` | `bhooai-nexus/core` | Core — `createNexusApp()`, auto-discovery, HTTP, storage facade, abstractions |
|
|
232
|
+
| nexus-crypto | `@bhooai/nexus-crypto` | `bhooai-nexus/crypto` | Cryptography utilities |
|
|
233
|
+
| nexus-data | `@bhooai/nexus-data` | `bhooai-nexus/data` | Custom ODM for MongoDB (schemas, hooks, populate) |
|
|
234
|
+
| nexus-email | `@bhooai/nexus-email` | `bhooai-nexus/email` | Email sending (Mailable classes, EJS templates) |
|
|
235
|
+
| nexus-examples | `@bhooai/nexus-examples` | `bhooai-nexus/examples` | 10 working examples, each demoing a framework slice |
|
|
236
|
+
| nexus-graphql | `@bhooai/nexus-graphql` | `bhooai-nexus/graphql` | GraphQL federation layer (subgraphs, supergraph) |
|
|
237
|
+
| nexus-payments | `@bhooai/nexus-payments` | `bhooai-nexus/payments` | Payments (Razorpay, PayPal, HMAC webhook verify) |
|
|
238
|
+
| nexus-plugins | `@bhooai/nexus-plugins` | `bhooai-nexus/plugins` | Plugin system (new/install/remove/list) |
|
|
239
|
+
| nexus-postcss | `@bhooai/nexus-postcss` | `bhooai-nexus/postcss` | PostCSS preset — Tailwind, nesting, autoprefix, minify |
|
|
240
|
+
| nexus-realtime | `@bhooai/nexus-realtime` | `bhooai-nexus/realtime` | WebSocket rooms, presence, typing |
|
|
241
|
+
| nexus-safe-goto | `@bhooai/nexus-safe-goto` | `bhooai-nexus/safe-goto` | Safe external-link navigation (noopener/noreferrer, confirm dialog) |
|
|
242
|
+
| nexus-telemetry | `@bhooai/nexus-telemetry` | `bhooai-nexus/telemetry` | Telemetry / observability |
|
|
243
|
+
|
|
134
244
|
## Maintenance mode
|
|
135
245
|
|
|
136
246
|
```
|
|
@@ -153,6 +263,7 @@ EJS templating. 27 tests, all green.
|
|
|
153
263
|
|
|
154
264
|
- P0–P12 shipped (skeleton, app factory, abstractions, storage, CLI, plugins, db, queue,
|
|
155
265
|
generators, port registry, examples, docker, admin strip + Apps tab)
|
|
266
|
+
- 18 workspace packages under `packages/` (see § Packages above)
|
|
156
267
|
- Admin rebuilt as a fresh Apps-tab-first SPA with live backend endpoints
|
|
157
268
|
(registry, health, request logs, config, users, payments, AI proxy)
|
|
158
269
|
- `bhooai-nexus` is the publishable main package — umbrella import + auto-installing init
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bhooai-nexus",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.6",
|
|
4
4
|
"description": "BhooAI Nexus - a Node-based full-stack framework (websockets, GraphQL federation, inbuilt security, custom ODM, OAuth, payments, WebRTC, AI, plugins). v2: multi-app, Laravel-style folders, Docker-based scaling.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "BhooAI",
|