@nocobase/plugin-ai 2.1.18 → 2.1.20
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/dist/ai/docs/nocobase/api/cli/config/delete.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/get.md +8 -6
- package/dist/ai/docs/nocobase/api/cli/config/index.md +37 -26
- package/dist/ai/docs/nocobase/api/cli/config/set.md +14 -8
- package/dist/ai/docs/nocobase/file-manager/field-attachment.md +6 -0
- package/dist/ai/docs/nocobase/file-manager/storage/aliyun-oss.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/amazon-s3.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/index.md +23 -0
- package/dist/ai/docs/nocobase/file-manager/storage/local.md +9 -0
- package/dist/ai/docs/nocobase/file-manager/storage/migrate-to-s3-pro.md +269 -0
- package/dist/ai/docs/nocobase/file-manager/storage/tencent-cos.md +9 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-caddy.mdx +175 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker-nginx.mdx +176 -0
- package/dist/ai/docs/nocobase/get-started/installation/docker.mdx +94 -1
- package/dist/externalVersion.js +16 -16
- package/dist/node_modules/@langchain/mistralai/package.json +1 -1
- package/dist/node_modules/@langchain/xai/package.json +1 -1
- package/dist/node_modules/fs-extra/package.json +1 -1
- package/dist/node_modules/jsonrepair/package.json +1 -1
- package/dist/node_modules/just-bash/package.json +1 -1
- package/dist/node_modules/nodejs-snowflake/package.json +1 -1
- package/dist/node_modules/openai/package.json +1 -1
- package/dist/node_modules/zod/package.json +1 -1
- package/dist/server/ai-employees/checkpoints/cleaner.d.ts +2 -0
- package/dist/server/ai-employees/checkpoints/cleaner.js +11 -1
- package/dist/server/workflow/nodes/employee/index.js +1 -1
- package/dist/server/workflow/nodes/employee/tools.js +8 -1
- package/package.json +2 -2
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Docker Installation (External Caddy)"
|
|
3
|
+
description: "Install NocoBase with Docker and use an external Caddy container as the entry point."
|
|
4
|
+
keywords: "Docker,NocoBase,Caddy,installation,reverse proxy"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Docker Installation (External Caddy)
|
|
8
|
+
|
|
9
|
+
In this setup, the NocoBase app container and the Caddy container run separately. You can start with [Docker Installation (Built-in Nginx)](./docker.mdx) and then switch the entry service to an external Caddy container.
|
|
10
|
+
|
|
11
|
+
## When to use this setup
|
|
12
|
+
|
|
13
|
+
- You want to deploy NocoBase and the web server separately
|
|
14
|
+
- You want to simplify reverse proxy and HTTPS configuration with Caddy
|
|
15
|
+
- You want to expose only the proxy container to the public network
|
|
16
|
+
|
|
17
|
+
## docker-compose.yml example
|
|
18
|
+
|
|
19
|
+
If you need the `full` image, replace `latest-no-nginx` with `latest-full-no-nginx`.
|
|
20
|
+
|
|
21
|
+
The `13000:80` mapping is only for convenient local testing, so it does not occupy the standard host ports directly. In production, you usually do not keep using `13000:80`; instead, let the external Caddy container map directly to the host `80` and `443` ports.
|
|
22
|
+
```yml
|
|
23
|
+
networks:
|
|
24
|
+
nocobase:
|
|
25
|
+
driver: bridge
|
|
26
|
+
|
|
27
|
+
services:
|
|
28
|
+
app:
|
|
29
|
+
image: nocobase/nocobase:latest-no-nginx
|
|
30
|
+
restart: always
|
|
31
|
+
depends_on:
|
|
32
|
+
- postgres
|
|
33
|
+
networks:
|
|
34
|
+
- nocobase
|
|
35
|
+
environment:
|
|
36
|
+
- APP_KEY=your-secret-key
|
|
37
|
+
- DB_DIALECT=postgres
|
|
38
|
+
- DB_HOST=postgres
|
|
39
|
+
- DB_PORT=5432
|
|
40
|
+
- DB_DATABASE=nocobase
|
|
41
|
+
- DB_USER=nocobase
|
|
42
|
+
- DB_PASSWORD=nocobase
|
|
43
|
+
- TZ=Etc/UTC
|
|
44
|
+
- NOCOBASE_EXTRACT_CLIENT_ASSETS=true
|
|
45
|
+
- NOCOBASE_PROXY_PROVIDER=caddy
|
|
46
|
+
- NOCOBASE_PROXY_STORAGE_PATH=/app/nocobase/storage
|
|
47
|
+
- NOCOBASE_PROXY_UPSTREAM_HOST=app
|
|
48
|
+
volumes:
|
|
49
|
+
- ./storage:/app/nocobase/storage
|
|
50
|
+
|
|
51
|
+
caddy:
|
|
52
|
+
image: caddy:2
|
|
53
|
+
restart: always
|
|
54
|
+
depends_on:
|
|
55
|
+
- app
|
|
56
|
+
networks:
|
|
57
|
+
- nocobase
|
|
58
|
+
volumes:
|
|
59
|
+
- ./storage:/app/nocobase/storage
|
|
60
|
+
command: >
|
|
61
|
+
/bin/sh -c '
|
|
62
|
+
while [ ! -f /app/nocobase/storage/.nocobase/proxy/caddy/nocobase.caddy ]; do
|
|
63
|
+
echo "waiting for nocobase.caddy..."
|
|
64
|
+
sleep 1
|
|
65
|
+
done
|
|
66
|
+
ln -sf /app/nocobase/storage/.nocobase/proxy/caddy/nocobase.caddy /etc/caddy/Caddyfile
|
|
67
|
+
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
|
|
68
|
+
'
|
|
69
|
+
ports:
|
|
70
|
+
# This is only a local testing example.
|
|
71
|
+
- "13000:80"
|
|
72
|
+
# In production, usually change it to:
|
|
73
|
+
# - "80:80"
|
|
74
|
+
# - "443:443"
|
|
75
|
+
|
|
76
|
+
postgres:
|
|
77
|
+
image: postgres:16
|
|
78
|
+
restart: always
|
|
79
|
+
command: postgres -c wal_level=logical
|
|
80
|
+
environment:
|
|
81
|
+
POSTGRES_USER: nocobase
|
|
82
|
+
POSTGRES_DB: nocobase
|
|
83
|
+
POSTGRES_PASSWORD: nocobase
|
|
84
|
+
volumes:
|
|
85
|
+
- ./storage/db/postgres:/var/lib/postgresql/data
|
|
86
|
+
networks:
|
|
87
|
+
- nocobase
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Key points
|
|
91
|
+
|
|
92
|
+
- `NOCOBASE_EXTRACT_CLIENT_ASSETS=true` extracts client assets and generates proxy config
|
|
93
|
+
- `NOCOBASE_PROXY_PROVIDER=caddy` tells the app to generate Caddy config
|
|
94
|
+
- `NOCOBASE_PROXY_UPSTREAM_HOST=app` lets the Caddy container reach the `app` service through the Compose network
|
|
95
|
+
- `./storage` must be mounted into both the `app` and `caddy` containers so they can share proxy config, static assets, and uploaded files
|
|
96
|
+
- The `caddy` container should wait until `nocobase.caddy` is generated, then link it to `/etc/caddy/Caddyfile` with `ln -sf`
|
|
97
|
+
- Expose only the Caddy container port to the host. For testing, you can start with `13000:80`; in production, you usually expose the host `80` and `443` ports directly, while the `app` service does not need to expose its port to the host
|
|
98
|
+
|
|
99
|
+
## If you use a local host Caddy
|
|
100
|
+
|
|
101
|
+
If your Caddy is installed directly on the host instead of running in a Docker container, it is better to use a separate `docker-compose.yml`. In this setup, the `app` service must expose a host port directly, and the proxy-related environment variables should use host-side values.
|
|
102
|
+
|
|
103
|
+
You can use a `docker-compose.yml` like this:
|
|
104
|
+
|
|
105
|
+
```yml
|
|
106
|
+
networks:
|
|
107
|
+
nocobase:
|
|
108
|
+
driver: bridge
|
|
109
|
+
|
|
110
|
+
services:
|
|
111
|
+
app:
|
|
112
|
+
image: nocobase/nocobase:latest-no-nginx
|
|
113
|
+
restart: always
|
|
114
|
+
depends_on:
|
|
115
|
+
- postgres
|
|
116
|
+
networks:
|
|
117
|
+
- nocobase
|
|
118
|
+
environment:
|
|
119
|
+
- APP_KEY=your-secret-key
|
|
120
|
+
- DB_DIALECT=postgres
|
|
121
|
+
- DB_HOST=postgres
|
|
122
|
+
- DB_PORT=5432
|
|
123
|
+
- DB_DATABASE=nocobase
|
|
124
|
+
- DB_USER=nocobase
|
|
125
|
+
- DB_PASSWORD=nocobase
|
|
126
|
+
- TZ=Etc/UTC
|
|
127
|
+
- NOCOBASE_EXTRACT_CLIENT_ASSETS=true
|
|
128
|
+
- NOCOBASE_PROXY_PROVIDER=caddy
|
|
129
|
+
- NOCOBASE_PROXY_STORAGE_PATH=/path/to/your-project/storage
|
|
130
|
+
- NOCOBASE_PROXY_UPSTREAM_HOST=127.0.0.1
|
|
131
|
+
- NOCOBASE_PROXY_UPSTREAM_PORT=13000
|
|
132
|
+
volumes:
|
|
133
|
+
- ./storage:/app/nocobase/storage
|
|
134
|
+
ports:
|
|
135
|
+
- "13000:13000"
|
|
136
|
+
|
|
137
|
+
postgres:
|
|
138
|
+
image: postgres:16
|
|
139
|
+
restart: always
|
|
140
|
+
command: postgres -c wal_level=logical
|
|
141
|
+
environment:
|
|
142
|
+
POSTGRES_USER: nocobase
|
|
143
|
+
POSTGRES_DB: nocobase
|
|
144
|
+
POSTGRES_PASSWORD: nocobase
|
|
145
|
+
volumes:
|
|
146
|
+
- ./storage/db/postgres:/var/lib/postgresql/data
|
|
147
|
+
networks:
|
|
148
|
+
- nocobase
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
In this variant:
|
|
152
|
+
|
|
153
|
+
- `NOCOBASE_PROXY_STORAGE_PATH` should be the absolute host path of your `storage` directory
|
|
154
|
+
- `NOCOBASE_PROXY_UPSTREAM_HOST` should be `127.0.0.1`
|
|
155
|
+
- The `app` service must keep `ports`, so the local Caddy can reach the app through `127.0.0.1:13000`
|
|
156
|
+
|
|
157
|
+
After the `app` container starts, wait for the config file to be generated, then link it into the local Caddy config path:
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
while [ ! -f ./storage/.nocobase/proxy/caddy/nocobase.caddy ]; do
|
|
161
|
+
echo "waiting for nocobase.caddy..."
|
|
162
|
+
sleep 1
|
|
163
|
+
done
|
|
164
|
+
|
|
165
|
+
sudo ln -sf "$(pwd)/storage/.nocobase/proxy/caddy/nocobase.caddy" /etc/caddy/Caddyfile
|
|
166
|
+
sudo caddy validate --config /etc/caddy/Caddyfile --adapter caddyfile
|
|
167
|
+
sudo systemctl reload caddy
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
If your host Caddy does not use `/etc/caddy/Caddyfile`, replace the link target with your own config path. Usually it is safer to keep `nocobase.caddy` as the main entry file instead of copying its content manually.
|
|
171
|
+
|
|
172
|
+
## Related links
|
|
173
|
+
|
|
174
|
+
- [Docker Installation (Built-in Nginx)](./docker.mdx) — Start with the single-container setup
|
|
175
|
+
- [Caddy Static Resource Proxy](../deployment/static-resource-proxy/caddy.md) — Learn more about the generated Caddy config
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Docker Installation (External Nginx)"
|
|
3
|
+
description: "Install NocoBase with Docker and use an external Nginx container as the entry point."
|
|
4
|
+
keywords: "Docker,NocoBase,Nginx,installation,reverse proxy"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Docker Installation (External Nginx)
|
|
8
|
+
|
|
9
|
+
In this setup, the NocoBase app container and the Nginx container run separately. You can start with [Docker Installation (Built-in Nginx)](./docker.mdx) and then switch the entry service to an external Nginx container.
|
|
10
|
+
|
|
11
|
+
## When to use this setup
|
|
12
|
+
|
|
13
|
+
- You want to deploy NocoBase and the web server separately
|
|
14
|
+
- You want to manage the Nginx config and exposed ports yourself
|
|
15
|
+
- You want to expose only the proxy container to the public network
|
|
16
|
+
|
|
17
|
+
## docker-compose.yml example
|
|
18
|
+
|
|
19
|
+
If you need the `full` image, replace `latest-no-nginx` with `latest-full-no-nginx`.
|
|
20
|
+
|
|
21
|
+
The `13000:80` mapping is only for convenient local testing, so it does not occupy the standard host ports directly. In production, you usually do not keep using `13000:80`; instead, let the external Nginx container map directly to the host `80` and `443` ports.
|
|
22
|
+
```yml
|
|
23
|
+
networks:
|
|
24
|
+
nocobase:
|
|
25
|
+
driver: bridge
|
|
26
|
+
|
|
27
|
+
services:
|
|
28
|
+
app:
|
|
29
|
+
image: nocobase/nocobase:latest-no-nginx
|
|
30
|
+
restart: always
|
|
31
|
+
depends_on:
|
|
32
|
+
- postgres
|
|
33
|
+
networks:
|
|
34
|
+
- nocobase
|
|
35
|
+
environment:
|
|
36
|
+
- APP_KEY=your-secret-key
|
|
37
|
+
- DB_DIALECT=postgres
|
|
38
|
+
- DB_HOST=postgres
|
|
39
|
+
- DB_PORT=5432
|
|
40
|
+
- DB_DATABASE=nocobase
|
|
41
|
+
- DB_USER=nocobase
|
|
42
|
+
- DB_PASSWORD=nocobase
|
|
43
|
+
- TZ=Etc/UTC
|
|
44
|
+
- NOCOBASE_EXTRACT_CLIENT_ASSETS=true
|
|
45
|
+
- NOCOBASE_PROXY_PROVIDER=nginx
|
|
46
|
+
- NOCOBASE_PROXY_STORAGE_PATH=/app/nocobase/storage
|
|
47
|
+
- NOCOBASE_PROXY_UPSTREAM_HOST=app
|
|
48
|
+
volumes:
|
|
49
|
+
- ./storage:/app/nocobase/storage
|
|
50
|
+
|
|
51
|
+
nginx:
|
|
52
|
+
image: nginx:latest
|
|
53
|
+
restart: always
|
|
54
|
+
depends_on:
|
|
55
|
+
- app
|
|
56
|
+
networks:
|
|
57
|
+
- nocobase
|
|
58
|
+
volumes:
|
|
59
|
+
- ./storage:/app/nocobase/storage
|
|
60
|
+
command: >
|
|
61
|
+
/bin/sh -c '
|
|
62
|
+
while [ ! -f /app/nocobase/storage/.nocobase/proxy/nginx/nocobase.conf ]; do
|
|
63
|
+
echo "waiting for nocobase.conf..."
|
|
64
|
+
sleep 1
|
|
65
|
+
done
|
|
66
|
+
rm -f /etc/nginx/conf.d/default.conf
|
|
67
|
+
ln -sf /app/nocobase/storage/.nocobase/proxy/nginx/nocobase.conf /etc/nginx/conf.d/default.conf
|
|
68
|
+
nginx -g "daemon off;"
|
|
69
|
+
'
|
|
70
|
+
ports:
|
|
71
|
+
# This is only a local testing example.
|
|
72
|
+
- "13000:80"
|
|
73
|
+
# In production, usually change it to:
|
|
74
|
+
# - "80:80"
|
|
75
|
+
# - "443:443"
|
|
76
|
+
|
|
77
|
+
postgres:
|
|
78
|
+
image: postgres:16
|
|
79
|
+
restart: always
|
|
80
|
+
command: postgres -c wal_level=logical
|
|
81
|
+
environment:
|
|
82
|
+
POSTGRES_USER: nocobase
|
|
83
|
+
POSTGRES_DB: nocobase
|
|
84
|
+
POSTGRES_PASSWORD: nocobase
|
|
85
|
+
volumes:
|
|
86
|
+
- ./storage/db/postgres:/var/lib/postgresql/data
|
|
87
|
+
networks:
|
|
88
|
+
- nocobase
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Key points
|
|
92
|
+
|
|
93
|
+
- `NOCOBASE_EXTRACT_CLIENT_ASSETS=true` extracts client assets and generates proxy config
|
|
94
|
+
- `NOCOBASE_PROXY_PROVIDER=nginx` tells the app to generate Nginx config
|
|
95
|
+
- `NOCOBASE_PROXY_UPSTREAM_HOST=app` lets the Nginx container reach the `app` service through the Compose network
|
|
96
|
+
- `./storage` must be mounted into both the `app` and `nginx` containers so they can share proxy config, static assets, and uploaded files
|
|
97
|
+
- The `nginx` container should wait until `nocobase.conf` is generated, then link it to `/etc/nginx/conf.d/default.conf` with `ln -sf`
|
|
98
|
+
- If you use an external Nginx container, let the `nginx` container handle the host port mapping. For testing, you can start with `13000:80`; in production, you usually expose the host `80` and `443` ports directly, while the `app` service does not need to expose its port to the host
|
|
99
|
+
|
|
100
|
+
## If you use a local host Nginx
|
|
101
|
+
|
|
102
|
+
If your Nginx is installed directly on the host instead of running in a Docker container, it is better to use a separate `docker-compose.yml`. In this setup, the `app` service must expose a host port directly, and the proxy-related environment variables should use host-side values.
|
|
103
|
+
|
|
104
|
+
You can use a `docker-compose.yml` like this:
|
|
105
|
+
|
|
106
|
+
```yml
|
|
107
|
+
networks:
|
|
108
|
+
nocobase:
|
|
109
|
+
driver: bridge
|
|
110
|
+
|
|
111
|
+
services:
|
|
112
|
+
app:
|
|
113
|
+
image: nocobase/nocobase:latest-no-nginx
|
|
114
|
+
restart: always
|
|
115
|
+
depends_on:
|
|
116
|
+
- postgres
|
|
117
|
+
networks:
|
|
118
|
+
- nocobase
|
|
119
|
+
environment:
|
|
120
|
+
- APP_KEY=your-secret-key
|
|
121
|
+
- DB_DIALECT=postgres
|
|
122
|
+
- DB_HOST=postgres
|
|
123
|
+
- DB_PORT=5432
|
|
124
|
+
- DB_DATABASE=nocobase
|
|
125
|
+
- DB_USER=nocobase
|
|
126
|
+
- DB_PASSWORD=nocobase
|
|
127
|
+
- TZ=Etc/UTC
|
|
128
|
+
- NOCOBASE_EXTRACT_CLIENT_ASSETS=true
|
|
129
|
+
- NOCOBASE_PROXY_PROVIDER=nginx
|
|
130
|
+
- NOCOBASE_PROXY_STORAGE_PATH=/path/to/your-project/storage
|
|
131
|
+
- NOCOBASE_PROXY_UPSTREAM_HOST=127.0.0.1
|
|
132
|
+
- NOCOBASE_PROXY_UPSTREAM_PORT=13000
|
|
133
|
+
volumes:
|
|
134
|
+
- ./storage:/app/nocobase/storage
|
|
135
|
+
ports:
|
|
136
|
+
- "13000:13000"
|
|
137
|
+
|
|
138
|
+
postgres:
|
|
139
|
+
image: postgres:16
|
|
140
|
+
restart: always
|
|
141
|
+
command: postgres -c wal_level=logical
|
|
142
|
+
environment:
|
|
143
|
+
POSTGRES_USER: nocobase
|
|
144
|
+
POSTGRES_DB: nocobase
|
|
145
|
+
POSTGRES_PASSWORD: nocobase
|
|
146
|
+
volumes:
|
|
147
|
+
- ./storage/db/postgres:/var/lib/postgresql/data
|
|
148
|
+
networks:
|
|
149
|
+
- nocobase
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
In this variant:
|
|
153
|
+
|
|
154
|
+
- `NOCOBASE_PROXY_STORAGE_PATH` should be the absolute host path of your `storage` directory
|
|
155
|
+
- `NOCOBASE_PROXY_UPSTREAM_HOST` should be `127.0.0.1`
|
|
156
|
+
- The `app` service must keep `ports`, so the local Nginx can reach the app through `127.0.0.1:13000`
|
|
157
|
+
|
|
158
|
+
After the `app` container starts, wait for the config file to be generated, then link it into the local Nginx config directory:
|
|
159
|
+
|
|
160
|
+
```bash
|
|
161
|
+
while [ ! -f ./storage/.nocobase/proxy/nginx/nocobase.conf ]; do
|
|
162
|
+
echo "waiting for nocobase.conf..."
|
|
163
|
+
sleep 1
|
|
164
|
+
done
|
|
165
|
+
|
|
166
|
+
sudo ln -sf "$(pwd)/storage/.nocobase/proxy/nginx/nocobase.conf" /etc/nginx/conf.d/nocobase.conf
|
|
167
|
+
sudo nginx -t
|
|
168
|
+
sudo systemctl reload nginx
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
If your host Nginx does not use the `conf.d` directory, replace the link target with your own config path. Usually it is safer to keep `nocobase.conf` as a file included from the `http {}` context instead of copying its content manually.
|
|
172
|
+
|
|
173
|
+
## Related links
|
|
174
|
+
|
|
175
|
+
- [Docker Installation (Built-in Nginx)](./docker.mdx) — Start with the single-container setup
|
|
176
|
+
- [Nginx Static Resource Proxy](../deployment/static-resource-proxy/nginx.md) — Learn more about the generated Nginx config
|
|
@@ -617,4 +617,97 @@ Open [http://localhost:13000](http://localhost:13000) in your browser. The initi
|
|
|
617
617
|
|
|
618
618
|
After logging in for the first time, please change the default password promptly to ensure system security.
|
|
619
619
|
|
|
620
|
-
:::
|
|
620
|
+
:::
|
|
621
|
+
|
|
622
|
+
## 5. Production deployment
|
|
623
|
+
|
|
624
|
+
If you use the built-in Nginx image, it is usually better not to expose `13000` directly to the public internet. A more common setup is to keep the container port available only on the host and let the host Nginx handle the domain, HTTPS, and reverse proxy.
|
|
625
|
+
|
|
626
|
+
### Proxy the root path with Nginx
|
|
627
|
+
|
|
628
|
+
The following config proxies domain requests to `http://127.0.0.1:13000/`:
|
|
629
|
+
|
|
630
|
+
```bash
|
|
631
|
+
server {
|
|
632
|
+
listen 80;
|
|
633
|
+
server_name your_domain.com; # Replace your_domain.com with your domain
|
|
634
|
+
|
|
635
|
+
location / {
|
|
636
|
+
proxy_pass http://127.0.0.1:13000/;
|
|
637
|
+
proxy_http_version 1.1;
|
|
638
|
+
|
|
639
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
640
|
+
proxy_set_header Connection $connection_upgrade;
|
|
641
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
642
|
+
proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto;
|
|
643
|
+
proxy_set_header Host $final_host;
|
|
644
|
+
proxy_set_header Referer $http_referer;
|
|
645
|
+
proxy_set_header User-Agent $http_user_agent;
|
|
646
|
+
|
|
647
|
+
add_header Cache-Control "no-cache, no-store" always;
|
|
648
|
+
proxy_cache_bypass $http_upgrade;
|
|
649
|
+
|
|
650
|
+
proxy_connect_timeout 600;
|
|
651
|
+
proxy_send_timeout 600;
|
|
652
|
+
proxy_read_timeout 600;
|
|
653
|
+
send_timeout 600;
|
|
654
|
+
proxy_buffering off;
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
```
|
|
658
|
+
|
|
659
|
+
If you also want to enable HTTPS, configure `443` and the certificate on the host Nginx. The NocoBase container does not need to handle certificates separately.
|
|
660
|
+
|
|
661
|
+
### Subpath deployment
|
|
662
|
+
|
|
663
|
+
If you want to deploy the app under a subpath, such as `https://your_domain.com/nocobase/`, configure the `APP_PUBLIC_PATH` environment variable first:
|
|
664
|
+
|
|
665
|
+
```diff
|
|
666
|
+
services:
|
|
667
|
+
app:
|
|
668
|
+
image: nocobase/nocobase:latest
|
|
669
|
+
environment:
|
|
670
|
+
+ - APP_PUBLIC_PATH=/nocobase/
|
|
671
|
+
```
|
|
672
|
+
|
|
673
|
+
Keep the leading and trailing `/` in the path. After this is configured, the app URL becomes `http://127.0.0.1:13000/nocobase/`.
|
|
674
|
+
|
|
675
|
+
Then configure the host Nginx with the same subpath proxy:
|
|
676
|
+
|
|
677
|
+
```bash
|
|
678
|
+
server {
|
|
679
|
+
listen 80;
|
|
680
|
+
server_name your_domain.com; # Replace your_domain.com with your domain
|
|
681
|
+
|
|
682
|
+
location /nocobase/ {
|
|
683
|
+
proxy_pass http://127.0.0.1:13000/nocobase/;
|
|
684
|
+
proxy_http_version 1.1;
|
|
685
|
+
|
|
686
|
+
proxy_set_header Upgrade $http_upgrade;
|
|
687
|
+
proxy_set_header Connection $connection_upgrade;
|
|
688
|
+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
689
|
+
proxy_set_header X-Forwarded-Proto $upstream_x_forwarded_proto;
|
|
690
|
+
proxy_set_header Host $final_host;
|
|
691
|
+
proxy_set_header Referer $http_referer;
|
|
692
|
+
proxy_set_header User-Agent $http_user_agent;
|
|
693
|
+
|
|
694
|
+
add_header Cache-Control "no-cache, no-store" always;
|
|
695
|
+
proxy_cache_bypass $http_upgrade;
|
|
696
|
+
|
|
697
|
+
proxy_connect_timeout 600;
|
|
698
|
+
proxy_send_timeout 600;
|
|
699
|
+
proxy_read_timeout 600;
|
|
700
|
+
send_timeout 600;
|
|
701
|
+
proxy_buffering off;
|
|
702
|
+
}
|
|
703
|
+
}
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
The key point is that `APP_PUBLIC_PATH` and the path in `proxy_pass` must stay consistent. If either side misses `/nocobase/`, static assets and routing will usually not work correctly.
|
|
707
|
+
|
|
708
|
+
### Other options
|
|
709
|
+
|
|
710
|
+
If you do not want to use the built-in Nginx, you can also use one of these separate proxy setups:
|
|
711
|
+
|
|
712
|
+
- [Docker Installation (External Nginx)](./docker-nginx.mdx)
|
|
713
|
+
- [Docker Installation (External Caddy)](./docker-caddy.mdx)
|
package/dist/externalVersion.js
CHANGED
|
@@ -8,22 +8,22 @@
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
module.exports = {
|
|
11
|
-
"@nocobase/plugin-acl": "2.1.
|
|
12
|
-
"@nocobase/plugin-workflow": "2.1.
|
|
13
|
-
"@nocobase/client": "2.1.
|
|
14
|
-
"@nocobase/utils": "2.1.
|
|
15
|
-
"@nocobase/client-v2": "2.1.
|
|
16
|
-
"@nocobase/database": "2.1.
|
|
17
|
-
"@nocobase/server": "2.1.
|
|
18
|
-
"@nocobase/plugin-file-manager": "2.1.
|
|
19
|
-
"@nocobase/actions": "2.1.
|
|
20
|
-
"@nocobase/ai": "2.1.
|
|
11
|
+
"@nocobase/plugin-acl": "2.1.20",
|
|
12
|
+
"@nocobase/plugin-workflow": "2.1.20",
|
|
13
|
+
"@nocobase/client": "2.1.20",
|
|
14
|
+
"@nocobase/utils": "2.1.20",
|
|
15
|
+
"@nocobase/client-v2": "2.1.20",
|
|
16
|
+
"@nocobase/database": "2.1.20",
|
|
17
|
+
"@nocobase/server": "2.1.20",
|
|
18
|
+
"@nocobase/plugin-file-manager": "2.1.20",
|
|
19
|
+
"@nocobase/actions": "2.1.20",
|
|
20
|
+
"@nocobase/ai": "2.1.20",
|
|
21
21
|
"langchain": "1.2.39",
|
|
22
22
|
"react": "18.2.0",
|
|
23
23
|
"antd": "5.24.2",
|
|
24
24
|
"@formily/core": "2.3.7",
|
|
25
25
|
"@formily/react": "2.3.7",
|
|
26
|
-
"@nocobase/flow-engine": "2.1.
|
|
26
|
+
"@nocobase/flow-engine": "2.1.20",
|
|
27
27
|
"@ant-design/icons": "5.6.1",
|
|
28
28
|
"@formily/antd-v5": "1.2.3",
|
|
29
29
|
"@formily/shared": "2.3.7",
|
|
@@ -33,20 +33,20 @@ module.exports = {
|
|
|
33
33
|
"lodash": "4.18.1",
|
|
34
34
|
"@langchain/core": "1.1.49",
|
|
35
35
|
"@langchain/langgraph": "1.4.4",
|
|
36
|
-
"@nocobase/cache": "2.1.
|
|
36
|
+
"@nocobase/cache": "2.1.20",
|
|
37
37
|
"@langchain/anthropic": "1.3.17",
|
|
38
38
|
"@langchain/openai": "1.4.7",
|
|
39
39
|
"@langchain/deepseek": "1.0.27",
|
|
40
40
|
"@langchain/google-genai": "2.1.18",
|
|
41
41
|
"@langchain/ollama": "1.2.7",
|
|
42
|
-
"@nocobase/acl": "2.1.
|
|
43
|
-
"@nocobase/resourcer": "2.1.
|
|
42
|
+
"@nocobase/acl": "2.1.20",
|
|
43
|
+
"@nocobase/resourcer": "2.1.20",
|
|
44
44
|
"@emotion/css": "11.13.0",
|
|
45
45
|
"dayjs": "1.11.13",
|
|
46
46
|
"react-i18next": "11.18.6",
|
|
47
|
-
"@nocobase/plugin-data-source-manager": "2.1.
|
|
47
|
+
"@nocobase/plugin-data-source-manager": "2.1.20",
|
|
48
48
|
"@langchain/langgraph-checkpoint": "1.1.2",
|
|
49
|
-
"@nocobase/data-source-manager": "2.1.
|
|
49
|
+
"@nocobase/data-source-manager": "2.1.20",
|
|
50
50
|
"react-dom": "18.2.0",
|
|
51
51
|
"axios": "1.7.7"
|
|
52
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@langchain/mistralai","version":"1.0.0","description":"MistralAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mistralai/","dependencies":{"@mistralai/mistralai":"^1.3.1","uuid":"^10.0.0"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^16.3.1","dpdm":"^3.14.0","eslint":"^9.34.0","prettier":"^2.8.3","rollup":"^4.5.2","typescript":"~5.8.3","vitest":"^3.2.4","zod":"^3.25.76","@langchain/eslint":"0.1.0","@langchain/standard-tests":"0.0.0","@langchain/core":"1.0.1"},"publishConfig":{"access":"public"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"input":"./src/index.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"scripts":{"build":"pnpm --filter @langchain/build compile @langchain/mistralai","lint:eslint":"eslint --cache src/","lint:dpdm":"dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/*.ts src/**/*.ts","lint":"pnpm lint:eslint && pnpm lint:dpdm","lint:fix":"pnpm lint:eslint --fix && pnpm lint:dpdm","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest","test:int":"vitest run --mode int","test:standard:unit":"vitest run --mode standard-unit","test:standard:int":"vitest run --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","format":"prettier --config .prettierrc --write \"src\"","format:check":"prettier --config .prettierrc --check \"src\""},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"@langchain/mistralai","version":"1.0.0","description":"MistralAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/langchain-mistralai/","dependencies":{"@mistralai/mistralai":"^1.3.1","uuid":"^10.0.0"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^16.3.1","dpdm":"^3.14.0","eslint":"^9.34.0","prettier":"^2.8.3","rollup":"^4.5.2","typescript":"~5.8.3","vitest":"^3.2.4","zod":"^3.25.76","@langchain/eslint":"0.1.0","@langchain/standard-tests":"0.0.0","@langchain/core":"1.0.1"},"publishConfig":{"access":"public"},"main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"input":"./src/index.ts","import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"scripts":{"build":"pnpm --filter @langchain/build compile @langchain/mistralai","lint:eslint":"eslint --cache src/","lint:dpdm":"dpdm --skip-dynamic-imports circular --exit-code circular:1 --no-warning --no-tree src/*.ts src/**/*.ts","lint":"pnpm lint:eslint && pnpm lint:dpdm","lint:fix":"pnpm lint:eslint --fix && pnpm lint:dpdm","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest","test:int":"vitest run --mode int","test:standard:unit":"vitest run --mode standard-unit","test:standard:int":"vitest run --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","format":"prettier --config .prettierrc --write \"src\"","format:check":"prettier --config .prettierrc --check \"src\""},"_lastModified":"2026-07-07T02:39:54.527Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"@langchain/xai","version":"1.3.19","description":"xAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-xai/","dependencies":{"@langchain/openai":"1.4.7"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^17.4.0","dpdm":"^3.14.0","typescript":"~5.8.3","vitest":"^4.1.2","zod":"^3.25.76","@langchain/openai":"^1.4.7","@langchain/core":"^1.1.48","@langchain/standard-tests":"0.0.23","@langchain/tsconfig":"0.0.1"},"publishConfig":{"access":"public"},"main":"./dist/index.cjs","types":"./dist/index.d.cts","exports":{".":{"input":"./src/index.ts","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"module":"./dist/index.js","scripts":{"build":"turbo build:compile --filter @langchain/xai --output-logs new-only","build:compile":"tsdown","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest --watch","test:int":"vitest --mode int","test:standard:unit":"vitest --mode standard-unit","test:standard:int":"vitest --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","typegen":"pnpm run typegen:profiles","typegen:profiles":"pnpm --filter @langchain/model-profiles make --config profiles.toml"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"@langchain/xai","version":"1.3.19","description":"xAI integration for LangChain.js","author":"LangChain","license":"MIT","type":"module","engines":{"node":">=20"},"repository":{"type":"git","url":"git@github.com:langchain-ai/langchainjs.git"},"homepage":"https://github.com/langchain-ai/langchainjs/tree/main/libs/providers/langchain-xai/","dependencies":{"@langchain/openai":"1.4.7"},"peerDependencies":{"@langchain/core":"^1.0.0"},"devDependencies":{"@tsconfig/recommended":"^1.0.3","@vitest/coverage-v8":"^3.2.4","dotenv":"^17.4.0","dpdm":"^3.14.0","typescript":"~5.8.3","vitest":"^4.1.2","zod":"^3.25.76","@langchain/openai":"^1.4.7","@langchain/core":"^1.1.48","@langchain/standard-tests":"0.0.23","@langchain/tsconfig":"0.0.1"},"publishConfig":{"access":"public"},"main":"./dist/index.cjs","types":"./dist/index.d.cts","exports":{".":{"input":"./src/index.ts","require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"./package.json":"./package.json"},"files":["dist/","CHANGELOG.md","README.md","LICENSE"],"module":"./dist/index.js","scripts":{"build":"turbo build:compile --filter @langchain/xai --output-logs new-only","build:compile":"tsdown","clean":"rm -rf .turbo dist/","test":"vitest run","test:watch":"vitest --watch","test:int":"vitest --mode int","test:standard:unit":"vitest --mode standard-unit","test:standard:int":"vitest --mode standard-int","test:standard":"pnpm test:standard:unit && pnpm test:standard:int","typegen":"pnpm run typegen:profiles","typegen:profiles":"pnpm --filter @langchain/model-profiles make --config profiles.toml"},"_lastModified":"2026-07-07T02:39:57.063Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"fs-extra","version":"9.1.0","description":"fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.","engines":{"node":">=10"},"homepage":"https://github.com/jprichardson/node-fs-extra","repository":{"type":"git","url":"https://github.com/jprichardson/node-fs-extra"},"keywords":["fs","file","file system","copy","directory","extra","mkdirp","mkdir","mkdirs","recursive","json","read","write","extra","delete","remove","touch","create","text","output","move","promise"],"author":"JP Richardson <jprichardson@gmail.com>","license":"MIT","dependencies":{"at-least-node":"^1.0.0","graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"devDependencies":{"coveralls":"^3.0.0","klaw":"^2.1.1","klaw-sync":"^3.0.2","minimist":"^1.1.1","mocha":"^5.0.5","nyc":"^15.0.0","proxyquire":"^2.0.1","read-dir-files":"^0.1.1","standard":"^14.1.0"},"main":"./lib/index.js","files":["lib/","!lib/**/__tests__/"],"scripts":{"full-ci":"npm run lint && npm run coverage","coverage":"nyc -r lcovonly npm run unit","coveralls":"coveralls < coverage/lcov.info","lint":"standard","test-find":"find ./lib/**/__tests__ -name *.test.js | xargs mocha","test":"npm run lint && npm run unit","unit":"node test.js"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"fs-extra","version":"9.1.0","description":"fs-extra contains methods that aren't included in the vanilla Node.js fs package. Such as recursive mkdir, copy, and remove.","engines":{"node":">=10"},"homepage":"https://github.com/jprichardson/node-fs-extra","repository":{"type":"git","url":"https://github.com/jprichardson/node-fs-extra"},"keywords":["fs","file","file system","copy","directory","extra","mkdirp","mkdir","mkdirs","recursive","json","read","write","extra","delete","remove","touch","create","text","output","move","promise"],"author":"JP Richardson <jprichardson@gmail.com>","license":"MIT","dependencies":{"at-least-node":"^1.0.0","graceful-fs":"^4.2.0","jsonfile":"^6.0.1","universalify":"^2.0.0"},"devDependencies":{"coveralls":"^3.0.0","klaw":"^2.1.1","klaw-sync":"^3.0.2","minimist":"^1.1.1","mocha":"^5.0.5","nyc":"^15.0.0","proxyquire":"^2.0.1","read-dir-files":"^0.1.1","standard":"^14.1.0"},"main":"./lib/index.js","files":["lib/","!lib/**/__tests__/"],"scripts":{"full-ci":"npm run lint && npm run coverage","coverage":"nyc -r lcovonly npm run unit","coveralls":"coveralls < coverage/lcov.info","lint":"standard","test-find":"find ./lib/**/__tests__ -name *.test.js | xargs mocha","test":"npm run lint && npm run unit","unit":"node test.js"},"_lastModified":"2026-07-07T02:39:57.221Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"jsonrepair","version":"3.13.1","description":"Repair broken JSON documents","repository":{"type":"git","url":"https://github.com/josdejong/jsonrepair.git"},"type":"module","main":"lib/cjs/index.js","module":"lib/esm/index.js","browser":"lib/umd/jsonrepair.min.js","types":"lib/types/index.d.ts","sideEffects":false,"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/cjs/index.js","types":"./lib/types/index.d.ts"},"./stream":{"import":"./lib/esm/stream.js","require":"./lib/cjs/stream.js","types":"./lib/types/stream.d.ts"}},"keywords":["simple","json","repair","fix","invalid","stream","streaming"],"bin":{"jsonrepair":"./bin/cli.js"},"scripts":{"test":"vitest watch src","test:it":"vitest run src","build":"npm-run-all build:**","build:clean":"del-cli lib","build:esm":"babel src --out-dir lib/esm --extensions \".ts\" --source-maps --config-file ./babel.config.json","build:cjs":"babel src --out-dir lib/cjs --extensions \".ts\" --source-maps --config-file ./babel-cjs.config.json && cpy tools/cjs lib/cjs --flat","build:umd":"rollup lib/esm/index.js --format umd --name JSONRepair --sourcemap --output.file lib/umd/jsonrepair.js && cpy tools/cjs/package.json lib/umd --flat","build:umd:min":"uglifyjs --compress --mangle --source-map --comments --output lib/umd/jsonrepair.min.js -- lib/umd/jsonrepair.js","build:types":"tsc --project tsconfig-types.json","build:validate":"vitest run test-lib","lint":"biome check","format":"biome check --write","benchmark":"npm run build:esm && node tools/benchmark/run.mjs","build-and-test":"npm run lint && npm run test:it && npm run build","release":"npm-run-all release:**","release:build-and-test":"npm run build-and-test","release:version":"standard-version","release:push":"git push && git push --tag","release:publish":"npm publish","release-dry-run":"npm run build-and-test && standard-version --dry-run","prepare":"husky"},"files":["README.md","LICENSE.md","lib"],"author":"Jos de Jong","license":"ISC","devDependencies":{"@babel/cli":"7.28.3","@babel/core":"7.28.4","@babel/plugin-transform-typescript":"7.28.0","@babel/preset-env":"7.28.3","@babel/preset-typescript":"7.27.1","@biomejs/biome":"2.2.4","@commitlint/cli":"19.8.1","@commitlint/config-conventional":"19.8.1","@types/node":"24.5.2","cpy-cli":"6.0.0","del-cli":"7.0.0","husky":"9.1.7","npm-run-all":"4.1.5","rollup":"4.51.0","standard-version":"9.5.0","tinybench":"5.0.1","ts-node":"10.9.2","typescript":"5.9.2","uglify-js":"3.19.3","vitest":"3.2.4"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"jsonrepair","version":"3.13.1","description":"Repair broken JSON documents","repository":{"type":"git","url":"https://github.com/josdejong/jsonrepair.git"},"type":"module","main":"lib/cjs/index.js","module":"lib/esm/index.js","browser":"lib/umd/jsonrepair.min.js","types":"lib/types/index.d.ts","sideEffects":false,"exports":{".":{"import":"./lib/esm/index.js","require":"./lib/cjs/index.js","types":"./lib/types/index.d.ts"},"./stream":{"import":"./lib/esm/stream.js","require":"./lib/cjs/stream.js","types":"./lib/types/stream.d.ts"}},"keywords":["simple","json","repair","fix","invalid","stream","streaming"],"bin":{"jsonrepair":"./bin/cli.js"},"scripts":{"test":"vitest watch src","test:it":"vitest run src","build":"npm-run-all build:**","build:clean":"del-cli lib","build:esm":"babel src --out-dir lib/esm --extensions \".ts\" --source-maps --config-file ./babel.config.json","build:cjs":"babel src --out-dir lib/cjs --extensions \".ts\" --source-maps --config-file ./babel-cjs.config.json && cpy tools/cjs lib/cjs --flat","build:umd":"rollup lib/esm/index.js --format umd --name JSONRepair --sourcemap --output.file lib/umd/jsonrepair.js && cpy tools/cjs/package.json lib/umd --flat","build:umd:min":"uglifyjs --compress --mangle --source-map --comments --output lib/umd/jsonrepair.min.js -- lib/umd/jsonrepair.js","build:types":"tsc --project tsconfig-types.json","build:validate":"vitest run test-lib","lint":"biome check","format":"biome check --write","benchmark":"npm run build:esm && node tools/benchmark/run.mjs","build-and-test":"npm run lint && npm run test:it && npm run build","release":"npm-run-all release:**","release:build-and-test":"npm run build-and-test","release:version":"standard-version","release:push":"git push && git push --tag","release:publish":"npm publish","release-dry-run":"npm run build-and-test && standard-version --dry-run","prepare":"husky"},"files":["README.md","LICENSE.md","lib"],"author":"Jos de Jong","license":"ISC","devDependencies":{"@babel/cli":"7.28.3","@babel/core":"7.28.4","@babel/plugin-transform-typescript":"7.28.0","@babel/preset-env":"7.28.3","@babel/preset-typescript":"7.27.1","@biomejs/biome":"2.2.4","@commitlint/cli":"19.8.1","@commitlint/config-conventional":"19.8.1","@types/node":"24.5.2","cpy-cli":"6.0.0","del-cli":"7.0.0","husky":"9.1.7","npm-run-all":"4.1.5","rollup":"4.51.0","standard-version":"9.5.0","tinybench":"5.0.1","ts-node":"10.9.2","typescript":"5.9.2","uglify-js":"3.19.3","vitest":"3.2.4"},"_lastModified":"2026-07-07T02:40:02.502Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"just-bash","version":"2.14.3","description":"A simulated bash environment with virtual filesystem","repository":{"type":"git","url":"git+https://github.com/vercel-labs/just-bash.git"},"homepage":"https://github.com/vercel-labs/just-bash#readme","bugs":{"url":"https://github.com/vercel-labs/just-bash/issues"},"type":"module","main":"dist/bundle/index.js","types":"dist/index.d.ts","exports":{".":{"browser":"./dist/bundle/browser.js","require":{"types":"./dist/index.d.cts","default":"./dist/bundle/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/bundle/index.js"}},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/bundle/browser.js"}},"files":["dist/bundle/","dist/bin/","dist/*.d.ts","dist/*.d.cts","dist/ast/*.d.ts","dist/commands/**/*.d.ts","dist/fs/**/*.d.ts","dist/interpreter/**/*.d.ts","dist/network/**/*.d.ts","dist/parser/*.d.ts","dist/sandbox/*.d.ts","dist/utils/*.d.ts","vendor/cpython-emscripten/","README.md","CHANGELOG.md","dist/AGENTS.md"],"bin":{"just-bash":"./dist/bin/just-bash.js","just-bash-shell":"./dist/bin/shell/shell.js"},"publishConfig":{"access":"public"},"keywords":[],"author":"Malte and Claude","license":"Apache-2.0","devDependencies":{"@types/ini":"^4.1.1","@types/node":"^25.0.3","@types/papaparse":"^5.5.2","@types/sprintf-js":"^1.1.4","@types/sql.js":"^1.4.9","@types/turndown":"^5.0.6","@vitest/coverage-v8":"^4.0.18","esbuild":"^0.27.2","fast-check":"^3.23.2","knip":"^5.41.1","typescript":"^5.9.3","vitest":"^4.0.16"},"dependencies":{"seek-bzip":"^2.0.0","diff":"^8.0.2","fast-xml-parser":"5.3.3","file-type":"^21.2.0","ini":"^6.0.0","minimatch":"^10.1.1","modern-tar":"^0.7.3","papaparse":"^5.5.3","quickjs-emscripten":"^0.32.0","re2js":"^1.2.1","smol-toml":"^1.6.0","sprintf-js":"^1.1.3","sql.js":"^1.13.0","turndown":"^7.2.2","yaml":"^2.8.2"},"optionalDependencies":{"@mongodb-js/zstd":"^7.0.0","node-liblzma":"^2.0.3"},"scripts":{"build":"rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md","build:clean":"find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete","build:worker":"esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js","build:lib":"esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:lib:cjs":"esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:browser":"esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js","build:cli":"esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:shell":"esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","validate":"pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist","typecheck":"tsc --noEmit","lint":"pnpm lint:banned","check:worker-sync":"node scripts/check-worker-sync.js","lint:banned":"node scripts/check-banned-patterns.js","lint:fix":"pnpm --workspace-root lint:fix","knip":"knip","test":"vitest","test:run":"vitest run --exclude src/security/fuzzing/ --exclude src/commands/python3/ --exclude src/commands/sqlite3/ --exclude src/commands/js-exec/ --exclude src/agent-examples/python-scripting.test.ts","test:dist":"vitest run src/cli/just-bash.bundle.test.ts","test:unit":"vitest run --config vitest.unit.config.ts","test:wasm":"vitest run --config vitest.wasm.config.ts","test:comparison":"vitest run --config vitest.comparison.config.ts","test:comparison:record":"RECORD_FIXTURES=1 vitest run --config vitest.comparison.config.ts","test:coverage":"vitest run --coverage","test:coverage:unit":"vitest run --config vitest.unit.config.ts --coverage","test:fuzz":"vitest run src/security/fuzzing/","test:fuzz:long":"FUZZ_RUNS=10000 vitest run src/security/fuzzing/","shell":"npx tsx src/cli/shell.ts","dev:exec":"npx tsx src/cli/exec.ts"},"_lastModified":"2026-07-
|
|
1
|
+
{"name":"just-bash","version":"2.14.3","description":"A simulated bash environment with virtual filesystem","repository":{"type":"git","url":"git+https://github.com/vercel-labs/just-bash.git"},"homepage":"https://github.com/vercel-labs/just-bash#readme","bugs":{"url":"https://github.com/vercel-labs/just-bash/issues"},"type":"module","main":"dist/bundle/index.js","types":"dist/index.d.ts","exports":{".":{"browser":"./dist/bundle/browser.js","require":{"types":"./dist/index.d.cts","default":"./dist/bundle/index.cjs"},"import":{"types":"./dist/index.d.ts","default":"./dist/bundle/index.js"}},"./browser":{"types":"./dist/browser.d.ts","import":"./dist/bundle/browser.js"}},"files":["dist/bundle/","dist/bin/","dist/*.d.ts","dist/*.d.cts","dist/ast/*.d.ts","dist/commands/**/*.d.ts","dist/fs/**/*.d.ts","dist/interpreter/**/*.d.ts","dist/network/**/*.d.ts","dist/parser/*.d.ts","dist/sandbox/*.d.ts","dist/utils/*.d.ts","vendor/cpython-emscripten/","README.md","CHANGELOG.md","dist/AGENTS.md"],"bin":{"just-bash":"./dist/bin/just-bash.js","just-bash-shell":"./dist/bin/shell/shell.js"},"publishConfig":{"access":"public"},"keywords":[],"author":"Malte and Claude","license":"Apache-2.0","devDependencies":{"@types/ini":"^4.1.1","@types/node":"^25.0.3","@types/papaparse":"^5.5.2","@types/sprintf-js":"^1.1.4","@types/sql.js":"^1.4.9","@types/turndown":"^5.0.6","@vitest/coverage-v8":"^4.0.18","esbuild":"^0.27.2","fast-check":"^3.23.2","knip":"^5.41.1","typescript":"^5.9.3","vitest":"^4.0.16"},"dependencies":{"seek-bzip":"^2.0.0","diff":"^8.0.2","fast-xml-parser":"5.3.3","file-type":"^21.2.0","ini":"^6.0.0","minimatch":"^10.1.1","modern-tar":"^0.7.3","papaparse":"^5.5.3","quickjs-emscripten":"^0.32.0","re2js":"^1.2.1","smol-toml":"^1.6.0","sprintf-js":"^1.1.3","sql.js":"^1.13.0","turndown":"^7.2.2","yaml":"^2.8.2"},"optionalDependencies":{"@mongodb-js/zstd":"^7.0.0","node-liblzma":"^2.0.3"},"scripts":{"build":"rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md","build:clean":"find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete","build:worker":"esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js","build:lib":"esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:lib:cjs":"esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:browser":"esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js","build:cli":"esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","build:shell":"esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip","validate":"pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist","typecheck":"tsc --noEmit","lint":"pnpm lint:banned","check:worker-sync":"node scripts/check-worker-sync.js","lint:banned":"node scripts/check-banned-patterns.js","lint:fix":"pnpm --workspace-root lint:fix","knip":"knip","test":"vitest","test:run":"vitest run --exclude src/security/fuzzing/ --exclude src/commands/python3/ --exclude src/commands/sqlite3/ --exclude src/commands/js-exec/ --exclude src/agent-examples/python-scripting.test.ts","test:dist":"vitest run src/cli/just-bash.bundle.test.ts","test:unit":"vitest run --config vitest.unit.config.ts","test:wasm":"vitest run --config vitest.wasm.config.ts","test:comparison":"vitest run --config vitest.comparison.config.ts","test:comparison:record":"RECORD_FIXTURES=1 vitest run --config vitest.comparison.config.ts","test:coverage":"vitest run --coverage","test:coverage:unit":"vitest run --config vitest.unit.config.ts --coverage","test:fuzz":"vitest run src/security/fuzzing/","test:fuzz:long":"FUZZ_RUNS=10000 vitest run src/security/fuzzing/","shell":"npx tsx src/cli/shell.ts","dev:exec":"npx tsx src/cli/exec.ts"},"_lastModified":"2026-07-07T02:40:02.343Z"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-07-
|
|
1
|
+
{"name":"nodejs-snowflake","collaborators":["Utkarsh Srivastava <utkarsh@sagacious.dev>"],"description":"Generate time sortable 64 bits unique ids for distributed systems (inspired from twitter snowflake)","version":"2.0.1","license":"Apache 2.0","repository":{"type":"git","url":"https://github.com/utkarsh-pro/nodejs-snowflake.git"},"files":["nodejs_snowflake_bg.wasm","nodejs_snowflake.js","nodejs_snowflake.d.ts"],"main":"nodejs_snowflake.js","types":"nodejs_snowflake.d.ts","_lastModified":"2026-07-07T02:39:44.639Z"}
|