@nocobase/plugin-ai 2.1.19 → 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.
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: "nb config delete"
3
- description: "nb config delete command reference: delete an explicitly set CLI configuration item."
4
- keywords: "nb config delete,NocoBase CLI,delete configuration"
2
+ title: 'nb config delete'
3
+ description: 'nb config delete command reference: delete an explicitly set CLI configuration item.'
4
+ keywords: 'nb config delete,NocoBase CLI,delete configuration'
5
5
  ---
6
6
 
7
7
  # nb config delete
@@ -16,9 +16,9 @@ nb config delete <key>
16
16
 
17
17
  ## Parameters
18
18
 
19
- | Parameter | Type | Description |
20
- | --- | --- | --- |
21
- | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
19
+ | Parameter | Type | Description |
20
+ | --------- | ------ | --------------------------------------------------------------------------- |
21
+ | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
22
22
 
23
23
  ## Examples
24
24
 
@@ -27,6 +27,8 @@ nb config delete locale
27
27
  nb config delete update.policy
28
28
  nb config delete docker.network
29
29
  nb config delete docker.container-prefix
30
+ nb config delete nb-image-registry
31
+ nb config delete nb-image-variant
30
32
  nb config delete proxy.nb-cli-root
31
33
  nb config delete proxy.upstream-host
32
34
  nb config delete proxy.nginx-driver
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: "nb config get"
3
- description: "nb config get command reference: read the effective value of a CLI configuration item."
4
- keywords: "nb config get,NocoBase CLI,read configuration"
2
+ title: 'nb config get'
3
+ description: 'nb config get command reference: read the effective value of a CLI configuration item.'
4
+ keywords: 'nb config get,NocoBase CLI,read configuration'
5
5
  ---
6
6
 
7
7
  # nb config get
@@ -16,9 +16,9 @@ nb config get <key>
16
16
 
17
17
  ## Parameters
18
18
 
19
- | Parameter | Type | Description |
20
- | --- | --- | --- |
21
- | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
19
+ | Parameter | Type | Description |
20
+ | --------- | ------ | --------------------------------------------------------------------------- |
21
+ | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
22
22
 
23
23
  ## Examples
24
24
 
@@ -28,6 +28,8 @@ nb config get update.policy
28
28
  nb config get license.pkg-url
29
29
  nb config get docker.network
30
30
  nb config get docker.container-prefix
31
+ nb config get nb-image-registry
32
+ nb config get nb-image-variant
31
33
  nb config get proxy.nb-cli-root
32
34
  nb config get proxy.upstream-host
33
35
  nb config get proxy.nginx-driver
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: "nb config"
3
- description: "nb config command reference: manage default configuration items for the NocoBase CLI."
4
- keywords: "nb config,NocoBase CLI,configuration,default configuration"
2
+ title: 'nb config'
3
+ description: 'nb config command reference: manage default configuration items for the NocoBase CLI.'
4
+ keywords: 'nb config,NocoBase CLI,configuration,default configuration'
5
5
  ---
6
6
 
7
7
  # nb config
@@ -10,6 +10,7 @@ Manage default CLI configuration values. The currently supported keys are mainly
10
10
 
11
11
  - CLI itself: `locale`, `update.policy`, `license.pkg-url`
12
12
  - Docker runtime: `docker.network`, `docker.container-prefix`
13
+ - Official NocoBase images: `nb-image-registry`, `nb-image-variant`
13
14
  - External executables: `bin.docker`, `bin.caddy`, `bin.git`, `bin.nginx`, `bin.pnpm`, `bin.yarn`
14
15
  - Proxy generation: `proxy.nb-cli-root`, `proxy.upstream-host`, `proxy.nginx-driver`, `proxy.caddy-driver`
15
16
 
@@ -18,28 +19,32 @@ Most projects only need a few of these keys. In practice, the most common ones a
18
19
  - `update.policy`
19
20
  - `docker.network`
20
21
  - `docker.container-prefix`
22
+ - `nb-image-registry`
23
+ - `nb-image-variant`
21
24
  - `bin.nginx` or `bin.caddy`
22
25
  - `proxy.nginx-driver` or `proxy.caddy-driver`
