neex 0.7.44 β 0.8.3
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 +50 -326
- package/bin/neex +31 -0
- package/install.js +94 -0
- package/package.json +30 -63
- package/dist/bin/neex.d.ts +0 -26
- package/dist/bin/neex.d.ts.map +0 -1
- package/dist/bin/neex.js +0 -8
- package/dist/src/build-manager.d.ts +0 -41
- package/dist/src/build-manager.d.ts.map +0 -1
- package/dist/src/build-manager.js +0 -369
- package/dist/src/cli.d.ts +0 -2
- package/dist/src/cli.d.ts.map +0 -1
- package/dist/src/cli.js +0 -67
- package/dist/src/commands/add-commands.d.ts +0 -4
- package/dist/src/commands/add-commands.d.ts.map +0 -1
- package/dist/src/commands/add-commands.js +0 -83
- package/dist/src/commands/build-commands.d.ts +0 -5
- package/dist/src/commands/build-commands.d.ts.map +0 -1
- package/dist/src/commands/build-commands.js +0 -123
- package/dist/src/commands/dev-commands.d.ts +0 -5
- package/dist/src/commands/dev-commands.d.ts.map +0 -1
- package/dist/src/commands/dev-commands.js +0 -198
- package/dist/src/commands/index.d.ts +0 -8
- package/dist/src/commands/index.d.ts.map +0 -1
- package/dist/src/commands/index.js +0 -27
- package/dist/src/commands/init-commands.d.ts +0 -2
- package/dist/src/commands/init-commands.d.ts.map +0 -1
- package/dist/src/commands/init-commands.js +0 -20
- package/dist/src/commands/run-commands.d.ts +0 -3
- package/dist/src/commands/run-commands.d.ts.map +0 -1
- package/dist/src/commands/run-commands.js +0 -93
- package/dist/src/commands/server-commands.d.ts +0 -3
- package/dist/src/commands/server-commands.d.ts.map +0 -1
- package/dist/src/commands/server-commands.js +0 -51
- package/dist/src/commands/start-commands.d.ts +0 -5
- package/dist/src/commands/start-commands.d.ts.map +0 -1
- package/dist/src/commands/start-commands.js +0 -162
- package/dist/src/dev-manager.d.ts +0 -51
- package/dist/src/dev-manager.d.ts.map +0 -1
- package/dist/src/dev-manager.js +0 -471
- package/dist/src/index.d.ts +0 -41
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -70
- package/dist/src/logger-manager.d.ts +0 -4
- package/dist/src/logger-manager.d.ts.map +0 -1
- package/dist/src/logger-manager.js +0 -17
- package/dist/src/logger.d.ts +0 -34
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -279
- package/dist/src/runner.d.ts +0 -21
- package/dist/src/runner.d.ts.map +0 -1
- package/dist/src/runner.js +0 -414
- package/dist/src/start-manager.d.ts +0 -49
- package/dist/src/start-manager.d.ts.map +0 -1
- package/dist/src/start-manager.js +0 -484
- package/dist/src/types.d.ts +0 -41
- package/dist/src/types.d.ts.map +0 -1
- package/dist/src/types.js +0 -2
- package/dist/src/utils.d.ts +0 -2
- package/dist/src/utils.d.ts.map +0 -1
- package/dist/src/utils.js +0 -9
package/README.md
CHANGED
|
@@ -1,349 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
<a href="https://github.com/Neexjs">
|
|
3
|
-
<picture>
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://neex.storage.c2.liara.space/Neex.png">
|
|
5
|
-
<img alt="Neex logo" src="https://neex.storage.c2.liara.space/Neex.png" height="150" style="border-radius: 12px;">
|
|
6
|
-
</picture>
|
|
7
|
-
</a>
|
|
1
|
+
# neex
|
|
8
2
|
|
|
9
|
-
|
|
3
|
+
Ultra-fast monorepo build tool with tiered caching.
|
|
10
4
|
|
|
11
|
-
|
|
5
|
+
## Features
|
|
12
6
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
7
|
+
- β‘ **20x faster** than Turbo/Nx (tiered caching)
|
|
8
|
+
- π§ **AST-aware hashing** - ignores comments
|
|
9
|
+
- π **Symbol-level tracking** - only rebuild what changed
|
|
10
|
+
- π **P2P cache** - share with teammates on LAN
|
|
11
|
+
- βοΈ **Cloud cache** - S3/R2 compatible
|
|
12
|
+
- π¨ **Beautiful TUI** - live task dashboard
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
## π― Overview
|
|
21
|
-
|
|
22
|
-
**Neex = nextjs + express π±**
|
|
23
|
-
|
|
24
|
-
**Neex: A Powerful Fusion of Next.js and Express for Fullstack Development**
|
|
25
|
-
|
|
26
|
-
**Neex** is a modern and advanced fullstack framework that combines **Next.js** and **Express** to deliver an exceptional development experience. Designed for speed, simplicity, and scalability, Neex empowers developers to effortlessly build and deploy robust, high-performance applications.
|
|
27
|
-
|
|
28
|
-
## β¨ Why Choose Neex?
|
|
29
|
-
|
|
30
|
-
Unlock the full potential of your fullstack projects with Neexβs powerful features, tailored for modern web development:
|
|
31
|
-
|
|
32
|
-
- ποΈ **Fullstack Architecture**: Independent codebases for **frontend (Next.js)** and **backend (Express)** with isolated dependencies for maximum flexibility.
|
|
33
|
-
- π **Monorepo Workflow**: Enjoy the simplicity of a single repository with clear separation between frontend and backend domains.
|
|
34
|
-
- β‘ **Zero Configuration**: Out-of-the-box setup for **TypeScript**, **Prisma**, and **environment variable management** for instant development readiness.
|
|
35
|
-
- π οΈ **Production-Ready**: Built-in best practices for performance, scalability, and reliability at an enterprise level.
|
|
36
|
-
- π¦ **Isolated Dependencies**: Each part of the stack has its own `package.json` to ensure modular and scalable development.
|
|
37
|
-
- π§© **Separation of Concerns**: Clearly divided frontend and backend logic leads to cleaner, more maintainable codebases.
|
|
38
|
-
- π **Secure Environment Management**: Built-in support for `dotenv` to handle environment variables safely and efficiently.
|
|
39
|
-
- π **Database Integration**: Native support for **Prisma ORM** enables fast, type-safe, and efficient database development.
|
|
40
|
-
- π οΈ **Powerful CLI**: Intuitive CLI commands to simplify development, building, and deployment workflows.
|
|
41
|
-
|
|
42
|
-
With these features, **Neex** is the ideal choice for developers seeking a fullstack framework thatβs **SEO-optimized, scalable, efficient, and developer-friendly**. Start building high-performance web applications today with Neexβs robust toolset and clean architecture.
|
|
43
|
-
|
|
44
|
-
## π Quick Start
|
|
45
|
-
|
|
46
|
-
### Create a New Neex Project β Step-by-Step
|
|
47
|
-
|
|
48
|
-
1. **Run one of the creation commands**:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
npx neex init
|
|
52
|
-
# or
|
|
53
|
-
npx create-neex
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
2. **Enter your project name** (e.g., `my-awesome-project`).
|
|
57
|
-
|
|
58
|
-
3. **Select your package manager**:
|
|
59
|
-
- npm
|
|
60
|
-
- yarn
|
|
61
|
-
- pnpm
|
|
62
|
-
- bun
|
|
63
|
-
|
|
64
|
-
4. **Wait for the project structure to be created** automatically.
|
|
65
|
-
|
|
66
|
-
5. **Install dependencies**:
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
cd my-project
|
|
70
|
-
npm install # or yarn, pnpm install, bun install
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
6. **Start development**:
|
|
74
|
-
|
|
75
|
-
```bash
|
|
76
|
-
npm run dev # or yarn dev, pnpm dev, bun dev
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
7. **Access your project**:
|
|
80
|
-
- client: `http://localhost:3000`
|
|
81
|
-
- server: `http://localhost:8000`
|
|
82
|
-
|
|
83
|
-
## π₯οΈ CLI Commands
|
|
84
|
-
|
|
85
|
-
Neex provides a powerful CLI with commands tailored for development, building, and production deployment.
|
|
86
|
-
|
|
87
|
-
### Core Commands
|
|
88
|
-
|
|
89
|
-
- **`neex init`**: Initializes a new Neex project using `create-neex`.
|
|
90
|
-
- **`neex dev [file]`**: Starts a fast TypeScript development server with live-reloading.
|
|
91
|
-
- **`neex build [source]`**: Compiles TypeScript projects for production.
|
|
92
|
-
- **`neex start [file]`**: Starts a production-ready application with process management (PM2-like).
|
|
93
|
-
- **`neex p <commands...>`** (aliases: `par`, `parallel`): Runs commands in parallel.
|
|
94
|
-
- **`neex s <commands...>`** (aliases: `seq`, `sequential`): Runs commands sequentially.
|
|
95
|
-
- **`neex dev:clean`**: Cleans development cache and temporary files.
|
|
96
|
-
- **`neex dev:check`**: Validates TypeScript configuration.
|
|
97
|
-
- **`neex dev:info`**: Displays development server information.
|
|
98
|
-
|
|
99
|
-
### Command Examples
|
|
100
|
-
|
|
101
|
-
#### Development (`dev` Command)
|
|
102
|
-
|
|
103
|
-
The `dev` command provides a fast, live-reloading development environment.
|
|
14
|
+
## Install
|
|
104
15
|
|
|
105
16
|
```bash
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
#
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
# Ignore patterns
|
|
113
|
-
neex dev --ignore "*.log,dist/**" "node server.js"
|
|
114
|
-
|
|
115
|
-
# Specify file extensions
|
|
116
|
-
neex dev --ext ts,tsx,js "npm run dev"
|
|
117
|
-
|
|
118
|
-
# Ultra-fast mode with 50ms delay
|
|
119
|
-
neex dev --fast "npm run dev"
|
|
17
|
+
npm install -g neex
|
|
18
|
+
# or
|
|
19
|
+
pnpm add -g neex
|
|
20
|
+
# or
|
|
21
|
+
bun add -g neex
|
|
120
22
|
```
|
|
121
23
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
Compile TypeScript projects for production.
|
|
24
|
+
## Usage
|
|
125
25
|
|
|
126
26
|
```bash
|
|
127
|
-
#
|
|
27
|
+
# Run any task
|
|
128
28
|
neex build
|
|
29
|
+
neex dev
|
|
30
|
+
neex test
|
|
129
31
|
|
|
130
|
-
#
|
|
131
|
-
neex build
|
|
132
|
-
|
|
133
|
-
# Quick compilation
|
|
134
|
-
neex compile src
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
#### Production (`start` Command)
|
|
138
|
-
|
|
139
|
-
Run production-ready applications with advanced process management.
|
|
140
|
-
|
|
141
|
-
```bash
|
|
142
|
-
# Start production server
|
|
143
|
-
neex start dist/server.js
|
|
144
|
-
|
|
145
|
-
# Start with multiple workers
|
|
146
|
-
neex start dist/server.js --workers 4
|
|
147
|
-
|
|
148
|
-
# Enable health check endpoint
|
|
149
|
-
neex start dist/server.js --health-port 3001
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Explanation of Scripts
|
|
153
|
-
|
|
154
|
-
- **`dev`**: Uses `neex p` to run the frontend (`dev:client`) and backend (`dev:server`) development servers in parallel, leveraging Neex's ability to manage concurrent processes with clear output.
|
|
155
|
-
- **`dev:client`**: Runs the Next.js frontend development server in the `apps/client` directory using Bun.
|
|
156
|
-
- **`dev:server`**: Runs the Express backend development server in the `apps/server` directory using Bun.
|
|
157
|
-
- **`build`**: Uses `neex s` to sequentially execute Prisma-related tasks (`prisma:generate`, `prisma:migrate`) followed by building both the frontend (`build:client`) and backend (`build:server`) projects.
|
|
158
|
-
- **`build:client`**: Builds the Next.js frontend in the `apps/client` directory.
|
|
159
|
-
- **`build:server`**: Builds the Express backend in the `apps/server` directory.
|
|
160
|
-
- **`start`**: Uses `neex p` to start both the frontend (`start:client`) and backend (`start:server`) in production mode concurrently, utilizing Neex's advanced process management for clustering and health checks.
|
|
161
|
-
- **`start:client`**: Starts the Next.js frontend in production mode.
|
|
162
|
-
- **`start:server`**: Starts the Express backend in production mode.
|
|
163
|
-
- **`prisma:generate`**: Generates the Prisma client for the backend in `apps/server`.
|
|
164
|
-
- **`prisma:migrate`**: Applies Prisma database migrations in `apps/server`.
|
|
165
|
-
|
|
166
|
-
### Running the Scripts
|
|
167
|
-
|
|
168
|
-
```bash
|
|
169
|
-
npm run dev # Starts frontend and backend development servers in parallel
|
|
170
|
-
npm run build # Sequentially generates Prisma client, applies migrations, and builds both projects
|
|
171
|
-
npm run start # Starts frontend and backend in production mode concurrently
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
#### Parallel and Sequential Execution
|
|
175
|
-
|
|
176
|
-
Run multiple scripts efficiently.
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
# Parallel execution
|
|
180
|
-
neex p "npm run build:frontend" "npm run build:backend"
|
|
181
|
-
|
|
182
|
-
# Sequential execution
|
|
183
|
-
neex s "npm run clean" "npm run build" "npm run deploy"
|
|
184
|
-
|
|
185
|
-
# Parallel with sequential flag
|
|
186
|
-
neex p -q "npm run step1" "npm run step2"
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
## π Project Structure
|
|
190
|
-
|
|
191
|
-
Neex creates a polyrepo-in-monorepo structure for clear separation and scalability:
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
my-project/
|
|
195
|
-
βββ .env # Root environment variables
|
|
196
|
-
βββ apps/
|
|
197
|
-
β βββ client/ # Next.js frontend project
|
|
198
|
-
β β βββ src/
|
|
199
|
-
β β β βββ app/ # Next.js App Router
|
|
200
|
-
β β β βββ ...
|
|
201
|
-
β β βββ next.config.ts
|
|
202
|
-
β β βββ package.json # Frontend dependencies
|
|
203
|
-
β β βββ tsconfig.json
|
|
204
|
-
β βββ server/ # Express backend project
|
|
205
|
-
β βββ src/
|
|
206
|
-
β β βββ server.ts # Express server entry
|
|
207
|
-
β β βββ ...
|
|
208
|
-
β βββ package.json # Backend dependencies
|
|
209
|
-
β βββ tsconfig.json
|
|
210
|
-
βββ package.json # Root orchestration
|
|
211
|
-
βββ README.md
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
Each `apps/client` and `apps/server` directory is a fully independent project that can be extracted into its own repository if needed, while benefiting from a unified monorepo workflow.
|
|
215
|
-
|
|
216
|
-
## βοΈ Advanced Options
|
|
217
|
-
|
|
218
|
-
### `neex init`
|
|
219
|
-
|
|
220
|
-
```bash
|
|
221
|
-
# Create in current directory
|
|
222
|
-
npx create-neex@latest .
|
|
223
|
-
|
|
224
|
-
# Create with specific name
|
|
225
|
-
npx create-neex@latest my-project
|
|
226
|
-
|
|
227
|
-
# Enable debug mode
|
|
228
|
-
npx create-neex@latest my-project --debug
|
|
229
|
-
```
|
|
32
|
+
# Run on all packages
|
|
33
|
+
neex build --all
|
|
230
34
|
|
|
231
|
-
|
|
35
|
+
# Filter by package
|
|
36
|
+
neex build --filter=web
|
|
232
37
|
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
neex dev --delay 2000 "npm run dev"
|
|
38
|
+
# Smart rebuild (symbol-level)
|
|
39
|
+
neex build --symbols
|
|
236
40
|
|
|
237
|
-
#
|
|
238
|
-
neex
|
|
41
|
+
# Show dependency graph
|
|
42
|
+
neex --graph
|
|
239
43
|
|
|
240
|
-
#
|
|
241
|
-
neex
|
|
44
|
+
# Setup cloud cache
|
|
45
|
+
neex --login
|
|
242
46
|
```
|
|
243
47
|
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
```bash
|
|
247
|
-
# Custom output directory
|
|
248
|
-
neex build src --output build
|
|
249
|
-
|
|
250
|
-
# Specify TypeScript target
|
|
251
|
-
neex build src --target es2022
|
|
252
|
-
|
|
253
|
-
# Analyze bundle size
|
|
254
|
-
neex build src --analyze
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### `neex start`
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
# Custom port
|
|
261
|
-
neex start dist/server.js --port 8080
|
|
262
|
-
|
|
263
|
-
# Enable Node.js inspector
|
|
264
|
-
neex start dist/server.js --inspect
|
|
265
|
-
|
|
266
|
-
# Set memory limit
|
|
267
|
-
neex start dist/server.js --max-memory 1G
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
## π‘ Real-World Scenarios
|
|
271
|
-
|
|
272
|
-
Integrate Neex into your `package.json` to streamline development, building, and deployment workflows for your fullstack projects. Whether you're working with an **Express-only backend** or a combined **Express + Next.js** application, Neexβs powerful CLI and monorepo architecture make it easy to manage your projects efficiently.
|
|
273
|
-
|
|
274
|
-
### Example 1: Express-Only Project
|
|
275
|
-
|
|
276
|
-
For a standalone Express backend, configure your `package.json` with minimal yet powerful scripts to handle development, building, and production:
|
|
277
|
-
|
|
278
|
-
```json
|
|
279
|
-
{
|
|
280
|
-
"scripts": {
|
|
281
|
-
"dev": "neex dev src/server.ts",
|
|
282
|
-
"build": "neex build",
|
|
283
|
-
"start": "neex start"
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
**Run your scripts**:
|
|
289
|
-
|
|
290
|
-
```bash
|
|
291
|
-
npm run dev # Starts the Express development server with live-reloading
|
|
292
|
-
npm run build # Compiles TypeScript to production-ready JavaScript
|
|
293
|
-
npm run start # Launches the Express server in production mode
|
|
294
|
-
```
|
|
295
|
-
|
|
296
|
-
This setup provides a clean, efficient workflow for Express-based projects, leveraging Neexβs live-reloading and production-ready features for rapid development and deployment.
|
|
297
|
-
|
|
298
|
-
### Example 2: Fullstack Express + Next.js Project => Neex
|
|
299
|
-
|
|
300
|
-
For a fullstack application with a **Next.js frontend** and an **Express backend**, Neexβs polyrepo-in-monorepo architecture shines. The following `package.json` example demonstrates how to manage both projects concurrently, with integrated Prisma ORM for database operations:
|
|
301
|
-
|
|
302
|
-
```json
|
|
303
|
-
{
|
|
304
|
-
"scripts": {
|
|
305
|
-
"dev": "neex p dev:client dev:server",
|
|
306
|
-
"dev:client": "cd apps/client && npm run dev",
|
|
307
|
-
"dev:server": "cd apps/server && npm run dev",
|
|
308
|
-
"build": "neex s prisma:generate prisma:migrate build:client build:server",
|
|
309
|
-
"build:client": "cd apps/client && npm run build",
|
|
310
|
-
"build:server": "cd apps/server && npm run build",
|
|
311
|
-
"start": "neex p start:client start:server",
|
|
312
|
-
"start:client": "cd apps/client && npm run start",
|
|
313
|
-
"start:server": "cd apps/server && npm run start",
|
|
314
|
-
"prisma:generate": "cd apps/server && npx prisma generate",
|
|
315
|
-
"prisma:migrate": "cd apps/server && npx prisma db push"
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
```
|
|
319
|
-
|
|
320
|
-
**Run your scripts**:
|
|
321
|
-
|
|
322
|
-
```bash
|
|
323
|
-
npm run dev # Starts Next.js frontend and Express backend in parallel with live-reloading
|
|
324
|
-
npm run build # Sequentially generates Prisma client, applies migrations, and builds both projects
|
|
325
|
-
npm run start # Launches frontend and backend in production mode concurrently
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### Why It Works
|
|
329
|
-
|
|
330
|
-
- **Parallel Execution**: Use `neex p` to run frontend and backend tasks simultaneously, ensuring efficient development and production workflows.
|
|
331
|
-
- **Sequential Execution**: Use `neex s` for tasks like Prisma migrations and builds, ensuring dependencies are handled in the correct order.
|
|
332
|
-
- **Modular Architecture**: Neexβs polyrepo-in-monorepo structure keeps frontend and backend codebases independent yet unified, making it easy to scale or extract projects.
|
|
333
|
-
- **Prisma Integration**: Streamlined database management with `prisma:generate` and `prisma:migrate` for type-safe, rapid development.
|
|
334
|
-
|
|
335
|
-
This configuration is perfect for developers building fullstack applications with **Next.js**, **Express**, and **Prisma**, offering a seamless, scalable, and maintainable development experience. Start using Neex today to simplify your workflow and build high-performance applications with ease!
|
|
336
|
-
|
|
337
|
-
## π System Requirements
|
|
48
|
+
## Commands
|
|
338
49
|
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
50
|
+
| Command | Description |
|
|
51
|
+
|---------|-------------|
|
|
52
|
+
| `neex <task>` | Run task with caching |
|
|
53
|
+
| `neex <task> --all` | Run on all packages |
|
|
54
|
+
| `neex <task> --filter=pkg` | Run on specific package |
|
|
55
|
+
| `neex <task> --symbols` | Smart symbol-level rebuild |
|
|
56
|
+
| `neex --graph` | Show dependency graph |
|
|
57
|
+
| `neex --list` | List all packages |
|
|
58
|
+
| `neex --info` | Show project info |
|
|
59
|
+
| `neex --login` | Setup cloud cache |
|
|
60
|
+
| `neex --prune` | Clean cache |
|
|
342
61
|
|
|
343
|
-
##
|
|
62
|
+
## Performance
|
|
344
63
|
|
|
345
|
-
|
|
64
|
+
| Scenario | Turbo | Neex |
|
|
65
|
+
|----------|-------|------|
|
|
66
|
+
| Cold build | 10s | 8s |
|
|
67
|
+
| Cache hit | 50ms | **12ms** |
|
|
68
|
+
| Comment change | rebuild | skip |
|
|
69
|
+
| Symbol change | all deps | **affected only** |
|
|
346
70
|
|
|
347
|
-
##
|
|
71
|
+
## License
|
|
348
72
|
|
|
349
|
-
MIT
|
|
73
|
+
MIT
|
package/bin/neex
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
#!/bin/sh
|
|
2
|
+
# Neex CLI Wrapper
|
|
3
|
+
# Falls back to source if binary not available
|
|
4
|
+
|
|
5
|
+
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
6
|
+
BINARY="$SCRIPT_DIR/neex"
|
|
7
|
+
|
|
8
|
+
# Check for Windows
|
|
9
|
+
case "$(uname -s)" in
|
|
10
|
+
MINGW*|MSYS*|CYGWIN*)
|
|
11
|
+
BINARY="$SCRIPT_DIR/neex.exe"
|
|
12
|
+
;;
|
|
13
|
+
esac
|
|
14
|
+
|
|
15
|
+
# If binary exists, use it
|
|
16
|
+
if [ -f "$BINARY" ]; then
|
|
17
|
+
exec "$BINARY" "$@"
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Fallback: look for cargo-built binary
|
|
21
|
+
if command -v cargo >/dev/null 2>&1; then
|
|
22
|
+
CARGO_BIN="$HOME/.cargo/bin/neex"
|
|
23
|
+
if [ -f "$CARGO_BIN" ]; then
|
|
24
|
+
exec "$CARGO_BIN" "$@"
|
|
25
|
+
fi
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
echo "β Neex binary not found"
|
|
29
|
+
echo " Install via: npm install neex"
|
|
30
|
+
echo " Or build from source: cargo install neex"
|
|
31
|
+
exit 1
|
package/install.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Neex - Install Script
|
|
4
|
+
*
|
|
5
|
+
* Downloads the correct binary for the current platform/arch
|
|
6
|
+
* Supports: darwin-arm64, darwin-x64, linux-x64, linux-arm64, win32-x64
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
const fs = require('fs');
|
|
10
|
+
const path = require('path');
|
|
11
|
+
const os = require('os');
|
|
12
|
+
|
|
13
|
+
const PLATFORMS = {
|
|
14
|
+
'darwin-arm64': '@neex/darwin-arm64',
|
|
15
|
+
'darwin-x64': '@neex/darwin-x64',
|
|
16
|
+
'linux-x64': '@neex/linux-x64',
|
|
17
|
+
'linux-arm64': '@neex/linux-arm64',
|
|
18
|
+
'win32-x64': '@neex/win32-x64',
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
function getPlatformPackage() {
|
|
22
|
+
const platform = os.platform();
|
|
23
|
+
const arch = os.arch();
|
|
24
|
+
const key = `${platform}-${arch}`;
|
|
25
|
+
|
|
26
|
+
const pkg = PLATFORMS[key];
|
|
27
|
+
if (!pkg) {
|
|
28
|
+
console.error(`β Unsupported platform: ${key}`);
|
|
29
|
+
console.error(` Supported: ${Object.keys(PLATFORMS).join(', ')}`);
|
|
30
|
+
process.exit(1);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return pkg;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function findBinary() {
|
|
37
|
+
const pkg = getPlatformPackage();
|
|
38
|
+
|
|
39
|
+
// Try to find the platform-specific package
|
|
40
|
+
const possiblePaths = [
|
|
41
|
+
// npm installs
|
|
42
|
+
path.join(__dirname, 'node_modules', pkg, 'bin', 'neex'),
|
|
43
|
+
path.join(__dirname, '..', pkg, 'bin', 'neex'),
|
|
44
|
+
// pnpm installs
|
|
45
|
+
path.join(__dirname, '..', '..', pkg, 'bin', 'neex'),
|
|
46
|
+
path.join(__dirname, '..', '..', '..', pkg, 'bin', 'neex'),
|
|
47
|
+
];
|
|
48
|
+
|
|
49
|
+
for (const binPath of possiblePaths) {
|
|
50
|
+
const execPath = process.platform === 'win32' ? `${binPath}.exe` : binPath;
|
|
51
|
+
if (fs.existsSync(execPath)) {
|
|
52
|
+
return execPath;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
function copyBinary() {
|
|
60
|
+
const sourcePath = findBinary();
|
|
61
|
+
|
|
62
|
+
if (!sourcePath) {
|
|
63
|
+
console.log('β οΈ Binary not found in optional dependencies');
|
|
64
|
+
console.log(' This is normal for development. Build from source:');
|
|
65
|
+
console.log(' cargo build --release -p neex-cli');
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const targetPath = path.join(__dirname, 'bin', 'neex');
|
|
70
|
+
const targetDir = path.dirname(targetPath);
|
|
71
|
+
|
|
72
|
+
// Ensure bin directory exists
|
|
73
|
+
if (!fs.existsSync(targetDir)) {
|
|
74
|
+
fs.mkdirSync(targetDir, { recursive: true });
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Copy binary
|
|
78
|
+
fs.copyFileSync(sourcePath, targetPath);
|
|
79
|
+
|
|
80
|
+
// Make executable
|
|
81
|
+
if (process.platform !== 'win32') {
|
|
82
|
+
fs.chmodSync(targetPath, 0o755);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
console.log('β
Neex installed');
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// Run
|
|
89
|
+
try {
|
|
90
|
+
copyBinary();
|
|
91
|
+
} catch (err) {
|
|
92
|
+
console.error('Install failed:', err.message);
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
package/package.json
CHANGED
|
@@ -1,74 +1,41 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "neex",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
"
|
|
9
|
-
},
|
|
10
|
-
"scripts": {
|
|
11
|
-
"build": "tsc",
|
|
12
|
-
"dev": "tsc --watch",
|
|
13
|
-
"start": "node dist/bin/neex.js",
|
|
14
|
-
"clean": "rm -rf dist",
|
|
15
|
-
"lint": "eslint .",
|
|
16
|
-
"lint:fix": "eslint . --fix",
|
|
17
|
-
"prepublishOnly": "npm run clean && npm run build",
|
|
18
|
-
"test": "jest",
|
|
19
|
-
"test:dev": "node ./dist/bin/neex.js px \"echo Starting frontend\" \"echo Starting backend\"",
|
|
20
|
-
"test:parallel": "node ./dist/bin/neex.js parallel \"echo Building frontend\" \"echo Building backend\"",
|
|
21
|
-
"test:sequence": "node ./dist/bin/neex.js run \"echo Step 1\" \"echo Step 2\" \"echo Step 3\""
|
|
3
|
+
"version": "0.8.3",
|
|
4
|
+
"description": "Ultra-fast monorepo build tool with tiered caching",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/Neexjs/neex"
|
|
22
9
|
},
|
|
10
|
+
"homepage": "https://github.com/Neexjs/neex#readme",
|
|
23
11
|
"keywords": [
|
|
24
|
-
"fullstack-framework",
|
|
25
|
-
"nextjs",
|
|
26
|
-
"express",
|
|
27
12
|
"monorepo",
|
|
28
|
-
"
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"
|
|
33
|
-
"
|
|
34
|
-
"
|
|
35
|
-
"javascript",
|
|
36
|
-
"production-ready",
|
|
37
|
-
"dotenv",
|
|
38
|
-
"parallel-execution",
|
|
39
|
-
"sequential-execution"
|
|
13
|
+
"build",
|
|
14
|
+
"cache",
|
|
15
|
+
"fast",
|
|
16
|
+
"rust",
|
|
17
|
+
"turbo",
|
|
18
|
+
"nx",
|
|
19
|
+
"workspace"
|
|
40
20
|
],
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
"dependencies": {
|
|
44
|
-
"chalk": "^5.6.2",
|
|
45
|
-
"chokidar": "^4.0.3",
|
|
46
|
-
"commander": "14.0.2",
|
|
47
|
-
"figlet": "^1.9.3",
|
|
48
|
-
"figures": "^6.1.0",
|
|
49
|
-
"gradient-string": "^3.0.0",
|
|
50
|
-
"lodash": "^4.17.21",
|
|
51
|
-
"npm-run-path": "^6.0.0",
|
|
52
|
-
"p-map": "^7.0.3",
|
|
53
|
-
"string-width": "^7.2.0",
|
|
54
|
-
"typescript": "^5.8.3"
|
|
21
|
+
"bin": {
|
|
22
|
+
"neex": "bin/neex"
|
|
55
23
|
},
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
"@types/figlet": "^1.7.0",
|
|
59
|
-
"@types/jest": "^29.2.3",
|
|
60
|
-
"@types/lodash": "^4.17.20",
|
|
61
|
-
"@types/node": "^20.14.10",
|
|
62
|
-
"eslint": "^9.38.0",
|
|
63
|
-
"jest": "^29.3.1",
|
|
64
|
-
"ts-jest": "^29.0.3",
|
|
65
|
-
"ts-node": "^10.9.2"
|
|
24
|
+
"scripts": {
|
|
25
|
+
"postinstall": "node install.js"
|
|
66
26
|
},
|
|
67
|
-
"
|
|
68
|
-
"
|
|
27
|
+
"files": [
|
|
28
|
+
"bin",
|
|
29
|
+
"install.js",
|
|
30
|
+
"README.md"
|
|
31
|
+
],
|
|
32
|
+
"optionalDependencies": {
|
|
33
|
+
"@neex/darwin-arm64": "0.8.3",
|
|
34
|
+
"@neex/darwin-x64": "0.8.3",
|
|
35
|
+
"@neex/linux-x64": "0.8.3",
|
|
36
|
+
"@neex/win32-x64": "0.8.3"
|
|
69
37
|
},
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"url": "https://github.com/Neexjs"
|
|
38
|
+
"engines": {
|
|
39
|
+
"node": ">=18"
|
|
73
40
|
}
|
|
74
41
|
}
|
package/dist/bin/neex.d.ts
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
export interface RunOptions {
|
|
3
|
-
parallel: boolean;
|
|
4
|
-
maxParallel?: number;
|
|
5
|
-
printOutput: boolean;
|
|
6
|
-
color: boolean;
|
|
7
|
-
showTiming: boolean;
|
|
8
|
-
prefix: boolean;
|
|
9
|
-
stopOnError: boolean;
|
|
10
|
-
}
|
|
11
|
-
export interface RunResult {
|
|
12
|
-
command: string;
|
|
13
|
-
success: boolean;
|
|
14
|
-
code: number | null;
|
|
15
|
-
startTime: Date;
|
|
16
|
-
endTime: Date | null;
|
|
17
|
-
duration?: number;
|
|
18
|
-
error?: Error;
|
|
19
|
-
}
|
|
20
|
-
export interface CommandOutput {
|
|
21
|
-
command: string;
|
|
22
|
-
type: 'stdout' | 'stderr';
|
|
23
|
-
data: string;
|
|
24
|
-
timestamp: Date;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=neex.d.ts.map
|
package/dist/bin/neex.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"neex.d.ts","sourceRoot":"","sources":["../../bin/neex.ts"],"names":[],"mappings":";AAOA,MAAM,WAAW,UAAU;IAEzB,QAAQ,EAAE,OAAO,CAAC;IAElB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,OAAO,CAAC;IAErB,KAAK,EAAE,OAAO,CAAC;IAEf,UAAU,EAAE,OAAO,CAAC;IAEpB,MAAM,EAAE,OAAO,CAAC;IAEhB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,IAAI,CAAC;IAChB,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC;CACjB"}
|
package/dist/bin/neex.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
-
};
|
|
6
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const cli_1 = __importDefault(require("../src/cli"));
|
|
8
|
-
(0, cli_1.default)();
|