@vidiemme/copilot-proxy 0.2.0 → 0.3.0
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 +12 -2
- package/dist/cli.js +128 -60
- package/dist/cli.js.map +1 -1
- package/dist/collector/forwarder.d.ts +1 -0
- package/dist/collector/forwarder.js +9 -0
- package/dist/collector/forwarder.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.js +2 -0
- package/dist/config.js.map +1 -1
- package/dist/editors.d.ts +18 -0
- package/dist/editors.js +75 -0
- package/dist/editors.js.map +1 -0
- package/dist/paths.d.ts +0 -2
- package/dist/paths.js +0 -11
- package/dist/paths.js.map +1 -1
- package/dist/setupHelpers.d.ts +9 -0
- package/dist/setupHelpers.js +40 -0
- package/dist/setupHelpers.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -17,7 +17,9 @@ Il progetto viene riconosciuto dal repository git su cui si sta lavorando: nessu
|
|
|
17
17
|
profilo da cambiare quando si passa da un progetto all'altro.
|
|
18
18
|
|
|
19
19
|
Non vengono mai salvati prompt ne' risposte: solo contatori. L'identita' della
|
|
20
|
-
persona e' uno pseudonimo, cioe' un hash con salt non invertibile
|
|
20
|
+
persona e' uno pseudonimo, cioe' un hash con salt non invertibile; il setup
|
|
21
|
+
propone di affiancargli il nome di `git config`, per riconoscersi nella dashboard
|
|
22
|
+
(`--anonymous` per non farlo).
|
|
21
23
|
|
|
22
24
|
## Uso
|
|
23
25
|
|
|
@@ -39,11 +41,19 @@ Non c'e' nulla da configurare a mano: endpoint di raccolta, salt e cartelle dove
|
|
|
39
41
|
cercare i progetti sono gia' nel pacchetto. L'unica cosa da procurarsi e' il
|
|
40
42
|
token di raccolta, che il comando chiede in modo nascosto.
|
|
41
43
|
|
|
42
|
-
`--vscode` scrive le impostazioni utente di VS Code
|
|
44
|
+
`--vscode` scrive le impostazioni utente di VS Code e dei derivati installati
|
|
45
|
+
(Insiders, VSCodium, Cursor, Windsurf, Antigravity), `--autostart` registra il
|
|
43
46
|
proxy fra i servizi dell'utente: parte subito e a ogni accesso, senza che nessuno
|
|
44
47
|
debba ricordarsi di lanciarlo. Con entrambe, dopo questo comando non c'e' piu'
|
|
45
48
|
nulla da fare. Il comando stampa come disattivarlo.
|
|
46
49
|
|
|
50
|
+
Il setup chiede la porta locale (default 8787) e controlla che sia libera. Per
|
|
51
|
+
cambiarla dopo: `setup --force --port 9000 --vscode --autostart`, senza
|
|
52
|
+
reinserire il token.
|
|
53
|
+
|
|
54
|
+
JetBrains, Eclipse, Xcode e Visual Studio non si possono indirizzare al proxy:
|
|
55
|
+
il loro consumo non viene misurato.
|
|
56
|
+
|
|
47
57
|
Senza `--autostart` il proxy si avvia a mano:
|
|
48
58
|
|
|
49
59
|
```bash
|
package/dist/cli.js
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { mkdirSync, readFileSync, writeFileSync,
|
|
3
|
-
import {
|
|
2
|
+
import { mkdirSync, readFileSync, writeFileSync, statSync } from 'node:fs';
|
|
3
|
+
import { createInterface } from 'node:readline/promises';
|
|
4
4
|
import { parseArgs } from 'node:util';
|
|
5
5
|
import { installAutostart, isAutostartInstalled, restartAutostart, uninstallAutostart } from './autostart.js';
|
|
6
6
|
import { loadConfig } from './config.js';
|
|
7
|
-
import {
|
|
7
|
+
import { applyEditorSettings, editorSnippet, installedEditors, knownEditors, pointsToProxy, readOverride, } from './editors.js';
|
|
8
|
+
import { configDir, configFile } from './paths.js';
|
|
8
9
|
import { buildApp } from './server.js';
|
|
10
|
+
import { gitIdentity, portStatus } from './setupHelpers.js';
|
|
9
11
|
import { CLIENT_VERSION } from './version.js';
|
|
10
|
-
const
|
|
11
|
-
const AUTH_TYPE_KEY = 'github.copilot.advanced.debug.overrideAuthType';
|
|
12
|
+
const DEFAULT_PORT = 8787;
|
|
12
13
|
const USAGE = `
|
|
13
14
|
Proxy locale che misura il consumo di token di GitHub Copilot e lo attribuisce
|
|
14
15
|
al progetto su cui si sta lavorando.
|
|
@@ -22,14 +23,22 @@ al progetto su cui si sta lavorando.
|
|
|
22
23
|
npx @vidiemme/copilot-proxy --version
|
|
23
24
|
|
|
24
25
|
Opzioni di setup:
|
|
25
|
-
--vscode scrive
|
|
26
|
+
--vscode scrive le impostazioni di VS Code e derivati (Insiders,
|
|
27
|
+
VSCodium, Cursor, Windsurf, Antigravity) installati
|
|
26
28
|
--autostart avvia il proxy a ogni accesso, senza doverlo lanciare
|
|
29
|
+
--port <n> porta locale del proxy (default 8787; chiesta se interattivo)
|
|
30
|
+
--name <nome> nome da mostrare nella dashboard (default: git user.name)
|
|
31
|
+
--email <email> email associata (default: git user.email)
|
|
32
|
+
--anonymous non inviare nome ed email: resta solo lo pseudonimo
|
|
27
33
|
--workspace-roots <a,b> cartelle sotto cui vivono i repository (default: la home)
|
|
28
|
-
--port <n> porta locale del proxy (default 8787)
|
|
29
34
|
--collector-url <url> endpoint di raccolta, se diverso da quello aziendale
|
|
30
35
|
--salt <valore> salt degli pseudonimi, se diverso da quello aziendale
|
|
31
36
|
--upstream <url> endpoint Copilot (default https://api.githubcopilot.com)
|
|
32
|
-
--force
|
|
37
|
+
--force rifa' il setup partendo dalla configurazione esistente
|
|
38
|
+
(token compreso: per cambiare porta basta --force --port)
|
|
39
|
+
|
|
40
|
+
JetBrains, Eclipse, Xcode, Android Studio e Visual Studio non hanno un modo per
|
|
41
|
+
indirizzare Copilot al proxy: il loro traffico non viene misurato.
|
|
33
42
|
|
|
34
43
|
L'unica cosa da procurarsi e' il token di raccolta, uguale per tutta l'azienda.
|
|
35
44
|
Non si passa come opzione: finirebbe nella cronologia della shell e nella lista
|
|
@@ -122,21 +131,49 @@ function promptSecret(question) {
|
|
|
122
131
|
stdin.on('data', onData);
|
|
123
132
|
});
|
|
124
133
|
}
|
|
134
|
+
async function promptLine(question) {
|
|
135
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
136
|
+
try {
|
|
137
|
+
return (await rl.question(question)).trim();
|
|
138
|
+
}
|
|
139
|
+
finally {
|
|
140
|
+
rl.close();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function validPort(value) {
|
|
144
|
+
const port = Number(value);
|
|
145
|
+
return Number.isInteger(port) && port >= 1 && port <= 65535;
|
|
146
|
+
}
|
|
147
|
+
function setOrDelete(values, key, value) {
|
|
148
|
+
if (value)
|
|
149
|
+
values[key] = value;
|
|
150
|
+
else
|
|
151
|
+
delete values[key];
|
|
152
|
+
}
|
|
125
153
|
async function commandSetup(flags) {
|
|
126
154
|
const existing = readConfigFile();
|
|
127
|
-
|
|
128
|
-
|
|
155
|
+
const reconfigure = Object.keys(existing).length > 0;
|
|
156
|
+
if (reconfigure && flags.force !== true) {
|
|
157
|
+
console.error(`Esiste gia' ${configFile()}. Rilancia con --force per modificarlo.`);
|
|
129
158
|
return 1;
|
|
130
159
|
}
|
|
131
|
-
const
|
|
132
|
-
|
|
160
|
+
const interactive = process.stdin.isTTY === true;
|
|
161
|
+
// Con --force si parte dalla configurazione esistente: cambiare porta non deve costare il token.
|
|
162
|
+
const values = {};
|
|
163
|
+
for (const [key, value] of Object.entries(existing))
|
|
164
|
+
if (value !== undefined)
|
|
165
|
+
values[key] = value;
|
|
166
|
+
const token = process.env.COLLECTOR_TOKEN?.trim() ||
|
|
167
|
+
values.COLLECTOR_TOKEN ||
|
|
168
|
+
(await promptSecret('Token di raccolta: ')).trim();
|
|
169
|
+
if (token.length === 0) {
|
|
133
170
|
console.error('Token vuoto.');
|
|
134
171
|
return 1;
|
|
135
172
|
}
|
|
136
173
|
// Si scrive solo cio' che si discosta dai default del pacchetto: un file
|
|
137
174
|
// corto e' un file che si capisce, e i default restano aggiornabili con una
|
|
138
175
|
// nuova versione invece che postazione per postazione.
|
|
139
|
-
|
|
176
|
+
values.COLLECTOR_TOKEN = token;
|
|
140
177
|
const collectorUrl = flags['collector-url'];
|
|
141
178
|
if (collectorUrl)
|
|
142
179
|
values.COLLECTOR_URL = collectorUrl;
|
|
@@ -146,10 +183,35 @@ async function commandSetup(flags) {
|
|
|
146
183
|
const workspaceRoots = flags['workspace-roots'];
|
|
147
184
|
if (workspaceRoots)
|
|
148
185
|
values.WORKSPACE_ROOTS = workspaceRoots;
|
|
149
|
-
if (flags.port)
|
|
150
|
-
values.PORT = String(flags.port);
|
|
151
186
|
if (flags.upstream)
|
|
152
187
|
values.UPSTREAM_BASE_URL = String(flags.upstream);
|
|
188
|
+
let port = flags.port ? String(flags.port) : values.PORT;
|
|
189
|
+
if (!port && interactive) {
|
|
190
|
+
port = (await promptLine(`Porta locale del proxy [${DEFAULT_PORT}]: `)) || undefined;
|
|
191
|
+
}
|
|
192
|
+
if (port && !validPort(port)) {
|
|
193
|
+
console.error(`Porta non valida: ${port}. Serve un intero fra 1 e 65535.`);
|
|
194
|
+
return 1;
|
|
195
|
+
}
|
|
196
|
+
setOrDelete(values, 'PORT', port && Number(port) !== DEFAULT_PORT ? String(Number(port)) : undefined);
|
|
197
|
+
if (flags.anonymous === true) {
|
|
198
|
+
setOrDelete(values, 'DEVELOPER_NAME', undefined);
|
|
199
|
+
setOrDelete(values, 'DEVELOPER_EMAIL', undefined);
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
const git = gitIdentity();
|
|
203
|
+
let name = flags.name ?? values.DEVELOPER_NAME ?? git.name;
|
|
204
|
+
const email = flags.email ?? values.DEVELOPER_EMAIL ?? git.email;
|
|
205
|
+
if (interactive && flags.name === undefined) {
|
|
206
|
+
const answer = await promptLine(`Nome da mostrare nella dashboard [${name ?? 'nessuno'}] ("-" per restare anonimo): `);
|
|
207
|
+
if (answer === '-')
|
|
208
|
+
name = undefined;
|
|
209
|
+
else if (answer)
|
|
210
|
+
name = answer;
|
|
211
|
+
}
|
|
212
|
+
setOrDelete(values, 'DEVELOPER_NAME', name?.slice(0, 100));
|
|
213
|
+
setOrDelete(values, 'DEVELOPER_EMAIL', name ? email?.slice(0, 200) : undefined);
|
|
214
|
+
}
|
|
153
215
|
// Meglio scoprire ora che la configurazione non regge, non al primo avvio.
|
|
154
216
|
let config;
|
|
155
217
|
try {
|
|
@@ -159,14 +221,22 @@ async function commandSetup(flags) {
|
|
|
159
221
|
console.error(`Configurazione non valida: ${error.message}`);
|
|
160
222
|
return 1;
|
|
161
223
|
}
|
|
224
|
+
if ((await portStatus(config.port, config.host)) === 'busy') {
|
|
225
|
+
console.error(`La porta ${config.port} e' occupata da un altro programma. Scegline un'altra con --port <n>.`);
|
|
226
|
+
return 1;
|
|
227
|
+
}
|
|
162
228
|
writeConfigFile(values);
|
|
163
229
|
console.log(`Scritto ${configFile()}`);
|
|
230
|
+
console.log(`Proxy su http://127.0.0.1:${config.port}`);
|
|
164
231
|
console.log(`Raccolta verso ${config.collectorUrl}`);
|
|
165
232
|
console.log(`Progetti cercati sotto ${config.workspaceRoots.join(', ')}`);
|
|
233
|
+
console.log(config.developerName
|
|
234
|
+
? `Nella dashboard comparirai come ${config.developerName}`
|
|
235
|
+
: 'Nella dashboard comparirai con uno pseudonimo');
|
|
166
236
|
if (flags.vscode === true)
|
|
167
|
-
|
|
237
|
+
applyEditors(config.port);
|
|
168
238
|
else
|
|
169
|
-
|
|
239
|
+
printEditorSettings(config.port);
|
|
170
240
|
if (flags.autostart === true) {
|
|
171
241
|
try {
|
|
172
242
|
const service = installAutostart();
|
|
@@ -185,37 +255,25 @@ async function commandSetup(flags) {
|
|
|
185
255
|
console.log('Per non doverlo fare ogni volta, rilancia il setup con --autostart');
|
|
186
256
|
return 0;
|
|
187
257
|
}
|
|
188
|
-
function
|
|
189
|
-
|
|
258
|
+
function printEditorSettings(port, editor) {
|
|
259
|
+
console.log(`\nAggiungi alle impostazioni utente di ${editor?.name ?? 'VS Code (e dei suoi derivati)'} (Preferences: Open User Settings (JSON)):\n` +
|
|
260
|
+
`${JSON.stringify(editorSnippet(port), null, 2)}\n` +
|
|
261
|
+
(editor ? '' : 'Oppure rilancia il setup con --vscode per farlo scrivere al comando.'));
|
|
190
262
|
}
|
|
191
|
-
function
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
const raw = readFileSync(file, 'utf-8');
|
|
202
|
-
// `settings.json` ammette commenti e virgole finali: se non e' JSON puro,
|
|
203
|
-
// riscriverlo lo distruggerebbe. Meglio arrendersi e dire cosa aggiungere.
|
|
204
|
-
current = JSON.parse(raw);
|
|
205
|
-
copyFileSync(file, `${file}.bak`);
|
|
206
|
-
}
|
|
207
|
-
catch (error) {
|
|
208
|
-
exists = error.code !== 'ENOENT';
|
|
209
|
-
if (exists) {
|
|
210
|
-
console.log(`\nNon riesco a modificare ${file} senza rischiare di rovinarlo (contiene commenti o non e' JSON valido).`);
|
|
211
|
-
printVsCodeSettings(port);
|
|
212
|
-
return;
|
|
263
|
+
function applyEditors(port) {
|
|
264
|
+
const found = installedEditors();
|
|
265
|
+
// Nessun editor ancora aperto: si prepara VS Code, che e' il caso piu' comune.
|
|
266
|
+
const targets = found.length > 0 ? found : knownEditors().slice(0, 1);
|
|
267
|
+
for (const editor of targets) {
|
|
268
|
+
const result = applyEditorSettings(editor, port);
|
|
269
|
+
if (result.status === 'unparsable') {
|
|
270
|
+
console.log(`\n${editor.name}: non riesco a modificare ${editor.settingsFile} senza rischiare di rovinarlo (contiene commenti o non e' JSON valido).`);
|
|
271
|
+
printEditorSettings(port, editor);
|
|
272
|
+
continue;
|
|
213
273
|
}
|
|
274
|
+
console.log(`${editor.name}: aggiornato ${editor.settingsFile}${result.backup ? ` (backup in ${result.backup})` : ''}`);
|
|
214
275
|
}
|
|
215
|
-
|
|
216
|
-
writeFileSync(file, `${JSON.stringify({ ...current, ...vsCodeSnippet(port) }, null, 2)}\n`);
|
|
217
|
-
console.log(`Aggiornato ${file}${exists ? ` (backup in ${file}.bak)` : ''}`);
|
|
218
|
-
console.log("Riavvia VS Code perche' le impostazioni abbiano effetto.");
|
|
276
|
+
console.log("Riavvia gli editor perche' le impostazioni abbiano effetto.");
|
|
219
277
|
}
|
|
220
278
|
async function commandStart(flags) {
|
|
221
279
|
const overrides = {};
|
|
@@ -299,22 +357,28 @@ async function commandDoctor() {
|
|
|
299
357
|
catch (error) {
|
|
300
358
|
check(false, `servizio di raccolta irraggiungibile: ${error.message}`);
|
|
301
359
|
}
|
|
302
|
-
//
|
|
303
|
-
//
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
: "VS Code non e' configurato per passare dal proxy");
|
|
360
|
+
// Basta un editor che punti al proxy; gli altri sono solo segnalati, perche'
|
|
361
|
+
// non tutti usano Copilot in ogni editor installato.
|
|
362
|
+
const editors = installedEditors();
|
|
363
|
+
const expected = `http://127.0.0.1:${config.port}`;
|
|
364
|
+
const configured = [];
|
|
365
|
+
const notConfigured = [];
|
|
366
|
+
for (const editor of editors) {
|
|
367
|
+
const value = readOverride(editor);
|
|
368
|
+
if (value && pointsToProxy(value, config.port))
|
|
369
|
+
configured.push(editor.name);
|
|
370
|
+
else
|
|
371
|
+
notConfigured.push(value ? `${editor.name} (punta a ${value}, atteso ${expected})` : editor.name);
|
|
315
372
|
}
|
|
316
|
-
|
|
317
|
-
check(
|
|
373
|
+
if (configured.length > 0) {
|
|
374
|
+
check(true, `passano dal proxy: ${configured.join(', ')}`);
|
|
375
|
+
if (notConfigured.length > 0)
|
|
376
|
+
warn(`non passano dal proxy: ${notConfigured.join(', ')}`);
|
|
377
|
+
}
|
|
378
|
+
else {
|
|
379
|
+
check(false, editors.length > 0
|
|
380
|
+
? `nessun editor passa dal proxy (${notConfigured.join(', ')}): rilancia "setup --vscode --force"`
|
|
381
|
+
: 'nessun editor della famiglia VS Code trovato su questa macchina');
|
|
318
382
|
}
|
|
319
383
|
const pending = spoolSize(config.spoolPath);
|
|
320
384
|
check(pending === 0, pending === 0 ? 'nessun evento in attesa di consegna' : `${pending} byte di eventi in attesa nello spool`);
|
|
@@ -372,6 +436,7 @@ async function commandStatus() {
|
|
|
372
436
|
}
|
|
373
437
|
const health = await readHealth(config.port);
|
|
374
438
|
console.log(`copilot-proxy ${CLIENT_VERSION}`);
|
|
439
|
+
console.log(`nome in dashboard: ${config.developerName ?? 'nessuno (pseudonimo)'}`);
|
|
375
440
|
console.log(`avvio automatico: ${isAutostartInstalled() ? 'attivo' : 'non installato'}`);
|
|
376
441
|
if (!health) {
|
|
377
442
|
console.log(`proxy: non in ascolto sulla porta ${config.port}`);
|
|
@@ -441,6 +506,9 @@ async function main() {
|
|
|
441
506
|
port: { type: 'string' },
|
|
442
507
|
upstream: { type: 'string' },
|
|
443
508
|
'log-level': { type: 'string' },
|
|
509
|
+
name: { type: 'string' },
|
|
510
|
+
email: { type: 'string' },
|
|
511
|
+
anonymous: { type: 'boolean' },
|
|
444
512
|
vscode: { type: 'boolean' },
|
|
445
513
|
autostart: { type: 'boolean' },
|
|
446
514
|
force: { type: 'boolean' },
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAC9G,OAAO,EAAE,UAAU,EAAwC,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,YAAY,GAAG,+CAA+C,CAAC;AACrE,MAAM,aAAa,GAAG,gDAAgD,CAAC;AAEvE,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6Bb,CAAC,SAAS,EAAE,CAAC;AAEd,+GAA+G;AAC/G,SAAS,cAAc;IACrB,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,EAAE,+DAA+D,CAAC,CAAC;IAClG,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,EAAE,iCAAiC,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2FAA2F;AAC3F,SAAS,YAAY,CAAC,SAAuB;IAC3C,MAAM,MAAM,GAAiB,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC1E,CAAC;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,KAAK,KAAK,SAAS;YAAE,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;IAC/C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAC,MAA8B;IACrD,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACzD,0EAA0E;IAC1E,aAAa,CAAC,UAAU,EAAE,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACvF,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,QAAgB;IACpC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,OAAO,CAAC,MAAM,CACnB,IAAI,KAAK,CACP,6HAA6H,CAC9H,CACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACvB,KAAK,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAE1B,IAAI,KAAK,GAAG,EAAE,CAAC;QACf,MAAM,MAAM,GAAG,CAAC,MAAkB,EAAQ,EAAE;YAC1C,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;YACxB,KAAK,CAAC,KAAK,EAAE,CAAC;YACd,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM,EAAE,CAAC;QACX,CAAC,CAAC;QACF,MAAM,MAAM,GAAG,CAAC,KAAa,EAAQ,EAAE;YACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;oBAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACxE,IAAI,IAAI,KAAK,QAAQ;oBAAE,OAAO,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;gBAC5E,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI;oBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;qBAC9D,IAAI,IAAI,IAAI,GAAG;oBAAE,KAAK,IAAI,IAAI,CAAC;YACtC,CAAC;QACH,CAAC,CAAC;QACF,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAmD;IAC7E,MAAM,QAAQ,GAAG,cAAc,EAAE,CAAC;IAClC,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,eAAe,UAAU,EAAE,yCAAyC,CAAC,CAAC;QACpF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,MAAM,YAAY,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACzF,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC;IACX,CAAC;IAED,yEAAyE;IACzE,4EAA4E;IAC5E,uDAAuD;IACvD,MAAM,MAAM,GAA2B,EAAE,eAAe,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;IACzE,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAuB,CAAC;IAClE,IAAI,YAAY;QAAE,MAAM,CAAC,aAAa,GAAG,YAAY,CAAC;IACtD,MAAM,IAAI,GAAG,KAAK,CAAC,IAA0B,CAAC;IAC9C,IAAI,IAAI;QAAE,MAAM,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAC1C,MAAM,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAuB,CAAC;IACtE,IAAI,cAAc;QAAE,MAAM,CAAC,eAAe,GAAG,cAAc,CAAC;IAC5D,IAAI,KAAK,CAAC,IAAI;QAAE,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,CAAC,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAEtE,2EAA2E;IAC3E,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,8BAA+B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACxE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,eAAe,CAAC,MAAM,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,WAAW,UAAU,EAAE,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,0BAA0B,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE1E,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI;QAAE,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;QACvD,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,KAAK,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,gBAAgB,EAAE,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,8BAA8B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,8EAA8E,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;YAChH,IAAI,OAAO,CAAC,OAAO;gBAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,oCAAqC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,OAAO,CAAC,CAAC;QACX,CAAC;QACD,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,8DAA8D,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,aAAa,CAAC,IAAY;IACjC,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,oBAAoB,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,OAAO,CAAC,GAAG,CACT,4FAA4F;QAC1F,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI;QACnD,sEAAsE,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAY;IACvC,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;IAElC,IAAI,OAAO,GAA4B,EAAE,CAAC;IAC1C,IAAI,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACxC,0EAA0E;QAC1E,2EAA2E;QAC3E,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAA4B,CAAC;QACrD,YAAY,CAAC,IAAI,EAAE,GAAG,IAAI,MAAM,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,GAAI,KAA+B,CAAC,IAAI,KAAK,QAAQ,CAAC;QAC5D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,6BAA6B,IAAI,yEAAyE,CAAC,CAAC;YACxH,mBAAmB,CAAC,IAAI,CAAC,CAAC;YAC1B,OAAO;QACT,CAAC;IACH,CAAC;IAED,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9C,aAAa,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;IAC5F,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;AAC1E,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,KAAmD;IAC7E,MAAM,SAAS,GAAiB,EAAE,CAAC;IACnC,IAAI,KAAK,CAAC,IAAI;QAAE,SAAS,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACpD,IAAI,KAAK,CAAC,WAAW,CAAC;QAAE,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,IAAI,KAAK,CAAC,eAAe,CAAC;QAAE,SAAS,CAAC,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IACrF,IAAI,KAAK,CAAC,iBAAiB,CAAC;QAAE,SAAS,CAAC,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAE3F,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CACX,GAAI,KAAe,CAAC,OAAO,8DAA8D,CAC1F,CAAC;QACF,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,MAAM,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAQ,EAAE;QACxC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,kBAAkB,CAAC,CAAC;QACpD,KAAK,GAAG,CAAC,KAAK,EAAE,CAAC,IAAI,CACnB,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EACrB,CAAC,KAAc,EAAE,EAAE;YACjB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,iBAAiB,CAAC,CAAC;YACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC,CACF,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;IACjD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,MAAM,OAAO,GAAsB,EAAE,CAAC;IACtC,MAAM,KAAK,GAAG,CAAC,EAAW,EAAE,OAAe,EAAQ,EAAE;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,CAAC,OAAe,EAAQ,EAAE;QACrC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC;IAEF,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;QACtC,KAAK,CAAC,IAAI,EAAE,qCAAqC,CAAC,CAAC;IACrD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,EAAE,mBAAoB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5D,MAAM,CAAC,OAAO,CAAC,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;QAClE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,KAAK,EAAE,qEAAqE,CAAC,CAAC;IACtF,CAAC;SAAM,CAAC;QACN,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACzD,KAAK,CACH,OAAO,CAAC,MAAM,KAAK,CAAC,EACpB,OAAO,CAAC,MAAM,KAAK,CAAC;YAClB,CAAC,CAAC,qCAAqC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;YAC1D,CAAC,CAAC,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,UAAU,MAAM,CAAC,cAAc,EAAE;aACjD;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;YACpC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;SACvD,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,KAAK,CAAC,KAAK,EAAE,0CAA0C,CAAC,CAAC;aACjF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YAAE,KAAK,CAAC,IAAI,EAAE,kDAAkD,CAAC,CAAC;;YAC7F,KAAK,CAAC,KAAK,EAAE,oCAAoC,QAAQ,CAAC,MAAM,YAAY,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,KAAK,CAAC,KAAK,EAAE,yCAA0C,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,0EAA0E;IAC1E,iEAAiE;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,kBAAkB,EAAE,EAAE,OAAO,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAChG,MAAM,QAAQ,GAAG,oBAAoB,MAAM,CAAC,IAAI,EAAE,CAAC;QACnD,2EAA2E;QAC3E,MAAM,EAAE,GAAG,KAAK,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,yCAAyC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QACxH,KAAK,CACH,EAAE,EACF,EAAE;YACA,CAAC,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,GAAG;YACtD,CAAC,CAAC,KAAK;gBACL,CAAC,CAAC,mBAAmB,KAAK,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE;gBACnD,CAAC,CAAC,kDAAkD,CACzD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,KAAK,CAAC,KAAK,EAAE,0CAA0C,kBAAkB,EAAE,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,GAAG,OAAO,uCAAuC,CAAC,CAAC;IAEhI,0EAA0E;IAC1E,yDAAyD;IACzD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC;IACrC,KAAK,CACH,OAAO,EACP,OAAO;QACL,CAAC,CAAC,SAAS,MAAM,CAAC,OAAO,IAAI,EAAE,cAAc,oBAAoB,EAAE,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE;QACrG,CAAC,CAAC,uCAAuC,MAAM,CAAC,IAAI,qFAAqF,CAC5I,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,KAAK,cAAc,EAAE,CAAC;YACxD,IAAI,CAAC,gCAAgC,MAAM,CAAC,OAAO,uBAAuB,cAAc,oBAAoB,CAAC,CAAC;QAChH,CAAC;QACD,0EAA0E;QAC1E,6EAA6E;QAC7E,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,OAAO;YAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,CAAC;IAChB,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9D,CAAC;AAkBD,KAAK,UAAU,UAAU,CAAC,IAAY;IACpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,UAAU,EAAE;YAC/D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAE,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAiB,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAE/B,SAAS,cAAc,CAAC,MAAmB,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,WAAW,CAAC;IACvC,IAAI,IAAI,EAAE,CAAC;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC;QAC7D,OAAO,KAAK,IAAI,EAAE,CAAC,CAAC,CAAC,iDAAiD,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,OAAO,MAAM,IAAI,OAAO;QACtB,CAAC,CAAC,oGAAoG;QACtG,CAAC,CAAC,SAAS,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,aAAa;IAC1B,IAAI,MAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAE,KAAe,CAAC,OAAO,CAAC,CAAC;QACxC,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,iBAAiB,cAAc,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,qBAAqB,oBAAoB,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACzF,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,qCAAqC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,OAAO,IAAI,GAAG,mBAAmB,MAAM,CAAC,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;IACzF,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,QAAQ,iBAAiB,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9G,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,WAAW,IAAI,SAAS,EAAE,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,cAAc,IAAI,SAAS,EAAE,CAAC,CAAC;QACrE,IAAI,KAAK,CAAC,SAAS;YAAE,OAAO,CAAC,GAAG,CAAC,gCAAgC,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IACtF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,UAAU,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC/D,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,cAAc;IACrB,IAAI,CAAC;QACH,gBAAgB,EAAE,CAAC;IACrB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACnE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAChC,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,gBAAgB;IACvB,IAAI,CAAC,kBAAkB,EAAE,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,uDAAuD,CAAC,CAAC;QACrE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,wDAAwD,UAAU,EAAE,GAAG,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,+GAA+G,CAAC,CAAC;IAC7H,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,MAAM,CAAC,OAA0B;IACxC,MAAM,MAAM,GAA0B,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IACjF,KAAK,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,IAAI,OAAO;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC;QACH,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,SAAS,CAAC;QACxC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3B,gBAAgB,EAAE,IAAI;QACtB,OAAO,EAAE;YACP,eAAe,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACnC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,iBAAiB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACrC,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3B,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC9B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;YAC1B,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;YACrC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,EAAE;SACzC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC;IAC1C,IAAI,MAAM,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC5B,OAAO;IACT,CAAC;IACD,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACnB,OAAO;IACT,CAAC;IAED,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO;QACT,KAAK,OAAO;YACV,OAAO,CAAC,QAAQ,GAAG,MAAM,YAAY,CAAC,MAAM,CAAC,CAAC;YAC9C,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;YACzC,OAAO;QACT,KAAK,QAAQ;YACX,OAAO,CAAC,QAAQ,GAAG,MAAM,aAAa,EAAE,CAAC;YACzC,OAAO;QACT,KAAK,SAAS;YACZ,OAAO,CAAC,QAAQ,GAAG,cAAc,EAAE,CAAC;YACpC,OAAO;QACT,KAAK,WAAW;YACd,OAAO,CAAC,QAAQ,GAAG,gBAAgB,EAAE,CAAC;YACtC,OAAO;QACT;YACE,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,IAAI,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACnB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;IACzB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;IAC9B,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,6 +36,7 @@ export declare class UsageForwarder {
|
|
|
36
36
|
private readonly batchSize;
|
|
37
37
|
private readonly spoolPath;
|
|
38
38
|
private readonly sendingPath;
|
|
39
|
+
private readonly identityHeaders;
|
|
39
40
|
constructor(config: ClientConfig, logger: Logger);
|
|
40
41
|
start(): void;
|
|
41
42
|
enqueue(event: UsageEventPayload): void;
|
|
@@ -44,12 +44,20 @@ export class UsageForwarder {
|
|
|
44
44
|
batchSize;
|
|
45
45
|
spoolPath;
|
|
46
46
|
sendingPath;
|
|
47
|
+
identityHeaders = {};
|
|
47
48
|
constructor(config, logger) {
|
|
48
49
|
this.config = config;
|
|
49
50
|
this.logger = logger;
|
|
50
51
|
this.batchSize = Math.min(config.flushMaxBatch, MAX_EVENTS_PER_BATCH);
|
|
51
52
|
this.spoolPath = config.spoolPath;
|
|
52
53
|
this.sendingPath = `${config.spoolPath}.sending`;
|
|
54
|
+
// Gli header HTTP sono ASCII: nomi accentati viaggiano percent-encoded.
|
|
55
|
+
if (config.developerName) {
|
|
56
|
+
this.identityHeaders['x-developer-name'] = encodeURIComponent(config.developerName);
|
|
57
|
+
if (config.developerEmail) {
|
|
58
|
+
this.identityHeaders['x-developer-email'] = encodeURIComponent(config.developerEmail);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
53
61
|
}
|
|
54
62
|
start() {
|
|
55
63
|
if (this.timer)
|
|
@@ -126,6 +134,7 @@ export class UsageForwarder {
|
|
|
126
134
|
'content-type': 'application/json',
|
|
127
135
|
authorization: `Bearer ${this.config.collectorToken}`,
|
|
128
136
|
'user-agent': CLIENT_USER_AGENT,
|
|
137
|
+
...this.identityHeaders,
|
|
129
138
|
},
|
|
130
139
|
body: JSON.stringify({ events }),
|
|
131
140
|
signal: AbortSignal.timeout(this.config.collectorTimeoutMs),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/collector/forwarder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAA0B,MAAM,kCAAkC,CAAC;AAEhG,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAQlD,wFAAwF;AACxF,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAChC,0EAA0E;AAC1E,MAAM,gBAAgB,GAAG,MAAM,CAAC;AAEhC;;;GAGG;AACH,MAAM,uBAAuB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAc9D,SAAS,KAAK,CAAI,KAAU,EAAE,IAAY;IACxC,MAAM,MAAM,GAAU,EAAE,CAAC;IACzB,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,IAAI,IAAI,EAAE,CAAC;QACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,cAAc;
|
|
1
|
+
{"version":3,"file":"forwarder.js","sourceRoot":"","sources":["../../src/collector/forwarder.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -25,6 +25,9 @@ export interface ClientConfig {
|
|
|
25
25
|
projectStickyTtlMs: number;
|
|
26
26
|
attributionTokens: Record<string, AttributionMapping>;
|
|
27
27
|
developerIdSalt: string;
|
|
28
|
+
/** Nome mostrato in dashboard al posto dello pseudonimo; assente = anonimo. */
|
|
29
|
+
developerName: string | undefined;
|
|
30
|
+
developerEmail: string | undefined;
|
|
28
31
|
flushIntervalMs: number;
|
|
29
32
|
flushMaxBatch: number;
|
|
30
33
|
}
|
package/dist/config.js
CHANGED
|
@@ -64,6 +64,8 @@ export function loadConfig(source = process.env) {
|
|
|
64
64
|
projectStickyTtlMs: intOption('PROJECT_STICKY_TTL_MS', 30 * 60_000),
|
|
65
65
|
attributionTokens: parseAttributionTokens(optional('ATTRIBUTION_TOKENS', '{}')),
|
|
66
66
|
developerIdSalt,
|
|
67
|
+
developerName: read('DEVELOPER_NAME'),
|
|
68
|
+
developerEmail: read('DEVELOPER_EMAIL'),
|
|
67
69
|
flushIntervalMs: intOption('FLUSH_INTERVAL_MS', 5000),
|
|
68
70
|
flushMaxBatch: intOption('FLUSH_MAX_BATCH', 100),
|
|
69
71
|
};
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACxG,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAsC9C,SAAS,sBAAsB,CAAC,GAAW;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACxC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAC;QAC7D,OAAO,MAA4C,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;IAC9D,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAAC,MAAM,GAAiB,OAAO,CAAC,GAAG;IAC3D,MAAM,IAAI,GAAG,CAAC,IAAY,EAAsB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC;IAErF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAU,EAAE;QACxC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;QAChE,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC;IACpF,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAU,EAAE;QAC3D,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IACrD,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAE,QAAgB,EAAY,EAAE,CAC9D,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;SACrB,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAEvC,MAAM,eAAe,GAAG,QAAQ,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;IACjF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,eAAe,KAAK,WAAW,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,yOAAyO,CAC1O,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC,CAAC;IACtE,IACE,YAAY,CAAC,UAAU,CAAC,SAAS,CAAC;QAClC,CAAC,sCAAsC,CAAC,IAAI,CAAC,YAAY,CAAC,EAC1D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,2FAA2F,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7B,IAAI,EAAE,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;QACnC,QAAQ,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;QACvC,eAAe,EAAE,QAAQ,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,OAAO,CACrF,MAAM,EACN,EAAE,CACH;QACD,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC;QAC9C,UAAU,EAAE,IAAI,CAAC,cAAc,CAAC;QAChC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC;QAClC,YAAY;QACZ,cAAc,EAAE,QAAQ,CAAC,iBAAiB,CAAC;QAC3C,kBAAkB,EAAE,SAAS,CAAC,sBAAsB,EAAE,MAAM,CAAC;QAC7D,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE,gBAAgB,EAAE,CAAC;QACrD,aAAa,EAAE,QAAQ,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,WAAW,EAAE;QACvE,iBAAiB,EAAE,QAAQ,CAAC,oBAAoB,EAAE,YAAY,CAAC;QAC/D,cAAc,EAAE,UAAU,CAAC,iBAAiB,EAAE,qBAAqB,EAAE,CAAC;QACtE,cAAc,EAAE,UAAU,CAAC,iBAAiB,EAAE,eAAe,CAAC;QAC9D,kBAAkB,EAAE,SAAS,CAAC,uBAAuB,EAAE,EAAE,GAAG,MAAM,CAAC;QACnE,iBAAiB,EAAE,sBAAsB,CAAC,QAAQ,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;QAC/E,eAAe;QACf,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACrC,cAAc,EAAE,IAAI,CAAC,iBAAiB,CAAC;QACvC,eAAe,EAAE,SAAS,CAAC,mBAAmB,EAAE,IAAI,CAAC;QACrD,aAAa,EAAE,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC;KACjD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAc,EAAE,IAAY;IACvD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrF,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;AAEvD,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAE/D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,SAAS,IAAI,CAAC;YAAE,SAAS;QAC7B,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,KAAK;YAAE,OAAO,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;IACtC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface Editor {
|
|
2
|
+
name: string;
|
|
3
|
+
settingsFile: string;
|
|
4
|
+
}
|
|
5
|
+
export declare function knownEditors(): Editor[];
|
|
6
|
+
/** Editor usati almeno una volta su questa macchina: hanno gia' la cartella dei dati utente. */
|
|
7
|
+
export declare function installedEditors(): Editor[];
|
|
8
|
+
export declare function editorSnippet(port: number): Record<string, string>;
|
|
9
|
+
export type ApplyResult = {
|
|
10
|
+
status: 'updated';
|
|
11
|
+
backup: string | undefined;
|
|
12
|
+
} | {
|
|
13
|
+
status: 'unparsable';
|
|
14
|
+
};
|
|
15
|
+
export declare function applyEditorSettings(editor: Editor, port: number): ApplyResult;
|
|
16
|
+
/** Valore di override letto dal file, senza `JSON.parse`: il file puo' contenere commenti. */
|
|
17
|
+
export declare function readOverride(editor: Editor): string | null | undefined;
|
|
18
|
+
export declare function pointsToProxy(value: string, port: number): boolean;
|
package/dist/editors.js
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { copyFileSync, existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
const OVERRIDE_KEY = 'github.copilot.advanced.debug.overrideCapiUrl';
|
|
5
|
+
const AUTH_TYPE_KEY = 'github.copilot.advanced.debug.overrideAuthType';
|
|
6
|
+
/**
|
|
7
|
+
* Editor derivati da VS Code: stessa estensione Copilot, stesse impostazioni,
|
|
8
|
+
* cambia solo la cartella dei dati utente. JetBrains, Eclipse, Xcode e Visual
|
|
9
|
+
* Studio usano il Copilot Language Server, che non ha un URL di override.
|
|
10
|
+
*/
|
|
11
|
+
const VSCODE_FAMILY = [
|
|
12
|
+
['VS Code', 'Code'],
|
|
13
|
+
['VS Code Insiders', 'Code - Insiders'],
|
|
14
|
+
['VSCodium', 'VSCodium'],
|
|
15
|
+
['Cursor', 'Cursor'],
|
|
16
|
+
['Windsurf', 'Windsurf'],
|
|
17
|
+
['Antigravity', 'Antigravity'],
|
|
18
|
+
];
|
|
19
|
+
function userDataRoot() {
|
|
20
|
+
if (process.platform === 'win32') {
|
|
21
|
+
return process.env.APPDATA?.trim() || join(homedir(), 'AppData', 'Roaming');
|
|
22
|
+
}
|
|
23
|
+
if (process.platform === 'darwin')
|
|
24
|
+
return join(homedir(), 'Library', 'Application Support');
|
|
25
|
+
return process.env.XDG_CONFIG_HOME?.trim() || join(homedir(), '.config');
|
|
26
|
+
}
|
|
27
|
+
export function knownEditors() {
|
|
28
|
+
const root = userDataRoot();
|
|
29
|
+
return VSCODE_FAMILY.map(([name, folder]) => ({
|
|
30
|
+
name,
|
|
31
|
+
settingsFile: join(root, folder, 'User', 'settings.json'),
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
/** Editor usati almeno una volta su questa macchina: hanno gia' la cartella dei dati utente. */
|
|
35
|
+
export function installedEditors() {
|
|
36
|
+
return knownEditors().filter((editor) => existsSync(dirname(dirname(editor.settingsFile))));
|
|
37
|
+
}
|
|
38
|
+
export function editorSnippet(port) {
|
|
39
|
+
return { [OVERRIDE_KEY]: `http://127.0.0.1:${port}`, [AUTH_TYPE_KEY]: 'token' };
|
|
40
|
+
}
|
|
41
|
+
export function applyEditorSettings(editor, port) {
|
|
42
|
+
const file = editor.settingsFile;
|
|
43
|
+
let current = {};
|
|
44
|
+
let backup;
|
|
45
|
+
try {
|
|
46
|
+
const raw = readFileSync(file, 'utf-8');
|
|
47
|
+
// `settings.json` ammette commenti e virgole finali: riscriverlo li distruggerebbe.
|
|
48
|
+
current = raw.trim().length === 0 ? {} : JSON.parse(raw);
|
|
49
|
+
backup = `${file}.bak`;
|
|
50
|
+
copyFileSync(file, backup);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
if (error.code !== 'ENOENT')
|
|
54
|
+
return { status: 'unparsable' };
|
|
55
|
+
}
|
|
56
|
+
mkdirSync(dirname(file), { recursive: true });
|
|
57
|
+
writeFileSync(file, `${JSON.stringify({ ...current, ...editorSnippet(port) }, null, 2)}\n`);
|
|
58
|
+
return { status: 'updated', backup };
|
|
59
|
+
}
|
|
60
|
+
/** Valore di override letto dal file, senza `JSON.parse`: il file puo' contenere commenti. */
|
|
61
|
+
export function readOverride(editor) {
|
|
62
|
+
let raw;
|
|
63
|
+
try {
|
|
64
|
+
raw = readFileSync(editor.settingsFile, 'utf-8');
|
|
65
|
+
}
|
|
66
|
+
catch {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
const match = new RegExp(`"${OVERRIDE_KEY.replace(/\./g, '\\.')}"\\s*:\\s*"([^"]*)"`).exec(raw);
|
|
70
|
+
return match ? (match[1] ?? '') : null;
|
|
71
|
+
}
|
|
72
|
+
export function pointsToProxy(value, port) {
|
|
73
|
+
return new RegExp(`^https?://(127\\.0\\.0\\.1|localhost):${port}/?$`).test(value);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=editors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editors.js","sourceRoot":"","sources":["../src/editors.ts"],"names":[],"mappings":"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"}
|
package/dist/paths.d.ts
CHANGED
|
@@ -8,5 +8,3 @@
|
|
|
8
8
|
export declare function configDir(): string;
|
|
9
9
|
export declare function configFile(): string;
|
|
10
10
|
export declare function defaultSpoolPath(): string;
|
|
11
|
-
/** Percorso del `settings.json` utente di VS Code, per la piattaforma corrente. */
|
|
12
|
-
export declare function vscodeSettingsFile(): string;
|
package/dist/paths.js
CHANGED
|
@@ -25,15 +25,4 @@ export function configFile() {
|
|
|
25
25
|
export function defaultSpoolPath() {
|
|
26
26
|
return join(configDir(), 'spool.jsonl');
|
|
27
27
|
}
|
|
28
|
-
/** Percorso del `settings.json` utente di VS Code, per la piattaforma corrente. */
|
|
29
|
-
export function vscodeSettingsFile() {
|
|
30
|
-
if (process.platform === 'win32') {
|
|
31
|
-
const appData = process.env.APPDATA?.trim() ?? join(homedir(), 'AppData', 'Roaming');
|
|
32
|
-
return join(appData, 'Code', 'User', 'settings.json');
|
|
33
|
-
}
|
|
34
|
-
if (process.platform === 'darwin') {
|
|
35
|
-
return join(homedir(), 'Library', 'Application Support', 'Code', 'User', 'settings.json');
|
|
36
|
-
}
|
|
37
|
-
return join(homedir(), '.config', 'Code', 'User', 'settings.json');
|
|
38
|
-
}
|
|
39
28
|
//# sourceMappingURL=paths.js.map
|
package/dist/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAChD,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../src/paths.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,SAAS;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,EAAE,CAAC;IACxD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAE9B,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAC5C,IAAI,OAAO;YAAE,OAAO,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC;IAChD,OAAO,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,eAAe,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,CAAC,SAAS,EAAE,EAAE,aAAa,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export interface DeveloperIdentity {
|
|
2
|
+
name?: string;
|
|
3
|
+
email?: string;
|
|
4
|
+
}
|
|
5
|
+
/** Nome ed email con cui il developer firma i commit: il default piu' ragionevole per la dashboard. */
|
|
6
|
+
export declare function gitIdentity(): DeveloperIdentity;
|
|
7
|
+
export type PortStatus = 'free' | 'proxy' | 'busy';
|
|
8
|
+
/** Distingue una porta libera da una gia' occupata dal proxy stesso o da altro. */
|
|
9
|
+
export declare function portStatus(port: number, host: string): Promise<PortStatus>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { execFileSync } from 'node:child_process';
|
|
2
|
+
import { createServer } from 'node:net';
|
|
3
|
+
function gitConfig(key) {
|
|
4
|
+
try {
|
|
5
|
+
const value = execFileSync('git', ['config', '--global', key], {
|
|
6
|
+
encoding: 'utf-8',
|
|
7
|
+
stdio: ['ignore', 'pipe', 'ignore'],
|
|
8
|
+
timeout: 2000,
|
|
9
|
+
}).trim();
|
|
10
|
+
return value.length > 0 ? value : undefined;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
/** Nome ed email con cui il developer firma i commit: il default piu' ragionevole per la dashboard. */
|
|
17
|
+
export function gitIdentity() {
|
|
18
|
+
return { name: gitConfig('user.name'), email: gitConfig('user.email') };
|
|
19
|
+
}
|
|
20
|
+
/** Distingue una porta libera da una gia' occupata dal proxy stesso o da altro. */
|
|
21
|
+
export async function portStatus(port, host) {
|
|
22
|
+
const free = await new Promise((resolve) => {
|
|
23
|
+
const server = createServer();
|
|
24
|
+
server.once('error', () => resolve(false));
|
|
25
|
+
server.listen(port, host, () => server.close(() => resolve(true)));
|
|
26
|
+
});
|
|
27
|
+
if (free)
|
|
28
|
+
return 'free';
|
|
29
|
+
try {
|
|
30
|
+
const response = await fetch(`http://127.0.0.1:${port}/_health`, {
|
|
31
|
+
signal: AbortSignal.timeout(2000),
|
|
32
|
+
});
|
|
33
|
+
const body = (await response.json());
|
|
34
|
+
return body.upstream !== undefined && body.collector !== undefined ? 'proxy' : 'busy';
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
return 'busy';
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=setupHelpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupHelpers.js","sourceRoot":"","sources":["../src/setupHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAOxC,SAAS,SAAS,CAAC,GAAW;IAC5B,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE;YAC7D,QAAQ,EAAE,OAAO;YACjB,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC;YACnC,OAAO,EAAE,IAAI;SACd,CAAC,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,uGAAuG;AACvG,MAAM,UAAU,WAAW;IACzB,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC;AAC1E,CAAC;AAID,mFAAmF;AACnF,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAAY,EAAE,IAAY;IACzD,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,EAAE;QAClD,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IACH,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IAExB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oBAAoB,IAAI,UAAU,EAAE;YAC/D,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC;SAClC,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAgD,CAAC;QACpF,OAAO,IAAI,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC;IAChB,CAAC;AACH,CAAC"}
|