cabloy 5.1.233 → 5.1.235
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/.cabloy-version +1 -1
- package/CHANGELOG.md +16 -0
- package/package.json +1 -1
- package/repo-docs/frontend/scripts.md +12 -0
- package/vona/pnpm-lock.yaml +385 -385
- package/vona/src/suite-vendor/a-cabloy/modules/a-socket/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/modules/a-socket/src/service/socket.ts +5 -0
- package/vona/src/suite-vendor/a-cabloy/modules/a-socket/test/socket.test.ts +122 -0
- package/vona/src/suite-vendor/a-cabloy/modules/a-ssr/package.json +1 -1
- package/vona/src/suite-vendor/a-cabloy/package.json +1 -1
- package/zova/package.original.json +1 -0
- package/zova/pnpm-lock.yaml +207 -34
- package/zova/pnpm-workspace.yaml +1 -0
- package/zova/quasar.config.ts +27 -3
|
@@ -75,8 +75,13 @@ export class ServiceSocket extends BeanBase {
|
|
|
75
75
|
this.bean.socket.addClient(ws);
|
|
76
76
|
// compose
|
|
77
77
|
await this._getComposeSocketConnections(ws.namespace)({ method: 'enter', ws });
|
|
78
|
+
if (ws.readyState !== WebSocket.OPEN) {
|
|
79
|
+
this.bean.socket.removeClient(ws);
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
78
82
|
} catch (err: any) {
|
|
79
83
|
this.app.handleError(err);
|
|
84
|
+
this.bean.socket.removeClient(ws);
|
|
80
85
|
// terminate
|
|
81
86
|
ws.terminate();
|
|
82
87
|
return;
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import type { IncomingMessage } from 'node:http';
|
|
2
|
+
|
|
3
|
+
import assert from 'node:assert/strict';
|
|
4
|
+
import { once } from 'node:events';
|
|
5
|
+
import { after, before, describe, it } from 'node:test';
|
|
6
|
+
import { setTimeout } from 'node:timers/promises';
|
|
7
|
+
import { acquireTestLock, app } from 'vona-mock';
|
|
8
|
+
import { WebSocket } from 'ws';
|
|
9
|
+
|
|
10
|
+
import { socketEventRecord } from '../src/types/socketEvent.ts';
|
|
11
|
+
|
|
12
|
+
describe('socket.test.ts', { concurrency: false, timeout: 15000 }, () => {
|
|
13
|
+
let release: () => void;
|
|
14
|
+
|
|
15
|
+
before(async () => {
|
|
16
|
+
release = await acquireTestLock('a-security');
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
after(() => {
|
|
20
|
+
release();
|
|
21
|
+
});
|
|
22
|
+
|
|
23
|
+
it('rejects a disallowed origin before event initialization without retaining the client', async () => {
|
|
24
|
+
await withConnection(
|
|
25
|
+
'https://socket-rejected.invalid',
|
|
26
|
+
undefined,
|
|
27
|
+
async (client, server, messages) => {
|
|
28
|
+
await once(client, 'close');
|
|
29
|
+
assert.equal(typeof server.sendEvent, 'undefined');
|
|
30
|
+
assert.deepEqual(messages, []);
|
|
31
|
+
await assertClientRemoved(server);
|
|
32
|
+
},
|
|
33
|
+
);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('sends one ready event for an accepted connection and removes it on close', async () => {
|
|
37
|
+
await withConnection(undefined, undefined, async (client, server, messages) => {
|
|
38
|
+
if (!messages.length) await once(client, 'message');
|
|
39
|
+
await app.bean.executor.mockCtx(async () => {
|
|
40
|
+
const scope = app.scope('a-socket');
|
|
41
|
+
assert.deepEqual(messages, [
|
|
42
|
+
`${scope.config.eventPrefix}${JSON.stringify([socketEventRecord.sysReady, null])}`,
|
|
43
|
+
]);
|
|
44
|
+
assert.equal(app.bean.socket.getClient(server.id), server);
|
|
45
|
+
assert.ok(app.bean.socket.clientsNamespace[server.namespace]?.includes(server.id));
|
|
46
|
+
});
|
|
47
|
+
const closed = once(client, 'close');
|
|
48
|
+
client.close();
|
|
49
|
+
await closed;
|
|
50
|
+
await assertClientRemoved(server);
|
|
51
|
+
assert.equal(messages.length, 1);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
it('removes a client when passport initialization throws after event initialization', async () => {
|
|
56
|
+
await withConnection(
|
|
57
|
+
undefined,
|
|
58
|
+
'invalid-socket-test-token',
|
|
59
|
+
async (client, server, messages) => {
|
|
60
|
+
await once(client, 'close');
|
|
61
|
+
assert.equal(typeof server.sendEvent, 'function');
|
|
62
|
+
assert.deepEqual(messages, []);
|
|
63
|
+
await assertClientRemoved(server);
|
|
64
|
+
},
|
|
65
|
+
);
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
async function withConnection(
|
|
70
|
+
origin: string | undefined,
|
|
71
|
+
passportCode: string | undefined,
|
|
72
|
+
fn: (client: WebSocket, server: WebSocket, messages: string[]) => Promise<void>,
|
|
73
|
+
) {
|
|
74
|
+
const address = app.server.address();
|
|
75
|
+
assert.ok(address && typeof address !== 'string');
|
|
76
|
+
const scope = app.scope('a-socket');
|
|
77
|
+
const url = new URL(`http://127.0.0.1:${address.port}${scope.config.globalPrefix}/`);
|
|
78
|
+
url.searchParams.set(scope.config.queryKey.instanceName, '');
|
|
79
|
+
url.searchParams.set('socketTest', crypto.randomUUID());
|
|
80
|
+
if (passportCode) url.searchParams.set(scope.config.queryKey.passportCode, passportCode);
|
|
81
|
+
const requestUrl = `${url.pathname}${url.search}`;
|
|
82
|
+
url.protocol = 'ws:';
|
|
83
|
+
|
|
84
|
+
const connected = Promise.withResolvers<WebSocket>();
|
|
85
|
+
let server: WebSocket | undefined;
|
|
86
|
+
const onConnection = (ws: WebSocket, req: IncomingMessage) => {
|
|
87
|
+
if (req.url !== requestUrl) return;
|
|
88
|
+
server = ws;
|
|
89
|
+
connected.resolve(ws);
|
|
90
|
+
};
|
|
91
|
+
app.wss.on('connection', onConnection);
|
|
92
|
+
const client = new WebSocket(url, { origin, handshakeTimeout: 5000 });
|
|
93
|
+
client.on('error', connected.reject);
|
|
94
|
+
const messages: string[] = [];
|
|
95
|
+
client.on('message', data => messages.push(data.toString()));
|
|
96
|
+
try {
|
|
97
|
+
await fn(client, await connected.promise, messages);
|
|
98
|
+
} finally {
|
|
99
|
+
app.wss.off('connection', onConnection);
|
|
100
|
+
if (client.readyState !== WebSocket.CLOSED) {
|
|
101
|
+
const closed = once(client, 'close');
|
|
102
|
+
client.terminate();
|
|
103
|
+
await closed;
|
|
104
|
+
}
|
|
105
|
+
if (server) {
|
|
106
|
+
await app.bean.executor.mockCtx(async () => {
|
|
107
|
+
app.bean.socket.removeClient(server!);
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
async function assertClientRemoved(server: WebSocket) {
|
|
114
|
+
await app.bean.executor.mockCtx(async () => {
|
|
115
|
+
// The peer close event can arrive before asynchronous server-side exit hooks finish.
|
|
116
|
+
for (let attempt = 0; attempt < 100 && app.bean.socket.getClient(server.id); attempt++) {
|
|
117
|
+
await setTimeout(10);
|
|
118
|
+
}
|
|
119
|
+
assert.equal(app.bean.socket.getClient(server.id), undefined);
|
|
120
|
+
assert.equal(app.bean.socket.clientsNamespace[server.namespace]?.includes(server.id), false);
|
|
121
|
+
});
|
|
122
|
+
}
|
package/zova/pnpm-lock.yaml
CHANGED
|
@@ -546,6 +546,9 @@ importers:
|
|
|
546
546
|
'@vitejs/plugin-vue':
|
|
547
547
|
specifier: ^6.0.7
|
|
548
548
|
version: 6.0.8(vite@8.3.4(@types/node@22.20.2)(esbuild@0.25.12)(jiti@2.7.0)(sass-embedded@1.104.1)(sass@1.104.1)(terser@5.51.2)(yaml@2.9.1))(vue@3.5.42(typescript@5.9.3))
|
|
549
|
+
code-inspector-plugin:
|
|
550
|
+
specifier: 2.0.9
|
|
551
|
+
version: 2.0.9(supports-color@10.2.2)
|
|
549
552
|
concurrently:
|
|
550
553
|
specifier: ^10.0.4
|
|
551
554
|
version: 10.0.5
|
|
@@ -610,7 +613,7 @@ importers:
|
|
|
610
613
|
specifier: ^7.6.2
|
|
611
614
|
version: 7.8.5
|
|
612
615
|
zova-cli-set-front:
|
|
613
|
-
specifier: ^1.2.
|
|
616
|
+
specifier: ^1.2.120
|
|
614
617
|
version: link:../cli-set-front
|
|
615
618
|
devDependencies:
|
|
616
619
|
clean-package:
|
|
@@ -719,7 +722,7 @@ importers:
|
|
|
719
722
|
specifier: ^1.1.17
|
|
720
723
|
version: link:../../packages-utils/zova-openapi
|
|
721
724
|
zova-vite:
|
|
722
|
-
specifier: ^1.1.
|
|
725
|
+
specifier: ^1.1.51
|
|
723
726
|
version: link:../../packages-utils/zova-vite
|
|
724
727
|
devDependencies:
|
|
725
728
|
clean-package:
|
|
@@ -1031,7 +1034,7 @@ importers:
|
|
|
1031
1034
|
specifier: ^5.1.94
|
|
1032
1035
|
version: link:../zova-core
|
|
1033
1036
|
zova-suite-a-zova:
|
|
1034
|
-
specifier: ^5.1.
|
|
1037
|
+
specifier: ^5.1.175
|
|
1035
1038
|
version: link:../../src/suite-vendor/a-zova
|
|
1036
1039
|
devDependencies:
|
|
1037
1040
|
clean-package:
|
|
@@ -1135,13 +1138,13 @@ importers:
|
|
|
1135
1138
|
src/suite-vendor/a-cabloy:
|
|
1136
1139
|
dependencies:
|
|
1137
1140
|
zova-module-a-layoutprofile:
|
|
1138
|
-
specifier: ^5.0.
|
|
1141
|
+
specifier: ^5.0.4
|
|
1139
1142
|
version: link:modules/a-layoutprofile
|
|
1140
1143
|
zova-module-a-rbac:
|
|
1141
|
-
specifier: ^5.0.
|
|
1144
|
+
specifier: ^5.0.2
|
|
1142
1145
|
version: link:modules/a-rbac
|
|
1143
1146
|
zova-module-rest-resource:
|
|
1144
|
-
specifier: ^5.1.
|
|
1147
|
+
specifier: ^5.1.57
|
|
1145
1148
|
version: link:modules/rest-resource
|
|
1146
1149
|
|
|
1147
1150
|
src/suite-vendor/a-cabloy/modules/a-layoutprofile:
|
|
@@ -1174,16 +1177,16 @@ importers:
|
|
|
1174
1177
|
src/suite-vendor/a-pay:
|
|
1175
1178
|
dependencies:
|
|
1176
1179
|
zova-module-a-pay:
|
|
1177
|
-
specifier: ^5.0.
|
|
1180
|
+
specifier: ^5.0.10
|
|
1178
1181
|
version: link:modules/a-pay
|
|
1179
1182
|
zova-module-pay-mock:
|
|
1180
|
-
specifier: ^5.0.
|
|
1183
|
+
specifier: ^5.0.6
|
|
1181
1184
|
version: link:modules/pay-mock
|
|
1182
1185
|
zova-module-pay-paypal:
|
|
1183
|
-
specifier: ^5.0.
|
|
1186
|
+
specifier: ^5.0.3
|
|
1184
1187
|
version: link:modules/pay-paypal
|
|
1185
1188
|
zova-module-pay-stripe:
|
|
1186
|
-
specifier: ^5.0.
|
|
1189
|
+
specifier: ^5.0.3
|
|
1187
1190
|
version: link:modules/pay-stripe
|
|
1188
1191
|
|
|
1189
1192
|
src/suite-vendor/a-pay/modules/a-pay:
|
|
@@ -1225,76 +1228,76 @@ importers:
|
|
|
1225
1228
|
src/suite-vendor/a-zova:
|
|
1226
1229
|
dependencies:
|
|
1227
1230
|
zova-module-a-api:
|
|
1228
|
-
specifier: ^5.1.
|
|
1231
|
+
specifier: ^5.1.23
|
|
1229
1232
|
version: link:modules/a-api
|
|
1230
1233
|
zova-module-a-app:
|
|
1231
|
-
specifier: ^5.1.
|
|
1234
|
+
specifier: ^5.1.27
|
|
1232
1235
|
version: link:modules/a-app
|
|
1233
1236
|
zova-module-a-bean:
|
|
1234
|
-
specifier: ^5.1.
|
|
1237
|
+
specifier: ^5.1.37
|
|
1235
1238
|
version: link:modules/a-bean
|
|
1236
1239
|
zova-module-a-behavior:
|
|
1237
|
-
specifier: ^5.1.
|
|
1240
|
+
specifier: ^5.1.28
|
|
1238
1241
|
version: link:modules/a-behavior
|
|
1239
1242
|
zova-module-a-behaviors:
|
|
1240
|
-
specifier: ^5.1.
|
|
1243
|
+
specifier: ^5.1.23
|
|
1241
1244
|
version: link:modules/a-behaviors
|
|
1242
1245
|
zova-module-a-command:
|
|
1243
|
-
specifier: ^5.1.
|
|
1246
|
+
specifier: ^5.1.36
|
|
1244
1247
|
version: link:modules/a-command
|
|
1245
1248
|
zova-module-a-fetch:
|
|
1246
|
-
specifier: ^5.1.
|
|
1249
|
+
specifier: ^5.1.26
|
|
1247
1250
|
version: link:modules/a-fetch
|
|
1248
1251
|
zova-module-a-form:
|
|
1249
|
-
specifier: ^5.1.
|
|
1252
|
+
specifier: ^5.1.55
|
|
1250
1253
|
version: link:modules/a-form
|
|
1251
1254
|
zova-module-a-icon:
|
|
1252
|
-
specifier: ^5.1.
|
|
1255
|
+
specifier: ^5.1.28
|
|
1253
1256
|
version: link:modules/a-icon
|
|
1254
1257
|
zova-module-a-interceptor:
|
|
1255
|
-
specifier: ^5.1.
|
|
1258
|
+
specifier: ^5.1.32
|
|
1256
1259
|
version: link:modules/a-interceptor
|
|
1257
1260
|
zova-module-a-logger:
|
|
1258
|
-
specifier: ^5.1.
|
|
1261
|
+
specifier: ^5.1.29
|
|
1259
1262
|
version: link:modules/a-logger
|
|
1260
1263
|
zova-module-a-meta:
|
|
1261
|
-
specifier: ^5.1.
|
|
1264
|
+
specifier: ^5.1.23
|
|
1262
1265
|
version: link:modules/a-meta
|
|
1263
1266
|
zova-module-a-model:
|
|
1264
|
-
specifier: ^5.1.
|
|
1267
|
+
specifier: ^5.1.39
|
|
1265
1268
|
version: link:modules/a-model
|
|
1266
1269
|
zova-module-a-openapi:
|
|
1267
|
-
specifier: ^5.1.
|
|
1270
|
+
specifier: ^5.1.59
|
|
1268
1271
|
version: link:modules/a-openapi
|
|
1269
1272
|
zova-module-a-router:
|
|
1270
|
-
specifier: ^5.1.
|
|
1273
|
+
specifier: ^5.1.43
|
|
1271
1274
|
version: link:modules/a-router
|
|
1272
1275
|
zova-module-a-routerstack:
|
|
1273
|
-
specifier: ^5.1.
|
|
1276
|
+
specifier: ^5.1.30
|
|
1274
1277
|
version: link:modules/a-routerstack
|
|
1275
1278
|
zova-module-a-routertabs:
|
|
1276
|
-
specifier: ^5.1.
|
|
1279
|
+
specifier: ^5.1.36
|
|
1277
1280
|
version: link:modules/a-routertabs
|
|
1278
1281
|
zova-module-a-ssr:
|
|
1279
|
-
specifier: ^5.1.
|
|
1282
|
+
specifier: ^5.1.41
|
|
1280
1283
|
version: link:modules/a-ssr
|
|
1281
1284
|
zova-module-a-ssrhmr:
|
|
1282
|
-
specifier: ^5.1.
|
|
1285
|
+
specifier: ^5.1.24
|
|
1283
1286
|
version: link:modules/a-ssrhmr
|
|
1284
1287
|
zova-module-a-ssrserver:
|
|
1285
|
-
specifier: ^5.1.
|
|
1288
|
+
specifier: ^5.1.27
|
|
1286
1289
|
version: link:modules/a-ssrserver
|
|
1287
1290
|
zova-module-a-style:
|
|
1288
|
-
specifier: ^5.1.
|
|
1291
|
+
specifier: ^5.1.36
|
|
1289
1292
|
version: link:modules/a-style
|
|
1290
1293
|
zova-module-a-table:
|
|
1291
|
-
specifier: ^5.1.
|
|
1294
|
+
specifier: ^5.1.45
|
|
1292
1295
|
version: link:modules/a-table
|
|
1293
1296
|
zova-module-a-zod:
|
|
1294
|
-
specifier: ^5.1.
|
|
1297
|
+
specifier: ^5.1.39
|
|
1295
1298
|
version: link:modules/a-zod
|
|
1296
1299
|
zova-module-a-zova:
|
|
1297
|
-
specifier: ^5.1.
|
|
1300
|
+
specifier: ^5.1.113
|
|
1298
1301
|
version: link:modules/a-zova
|
|
1299
1302
|
|
|
1300
1303
|
src/suite-vendor/a-zova/modules/a-api:
|
|
@@ -2631,6 +2634,35 @@ packages:
|
|
|
2631
2634
|
'@cacheable/utils@2.5.0':
|
|
2632
2635
|
resolution: {integrity: sha512-buipgOVDkkPXNR5+xBpDw7Zk2n1EvU7qBJCNUcL7rhQ//kfpOXPAvQ511Os0vpLYJ1pZnvudNytkQt2hst3wqA==}
|
|
2633
2636
|
|
|
2637
|
+
'@code-inspector/core@2.0.9':
|
|
2638
|
+
resolution: {integrity: sha512-7WkUlXfpwM95+KY5ra3KyivQGy0fUBq9dFcoI481LJKKnZNzwRW6kUkQF2hVP7zTj8TDy5esCMw8YuOwI8HhsQ==}
|
|
2639
|
+
peerDependencies:
|
|
2640
|
+
'@anthropic-ai/claude-agent-sdk': ^0.2.29
|
|
2641
|
+
'@openai/codex-sdk': ^0.106.0
|
|
2642
|
+
'@opencode-ai/sdk': ^1.2.24
|
|
2643
|
+
peerDependenciesMeta:
|
|
2644
|
+
'@anthropic-ai/claude-agent-sdk':
|
|
2645
|
+
optional: true
|
|
2646
|
+
'@openai/codex-sdk':
|
|
2647
|
+
optional: true
|
|
2648
|
+
'@opencode-ai/sdk':
|
|
2649
|
+
optional: true
|
|
2650
|
+
|
|
2651
|
+
'@code-inspector/esbuild@2.0.9':
|
|
2652
|
+
resolution: {integrity: sha512-uiddojMyD4HUtJ8pVq4/Iu0AgILaRZoe/zXJUK2ibqWdP6XtjIWCTLfvDL8IO9tOOxuEi+0SsRwr/Y8CEN5sTQ==}
|
|
2653
|
+
|
|
2654
|
+
'@code-inspector/mako@2.0.9':
|
|
2655
|
+
resolution: {integrity: sha512-HGb8oHXEj2fGnD5AtdUzFhMXkuRAXenKT1iCV53B8gFgiV5ddSrln+/mPQZt3v3FTu3TyQNd3aaHtPpSW+B0vg==}
|
|
2656
|
+
|
|
2657
|
+
'@code-inspector/turbopack@2.0.9':
|
|
2658
|
+
resolution: {integrity: sha512-uNTPCkDxS+4htXOKTJf+yEjYqKDFLIczILQ41dMqD5z9rbSDJkU/bvMs+8RcGUks0f7cB+TtRQyQCfwoFW1atA==}
|
|
2659
|
+
|
|
2660
|
+
'@code-inspector/vite@2.0.9':
|
|
2661
|
+
resolution: {integrity: sha512-XXwb3Cyz70Y8OqP7H7umKVM1RrfmWtKBZ7JrrtlwraEaRRefo70+guuQZr6vuNm8lOT2VHgsG1bH9wqs7WrrXw==}
|
|
2662
|
+
|
|
2663
|
+
'@code-inspector/webpack@2.0.9':
|
|
2664
|
+
resolution: {integrity: sha512-sauXo+GD6QIlqSymNtDTQOyrQid8er71Kr3Jh07viUKd1+U10//EML/tb/IpOzutwauizJeQslKqAvDV+Nqc9w==}
|
|
2665
|
+
|
|
2634
2666
|
'@colors/colors@1.5.0':
|
|
2635
2667
|
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==}
|
|
2636
2668
|
engines: {node: '>=0.1.90'}
|
|
@@ -5434,6 +5466,10 @@ packages:
|
|
|
5434
5466
|
resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==}
|
|
5435
5467
|
engines: {node: '>=8'}
|
|
5436
5468
|
|
|
5469
|
+
chalk@4.1.1:
|
|
5470
|
+
resolution: {integrity: sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==}
|
|
5471
|
+
engines: {node: '>=10'}
|
|
5472
|
+
|
|
5437
5473
|
chalk@4.1.2:
|
|
5438
5474
|
resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
|
|
5439
5475
|
engines: {node: '>=10'}
|
|
@@ -5515,6 +5551,9 @@ packages:
|
|
|
5515
5551
|
resolution: {integrity: sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==}
|
|
5516
5552
|
engines: {node: '>=6'}
|
|
5517
5553
|
|
|
5554
|
+
code-inspector-plugin@2.0.9:
|
|
5555
|
+
resolution: {integrity: sha512-0CApBNHqPTrcbOL/1n4JJS0Wy0CGYTRmJVWY8qI0wkYmmeT/LhaQZ1EIGQNuHLepZn4SA/XWd+4No+8gshpRNA==}
|
|
5556
|
+
|
|
5518
5557
|
color-convert@1.9.3:
|
|
5519
5558
|
resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
|
|
5520
5559
|
|
|
@@ -6792,6 +6831,9 @@ packages:
|
|
|
6792
6831
|
kolorist@1.8.0:
|
|
6793
6832
|
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
|
|
6794
6833
|
|
|
6834
|
+
launch-ide@1.4.10:
|
|
6835
|
+
resolution: {integrity: sha512-MqkYz5/dYDtBkvcDmz6tr2uFWU8AqRnrI+kLwcVmV83QZ/uhN0yns9GUQyLZJ5CJ5pglm8xko65JGcyzyI3dBQ==}
|
|
6836
|
+
|
|
6795
6837
|
lazystream@1.0.1:
|
|
6796
6838
|
resolution: {integrity: sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==}
|
|
6797
6839
|
engines: {node: '>= 0.6.3'}
|
|
@@ -7350,6 +7392,9 @@ packages:
|
|
|
7350
7392
|
resolution: {integrity: sha512-iwpZdvW6Umz12ICmu9IYPRxg0tOLGmU3Tq2tKetejCj3oZd7b2nUXwP3a7QA5M9glWy8wlPS1G3RwM/CdsUbdQ==}
|
|
7351
7393
|
engines: {node: '>=8.0.0'}
|
|
7352
7394
|
|
|
7395
|
+
node-pty@1.1.0:
|
|
7396
|
+
resolution: {integrity: sha512-20JqtutY6JPXTUnL0ij1uad7Qe1baT46lyolh2sSENDd4sTzKZ4nmAFkeAARDKwmlLjPx6XKRlwRUxwjOy+lUg==}
|
|
7397
|
+
|
|
7353
7398
|
node-releases@2.0.55:
|
|
7354
7399
|
resolution: {integrity: sha512-mIrE/Cw9y+9Au6dS5vDKDhQza9YvG6w+ZrS6X+ZzA7yFW/soAeaups4Qzn1bL6g5FVy8WtP79+0j82oPIbqRjQ==}
|
|
7355
7400
|
engines: {node: '>=18'}
|
|
@@ -7586,6 +7631,10 @@ packages:
|
|
|
7586
7631
|
pnpm-workspace-yaml@1.9.1:
|
|
7587
7632
|
resolution: {integrity: sha512-Xj/T2X6DNAWbtk/9UQ0/TJRswltiHZevmcMjqoL7WrpJi67lu3qaslU4+I+zJ8wtwqmuvAE0KkB8rbv2ZdogBg==}
|
|
7588
7633
|
|
|
7634
|
+
portfinder@1.0.38:
|
|
7635
|
+
resolution: {integrity: sha512-rEwq/ZHlJIKw++XtLAO8PPuOQA/zaPJOZJ37BVuN97nLpMJeuDVLVGRwbFoBgLudgdTMP2hdRJP++H+8QOA3vg==}
|
|
7636
|
+
engines: {node: '>= 10.12'}
|
|
7637
|
+
|
|
7589
7638
|
possible-typed-array-names@1.1.0:
|
|
7590
7639
|
resolution: {integrity: sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==}
|
|
7591
7640
|
engines: {node: '>= 0.4'}
|
|
@@ -8813,6 +8862,18 @@ packages:
|
|
|
8813
8862
|
wrappy@1.0.2:
|
|
8814
8863
|
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
|
|
8815
8864
|
|
|
8865
|
+
ws@8.22.0:
|
|
8866
|
+
resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==}
|
|
8867
|
+
engines: {node: '>=10.0.0'}
|
|
8868
|
+
peerDependencies:
|
|
8869
|
+
bufferutil: ^4.0.1
|
|
8870
|
+
utf-8-validate: '>=5.0.2'
|
|
8871
|
+
peerDependenciesMeta:
|
|
8872
|
+
bufferutil:
|
|
8873
|
+
optional: true
|
|
8874
|
+
utf-8-validate:
|
|
8875
|
+
optional: true
|
|
8876
|
+
|
|
8816
8877
|
wsl-utils@1.0.0:
|
|
8817
8878
|
resolution: {integrity: sha512-Hl0ZOAs672vg+06kfujwRhoS6/jehvULrlFkuF2dRu6pHgA8U06h3xqNIqNNU1LTXPcedxByAR4GS6pwQK0mgA==}
|
|
8818
8879
|
engines: {node: '>=20'}
|
|
@@ -9422,6 +9483,77 @@ snapshots:
|
|
|
9422
9483
|
hashery: 1.5.1
|
|
9423
9484
|
keyv: 5.6.0
|
|
9424
9485
|
|
|
9486
|
+
'@code-inspector/core@2.0.9(supports-color@10.2.2)':
|
|
9487
|
+
dependencies:
|
|
9488
|
+
'@vue/compiler-dom': 3.5.13
|
|
9489
|
+
chalk: 4.1.2
|
|
9490
|
+
launch-ide: 1.4.10
|
|
9491
|
+
portfinder: 1.0.38(supports-color@10.2.2)
|
|
9492
|
+
ws: 8.22.0
|
|
9493
|
+
optionalDependencies:
|
|
9494
|
+
node-pty: 1.1.0
|
|
9495
|
+
transitivePeerDependencies:
|
|
9496
|
+
- bufferutil
|
|
9497
|
+
- supports-color
|
|
9498
|
+
- utf-8-validate
|
|
9499
|
+
|
|
9500
|
+
'@code-inspector/esbuild@2.0.9(supports-color@10.2.2)':
|
|
9501
|
+
dependencies:
|
|
9502
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
9503
|
+
transitivePeerDependencies:
|
|
9504
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
9505
|
+
- '@openai/codex-sdk'
|
|
9506
|
+
- '@opencode-ai/sdk'
|
|
9507
|
+
- bufferutil
|
|
9508
|
+
- supports-color
|
|
9509
|
+
- utf-8-validate
|
|
9510
|
+
|
|
9511
|
+
'@code-inspector/mako@2.0.9(supports-color@10.2.2)':
|
|
9512
|
+
dependencies:
|
|
9513
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
9514
|
+
transitivePeerDependencies:
|
|
9515
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
9516
|
+
- '@openai/codex-sdk'
|
|
9517
|
+
- '@opencode-ai/sdk'
|
|
9518
|
+
- bufferutil
|
|
9519
|
+
- supports-color
|
|
9520
|
+
- utf-8-validate
|
|
9521
|
+
|
|
9522
|
+
'@code-inspector/turbopack@2.0.9(supports-color@10.2.2)':
|
|
9523
|
+
dependencies:
|
|
9524
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
9525
|
+
'@code-inspector/webpack': 2.0.9(supports-color@10.2.2)
|
|
9526
|
+
transitivePeerDependencies:
|
|
9527
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
9528
|
+
- '@openai/codex-sdk'
|
|
9529
|
+
- '@opencode-ai/sdk'
|
|
9530
|
+
- bufferutil
|
|
9531
|
+
- supports-color
|
|
9532
|
+
- utf-8-validate
|
|
9533
|
+
|
|
9534
|
+
'@code-inspector/vite@2.0.9(supports-color@10.2.2)':
|
|
9535
|
+
dependencies:
|
|
9536
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
9537
|
+
chalk: 4.1.1
|
|
9538
|
+
transitivePeerDependencies:
|
|
9539
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
9540
|
+
- '@openai/codex-sdk'
|
|
9541
|
+
- '@opencode-ai/sdk'
|
|
9542
|
+
- bufferutil
|
|
9543
|
+
- supports-color
|
|
9544
|
+
- utf-8-validate
|
|
9545
|
+
|
|
9546
|
+
'@code-inspector/webpack@2.0.9(supports-color@10.2.2)':
|
|
9547
|
+
dependencies:
|
|
9548
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
9549
|
+
transitivePeerDependencies:
|
|
9550
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
9551
|
+
- '@openai/codex-sdk'
|
|
9552
|
+
- '@opencode-ai/sdk'
|
|
9553
|
+
- bufferutil
|
|
9554
|
+
- supports-color
|
|
9555
|
+
- utf-8-validate
|
|
9556
|
+
|
|
9425
9557
|
'@colors/colors@1.5.0':
|
|
9426
9558
|
optional: true
|
|
9427
9559
|
|
|
@@ -11718,6 +11850,11 @@ snapshots:
|
|
|
11718
11850
|
ansi-styles: 4.3.0
|
|
11719
11851
|
supports-color: 7.2.0
|
|
11720
11852
|
|
|
11853
|
+
chalk@4.1.1:
|
|
11854
|
+
dependencies:
|
|
11855
|
+
ansi-styles: 4.3.0
|
|
11856
|
+
supports-color: 7.2.0
|
|
11857
|
+
|
|
11721
11858
|
chalk@4.1.2:
|
|
11722
11859
|
dependencies:
|
|
11723
11860
|
ansi-styles: 4.3.0
|
|
@@ -11806,6 +11943,23 @@ snapshots:
|
|
|
11806
11943
|
kind-of: 6.0.3
|
|
11807
11944
|
shallow-clone: 3.0.1
|
|
11808
11945
|
|
|
11946
|
+
code-inspector-plugin@2.0.9(supports-color@10.2.2):
|
|
11947
|
+
dependencies:
|
|
11948
|
+
'@code-inspector/core': 2.0.9(supports-color@10.2.2)
|
|
11949
|
+
'@code-inspector/esbuild': 2.0.9(supports-color@10.2.2)
|
|
11950
|
+
'@code-inspector/mako': 2.0.9(supports-color@10.2.2)
|
|
11951
|
+
'@code-inspector/turbopack': 2.0.9(supports-color@10.2.2)
|
|
11952
|
+
'@code-inspector/vite': 2.0.9(supports-color@10.2.2)
|
|
11953
|
+
'@code-inspector/webpack': 2.0.9(supports-color@10.2.2)
|
|
11954
|
+
chalk: 4.1.1
|
|
11955
|
+
transitivePeerDependencies:
|
|
11956
|
+
- '@anthropic-ai/claude-agent-sdk'
|
|
11957
|
+
- '@openai/codex-sdk'
|
|
11958
|
+
- '@opencode-ai/sdk'
|
|
11959
|
+
- bufferutil
|
|
11960
|
+
- supports-color
|
|
11961
|
+
- utf-8-validate
|
|
11962
|
+
|
|
11809
11963
|
color-convert@1.9.3:
|
|
11810
11964
|
dependencies:
|
|
11811
11965
|
color-name: 1.1.3
|
|
@@ -13218,6 +13372,11 @@ snapshots:
|
|
|
13218
13372
|
|
|
13219
13373
|
kolorist@1.8.0: {}
|
|
13220
13374
|
|
|
13375
|
+
launch-ide@1.4.10:
|
|
13376
|
+
dependencies:
|
|
13377
|
+
chalk: 4.1.2
|
|
13378
|
+
dotenv: 16.6.1
|
|
13379
|
+
|
|
13221
13380
|
lazystream@1.0.1:
|
|
13222
13381
|
dependencies:
|
|
13223
13382
|
readable-stream: 2.3.8
|
|
@@ -13946,6 +14105,11 @@ snapshots:
|
|
|
13946
14105
|
|
|
13947
14106
|
node-hex@1.0.1: {}
|
|
13948
14107
|
|
|
14108
|
+
node-pty@1.1.0:
|
|
14109
|
+
dependencies:
|
|
14110
|
+
node-addon-api: 7.1.1
|
|
14111
|
+
optional: true
|
|
14112
|
+
|
|
13949
14113
|
node-releases@2.0.55: {}
|
|
13950
14114
|
|
|
13951
14115
|
nopt@9.0.0:
|
|
@@ -14198,6 +14362,13 @@ snapshots:
|
|
|
14198
14362
|
dependencies:
|
|
14199
14363
|
yaml: 2.9.1
|
|
14200
14364
|
|
|
14365
|
+
portfinder@1.0.38(supports-color@10.2.2):
|
|
14366
|
+
dependencies:
|
|
14367
|
+
async: 3.2.6
|
|
14368
|
+
debug: 4.4.3(supports-color@10.2.2)
|
|
14369
|
+
transitivePeerDependencies:
|
|
14370
|
+
- supports-color
|
|
14371
|
+
|
|
14201
14372
|
possible-typed-array-names@1.1.0: {}
|
|
14202
14373
|
|
|
14203
14374
|
postcss-modules-extract-imports@3.1.0(postcss@8.1.10):
|
|
@@ -15625,6 +15796,8 @@ snapshots:
|
|
|
15625
15796
|
|
|
15626
15797
|
wrappy@1.0.2: {}
|
|
15627
15798
|
|
|
15799
|
+
ws@8.22.0: {}
|
|
15800
|
+
|
|
15628
15801
|
wsl-utils@1.0.0:
|
|
15629
15802
|
dependencies:
|
|
15630
15803
|
is-wsl: 3.1.1
|
package/zova/pnpm-workspace.yaml
CHANGED
package/zova/quasar.config.ts
CHANGED
|
@@ -4,12 +4,36 @@
|
|
|
4
4
|
// https://v2.quasar.dev/quasar-cli-vite/quasar-config-file
|
|
5
5
|
|
|
6
6
|
import { defineConfig } from '@quasar/app-vite/wrappers';
|
|
7
|
+
import { codeInspectorPlugin } from 'code-inspector-plugin';
|
|
7
8
|
|
|
8
|
-
export default defineConfig(
|
|
9
|
+
export default defineConfig(ctx => {
|
|
9
10
|
return {
|
|
10
11
|
build: {
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
extendViteConf(viteConf) {
|
|
13
|
+
if (!ctx.dev) return;
|
|
14
|
+
// Quasar provides this resolver at runtime but omits it from IResolve.
|
|
15
|
+
const resolveEntry = (
|
|
16
|
+
ctx.appPaths.resolve as typeof ctx.appPaths.resolve & { entry: (file: string) => string }
|
|
17
|
+
).entry;
|
|
18
|
+
viteConf.plugins ??= [];
|
|
19
|
+
viteConf.plugins.unshift(
|
|
20
|
+
codeInspectorPlugin({
|
|
21
|
+
bundler: 'vite',
|
|
22
|
+
dev: ctx.dev,
|
|
23
|
+
enforcePre: true,
|
|
24
|
+
injectTo: resolveEntry('client-entry.js'),
|
|
25
|
+
match: /\.tsx$/,
|
|
26
|
+
exclude: /\/\.metadata\//,
|
|
27
|
+
pathType: 'absolute',
|
|
28
|
+
server: 'close',
|
|
29
|
+
skipSnippets: ['console'],
|
|
30
|
+
behavior: {
|
|
31
|
+
locate: false,
|
|
32
|
+
target: 'vscode://file/{file}:{line}:{column}',
|
|
33
|
+
},
|
|
34
|
+
}),
|
|
35
|
+
);
|
|
36
|
+
},
|
|
13
37
|
},
|
|
14
38
|
|
|
15
39
|
devServer: {
|