@onroad/core 4.0.0-alpha.24 → 4.0.0-alpha.26
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.
|
@@ -6,8 +6,12 @@ export interface DevToolsConfig {
|
|
|
6
6
|
instanceId: string;
|
|
7
7
|
/** GCS bucket for intermediate dump storage */
|
|
8
8
|
bucketName: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Service name used to identify which databases belong to this API.
|
|
11
|
+
* Production databases follow the pattern `{tenant}_{serviceName}`
|
|
12
|
+
* e.g. serviceName = "manutencao" matches "cationbrasil_manutencao"
|
|
13
|
+
*/
|
|
14
|
+
serviceName: string;
|
|
11
15
|
/** Local database connection (the Docker dev DB) */
|
|
12
16
|
localDb: {
|
|
13
17
|
host: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsController.d.ts","sourceRoot":"","sources":["../../src/dev/DevToolsController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAQhD,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB
|
|
1
|
+
{"version":3,"file":"DevToolsController.d.ts","sourceRoot":"","sources":["../../src/dev/DevToolsController.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAQhD,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;QACZ,QAAQ,EAAE,MAAM,CAAA;QAChB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACrC;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAQrB;gBAEW,MAAM,EAAE,cAAc;IAMlC,eAAe,GAAU,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CAUpE;IAED,aAAa,GAAU,MAAM,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CAsClE;IAED,gBAAgB,GAAU,KAAK,OAAO,EAAE,KAAK,QAAQ,KAAG,OAAO,CAAC,IAAI,CAAC,CA8BpE;IAED,aAAa,GACX,MAAM,OAAO,EACb,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAEf;IAED,mBAAmB,GACjB,MAAM,OAAO,EACb,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CA2Bf;IAED,eAAe,GACb,MAAM,OAAO,EACb,KAAK,QAAQ,KACZ,OAAO,CAAC,IAAI,CAAC,CAEf;YAIa,UAAU;IAqGxB,OAAO,CAAC,SAAS;CAwMlB"}
|
|
@@ -30,38 +30,58 @@ export class DevToolsController {
|
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
32
|
listDatabases = async (_req, res) => {
|
|
33
|
-
const { projectId, instanceId } = this.config;
|
|
33
|
+
const { projectId, instanceId, serviceName } = this.config;
|
|
34
34
|
try {
|
|
35
35
|
const { stdout } = await execAsync("gcloud sql databases list --instance=" +
|
|
36
36
|
instanceId +
|
|
37
37
|
" --project=" +
|
|
38
38
|
projectId +
|
|
39
39
|
' --format="json"', { timeout: 30_000 });
|
|
40
|
-
const
|
|
40
|
+
const allDbs = JSON.parse(stdout)
|
|
41
41
|
.map((d) => d.name)
|
|
42
42
|
.filter((n) => !["postgres", "template0", "template1", "cloudsqladmin"].includes(n));
|
|
43
|
-
|
|
43
|
+
// Extract tenant databases matching _{serviceName} suffix
|
|
44
|
+
const suffix = "_" + serviceName;
|
|
45
|
+
const tenantDbs = allDbs
|
|
46
|
+
.filter((name) => name.endsWith(suffix))
|
|
47
|
+
.map((name) => ({
|
|
48
|
+
database: name,
|
|
49
|
+
tenant: name.slice(0, name.length - suffix.length),
|
|
50
|
+
}))
|
|
51
|
+
.sort((a, b) => a.tenant.localeCompare(b.tenant));
|
|
52
|
+
// Include any remaining databases as "other"
|
|
53
|
+
const matched = new Set(tenantDbs.map((t) => t.database));
|
|
54
|
+
const otherDbs = allDbs.filter((n) => !matched.has(n));
|
|
55
|
+
res.json({ success: true, serviceName, tenantDbs, otherDbs });
|
|
44
56
|
}
|
|
45
57
|
catch (error) {
|
|
46
58
|
res.status(500).json({ success: false, error: error.message });
|
|
47
59
|
}
|
|
48
60
|
};
|
|
49
61
|
exportAndRestore = async (req, res) => {
|
|
50
|
-
const { database, dropExisting } = req.body;
|
|
51
|
-
|
|
62
|
+
const { database, tenant, dropExisting } = req.body;
|
|
63
|
+
if (!database) {
|
|
64
|
+
res.status(400).json({ success: false, error: "Selecione um tenant/banco." });
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
52
67
|
if (this.currentRestore.status === "running") {
|
|
53
68
|
res
|
|
54
69
|
.status(409)
|
|
55
70
|
.json({ success: false, error: "Já existe um restore em andamento." });
|
|
56
71
|
return;
|
|
57
72
|
}
|
|
58
|
-
this.currentRestore = {
|
|
59
|
-
|
|
60
|
-
|
|
73
|
+
this.currentRestore = {
|
|
74
|
+
status: "running",
|
|
75
|
+
step: "Iniciando...",
|
|
76
|
+
tenant: tenant || database,
|
|
77
|
+
};
|
|
78
|
+
res.json({ success: true, message: "Restore iniciado.", database, tenant });
|
|
79
|
+
this.runRestore(database, !!dropExisting).catch((err) => {
|
|
61
80
|
this.currentRestore = {
|
|
62
81
|
status: "error",
|
|
63
82
|
step: "Falhou",
|
|
64
83
|
error: err.message,
|
|
84
|
+
tenant: tenant || database,
|
|
65
85
|
};
|
|
66
86
|
});
|
|
67
87
|
};
|
|
@@ -162,6 +182,7 @@ export class DevToolsController {
|
|
|
162
182
|
}
|
|
163
183
|
catch (error) {
|
|
164
184
|
this.currentRestore = {
|
|
185
|
+
...this.currentRestore,
|
|
165
186
|
status: "error",
|
|
166
187
|
step: "Falhou",
|
|
167
188
|
error: error.message,
|
|
@@ -196,7 +217,23 @@ export class DevToolsController {
|
|
|
196
217
|
".btn-outline { background: transparent; border: 1px solid #475569; color: #cbd5e1; }" +
|
|
197
218
|
".btn-outline:hover:not(:disabled) { background: #334155; }" +
|
|
198
219
|
".btn-sm { padding: 6px 14px; font-size: 12px; }" +
|
|
199
|
-
"
|
|
220
|
+
".tenant-list { list-style: none; margin: 0; padding: 0; }" +
|
|
221
|
+
".tenant-item { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; " +
|
|
222
|
+
"background: #0f172a; border: 1px solid #334155; border-radius: 8px; margin-bottom: 8px; cursor: pointer; transition: all 0.15s; }" +
|
|
223
|
+
".tenant-item:hover { border-color: #2563eb; background: #1a2744; }" +
|
|
224
|
+
".tenant-item.selected { border-color: #2563eb; background: #1e3a5f; box-shadow: 0 0 0 1px #2563eb; }" +
|
|
225
|
+
".tenant-name { font-size: 15px; font-weight: 600; color: #e2e8f0; }" +
|
|
226
|
+
".tenant-db { font-size: 12px; color: #64748b; font-family: 'SF Mono', Monaco, monospace; margin-top: 2px; }" +
|
|
227
|
+
".tenant-check { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #475569; " +
|
|
228
|
+
"display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: all 0.15s; }" +
|
|
229
|
+
".tenant-item.selected .tenant-check { border-color: #2563eb; background: #2563eb; }" +
|
|
230
|
+
".tenant-item.selected .tenant-check::after { content: ''; display: block; width: 6px; height: 6px; " +
|
|
231
|
+
"background: white; border-radius: 50%; }" +
|
|
232
|
+
".loading-tenants { text-align: center; padding: 20px; color: #64748b; font-size: 13px; }" +
|
|
233
|
+
".selected-tenant-banner { display: none; padding: 10px 16px; background: #1e3a5f; border: 1px solid #2563eb; " +
|
|
234
|
+
"border-radius: 8px; margin-bottom: 12px; font-size: 13px; color: #93c5fd; }" +
|
|
235
|
+
".selected-tenant-banner.active { display: flex; align-items: center; gap: 8px; }" +
|
|
236
|
+
".selected-tenant-banner strong { color: #e2e8f0; }" +
|
|
200
237
|
".progress { margin-top: 16px; padding: 14px; background: #0f172a; border-radius: 8px; border: 1px solid #334155; display: none; }" +
|
|
201
238
|
".progress.active { display: block; }" +
|
|
202
239
|
".progress .step { color: #38bdf8; font-weight: 600; font-size: 13px; }" +
|
|
@@ -204,12 +241,14 @@ export class DevToolsController {
|
|
|
204
241
|
".progress-bar { height: 4px; background: #334155; border-radius: 2px; margin-top: 10px; overflow: hidden; }" +
|
|
205
242
|
".progress-bar-fill { height: 100%; background: #2563eb; border-radius: 2px; transition: width 0.5s; }" +
|
|
206
243
|
".actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 12px; }" +
|
|
207
|
-
|
|
244
|
+
".checkbox-label { font-size: 13px; color: #94a3b8; display: flex; align-items: center; gap: 6px; cursor: pointer; }" +
|
|
208
245
|
".row { display: flex; gap: 8px; align-items: center; }" +
|
|
209
|
-
".separator { border-top: 1px solid #334155; margin: 16px 0; }"
|
|
246
|
+
".separator { border-top: 1px solid #334155; margin: 16px 0; }" +
|
|
247
|
+
".empty-msg { color: #64748b; font-size: 13px; text-align: center; padding: 16px; }" +
|
|
248
|
+
".section-label { font-size: 12px; color: #64748b; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 8px; }";
|
|
210
249
|
var body = '<div class="container">' +
|
|
211
250
|
"<h1>OnRoad Dev Console</h1>" +
|
|
212
|
-
'<p class="subtitle">
|
|
251
|
+
'<p class="subtitle">' + cfg.serviceName + ' — Restaurar banco de produção para desenvolver localmente</p>' +
|
|
213
252
|
// Auth card
|
|
214
253
|
'<div class="card"><h2>Cloud SDK</h2>' +
|
|
215
254
|
'<div class="row">' +
|
|
@@ -225,23 +264,28 @@ export class DevToolsController {
|
|
|
225
264
|
"</dl>" +
|
|
226
265
|
'<a href="/dev/db/backup/local" class="btn btn-outline btn-sm">Exportar SQL Local</a>' +
|
|
227
266
|
"</div>" +
|
|
228
|
-
//
|
|
229
|
-
'<div class="card"><h2>
|
|
267
|
+
// Tenant selection card
|
|
268
|
+
'<div class="card"><h2>Selecionar Tenant</h2>' +
|
|
230
269
|
'<p style="font-size:13px; color:#64748b; margin-bottom:12px;">' +
|
|
231
270
|
'Instância <strong style="color:#cbd5e1;">' + cfg.instanceId + "</strong> " +
|
|
232
|
-
'
|
|
233
|
-
"
|
|
234
|
-
'<
|
|
235
|
-
'<div class="
|
|
236
|
-
'<
|
|
237
|
-
|
|
271
|
+
'— serviço <strong style="color:#38bdf8;">' + cfg.serviceName + "</strong></p>" +
|
|
272
|
+
'<div id="tenant-loading" class="loading-tenants">Carregando tenants...</div>' +
|
|
273
|
+
'<ul class="tenant-list" id="tenant-list"></ul>' +
|
|
274
|
+
'<div id="tenant-empty" class="empty-msg" style="display:none;">Nenhum banco encontrado para o serviço "' + cfg.serviceName + '"</div>' +
|
|
275
|
+
'<button onclick="loadTenants()" class="btn btn-outline btn-sm" style="margin-top:8px;" id="btn-refresh">Atualizar lista</button>' +
|
|
276
|
+
"</div>" +
|
|
277
|
+
// Restore card
|
|
278
|
+
'<div class="card"><h2>Restaurar</h2>' +
|
|
279
|
+
'<div id="selected-banner" class="selected-tenant-banner">' +
|
|
280
|
+
'Tenant selecionado: <strong id="banner-tenant"></strong> ' +
|
|
281
|
+
'— banco: <strong id="banner-db"></strong>' +
|
|
238
282
|
"</div>" +
|
|
239
|
-
'<div
|
|
283
|
+
'<div id="no-selection" style="font-size:13px; color:#64748b;">Selecione um tenant acima para restaurar.</div>' +
|
|
240
284
|
'<div class="actions">' +
|
|
241
285
|
'<label class="checkbox-label"><input type="checkbox" id="drop-check" checked> Limpar banco local antes de restaurar</label>' +
|
|
242
286
|
"</div>" +
|
|
243
287
|
'<div class="actions">' +
|
|
244
|
-
'<button onclick="startRestore()" class="btn btn-primary" id="btn-restore">Restaurar Agora</button>' +
|
|
288
|
+
'<button onclick="startRestore()" class="btn btn-primary" id="btn-restore" disabled>Restaurar Agora</button>' +
|
|
245
289
|
"</div>" +
|
|
246
290
|
'<div class="progress" id="progress">' +
|
|
247
291
|
'<div class="step" id="progress-step">Preparando...</div>' +
|
|
@@ -249,48 +293,94 @@ export class DevToolsController {
|
|
|
249
293
|
'<div class="progress-bar"><div class="progress-bar-fill" id="progress-fill" style="width:0%"></div></div>' +
|
|
250
294
|
"</div></div>" +
|
|
251
295
|
"</div>";
|
|
252
|
-
var js = "
|
|
296
|
+
var js = "var selectedTenant=null;var selectedDb=null;" +
|
|
297
|
+
// Auth check
|
|
298
|
+
"async function checkAuth(){" +
|
|
253
299
|
'var b=document.getElementById("auth-badge"),a=document.getElementById("auth-account");' +
|
|
254
300
|
'try{var r=await fetch("/dev/db/auth/status");var d=await r.json();' +
|
|
255
|
-
'if(d.authenticated){b.className="badge badge-ok";b.textContent="autenticado";a.textContent=d.account;}' +
|
|
256
|
-
'else{b.className="badge badge-err";b.textContent="não autenticado";a.textContent="Execute: gcloud auth login";
|
|
257
|
-
'
|
|
301
|
+
'if(d.authenticated){b.className="badge badge-ok";b.textContent="autenticado";a.textContent=d.account;loadTenants();}' +
|
|
302
|
+
'else{b.className="badge badge-err";b.textContent="não autenticado";a.textContent="Execute: gcloud auth login";' +
|
|
303
|
+
'document.getElementById("tenant-loading").textContent="Autentique no gcloud primeiro.";}}' +
|
|
304
|
+
'catch(e){b.className="badge badge-err";b.textContent="erro";}}' +
|
|
258
305
|
"checkAuth();" +
|
|
259
|
-
|
|
260
|
-
|
|
306
|
+
// Load tenants
|
|
307
|
+
"async function loadTenants(){" +
|
|
308
|
+
'var list=document.getElementById("tenant-list");' +
|
|
309
|
+
'var loading=document.getElementById("tenant-loading");' +
|
|
310
|
+
'var empty=document.getElementById("tenant-empty");' +
|
|
311
|
+
"loading.style.display='block';list.innerHTML='';empty.style.display='none';" +
|
|
261
312
|
'try{var r=await fetch("/dev/db/databases");var d=await r.json();' +
|
|
262
|
-
"
|
|
263
|
-
"
|
|
264
|
-
|
|
313
|
+
"loading.style.display='none';" +
|
|
314
|
+
"if(!d.success){list.innerHTML='<li class=\"empty-msg\">Erro: '+d.error+'</li>';return;}" +
|
|
315
|
+
"if(d.tenantDbs.length===0){empty.style.display='block';return;}" +
|
|
316
|
+
"d.tenantDbs.forEach(function(t){" +
|
|
317
|
+
"var li=document.createElement('li');" +
|
|
318
|
+
"li.className='tenant-item';" +
|
|
319
|
+
"if(selectedDb===t.database)li.className+=' selected';" +
|
|
320
|
+
"li.onclick=function(){selectTenant(t.tenant,t.database);};" +
|
|
321
|
+
"li.innerHTML='<div><div class=\"tenant-name\">'+t.tenant+'</div>" +
|
|
322
|
+
"<div class=\"tenant-db\">'+t.database+'</div></div>" +
|
|
323
|
+
"<div class=\"tenant-check\"></div>';" +
|
|
324
|
+
"list.appendChild(li);});" +
|
|
325
|
+
// Other databases
|
|
326
|
+
"if(d.otherDbs&&d.otherDbs.length>0){" +
|
|
327
|
+
"var sep=document.createElement('li');" +
|
|
328
|
+
"sep.className='section-label';sep.style.marginTop='12px';" +
|
|
329
|
+
"sep.textContent='Outros bancos (sem tenant)';list.appendChild(sep);" +
|
|
330
|
+
"d.otherDbs.forEach(function(db){" +
|
|
331
|
+
"var li=document.createElement('li');li.className='tenant-item';" +
|
|
332
|
+
"if(selectedDb===db)li.className+=' selected';" +
|
|
333
|
+
"li.onclick=function(){selectTenant(db,db);};" +
|
|
334
|
+
"li.innerHTML='<div><div class=\"tenant-name\">'+db+'</div>" +
|
|
335
|
+
"<div class=\"tenant-db\">banco avulso</div></div>" +
|
|
336
|
+
"<div class=\"tenant-check\"></div>';" +
|
|
337
|
+
"list.appendChild(li);});}" +
|
|
338
|
+
'}catch(e){loading.style.display="none";list.innerHTML="<li class=\'empty-msg\'>Erro: "+e.message+"</li>";}}' +
|
|
339
|
+
// Select tenant
|
|
340
|
+
"function selectTenant(tenant,db){" +
|
|
341
|
+
"selectedTenant=tenant;selectedDb=db;" +
|
|
342
|
+
"document.querySelectorAll('.tenant-item').forEach(function(el){el.classList.remove('selected');});" +
|
|
343
|
+
"event.currentTarget.classList.add('selected');" +
|
|
344
|
+
'var banner=document.getElementById("selected-banner");' +
|
|
345
|
+
'var noSel=document.getElementById("no-selection");' +
|
|
346
|
+
'document.getElementById("banner-tenant").textContent=tenant;' +
|
|
347
|
+
'document.getElementById("banner-db").textContent=db;' +
|
|
348
|
+
"banner.classList.add('active');noSel.style.display='none';" +
|
|
349
|
+
'document.getElementById("btn-restore").disabled=false;}' +
|
|
350
|
+
// Restore
|
|
265
351
|
"var pollId=null;" +
|
|
266
352
|
"async function startRestore(){" +
|
|
267
|
-
'
|
|
353
|
+
"if(!selectedDb){alert('Selecione um tenant primeiro.');return;}" +
|
|
268
354
|
'var drop=document.getElementById("drop-check").checked;' +
|
|
269
355
|
'var btn=document.getElementById("btn-restore");' +
|
|
270
|
-
"if(!confirm(
|
|
356
|
+
"if(!confirm('Restaurar tenant \"'+selectedTenant+'\" ('+selectedDb+') para o banco local?'+(drop?' O banco local será APAGADO primeiro.':'')))return;" +
|
|
271
357
|
'btn.disabled=true;document.getElementById("progress").classList.add("active");' +
|
|
272
358
|
'document.getElementById("progress-fill").style.width="5%";' +
|
|
273
359
|
'document.getElementById("progress-fill").style.background="#2563eb";' +
|
|
274
360
|
'document.getElementById("progress-step").style.color="#38bdf8";' +
|
|
361
|
+
'document.getElementById("progress-substep").textContent="Tenant: "+selectedTenant;' +
|
|
275
362
|
'try{var r=await fetch("/dev/db/restore",{method:"POST",headers:{"Content-Type":"application/json"},' +
|
|
276
|
-
"body:JSON.stringify({database:
|
|
363
|
+
"body:JSON.stringify({database:selectedDb,tenant:selectedTenant,dropExisting:drop})});var d=await r.json();" +
|
|
277
364
|
'if(!d.success){alert("Erro: "+d.error);btn.disabled=false;return;}' +
|
|
278
365
|
"pollId=setInterval(pollStatus,2000);" +
|
|
279
366
|
'}catch(e){alert("Falha: "+e.message);btn.disabled=false;}}' +
|
|
367
|
+
// Poll status
|
|
280
368
|
"async function pollStatus(){" +
|
|
281
369
|
'try{var r=await fetch("/dev/db/restore/status");var d=await r.json();' +
|
|
282
370
|
'var s=document.getElementById("progress-step");var sub=document.getElementById("progress-substep");' +
|
|
283
371
|
'var fill=document.getElementById("progress-fill");var btn=document.getElementById("btn-restore");' +
|
|
284
372
|
"s.textContent=d.step;" +
|
|
373
|
+
"if(d.tenant){sub.textContent='Tenant: '+d.tenant;}" +
|
|
285
374
|
'if(d.status==="running"){var m={"Exportando":20,"Baixando":40,"Recriando":55,"Restaurando":70,"Rodando":90};' +
|
|
286
|
-
"var pct=10;for(var k in m){if(d.step.indexOf(k)>=0)pct=m[k];}fill.style.width=pct
|
|
375
|
+
"var pct=10;for(var k in m){if(d.step.indexOf(k)>=0)pct=m[k];}fill.style.width=pct+'%';}" +
|
|
287
376
|
'else if(d.status==="done"){fill.style.width="100%";fill.style.background="#22c55e";' +
|
|
288
|
-
's.style.color="#22c55e";sub.textContent="
|
|
377
|
+
's.style.color="#22c55e";sub.textContent="Tenant "+d.tenant+" restaurado com sucesso!";clearInterval(pollId);btn.disabled=false;}' +
|
|
289
378
|
'else if(d.status==="error"){fill.style.width="100%";fill.style.background="#ef4444";' +
|
|
290
379
|
's.style.color="#ef4444";sub.textContent=d.error||"Erro desconhecido";clearInterval(pollId);btn.disabled=false;}' +
|
|
291
380
|
"}catch(e){}}";
|
|
292
381
|
return ('<!DOCTYPE html><html lang="pt-br"><head><meta charset="UTF-8">' +
|
|
293
|
-
"<title>OnRoad Dev Console</title>" +
|
|
382
|
+
"<title>OnRoad Dev Console — " + cfg.serviceName + "</title>" +
|
|
383
|
+
'<meta name="viewport" content="width=device-width, initial-scale=1">' +
|
|
294
384
|
"<style>" + css + "</style></head>" +
|
|
295
385
|
"<body>" + body +
|
|
296
386
|
"<script>" + js + "</script></body></html>");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DevToolsController.js","sourceRoot":"","sources":["../../src/dev/DevToolsController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"DevToolsController.js","sourceRoot":"","sources":["../../src/dev/DevToolsController.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,MAAM,IAAI,CAAA;AACnB,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;AA2BjC;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAgB;IACtB,cAAc,GAKlB;QACF,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,EAAE;KACT,CAAA;IAED,YAAY,MAAsB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;IAED,wDAAwD;IAExD,eAAe,GAAG,KAAK,EAAE,IAAa,EAAE,GAAa,EAAiB,EAAE;QACtE,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,gCAAgC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;YACtE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,iCAAiC,EAAE;gBACpE,OAAO,EAAE,KAAK;aACf,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;QAC3D,CAAC;QAAC,MAAM,CAAC;YACP,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;QACnD,CAAC;IACH,CAAC,CAAA;IAED,aAAa,GAAG,KAAK,EAAE,IAAa,EAAE,GAAa,EAAiB,EAAE;QACpE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC1D,IAAI,CAAC;YACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAChC,uCAAuC;gBACrC,UAAU;gBACV,aAAa;gBACb,SAAS;gBACT,kBAAkB,EACpB,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAA;YACD,MAAM,MAAM,GAAa,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;iBACxC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBACvB,MAAM,CACL,CAAC,CAAS,EAAE,EAAE,CACZ,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CACvE,CAAA;YAEH,0DAA0D;YAC1D,MAAM,MAAM,GAAG,GAAG,GAAG,WAAW,CAAA;YAChC,MAAM,SAAS,GAAG,MAAM;iBACrB,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;iBAC/C,GAAG,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,CAAC;gBACtB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;aACnD,CAAC,CAAC;iBACF,IAAI,CAAC,CAAC,CAAqB,EAAE,CAAqB,EAAE,EAAE,CACrD,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CACjC,CAAA;YAEH,6CAA6C;YAC7C,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAuB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;YAC/E,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;YAE9D,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/D,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAA;IAED,gBAAgB,GAAG,KAAK,EAAE,GAAY,EAAE,GAAa,EAAiB,EAAE;QACtE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,GAAG,CAAC,IAAI,CAAA;QAEnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,4BAA4B,EAAE,CAAC,CAAA;YAC7E,OAAM;QACR,CAAC;QAED,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC7C,GAAG;iBACA,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,oCAAoC,EAAE,CAAC,CAAA;YACxE,OAAM;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG;YACpB,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,MAAM,IAAI,QAAQ;SAC3B,CAAA;QACD,GAAG,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QAE3E,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACtD,IAAI,CAAC,cAAc,GAAG;gBACpB,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,GAAG,CAAC,OAAO;gBAClB,MAAM,EAAE,MAAM,IAAI,QAAQ;aAC3B,CAAA;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;IAED,aAAa,GAAG,KAAK,EACnB,IAAa,EACb,GAAa,EACE,EAAE;QACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/B,CAAC,CAAA;IAED,mBAAmB,GAAG,KAAK,EACzB,IAAa,EACb,GAAa,EACE,EAAE;QACjB,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAC/B,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,eAAe,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,GAAG,MAAM,CAAA;QACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAE5C,IAAI,CAAC;YACH,MAAM,GAAG,GACP,cAAc;gBACd,OAAO,CAAC,QAAQ;gBAChB,eAAe;gBACf,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,QAAQ;gBAChB,UAAU;gBACV,QAAQ,CAAA;YACV,MAAM,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAA;YAC1C,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE;gBACpC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;oBAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;YACtD,CAAC,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAA;IAED,eAAe,GAAG,KAAK,EACrB,IAAa,EACb,GAAa,EACE,EAAE;QACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5B,CAAC,CAAA;IAED,sCAAsC;IAE9B,KAAK,CAAC,UAAU,CACtB,QAAgB,EAChB,YAAqB;QAErB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,CAAA;QAClE,MAAM,YAAY,GAAG,UAAU,GAAG,QAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAA;QACtE,MAAM,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,GAAG,GAAG,YAAY,CAAA;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QAEjD,IAAI,CAAC;YACH,mCAAmC;YACnC,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,aAAa,GAAG,QAAQ,GAAG,kBAAkB,CAAA;YACxE,MAAM,SAAS,CACb,wBAAwB;gBACtB,UAAU;gBACV,GAAG;gBACH,OAAO;gBACP,cAAc;gBACd,QAAQ;gBACR,aAAa;gBACb,SAAS;gBACT,UAAU,EACZ,EAAE,OAAO,EAAE,OAAO,EAAE,CACrB,CAAA;YAED,wBAAwB;YACxB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,yBAAyB,CAAA;YACpD,MAAM,SAAS,CAAC,oBAAoB,GAAG,OAAO,GAAG,GAAG,GAAG,SAAS,EAAE;gBAChE,OAAO,EAAE,OAAO;aACjB,CAAC,CAAA;YAEF,oCAAoC;YACpC,SAAS,CAAC,oBAAoB,GAAG,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;YAEzD,+BAA+B;YAC/B,IAAI,YAAY,EAAE,CAAC;gBACjB,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,0BAA0B,CAAA;gBACrD,MAAM,KAAK,GAAG,cAAc,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAA;gBACrD,MAAM,MAAM,GACV,KAAK,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAA;gBAEtE,+BAA+B;gBAC/B,MAAM,SAAS,CACb,KAAK;oBACH,QAAQ;oBACR,MAAM;oBACN,4FAA4F;oBAC5F,OAAO,CAAC,QAAQ;oBAChB,kCAAkC,EACpC,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;gBAEjB,MAAM,SAAS,CACb,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,GAAG,OAAO,CAAC,QAAQ,EAChE,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAA;gBACD,MAAM,SAAS,CACb,KAAK,GAAG,YAAY,GAAG,MAAM,GAAG,GAAG,GAAG,OAAO,CAAC,QAAQ,EACtD,EAAE,OAAO,EAAE,MAAM,EAAE,CACpB,CAAA;YACH,CAAC;YAED,qCAAqC;YACrC,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,oCAAoC,CAAA;YAC/D,MAAM,SAAS,CACb,cAAc;gBACZ,OAAO,CAAC,QAAQ;gBAChB,YAAY;gBACZ,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,IAAI;gBACZ,MAAM;gBACN,OAAO,CAAC,QAAQ;gBAChB,MAAM;gBACN,SAAS,EACX,EAAE,OAAO,EAAE,OAAO,EAAE,CACrB,CAAA;YAED,qBAAqB;YACrB,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;gBAC/B,IAAI,CAAC,cAAc,CAAC,IAAI,GAAG,uBAAuB,CAAA;gBAClD,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAA;YACpC,CAAC;YAED,IAAI,CAAC,cAAc,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAA;QACrE,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,GAAG;gBACpB,GAAG,IAAI,CAAC,cAAc;gBACtB,MAAM,EAAE,OAAO;gBACf,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,KAAK,CAAC,OAAO;aACrB,CAAA;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;QACxD,CAAC;IACH,CAAC;IAED,2EAA2E;IAEnE,SAAS;QACf,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,CAAA;QAErB,IAAI,GAAG,GACL,sDAAsD;YACtD,iKAAiK;YACjK,kDAAkD;YAClD,6DAA6D;YAC7D,qEAAqE;YACrE,oHAAoH;YACpH,sHAAsH;YACtH,gHAAgH;YAChH,oDAAoD;YACpD,qDAAqD;YACrD,sDAAsD;YACtD,iHAAiH;YACjH,mCAAmC;YACnC,8EAA8E;YAC9E,2IAA2I;YAC3I,sDAAsD;YACtD,qDAAqD;YACrD,4DAA4D;YAC5D,sFAAsF;YACtF,4DAA4D;YAC5D,iDAAiD;YACjD,2DAA2D;YAC3D,yGAAyG;YACvG,mIAAmI;YACrI,oEAAoE;YACpE,sGAAsG;YACtG,qEAAqE;YACrE,6GAA6G;YAC7G,4FAA4F;YAC1F,uGAAuG;YACzG,qFAAqF;YACrF,qGAAqG;YACnG,0CAA0C;YAC5C,0FAA0F;YAC1F,+GAA+G;YAC7G,6EAA6E;YAC/E,kFAAkF;YAClF,oDAAoD;YACpD,mIAAmI;YACnI,sCAAsC;YACtC,wEAAwE;YACxE,0EAA0E;YAC1E,6GAA6G;YAC7G,uGAAuG;YACvG,gGAAgG;YAChG,qHAAqH;YACrH,wDAAwD;YACxD,+DAA+D;YAC/D,oFAAoF;YACpF,2HAA2H,CAAA;QAE7H,IAAI,IAAI,GACN,yBAAyB;YACzB,6BAA6B;YAC7B,sBAAsB,GAAG,GAAG,CAAC,WAAW,GAAG,gEAAgE;YAC3G,YAAY;YACZ,sCAAsC;YACtC,mBAAmB;YACnB,sEAAsE;YACtE,wEAAwE;YACxE,cAAc;YACd,gBAAgB;YAChB,wCAAwC;YACxC,wBAAwB;YACxB,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO;YACzE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,GAAG,OAAO;YACxD,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,GAAG,OAAO;YAChD,OAAO;YACP,sFAAsF;YACtF,QAAQ;YACR,wBAAwB;YACxB,8CAA8C;YAC9C,gEAAgE;YAChE,2CAA2C,GAAG,GAAG,CAAC,UAAU,GAAG,YAAY;YAC3E,2CAA2C,GAAG,GAAG,CAAC,WAAW,GAAG,eAAe;YAC/E,8EAA8E;YAC9E,gDAAgD;YAChD,yGAAyG,GAAG,GAAG,CAAC,WAAW,GAAG,SAAS;YACvI,kIAAkI;YAClI,QAAQ;YACR,eAAe;YACf,sCAAsC;YACtC,2DAA2D;YAC3D,2DAA2D;YAC3D,2CAA2C;YAC3C,QAAQ;YACR,+GAA+G;YAC/G,uBAAuB;YACvB,6HAA6H;YAC7H,QAAQ;YACR,uBAAuB;YACvB,6GAA6G;YAC7G,QAAQ;YACR,sCAAsC;YACtC,0DAA0D;YAC1D,mDAAmD;YACnD,2GAA2G;YAC3G,cAAc;YACd,QAAQ,CAAA;QAEV,IAAI,EAAE,GACJ,8CAA8C;YAC9C,aAAa;YACb,6BAA6B;YAC7B,wFAAwF;YACxF,oEAAoE;YACpE,sHAAsH;YACtH,gHAAgH;YAChH,2FAA2F;YAC3F,gEAAgE;YAChE,cAAc;YACd,eAAe;YACf,+BAA+B;YAC/B,kDAAkD;YAClD,wDAAwD;YACxD,oDAAoD;YACpD,6EAA6E;YAC7E,kEAAkE;YAClE,+BAA+B;YAC/B,yFAAyF;YACzF,iEAAiE;YACjE,kCAAkC;YAClC,sCAAsC;YACtC,6BAA6B;YAC7B,uDAAuD;YACvD,4DAA4D;YAC5D,kEAAkE;YAChE,qDAAqD;YACrD,sCAAsC;YACxC,0BAA0B;YAC1B,kBAAkB;YAClB,sCAAsC;YACtC,uCAAuC;YACvC,2DAA2D;YAC3D,qEAAqE;YACrE,kCAAkC;YAClC,iEAAiE;YACjE,+CAA+C;YAC/C,8CAA8C;YAC9C,4DAA4D;YAC1D,mDAAmD;YACnD,sCAAsC;YACxC,2BAA2B;YAC3B,6GAA6G;YAC7G,gBAAgB;YAChB,mCAAmC;YACnC,sCAAsC;YACtC,oGAAoG;YACpG,gDAAgD;YAChD,wDAAwD;YACxD,oDAAoD;YACpD,8DAA8D;YAC9D,sDAAsD;YACtD,4DAA4D;YAC5D,yDAAyD;YACzD,UAAU;YACV,kBAAkB;YAClB,gCAAgC;YAChC,iEAAiE;YACjE,yDAAyD;YACzD,iDAAiD;YACjD,uJAAuJ;YACvJ,gFAAgF;YAChF,4DAA4D;YAC5D,sEAAsE;YACtE,iEAAiE;YACjE,oFAAoF;YACpF,qGAAqG;YACrG,4GAA4G;YAC5G,oEAAoE;YACpE,sCAAsC;YACtC,4DAA4D;YAC5D,cAAc;YACd,8BAA8B;YAC9B,uEAAuE;YACvE,qGAAqG;YACrG,mGAAmG;YACnG,uBAAuB;YACvB,oDAAoD;YACpD,8GAA8G;YAC9G,yFAAyF;YACzF,qFAAqF;YACrF,kIAAkI;YAClI,sFAAsF;YACtF,iHAAiH;YACjH,cAAc,CAAA;QAEhB,OAAO,CACL,gEAAgE;YAChE,8BAA8B,GAAG,GAAG,CAAC,WAAW,GAAG,UAAU;YAC7D,sEAAsE;YACtE,SAAS,GAAG,GAAG,GAAG,iBAAiB;YACnC,QAAQ,GAAG,IAAI;YACf,UAAU,GAAG,EAAE,GAAG,yBAAyB,CAC5C,CAAA;IACH,CAAC;CACF"}
|
package/package.json
CHANGED