@inerrata-corporation/errata 2.0.17-dev.3504 → 2.0.17-dev.3527
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/consolidate-worker.mjs +53 -8
- package/errata.mjs +423 -92
- package/package.json +1 -1
- package/pass-worker.mjs +107 -50
package/package.json
CHANGED
package/pass-worker.mjs
CHANGED
|
@@ -693,6 +693,11 @@ var init_claim_id = __esm({
|
|
|
693
693
|
});
|
|
694
694
|
|
|
695
695
|
// ../../packages/shared/src/identity.ts
|
|
696
|
+
function packageCanonicalId(p) {
|
|
697
|
+
const eco = p.ecosystem.toLowerCase();
|
|
698
|
+
const name2 = eco === "npm" ? p.name.toLowerCase() : p.name;
|
|
699
|
+
return `pkg:${eco}/${name2}${p.version ? `@${p.version}` : ""}`;
|
|
700
|
+
}
|
|
696
701
|
var init_identity = __esm({
|
|
697
702
|
"../../packages/shared/src/identity.ts"() {
|
|
698
703
|
"use strict";
|
|
@@ -1807,10 +1812,10 @@ var init_regexes = __esm({
|
|
|
1807
1812
|
duration = /^P(?:(\d+W)|(?!.*W)(?=\d|T\d)(\d+Y)?(\d+M)?(\d+D)?(T(?=\d)(\d+H)?(\d+M)?(\d+([.,]\d+)?S)?)?)$/;
|
|
1808
1813
|
extendedDuration = /^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;
|
|
1809
1814
|
guid = /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$/;
|
|
1810
|
-
uuid = (
|
|
1811
|
-
if (!
|
|
1815
|
+
uuid = (version3) => {
|
|
1816
|
+
if (!version3)
|
|
1812
1817
|
return /^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/;
|
|
1813
|
-
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${
|
|
1818
|
+
return new RegExp(`^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-${version3}[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12})$`);
|
|
1814
1819
|
};
|
|
1815
1820
|
uuid4 = /* @__PURE__ */ uuid(4);
|
|
1816
1821
|
uuid6 = /* @__PURE__ */ uuid(6);
|
|
@@ -14619,10 +14624,10 @@ function fromJSONSchema(schema, params) {
|
|
|
14619
14624
|
if (typeof schema === "boolean") {
|
|
14620
14625
|
return schema ? z.any() : z.never();
|
|
14621
14626
|
}
|
|
14622
|
-
const
|
|
14627
|
+
const version3 = detectVersion(schema, params?.defaultTarget);
|
|
14623
14628
|
const defs = schema.$defs || schema.definitions || {};
|
|
14624
14629
|
const ctx = {
|
|
14625
|
-
version:
|
|
14630
|
+
version: version3,
|
|
14626
14631
|
defs,
|
|
14627
14632
|
refs: /* @__PURE__ */ new Map(),
|
|
14628
14633
|
processing: /* @__PURE__ */ new Set(),
|
|
@@ -15094,6 +15099,50 @@ var init_history_evidence = __esm({
|
|
|
15094
15099
|
}
|
|
15095
15100
|
});
|
|
15096
15101
|
|
|
15102
|
+
// ../../packages/shared/src/history-dependencies.ts
|
|
15103
|
+
function historyDependencyIdentity(raw) {
|
|
15104
|
+
const parsed = HistoryDependencyContextSchema.safeParse(raw);
|
|
15105
|
+
if (!parsed.success || !parsed.data.complete || parsed.data.conflict) return null;
|
|
15106
|
+
if (parsed.data.dependencies.some((d) => !exactHistoryDependencyVersion(d))) return null;
|
|
15107
|
+
return digest(parsed.data.dependencies.map((d) => [d.packageId, d.manifestId, d.side, d.declaredRange, d.resolvedVersion]).sort((a, b) => JSON.stringify(a).localeCompare(JSON.stringify(b))));
|
|
15108
|
+
}
|
|
15109
|
+
function exactHistoryDependencyVersion(d) {
|
|
15110
|
+
return d.resolvedVersion ?? (/^\d+\.\d+\.\d+(?:-[\w.-]+)?$/.test(d.declaredRange ?? "") ? d.declaredRange : null);
|
|
15111
|
+
}
|
|
15112
|
+
var version2, HistoryDependencySchema, HistoryDependencyContextSchema, HISTORY_RECONCILE_BUILD;
|
|
15113
|
+
var init_history_dependencies = __esm({
|
|
15114
|
+
"../../packages/shared/src/history-dependencies.ts"() {
|
|
15115
|
+
"use strict";
|
|
15116
|
+
init_zod();
|
|
15117
|
+
init_hash();
|
|
15118
|
+
init_identity();
|
|
15119
|
+
version2 = external_exports.string().max(160).nullable();
|
|
15120
|
+
HistoryDependencySchema = external_exports.object({
|
|
15121
|
+
packageId: external_exports.string().startsWith("pkg:").max(300),
|
|
15122
|
+
ecosystem: external_exports.string().min(1).max(20),
|
|
15123
|
+
name: external_exports.string().min(1).max(200),
|
|
15124
|
+
kind: external_exports.enum(["package", "sdk", "engine", "runtime", "image"]),
|
|
15125
|
+
manifestId: external_exports.string().regex(/^hmanifest_[a-f0-9]{32}$/),
|
|
15126
|
+
sourceCommit: external_exports.string().regex(/^[a-f0-9]{7,64}$/),
|
|
15127
|
+
side: external_exports.enum(["before", "after"]),
|
|
15128
|
+
/** Environment-only entries constrain applicability but never mint a package edge. */
|
|
15129
|
+
binding: external_exports.enum(["named", "import", "environment"]).optional(),
|
|
15130
|
+
declaredRange: version2,
|
|
15131
|
+
resolvedVersion: version2,
|
|
15132
|
+
pathTokens: external_exports.array(external_exports.string().regex(/^p\d+$/)).max(500),
|
|
15133
|
+
importTokens: external_exports.array(external_exports.string().regex(/^p\d+$/)).max(500)
|
|
15134
|
+
}).refine((d) => d.packageId === packageCanonicalId({ ecosystem: d.ecosystem, name: d.name }), "package identity must match its evidence");
|
|
15135
|
+
HistoryDependencyContextSchema = external_exports.object({
|
|
15136
|
+
schemaVersion: external_exports.literal("history-deps-1"),
|
|
15137
|
+
complete: external_exports.boolean(),
|
|
15138
|
+
dependencies: external_exports.array(HistoryDependencySchema).max(256),
|
|
15139
|
+
statedVersions: external_exports.array(external_exports.object({ packageId: external_exports.string().max(300), version: external_exports.string().max(80) })).max(64).optional(),
|
|
15140
|
+
conflict: external_exports.boolean().optional()
|
|
15141
|
+
});
|
|
15142
|
+
HISTORY_RECONCILE_BUILD = "history-reconcile-2";
|
|
15143
|
+
}
|
|
15144
|
+
});
|
|
15145
|
+
|
|
15097
15146
|
// ../../packages/shared/src/edge-rules.ts
|
|
15098
15147
|
function isValidEdge(from, type, to) {
|
|
15099
15148
|
const rule = EDGE_RULES[type];
|
|
@@ -15225,6 +15274,7 @@ var init_wire = __esm({
|
|
|
15225
15274
|
"use strict";
|
|
15226
15275
|
init_zod();
|
|
15227
15276
|
init_history_evidence();
|
|
15277
|
+
init_history_dependencies();
|
|
15228
15278
|
init_castalia();
|
|
15229
15279
|
init_edge_rules();
|
|
15230
15280
|
init_symbol_intent();
|
|
@@ -15348,6 +15398,7 @@ var init_wire = __esm({
|
|
|
15348
15398
|
extractedBy: external_exports.enum(INGEST_EXTRACTION_SOURCES).optional(),
|
|
15349
15399
|
sourceSupport: external_exports.literal("supported").optional(),
|
|
15350
15400
|
historicalAnchors: external_exports.array(HistoryAnchorSourceSchema).max(160).optional(),
|
|
15401
|
+
dependencyEvidence: external_exports.array(HistoryDependencySchema).max(256).optional(),
|
|
15351
15402
|
evidence: external_exports.array(HistoryEvidenceRefSchema).max(12).optional(),
|
|
15352
15403
|
verificationEvidence: external_exports.array(HistoryEvidenceRefSchema).max(12).optional(),
|
|
15353
15404
|
verifierBuild: external_exports.string().max(80).optional(),
|
|
@@ -15439,16 +15490,16 @@ var init_project_symbol = __esm({
|
|
|
15439
15490
|
// ../../packages/shared/src/lockfile.ts
|
|
15440
15491
|
function rankDirect(raw, ecosystem = "npm") {
|
|
15441
15492
|
const byName = /* @__PURE__ */ new Map();
|
|
15442
|
-
for (const { name: name2, version:
|
|
15493
|
+
for (const { name: name2, version: version3 } of raw) {
|
|
15443
15494
|
const prev = byName.get(name2);
|
|
15444
15495
|
if (prev) {
|
|
15445
15496
|
prev.importers++;
|
|
15446
15497
|
continue;
|
|
15447
15498
|
}
|
|
15448
15499
|
byName.set(name2, {
|
|
15449
|
-
purl: `pkg:${ecosystem}/${name2}@${
|
|
15500
|
+
purl: `pkg:${ecosystem}/${name2}@${version3}`,
|
|
15450
15501
|
name: name2,
|
|
15451
|
-
version:
|
|
15502
|
+
version: version3,
|
|
15452
15503
|
ecosystem,
|
|
15453
15504
|
importers: 1
|
|
15454
15505
|
});
|
|
@@ -15457,11 +15508,11 @@ function rankDirect(raw, ecosystem = "npm") {
|
|
|
15457
15508
|
(a, b) => b.importers - a.importers || a.name.localeCompare(b.name)
|
|
15458
15509
|
);
|
|
15459
15510
|
}
|
|
15460
|
-
function npmPurl(name2,
|
|
15461
|
-
return `pkg:npm/${name2}@${
|
|
15511
|
+
function npmPurl(name2, version3) {
|
|
15512
|
+
return `pkg:npm/${name2}@${version3}`;
|
|
15462
15513
|
}
|
|
15463
|
-
function component(name2,
|
|
15464
|
-
return { purl: npmPurl(name2,
|
|
15514
|
+
function component(name2, version3) {
|
|
15515
|
+
return { purl: npmPurl(name2, version3), name: name2, version: version3, ecosystem: "npm" };
|
|
15465
15516
|
}
|
|
15466
15517
|
function isNpmImporterPath(path) {
|
|
15467
15518
|
return path === "" || !path.includes("node_modules/");
|
|
@@ -15482,13 +15533,13 @@ function parsePackageLockJson(jsonText) {
|
|
|
15482
15533
|
const ix = path.lastIndexOf("node_modules/");
|
|
15483
15534
|
if (ix === -1) continue;
|
|
15484
15535
|
const name2 = path.slice(ix + "node_modules/".length);
|
|
15485
|
-
const
|
|
15486
|
-
if (!name2 || !
|
|
15487
|
-
components.push(component(name2,
|
|
15488
|
-
byPath.set(path, { name: name2, version:
|
|
15536
|
+
const version3 = typeof meta3.version === "string" ? meta3.version : "";
|
|
15537
|
+
if (!name2 || !version3) continue;
|
|
15538
|
+
components.push(component(name2, version3));
|
|
15539
|
+
byPath.set(path, { name: name2, version: version3 });
|
|
15489
15540
|
const depth = path.split("node_modules/").length;
|
|
15490
15541
|
const prev = hoisted.get(name2);
|
|
15491
|
-
if (!prev || depth < prev.depth) hoisted.set(name2, { version:
|
|
15542
|
+
if (!prev || depth < prev.depth) hoisted.set(name2, { version: version3, depth });
|
|
15492
15543
|
}
|
|
15493
15544
|
const dependencies = [];
|
|
15494
15545
|
for (const [path, meta3] of Object.entries(packages)) {
|
|
@@ -15531,9 +15582,9 @@ function splitPnpmKey(raw) {
|
|
|
15531
15582
|
const at = k.lastIndexOf("@");
|
|
15532
15583
|
if (at <= 0) return null;
|
|
15533
15584
|
const name2 = k.slice(0, at);
|
|
15534
|
-
const
|
|
15535
|
-
if (!name2 || !
|
|
15536
|
-
return { name: name2, version:
|
|
15585
|
+
const version3 = k.slice(at + 1);
|
|
15586
|
+
if (!name2 || !version3) return null;
|
|
15587
|
+
return { name: name2, version: version3 };
|
|
15537
15588
|
}
|
|
15538
15589
|
function parsePnpmImporters(lines) {
|
|
15539
15590
|
const DEP_SECTIONS = /* @__PURE__ */ new Set(["dependencies:", "devDependencies:", "optionalDependencies:"]);
|
|
@@ -15569,14 +15620,14 @@ function parsePnpmImporters(lines) {
|
|
|
15569
15620
|
if (indent === 8 && depName) {
|
|
15570
15621
|
const t = line.trim();
|
|
15571
15622
|
if (!t.startsWith("version:")) continue;
|
|
15572
|
-
let
|
|
15573
|
-
const paren =
|
|
15574
|
-
if (paren !== -1)
|
|
15575
|
-
if (!
|
|
15623
|
+
let version3 = t.slice("version:".length).trim().replace(/^['"]|['"]$/g, "");
|
|
15624
|
+
const paren = version3.indexOf("(");
|
|
15625
|
+
if (paren !== -1) version3 = version3.slice(0, paren);
|
|
15626
|
+
if (!version3 || version3.startsWith("link:") || version3.startsWith("file:") || version3.includes("://")) {
|
|
15576
15627
|
depName = null;
|
|
15577
15628
|
continue;
|
|
15578
15629
|
}
|
|
15579
|
-
raw.push({ name: depName, version:
|
|
15630
|
+
raw.push({ name: depName, version: version3 });
|
|
15580
15631
|
depName = null;
|
|
15581
15632
|
}
|
|
15582
15633
|
}
|
|
@@ -15692,19 +15743,19 @@ function parseGemfileLock(text) {
|
|
|
15692
15743
|
const spec = specLine.exec(line);
|
|
15693
15744
|
if (spec) {
|
|
15694
15745
|
const name2 = spec[1];
|
|
15695
|
-
const
|
|
15746
|
+
const version3 = (spec[2] ?? "").trim();
|
|
15696
15747
|
if (section === "path-or-git") {
|
|
15697
15748
|
nonRegistry.add(name2);
|
|
15698
15749
|
currentGem = null;
|
|
15699
15750
|
continue;
|
|
15700
15751
|
}
|
|
15701
|
-
if (!
|
|
15702
|
-
currentGem = { name: name2, version:
|
|
15703
|
-
registryVersions.set(name2,
|
|
15704
|
-
const purl = `pkg:gem/${name2}@${
|
|
15752
|
+
if (!version3) continue;
|
|
15753
|
+
currentGem = { name: name2, version: version3 };
|
|
15754
|
+
registryVersions.set(name2, version3);
|
|
15755
|
+
const purl = `pkg:gem/${name2}@${version3}`;
|
|
15705
15756
|
if (!seen.has(purl)) {
|
|
15706
15757
|
seen.add(purl);
|
|
15707
|
-
components.push({ purl, name: name2, version:
|
|
15758
|
+
components.push({ purl, name: name2, version: version3, ecosystem: "gem" });
|
|
15708
15759
|
}
|
|
15709
15760
|
continue;
|
|
15710
15761
|
}
|
|
@@ -15774,8 +15825,8 @@ function parseGodot(path, text) {
|
|
|
15774
15825
|
const m = /config\/features=PackedStringArray\(([^)]*)\)/.exec(text);
|
|
15775
15826
|
if (!m) return [];
|
|
15776
15827
|
const feats = (m[1] ?? "").split(",").map((f) => f.trim().replace(/^"|"$/g, "")).filter((f) => f.length > 0);
|
|
15777
|
-
const
|
|
15778
|
-
return [{ ecosystem: "godot", name: "godot", version:
|
|
15828
|
+
const version3 = feats.find((f) => /^\d+\.\d+/.test(f)) ?? null;
|
|
15829
|
+
return [{ ecosystem: "godot", name: "godot", version: version3, kind: "engine", manifest: path }];
|
|
15779
15830
|
}
|
|
15780
15831
|
function parsePackageJson(path, text) {
|
|
15781
15832
|
let obj;
|
|
@@ -15790,8 +15841,8 @@ function parsePackageJson(path, text) {
|
|
|
15790
15841
|
const section = obj[key];
|
|
15791
15842
|
if (!section || typeof section !== "object") continue;
|
|
15792
15843
|
for (const [name2, ver] of Object.entries(section)) {
|
|
15793
|
-
const
|
|
15794
|
-
deps.push({ ecosystem: "npm", name: name2, version:
|
|
15844
|
+
const version3 = ver ? String(ver) : null;
|
|
15845
|
+
deps.push({ ecosystem: "npm", name: name2, version: version3, kind: "package", manifest: path });
|
|
15795
15846
|
}
|
|
15796
15847
|
}
|
|
15797
15848
|
return deps;
|
|
@@ -15896,12 +15947,12 @@ function parseGradle(path, text) {
|
|
|
15896
15947
|
const re = new RegExp(`\\b(?:${GRADLE_CONFIGS})\\s*(?:\\(\\s*)?["']([^"']+)["']`, "g");
|
|
15897
15948
|
for (const m of text.matchAll(re)) {
|
|
15898
15949
|
const parts2 = (m[1] ?? "").split(":");
|
|
15899
|
-
const [group, artifact,
|
|
15950
|
+
const [group, artifact, version3] = parts2;
|
|
15900
15951
|
if (!group || !artifact || parts2.length < 2) continue;
|
|
15901
15952
|
deps.push({
|
|
15902
15953
|
ecosystem: "maven",
|
|
15903
15954
|
name: mavenName(group, artifact),
|
|
15904
|
-
version:
|
|
15955
|
+
version: version3?.trim() || null,
|
|
15905
15956
|
kind: "package",
|
|
15906
15957
|
manifest: path
|
|
15907
15958
|
});
|
|
@@ -15915,18 +15966,18 @@ function parseVersionCatalog(path, text) {
|
|
|
15915
15966
|
for (const line of (section[1] ?? "").split(/\r?\n/)) {
|
|
15916
15967
|
if (!line.trim() || line.trimStart().startsWith("#")) continue;
|
|
15917
15968
|
const module2 = /module\s*=\s*["']([^"']+)["']/.exec(line)?.[1];
|
|
15918
|
-
const
|
|
15969
|
+
const version3 = /version(?:\.ref)?\s*=\s*["']([^"']+)["']/.exec(line)?.[1] ?? null;
|
|
15919
15970
|
if (module2) {
|
|
15920
15971
|
const [group2, artifact2] = module2.split(":");
|
|
15921
15972
|
if (group2 && artifact2) {
|
|
15922
|
-
deps.push({ ecosystem: "maven", name: mavenName(group2, artifact2), version:
|
|
15973
|
+
deps.push({ ecosystem: "maven", name: mavenName(group2, artifact2), version: version3, kind: "package", manifest: path });
|
|
15923
15974
|
}
|
|
15924
15975
|
continue;
|
|
15925
15976
|
}
|
|
15926
15977
|
const group = /\bgroup\s*=\s*["']([^"']+)["']/.exec(line)?.[1];
|
|
15927
15978
|
const artifact = /\bname\s*=\s*["']([^"']+)["']/.exec(line)?.[1];
|
|
15928
15979
|
if (group && artifact) {
|
|
15929
|
-
deps.push({ ecosystem: "maven", name: mavenName(group, artifact), version:
|
|
15980
|
+
deps.push({ ecosystem: "maven", name: mavenName(group, artifact), version: version3, kind: "package", manifest: path });
|
|
15930
15981
|
}
|
|
15931
15982
|
}
|
|
15932
15983
|
return deps;
|
|
@@ -16080,7 +16131,9 @@ function historyReadPolicy(node, options = {}) {
|
|
|
16080
16131
|
const q = raw && typeof raw === "object" ? raw : {};
|
|
16081
16132
|
const source = q["sourceSupport"] ?? "unreviewed";
|
|
16082
16133
|
const applicability = q["applicability"] ?? "unknown";
|
|
16083
|
-
const
|
|
16134
|
+
const proof = q["reconciliationEvidence"];
|
|
16135
|
+
const environmentKnown = historyDependencyIdentity(q["dependencyContext"]) !== null && proof?.["build"] === HISTORY_RECONCILE_BUILD;
|
|
16136
|
+
const current = options.atCommit !== void 0 && q["evaluatedAtCommit"] === options.atCommit && environmentKnown;
|
|
16084
16137
|
const invalid = source === "contradicted" || source === "quarantined";
|
|
16085
16138
|
const passive = options.mode === "passive";
|
|
16086
16139
|
const validation = node.validationSource ?? attrs["validationSource"];
|
|
@@ -16090,12 +16143,13 @@ function historyReadPolicy(node, options = {}) {
|
|
|
16090
16143
|
return {
|
|
16091
16144
|
allow,
|
|
16092
16145
|
history: true,
|
|
16093
|
-
notice: `History-derived${at}; source ${String(source)}; applicability ${current ? String(applicability) : "unknown at this checkout"}; ${independentlyValidated ? "separate validation recorded" : "not independently validated"}.`
|
|
16146
|
+
notice: `History-derived${at}; source ${String(source)}; applicability ${current ? String(applicability) : "unknown at this checkout"}; ${environmentKnown ? "dependency context checked" : "dependency applicability unverified"}; ${independentlyValidated ? "separate validation recorded" : "not independently validated"}.`
|
|
16094
16147
|
};
|
|
16095
16148
|
}
|
|
16096
16149
|
var init_history_read = __esm({
|
|
16097
16150
|
"../../packages/shared/src/history-read.ts"() {
|
|
16098
16151
|
"use strict";
|
|
16152
|
+
init_history_dependencies();
|
|
16099
16153
|
}
|
|
16100
16154
|
});
|
|
16101
16155
|
|
|
@@ -16114,6 +16168,7 @@ var init_history_revision = __esm({
|
|
|
16114
16168
|
init_zod();
|
|
16115
16169
|
init_hash();
|
|
16116
16170
|
init_history_evidence();
|
|
16171
|
+
init_history_dependencies();
|
|
16117
16172
|
Sha = external_exports.string().regex(/^(?:[a-f0-9]{40}|[a-f0-9]{64})$/);
|
|
16118
16173
|
HistoryRevisionRequestSchema = external_exports.strictObject({
|
|
16119
16174
|
atCommit: Sha,
|
|
@@ -16122,7 +16177,8 @@ var init_history_revision = __esm({
|
|
|
16122
16177
|
occurrenceId: external_exports.string().min(1).max(100),
|
|
16123
16178
|
symbols: external_exports.array(external_exports.strictObject({ symbolId: external_exports.string().regex(/^sym_[a-f0-9]{8,64}$/), bodyHash: external_exports.string().regex(/^[a-f0-9]{8,64}$/) })).max(32),
|
|
16124
16179
|
/** Scrubbed, tokenized net change from this occurrence's source to atCommit. */
|
|
16125
|
-
diff: external_exports.string().max(16e3).optional()
|
|
16180
|
+
diff: external_exports.string().max(16e3).optional(),
|
|
16181
|
+
dependencyContext: HistoryDependencyContextSchema.optional()
|
|
16126
16182
|
})).max(50)
|
|
16127
16183
|
});
|
|
16128
16184
|
}
|
|
@@ -16169,6 +16225,7 @@ var init_src = __esm({
|
|
|
16169
16225
|
init_history_temporal();
|
|
16170
16226
|
init_history_revision();
|
|
16171
16227
|
init_history_evidence();
|
|
16228
|
+
init_history_dependencies();
|
|
16172
16229
|
init_hash();
|
|
16173
16230
|
init_error_signature();
|
|
16174
16231
|
init_canonicalize();
|
|
@@ -21534,10 +21591,10 @@ ${JSON.stringify(symbolNames, null, 2)}`);
|
|
|
21534
21591
|
this.language = null;
|
|
21535
21592
|
} else if (language.constructor === Language) {
|
|
21536
21593
|
address = language[0];
|
|
21537
|
-
const
|
|
21538
|
-
if (
|
|
21594
|
+
const version3 = C._ts_language_abi_version(address);
|
|
21595
|
+
if (version3 < MIN_COMPATIBLE_VERSION || LANGUAGE_VERSION < version3) {
|
|
21539
21596
|
throw new Error(
|
|
21540
|
-
`Incompatible language version ${
|
|
21597
|
+
`Incompatible language version ${version3}. Compatibility range ${MIN_COMPATIBLE_VERSION} through ${LANGUAGE_VERSION}.`
|
|
21541
21598
|
);
|
|
21542
21599
|
}
|
|
21543
21600
|
this.language = language;
|
|
@@ -26439,8 +26496,8 @@ var SqliteGraphStore = class {
|
|
|
26439
26496
|
freezeNode(liveId, t) {
|
|
26440
26497
|
const live = this.getNode(liveId);
|
|
26441
26498
|
if (!live) return null;
|
|
26442
|
-
const
|
|
26443
|
-
const frozenId = `${liveId}@v${
|
|
26499
|
+
const version3 = live.version ?? 1;
|
|
26500
|
+
const frozenId = `${liveId}@v${version3}`;
|
|
26444
26501
|
if (this.getNode(frozenId)) {
|
|
26445
26502
|
this.stmts.advanceLive.run({ live_id: liveId, t });
|
|
26446
26503
|
return frozenId;
|
|
@@ -26784,13 +26841,13 @@ function linkProblemToPackages(store2, problemId, text, ts, index) {
|
|
|
26784
26841
|
if (idx.size === 0) return { linked: [] };
|
|
26785
26842
|
const already = new Set(store2.outEdges(problemId, ["DEPENDS_ON"]).map((e) => e.to));
|
|
26786
26843
|
const linked = [];
|
|
26787
|
-
for (const { node, version:
|
|
26844
|
+
for (const { node, version: version3 } of matchPackagesInText(text, idx)) {
|
|
26788
26845
|
if (already.has(node.id)) continue;
|
|
26789
26846
|
addDependency(store2, {
|
|
26790
26847
|
fromId: problemId,
|
|
26791
26848
|
toId: node.id,
|
|
26792
26849
|
relation: "depends-on",
|
|
26793
|
-
evidence:
|
|
26850
|
+
evidence: version3 ? `named in problem (@${version3})` : "named in problem statement",
|
|
26794
26851
|
ts,
|
|
26795
26852
|
extractionSource: "daemon-extracted"
|
|
26796
26853
|
});
|