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.
Files changed (100) hide show
  1. package/README.md +138 -27
  2. package/package.json +1 -1
  3. package/packages/nexus-admin/package.json +1 -1
  4. package/packages/nexus-admin/src/App.tsx +124 -120
  5. package/packages/nexus-admin/src/alertCenter.tsx +3 -2
  6. package/packages/nexus-admin/src/api.ts +11 -11
  7. package/packages/nexus-admin/src/icons.tsx +104 -0
  8. package/packages/nexus-admin/src/index.css +77 -19
  9. package/packages/nexus-ads/package.json +1 -1
  10. package/packages/nexus-ai-client/package.json +1 -1
  11. package/packages/nexus-auth/package.json +1 -1
  12. package/packages/nexus-cache/package.json +1 -1
  13. package/packages/nexus-cli/package.json +1 -1
  14. package/packages/nexus-cli/src/commands/add.ts +8 -3
  15. package/packages/nexus-cli/src/commands/dev.ts +18 -2
  16. package/packages/nexus-cli/src/commands/init.ts +3 -0
  17. package/packages/nexus-cli/src/devPanel.ts +138 -11
  18. package/packages/nexus-cli/src/devServiceManager.ts +210 -11
  19. package/packages/nexus-cli/src/index.ts +19 -0
  20. package/packages/nexus-cli/templates/base/apps/admin/package.json.ejs +1 -0
  21. package/packages/nexus-cli/templates/base/apps/admin/src/App.tsx +38 -4127
  22. package/packages/nexus-cli/templates/base/apps/admin/src/alertCenter.tsx +3 -2
  23. package/packages/nexus-cli/templates/base/apps/admin/src/api.ts +11 -11
  24. package/packages/nexus-cli/templates/base/apps/admin/src/components/ThemeCentre.tsx +201 -0
  25. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/AppearancePanel.tsx +37 -0
  26. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/Dashboard.tsx +441 -0
  27. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/Login.tsx +69 -0
  28. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/NotifyPanel.tsx +102 -0
  29. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/RailPanel.tsx +133 -0
  30. package/packages/nexus-cli/templates/base/apps/admin/src/components/shell/SettingsDialog.tsx +217 -0
  31. package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/ConfirmDialog.tsx +38 -0
  32. package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/LintChecks.tsx +54 -0
  33. package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/PageHead.tsx +13 -0
  34. package/packages/nexus-cli/templates/base/apps/admin/src/components/ui/PageHero.tsx +15 -0
  35. package/packages/nexus-cli/templates/base/apps/admin/src/icons.tsx +104 -0
  36. package/packages/nexus-cli/templates/base/apps/admin/src/index.css +77 -19
  37. package/packages/nexus-cli/templates/base/apps/admin/src/lib/constants.ts +94 -0
  38. package/packages/nexus-cli/templates/base/apps/admin/src/lib/theme.ts +80 -0
  39. package/packages/nexus-cli/templates/base/apps/admin/src/lib/types.ts +39 -0
  40. package/packages/nexus-cli/templates/base/apps/admin/src/lib/utils.ts +147 -0
  41. package/packages/nexus-cli/templates/base/apps/admin/src/main.tsx.ejs +3 -2
  42. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Config.tsx +108 -0
  43. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Databases.tsx +122 -0
  44. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Environment.tsx +69 -0
  45. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Logs.tsx +270 -0
  46. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Monitoring.tsx +88 -0
  47. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Overview.tsx +108 -0
  48. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Payments.tsx +68 -0
  49. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Plugins.tsx +36 -0
  50. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Processes.tsx +67 -0
  51. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Schema.tsx +130 -0
  52. package/packages/nexus-cli/templates/base/apps/admin/src/pages/Users.tsx +144 -0
  53. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AddProviderDialog.tsx +150 -0
  54. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiAgents.tsx +31 -0
  55. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiChatPlayground.tsx +208 -0
  56. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiProviders.tsx +276 -0
  57. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/AiSettings.tsx +84 -0
  58. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderCard.tsx +145 -0
  59. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderGroup.tsx +50 -0
  60. package/packages/nexus-cli/templates/base/apps/admin/src/pages/ai/ProviderKeyDialog.tsx +66 -0
  61. package/packages/nexus-cli/templates/base/apps/admin/src/pages/monitoring/RequestSeriesChart.tsx +70 -0
  62. package/packages/nexus-cli/templates/base/apps/admin/src/pages/overview/TrafficChart.tsx +32 -0
  63. package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/OrdersTable.tsx +27 -0
  64. package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/PaymentKeysDialog.tsx +74 -0
  65. package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/TestConsole.tsx +173 -0
  66. package/packages/nexus-cli/templates/base/apps/admin/src/pages/payments/TransactionsTable.tsx +26 -0
  67. package/packages/nexus-cli/templates/base/apps/admin/src/style.css +6517 -0
  68. package/packages/nexus-cli/templates/base/apps/admin/vite.config.ts.ejs +13 -8
  69. package/packages/nexus-cli/templates/base/apps/ai-server/main.py.ejs +2 -2
  70. package/packages/nexus-cli/templates/base/apps/backend/src/routes/index.ts.ejs +1 -1
  71. package/packages/nexus-cli/templates/base/apps/frontend/src/App.tsx.ejs +10 -0
  72. package/packages/nexus-cli/templates/base/apps/frontend/src/main.tsx.ejs +2 -10
  73. package/packages/nexus-cli/templates/base/apps/frontend/vite.config.ts.ejs +9 -4
  74. package/packages/nexus-cli/templates/base/docker-compose.yml.ejs +2 -2
  75. package/packages/nexus-core/package.json +4 -1
  76. package/packages/nexus-core/src/app/adminModule.ts +579 -48
  77. package/packages/nexus-core/src/app/aiProxyModule.ts +160 -0
  78. package/packages/nexus-core/src/app/aiSchemaModule.ts +130 -0
  79. package/packages/nexus-core/src/app/authModule.ts +243 -0
  80. package/packages/nexus-core/src/app/createNexusApp.ts +73 -2
  81. package/packages/nexus-core/src/app/databaseAdminModule.ts +222 -0
  82. package/packages/nexus-core/src/app/index.ts +2 -0
  83. package/packages/nexus-core/src/app/lintModule.ts +102 -0
  84. package/packages/nexus-core/src/app/preflightModule.ts +259 -0
  85. package/packages/nexus-core/src/app/roleCatalog.ts +78 -0
  86. package/packages/nexus-core/src/app/userModel.ts +101 -0
  87. package/packages/nexus-core/src/config/runtimeJson.ts +25 -2
  88. package/packages/nexus-crypto/package.json +1 -1
  89. package/packages/nexus-data/package.json +1 -1
  90. package/packages/nexus-email/package.json +1 -1
  91. package/packages/nexus-examples/examples/ai-chat/apps/frontend/src/App.tsx +101 -0
  92. package/packages/nexus-examples/examples/ai-chat/apps/frontend/src/main.tsx +5 -102
  93. package/packages/nexus-examples/package.json +1 -1
  94. package/packages/nexus-graphql/package.json +1 -1
  95. package/packages/nexus-payments/package.json +1 -1
  96. package/packages/nexus-plugins/package.json +1 -1
  97. package/packages/nexus-postcss/package.json +1 -1
  98. package/packages/nexus-realtime/package.json +1 -1
  99. package/packages/nexus-safe-goto/package.json +1 -1
  100. package/packages/nexus-telemetry/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # BhooAI Nexus v2
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 at `C:\server\PACKAGES\bhooai-nexus\` — reuses v1's packages, removes the
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
- ┌──────────────── Multi-app monorepo ─────────────────┐
43
- │ apps/backend/Node.js, auto-discovery
44
- │ apps/backend-shop/add via `nexus add backend` │
45
- │ apps/frontend/Vite + React
46
- │ apps/frontend-shop/add via `nexus add frontend`
47
- │ apps/admin/wraps @bhooai/nexus-admin
48
- │ apps/ai-server/FastAPI (optional)
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
- Each backend follows a Laravel-style convention under `src/`:
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 # 20-line createNexusApp()
60
- ├── routes/ # HTTP endpoints (auto-discovered)
61
- ├── graphql/ # *.graph.ts (federation)
62
- ├── ws/ # *.room.ts (WebSocket rooms)
63
- ├── mail/templates/ # *.ejs
64
- ├── mail/mailables/ # classes
65
- ├── errors/pages/ # 404.html / 500.html / ...
66
- ├── errors/Handler.ts
67
- ├── models/ services/ repositories/ controllers/
68
- ├── middleware/ validators/ jobs/ listeners/ events/
69
- ├── policies/ resources/ requests/ helpers/ config/
70
- ├── database/{seeds,migrations}/ providers/ plugins/ types/ constants/
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.4",
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",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bhooai/nexus-admin",
3
- "version": "2.0.4",
3
+ "version": "2.0.6",
4
4
  "description": "BhooAI Nexus v2 admin SPA — Apps-tab-first, live registry/health/logs/config/users/payments/AI",
5
5
  "type": "module",
6
6
  "license": "MIT",