trellis 3.1.6 → 3.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/bin/trellis.mjs +68 -2
- package/dist/better-sqlite-backend-ahx5p0br.js +147 -0
- package/dist/cli/index.js +116 -45
- package/dist/client/index.js +5 -4
- package/dist/cms/client.d.ts +2 -1
- package/dist/cms/client.d.ts.map +1 -1
- package/dist/cms/index.js +4 -0
- package/dist/cms/types.d.ts +1 -1
- package/dist/cms/types.d.ts.map +1 -1
- package/dist/core/index.d.ts +4 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +14 -4
- package/dist/core/persist/factory.d.ts +28 -0
- package/dist/core/persist/factory.d.ts.map +1 -0
- package/dist/core/persist/factory.js +8 -0
- package/dist/core/persist/sqlite-backend.d.ts.map +1 -1
- package/dist/core/persist/sqljs-backend.d.ts +60 -0
- package/dist/core/persist/sqljs-backend.d.ts.map +1 -0
- package/dist/core/persist/sqljs-backend.js +8 -0
- package/dist/db/index.js +11 -10
- package/dist/embeddings/index.js +1 -1
- package/dist/embeddings/store.d.ts.map +1 -1
- package/dist/{index-0zk3fx2s.js → index-4wxa8xz4.js} +4 -237
- package/dist/{index-6n5dcebj.js → index-53f3b8p8.js} +84 -30
- package/dist/{index-y3d71wzd.js → index-7pjz3tsy.js} +36 -6
- package/dist/{index-0q7wbasy.js → index-a2a394zz.js} +7 -3
- package/dist/index-h32txmxe.js +42 -0
- package/dist/index-h7zxhhhh.js +252 -0
- package/dist/index-h9e2efx4.js +251 -0
- package/dist/{index-2917tjd8.js → index-hr9qvv77.js} +15 -3
- package/dist/{index-hmdbnd4n.js → index-hy73j9z8.js} +1 -1
- package/dist/{index-q31hfjja.js → index-jgda3xyv.js} +1 -1
- package/dist/{index-7e27kvvj.js → index-wncptktd.js} +1 -1
- package/dist/index.js +8 -6
- package/dist/react/index.js +5 -4
- package/dist/{sdk-snn5gad3.js → sdk-bepky0xs.js} +5 -4
- package/dist/server/index.d.ts +2 -2
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +27 -24
- package/dist/server/node-adapter.d.ts +38 -0
- package/dist/server/node-adapter.d.ts.map +1 -0
- package/dist/server/node-adapter.js +108 -0
- package/dist/server/server-shared.d.ts +21 -0
- package/dist/server/server-shared.d.ts.map +1 -0
- package/dist/server/server.d.ts +19 -2
- package/dist/server/server.d.ts.map +1 -1
- package/dist/server/tenancy.d.ts +28 -2
- package/dist/server/tenancy.d.ts.map +1 -1
- package/dist/{server-mrctdwzr.js → server-szdjx0nt.js} +5 -3
- package/dist/sqlite-backend-0vsmc6qj.js +8 -0
- package/dist/{tenancy-7d1g4ayp.js → tenancy-pjm32b4v.js} +4 -3
- package/dist/vcs/blob-store.d.ts +2 -1
- package/dist/vcs/blob-store.d.ts.map +1 -1
- package/dist/vcs/index.js +2 -2
- package/package.json +16 -3
package/dist/server/server.d.ts
CHANGED
|
@@ -28,6 +28,8 @@
|
|
|
28
28
|
import type { TrellisDbConfig } from '../client/config.js';
|
|
29
29
|
import type { TenantPool } from './tenancy.js';
|
|
30
30
|
import type { PermissionRegistry } from './permissions.js';
|
|
31
|
+
import type { TrellisHttpServer } from './server-shared.js';
|
|
32
|
+
export type { TrellisHttpServer } from './server-shared.js';
|
|
31
33
|
export interface ServerConfig {
|
|
32
34
|
port?: number;
|
|
33
35
|
config: TrellisDbConfig;
|
|
@@ -36,8 +38,23 @@ export interface ServerConfig {
|
|
|
36
38
|
oauthProviders?: Record<string, import('./auth.js').OAuthProvider>;
|
|
37
39
|
}
|
|
38
40
|
/**
|
|
39
|
-
* Start the Trellis DB HTTP + WebSocket server.
|
|
40
|
-
*
|
|
41
|
+
* Start the Trellis DB HTTP + WebSocket server under Bun.
|
|
42
|
+
*
|
|
43
|
+
* For runtime-portable code that may also run under Node or WebContainer,
|
|
44
|
+
* use `startServerCrossRuntime` instead — it dispatches to either Bun.serve
|
|
45
|
+
* or a Node http+ws adapter based on the host runtime.
|
|
41
46
|
*/
|
|
42
47
|
export declare function startServer(opts: ServerConfig): ReturnType<typeof Bun.serve>;
|
|
48
|
+
/**
|
|
49
|
+
* Runtime-dispatched server boot. Use this when your code might run outside
|
|
50
|
+
* Bun (Node, WebContainer, browser).
|
|
51
|
+
*
|
|
52
|
+
* - Under Bun, this calls `Bun.serve` and returns the Bun server wrapped
|
|
53
|
+
* in a `TrellisHttpServer` interface.
|
|
54
|
+
* - Under Node, uses `node:http` + the `ws` library (optional dependency).
|
|
55
|
+
*
|
|
56
|
+
* Returns a `Promise<TrellisHttpServer>` — the minimal cross-runtime surface
|
|
57
|
+
* with `.port` / `.stop()`.
|
|
58
|
+
*/
|
|
59
|
+
export declare function startServerCrossRuntime(opts: ServerConfig): Promise<TrellisHttpServer>;
|
|
43
60
|
//# sourceMappingURL=server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAWH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAM5D,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,eAAe,CAAC;IACxB,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,WAAW,EAAE,aAAa,CAAC,CAAC;CACpE;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAE5E;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,iBAAiB,CAAC,CAU5B"}
|
package/dist/server/tenancy.d.ts
CHANGED
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
* @module trellis/server
|
|
10
10
|
*/
|
|
11
11
|
import { TrellisKernel } from '../core/kernel/trellis-kernel.js';
|
|
12
|
+
import type { CreateKernelBackendOptions } from '../core/persist/factory.js';
|
|
12
13
|
export declare const DEFAULT_TENANT = "default";
|
|
13
14
|
/**
|
|
14
15
|
* A pool of `TrellisKernel` instances keyed by tenant ID.
|
|
@@ -17,16 +18,39 @@ export declare const DEFAULT_TENANT = "default";
|
|
|
17
18
|
* - Each tenant's data lives in `<dbPath>/tenants/<tenantId>.sqlite`.
|
|
18
19
|
* - The default tenant lives at `<dbPath>/default.sqlite`.
|
|
19
20
|
*/
|
|
21
|
+
export interface TenantPoolOptions {
|
|
22
|
+
agentId?: string;
|
|
23
|
+
/**
|
|
24
|
+
* Backend selection forwarded to `createKernelBackend`. Only consulted by
|
|
25
|
+
* `preload()` — `get()` always uses the synchronous bun:sqlite backend
|
|
26
|
+
* for back-compat.
|
|
27
|
+
*/
|
|
28
|
+
backend?: CreateKernelBackendOptions;
|
|
29
|
+
}
|
|
20
30
|
export declare class TenantPool {
|
|
21
31
|
private pool;
|
|
22
32
|
private dbPath;
|
|
23
33
|
private agentId;
|
|
24
|
-
|
|
34
|
+
private backendOpts;
|
|
35
|
+
constructor(dbPath: string, agentIdOrOpts?: string | TenantPoolOptions);
|
|
25
36
|
/**
|
|
26
37
|
* Get (or create) the kernel for a tenant.
|
|
27
38
|
* Pass `null` or `undefined` to get the default tenant.
|
|
39
|
+
*
|
|
40
|
+
* Uses the synchronous bun:sqlite backend. To use an async backend
|
|
41
|
+
* (better-sqlite3, sql.js) call `preload(tenantId)` first; subsequent
|
|
42
|
+
* `get()` calls will return the preloaded kernel from the pool.
|
|
28
43
|
*/
|
|
29
44
|
get(tenantId?: string | null): TrellisKernel;
|
|
45
|
+
/**
|
|
46
|
+
* Pre-create a tenant's kernel using the runtime-selected backend.
|
|
47
|
+
* Required when running with an async-only backend (sql.js / WebContainer
|
|
48
|
+
* / browser). Idempotent — safe to call multiple times.
|
|
49
|
+
*
|
|
50
|
+
* After `preload()`, subsequent `get(tenantId)` returns the same kernel
|
|
51
|
+
* synchronously from the pool.
|
|
52
|
+
*/
|
|
53
|
+
preload(tenantId?: string | null): Promise<TrellisKernel>;
|
|
30
54
|
/**
|
|
31
55
|
* Check whether a tenant has been initialized (kernel created).
|
|
32
56
|
*/
|
|
@@ -47,7 +71,9 @@ export declare class TenantPool {
|
|
|
47
71
|
* Return the SQLite file path for a given tenant.
|
|
48
72
|
*/
|
|
49
73
|
dbFilePath(tenantId?: string | null): string;
|
|
50
|
-
private
|
|
74
|
+
private _createKernelSync;
|
|
75
|
+
private _createKernelAsync;
|
|
76
|
+
private _wrapKernel;
|
|
51
77
|
private _ensureDirs;
|
|
52
78
|
}
|
|
53
79
|
//# sourceMappingURL=tenancy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../../src/server/tenancy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"tenancy.d.ts","sourceRoot":"","sources":["../../src/server/tenancy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAGjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAM7E,eAAO,MAAM,cAAc,YAAY,CAAC;AAOxC;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,0BAA0B,CAAC;CACtC;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,IAAI,CAAyC;IACrD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAyC;gBAG1D,MAAM,EAAE,MAAM,EACd,aAAa,GAAE,MAAM,GAAG,iBAAgC;IAiB1D;;;;;;;OAOG;IACH,GAAG,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa;IAQ5C;;;;;;;OAOG;IACG,OAAO,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IAS/D;;OAEG;IACH,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI9B;;OAEG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ7B;;OAEG;IACH,QAAQ,IAAI,IAAI;IAOhB;;OAEG;IACH,UAAU,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAY5C,OAAO,CAAC,iBAAiB;YAMX,kBAAkB;IAShC,OAAO,CAAC,WAAW;IAUnB,OAAO,CAAC,WAAW;CASpB"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
|
-
startServer
|
|
4
|
-
|
|
3
|
+
startServer,
|
|
4
|
+
startServerCrossRuntime
|
|
5
|
+
} from "./index-53f3b8p8.js";
|
|
5
6
|
import"./index-n9f2qyh5.js";
|
|
6
|
-
import"./index-yhwjgfvj.js";
|
|
7
7
|
import"./index-yp88he8n.js";
|
|
8
|
+
import"./index-yhwjgfvj.js";
|
|
8
9
|
import"./index-a76rekgs.js";
|
|
9
10
|
export {
|
|
11
|
+
startServerCrossRuntime,
|
|
10
12
|
startServer
|
|
11
13
|
};
|
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
import {
|
|
3
3
|
DEFAULT_TENANT,
|
|
4
4
|
TenantPool
|
|
5
|
-
} from "./index-
|
|
6
|
-
import"./index-
|
|
7
|
-
import"./index-yhwjgfvj.js";
|
|
5
|
+
} from "./index-7pjz3tsy.js";
|
|
6
|
+
import"./index-4wxa8xz4.js";
|
|
8
7
|
import"./index-yp88he8n.js";
|
|
8
|
+
import"./index-yhwjgfvj.js";
|
|
9
|
+
import"./index-h7zxhhhh.js";
|
|
9
10
|
import"./index-a76rekgs.js";
|
|
10
11
|
export {
|
|
11
12
|
TenantPool,
|
package/dist/vcs/blob-store.d.ts
CHANGED
|
@@ -33,7 +33,8 @@ export declare class BlobStore {
|
|
|
33
33
|
*/
|
|
34
34
|
hash(content: Buffer | Uint8Array): Promise<string>;
|
|
35
35
|
/**
|
|
36
|
-
* Compute SHA-256 hash of content (sync
|
|
36
|
+
* Compute SHA-256 hash of content (sync).
|
|
37
|
+
* Uses Bun.CryptoHasher when running under Bun, else node:crypto.
|
|
37
38
|
*/
|
|
38
39
|
hashSync(content: Buffer | Uint8Array): string;
|
|
39
40
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blob-store.d.ts","sourceRoot":"","sources":["../../src/vcs/blob-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,MAAM;IAO9B;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAS7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzD
|
|
1
|
+
{"version":3,"file":"blob-store.d.ts","sourceRoot":"","sources":["../../src/vcs/blob-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAKH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAS;gBAEZ,UAAU,EAAE,MAAM;IAO9B;;;OAGG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IASxD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAS7C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQhC;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAI1B;;OAEG;IACG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAQzD;;;OAGG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM;IAW9C;;OAEG;IACH,KAAK,IAAI,MAAM;IASf;;OAEG;IACH,SAAS,IAAI,MAAM;IAgBnB,OAAO,CAAC,aAAa;CAKtB"}
|
package/dist/vcs/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
import {
|
|
3
3
|
VcsMiddleware
|
|
4
|
-
} from "../index-
|
|
4
|
+
} from "../index-hy73j9z8.js";
|
|
5
5
|
import {
|
|
6
6
|
BlobStore,
|
|
7
7
|
addCriterion,
|
|
@@ -40,7 +40,7 @@ import {
|
|
|
40
40
|
triageIssue,
|
|
41
41
|
unblockIssue,
|
|
42
42
|
updateIssue
|
|
43
|
-
} from "../index-
|
|
43
|
+
} from "../index-a2a394zz.js";
|
|
44
44
|
import {
|
|
45
45
|
DEFAULT_CONFIG,
|
|
46
46
|
branchEntityId,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "trellis",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.8",
|
|
4
4
|
"description": "Agentic State Engine — event-sourced causal graph with branching, decision traces, and realtime sync for AI-native applications",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -91,6 +91,14 @@
|
|
|
91
91
|
"./persist/better-sqlite": {
|
|
92
92
|
"types": "./dist/persist/better-sqlite-backend.d.ts",
|
|
93
93
|
"import": "./dist/persist/better-sqlite-backend.js"
|
|
94
|
+
},
|
|
95
|
+
"./persist/sqljs": {
|
|
96
|
+
"types": "./dist/persist/sqljs-backend.d.ts",
|
|
97
|
+
"import": "./dist/persist/sqljs-backend.js"
|
|
98
|
+
},
|
|
99
|
+
"./persist/factory": {
|
|
100
|
+
"types": "./dist/persist/factory.d.ts",
|
|
101
|
+
"import": "./dist/persist/factory.js"
|
|
94
102
|
}
|
|
95
103
|
},
|
|
96
104
|
"files": [
|
|
@@ -107,7 +115,7 @@
|
|
|
107
115
|
"cli": "bun run src/cli/index.ts",
|
|
108
116
|
"mcp": "bun run src/mcp/index.ts",
|
|
109
117
|
"mcp:docs": "bun run src/mcp/docs.ts",
|
|
110
|
-
"build": "bun build src/index.ts src/core/index.ts src/vcs/index.ts src/embeddings/index.ts src/links/index.ts src/decisions/index.ts src/server/index.ts src/client/index.ts src/react/index.ts src/db/index.ts src/cli/index.ts src/cms/index.ts --outdir dist --target bun --splitting --format esm --root src --external @xenova/transformers --external @huggingface/transformers --external react && mkdir -p dist/ui && cp src/ui/client.html dist/ui/client.html && tsc -p tsconfig.build.json --emitDeclarationOnly --noEmit false --noEmitOnError false && bun run build:inspector",
|
|
118
|
+
"build": "bun build src/index.ts src/core/index.ts src/vcs/index.ts src/embeddings/index.ts src/links/index.ts src/decisions/index.ts src/server/index.ts src/client/index.ts src/react/index.ts src/db/index.ts src/cli/index.ts src/cms/index.ts src/core/persist/sqljs-backend.ts src/core/persist/factory.ts src/server/node-adapter.ts --outdir dist --target bun --splitting --format esm --root src --external @xenova/transformers --external @huggingface/transformers --external react --external sql.js --external ws && mkdir -p dist/ui && cp src/ui/client.html dist/ui/client.html && tsc -p tsconfig.build.json --emitDeclarationOnly --noEmit false --noEmitOnError false && bun run build:inspector",
|
|
111
119
|
"build:inspector": "vite build --config vite.inspector.config.ts",
|
|
112
120
|
"test": "bun test test/core test/cms test/vcs test/git test/p2 test/p3 test/p4 test/p5 test/p6 test/p7 test/engine.test.ts",
|
|
113
121
|
"test:all": "bun test",
|
|
@@ -119,11 +127,14 @@
|
|
|
119
127
|
"chalk": "^5.4.1",
|
|
120
128
|
"commander": "^13.1.0",
|
|
121
129
|
"opencode-ai": "^1.3.5",
|
|
130
|
+
"turtlecode": "^0.3.22",
|
|
122
131
|
"zod": "3"
|
|
123
132
|
},
|
|
124
133
|
"optionalDependencies": {
|
|
125
134
|
"@huggingface/transformers": "^3.0.0",
|
|
126
|
-
"@xenova/transformers": "^2.17.2"
|
|
135
|
+
"@xenova/transformers": "^2.17.2",
|
|
136
|
+
"sql.js": "^1.14.1",
|
|
137
|
+
"ws": "^8.20.1"
|
|
127
138
|
},
|
|
128
139
|
"peerDependencies": {
|
|
129
140
|
"better-sqlite3": "^11.0.0",
|
|
@@ -140,6 +151,8 @@
|
|
|
140
151
|
"devDependencies": {
|
|
141
152
|
"@types/bun": "latest",
|
|
142
153
|
"@types/react": "^19.1.2",
|
|
154
|
+
"@types/sql.js": "^1.4.11",
|
|
155
|
+
"@types/ws": "^8.18.1",
|
|
143
156
|
"@vitejs/plugin-vue": "^5.2.3",
|
|
144
157
|
"react": "^19.1.0",
|
|
145
158
|
"typescript": "^5",
|