23
26
 
24
27
  ## Common configuration keys
25
28
 
26
- | Key | Default | Description |
27
- | --- | --- | --- |
28
- | `locale` | resolved by the current CLI rules | Override the language used by the CLI |
29
- | `update.policy` | `prompt` | Startup update policy: `prompt`, `auto`, or `off` |
30
- | `license.pkg-url` | `https://pkg.nocobase.com/` | Override the download URL for commercial extension packages |
31
- | `docker.network` | `nocobase` | Default network for CLI-managed Docker apps |
32
- | `docker.container-prefix` | `nb` | Default prefix for CLI-managed Docker containers |
33
- | `bin.docker` | `docker` | Override the Docker executable path |
34
- | `bin.caddy` | `caddy` | Override the Caddy executable path |
35
- | `bin.git` | `git` | Override the Git executable path |
36
- | `bin.nginx` | `nginx` | Override the Nginx executable path |
37
- | `bin.pnpm` | `pnpm` | Override the pnpm executable path |
38
- | `bin.yarn` | `yarn` | Override the Yarn executable path |
39
- | `proxy.nb-cli-root` | CLI root, usually the current user's home directory | Override the root path visible to the generated proxy config when the proxy process and CLI do not see the same filesystem root |
40
- | `proxy.upstream-host` | `127.0.0.1` | Override the host used when the proxy forwards traffic back to the NocoBase app |
41
- | `proxy.nginx-driver` | `local` | Default runtime driver used by `nb proxy nginx` |
42
- | `proxy.caddy-driver` | `local` | Default runtime driver used by `nb proxy caddy` |
29
+ | Key | Default | Description |
30
+ | ------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------- |
31
+ | `locale` | resolved by the current CLI rules | Override the language used by the CLI |
32
+ | `update.policy` | `prompt` | Startup update policy: `prompt`, `auto`, or `off` |
33
+ | `license.pkg-url` | `https://pkg.nocobase.com/` | Override the download URL for commercial extension packages |
34
+ | `docker.network` | `nocobase` | Default network for CLI-managed Docker apps |
35
+ | `docker.container-prefix` | `nb` | Default prefix for CLI-managed Docker containers |
36
+ | `nb-image-registry` | `dockerhub` | Default registry family for official NocoBase images: `dockerhub` or `aliyun` |
37
+ | `nb-image-variant` | `full` | Default tag variant for official NocoBase app images: `standard`, `no-nginx`, `full`, or `full-no-nginx` |
38
+ | `bin.docker` | `docker` | Override the Docker executable path |
39
+ | `bin.caddy` | `caddy` | Override the Caddy executable path |
40
+ | `bin.git` | `git` | Override the Git executable path |
41
+ | `bin.nginx` | `nginx` | Override the Nginx executable path |
42
+ | `bin.pnpm` | `pnpm` | Override the pnpm executable path |
43
+ | `bin.yarn` | `yarn` | Override the Yarn executable path |
44
+ | `proxy.nb-cli-root` | CLI root, usually the current user's home directory | Override the root path visible to the generated proxy config when the proxy process and CLI do not see the same filesystem root |
45
+ | `proxy.upstream-host` | `127.0.0.1` | Override the host used when the proxy forwards traffic back to the NocoBase app |
46
+ | `proxy.nginx-driver` | `local` | Default runtime driver used by `nb proxy nginx` |
47
+ | `proxy.caddy-driver` | `local` | Default runtime driver used by `nb proxy caddy` |
43
48
 
44
49
  ## Usage
45
50
 
@@ -49,12 +54,12 @@ nb config <command>
49
54
 
50
55
  ## Subcommands
51
56
 
52
- | Command | Description |
53
- | --- | --- |
54
- | [`nb config get`](./get.md) | Read the effective value of a configuration key |
55
- | [`nb config set`](./set.md) | Set a configuration key |
56
- | [`nb config delete`](./delete.md) | Delete an explicitly set configuration key |
57
- | [`nb config list`](./list.md) | List the configuration keys that are currently set explicitly |
57
+ | Command | Description |
58
+ | --------------------------------- | ------------------------------------------------------------- |
59
+ | [`nb config get`](./get.md) | Read the effective value of a configuration key |
60
+ | [`nb config set`](./set.md) | Set a configuration key |
61
+ | [`nb config delete`](./delete.md) | Delete an explicitly set configuration key |
62
+ | [`nb config list`](./list.md) | List the configuration keys that are currently set explicitly |
58
63
 
