@rashidee/co2 1.3.13 → 1.3.14
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/.co2-dat/app.db +0 -0
- package/dist/.co2-dat/app.db-shm +0 -0
- package/dist/.co2-dat/app.db-wal +0 -0
- package/dist/index.js +145 -9
- package/package.json +1 -1
- package/static/assets/{abnfDiagram-VRR7QNED-Qm0Wk_H_.js → abnfDiagram-VRR7QNED-D8RafkEP.js} +1 -1
- package/static/assets/{arc-Cfk6Kt0D.js → arc-Coo8djJL.js} +1 -1
- package/static/assets/{architectureDiagram-ZJ3FMSHR-DQTlZaUK.js → architectureDiagram-ZJ3FMSHR-D7fGTL3b.js} +1 -1
- package/static/assets/{blockDiagram-677ZJIJ3-D-4ibdoX.js → blockDiagram-677ZJIJ3-CjI7s86S.js} +1 -1
- package/static/assets/{c4Diagram-LMCZKHZV-CHuqcdJm.js → c4Diagram-LMCZKHZV-Ao3qCcFi.js} +1 -1
- package/static/assets/channel-Ci11n54j.js +1 -0
- package/static/assets/{chunk-2Q5K7J3B-MB9pWQe1.js → chunk-2Q5K7J3B-lUK_s3cG.js} +1 -1
- package/static/assets/{chunk-32BRIVSS-BttYlwU1.js → chunk-32BRIVSS-PA889NNs.js} +1 -1
- package/static/assets/{chunk-5VM5RSS4-oyt0Tagd.js → chunk-5VM5RSS4-CxACsgKF.js} +1 -1
- package/static/assets/{chunk-EX3LRPZG-DaTxdTWl.js → chunk-EX3LRPZG-BuSTKl3j.js} +1 -1
- package/static/assets/{chunk-JWPE2WC7-CNgDxPAD.js → chunk-JWPE2WC7-CuKFDdbM.js} +1 -1
- package/static/assets/{chunk-MOJQB5TN-CoAudO3B.js → chunk-MOJQB5TN-CVXUJZuG.js} +1 -1
- package/static/assets/{chunk-RYQCIY6F-BrkDEEha.js → chunk-RYQCIY6F-DrMs0YPQ.js} +1 -1
- package/static/assets/{chunk-V7JOEXUC-D14rGvBO.js → chunk-V7JOEXUC-DJopV6W1.js} +1 -1
- package/static/assets/{chunk-VR4S4FIN-CAtas2vF.js → chunk-VR4S4FIN-CcNBYiui.js} +1 -1
- package/static/assets/{chunk-XXDRQBXY-DcVAnNUQ.js → chunk-XXDRQBXY-CCFhxbN4.js} +1 -1
- package/static/assets/classDiagram-OUVF2IWQ-D8JGj9_e.js +1 -0
- package/static/assets/classDiagram-v2-EOCWNBFH-D8JGj9_e.js +1 -0
- package/static/assets/{cose-bilkent-JH36ORCC-B7y4MI6Z.js → cose-bilkent-JH36ORCC-DXoH0ywa.js} +1 -1
- package/static/assets/{cynefin-VYW2F7L2-D2mnk-iJ.js → cynefin-VYW2F7L2-DH8W0rE6.js} +1 -1
- package/static/assets/{cynefinDiagram-TSTJHNR4-DNzQJhG7.js → cynefinDiagram-TSTJHNR4-BW_IHnv8.js} +1 -1
- package/static/assets/{dagre-VKFMJZFB-NMSyTo8N.js → dagre-VKFMJZFB-Biw6PsWK.js} +1 -1
- package/static/assets/{diagram-FQU43EPY-CdqS5Ike.js → diagram-FQU43EPY-TtNOYp5j.js} +1 -1
- package/static/assets/{diagram-G47NLZAW-Bsb4T5JI.js → diagram-G47NLZAW-CQk6Jt_6.js} +1 -1
- package/static/assets/{diagram-NH7WQ7WH-Z-PyzBSC.js → diagram-NH7WQ7WH-DTY1BO9B.js} +1 -1
- package/static/assets/{diagram-OA4YK3LP-BZBTYbxg.js → diagram-OA4YK3LP-DEnO6Eyl.js} +1 -1
- package/static/assets/{diagram-WEI45ONY-BL2LA5H_.js → diagram-WEI45ONY-WKF4avWj.js} +1 -1
- package/static/assets/{ebnfDiagram-CCIWWBDH-BGtukMeo.js → ebnfDiagram-CCIWWBDH-K4uJ1i6v.js} +1 -1
- package/static/assets/{erDiagram-Q63AITRT-B6OJ4YCl.js → erDiagram-Q63AITRT-B4wRa3fY.js} +1 -1
- package/static/assets/{flowDiagram-23GEKE2U-BBkMgJ1i.js → flowDiagram-23GEKE2U-SnSUCnHl.js} +1 -1
- package/static/assets/{ganttDiagram-NO4QXBWP-Cv8KHFBD.js → ganttDiagram-NO4QXBWP-CsdfAP2-.js} +1 -1
- package/static/assets/{gitGraphDiagram-IHSO6WYX-hYxDNjWx.js → gitGraphDiagram-IHSO6WYX-C8xab2KC.js} +1 -1
- package/static/assets/{index-DKI3BgkF.css → index-D58A6Kf1.css} +1 -1
- package/static/assets/{index-DnYGyYET.js → index-D74-2ULy.js} +93 -93
- package/static/assets/{infoDiagram-FWYZ7A6U-WuQIiedv.js → infoDiagram-FWYZ7A6U-CjUSYyJV.js} +1 -1
- package/static/assets/{ishikawaDiagram-FXEZZL3T-BJGOD-IY.js → ishikawaDiagram-FXEZZL3T-DGEbhYY4.js} +1 -1
- package/static/assets/{journeyDiagram-5HDEW3XC-Ba_NXseS.js → journeyDiagram-5HDEW3XC-Bn8WZeF-.js} +1 -1
- package/static/assets/{kanban-definition-HUTT4EX6-C5RMm9uF.js → kanban-definition-HUTT4EX6-DD9QNPz9.js} +1 -1
- package/static/assets/{linear-CLKppNoj.js → linear-CREoNC-Z.js} +1 -1
- package/static/assets/{mindmap-definition-LN4V7U3C-ClSG_qmQ.js → mindmap-definition-LN4V7U3C-BLCKbp6n.js} +1 -1
- package/static/assets/{pegDiagram-2B236MQR-C_JEZqk3.js → pegDiagram-2B236MQR-DLyLfiFi.js} +1 -1
- package/static/assets/{pieDiagram-ENE6RG2P-D0lx7wDi.js → pieDiagram-ENE6RG2P-B7v1-Mow.js} +1 -1
- package/static/assets/{quadrantDiagram-ABIIQ3AL-BBKy0PVs.js → quadrantDiagram-ABIIQ3AL-Dnt728yI.js} +1 -1
- package/static/assets/{railroadDiagram-RFXS5EU6-C1Badu5q.js → railroadDiagram-RFXS5EU6-BZ0m-G9m.js} +1 -1
- package/static/assets/{requirementDiagram-TGXJPOKE-1j59jBQH.js → requirementDiagram-TGXJPOKE-3SCMjIUR.js} +1 -1
- package/static/assets/{sankeyDiagram-HTMAVEWB-BLR5S8aZ.js → sankeyDiagram-HTMAVEWB-BoK8Wh3S.js} +1 -1
- package/static/assets/{sequenceDiagram-DBY2YBRQ-BlqdK4qm.js → sequenceDiagram-DBY2YBRQ-B89bqSYK.js} +1 -1
- package/static/assets/{sizeCapture-X5ZJPWSS-C27ndGIT.js → sizeCapture-X5ZJPWSS-BVTk4iE2.js} +1 -1
- package/static/assets/{stateDiagram-2N3HPSRC-DOu4536_.js → stateDiagram-2N3HPSRC-Q5DLz7JU.js} +1 -1
- package/static/assets/stateDiagram-v2-6OUMAXLB-CU_q9WoS.js +1 -0
- package/static/assets/{swimlanes-5IMT3BWC-BpGitR9A.js → swimlanes-5IMT3BWC-1LqBZGZu.js} +2 -2
- package/static/assets/swimlanesDiagram-G3AALYLV-CilhyDV0.js +8 -0
- package/static/assets/{timeline-definition-FHXFAJF6-JIvdjH7z.js → timeline-definition-FHXFAJF6-Bk8mm9PQ.js} +1 -1
- package/static/assets/{vennDiagram-L72KCM5P-DulnqLWm.js → vennDiagram-L72KCM5P-qS4AIIXn.js} +1 -1
- package/static/assets/{wardleyDiagram-EHGQE667--MhZNL8M.js → wardleyDiagram-EHGQE667-BjnQ0zER.js} +1 -1
- package/static/assets/{xychartDiagram-FW5EYKEG-CjnNgnMQ.js → xychartDiagram-FW5EYKEG-Xtl5bYjl.js} +1 -1
- package/static/index.html +2 -2
- package/static/assets/channel-H9DRrduO.js +0 -1
- package/static/assets/classDiagram-OUVF2IWQ-DRNPM383.js +0 -1
- package/static/assets/classDiagram-v2-EOCWNBFH-DRNPM383.js +0 -1
- package/static/assets/stateDiagram-v2-6OUMAXLB-DvP1ZCp8.js +0 -1
- package/static/assets/swimlanesDiagram-G3AALYLV-B5cf18Ey.js +0 -8
package/dist/.co2-dat/app.db
CHANGED
|
Binary file
|
package/dist/.co2-dat/app.db-shm
CHANGED
|
Binary file
|
package/dist/.co2-dat/app.db-wal
CHANGED
|
Binary file
|
package/dist/index.js
CHANGED
|
@@ -6809,7 +6809,7 @@ var {
|
|
|
6809
6809
|
// package.json
|
|
6810
6810
|
var package_default = {
|
|
6811
6811
|
name: "@rashidee/co2",
|
|
6812
|
-
version: "1.3.
|
|
6812
|
+
version: "1.3.14",
|
|
6813
6813
|
description: "Compound Context Studio \u2014 self-hosted team context authoring for CO2 projects",
|
|
6814
6814
|
type: "module",
|
|
6815
6815
|
license: "MIT",
|
|
@@ -25398,7 +25398,7 @@ function scanProject(db, workspacePath, folderName) {
|
|
|
25398
25398
|
import { join as join22, relative as relative2 } from "path";
|
|
25399
25399
|
|
|
25400
25400
|
// ../server/src/features/workflow/service.ts
|
|
25401
|
-
import { existsSync as existsSync20, mkdirSync as mkdirSync9, readFileSync as readFileSync15, writeFileSync as writeFileSync13 } from "fs";
|
|
25401
|
+
import { existsSync as existsSync20, mkdirSync as mkdirSync9, readFileSync as readFileSync15, statSync as statSync6, writeFileSync as writeFileSync13 } from "fs";
|
|
25402
25402
|
import { join as join21, relative, resolve as resolve2, sep } from "path";
|
|
25403
25403
|
var ACTIVE_RUN_STATUSES = ["pending", "in_progress"];
|
|
25404
25404
|
function svcError14(code, status) {
|
|
@@ -25855,6 +25855,125 @@ function rescanWorkflowRun(db, workspacePath, workflowMarkdownId, watcherInterva
|
|
|
25855
25855
|
}
|
|
25856
25856
|
return getWorkflowRun(db, workflowMarkdownId, workspacePath);
|
|
25857
25857
|
}
|
|
25858
|
+
var DISCOVERABLE_CONDUCTOR_TYPES = ["prepare", "develop", "quality"];
|
|
25859
|
+
function rescanProjectWorkflows(db, workspacePath, projectId, user, watcherIntervalMs) {
|
|
25860
|
+
const project = db.select().from(projects).where(eq(projects.id, projectId)).get();
|
|
25861
|
+
if (!project) throw svcError14("PROJECT_NOT_FOUND", 404);
|
|
25862
|
+
const projectDir2 = join21(workspacePath, project.workspaceFolderName);
|
|
25863
|
+
const nonTerminal = db.select({ id: conductorRuns.id, wfmId: conductorRuns.workflowMarkdownId }).from(conductorRuns).where(
|
|
25864
|
+
and(
|
|
25865
|
+
eq(conductorRuns.projectId, projectId),
|
|
25866
|
+
inArray(conductorRuns.status, [...ACTIVE_RUN_STATUSES])
|
|
25867
|
+
)
|
|
25868
|
+
).all();
|
|
25869
|
+
const rescannedRuns = nonTerminal.length;
|
|
25870
|
+
const wfmIds = new Set(nonTerminal.map((r) => r.wfmId).filter((x) => x !== null));
|
|
25871
|
+
for (const wfmId of wfmIds) rescanWorkflowRun(db, workspacePath, wfmId, watcherIntervalMs);
|
|
25872
|
+
const apps = db.select({ id: applications.id, name: applications.name }).from(applications).where(and(eq(applications.projectId, projectId), eq(applications.isDeleted, 0))).all();
|
|
25873
|
+
const currentVersionId = ensureBaselineVersion(db, projectId, user.id);
|
|
25874
|
+
const semver = db.select({ semver: prdVersions.semver }).from(prdVersions).where(eq(prdVersions.id, currentVersionId)).get()?.semver ?? null;
|
|
25875
|
+
let discoveredRuns = 0;
|
|
25876
|
+
const now = (/* @__PURE__ */ new Date()).toISOString();
|
|
25877
|
+
for (const app of apps) {
|
|
25878
|
+
for (const conductorType of DISCOVERABLE_CONDUCTOR_TYPES) {
|
|
25879
|
+
const trackingFilePath = resolveRunTrackingFilePath(projectDir2, app.name, conductorType);
|
|
25880
|
+
const fileStatus = parseTrackingStatus(trackingFilePath);
|
|
25881
|
+
if (fileStatus === "unknown") continue;
|
|
25882
|
+
const aliases = conductorType === "quality" ? ["quality", "defect"] : [conductorType];
|
|
25883
|
+
const known = db.select({
|
|
25884
|
+
status: conductorRuns.status,
|
|
25885
|
+
prdVersionId: conductorRuns.prdVersionId,
|
|
25886
|
+
createdAt: conductorRuns.createdAt,
|
|
25887
|
+
completedAt: conductorRuns.completedAt
|
|
25888
|
+
}).from(conductorRuns).where(
|
|
25889
|
+
and(
|
|
25890
|
+
eq(conductorRuns.applicationId, app.id),
|
|
25891
|
+
inArray(conductorRuns.conductorType, aliases)
|
|
25892
|
+
)
|
|
25893
|
+
).all();
|
|
25894
|
+
const knownForVersion = known.filter(
|
|
25895
|
+
(r) => r.prdVersionId === null || r.prdVersionId === currentVersionId
|
|
25896
|
+
);
|
|
25897
|
+
if (fileStatus === "COMPLETED" && knownForVersion.some((r) => r.status === "completed"))
|
|
25898
|
+
continue;
|
|
25899
|
+
if (fileStatus === "IN PROGRESS" && known.some((r) => r.status === "pending" || r.status === "in_progress"))
|
|
25900
|
+
continue;
|
|
25901
|
+
if (fileStatus === "FAILED" && knownForVersion.some((r) => r.status === "failed")) continue;
|
|
25902
|
+
let mtimeMs;
|
|
25903
|
+
try {
|
|
25904
|
+
mtimeMs = statSync6(trackingFilePath).mtimeMs;
|
|
25905
|
+
} catch {
|
|
25906
|
+
continue;
|
|
25907
|
+
}
|
|
25908
|
+
const latestKnownMs = known.reduce(
|
|
25909
|
+
(acc, r) => Math.max(
|
|
25910
|
+
acc,
|
|
25911
|
+
Date.parse(r.createdAt) || 0,
|
|
25912
|
+
r.completedAt ? Date.parse(r.completedAt) || 0 : 0
|
|
25913
|
+
),
|
|
25914
|
+
0
|
|
25915
|
+
);
|
|
25916
|
+
if (latestKnownMs > 0 && mtimeMs <= latestKnownMs) continue;
|
|
25917
|
+
const mtimeIso = new Date(mtimeMs).toISOString();
|
|
25918
|
+
const wfm = db.insert(workflowMarkdowns).values({
|
|
25919
|
+
projectId,
|
|
25920
|
+
conductorType,
|
|
25921
|
+
// The master the discovery was read from — Run History's path link previews it.
|
|
25922
|
+
filePath: relative(projectDir2, trackingFilePath).replace(/\\/g, "/"),
|
|
25923
|
+
versionLabel: semver,
|
|
25924
|
+
createdBy: user.id,
|
|
25925
|
+
createdByName: user.username,
|
|
25926
|
+
createdAt: now,
|
|
25927
|
+
updatedAt: now
|
|
25928
|
+
}).returning({ id: workflowMarkdowns.id }).get();
|
|
25929
|
+
const run = db.insert(conductorRuns).values({
|
|
25930
|
+
projectId,
|
|
25931
|
+
applicationId: app.id,
|
|
25932
|
+
conductorType,
|
|
25933
|
+
prdVersionId: currentVersionId,
|
|
25934
|
+
trackingFilePath,
|
|
25935
|
+
status: fileStatus === "COMPLETED" ? "completed" : fileStatus === "FAILED" ? "failed" : "in_progress",
|
|
25936
|
+
startedBy: user.id,
|
|
25937
|
+
startedAt: mtimeIso,
|
|
25938
|
+
completedAt: fileStatus === "IN PROGRESS" ? null : mtimeIso,
|
|
25939
|
+
workflowMarkdownId: wfm.id,
|
|
25940
|
+
priorPhaseSatisfied: 1,
|
|
25941
|
+
gitOperationStatus: "skipped",
|
|
25942
|
+
// terminal execution — the user owns its git flow
|
|
25943
|
+
createdAt: now
|
|
25944
|
+
}).returning({ id: conductorRuns.id }).get();
|
|
25945
|
+
discoveredRuns++;
|
|
25946
|
+
if (fileStatus === "COMPLETED") {
|
|
25947
|
+
try {
|
|
25948
|
+
registerConductorArtifacts(db, workspacePath, run.id);
|
|
25949
|
+
} catch {
|
|
25950
|
+
}
|
|
25951
|
+
syncDefectRunStatuses(db, run.id);
|
|
25952
|
+
} else if (fileStatus === "IN PROGRESS") {
|
|
25953
|
+
const appName = app.name;
|
|
25954
|
+
startWatcher(
|
|
25955
|
+
db,
|
|
25956
|
+
run.id,
|
|
25957
|
+
() => resolveRunTrackingFilePath(projectDir2, appName, conductorType),
|
|
25958
|
+
user.id,
|
|
25959
|
+
watcherIntervalMs,
|
|
25960
|
+
(id, terminalStatus) => {
|
|
25961
|
+
lastArtifactSweepAt.delete(id);
|
|
25962
|
+
if (terminalStatus === "COMPLETED") {
|
|
25963
|
+
try {
|
|
25964
|
+
registerConductorArtifacts(db, workspacePath, id);
|
|
25965
|
+
} catch {
|
|
25966
|
+
}
|
|
25967
|
+
syncDefectRunStatuses(db, id);
|
|
25968
|
+
}
|
|
25969
|
+
},
|
|
25970
|
+
(id) => sweepRunArtifactsThrottled(db, workspacePath, id)
|
|
25971
|
+
);
|
|
25972
|
+
}
|
|
25973
|
+
}
|
|
25974
|
+
}
|
|
25975
|
+
return { rescannedRuns, discoveredRuns };
|
|
25976
|
+
}
|
|
25858
25977
|
function getWorkflowRun(db, workflowMarkdownId, workspacePath) {
|
|
25859
25978
|
const wfm = db.select().from(workflowMarkdowns).where(eq(workflowMarkdowns.id, workflowMarkdownId)).get();
|
|
25860
25979
|
if (!wfm) throw svcError14("RUN_NOT_FOUND", 404);
|
|
@@ -25952,7 +26071,9 @@ function toDetail(db, projectFolder, wfm, workspacePath) {
|
|
|
25952
26071
|
status: rollupStatus(runs.map((r) => r.status)),
|
|
25953
26072
|
applications: appBreakdown,
|
|
25954
26073
|
filePath: wfm.filePath,
|
|
25955
|
-
|
|
26074
|
+
// Only generated markdowns (workflow/<user>/<ts>.md) carry an Execute prompt — a row
|
|
26075
|
+
// discovered from a tracking master (rescanProjectWorkflows) has nothing to re-run.
|
|
26076
|
+
executeCommand: wfm.filePath.startsWith("workflow/") ? buildExecuteCommand(projectFolder, wfm.filePath) : "",
|
|
25956
26077
|
versionLabel: wfm.versionLabel,
|
|
25957
26078
|
gitOperationStatus: git4?.gitOperationStatus ?? "not_started",
|
|
25958
26079
|
gitBranchCreated: git4?.gitBranchCreated ?? null,
|
|
@@ -26469,7 +26590,7 @@ function projectRoutes(db, workspacePath) {
|
|
|
26469
26590
|
}
|
|
26470
26591
|
|
|
26471
26592
|
// ../server/src/features/shared-context/service.ts
|
|
26472
|
-
import { existsSync as existsSync21, mkdirSync as mkdirSync10, readFileSync as readFileSync16, readdirSync as readdirSync4, statSync as
|
|
26593
|
+
import { existsSync as existsSync21, mkdirSync as mkdirSync10, readFileSync as readFileSync16, readdirSync as readdirSync4, statSync as statSync7, writeFileSync as writeFileSync14 } from "fs";
|
|
26473
26594
|
import { join as join23, resolve as resolve3, sep as sep2 } from "path";
|
|
26474
26595
|
function svcError16(code, status) {
|
|
26475
26596
|
return Object.assign(new Error(code), { code, status });
|
|
@@ -26527,7 +26648,7 @@ function walk(dir, relBase) {
|
|
|
26527
26648
|
children: walk(join23(dir, entry.name), rel)
|
|
26528
26649
|
});
|
|
26529
26650
|
} else if (entry.isFile()) {
|
|
26530
|
-
const stat =
|
|
26651
|
+
const stat = statSync7(join23(dir, entry.name));
|
|
26531
26652
|
nodes.push({
|
|
26532
26653
|
name: entry.name,
|
|
26533
26654
|
path: rel,
|
|
@@ -26566,7 +26687,7 @@ function uploadFile(db, workspacePath, projectId, folder, file) {
|
|
|
26566
26687
|
function getFileContent(db, workspacePath, projectId, relPath) {
|
|
26567
26688
|
const root = resolveSharedRoot(db, workspacePath, projectId);
|
|
26568
26689
|
const full = safeResolve(root, relPath);
|
|
26569
|
-
if (!existsSync21(full) || !
|
|
26690
|
+
if (!existsSync21(full) || !statSync7(full).isFile()) throw svcError16("NOT_FOUND", 404);
|
|
26570
26691
|
const name = relPath.split("/").pop() ?? relPath;
|
|
26571
26692
|
return { mimeType: mimeForName(name), bytes: readFileSync16(full), name };
|
|
26572
26693
|
}
|
|
@@ -26574,7 +26695,7 @@ function saveMarkdown(db, workspacePath, projectId, relPath, content) {
|
|
|
26574
26695
|
if (mimeForName(relPath) !== "text/markdown") throw svcError16("NOT_MARKDOWN", 400);
|
|
26575
26696
|
const root = resolveSharedRoot(db, workspacePath, projectId);
|
|
26576
26697
|
const full = safeResolve(root, relPath);
|
|
26577
|
-
if (!existsSync21(full) || !
|
|
26698
|
+
if (!existsSync21(full) || !statSync7(full).isFile()) throw svcError16("NOT_FOUND", 404);
|
|
26578
26699
|
writeFileSync14(full, content, "utf8");
|
|
26579
26700
|
}
|
|
26580
26701
|
|
|
@@ -27149,6 +27270,21 @@ function workflowRoutes(db, workspacePath) {
|
|
|
27149
27270
|
return errorResponse16(c, e);
|
|
27150
27271
|
}
|
|
27151
27272
|
});
|
|
27273
|
+
app.post("/rescan-all", (c) => {
|
|
27274
|
+
const projectId = Number(c.req.query("projectId"));
|
|
27275
|
+
if (Number.isNaN(projectId)) return c.json({ code: "INVALID_ID" }, 400);
|
|
27276
|
+
const user = c.get("user");
|
|
27277
|
+
try {
|
|
27278
|
+
return c.json(
|
|
27279
|
+
rescanProjectWorkflows(db, workspacePath, projectId, {
|
|
27280
|
+
id: user.id,
|
|
27281
|
+
username: user.username
|
|
27282
|
+
})
|
|
27283
|
+
);
|
|
27284
|
+
} catch (e) {
|
|
27285
|
+
return errorResponse16(c, e);
|
|
27286
|
+
}
|
|
27287
|
+
});
|
|
27152
27288
|
app.post("/runs/:id/rescan", (c) => {
|
|
27153
27289
|
const id = Number(c.req.param("id"));
|
|
27154
27290
|
if (Number.isNaN(id)) return c.json({ code: "INVALID_ID" }, 400);
|
|
@@ -27663,7 +27799,7 @@ function loggerMiddleware() {
|
|
|
27663
27799
|
}
|
|
27664
27800
|
|
|
27665
27801
|
// ../server/src/lib/static.ts
|
|
27666
|
-
import { existsSync as existsSync24, readFileSync as readFileSync19, statSync as
|
|
27802
|
+
import { existsSync as existsSync24, readFileSync as readFileSync19, statSync as statSync8 } from "fs";
|
|
27667
27803
|
import { extname, join as join26, normalize, resolve as resolve4, sep as sep3 } from "path";
|
|
27668
27804
|
var MIME = {
|
|
27669
27805
|
".html": "text/html; charset=utf-8",
|
|
@@ -27701,7 +27837,7 @@ function serveSpa(staticDir) {
|
|
|
27701
27837
|
}
|
|
27702
27838
|
const rel = path === "/" ? "/index.html" : decodeURIComponent(path);
|
|
27703
27839
|
const filePath = safeResolve2(staticDir, rel);
|
|
27704
|
-
if (filePath && existsSync24(filePath) &&
|
|
27840
|
+
if (filePath && existsSync24(filePath) && statSync8(filePath).isFile()) {
|
|
27705
27841
|
const body = readFileSync19(filePath);
|
|
27706
27842
|
return c.body(body, 200, {
|
|
27707
27843
|
"Content-Type": MIME[extname(filePath)] ?? "application/octet-stream"
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-
|
|
1
|
+
import{g as p,r as u,d as a}from"./chunk-MOJQB5TN-CVXUJZuG.js";import{p as f}from"./chunk-JWPE2WC7-CuKFDdbM.js";import{_ as n,l as o}from"./index-D74-2ULy.js";import{M as c,b as d}from"./cynefin-VYW2F7L2-DH8W0rE6.js";var v=d().RailroadAbnf.parser.LangiumParser,l=n(e=>{const r=e.alternatives.map(g);return r.length===1?r[0]:{type:"choice",alternatives:r}},"transformAlternation"),g=n(e=>{const r=e.elements.map(y);return r.length===1?r[0]:{type:"sequence",elements:r}},"transformConcatenation"),b=n(e=>{if(e.includes("*")){const[t,s]=e.split("*"),i=t?parseInt(t,10):0,m=s?parseInt(s,10):1/0;return{min:i,max:m}}const r=parseInt(e,10);return{min:r,max:r}},"parseRepeat"),y=n(e=>{const r=A(e.primary);if(!e.repeat)return r;const{min:t,max:s}=b(e.repeat);return t===0&&s===1?{type:"optional",element:r}:{type:"repetition",element:r,min:t,max:s}},"transformElement"),A=n(e=>{switch(e.$type){case"AbnfStringLiteral":return{type:"terminal",value:e.value};case"AbnfNumVal":return{type:"terminal",value:e.value};case"AbnfRuleName":return{type:"nonterminal",name:e.name};case"AbnfGroup":return l(e.element);case"AbnfOptionalGroup":return{type:"optional",element:l(e.element)};default:throw new Error(`Unsupported ABNF primary node: ${e.$type}`)}},"transformPrimary"),P=n(e=>({name:e.name,definition:l(e.definition)}),"transformRule"),h=n(e=>{f(e,a),e.title&&a.setTitle(e.title),e.rules.map(r=>a.addRule(P(r)))},"populateDb"),R={parse:n(e=>{a.clear(),o.debug("[ABNF Parser] Starting Langium parse");const r=v.parse(e);if(r.lexerErrors.length>0||r.parserErrors.length>0)throw new c(r);const t=r.value;o.debug("[ABNF Parser] Parsed rules:",t.rules.length),h(t),o.debug("[ABNF Parser] Parse complete")},"parse"),parser:{yy:a}},w={parser:R,db:a,renderer:u,styles:p};export{w as diagram};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Y as ln,$ as an,a0 as y,a1 as tn,a2 as F,a3 as q,a4 as _,a5 as un,a6 as rn,a7 as J,a8 as o,a9 as j,aa as sn,ab as on,ac as fn}from"./index-
|
|
1
|
+
import{Y as ln,$ as an,a0 as y,a1 as tn,a2 as F,a3 as q,a4 as _,a5 as un,a6 as rn,a7 as J,a8 as o,a9 as j,aa as sn,ab as on,ac as fn}from"./index-D74-2ULy.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,I,D,v,A,z,a){var O=I-l,i=D-h,n=z-v,d=a-A,u=d*O-n*i;if(!(u*u<y))return u=(n*(h-A)-d*(l-v))/u,[l+u*O,h+u*i]}function U(l,h,I,D,v,A,z){var a=l-I,O=h-D,i=(z?A:-A)/J(a*a+O*O),n=i*O,d=-i*a,u=l+n,s=h+d,f=I+n,c=D+d,B=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,R=m*m+g*g,T=v-A,P=u*c-f*s,S=(g<0?-1:1)*J(fn(0,T*T*R-P*P)),Y=(P*g-m*S)/R,$=(-P*m-g*S)/R,w=(P*g+m*S)/R,p=(-P*m+g*S)/R,x=Y-B,e=$-t,r=w-B,C=p-t;return x*x+e*e>r*r+C*C&&(Y=w,$=p),{cx:Y,cy:$,x01:-n,y01:-d,x11:Y*(v/T-1),y11:$*(v/T-1)}}function hn(){var l=cn,h=yn,I=j(0),D=null,v=gn,A=dn,z=mn,a=null,O=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,B=un(c-f),t=c>f;if(a||(a=n=O()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(B>tn-y)a.moveTo(s*F(f),s*q(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*F(c),u*q(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,R=f,T=c,P=B,S=B,Y=z.apply(this,arguments)/2,$=Y>y&&(D?+D.apply(this,arguments):J(u*u+s*s)),w=_(un(s-u)/2,+I.apply(this,arguments)),p=w,x=w,e,r;if($>y){var C=sn($/u*q(Y)),K=sn($/s*q(Y));(P-=C*2)>y?(C*=t?1:-1,R+=C,T-=C):(P=0,R=T=(f+c)/2),(S-=K*2)>y?(K*=t?1:-1,m+=K,g-=K):(S=0,m=g=(f+c)/2)}var G=s*F(m),H=s*q(m),L=u*F(T),M=u*q(T);if(w>y){var N=s*F(g),Q=s*q(g),V=u*F(R),W=u*q(R),E;if(B<rn)if(E=pn(G,H,V,W,N,Q,L,M)){var X=G-E[0],Z=H-E[1],b=N-E[0],k=Q-E[1],nn=1/q(on((X*b+Z*k)/(J(X*X+Z*Z)*J(b*b+k*k)))/2),en=J(E[0]*E[0]+E[1]*E[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}S>y?x>y?(e=U(V,W,G,H,s,x,t),r=U(N,Q,L,M,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(G,H),a.arc(0,0,s,m,g,!t)):a.moveTo(G,H),!(u>y)||!(P>y)?a.lineTo(L,M):p>y?(e=U(L,M,N,Q,u,-p,t),r=U(G,H,V,W,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,R,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[F(d)*n,q(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:j(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:j(+n),i):h},i.cornerRadius=function(n){return arguments.length?(I=typeof n=="function"?n:j(+n),i):I},i.padRadius=function(n){return arguments.length?(D=n==null?null:typeof n=="function"?n:j(+n),i):D},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:j(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:j(+n),i):A},i.padAngle=function(n){return arguments.length?(z=typeof n=="function"?n:j(+n),i):z},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
|