@piecemaker-legal/piecemaker 2.0.3 → 2.0.5
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/dist/assets/{abnfDiagram-VCTEODGH-CVLRxwxB.js → abnfDiagram-VCTEODGH-B4ocJFBH.js} +1 -1
- package/dist/assets/{arc-DhS_vm6i.js → arc-B8bo-IPi.js} +1 -1
- package/dist/assets/{architectureDiagram-5GKGNRK7-DrlMvm5L.js → architectureDiagram-5GKGNRK7-BGiAIDmb.js} +1 -1
- package/dist/assets/{blockDiagram-I7D4REHJ-DH3wS-gZ.js → blockDiagram-I7D4REHJ-BJ2i1Msz.js} +1 -1
- package/dist/assets/{c4Diagram-7LVT6UL2-BKR2Cyen.js → c4Diagram-7LVT6UL2-Po42CLyP.js} +1 -1
- package/dist/assets/channel-COlR3zni.js +1 -0
- package/dist/assets/{chunk-2Q5K7J3B-C9aUfYiA.js → chunk-2Q5K7J3B-BP7s12QY.js} +1 -1
- package/dist/assets/{chunk-5VM5RSS4-Bx5Xub2b.js → chunk-5VM5RSS4-BlBqQtZp.js} +1 -1
- package/dist/assets/{chunk-F27PBJKO-CNzrXezb.js → chunk-F27PBJKO-BXoXv7yL.js} +1 -1
- package/dist/assets/{chunk-IMKFNOWR-Dd93DWYT.js → chunk-IMKFNOWR-D5dE35n4.js} +1 -1
- package/dist/assets/{chunk-JWPE2WC7-BceODve0.js → chunk-JWPE2WC7-9aBxemwI.js} +1 -1
- package/dist/assets/{chunk-POPQ4Y6H-8-ogZXlq.js → chunk-POPQ4Y6H-BWBuBKqu.js} +1 -1
- package/dist/assets/{chunk-SVP7TREG-OyBBQvbk.js → chunk-SVP7TREG-BOfMOBac.js} +1 -1
- package/dist/assets/{chunk-TICWLB2K-PAWkbAe8.js → chunk-TICWLB2K-T22pXlsS.js} +1 -1
- package/dist/assets/{chunk-XXDRQBXY-BF3hAjqu.js → chunk-XXDRQBXY-oDhiw-PX.js} +1 -1
- package/dist/assets/classDiagram-ZZMXUADV-Hzl_tnO7.js +1 -0
- package/dist/assets/classDiagram-v2-VYDZK3BY-Hzl_tnO7.js +1 -0
- package/dist/assets/{cose-bilkent-JH36ORCC-AYo8VvKP.js → cose-bilkent-JH36ORCC-zcVx0H5O.js} +1 -1
- package/dist/assets/{cynefin-OW5HDTMX-Dj5QTzOc.js → cynefin-OW5HDTMX-DyWdsVNj.js} +1 -1
- package/dist/assets/{cynefinDiagram-5FMLGOSQ-CDyEAFpu.js → cynefinDiagram-5FMLGOSQ-ClIPsAmC.js} +1 -1
- package/dist/assets/{dagre-GXQ25YYZ-DJIc8myj.js → dagre-GXQ25YYZ-CpoLw4pZ.js} +1 -1
- package/dist/assets/{diagram-S7CK7UJ4-DZ3oeqLV.js → diagram-S7CK7UJ4-Q6MW52H5.js} +1 -1
- package/dist/assets/{diagram-UQ7AKVKN-Cffk9YLa.js → diagram-UQ7AKVKN-BalA4FVO.js} +1 -1
- package/dist/assets/{diagram-VSXAHHWV-ZU5eGP0R.js → diagram-VSXAHHWV-DJO0J9z7.js} +1 -1
- package/dist/assets/{diagram-VX7I27RA-D1AeED2S.js → diagram-VX7I27RA-CusI5NCb.js} +1 -1
- package/dist/assets/{diagram-Z3DM3KII-C3N-rPK5.js → diagram-Z3DM3KII-D2okoEKU.js} +1 -1
- package/dist/assets/{ebnfDiagram-PWID7BFC-CAEGoYxY.js → ebnfDiagram-PWID7BFC-BO6fBq5N.js} +1 -1
- package/dist/assets/{erDiagram-RLTQ6QDP-mlMxQhil.js → erDiagram-RLTQ6QDP-CJB5WXnj.js} +1 -1
- package/dist/assets/{flowDiagram-HODETNUW-BG-WhGuQ.js → flowDiagram-HODETNUW-DpSG5m8Q.js} +1 -1
- package/dist/assets/{ganttDiagram-EL5Y4UJY-DbTLyD4B.js → ganttDiagram-EL5Y4UJY-D3S7Fo8Z.js} +1 -1
- package/dist/assets/{gitGraphDiagram-WWUBYQGX-BLPb5m0Z.js → gitGraphDiagram-WWUBYQGX-W5GfUAH8.js} +1 -1
- package/dist/assets/{index-C1ftHA18.js → index-BiU0H7Lq.js} +3 -3
- package/dist/assets/{infoDiagram-27XIBGKW-DWEQAviD.js → infoDiagram-27XIBGKW-Muy-uIZN.js} +1 -1
- package/dist/assets/{ishikawaDiagram-5VMMS53U-Q8YRLin9.js → ishikawaDiagram-5VMMS53U-NKYuUpLb.js} +1 -1
- package/dist/assets/{journeyDiagram-3NMN7TZE-BID21ZFX.js → journeyDiagram-3NMN7TZE-CSiQZwpA.js} +1 -1
- package/dist/assets/{kanban-definition-UXKFOSKX-03Q9pFxU.js → kanban-definition-UXKFOSKX-nfSSYTys.js} +1 -1
- package/dist/assets/{layout-Cv7UL0yy.js → layout-BxdIXlpV.js} +1 -1
- package/dist/assets/{linear-eF4ujrjO.js → linear-BX-8uE9h.js} +1 -1
- package/dist/assets/{mermaid.core-D-LS3QTz.js → mermaid.core-DnzpFqcr.js} +6 -6
- package/dist/assets/{mindmap-definition-YA3MSWOX-DrOF20Qh.js → mindmap-definition-YA3MSWOX-BZ4h_iyz.js} +1 -1
- package/dist/assets/{pegDiagram-XKGWAZYB-CQhQYSuY.js → pegDiagram-XKGWAZYB-CzVtNDRI.js} +1 -1
- package/dist/assets/{pieDiagram-E7YTZNPT-B3lDl-dn.js → pieDiagram-E7YTZNPT-DqC07dbM.js} +1 -1
- package/dist/assets/{quadrantDiagram-AXDQQJYC-B-XHlB2V.js → quadrantDiagram-AXDQQJYC-CZlr9cIu.js} +1 -1
- package/dist/assets/{railroadDiagram-O6MQD6OU-CeDBAsMk.js → railroadDiagram-O6MQD6OU-BMnx9dkI.js} +1 -1
- package/dist/assets/{requirementDiagram-BXWQKSXE-DwQdqo2F.js → requirementDiagram-BXWQKSXE-D4ElGNr0.js} +1 -1
- package/dist/assets/{sankeyDiagram-P5KCCOFB-CmahZITB.js → sankeyDiagram-P5KCCOFB-CoVXfbas.js} +1 -1
- package/dist/assets/{sequenceDiagram-WJ2MYXX4-CUTW142c.js → sequenceDiagram-WJ2MYXX4-Djdar1nz.js} +1 -1
- package/dist/assets/{sizeCapture-INFHLROL-DrY3oUES.js → sizeCapture-INFHLROL-Cb7LYs0-.js} +1 -1
- package/dist/assets/{stateDiagram-D77RDMKH-3llxqUKu.js → stateDiagram-D77RDMKH-CStxwM5-.js} +1 -1
- package/dist/assets/{stateDiagram-v2-MP3YSRHH-Bx7kT7NT.js → stateDiagram-v2-MP3YSRHH-Bc31RcVk.js} +1 -1
- package/dist/assets/{swimlanes-42K2YHIH-GCvzOlEM.js → swimlanes-42K2YHIH-DBAYR4pu.js} +1 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-TMF4WKTD.js +8 -0
- package/dist/assets/{timeline-definition-24CTP7MA-CCst87s9.js → timeline-definition-24CTP7MA-DGSIMRzA.js} +1 -1
- package/dist/assets/{vennDiagram-4TSXK5OY-B2-p5M7b.js → vennDiagram-4TSXK5OY-UEvQdO6K.js} +1 -1
- package/dist/assets/{wardleyDiagram-VM6X3IG4-hvHiku3E.js → wardleyDiagram-VM6X3IG4-DSu6_oJX.js} +1 -1
- package/dist/assets/{xychartDiagram-S5SC5T6Z-JgSO8hHT.js → xychartDiagram-S5SC5T6Z-BASwbq8-.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/sw.js +1 -1
- package/dist-server/server/index.js +2 -1
- package/dist-server/server/index.js.map +1 -1
- package/dist-server/server/load-env.js +2 -1
- package/dist-server/server/load-env.js.map +1 -1
- package/dist-server/server/piecemaker/desktop-update/index.js +45 -0
- package/dist-server/server/piecemaker/desktop-update/index.js.map +1 -0
- package/dist-server/server/piecemaker/desktop-update/routes.js +23 -0
- package/dist-server/server/piecemaker/desktop-update/routes.js.map +1 -0
- package/dist-server/server/piecemaker/desktop-update/service.js +68 -0
- package/dist-server/server/piecemaker/desktop-update/service.js.map +1 -0
- package/dist-server/server/piecemaker/knowledge/index.js +6 -1
- package/dist-server/server/piecemaker/knowledge/index.js.map +1 -1
- package/dist-server/server/piecemaker/knowledge/legacy-import.js +87 -0
- package/dist-server/server/piecemaker/knowledge/legacy-import.js.map +1 -0
- package/dist-server/server/shared/utils.js +2 -1
- package/dist-server/server/shared/utils.js.map +1 -1
- package/package.json +1 -1
- package/server/index.ts +2 -1
- package/server/load-env.ts +3 -1
- package/server/piecemaker/desktop-update/index.ts +49 -0
- package/server/piecemaker/desktop-update/routes.ts +29 -0
- package/server/piecemaker/desktop-update/service.ts +101 -0
- package/server/piecemaker/knowledge/index.ts +6 -1
- package/server/piecemaker/knowledge/legacy-import.ts +101 -0
- package/server/piecemaker/vendor/websocket-server/originals-pipeline.cjs +1 -1
- package/server/shared/utils.ts +3 -1
- package/dist/assets/channel-0OoU2s09.js +0 -1
- package/dist/assets/classDiagram-ZZMXUADV-BTCcTeNG.js +0 -1
- package/dist/assets/classDiagram-v2-VYDZK3BY-BTCcTeNG.js +0 -1
- package/dist/assets/swimlanesDiagram-VR7AAH4N-C3mMP--x.js +0 -8
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import express from 'express';
|
|
2
2
|
import { getConnection, projectsDb } from '../../modules/database/index.js';
|
|
3
3
|
import { KnowledgeStore } from '../../../plugins/piecemaker-dossier/src/knowledge.js';
|
|
4
|
+
import { importLegacyKnowledge } from './legacy-import.js';
|
|
4
5
|
import { createKnowledgeLocalRouter } from './local-routes.js';
|
|
5
6
|
import { createKnowledgePipeline } from './pipeline.js';
|
|
6
7
|
import { createKnowledgeRouter } from './routes.js';
|
|
@@ -9,8 +10,12 @@ export function createKnowledgeBackend(applicationRoot) {
|
|
|
9
10
|
let store = null;
|
|
10
11
|
let service = null;
|
|
11
12
|
const getStore = () => {
|
|
12
|
-
if (!store)
|
|
13
|
+
if (!store) {
|
|
13
14
|
store = new KnowledgeStore(getConnection());
|
|
15
|
+
const report = importLegacyKnowledge(getConnection());
|
|
16
|
+
if (report?.imported.length)
|
|
17
|
+
console.info(`[piecemaker] analyses importées depuis ${report.source} : ${report.imported.join(', ')}`);
|
|
18
|
+
}
|
|
14
19
|
return store;
|
|
15
20
|
};
|
|
16
21
|
const getService = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,KAAK;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAExE,OAAO,EAAE,cAAc,EAAE,MAAM,sDAAsD,CAAC;AAEtF,OAAO,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,MAAM,UAAU,sBAAsB,CAAC,eAAuB;IAC5D,IAAI,KAAK,GAA0B,IAAI,CAAC;IACxC,IAAI,OAAO,GAAqD,IAAI,CAAC;IACrE,MAAM,QAAQ,GAAG,GAAG,EAAE;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,IAAI,cAAc,CAAC,aAAa,EAAE,CAAC,CAAC;YAC5C,MAAM,MAAM,GAAG,qBAAqB,CAAC,aAAa,EAAE,CAAC,CAAC;YACtD,IAAI,MAAM,EAAE,QAAQ,CAAC,MAAM;gBAAE,OAAO,CAAC,IAAI,CAAC,0CAA0C,MAAM,CAAC,MAAM,MAAM,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvI,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,uBAAuB,CAAC,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvG,OAAO,GAAG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,IAAI,eAAe,GAA0B,IAAI,CAAC;IAClD,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACrC,IAAI,CAAC,eAAe;YAAE,eAAe,GAAG,qBAAqB,CAAC,UAAU,EAAE,CAAC,CAAC;QAC5E,eAAe,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC;AACrF,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
const NODE_COLUMNS = 'id,kind,label,search_text,aliases_json,data_json,origin,created_at,updated_at';
|
|
5
|
+
const LINK_COLUMNS = 'from_node_id,to_node_id,relation,data_json,origin,created_at,updated_at';
|
|
6
|
+
const MAPPING_COLUMNS = 'node_id,real_value,masked_value,search_text,data_json,origin,created_at,updated_at';
|
|
7
|
+
export function legacyDatabasePath() {
|
|
8
|
+
return path.join(os.homedir(), '.cloudcli', 'auth.db');
|
|
9
|
+
}
|
|
10
|
+
function sameFile(left, right) {
|
|
11
|
+
try {
|
|
12
|
+
return fs.realpathSync(left) === fs.realpathSync(right);
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
return path.resolve(left) === path.resolve(right);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
function legacyHasTable(database, table) {
|
|
19
|
+
return Boolean(database.prepare(`SELECT 1 FROM legacy.sqlite_master WHERE type='table' AND name=?`).get(table));
|
|
20
|
+
}
|
|
21
|
+
function hasKnowledge(database, projectId) {
|
|
22
|
+
return Boolean(database.prepare(`
|
|
23
|
+
SELECT 1 FROM piecemaker_mappings WHERE project_id=?
|
|
24
|
+
UNION ALL SELECT 1 FROM piecemaker_anonymization_status WHERE project_id=?
|
|
25
|
+
LIMIT 1
|
|
26
|
+
`).get(projectId, projectId));
|
|
27
|
+
}
|
|
28
|
+
function targetProjectId(database, legacy) {
|
|
29
|
+
const existing = database.prepare('SELECT project_id FROM projects WHERE project_path=?').get(legacy.project_path);
|
|
30
|
+
if (existing)
|
|
31
|
+
return existing.project_id;
|
|
32
|
+
database.prepare(`
|
|
33
|
+
INSERT INTO projects (project_id, project_path, custom_project_name, isStarred, isArchived)
|
|
34
|
+
VALUES (?, ?, ?, ?, ?)
|
|
35
|
+
`).run(legacy.project_id, legacy.project_path, legacy.custom_project_name, legacy.isStarred ?? 0, legacy.isArchived ?? 0);
|
|
36
|
+
return legacy.project_id;
|
|
37
|
+
}
|
|
38
|
+
function copyProject(database, sourceId, targetId, withStatus) {
|
|
39
|
+
database.prepare('DELETE FROM piecemaker_links WHERE project_id=?').run(targetId);
|
|
40
|
+
database.prepare('DELETE FROM piecemaker_mappings WHERE project_id=?').run(targetId);
|
|
41
|
+
database.prepare('DELETE FROM piecemaker_nodes WHERE project_id=?').run(targetId);
|
|
42
|
+
database.prepare(`INSERT INTO piecemaker_nodes (project_id,${NODE_COLUMNS}) SELECT ?,${NODE_COLUMNS} FROM legacy.piecemaker_nodes WHERE project_id=?`).run(targetId, sourceId);
|
|
43
|
+
database.prepare(`INSERT INTO piecemaker_links (project_id,${LINK_COLUMNS}) SELECT ?,${LINK_COLUMNS} FROM legacy.piecemaker_links WHERE project_id=?`).run(targetId, sourceId);
|
|
44
|
+
database.prepare(`INSERT INTO piecemaker_mappings (project_id,${MAPPING_COLUMNS}) SELECT ?,${MAPPING_COLUMNS} FROM legacy.piecemaker_mappings WHERE project_id=?`).run(targetId, sourceId);
|
|
45
|
+
if (withStatus) {
|
|
46
|
+
database.prepare(`INSERT OR IGNORE INTO piecemaker_anonymization_status (project_id, completed_at) SELECT ?, completed_at FROM legacy.piecemaker_anonymization_status WHERE project_id=?`).run(targetId, sourceId);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
export function importLegacyKnowledge(database, source = legacyDatabasePath()) {
|
|
50
|
+
const target = database.name;
|
|
51
|
+
if (!fs.existsSync(source) || (target && sameFile(source, target)))
|
|
52
|
+
return null;
|
|
53
|
+
database.exec('CREATE TABLE IF NOT EXISTS piecemaker_legacy_imports (source TEXT PRIMARY KEY NOT NULL, imported_at TEXT NOT NULL)');
|
|
54
|
+
const resolvedSource = path.resolve(source);
|
|
55
|
+
if (database.prepare('SELECT 1 FROM piecemaker_legacy_imports WHERE source=?').get(resolvedSource))
|
|
56
|
+
return null;
|
|
57
|
+
const report = { source: resolvedSource, imported: [], skipped: [] };
|
|
58
|
+
database.prepare('ATTACH DATABASE ? AS legacy').run(resolvedSource);
|
|
59
|
+
try {
|
|
60
|
+
database.transaction(() => {
|
|
61
|
+
if (legacyHasTable(database, 'piecemaker_nodes') && legacyHasTable(database, 'projects')) {
|
|
62
|
+
const withStatus = legacyHasTable(database, 'piecemaker_anonymization_status');
|
|
63
|
+
const projects = database.prepare(`
|
|
64
|
+
SELECT p.project_id, p.project_path, p.custom_project_name, p.isStarred, p.isArchived
|
|
65
|
+
FROM legacy.projects p
|
|
66
|
+
WHERE EXISTS (SELECT 1 FROM legacy.piecemaker_nodes n WHERE n.project_id=p.project_id AND n.id NOT LIKE 'system:%')
|
|
67
|
+
ORDER BY p.project_path
|
|
68
|
+
`).all();
|
|
69
|
+
for (const project of projects) {
|
|
70
|
+
const targetId = targetProjectId(database, project);
|
|
71
|
+
if (hasKnowledge(database, targetId)) {
|
|
72
|
+
report.skipped.push(project.project_path);
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
copyProject(database, project.project_id, targetId, withStatus);
|
|
76
|
+
report.imported.push(project.project_path);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
database.prepare('INSERT INTO piecemaker_legacy_imports (source, imported_at) VALUES (?, ?)').run(resolvedSource, new Date().toISOString());
|
|
80
|
+
})();
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
database.exec('DETACH DATABASE legacy');
|
|
84
|
+
}
|
|
85
|
+
return report;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=legacy-import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legacy-import.js","sourceRoot":"","sources":["../../../../server/piecemaker/knowledge/legacy-import.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import path from 'node:path';
|
|
|
6
6
|
import readline from 'node:readline';
|
|
7
7
|
import { fileURLToPath } from 'node:url';
|
|
8
8
|
import { parseFrontMatter } from './frontmatter.js';
|
|
9
|
+
import { productDataRoot } from '../../shared/product-config.mjs';
|
|
9
10
|
//----------------- ENVIRONMENT UTILITIES ------------
|
|
10
11
|
/**
|
|
11
12
|
* Indicates whether the backend is running in hosted Platform mode rather than
|
|
@@ -22,7 +23,7 @@ export const IS_PLATFORM = process.env.VITE_IS_PLATFORM === 'true';
|
|
|
22
23
|
* this root and must not be redirected through this helper.
|
|
23
24
|
*/
|
|
24
25
|
export function getApplicationDataRoot() {
|
|
25
|
-
return
|
|
26
|
+
return productDataRoot(path.join(os.homedir(), '.cloudcli'));
|
|
26
27
|
}
|
|
27
28
|
// ---------------------------
|
|
28
29
|
//----------------- HTTP HANDLER UTILITIES ------------
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../server/shared/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EACL,MAAM,EACN,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,IAAI,EACJ,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAa3D,sDAAsD;AACtD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,MAAM,CAAC;AAEnE;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,CAAC;AAC3E,CAAC;AAoBD,8BAA8B;AAC9B,uDAAuD;AACvD;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CACtC,IAAW;IAEX,OAAO;QACL,OAAO,EAAE,IAAI;QACb,IAAI;KACL,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAC1B,OAA8E;IAE9E,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACxB,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,uDAAuD;AACvD;;;;;GAKG;AACH,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,IAAI,CAAS;IACb,UAAU,CAAS;IACnB,OAAO,CAAW;IAE3B,YAAY,OAAe,EAAE,UAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,gBAAgB,CAAC;QAC7C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;CACF;AAED,8BAA8B;AAC9B,oEAAoE;AACpE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG;IACvC,OAAO;IACP,GAAG;IACH,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,MAAM;IACN,MAAM;IACN,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,MAAM;IACN,MAAM;IACN,MAAM;IACN,UAAU;IACV,aAAa;IACb,mBAAmB;IACnB,yBAAyB;IACzB,iBAAiB;IACjB,+BAA+B;IAC/B,kBAAkB;CACnB,CAAC;AAEF,SAAS,0BAA0B,CAAC,SAAiB;IACnD,IAAI,SAAS,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACzC,OAAO,OAAO,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC;IACzD,CAAC;IAED,IAAI,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,iCAAiC,CAAC,SAAiB;IAC1D,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,SAAiB;IACpD,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,mBAAmB,GAAG,iCAAiC,CAAC,iBAAiB,CAAC,CAAC;IACjF,MAAM,UAAU,GAAG,mBAAmB;QACpC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,MAAM,GAAG,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;IAC7D,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;IAC3C,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,aAAqB;IAC/D,IAAI,CAAC;QACH,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,EAAE,CAAC;YAC7B,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,4BAA4B;aACpC,CAAC;QACJ,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC3D,MAAM,cAAc,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QAE1D,IAAI,yBAAyB,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,cAAc,KAAK,GAAG,EAAE,CAAC;YACjF,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,+DAA+D;aACvE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,aAAa,IAAI,yBAAyB,EAAE,CAAC;YACtD,MAAM,uBAAuB,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;YACpE,IACE,cAAc,KAAK,uBAAuB;mBACvC,cAAc,CAAC,UAAU,CAAC,GAAG,uBAAuB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,EACrE,CAAC;gBACD,mDAAmD;gBACnD,IACE,uBAAuB,KAAK,MAAM;uBAC/B,CAAC,cAAc,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,EACvF,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,OAAO;oBACL,KAAK,EAAE,KAAK;oBACZ,KAAK,EAAE,gDAAgD,aAAa,EAAE;iBACvE,CAAC;YACJ,CAAC;QACH,CAAC;QAED,IAAI,YAAY,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3B,YAAY,GAAG,oBAAoB,CAAC,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAA8B,CAAC;YACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,SAAS,CAAC;YAClB,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YAC9C,IAAI,CAAC;gBACH,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAClD,YAAY,GAAG,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC9F,CAAC;YAAC,OAAO,WAAW,EAAE,CAAC;gBACrB,MAAM,eAAe,GAAG,WAAoC,CAAC;gBAC7D,IAAI,eAAe,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBACtC,MAAM,eAAe,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,qBAAqB,GAAG,oBAAoB,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QACpF,IACE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;eAC5D,YAAY,KAAK,qBAAqB,EACzC,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,6DAA6D,eAAe,EAAE;aACtF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,YAAY,CAAC,CAAC;YAC3B,MAAM,SAAS,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,SAAS,CAAC,cAAc,EAAE,EAAE,CAAC;gBAC/B,MAAM,aAAa,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,CAAC;gBACnD,MAAM,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,aAAa,CAAC,CAAC;gBACpF,MAAM,eAAe,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CAAC,CAAC;gBAC5D,IACE,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,qBAAqB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;uBAC/D,eAAe,KAAK,qBAAqB,EAC5C,CAAC;oBACD,OAAO;wBACL,KAAK,EAAE,KAAK;wBACZ,KAAK,EAAE,sDAAsD;qBAC9D,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAA8B,CAAC;YACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QAED,OAAO;YACL,KAAK,EAAE,IAAI;YACX,YAAY;SACb,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,2BAA4B,KAAe,CAAC,OAAO,EAAE;SAC7D,CAAC;IACJ,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,sEAAsE;AACtE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,MAAM,GAAG,KAAK;IAC9C,OAAO,GAAG,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;AACrC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAA8B;IACpE,OAAO;QACL,GAAG,MAAM;QACT,EAAE,EAAE,MAAM,CAAC,EAAE,IAAI,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC;QAC/C,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACvD,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAMrC;IACC,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAEtC,OAAO,uBAAuB,CAAC;QAC7B,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI;QACjC,eAAe,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;QAC/D,QAAQ;QACR,OAAO,EAAE,QAAQ,KAAK,CAAC,IAAI,CAAC,OAAO;QACnC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,8BAA8B;AAC9B,4DAA4D;AAC5D;;;;;;;GAOG;AACH,MAAM,6BAA6B,GAAG,IAAI,CAAC;AAE3C,SAAS,kBAAkB,CAAC,KAAyB;IACnD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,IAAI,6BAA6B,EAAE,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,GAAG,6BAA6B,CAAC;IAC7D,OAAO,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,6BAA6B,CAAC,OAAO,OAAO,kBAAkB,CAAC;AAC1F,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,wBAAwB,CAAC,QAA0B;IACjE,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,QAAQ,CAAC,UAAU;QACzC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACtF,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC;IAExB,IAAI,gBAAgB,KAAK,QAAQ,CAAC,OAAO,IAAI,eAAe,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC;QACrF,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;AACjF,CAAC;AAED,8BAA8B;AAC9B,0EAA0E;AAC1E;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,aAAa,CAC3B,KAAU,EACV,KAAoB,EACpB,MAAc;IAEd,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAE7C,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,wEAAwE;QACxE,oEAAoE;QACpE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC;QAClD,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;YACzB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,gBAAgB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACpD,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC;QAC7B,OAAO,EAAE,KAAK,GAAG,CAAC;KACnB,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,6DAA6D;AAC7D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAU,EAAoB,EAAE;IAC/D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAkB,CAAC;AAC5B,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACvE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAChC,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACxD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAc,EAAwB,EAAE;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC;AAC7E,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAc,EAAsC,EAAE;IACrF,MAAM,MAAM,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,UAAU,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;AACrE,CAAC,CAAC;AAEF,8BAA8B;AAC9B,gEAAgE;AAChE;;;;;;;GAOG;AACH,MAAM,UAAU,sCAAsC,CACpD,MAAgC;IAEhC,OAAO;QACL,KAAK,EAAE,MAAM,CAAC,OAAO;KACtB,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,oEAAoE;AACpE;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,OAAgB,EAAoB,EAAE;IAC5E,IAAI,IAAI,GAAkB,IAAI,CAAC;IAE/B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,IAAI,GAAG,OAAO,CAAC;IACjB,CAAC;SAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACpC,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;SAAM,IAAI,OAAO,YAAY,WAAW,EAAE,CAAC;QAC1C,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,OAAO;aACpB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,YAAY,WAAW,EAAE,CAAC;gBACjC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC5B,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;YACvE,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;aACD,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAEtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IAED,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAAE,QAAgB,EAAoC,EAAE;IACzF,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;QAC9D,OAAO,gBAAgB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,GAAI,KAA+B,CAAC,IAAI,CAAC;QACnD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,QAAgB,EAAE,IAA6B,EAAiB,EAAE;IACtG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CAAC;AAEF,8BAA8B;AAC9B,8DAA8D;AAC9D,KAAK,UAAU,YAAY,CAAC,OAAe;IACzC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,OAAO,cAAc,CAAC,WAAW,EAAE,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;IACjE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,SAAiB;IACxD,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,cAAc,GAAkB,IAAI,CAAC;IAEzC,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,MAAM,YAAY,CAAC,WAAW,CAAC,EAAE,CAAC;YACpC,cAAc,GAAG,WAAW,CAAC;QAC/B,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;YAC/B,MAAM;QACR,CAAC;QAED,WAAW,GAAG,UAAU,CAAC;IAC3B,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,4BAA4B,CAC1C,OAA8B,EAC9B,YAAyB,EACzB,MAA2B;IAE3B,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,IAAI,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACxC,OAAO;IACT,CAAC;IAED,YAAY,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,8BAA8B;AAC9B,kEAAkE;AAClE;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,OAAe,EACf,UAAmC,EAAE;IAErC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAe,EAAiB,EAAE;QAChE,IAAI,OAAO,CAAC;QACZ,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;YACjD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wEAAwE;QAC1E,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBAClD,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAChC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,CAAC;gBACpD,SAAS;YACX,CAAC;YAED,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAC7D,IAAI,CAAC;gBACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,CAAC;gBACzC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;oBACxB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,0EAA0E;YAC5E,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,mCAAmC,CACvD,SAAiB;IAEjB,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,8CAA8C,CACnD,OAAO,EACP,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CACvC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,8CAA8C,CAC5D,OAAe,EACf,YAAoB;IAEpB,MAAM,MAAM,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAEjD,OAAO;QACL,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,YAAY;QACnD,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;KACxD,CAAC;AACJ,CAAC;AAED,8BAA8B;AAC9B,mEAAmE;AACnE;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA4B,EAAE,QAAgB;IACjF,MAAM,UAAU,GAAG,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAChE,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAClC,CAAC;AAED,8BAA8B;AAC9B,+EAA+E;AAC/E;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACrE,MAAM,MAAM,GAAG,KAAK,GAAG,iBAAiB,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAChE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;IACxC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC5B,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;YAClC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,KAAc;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED,IAAI,CAAC;QACH,OAAO,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,mEAAmE;AACnE;;;;;;;GAOG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACnD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;IACrD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,8DAA8D;AAC9D;;;;;;;GAOG;AACH,MAAM,UAAU,yBAAyB,CAAC,SAAiB,EAAE,KAAK,GAAG,gBAAgB;IACnF,MAAM,UAAU,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC;IACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,IACE,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;WACtB,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;WACnC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;WACnC,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAC3C,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,8BAA8B;AAC9B,wEAAwE;AACxE;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,OAAe,EACf,SAAiB,EACjB,UAAuB,EACvB,WAAqB,EAAE;IAEvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YAEhD,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;gBACxB,MAAM,gCAAgC,CAAC,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;gBAClF,SAAS;YACX,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACvD,SAAS;YACX,CAAC;YAED,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,IAAI,QAAQ,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB;IAEhB,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO;YACL,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,WAAW,EAAE;YAC3C,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE;SACxC,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,8BAA8B;AAC9B,2EAA2E;AAC3E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAgB,EAChB,QAAgB,EAChB,UAAkB;IAElB,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAA4B,CAAC;YAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;YAEjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7E,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;IACtE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,QAAgB,EAChB,SAAwD;IAExD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,EAAE,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QACjD,MAAM,UAAU,GAAG,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;QAExF,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACnC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;YACpC,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,UAAU,CAAC,KAAK,EAAE,CAAC;gBACnB,OAAO,SAAS,CAAC;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8BAA8B;AAC9B,8DAA8D;AAC9D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAAC,MAAc;IACzD,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/D,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACpD,CAAC;AAED,8BAA8B;AAC9B,0DAA0D;AAC1D,MAAM,oBAAoB,GAAG;IAC3B,KAAK,EAAE,SAAS;IAChB,MAAM,EAAE,SAAS;IACjB,GAAG,EAAE,SAAS;IACd,IAAI,EAAE,UAAU;IAChB,KAAK,EAAE,UAAU;IACjB,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,UAAU;CACR,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,IAAI,EAAE,CAAC,IAAY,EAAU,EAAE,CAC7B,GAAG,oBAAoB,CAAC,IAAI,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACpE,EAAE,EAAE,CAAC,IAAY,EAAU,EAAE,CAC3B,GAAG,oBAAoB,CAAC,KAAK,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACrE,IAAI,EAAE,CAAC,IAAY,EAAU,EAAE,CAC7B,GAAG,oBAAoB,CAAC,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACtE,KAAK,EAAE,CAAC,IAAY,EAAU,EAAE,CAC9B,GAAG,oBAAoB,CAAC,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACtE,GAAG,EAAE,CAAC,IAAY,EAAU,EAAE,CAC5B,GAAG,oBAAoB,CAAC,IAAI,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACpE,MAAM,EAAE,CAAC,IAAY,EAAU,EAAE,CAC/B,GAAG,oBAAoB,CAAC,MAAM,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;IACtE,GAAG,EAAE,CAAC,IAAY,EAAU,EAAE,CAC5B,GAAG,oBAAoB,CAAC,GAAG,GAAG,IAAI,GAAG,oBAAoB,CAAC,KAAK,EAAE;CACpE,CAAC;AAEF,8BAA8B;AAC9B,kEAAkE;AAClE;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,cAAsB;IACnD,IAAI,gBAAgB,GAAG,cAAc,CAAC;IACtC,OAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;QACvD,IAAI,eAAe,KAAK,gBAAgB,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,mDAAmD,cAAc,IAAI,CAAC,CAAC;QACzF,CAAC;QACD,gBAAgB,GAAG,eAAe,CAAC;IACrC,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,cAAsB;IACxD,MAAM,UAAU,GAAG,cAAc,CAAC,cAAc,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACjD,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,KAAK,aAAa;QACrD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QAC/B,CAAC,CAAC,eAAe,CAAC;AACtB,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../server/shared/utils.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/server/index.ts
CHANGED
|
@@ -31,6 +31,7 @@ import { settingsRoutes } from './modules/settings/index.js';
|
|
|
31
31
|
import { createSystemModule } from './modules/system/index.js';
|
|
32
32
|
import { createAgentModule } from './modules/agent/index.js';
|
|
33
33
|
import { createPieceMakerLocalRouter, createPieceMakerRouter, stopOriginalsJobs } from './piecemaker/index.js';
|
|
34
|
+
import { createPieceMakerDesktopUpdateRouter } from './piecemaker/desktop-update/index.js';
|
|
34
35
|
import projectModuleRoutes from './modules/projects/projects.routes.js';
|
|
35
36
|
import notificationRoutes from './modules/notifications/notifications.routes.js';
|
|
36
37
|
import { userRoutes } from './modules/user/index.js';
|
|
@@ -174,7 +175,7 @@ app.use('/api/commands', authenticateToken, commandsRoutes);
|
|
|
174
175
|
// Settings API Routes (protected)
|
|
175
176
|
app.use('/api/settings', authenticateToken, settingsRoutes);
|
|
176
177
|
|
|
177
|
-
app.use('/api/system', authenticateToken, systemRoutes);
|
|
178
|
+
app.use('/api/system', authenticateToken, createPieceMakerDesktopUpdateRouter(APP_ROOT), systemRoutes);
|
|
178
179
|
|
|
179
180
|
app.use('/api/notifications', authenticateToken, notificationRoutes);
|
|
180
181
|
|
package/server/load-env.ts
CHANGED
|
@@ -4,6 +4,8 @@ import os from 'os';
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
|
|
7
|
+
import { productDataRoot } from '../shared/product-config.mjs';
|
|
8
|
+
|
|
7
9
|
// This bootstrap cannot import shared/utils.ts: that module reads environment
|
|
8
10
|
// defaults during evaluation, before this file has loaded `.env`.
|
|
9
11
|
function getBootstrapApplicationRoot(importMetaUrl: string) {
|
|
@@ -40,7 +42,7 @@ try {
|
|
|
40
42
|
|
|
41
43
|
// Keep the default database in a stable user-level location so rebuilding dist-server
|
|
42
44
|
// never changes where the backend stores auth.db when DATABASE_PATH is not set explicitly.
|
|
43
|
-
const applicationDataRoot =
|
|
45
|
+
const applicationDataRoot = productDataRoot(path.join(os.homedir(), '.cloudcli'));
|
|
44
46
|
const DEFAULT_DATABASE_PATH = path.join(applicationDataRoot, 'auth.db');
|
|
45
47
|
|
|
46
48
|
if (!process.env.DATABASE_PATH) {
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
|
|
3
|
+
import { loadProductConfig } from '../../../shared/product-config.mjs';
|
|
4
|
+
|
|
5
|
+
import { createDesktopUpdateRouter } from './routes.js';
|
|
6
|
+
import { createDesktopUpdateService } from './service.js';
|
|
7
|
+
|
|
8
|
+
function runInstaller(command: string, environment: NodeJS.ProcessEnv) {
|
|
9
|
+
return new Promise<{ exitCode: number | null; output: string; errorOutput: string }>((resolve, reject) => {
|
|
10
|
+
const child = spawn('sh', ['-c', command], { env: environment, detached: true, stdio: ['ignore', 'pipe', 'pipe'] });
|
|
11
|
+
let output = '';
|
|
12
|
+
let errorOutput = '';
|
|
13
|
+
child.stdout.on('data', (chunk: Buffer) => {
|
|
14
|
+
output += chunk.toString();
|
|
15
|
+
console.log('[desktop-update]', chunk.toString().trimEnd());
|
|
16
|
+
});
|
|
17
|
+
child.stderr.on('data', (chunk: Buffer) => {
|
|
18
|
+
errorOutput += chunk.toString();
|
|
19
|
+
console.error('[desktop-update]', chunk.toString().trimEnd());
|
|
20
|
+
});
|
|
21
|
+
child.once('error', reject);
|
|
22
|
+
child.once('close', (exitCode) => resolve({ exitCode, output, errorOutput }));
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
function productRepository(): string | null {
|
|
27
|
+
try {
|
|
28
|
+
return loadProductConfig().repository;
|
|
29
|
+
} catch {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
function launchDetached(command: string) {
|
|
35
|
+
spawn('sh', ['-c', command], { detached: true, stdio: 'ignore' }).unref();
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export function createPieceMakerDesktopUpdateRouter(appRoot: string) {
|
|
39
|
+
return createDesktopUpdateRouter(createDesktopUpdateService({
|
|
40
|
+
appRoot,
|
|
41
|
+
platform: process.platform,
|
|
42
|
+
repository: productRepository(),
|
|
43
|
+
applicationPid: process.ppid,
|
|
44
|
+
environment: process.env,
|
|
45
|
+
runInstaller,
|
|
46
|
+
launchDetached,
|
|
47
|
+
logInfo: (message) => console.log('[desktop-update]', message),
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import express from 'express';
|
|
2
|
+
|
|
3
|
+
import type { createDesktopUpdateService } from './service.js';
|
|
4
|
+
|
|
5
|
+
type DesktopUpdateService = ReturnType<typeof createDesktopUpdateService>;
|
|
6
|
+
|
|
7
|
+
export function createDesktopUpdateRouter(service: DesktopUpdateService): express.Router {
|
|
8
|
+
const router = express.Router();
|
|
9
|
+
let pendingUpdate: ReturnType<DesktopUpdateService['update']> | null = null;
|
|
10
|
+
|
|
11
|
+
router.post('/update', async (_request, response, next) => {
|
|
12
|
+
if (!service.isDesktopInstall()) {
|
|
13
|
+
next();
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
try {
|
|
18
|
+
pendingUpdate ??= service.update().finally(() => {
|
|
19
|
+
pendingUpdate = null;
|
|
20
|
+
});
|
|
21
|
+
const result = await pendingUpdate;
|
|
22
|
+
response.status(result.success ? 200 : 500).json(result);
|
|
23
|
+
} catch (error) {
|
|
24
|
+
next(error);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
return router;
|
|
29
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
type ShellResult = {
|
|
2
|
+
exitCode: number | null;
|
|
3
|
+
output: string;
|
|
4
|
+
errorOutput: string;
|
|
5
|
+
};
|
|
6
|
+
|
|
7
|
+
export type DesktopUpdateDependencies = {
|
|
8
|
+
appRoot: string;
|
|
9
|
+
platform: NodeJS.Platform;
|
|
10
|
+
repository: string | null;
|
|
11
|
+
applicationPid: number;
|
|
12
|
+
environment: NodeJS.ProcessEnv;
|
|
13
|
+
runInstaller(command: string, environment: NodeJS.ProcessEnv): Promise<ShellResult>;
|
|
14
|
+
launchDetached(command: string): void;
|
|
15
|
+
logInfo(message: string): void;
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
export type DesktopUpdateResult =
|
|
19
|
+
| { success: true; output: string; message: string }
|
|
20
|
+
| { success: false; error: string; output?: string; errorOutput?: string };
|
|
21
|
+
|
|
22
|
+
const MAC_BUNDLE_APP_ROOT = /^(.+\.app)\/Contents\/Resources\/app\/?$/;
|
|
23
|
+
const SERVER_ONLY_VARIABLES = ['ELECTRON_RUN_AS_NODE', 'HOST', 'SERVER_PORT', 'PORT', 'CLOUDCLI_HOME', 'DATABASE_PATH'];
|
|
24
|
+
const RELAUNCH_DELAY_SECONDS = 3;
|
|
25
|
+
const QUIT_GRACE_SECONDS = 30;
|
|
26
|
+
const ANSI_ESCAPE = /\u001b\[[0-9;]*m/g;
|
|
27
|
+
|
|
28
|
+
function withoutAnsi(text: string): string {
|
|
29
|
+
return text.replace(ANSI_ESCAPE, '');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
function shellQuote(value: string): string {
|
|
33
|
+
return `'${value.replace(/'/g, `'\\''`)}'`;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function desktopBundlePath(appRoot: string, platform: NodeJS.Platform): string | null {
|
|
37
|
+
if (platform !== 'darwin') return null;
|
|
38
|
+
return MAC_BUNDLE_APP_ROOT.exec(appRoot)?.[1] ?? null;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function installerCommand(repository: string): string {
|
|
42
|
+
const scriptUrl = `https://raw.githubusercontent.com/${repository}/main/desktop-bootstrap/install.sh`;
|
|
43
|
+
return `curl -fsSL ${shellQuote(scriptUrl)} | sh -s -- --no-launch`;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function relaunchCommand(bundlePath: string, applicationPid: number): string {
|
|
47
|
+
const bundle = shellQuote(bundlePath);
|
|
48
|
+
return [
|
|
49
|
+
`sleep ${RELAUNCH_DELAY_SECONDS}`,
|
|
50
|
+
`osascript -e ${shellQuote(`tell application "${bundlePath}" to quit`)} >/dev/null 2>&1`,
|
|
51
|
+
`i=0; while kill -0 ${applicationPid} 2>/dev/null && [ $i -lt ${QUIT_GRACE_SECONDS} ]; do sleep 1; i=$((i+1)); done`,
|
|
52
|
+
`kill ${applicationPid} 2>/dev/null`,
|
|
53
|
+
'sleep 1',
|
|
54
|
+
`open ${bundle}`,
|
|
55
|
+
].join('; ');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export function installerEnvironment(environment: NodeJS.ProcessEnv): NodeJS.ProcessEnv {
|
|
59
|
+
const cleaned = { ...environment };
|
|
60
|
+
for (const variable of SERVER_ONLY_VARIABLES) delete cleaned[variable];
|
|
61
|
+
return cleaned;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export function createDesktopUpdateService(dependencies: DesktopUpdateDependencies) {
|
|
65
|
+
const { repository } = dependencies;
|
|
66
|
+
const bundlePath = repository ? desktopBundlePath(dependencies.appRoot, dependencies.platform) : null;
|
|
67
|
+
|
|
68
|
+
return {
|
|
69
|
+
isDesktopInstall(): boolean {
|
|
70
|
+
return bundlePath !== null;
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
async update(): Promise<DesktopUpdateResult> {
|
|
74
|
+
if (!bundlePath || !repository) {
|
|
75
|
+
return { success: false, error: "Mise à jour intégrée disponible uniquement dans l'application de bureau macOS." };
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
dependencies.logInfo(`Mise à jour de ${bundlePath} depuis ${repository}`);
|
|
79
|
+
const result = await dependencies.runInstaller(
|
|
80
|
+
installerCommand(repository),
|
|
81
|
+
installerEnvironment(dependencies.environment),
|
|
82
|
+
);
|
|
83
|
+
|
|
84
|
+
if (result.exitCode !== 0) {
|
|
85
|
+
return {
|
|
86
|
+
success: false,
|
|
87
|
+
error: "Échec du téléchargement ou de l'installation de la nouvelle version",
|
|
88
|
+
output: withoutAnsi(result.output),
|
|
89
|
+
errorOutput: withoutAnsi(result.errorOutput),
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
dependencies.launchDetached(relaunchCommand(bundlePath, dependencies.applicationPid));
|
|
94
|
+
return {
|
|
95
|
+
success: true,
|
|
96
|
+
output: withoutAnsi(result.output),
|
|
97
|
+
message: "Nouvelle version installée. L'application redémarre dans quelques secondes.",
|
|
98
|
+
};
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
}
|
|
@@ -4,6 +4,7 @@ import { getConnection, projectsDb } from '@/modules/database/index.js';
|
|
|
4
4
|
|
|
5
5
|
import { KnowledgeStore } from '../../../plugins/piecemaker-dossier/src/knowledge.js';
|
|
6
6
|
|
|
7
|
+
import { importLegacyKnowledge } from './legacy-import.js';
|
|
7
8
|
import { createKnowledgeLocalRouter } from './local-routes.js';
|
|
8
9
|
import { createKnowledgePipeline } from './pipeline.js';
|
|
9
10
|
import { createKnowledgeRouter } from './routes.js';
|
|
@@ -13,7 +14,11 @@ export function createKnowledgeBackend(applicationRoot: string) {
|
|
|
13
14
|
let store: KnowledgeStore | null = null;
|
|
14
15
|
let service: ReturnType<typeof createKnowledgeService> | null = null;
|
|
15
16
|
const getStore = () => {
|
|
16
|
-
if (!store)
|
|
17
|
+
if (!store) {
|
|
18
|
+
store = new KnowledgeStore(getConnection());
|
|
19
|
+
const report = importLegacyKnowledge(getConnection());
|
|
20
|
+
if (report?.imported.length) console.info(`[piecemaker] analyses importées depuis ${report.source} : ${report.imported.join(', ')}`);
|
|
21
|
+
}
|
|
17
22
|
return store;
|
|
18
23
|
};
|
|
19
24
|
const getService = () => {
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import os from 'node:os';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
|
|
5
|
+
import type Database from 'better-sqlite3';
|
|
6
|
+
|
|
7
|
+
type LegacyProject = {
|
|
8
|
+
project_id: string;
|
|
9
|
+
project_path: string;
|
|
10
|
+
custom_project_name: string | null;
|
|
11
|
+
isStarred: number | null;
|
|
12
|
+
isArchived: number | null;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export type LegacyImportReport = { source: string; imported: string[]; skipped: string[] };
|
|
16
|
+
|
|
17
|
+
const NODE_COLUMNS = 'id,kind,label,search_text,aliases_json,data_json,origin,created_at,updated_at';
|
|
18
|
+
const LINK_COLUMNS = 'from_node_id,to_node_id,relation,data_json,origin,created_at,updated_at';
|
|
19
|
+
const MAPPING_COLUMNS = 'node_id,real_value,masked_value,search_text,data_json,origin,created_at,updated_at';
|
|
20
|
+
|
|
21
|
+
export function legacyDatabasePath(): string {
|
|
22
|
+
return path.join(os.homedir(), '.cloudcli', 'auth.db');
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function sameFile(left: string, right: string): boolean {
|
|
26
|
+
try {
|
|
27
|
+
return fs.realpathSync(left) === fs.realpathSync(right);
|
|
28
|
+
} catch {
|
|
29
|
+
return path.resolve(left) === path.resolve(right);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function legacyHasTable(database: Database.Database, table: string): boolean {
|
|
34
|
+
return Boolean(database.prepare(`SELECT 1 FROM legacy.sqlite_master WHERE type='table' AND name=?`).get(table));
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
function hasKnowledge(database: Database.Database, projectId: string): boolean {
|
|
38
|
+
return Boolean(database.prepare(`
|
|
39
|
+
SELECT 1 FROM piecemaker_mappings WHERE project_id=?
|
|
40
|
+
UNION ALL SELECT 1 FROM piecemaker_anonymization_status WHERE project_id=?
|
|
41
|
+
LIMIT 1
|
|
42
|
+
`).get(projectId, projectId));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
function targetProjectId(database: Database.Database, legacy: LegacyProject): string {
|
|
46
|
+
const existing = database.prepare('SELECT project_id FROM projects WHERE project_path=?').get(legacy.project_path) as { project_id: string } | undefined;
|
|
47
|
+
if (existing) return existing.project_id;
|
|
48
|
+
database.prepare(`
|
|
49
|
+
INSERT INTO projects (project_id, project_path, custom_project_name, isStarred, isArchived)
|
|
50
|
+
VALUES (?, ?, ?, ?, ?)
|
|
51
|
+
`).run(legacy.project_id, legacy.project_path, legacy.custom_project_name, legacy.isStarred ?? 0, legacy.isArchived ?? 0);
|
|
52
|
+
return legacy.project_id;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
function copyProject(database: Database.Database, sourceId: string, targetId: string, withStatus: boolean): void {
|
|
56
|
+
database.prepare('DELETE FROM piecemaker_links WHERE project_id=?').run(targetId);
|
|
57
|
+
database.prepare('DELETE FROM piecemaker_mappings WHERE project_id=?').run(targetId);
|
|
58
|
+
database.prepare('DELETE FROM piecemaker_nodes WHERE project_id=?').run(targetId);
|
|
59
|
+
database.prepare(`INSERT INTO piecemaker_nodes (project_id,${NODE_COLUMNS}) SELECT ?,${NODE_COLUMNS} FROM legacy.piecemaker_nodes WHERE project_id=?`).run(targetId, sourceId);
|
|
60
|
+
database.prepare(`INSERT INTO piecemaker_links (project_id,${LINK_COLUMNS}) SELECT ?,${LINK_COLUMNS} FROM legacy.piecemaker_links WHERE project_id=?`).run(targetId, sourceId);
|
|
61
|
+
database.prepare(`INSERT INTO piecemaker_mappings (project_id,${MAPPING_COLUMNS}) SELECT ?,${MAPPING_COLUMNS} FROM legacy.piecemaker_mappings WHERE project_id=?`).run(targetId, sourceId);
|
|
62
|
+
if (withStatus) {
|
|
63
|
+
database.prepare(`INSERT OR IGNORE INTO piecemaker_anonymization_status (project_id, completed_at) SELECT ?, completed_at FROM legacy.piecemaker_anonymization_status WHERE project_id=?`).run(targetId, sourceId);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export function importLegacyKnowledge(database: Database.Database, source = legacyDatabasePath()): LegacyImportReport | null {
|
|
68
|
+
const target = database.name;
|
|
69
|
+
if (!fs.existsSync(source) || (target && sameFile(source, target))) return null;
|
|
70
|
+
database.exec('CREATE TABLE IF NOT EXISTS piecemaker_legacy_imports (source TEXT PRIMARY KEY NOT NULL, imported_at TEXT NOT NULL)');
|
|
71
|
+
const resolvedSource = path.resolve(source);
|
|
72
|
+
if (database.prepare('SELECT 1 FROM piecemaker_legacy_imports WHERE source=?').get(resolvedSource)) return null;
|
|
73
|
+
const report: LegacyImportReport = { source: resolvedSource, imported: [], skipped: [] };
|
|
74
|
+
database.prepare('ATTACH DATABASE ? AS legacy').run(resolvedSource);
|
|
75
|
+
try {
|
|
76
|
+
database.transaction(() => {
|
|
77
|
+
if (legacyHasTable(database, 'piecemaker_nodes') && legacyHasTable(database, 'projects')) {
|
|
78
|
+
const withStatus = legacyHasTable(database, 'piecemaker_anonymization_status');
|
|
79
|
+
const projects = database.prepare(`
|
|
80
|
+
SELECT p.project_id, p.project_path, p.custom_project_name, p.isStarred, p.isArchived
|
|
81
|
+
FROM legacy.projects p
|
|
82
|
+
WHERE EXISTS (SELECT 1 FROM legacy.piecemaker_nodes n WHERE n.project_id=p.project_id AND n.id NOT LIKE 'system:%')
|
|
83
|
+
ORDER BY p.project_path
|
|
84
|
+
`).all() as LegacyProject[];
|
|
85
|
+
for (const project of projects) {
|
|
86
|
+
const targetId = targetProjectId(database, project);
|
|
87
|
+
if (hasKnowledge(database, targetId)) {
|
|
88
|
+
report.skipped.push(project.project_path);
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
copyProject(database, project.project_id, targetId, withStatus);
|
|
92
|
+
report.imported.push(project.project_path);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
database.prepare('INSERT INTO piecemaker_legacy_imports (source, imported_at) VALUES (?, ?)').run(resolvedSource, new Date().toISOString());
|
|
96
|
+
})();
|
|
97
|
+
} finally {
|
|
98
|
+
database.exec('DETACH DATABASE legacy');
|
|
99
|
+
}
|
|
100
|
+
return report;
|
|
101
|
+
}
|
|
@@ -729,7 +729,6 @@ function runManagedPythonJob({ action, script, args, onProgress, signal } = {})
|
|
|
729
729
|
descriptor.resolve = resolve;
|
|
730
730
|
descriptor.reject = reject;
|
|
731
731
|
});
|
|
732
|
-
runningManaged.add(job);
|
|
733
732
|
if (canAdmit(job)) {
|
|
734
733
|
launchManagedJob(descriptor);
|
|
735
734
|
} else {
|
|
@@ -743,6 +742,7 @@ function runManagedPythonJob({ action, script, args, onProgress, signal } = {})
|
|
|
743
742
|
/** Lancement d'un descripteur `runManagedPythonJob` (pas de `legalCase`/commit à gérer ici). */
|
|
744
743
|
function launchManagedJob(descriptor) {
|
|
745
744
|
const { job, run, resolve, reject } = descriptor;
|
|
745
|
+
runningManaged.add(job);
|
|
746
746
|
reservedBytes += job.reserveBytes;
|
|
747
747
|
const timeoutId = setTimeout(() => {
|
|
748
748
|
void stopRunningJob(job, 'timeout');
|
package/server/shared/utils.ts
CHANGED
|
@@ -31,6 +31,8 @@ import type {
|
|
|
31
31
|
WorkspacePathValidationResult,
|
|
32
32
|
} from '@/shared/types.js';
|
|
33
33
|
|
|
34
|
+
import { productDataRoot } from '../../shared/product-config.mjs';
|
|
35
|
+
|
|
34
36
|
//----------------- ENVIRONMENT UTILITIES ------------
|
|
35
37
|
/**
|
|
36
38
|
* Indicates whether the backend is running in hosted Platform mode rather than
|
|
@@ -48,7 +50,7 @@ export const IS_PLATFORM = process.env.VITE_IS_PLATFORM === 'true';
|
|
|
48
50
|
* this root and must not be redirected through this helper.
|
|
49
51
|
*/
|
|
50
52
|
export function getApplicationDataRoot(): string {
|
|
51
|
-
return
|
|
53
|
+
return productDataRoot(path.join(os.homedir(), '.cloudcli'));
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
// ---------------------------
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{ah as o,ai as n}from"./mermaid.core-D-LS3QTz.js";const t=(a,r)=>o.lang.round(n.parse(a)[r]);export{t as c};
|