59
64
  ## Examples
60
65
 
@@ -69,6 +74,9 @@ nb config set proxy.nginx-driver docker
69
74
  nb config set proxy.caddy-driver local
70
75
  nb config get docker.network
71
76
  nb config set docker.network nocobase
77
+ nb config get nb-image-registry
78
+ nb config set nb-image-registry aliyun
79
+ nb config set nb-image-variant full-no-nginx
72
80
  nb config set bin.nginx /usr/sbin/nginx
73
81
  nb config set bin.git /usr/bin/git
74
82
  nb config set bin.pnpm /usr/local/bin/pnpm
@@ -79,6 +87,9 @@ nb config delete docker.container-prefix
79
87
 
80
88
  - `bin.nginx` and `bin.caddy` only affect the `local` driver for `nb proxy nginx` and `nb proxy caddy`
81
89
  - `bin.pnpm` is used when commands need to run pnpm directly, such as updating a pnpm-managed global CLI install with `nb self update`
90
+ - `nb-image-registry` only affects official NocoBase image defaults used by the CLI. `dockerhub` maps app images to `nocobase/nocobase`, while `aliyun` maps them to `registry.cn-shanghai.aliyuncs.com/nocobase/nocobase`
91
+ - `nb-image-variant` only affects official NocoBase app image tags. With version tag `1.7.14`, the CLI resolves `standard` to `1.7.14`, `no-nginx` to `1.7.14-no-nginx`, `full` to `1.7.14-full`, and `full-no-nginx` to `1.7.14-full-no-nginx`
92
+ - When `nb-image-registry=aliyun`, the CLI also switches the default built-in database images to the official Aliyun mirrors for PostgreSQL, MySQL, MariaDB, and Kingbase
82
93
  - `proxy.nginx-driver` and `proxy.caddy-driver` store the default driver used by each provider
83
94
  - `proxy.nb-cli-root` and `proxy.upstream-host` are advanced proxy overrides. Most CLI-managed `local` or `docker` envs can use the defaults directly
84
95
  - If you only want to switch the active proxy driver, using `nb proxy nginx use` or `nb proxy caddy use` is usually clearer than setting the config key manually
@@ -1,7 +1,7 @@
1
1
  ---
2
- title: "nb config set"
3
- description: "nb config set command reference: set a CLI configuration item."
4
- keywords: "nb config set,NocoBase CLI,set configuration"
2
+ title: 'nb config set'
3
+ description: 'nb config set command reference: set a CLI configuration item.'
4
+ keywords: 'nb config set,NocoBase CLI,set configuration'
5
5
  ---
6
6
 
7
7
  # nb config set
@@ -16,10 +16,10 @@ nb config set <key> <value>
16
16
 
17
17
  ## Parameters
18
18
 
19
- | Parameter | Type | Description |
20
- | --- | --- | --- |
21
- | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
22
- | `<value>` | string | Configuration value, cannot be empty |
19
+ | Parameter | Type | Description |
20
+ | --------- | ------ | --------------------------------------------------------------------------- |
21
+ | `<key>` | string | Configuration item name. See [`nb config`](./index.md) for supported values |
22
+ | `<value>` | string | Configuration value, cannot be empty |
23
23
 
24
24
  ## Examples
25
25
 
@@ -29,6 +29,10 @@ nb config set update.policy auto
29
29
  nb config set license.pkg-url https://pkg.nocobase.com/
30
30
  nb config set docker.network nocobase
31
31
  nb config set docker.container-prefix nb
32
+ nb config set nb-image-registry dockerhub
33
+ nb config set nb-image-registry aliyun
34
+ nb config set nb-image-variant full
35
+ nb config set nb-image-variant full-no-nginx
32
36
  nb config set bin.docker /usr/local/bin/docker
33
37
  nb config set bin.caddy /opt/homebrew/bin/caddy
34
38
  nb config set bin.git /usr/bin/git
@@ -43,7 +47,9 @@ nb config set bin.yarn yarn
43
47
 
44
48
  ## Notes
45
49
 
46
- `update.policy` supports `prompt`, `auto`, and `off`, and the default value is `prompt`.
50
+ - `update.policy` supports `prompt`, `auto`, and `off`, and the default value is `prompt`
51
+ - `nb-image-registry` supports `dockerhub` and `aliyun`, and the default value is `dockerhub`
52
+ - `nb-image-variant` supports `standard`, `no-nginx`, `full`, and `full-no-nginx`, and the default value is `full`
47
53
 
48
54
  ## Related commands
49
55
 
@@ -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)
@@ -8,22 +8,22 @@
8
8
  */
9
9
 
10
10
  module.exports = {
11
- "@nocobase/plugin-acl": "2.1.19",
12
- "@nocobase/plugin-workflow": "2.1.19",
13
- "@nocobase/client": "2.1.19",
14
- "@nocobase/utils": "2.1.19",
15
- "@nocobase/client-v2": "2.1.19",
16
- "@nocobase/database": "2.1.19",
17
- "@nocobase/server": "2.1.19",
18
- "@nocobase/plugin-file-manager": "2.1.19",
19
- "@nocobase/actions": "2.1.19",
20
- "@nocobase/ai": "2.1.19",
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.19",
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.19",
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.19",
43
- "@nocobase/resourcer": "2.1.19",
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.19",
47
+ "@nocobase/plugin-data-source-manager": "2.1.20",
48
48
  "@langchain/langgraph-checkpoint": "1.1.2",
49
- "@nocobase/data-source-manager": "2.1.19",
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-03T14:33:00.908Z"}
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-03T14:33:02.498Z"}
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-03T14:33:02.593Z"}
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-03T14:33:05.945Z"}
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-03T14:33:05.849Z"}
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-03T14:32:54.820Z"}
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"}
@@ -1 +1 @@
1
- {"name":"openai","version":"6.39.1","description":"The official TypeScript library for the OpenAI API","author":"OpenAI <support@openai.com>","types":"./index.d.ts","main":"./index.js","type":"commonjs","repository":"github:openai/openai-node","license":"Apache-2.0","packageManager":"yarn@1.22.22","files":["**/*"],"private":false,"publishConfig":{"access":"public"},"scripts":{"test":"./scripts/test","build":"./scripts/build","format":"./scripts/format","tsn":"ts-node -r tsconfig-paths/register","lint":"./scripts/lint","fix":"./scripts/format"},"dependencies":{},"bin":{"openai":"bin/cli"},"overrides":{"minimatch":"^9.0.5"},"pnpm":{"overrides":{"minimatch":"^9.0.5"}},"resolutions":{"minimatch":"^9.0.5"},"exports":{".":{"require":{"types":"./index.d.ts","default":"./index.js"},"types":"./index.d.mts","default":"./index.mjs"},"./_vendor/*.mjs":{"default":"./_vendor/*.mjs"},"./_vendor/*.js":{"default":"./_vendor/*.js"},"./_vendor/*":{"import":"./_vendor/*.mjs","require":"./_vendor/*.js"},"./api-promise":{"import":"./api-promise.mjs","require":"./api-promise.js"},"./api-promise.js":{"default":"./api-promise.js"},"./api-promise.mjs":{"default":"./api-promise.mjs"},"./auth/*.mjs":{"default":"./auth/*.mjs"},"./auth/*.js":{"default":"./auth/*.js"},"./auth/*":{"import":"./auth/*.mjs","require":"./auth/*.js"},"./azure":{"import":"./azure.mjs","require":"./azure.js"},"./azure.js":{"default":"./azure.js"},"./azure.mjs":{"default":"./azure.mjs"},"./beta/*.mjs":{"default":"./beta/*.mjs"},"./beta/*.js":{"default":"./beta/*.js"},"./beta/*":{"import":"./beta/*.mjs","require":"./beta/*.js"},"./client":{"import":"./client.mjs","require":"./client.js"},"./client.js":{"default":"./client.js"},"./client.mjs":{"default":"./client.mjs"},"./core/*.mjs":{"default":"./core/*.mjs"},"./core/*.js":{"default":"./core/*.js"},"./core/*":{"import":"./core/*.mjs","require":"./core/*.js"},"./error":{"import":"./error.mjs","require":"./error.js"},"./error.js":{"default":"./error.js"},"./error.mjs":{"default":"./error.mjs"},"./helpers/*.mjs":{"default":"./helpers/*.mjs"},"./helpers/*.js":{"default":"./helpers/*.js"},"./helpers/*":{"import":"./helpers/*.mjs","require":"./helpers/*.js"},"./index":{"import":"./index.mjs","require":"./index.js"},"./index.js":{"default":"./index.js"},"./index.mjs":{"default":"./index.mjs"},"./lib/*.mjs":{"default":"./lib/*.mjs"},"./lib/*.js":{"default":"./lib/*.js"},"./lib/*":{"import":"./lib/*.mjs","require":"./lib/*.js"},"./pagination":{"import":"./pagination.mjs","require":"./pagination.js"},"./pagination.js":{"default":"./pagination.js"},"./pagination.mjs":{"default":"./pagination.mjs"},"./realtime/*.mjs":{"default":"./realtime/*.mjs"},"./realtime/*.js":{"default":"./realtime/*.js"},"./realtime/*":{"import":"./realtime/*.mjs","require":"./realtime/*.js"},"./resource":{"import":"./resource.mjs","require":"./resource.js"},"./resource.js":{"default":"./resource.js"},"./resource.mjs":{"default":"./resource.mjs"},"./resources/*.mjs":{"default":"./resources/*.mjs"},"./resources/*.js":{"default":"./resources/*.js"},"./resources/*":{"import":"./resources/*.mjs","require":"./resources/*.js"},"./resources":{"import":"./resources.mjs","require":"./resources.js"},"./resources.js":{"default":"./resources.js"},"./resources.mjs":{"default":"./resources.mjs"},"./streaming":{"import":"./streaming.mjs","require":"./streaming.js"},"./streaming.js":{"default":"./streaming.js"},"./streaming.mjs":{"default":"./streaming.mjs"},"./uploads":{"import":"./uploads.mjs","require":"./uploads.js"},"./uploads.js":{"default":"./uploads.js"},"./uploads.mjs":{"default":"./uploads.mjs"},"./version":{"import":"./version.mjs","require":"./version.js"},"./version.js":{"default":"./version.js"},"./version.mjs":{"default":"./version.mjs"}},"peerDependencies":{"ws":"^8.18.0","zod":"^3.25 || ^4.0"},"peerDependenciesMeta":{"ws":{"optional":true},"zod":{"optional":true}},"_lastModified":"2026-07-03T14:32:56.420Z"}
1
+ {"name":"openai","version":"6.39.1","description":"The official TypeScript library for the OpenAI API","author":"OpenAI <support@openai.com>","types":"./index.d.ts","main":"./index.js","type":"commonjs","repository":"github:openai/openai-node","license":"Apache-2.0","packageManager":"yarn@1.22.22","files":["**/*"],"private":false,"publishConfig":{"access":"public"},"scripts":{"test":"./scripts/test","build":"./scripts/build","format":"./scripts/format","tsn":"ts-node -r tsconfig-paths/register","lint":"./scripts/lint","fix":"./scripts/format"},"dependencies":{},"bin":{"openai":"bin/cli"},"overrides":{"minimatch":"^9.0.5"},"pnpm":{"overrides":{"minimatch":"^9.0.5"}},"resolutions":{"minimatch":"^9.0.5"},"exports":{".":{"require":{"types":"./index.d.ts","default":"./index.js"},"types":"./index.d.mts","default":"./index.mjs"},"./_vendor/*.mjs":{"default":"./_vendor/*.mjs"},"./_vendor/*.js":{"default":"./_vendor/*.js"},"./_vendor/*":{"import":"./_vendor/*.mjs","require":"./_vendor/*.js"},"./api-promise":{"import":"./api-promise.mjs","require":"./api-promise.js"},"./api-promise.js":{"default":"./api-promise.js"},"./api-promise.mjs":{"default":"./api-promise.mjs"},"./auth/*.mjs":{"default":"./auth/*.mjs"},"./auth/*.js":{"default":"./auth/*.js"},"./auth/*":{"import":"./auth/*.mjs","require":"./auth/*.js"},"./azure":{"import":"./azure.mjs","require":"./azure.js"},"./azure.js":{"default":"./azure.js"},"./azure.mjs":{"default":"./azure.mjs"},"./beta/*.mjs":{"default":"./beta/*.mjs"},"./beta/*.js":{"default":"./beta/*.js"},"./beta/*":{"import":"./beta/*.mjs","require":"./beta/*.js"},"./client":{"import":"./client.mjs","require":"./client.js"},"./client.js":{"default":"./client.js"},"./client.mjs":{"default":"./client.mjs"},"./core/*.mjs":{"default":"./core/*.mjs"},"./core/*.js":{"default":"./core/*.js"},"./core/*":{"import":"./core/*.mjs","require":"./core/*.js"},"./error":{"import":"./error.mjs","require":"./error.js"},"./error.js":{"default":"./error.js"},"./error.mjs":{"default":"./error.mjs"},"./helpers/*.mjs":{"default":"./helpers/*.mjs"},"./helpers/*.js":{"default":"./helpers/*.js"},"./helpers/*":{"import":"./helpers/*.mjs","require":"./helpers/*.js"},"./index":{"import":"./index.mjs","require":"./index.js"},"./index.js":{"default":"./index.js"},"./index.mjs":{"default":"./index.mjs"},"./lib/*.mjs":{"default":"./lib/*.mjs"},"./lib/*.js":{"default":"./lib/*.js"},"./lib/*":{"import":"./lib/*.mjs","require":"./lib/*.js"},"./pagination":{"import":"./pagination.mjs","require":"./pagination.js"},"./pagination.js":{"default":"./pagination.js"},"./pagination.mjs":{"default":"./pagination.mjs"},"./realtime/*.mjs":{"default":"./realtime/*.mjs"},"./realtime/*.js":{"default":"./realtime/*.js"},"./realtime/*":{"import":"./realtime/*.mjs","require":"./realtime/*.js"},"./resource":{"import":"./resource.mjs","require":"./resource.js"},"./resource.js":{"default":"./resource.js"},"./resource.mjs":{"default":"./resource.mjs"},"./resources/*.mjs":{"default":"./resources/*.mjs"},"./resources/*.js":{"default":"./resources/*.js"},"./resources/*":{"import":"./resources/*.mjs","require":"./resources/*.js"},"./resources":{"import":"./resources.mjs","require":"./resources.js"},"./resources.js":{"default":"./resources.js"},"./resources.mjs":{"default":"./resources.mjs"},"./streaming":{"import":"./streaming.mjs","require":"./streaming.js"},"./streaming.js":{"default":"./streaming.js"},"./streaming.mjs":{"default":"./streaming.mjs"},"./uploads":{"import":"./uploads.mjs","require":"./uploads.js"},"./uploads.js":{"default":"./uploads.js"},"./uploads.mjs":{"default":"./uploads.mjs"},"./version":{"import":"./version.mjs","require":"./version.js"},"./version.js":{"default":"./version.js"},"./version.mjs":{"default":"./version.mjs"}},"peerDependencies":{"ws":"^8.18.0","zod":"^3.25 || ^4.0"},"peerDependenciesMeta":{"ws":{"optional":true},"zod":{"optional":true}},"_lastModified":"2026-07-07T02:39:47.093Z"}
@@ -1 +1 @@
1
- {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-07-03T14:32:55.380Z"}
1
+ {"name":"zod","version":"4.3.5","type":"module","license":"MIT","author":"Colin McDonnell <zod@colinhacks.com>","description":"TypeScript-first schema declaration and validation library with static type inference","homepage":"https://zod.dev","llms":"https://zod.dev/llms.txt","llmsFull":"https://zod.dev/llms-full.txt","mcpServer":"https://mcp.inkeep.com/zod/mcp","funding":"https://github.com/sponsors/colinhacks","sideEffects":false,"files":["src","**/*.js","**/*.mjs","**/*.cjs","**/*.d.ts","**/*.d.mts","**/*.d.cts","**/package.json"],"keywords":["typescript","schema","validation","type","inference"],"main":"./index.cjs","types":"./index.d.cts","module":"./index.js","zshy":{"exports":{"./package.json":"./package.json",".":"./src/index.ts","./mini":"./src/mini/index.ts","./locales":"./src/locales/index.ts","./v3":"./src/v3/index.ts","./v4":"./src/v4/index.ts","./v4-mini":"./src/v4-mini/index.ts","./v4/mini":"./src/v4/mini/index.ts","./v4/core":"./src/v4/core/index.ts","./v4/locales":"./src/v4/locales/index.ts","./v4/locales/*":"./src/v4/locales/*"},"conditions":{"@zod/source":"src"}},"exports":{"./package.json":"./package.json",".":{"@zod/source":"./src/index.ts","types":"./index.d.cts","import":"./index.js","require":"./index.cjs"},"./mini":{"@zod/source":"./src/mini/index.ts","types":"./mini/index.d.cts","import":"./mini/index.js","require":"./mini/index.cjs"},"./locales":{"@zod/source":"./src/locales/index.ts","types":"./locales/index.d.cts","import":"./locales/index.js","require":"./locales/index.cjs"},"./v3":{"@zod/source":"./src/v3/index.ts","types":"./v3/index.d.cts","import":"./v3/index.js","require":"./v3/index.cjs"},"./v4":{"@zod/source":"./src/v4/index.ts","types":"./v4/index.d.cts","import":"./v4/index.js","require":"./v4/index.cjs"},"./v4-mini":{"@zod/source":"./src/v4-mini/index.ts","types":"./v4-mini/index.d.cts","import":"./v4-mini/index.js","require":"./v4-mini/index.cjs"},"./v4/mini":{"@zod/source":"./src/v4/mini/index.ts","types":"./v4/mini/index.d.cts","import":"./v4/mini/index.js","require":"./v4/mini/index.cjs"},"./v4/core":{"@zod/source":"./src/v4/core/index.ts","types":"./v4/core/index.d.cts","import":"./v4/core/index.js","require":"./v4/core/index.cjs"},"./v4/locales":{"@zod/source":"./src/v4/locales/index.ts","types":"./v4/locales/index.d.cts","import":"./v4/locales/index.js","require":"./v4/locales/index.cjs"},"./v4/locales/*":{"@zod/source":"./src/v4/locales/*","types":"./v4/locales/*","import":"./v4/locales/*","require":"./v4/locales/*"}},"repository":{"type":"git","url":"git+https://github.com/colinhacks/zod.git"},"bugs":{"url":"https://github.com/colinhacks/zod/issues"},"support":{"backing":{"npm-funding":true}},"scripts":{"clean":"git clean -xdf . -e node_modules","build":"zshy --project tsconfig.build.json","postbuild":"tsx ../../scripts/write-stub-package-jsons.ts && pnpm biome check --write .","test:watch":"pnpm vitest","test":"pnpm vitest run","prepublishOnly":"tsx ../../scripts/check-versions.ts"},"_lastModified":"2026-07-07T02:39:45.517Z"}
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "description": "Create AI employees with diverse skills to collaborate with humans, build systems, and handle business operations.",
7
7
  "description.ru-RU": "Поддержка интеграции с AI-сервисами: предоставляются AI-узлы для рабочих процессов, расширяя возможности бизнес-обработки.",
8
8
  "description.zh-CN": "创建各种技能的 AI 员工,与人类协同,搭建系统,处理业务。",
9
- "version": "2.1.19",
9
+ "version": "2.1.20",
10
10
  "main": "dist/server/index.js",
11
11
  "homepage": "https://docs.nocobase.com/handbook/action-ai",
12
12
  "homepage.ru-RU": "https://docs-ru.nocobase.com/handbook/action-ai",
@@ -66,5 +66,5 @@
66
66
  "keywords": [
67
67
  "AI"
68
68
  ],
69
- "gitHead": "c316683666cfb478cb355b971c8f067a4f925fcb"
69
+ "gitHead": "ca646ba28bb11da083e3436866552932ed780b6f"
70
70
  }