@superbee/core 0.2.0-pre.15 → 0.2.0-pre.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +316 -0
- package/dist/backend.d.ts +3 -0
- package/dist/backend.d.ts.map +1 -1
- package/dist/backend.js +7 -0
- package/dist/backend.js.map +1 -1
- package/dist/blob-contract.d.ts +80 -0
- package/dist/blob-contract.d.ts.map +1 -0
- package/dist/blob-contract.js +131 -0
- package/dist/blob-contract.js.map +1 -0
- package/dist/blob-journal.d.ts +117 -0
- package/dist/blob-journal.d.ts.map +1 -0
- package/dist/blob-journal.js +168 -0
- package/dist/blob-journal.js.map +1 -0
- package/dist/bundle-health/index.d.ts +14 -0
- package/dist/bundle-health/index.d.ts.map +1 -0
- package/dist/bundle-health/index.js +12 -0
- package/dist/bundle-health/index.js.map +1 -0
- package/dist/bundle-health/kind-findings.d.ts +44 -0
- package/dist/bundle-health/kind-findings.d.ts.map +1 -0
- package/dist/bundle-health/kind-findings.js +68 -0
- package/dist/bundle-health/kind-findings.js.map +1 -0
- package/dist/bundle-health/legacy-page.d.ts +39 -0
- package/dist/bundle-health/legacy-page.d.ts.map +1 -0
- package/dist/bundle-health/legacy-page.js +50 -0
- package/dist/bundle-health/legacy-page.js.map +1 -0
- package/dist/bundle-health/report.d.ts +202 -0
- package/dist/bundle-health/report.d.ts.map +1 -0
- package/dist/bundle-health/report.js +438 -0
- package/dist/bundle-health/report.js.map +1 -0
- package/dist/engine.d.ts +1 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js.map +1 -1
- package/dist/file-journaled-backend-internal.d.ts +2 -0
- package/dist/file-journaled-backend-internal.d.ts.map +1 -1
- package/dist/file-journaled-backend-internal.js +2 -0
- package/dist/file-journaled-backend-internal.js.map +1 -1
- package/dist/file-journaled-backend.d.ts +14 -2
- package/dist/file-journaled-backend.d.ts.map +1 -1
- package/dist/file-journaled-backend.js +245 -37
- package/dist/file-journaled-backend.js.map +1 -1
- package/dist/hosted-client/binding.d.ts +7 -0
- package/dist/hosted-client/binding.d.ts.map +1 -0
- package/dist/hosted-client/binding.js +10 -0
- package/dist/hosted-client/binding.js.map +1 -0
- package/dist/hosted-client/blob-delivery.d.ts +61 -0
- package/dist/hosted-client/blob-delivery.d.ts.map +1 -0
- package/dist/hosted-client/blob-delivery.js +147 -0
- package/dist/hosted-client/blob-delivery.js.map +1 -0
- package/dist/hosted-client/bundle-listing.d.ts +46 -0
- package/dist/hosted-client/bundle-listing.d.ts.map +1 -0
- package/dist/hosted-client/bundle-listing.js +36 -0
- package/dist/hosted-client/bundle-listing.js.map +1 -0
- package/dist/hosted-client/client.d.ts +155 -0
- package/dist/hosted-client/client.d.ts.map +1 -0
- package/dist/hosted-client/client.js +278 -0
- package/dist/hosted-client/client.js.map +1 -0
- package/dist/hosted-client/errors.d.ts +16 -0
- package/dist/hosted-client/errors.d.ts.map +1 -0
- package/dist/hosted-client/errors.js +22 -0
- package/dist/hosted-client/errors.js.map +1 -0
- package/dist/hosted-client/index.d.ts +23 -0
- package/dist/hosted-client/index.d.ts.map +1 -0
- package/dist/hosted-client/index.js +25 -0
- package/dist/hosted-client/index.js.map +1 -0
- package/dist/hosted-client/node.d.ts +70 -0
- package/dist/hosted-client/node.d.ts.map +1 -0
- package/dist/hosted-client/node.js +214 -0
- package/dist/hosted-client/node.js.map +1 -0
- package/dist/hosted-client/reference.d.ts +12 -0
- package/dist/hosted-client/reference.d.ts.map +1 -0
- package/dist/hosted-client/reference.js +29 -0
- package/dist/hosted-client/reference.js.map +1 -0
- package/dist/hosted-client/write.d.ts +200 -0
- package/dist/hosted-client/write.d.ts.map +1 -0
- package/dist/hosted-client/write.js +401 -0
- package/dist/hosted-client/write.js.map +1 -0
- package/dist/hosted-transport/answer-rows.d.ts +29 -2
- package/dist/hosted-transport/answer-rows.d.ts.map +1 -1
- package/dist/hosted-transport/answer-rows.js +60 -2
- package/dist/hosted-transport/answer-rows.js.map +1 -1
- package/dist/hosted-transport/blob-reads.d.ts +35 -0
- package/dist/hosted-transport/blob-reads.d.ts.map +1 -0
- package/dist/hosted-transport/blob-reads.js +179 -0
- package/dist/hosted-transport/blob-reads.js.map +1 -0
- package/dist/hosted-transport/blob-write.d.ts +34 -0
- package/dist/hosted-transport/blob-write.d.ts.map +1 -0
- package/dist/hosted-transport/blob-write.js +115 -0
- package/dist/hosted-transport/blob-write.js.map +1 -0
- package/dist/hosted-transport/carrier.d.ts +8 -9
- package/dist/hosted-transport/carrier.d.ts.map +1 -1
- package/dist/hosted-transport/carrier.js +40 -41
- package/dist/hosted-transport/carrier.js.map +1 -1
- package/dist/hosted-transport/index.d.ts +4 -4
- package/dist/hosted-transport/index.d.ts.map +1 -1
- package/dist/hosted-transport/index.js +4 -4
- package/dist/hosted-transport/index.js.map +1 -1
- package/dist/hosted-transport/read-adapter.d.ts +6 -0
- package/dist/hosted-transport/read-adapter.d.ts.map +1 -1
- package/dist/hosted-transport/read-adapter.js +11 -0
- package/dist/hosted-transport/read-adapter.js.map +1 -1
- package/dist/hosted-transport/whole-document-transport.d.ts +1 -1
- package/dist/hosted-transport/whole-document-transport.d.ts.map +1 -1
- package/dist/hosted-transport/whole-document-transport.js +20 -12
- package/dist/hosted-transport/whole-document-transport.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/journaled-backend.d.ts +10 -2
- package/dist/journaled-backend.d.ts.map +1 -1
- package/dist/journaled-backend.js +3 -3
- package/dist/journaled-backend.js.map +1 -1
- package/dist/kinds-load.js +4 -4
- package/dist/kinds-load.js.map +1 -1
- package/dist/kinds.d.ts.map +1 -1
- package/dist/kinds.js +3 -2
- package/dist/kinds.js.map +1 -1
- package/dist/link-types.d.ts +26 -0
- package/dist/link-types.d.ts.map +1 -0
- package/dist/link-types.js +57 -0
- package/dist/link-types.js.map +1 -0
- package/dist/paths.d.ts +16 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/paths.js +25 -0
- package/dist/paths.js.map +1 -1
- package/dist/platform.d.ts +4 -0
- package/dist/platform.d.ts.map +1 -1
- package/dist/platform.js +16 -0
- package/dist/platform.js.map +1 -1
- package/dist/query-filter.d.ts +9 -0
- package/dist/query-filter.d.ts.map +1 -1
- package/dist/query-filter.js +19 -3
- package/dist/query-filter.js.map +1 -1
- package/dist/recipe-lifecycle/errors.d.ts +77 -0
- package/dist/recipe-lifecycle/errors.d.ts.map +1 -0
- package/dist/recipe-lifecycle/errors.js +96 -0
- package/dist/recipe-lifecycle/errors.js.map +1 -0
- package/dist/recipe-lifecycle/evolution.d.ts +71 -0
- package/dist/recipe-lifecycle/evolution.d.ts.map +1 -0
- package/dist/recipe-lifecycle/evolution.js +659 -0
- package/dist/recipe-lifecycle/evolution.js.map +1 -0
- package/dist/recipe-lifecycle/index.d.ts +23 -0
- package/dist/recipe-lifecycle/index.d.ts.map +1 -0
- package/dist/recipe-lifecycle/index.js +19 -0
- package/dist/recipe-lifecycle/index.js.map +1 -0
- package/dist/recipe-lifecycle/install.d.ts +111 -0
- package/dist/recipe-lifecycle/install.d.ts.map +1 -0
- package/dist/recipe-lifecycle/install.js +412 -0
- package/dist/recipe-lifecycle/install.js.map +1 -0
- package/dist/recipe-lifecycle/legacy-aliases.d.ts +16 -0
- package/dist/recipe-lifecycle/legacy-aliases.d.ts.map +1 -0
- package/dist/recipe-lifecycle/legacy-aliases.js +51 -0
- package/dist/recipe-lifecycle/legacy-aliases.js.map +1 -0
- package/dist/recipe-lifecycle/stamp.d.ts +98 -0
- package/dist/recipe-lifecycle/stamp.d.ts.map +1 -0
- package/dist/recipe-lifecycle/stamp.js +260 -0
- package/dist/recipe-lifecycle/stamp.js.map +1 -0
- package/dist/recipes.d.ts +5 -0
- package/dist/recipes.d.ts.map +1 -1
- package/dist/recipes.js +5 -0
- package/dist/recipes.js.map +1 -1
- package/dist/record-overlay/apply.d.ts +43 -0
- package/dist/record-overlay/apply.d.ts.map +1 -0
- package/dist/record-overlay/apply.js +490 -0
- package/dist/record-overlay/apply.js.map +1 -0
- package/dist/record-overlay/canonical.d.ts +14 -0
- package/dist/record-overlay/canonical.d.ts.map +1 -0
- package/dist/record-overlay/canonical.js +31 -0
- package/dist/record-overlay/canonical.js.map +1 -0
- package/dist/record-overlay/digest.d.ts +4 -0
- package/dist/record-overlay/digest.d.ts.map +1 -0
- package/dist/record-overlay/digest.js +11 -0
- package/dist/record-overlay/digest.js.map +1 -0
- package/dist/record-overlay/errors.d.ts +40 -0
- package/dist/record-overlay/errors.d.ts.map +1 -0
- package/dist/record-overlay/errors.js +51 -0
- package/dist/record-overlay/errors.js.map +1 -0
- package/dist/record-overlay/findings.d.ts +5 -0
- package/dist/record-overlay/findings.d.ts.map +1 -0
- package/dist/record-overlay/findings.js +83 -0
- package/dist/record-overlay/findings.js.map +1 -0
- package/dist/record-overlay/index.d.ts +23 -0
- package/dist/record-overlay/index.d.ts.map +1 -0
- package/dist/record-overlay/index.js +21 -0
- package/dist/record-overlay/index.js.map +1 -0
- package/dist/record-overlay/plan.d.ts +12 -0
- package/dist/record-overlay/plan.d.ts.map +1 -0
- package/dist/record-overlay/plan.js +284 -0
- package/dist/record-overlay/plan.js.map +1 -0
- package/dist/record-overlay/policy.d.ts +60 -0
- package/dist/record-overlay/policy.d.ts.map +1 -0
- package/dist/record-overlay/policy.js +209 -0
- package/dist/record-overlay/policy.js.map +1 -0
- package/dist/record-overlay/redact.d.ts +3 -0
- package/dist/record-overlay/redact.d.ts.map +1 -0
- package/dist/record-overlay/redact.js +27 -0
- package/dist/record-overlay/redact.js.map +1 -0
- package/dist/record-overlay/signal-kind.d.ts +30 -0
- package/dist/record-overlay/signal-kind.d.ts.map +1 -0
- package/dist/record-overlay/signal-kind.js +38 -0
- package/dist/record-overlay/signal-kind.js.map +1 -0
- package/dist/record-overlay/signal-text.d.ts +45 -0
- package/dist/record-overlay/signal-text.d.ts.map +1 -0
- package/dist/record-overlay/signal-text.js +116 -0
- package/dist/record-overlay/signal-text.js.map +1 -0
- package/dist/record-overlay/source-index.d.ts +19 -0
- package/dist/record-overlay/source-index.d.ts.map +1 -0
- package/dist/record-overlay/source-index.js +102 -0
- package/dist/record-overlay/source-index.js.map +1 -0
- package/dist/record-overlay/types.d.ts +286 -0
- package/dist/record-overlay/types.d.ts.map +1 -0
- package/dist/record-overlay/types.js +2 -0
- package/dist/record-overlay/types.js.map +1 -0
- package/dist/remote-operations.js +5 -2
- package/dist/remote-operations.js.map +1 -1
- package/dist/storage.d.ts +5 -1
- package/dist/storage.d.ts.map +1 -1
- package/dist/storage.js +4 -1
- package/dist/storage.js.map +1 -1
- package/dist/uncertain-write.d.ts +107 -6
- package/dist/uncertain-write.d.ts.map +1 -1
- package/dist/uncertain-write.js +67 -32
- package/dist/uncertain-write.js.map +1 -1
- package/dist/write-identity.d.ts +5 -0
- package/dist/write-identity.d.ts.map +1 -0
- package/dist/write-identity.js +9 -0
- package/dist/write-identity.js.map +1 -0
- package/package.json +21 -1
|
@@ -0,0 +1,438 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The bundle health report: every finding `superbee status` prints, computed from one bundle read.
|
|
3
|
+
*
|
|
4
|
+
* Composition only: Kind conformance is `validateAgainstKind`, links are `parseLinksFromDoc` and
|
|
5
|
+
* `parseQualifiedLinks`, staleness is `freshness()`, View registrations are `parseRegistration`.
|
|
6
|
+
* One `loadKinds`, one lenient `query`, two prefix-scoped `listBlobs` and one root-index read per
|
|
7
|
+
* call; every finding derives in memory from those results. Orphans and both graph lints come from
|
|
8
|
+
* the edge sets built while scanning for unresolved links, never a per-document backlink query.
|
|
9
|
+
*
|
|
10
|
+
* Findings are data, never errors: a document whose frontmatter does not parse is a `malformed`
|
|
11
|
+
* row, and an unresolved link is information (OKF permits links to knowledge not yet written).
|
|
12
|
+
*
|
|
13
|
+
* Top-level report keys are camelCase; row keys are snake_case, the rows `superbee status` prints.
|
|
14
|
+
*/
|
|
15
|
+
import { listBlobs, query, readBundleOkfVersion } from "../bundle-ops.js";
|
|
16
|
+
import { createLocalResolver, resolveQualifiedLinks } from "../cross-bundle.js";
|
|
17
|
+
import { BUNDLE_NAME_DOC_ID, BUNDLE_NAME_DOC_TYPE, DEPENDENCIES_DOC_ID, DEPENDENCIES_DOC_TYPE, declaredBundleId, parseDependencies, } from "../dependencies.js";
|
|
18
|
+
import { freshness, invalidLegacyTimestamp, staleAfterInstant } from "../freshness.js";
|
|
19
|
+
import { MalformedDocumentError } from "../frontmatter-contract.js";
|
|
20
|
+
import { freshnessHorizonMs, isKindFieldValidationWarning, isTerminal, projectKindValidationWarnings, validateAgainstKind, } from "../kinds.js";
|
|
21
|
+
import { loadKinds } from "../kinds-load.js";
|
|
22
|
+
import { collectLinkDeclarations, localEdgeQualifiedDeclaration, qualifiedEdgeViolation } from "../link-types.js";
|
|
23
|
+
import { parseLinksFromDoc } from "../links.js";
|
|
24
|
+
import { isOkfLifecycleStatus } from "../okf-lifecycle.js";
|
|
25
|
+
import { invalidOkfTimestamps } from "../okf-timestamps.js";
|
|
26
|
+
import { isAnyEntryKey, isAnyRegistryId, isPageTypeName, isViewEntryVersion, parseRegistration, VIEW_ENTRY_PREFIX, } from "../page.js";
|
|
27
|
+
import { isQualifiedHref, parseQualifiedLinks } from "../qualified-links.js";
|
|
28
|
+
import { trustTierCounts } from "../verification.js";
|
|
29
|
+
import { hasLegacyBridgeField, isLegacyPageConvention, isLegacyPageDoc, isLegacyRegistryDocId, LEGACY_PAGE_BLOB_PREFIX, } from "./legacy-page.js";
|
|
30
|
+
/** A document's `type`, or "" when absent or not a string: the one place this coercion happens. */
|
|
31
|
+
function docType(doc) {
|
|
32
|
+
return typeof doc.frontmatter.type === "string" ? doc.frontmatter.type : "";
|
|
33
|
+
}
|
|
34
|
+
/** Preserve ordinary YAML value shapes while keeping unsupported JSON values legible. */
|
|
35
|
+
function diagnosticValue(value) {
|
|
36
|
+
try {
|
|
37
|
+
return JSON.parse(JSON.stringify(value, (_key, item) => typeof item === "number" && !Number.isFinite(item) ? `<${String(item)}>` : item));
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// YAML aliases can form cycles; the report must still name the offending document.
|
|
41
|
+
return `<non-JSON ${Array.isArray(value) ? "array" : typeof value}: circular or too deeply nested>`;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Documents that define the bundle's operating model or identity rather than participating as
|
|
46
|
+
* concept instances. Their lack of inbound concept links is intentional, so they are never orphans.
|
|
47
|
+
*/
|
|
48
|
+
function isGraphDefinition(doc) {
|
|
49
|
+
const type = docType(doc);
|
|
50
|
+
return type === "Convention" ||
|
|
51
|
+
isPageTypeName(type) ||
|
|
52
|
+
isLegacyPageDoc(doc.frontmatter) ||
|
|
53
|
+
(type === "Reference" && doc.id.startsWith("references/")) ||
|
|
54
|
+
(type === BUNDLE_NAME_DOC_TYPE && doc.id === BUNDLE_NAME_DOC_ID) ||
|
|
55
|
+
(type === DEPENDENCIES_DOC_TYPE && doc.id === DEPENDENCIES_DOC_ID);
|
|
56
|
+
}
|
|
57
|
+
function okfV02WorkflowStatusCollisions(registry, docs) {
|
|
58
|
+
const affectedByKind = new Map();
|
|
59
|
+
const observedValuesByKind = new Map();
|
|
60
|
+
for (const doc of docs) {
|
|
61
|
+
const value = doc.frontmatter.status;
|
|
62
|
+
if (value === undefined || isOkfLifecycleStatus(value))
|
|
63
|
+
continue;
|
|
64
|
+
const type = docType(doc);
|
|
65
|
+
affectedByKind.set(type, (affectedByKind.get(type) ?? 0) + 1);
|
|
66
|
+
const display = typeof value === "string" ? value : `<${Array.isArray(value) ? "array" : typeof value}>`;
|
|
67
|
+
const observed = observedValuesByKind.get(type) ?? new Set();
|
|
68
|
+
observed.add(display);
|
|
69
|
+
observedValuesByKind.set(type, observed);
|
|
70
|
+
}
|
|
71
|
+
const rows = [];
|
|
72
|
+
for (const kind of [...registry.kinds.values()].sort((a, b) => a.governs.localeCompare(b.governs))) {
|
|
73
|
+
const declaresStatus = kind.fields.required.includes("status") || kind.fields.optional.includes("status");
|
|
74
|
+
if (!declaresStatus)
|
|
75
|
+
continue;
|
|
76
|
+
const declaredValues = kind.fields.values.status;
|
|
77
|
+
const incompatibleValues = (declaredValues ?? []).filter((value) => !isOkfLifecycleStatus(value));
|
|
78
|
+
const affectedDocuments = affectedByKind.get(kind.governs) ?? 0;
|
|
79
|
+
if (declaredValues !== undefined && incompatibleValues.length === 0 && affectedDocuments === 0)
|
|
80
|
+
continue;
|
|
81
|
+
rows.push({
|
|
82
|
+
kind: kind.governs,
|
|
83
|
+
convention: kind.id,
|
|
84
|
+
declaration: declaredValues === undefined ? "unbounded" : "enumerated",
|
|
85
|
+
incompatible_values: incompatibleValues,
|
|
86
|
+
observed_incompatible_values: [...(observedValuesByKind.get(kind.governs) ?? [])].sort(),
|
|
87
|
+
affected_documents: affectedDocuments,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
return rows;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Compute the health report for `bundle`. Read-only: it reads through the bundle's backend and
|
|
94
|
+
* never writes. It throws only what it propagates: `InvalidInputError` for a backend-less bundle in
|
|
95
|
+
* a runtime with no default, backend errors other than `MalformedDocumentError` (a finding), and
|
|
96
|
+
* whatever the `bindings` hook throws.
|
|
97
|
+
*/
|
|
98
|
+
export async function bundleHealth(bundle, options = {}) {
|
|
99
|
+
// A document whose frontmatter does not parse is its own finding, never an abort.
|
|
100
|
+
const malformed = [];
|
|
101
|
+
const [registry, docs, legacyBlobKeys, viewBlobKeys, okfVersionRead] = await Promise.all([
|
|
102
|
+
loadKinds(bundle),
|
|
103
|
+
query(bundle, {}, { onSkip: (s) => malformed.push({ id: s.id, reason: s.reason }) }),
|
|
104
|
+
// legacyNaming: blob keys still under the legacy pages/ prefix.
|
|
105
|
+
listBlobs(bundle, LEGACY_PAGE_BLOB_PREFIX),
|
|
106
|
+
// views: the views/ half of the entry-key existence set (the legacy listing is the other half).
|
|
107
|
+
listBlobs(bundle, VIEW_ENTRY_PREFIX),
|
|
108
|
+
readBundleOkfVersion(bundle)
|
|
109
|
+
.then((version) => ({ version }))
|
|
110
|
+
.catch((error) => {
|
|
111
|
+
if (!(error instanceof MalformedDocumentError))
|
|
112
|
+
throw error;
|
|
113
|
+
return { version: undefined, malformed: { id: "index.md", reason: error.message } };
|
|
114
|
+
}),
|
|
115
|
+
]);
|
|
116
|
+
if ("malformed" in okfVersionRead)
|
|
117
|
+
malformed.unshift(okfVersionRead.malformed);
|
|
118
|
+
const okfVersion = okfVersionRead.version;
|
|
119
|
+
const byId = new Set(docs.map((d) => d.id));
|
|
120
|
+
const docsById = new Map(docs.map((d) => [d.id, d]));
|
|
121
|
+
// Kind lint, per violation; conformance debt regroups the same pass by document and keeps only
|
|
122
|
+
// frontmatter-level codes (a missing body section names no field an update could set).
|
|
123
|
+
const kindLint = [];
|
|
124
|
+
const conformanceDebtDocs = new Map(); // id -> type, first seen (docs is id-sorted)
|
|
125
|
+
for (const doc of docs) {
|
|
126
|
+
const kind = registry.kinds.get(docType(doc));
|
|
127
|
+
if (!kind)
|
|
128
|
+
continue;
|
|
129
|
+
for (const w of projectKindValidationWarnings(okfVersion, kind, validateAgainstKind(doc, kind))) {
|
|
130
|
+
kindLint.push({ id: doc.id, field: w.field ?? "", code: w.code });
|
|
131
|
+
if (isKindFieldValidationWarning(w) && !conformanceDebtDocs.has(doc.id)) {
|
|
132
|
+
conformanceDebtDocs.set(doc.id, docType(doc));
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// The declared typed-edge vocabulary, shared with `link add`'s write-time lint.
|
|
137
|
+
const linkTypeDeclarations = collectLinkDeclarations(registry);
|
|
138
|
+
const unresolvedLinks = [];
|
|
139
|
+
const inbound = new Set();
|
|
140
|
+
const outbound = new Set();
|
|
141
|
+
// id -> resolved inbound edges from OTHER documents (a self-link rescues nothing).
|
|
142
|
+
const inboundEdges = new Map();
|
|
143
|
+
const linkTypeViolations = [];
|
|
144
|
+
const crossLinkTypeViolations = [];
|
|
145
|
+
for (const doc of docs) {
|
|
146
|
+
for (const l of parseLinksFromDoc(doc)) {
|
|
147
|
+
// A malformed `okf:` href without `//` also parses as a local link; it counts once, as a
|
|
148
|
+
// cross-bundle invalid_ref, never as a local edge.
|
|
149
|
+
if (isQualifiedHref(l.href))
|
|
150
|
+
continue;
|
|
151
|
+
// A local link under a qualified declaration is a cross-bundle type violation whether or not
|
|
152
|
+
// its local target exists.
|
|
153
|
+
const qualifiedDeclaration = localEdgeQualifiedDeclaration(linkTypeDeclarations.get(l.text), docType(doc));
|
|
154
|
+
if (qualifiedDeclaration) {
|
|
155
|
+
crossLinkTypeViolations.push({
|
|
156
|
+
from: doc.id,
|
|
157
|
+
href: l.href,
|
|
158
|
+
text: l.text,
|
|
159
|
+
expected: `${qualifiedDeclaration.governs} -> ${qualifiedDeclaration.target}`,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
// Any non-self link is an intentional outgoing edge; an unresolved one has its own finding,
|
|
163
|
+
// so it must not also make its source an orphan.
|
|
164
|
+
if (l.to !== doc.id)
|
|
165
|
+
outbound.add(doc.id);
|
|
166
|
+
if (!byId.has(l.to)) {
|
|
167
|
+
unresolvedLinks.push({ from: doc.id, href: l.href });
|
|
168
|
+
continue;
|
|
169
|
+
}
|
|
170
|
+
if (l.to !== doc.id) {
|
|
171
|
+
inbound.add(l.to);
|
|
172
|
+
const list = inboundEdges.get(l.to) ?? [];
|
|
173
|
+
list.push({ text: l.text, sourceType: docType(doc) });
|
|
174
|
+
inboundEdges.set(l.to, list);
|
|
175
|
+
}
|
|
176
|
+
// A resolved edge whose text is a declared link type its source or target does not conform to.
|
|
177
|
+
const declared = linkTypeDeclarations.get(l.text);
|
|
178
|
+
if (declared && declared.length > 0 && !qualifiedDeclaration) {
|
|
179
|
+
const sourceType = docType(doc);
|
|
180
|
+
const targetType = docType(docsById.get(l.to));
|
|
181
|
+
const matched = declared.find((d) => d.governs === sourceType) ?? declared[0];
|
|
182
|
+
const sourceOk = declared.some((d) => d.governs === sourceType);
|
|
183
|
+
const targetOk = targetType === matched.target;
|
|
184
|
+
if (!sourceOk || !targetOk) {
|
|
185
|
+
linkTypeViolations.push({
|
|
186
|
+
from: doc.id,
|
|
187
|
+
to: l.to,
|
|
188
|
+
text: l.text,
|
|
189
|
+
expected: `${matched.governs} -> ${matched.target}`,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Cross-bundle links, parsed from the documents already in hand.
|
|
196
|
+
const qualifiedLinks = [];
|
|
197
|
+
for (const doc of docs) {
|
|
198
|
+
for (const q of parseQualifiedLinks(doc)) {
|
|
199
|
+
qualifiedLinks.push(q);
|
|
200
|
+
if (!q.ref)
|
|
201
|
+
continue;
|
|
202
|
+
const violation = qualifiedEdgeViolation(linkTypeDeclarations.get(q.text), docType(doc), q.ref.alias);
|
|
203
|
+
if (violation) {
|
|
204
|
+
crossLinkTypeViolations.push({
|
|
205
|
+
from: doc.id,
|
|
206
|
+
href: q.href,
|
|
207
|
+
text: q.text,
|
|
208
|
+
expected: `${violation.governs} -> ${violation.target}`,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
const dependenciesDoc = docsById.get(DEPENDENCIES_DOC_ID);
|
|
214
|
+
const hasCrossBundle = dependenciesDoc !== undefined || qualifiedLinks.length > 0;
|
|
215
|
+
const selfBundleId = declaredBundleId(docsById.get(BUNDLE_NAME_DOC_ID)) ?? options.selfBundleId;
|
|
216
|
+
const declaredDeps = parseDependencies(dependenciesDoc, selfBundleId === undefined ? {} : { selfBundleId });
|
|
217
|
+
// Binding runs here, after every read and on this one parse, so a malformed or absent declaration
|
|
218
|
+
// stays a finding and a self alias is already dropped when the binder sees the declaration.
|
|
219
|
+
const bindings = typeof options.bindings === "function"
|
|
220
|
+
? await options.bindings(declaredDeps)
|
|
221
|
+
: options.bindings ?? new Map();
|
|
222
|
+
let crossBundle = null;
|
|
223
|
+
if (hasCrossBundle) {
|
|
224
|
+
let unchecked = 0;
|
|
225
|
+
const checked = qualifiedLinks.filter((q) => {
|
|
226
|
+
const unbound = q.ref !== null && declaredDeps.dependencies.has(q.ref.alias) && !bindings.has(q.ref.alias);
|
|
227
|
+
if (unbound)
|
|
228
|
+
unchecked++;
|
|
229
|
+
return !unbound;
|
|
230
|
+
});
|
|
231
|
+
const resolver = createLocalResolver({ dependencies: declaredDeps.dependencies, rejected: declaredDeps.rejected, bindings });
|
|
232
|
+
// One probe per bound alias rides the same resolve call, so each binding's verdict (identity,
|
|
233
|
+
// pin) comes from the resolver and its copy is still read in one batch.
|
|
234
|
+
const probeAliases = [...bindings.keys()];
|
|
235
|
+
const probes = probeAliases.map((alias) => {
|
|
236
|
+
const ref = { alias, id: BUNDLE_NAME_DOC_ID };
|
|
237
|
+
return { from: BUNDLE_NAME_DOC_ID, text: "", href: "", ref };
|
|
238
|
+
});
|
|
239
|
+
const results = await resolveQualifiedLinks(resolver, [...checked, ...probes]);
|
|
240
|
+
const verdictByAlias = new Map();
|
|
241
|
+
results.slice(checked.length).forEach((r, i) => {
|
|
242
|
+
const resolution = r.resolution;
|
|
243
|
+
const state = resolution.state === "resolved" || resolution.reason === "target_missing" ? "ok" : resolution.reason;
|
|
244
|
+
verdictByAlias.set(probeAliases[i], state);
|
|
245
|
+
});
|
|
246
|
+
const unresolved = [];
|
|
247
|
+
for (const { link, resolution } of results.slice(0, checked.length)) {
|
|
248
|
+
if (resolution.state === "resolved")
|
|
249
|
+
continue;
|
|
250
|
+
unresolved.push({ from: link.from, href: link.href, reason: resolution.reason, detail: resolution.detail });
|
|
251
|
+
}
|
|
252
|
+
const dependencies = [];
|
|
253
|
+
for (const entry of declaredDeps.dependencies.values()) {
|
|
254
|
+
dependencies.push({
|
|
255
|
+
alias: entry.alias,
|
|
256
|
+
bundle_id: entry.bundle_id,
|
|
257
|
+
state: verdictByAlias.get(entry.alias) ?? "unbound",
|
|
258
|
+
bound: bindings.get(entry.alias)?.label ?? null,
|
|
259
|
+
pin: entry.pin?.value ?? null,
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
crossBundle = {
|
|
263
|
+
links: qualifiedLinks.length,
|
|
264
|
+
unchecked,
|
|
265
|
+
unresolved,
|
|
266
|
+
dependencies,
|
|
267
|
+
problems: declaredDeps.problems.map((p) => ({ code: p.code, alias: p.alias ?? null, detail: p.detail })),
|
|
268
|
+
};
|
|
269
|
+
}
|
|
270
|
+
// Orphans are isolated content documents inside an established graph: a bundle with no resolved
|
|
271
|
+
// edge has not adopted graph structure yet, roots with outbound edges are intentional, and
|
|
272
|
+
// definition documents are classified above.
|
|
273
|
+
const orphans = [];
|
|
274
|
+
if (inbound.size > 0) {
|
|
275
|
+
for (const doc of docs) {
|
|
276
|
+
if (!inbound.has(doc.id) && !outbound.has(doc.id) && !isGraphDefinition(doc)) {
|
|
277
|
+
orphans.push({ id: doc.id, type: docType(doc) });
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
// One freshness authority handles both standard v0.2 `stale_after` and optional Kind horizons.
|
|
282
|
+
const now = options.now ?? new Date();
|
|
283
|
+
const stale = [];
|
|
284
|
+
const noTimestamp = [];
|
|
285
|
+
const invalidStaleAfter = [];
|
|
286
|
+
const invalidTimestamps = [];
|
|
287
|
+
const invalidLegacyTimestamps = [];
|
|
288
|
+
for (const doc of docs) {
|
|
289
|
+
const invalidLegacy = invalidLegacyTimestamp(doc.frontmatter, okfVersion);
|
|
290
|
+
if (invalidLegacy) {
|
|
291
|
+
invalidLegacyTimestamps.push({ id: doc.id, type: docType(doc), field: invalidLegacy.field, value: diagnosticValue(invalidLegacy.value) });
|
|
292
|
+
}
|
|
293
|
+
if (okfVersion === "0.2") {
|
|
294
|
+
for (const { field, value } of invalidOkfTimestamps(doc.frontmatter)) {
|
|
295
|
+
invalidTimestamps.push({ id: doc.id, type: docType(doc), field, value: diagnosticValue(value) });
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
const kind = registry.kinds.get(docType(doc));
|
|
299
|
+
const horizonMs = kind ? freshnessHorizonMs(kind) : undefined;
|
|
300
|
+
const hasStaleAfter = okfVersion === "0.2" && Object.hasOwn(doc.frontmatter, "stale_after");
|
|
301
|
+
const staleAfterIsInvalid = hasStaleAfter && staleAfterInstant(doc.frontmatter.stale_after) === null;
|
|
302
|
+
if (staleAfterIsInvalid) {
|
|
303
|
+
invalidStaleAfter.push({ id: doc.id, type: docType(doc), value: diagnosticValue(doc.frontmatter.stale_after) });
|
|
304
|
+
}
|
|
305
|
+
// A readable stale_after is a string: staleAfterInstant accepts strings only.
|
|
306
|
+
const staleAfter = hasStaleAfter && !staleAfterIsInvalid
|
|
307
|
+
? doc.frontmatter.stale_after
|
|
308
|
+
: undefined;
|
|
309
|
+
if (horizonMs === undefined && staleAfter === undefined)
|
|
310
|
+
continue;
|
|
311
|
+
const result = freshness(doc, { maxAgeMs: horizonMs, now, okfVersion });
|
|
312
|
+
if (result.verdict === "empty" && horizonMs !== undefined) {
|
|
313
|
+
noTimestamp.push({ id: doc.id, type: docType(doc) });
|
|
314
|
+
}
|
|
315
|
+
else if (result.verdict === "stale") {
|
|
316
|
+
stale.push({
|
|
317
|
+
id: doc.id,
|
|
318
|
+
...(result.ageMs === undefined ? {} : { age_ms: result.ageMs }),
|
|
319
|
+
...(horizonMs === undefined ? {} : { horizon_ms: horizonMs }),
|
|
320
|
+
...(staleAfter === undefined ? {} : { stale_after: staleAfter }),
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
// OKF v0.2 trust tiers (SPEC 5.3); v0.1 defines no trust family.
|
|
325
|
+
const trust = okfVersion === "0.2" && docs.length > 0 ? trustTierCounts(docs) : null;
|
|
326
|
+
// Inbound expectations: one row per instance of a Kind declaring `expects_inbound` that lacks a
|
|
327
|
+
// conforming inbound edge. An instance whose Kind declares a terminal set it currently matches is
|
|
328
|
+
// skipped and counted, never silently dropped.
|
|
329
|
+
const missingExpectedRanked = [];
|
|
330
|
+
let terminalSkipped = 0;
|
|
331
|
+
for (const doc of docs) {
|
|
332
|
+
const kind = registry.kinds.get(docType(doc));
|
|
333
|
+
if (!kind?.expectsInbound)
|
|
334
|
+
continue;
|
|
335
|
+
const terminalDeclared = Object.keys(kind.fields.terminal).length > 0;
|
|
336
|
+
if (terminalDeclared && isTerminal(kind, doc.frontmatter)) {
|
|
337
|
+
terminalSkipped++;
|
|
338
|
+
continue;
|
|
339
|
+
}
|
|
340
|
+
const edges = inboundEdges.get(doc.id) ?? [];
|
|
341
|
+
const missing = Object.entries(kind.expectsInbound)
|
|
342
|
+
.filter(([text, sourceKind]) => !edges.some((e) => e.text === text && e.sourceType === sourceKind))
|
|
343
|
+
.map(([text]) => text);
|
|
344
|
+
if (missing.length === 0)
|
|
345
|
+
continue;
|
|
346
|
+
const declaresStatus = kind.fields.required.includes("status") || kind.fields.optional.includes("status");
|
|
347
|
+
const row = declaresStatus
|
|
348
|
+
? { id: doc.id, status: doc.frontmatter.status, missing }
|
|
349
|
+
: { id: doc.id, missing };
|
|
350
|
+
// Non-terminal instances sort first: by the declared terminal set when the Kind has one, else
|
|
351
|
+
// by the historical status === "done" fallback.
|
|
352
|
+
const sortsFirst = terminalDeclared ? isTerminal(kind, doc.frontmatter) : row.status === "done";
|
|
353
|
+
missingExpectedRanked.push({ row, sortsFirst });
|
|
354
|
+
}
|
|
355
|
+
missingExpectedRanked.sort((a, b) => {
|
|
356
|
+
if (a.sortsFirst !== b.sortsFirst)
|
|
357
|
+
return a.sortsFirst ? 1 : -1;
|
|
358
|
+
return String(a.row.id).localeCompare(String(b.row.id));
|
|
359
|
+
});
|
|
360
|
+
const missingExpectedLinks = missingExpectedRanked.map((e) => e.row);
|
|
361
|
+
// legacyNaming: retired names the runtime no longer accepts, plus legacy locations (still
|
|
362
|
+
// recognized, reported as information). Documents count only under the legacy registry prefix,
|
|
363
|
+
// blob keys only under the legacy entry prefix.
|
|
364
|
+
const legacyNaming = {
|
|
365
|
+
pageTyped: docs.filter((doc) => isLegacyPageDoc(doc.frontmatter)).map((doc) => ({ id: doc.id })),
|
|
366
|
+
bridgeField: docs.filter((doc) => hasLegacyBridgeField(doc.frontmatter)).map((doc) => ({ id: doc.id })),
|
|
367
|
+
pageConvention: docs.filter((doc) => isLegacyPageConvention(doc.frontmatter)).map((doc) => ({ id: doc.id })),
|
|
368
|
+
legacyPrefix: [
|
|
369
|
+
...docs.filter((doc) => isLegacyRegistryDocId(doc.id)).map((doc) => ({ id: doc.id, store: "doc" })),
|
|
370
|
+
...legacyBlobKeys
|
|
371
|
+
.slice()
|
|
372
|
+
.sort()
|
|
373
|
+
.map((key) => ({ id: key, store: "blob" })),
|
|
374
|
+
],
|
|
375
|
+
};
|
|
376
|
+
// The View surface, recognized with the same predicates the ui launcher uses (legacy locations
|
|
377
|
+
// included; a Page-typed document is a legacyNaming finding instead). Entry existence derives
|
|
378
|
+
// from the two prefix-scoped listings above, never a per-registration probe.
|
|
379
|
+
const entryBlobKeys = new Set([...viewBlobKeys, ...legacyBlobKeys]);
|
|
380
|
+
const views = { typed: 0, danglingEntries: [], invalidRegistrations: [] };
|
|
381
|
+
for (const doc of docs) {
|
|
382
|
+
if (!isPageTypeName(doc.frontmatter.type))
|
|
383
|
+
continue;
|
|
384
|
+
views.typed++;
|
|
385
|
+
const registration = parseRegistration(doc.id, doc.frontmatter);
|
|
386
|
+
if (registration) {
|
|
387
|
+
if (!entryBlobKeys.has(registration.entry)) {
|
|
388
|
+
views.danglingEntries.push({ id: registration.id, entry: registration.entry });
|
|
389
|
+
}
|
|
390
|
+
continue;
|
|
391
|
+
}
|
|
392
|
+
// The document declares the View kind name but fails the registration grammar; name each
|
|
393
|
+
// failing leg with the grammar helpers parseRegistration composes.
|
|
394
|
+
const legs = [];
|
|
395
|
+
if (!isAnyRegistryId(doc.id))
|
|
396
|
+
legs.push("id");
|
|
397
|
+
if (!isAnyEntryKey(doc.frontmatter.entry))
|
|
398
|
+
legs.push("entry");
|
|
399
|
+
if (Object.hasOwn(doc.frontmatter, "entry_version") &&
|
|
400
|
+
!isViewEntryVersion(doc.frontmatter.entry_version)) {
|
|
401
|
+
legs.push("entry_version");
|
|
402
|
+
}
|
|
403
|
+
views.invalidRegistrations.push({ id: doc.id, problem: legs.join("+") });
|
|
404
|
+
}
|
|
405
|
+
const statusCollisions = okfV02WorkflowStatusCollisions(registry, docs);
|
|
406
|
+
const okfUpgrade = okfVersion === "0.1" && statusCollisions.length > 0
|
|
407
|
+
? {
|
|
408
|
+
statusFieldRows: statusCollisions,
|
|
409
|
+
affectedDocuments: statusCollisions.reduce((total, row) => total + row.affected_documents, 0),
|
|
410
|
+
}
|
|
411
|
+
: null;
|
|
412
|
+
return {
|
|
413
|
+
okfVersion,
|
|
414
|
+
docs: docs.length,
|
|
415
|
+
kinds: registry.kinds.size,
|
|
416
|
+
malformed,
|
|
417
|
+
kindLint,
|
|
418
|
+
conformanceDebt: registry.kinds.size > 0 ? [...conformanceDebtDocs].map(([id, type]) => ({ id, type })) : null,
|
|
419
|
+
registryWarnings: registry.warnings,
|
|
420
|
+
unresolvedLinks,
|
|
421
|
+
orphans,
|
|
422
|
+
linkTypeViolations,
|
|
423
|
+
crossLinkTypeViolations,
|
|
424
|
+
missingExpectedLinks,
|
|
425
|
+
terminalSkipped,
|
|
426
|
+
stale,
|
|
427
|
+
noTimestamp,
|
|
428
|
+
invalidStaleAfter,
|
|
429
|
+
invalidTimestamps,
|
|
430
|
+
invalidLegacyTimestamps,
|
|
431
|
+
trust,
|
|
432
|
+
views,
|
|
433
|
+
crossBundle,
|
|
434
|
+
okfUpgrade,
|
|
435
|
+
legacyNaming,
|
|
436
|
+
};
|
|
437
|
+
}
|
|
438
|
+
//# sourceMappingURL=report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/bundle-health/report.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface QueryOptions {
|
|
|
22
22
|
onSkip?: (skip: SkippedDoc) => void;
|
|
23
23
|
}
|
|
24
24
|
/** Read the bundle-root OKF edition through an explicit backend. */
|
|
25
|
-
export declare function readBundleOkfVersion(backend: StorageBackend): Promise<string | undefined>;
|
|
25
|
+
export declare function readBundleOkfVersion(backend: Pick<StorageBackend, "readReserved">): Promise<string | undefined>;
|
|
26
26
|
/** Validate, normalize for the backend's bundle edition, and atomically persist a document. */
|
|
27
27
|
export declare function writeDocVersioned(backend: StorageBackend, doc: OkfDocument, options?: WriteOptions): Promise<WriteResult>;
|
|
28
28
|
/** Edition-pinned sibling for mutation policy after it has read the root once. */
|
package/dist/engine.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAYH,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACV,UAAU,EACV,IAAI,EACJ,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,cAAc,EACd,OAAO,EACP,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,YAAY,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEnD,uFAAuF;AACvF,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,WAAW,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,oEAAoE;AACpE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,SAAS,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,2CAA2C;AAC3C,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACrC;AAED,oEAAoE;AACpE,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAkBlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAoBnE,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,4BAA4B,EAC5B,4BAA4B,GAC7B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAkBlD,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAoBnE,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,OAA6C;IACtF,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAC;IAC7B,MAAM,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,WAAW,CAAC;IAC7E,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC;AAED,SAAS,6BAA6B,CAAC,GAAgB;IACrD,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iBAAiB,CACzB,IAAI,GAAG,CAAC,EAAE,8BAA8B,GAAG,+CAA+C,CAC3F,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC;IACnC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;QACnD,MAAM,IAAI,iBAAiB,CACzB,iFAAiF,GAAG,CAAC,EAAE,KAAK,CAC7F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,OAAuB,EACvB,GAAgB,EAChB,IAAY,EACZ,UAAkB,EAClB,OAAsB;IAEtB,IAAI,KAAkB,CAAC;IACvB,IAAI,UAAU,KAAK,KAAK,EAAE,CAAC;QACzB,MAAM,iBAAiB,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC;QACpD,MAAM,SAAS,GAAG,iBAAiB,CAAC,iBAAiB,CAAC;YACpD,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAa,EAAE,iBAAiB,EAAE;YACxD,CAAC,CAAC,EAAE,gBAAgB,EAAE,KAAc,EAAE,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACtF,KAAK,GAAG,4BAA4B,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,4BAA4B,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC5D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,+FAA+F;AAC/F,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAuB,EACvB,GAAgB,EAChB,OAAsB;IAEtB,MAAM,IAAI,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,CAAC,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC;IAClE,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACvE,CAAC;AAED,kFAAkF;AAClF,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAuB,EACvB,GAAgB,EAChB,UAAkB,EAClB,OAAsB;IAEtB,OAAO,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,6BAA6B,CAAC,GAAG,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AACrG,CAAC;AAED,4EAA4E;AAC5E,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,OAAuB,EACvB,GAAgB,EAChB,OAAsB;IAEtB,OAAO,CAAC,MAAM,iBAAiB,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9D,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,uBAAuB,CAAC,EAAa;IACnD,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,mEAAmE,CAAC,CAAC;IACzG,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAuB,EAAE,EAAa;IAC3E,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB,EAAE,EAAa;IAClE,OAAO,CAAC,MAAM,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;AACnD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAuB,EAAE,EAAa;IACpE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAuB,EAAE,EAAa;IACtE,uBAAuB,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAuB,EACvB,EAAa,EACb,OAAuB;IAEvB,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iBAAiB,CAAC,IAAI,EAAE,yBAAyB,GAAG,sCAAsC,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAY;IAC5B,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAK,GAA0B,CAAC,IAAI,KAAK,QAAQ,CAAC;AAClG,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,OAAuB,EACvB,GAAgB,EAChB,WAAwC;IAExC,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,GAAG,YAAY,sBAAsB,CAAC;QACxD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,SAAS,IAAI,WAAW,CAAC;YAAE,MAAM,GAAG,CAAC;QAC7D,MAAM,GAAG,GAAiB,EAAE,CAAC;QAC7B,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;YACnC,CAAC;YAAC,OAAO,SAAS,EAAE,CAAC;gBACnB,IAAI,QAAQ,CAAC,SAAS,CAAC;oBAAE,SAAS;gBAClC,IAAI,SAAS,YAAY,sBAAsB,IAAI,WAAW,EAAE,CAAC;oBAC/D,WAAW,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;oBAC9C,SAAS;gBACX,CAAC;gBACD,MAAM,SAAS,CAAC;YAClB,CAAC;QACH,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC;AAED,KAAK,UAAU,YAAY,CACzB,OAAuB,EACvB,MAAmB,EACnB,MAAmC;IAEnC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAiB,EAAE,CAAC;IACjC,KAAK,MAAM,MAAM,IAAI,MAAM,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,CAAC;QAClE,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAuB,EACvB,SAAsB,EAAE,EACxB,UAAwB,EAAE;IAE1B,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,CAAC;AAE1B,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,SAAsB,EAAE,EACxB,UAAwB,EAAE;IAE1B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aACrG,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;QACtF,EAAE,EAAE,GAAG,CAAC,EAAE;QACV,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,OAAO;KACR,CAAC,CAAC,CAAC;AACN,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,qBAAqB,CAAC,GAAW;IACxC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC9B,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,GAAG,IAAI,GAAG,CAAC;IACpB,CAAC;IACD,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACzB,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAgB,EAAE,SAA+B;IAC5E,IAAI,SAAS,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CACjC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,QAAQ,CACzE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,KAAoC;IAC1D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,SAAqB,EAAE,EACvB,UAAwB,EAAE;IAE1B,MAAM,aAAa,GAAG,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,qBAAqB,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,KAAK,MAAM,GAAG,IAAI,MAAM,KAAK,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;QACpD,KAAK,MAAM,IAAI,IAAI,iBAAiB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC;gBAAE,SAAS;YAC7D,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,WAAW,CAAC;gBAAE,SAAS;YACzD,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;gBAAE,SAAS;YACrE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/G,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAuB,EAAE,MAAiB;IACxE,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACpC,OAAO,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAuB,EAAE,GAAY;IAClE,OAAO,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAuB,EACvB,GAAY,EACZ,KAAiB,EACjB,WAAoB,EACpB,OAAsB;IAEtB,OAAO,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAuB,EAAE,GAAY;IACpE,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAuB,EAAE,MAAe;IACtE,OAAO,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,OAAuB,EACvB,GAAY,EACZ,OAAuB;IAEvB,OAAO,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC"}
|
|
@@ -16,4 +16,6 @@ export interface FileJournalHandle {
|
|
|
16
16
|
export declare const OPEN_LOG: unique symbol;
|
|
17
17
|
/** Method key: `(id, raw) => Promise<void>`, planting exact bytes as a document's stored serialization. */
|
|
18
18
|
export declare const STORE_RAW: unique symbol;
|
|
19
|
+
/** Lower-only store payload limit, allowing exact budget boundaries without giant test fixtures. */
|
|
20
|
+
export declare const STORE_BYTE_LIMIT: unique symbol;
|
|
19
21
|
//# sourceMappingURL=file-journaled-backend-internal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-journaled-backend-internal.d.ts","sourceRoot":"","sources":["../src/file-journaled-backend-internal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/G,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,0GAA0G;AAC1G,eAAO,MAAM,QAAQ,EAAE,OAAO,MAA+C,CAAC;AAE9E,2GAA2G;AAC3G,eAAO,MAAM,SAAS,EAAE,OAAO,MAAgD,CAAC"}
|
|
1
|
+
{"version":3,"file":"file-journaled-backend-internal.d.ts","sourceRoot":"","sources":["../src/file-journaled-backend-internal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,wGAAwG;AACxG,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/G,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,0GAA0G;AAC1G,eAAO,MAAM,QAAQ,EAAE,OAAO,MAA+C,CAAC;AAE9E,2GAA2G;AAC3G,eAAO,MAAM,SAAS,EAAE,OAAO,MAAgD,CAAC;AAEhF,oGAAoG;AACpG,eAAO,MAAM,gBAAgB,EAAE,OAAO,MAAiD,CAAC"}
|
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
export const OPEN_LOG = Symbol("superbee.fileJournal.openLog");
|
|
8
8
|
/** Method key: `(id, raw) => Promise<void>`, planting exact bytes as a document's stored serialization. */
|
|
9
9
|
export const STORE_RAW = Symbol("superbee.fileJournal.storeRaw");
|
|
10
|
+
/** Lower-only store payload limit, allowing exact budget boundaries without giant test fixtures. */
|
|
11
|
+
export const STORE_BYTE_LIMIT = Symbol("superbee.fileJournal.byteLimit");
|
|
10
12
|
//# sourceMappingURL=file-journaled-backend-internal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-journaled-backend-internal.js","sourceRoot":"","sources":["../src/file-journaled-backend-internal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAE9E,2GAA2G;AAC3G,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,+BAA+B,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"file-journaled-backend-internal.js","sourceRoot":"","sources":["../src/file-journaled-backend-internal.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,0GAA0G;AAC1G,MAAM,CAAC,MAAM,QAAQ,GAAkB,MAAM,CAAC,8BAA8B,CAAC,CAAC;AAE9E,2GAA2G;AAC3G,MAAM,CAAC,MAAM,SAAS,GAAkB,MAAM,CAAC,+BAA+B,CAAC,CAAC;AAEhF,oGAAoG;AACpG,MAAM,CAAC,MAAM,gBAAgB,GAAkB,MAAM,CAAC,gCAAgC,CAAC,CAAC"}
|
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
* entry of every file the store created. On macOS `fsync` does not force the drive's own cache
|
|
36
36
|
* (Node exposes no `F_FULLFSYNC`), which is the same promise every Node program gets there.
|
|
37
37
|
*/
|
|
38
|
+
import { type BlobIntentRecord, type BlobJournaledBackend, type BlobJournalGuard, type BlobJournalMutationOptions, type BlobJournalRead, type BlobIntentPatch } from "./blob-journal.js";
|
|
38
39
|
import { OPEN_LOG, STORE_RAW, type FileJournalHandle } from "./file-journaled-backend-internal.js";
|
|
39
40
|
import { type FilesystemHostPolicy } from "./filesystem-host.js";
|
|
40
41
|
import { type FilesystemMutationLockOptions } from "./filesystem-lock.js";
|
|
@@ -42,7 +43,7 @@ import { type IntentPatch, type IntentRecord, type IntentUpdateOptions, type Jou
|
|
|
42
43
|
import type { OperationState } from "./uncertain-write.js";
|
|
43
44
|
import type { BlobKey, ConceptId, DeleteOptions, OkfDocument, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageCapabilities, Version, VersionInfo, WriteOptions } from "./types.js";
|
|
44
45
|
/** Bumping this requires a reader for the older layout; open refuses any other format. */
|
|
45
|
-
export declare const FILE_JOURNAL_FORMAT_VERSION =
|
|
46
|
+
export declare const FILE_JOURNAL_FORMAT_VERSION = 2;
|
|
46
47
|
export declare const FILE_JOURNAL_LOG = "store.log";
|
|
47
48
|
export declare const FILE_JOURNAL_SNAPSHOT = "store.snapshot";
|
|
48
49
|
/** The store's files do not hold a log or snapshot this adapter wrote; open changes nothing. */
|
|
@@ -96,7 +97,7 @@ export interface FileJournaledBackendOptions {
|
|
|
96
97
|
* The Node working copy's persistent store: one directory, one exclusive lock, one log. Open it
|
|
97
98
|
* with {@link FileJournaledBackend.open}; {@link close} releases the lock.
|
|
98
99
|
*/
|
|
99
|
-
export declare class FileJournaledBackend implements JournaledBackend {
|
|
100
|
+
export declare class FileJournaledBackend implements JournaledBackend, BlobJournaledBackend {
|
|
100
101
|
#private;
|
|
101
102
|
readonly journalSnapshotCas: true;
|
|
102
103
|
/** A resolved mutation's log record, and every directory entry the store created, were fsynced. */
|
|
@@ -150,6 +151,17 @@ export declare class FileJournaledBackend implements JournaledBackend {
|
|
|
150
151
|
readIntent(requestId: string): Promise<IntentRecord | undefined>;
|
|
151
152
|
updateIntent(requestId: string, expectedState: OperationState, patch: IntentPatch, options?: IntentUpdateOptions): Promise<IntentRecord>;
|
|
152
153
|
retireAcknowledged(target: ConceptId, options: RetireAcknowledgedOptions): Promise<void>;
|
|
154
|
+
readBlobWithJournal(key: string, options?: {
|
|
155
|
+
meta?: readonly string[];
|
|
156
|
+
}): Promise<BlobJournalRead>;
|
|
157
|
+
writeBlobMeta(key: string, changes: Pick<BlobJournalMutationOptions, "meta" | "removeMeta">, options: {
|
|
158
|
+
guard: BlobJournalGuard;
|
|
159
|
+
}): Promise<void>;
|
|
160
|
+
admitPreparedBlob(prepared: string, options: BlobJournalMutationOptions): Promise<BlobIntentRecord>;
|
|
161
|
+
listBlobIntents(state?: OperationState | readonly OperationState[]): Promise<BlobIntentRecord[]>;
|
|
162
|
+
readBlobIntent(requestId: string): Promise<BlobIntentRecord | undefined>;
|
|
163
|
+
updateBlobIntent(requestId: string, expectedState: OperationState, patch: BlobIntentPatch, options: BlobJournalMutationOptions): Promise<BlobIntentRecord>;
|
|
164
|
+
retireBlobIntents(key: string, requestIds: readonly string[], options: BlobJournalMutationOptions): Promise<void>;
|
|
153
165
|
readMeta<T = unknown>(key: string): Promise<T | undefined>;
|
|
154
166
|
/**
|
|
155
167
|
* @internal Plant exact bytes as `id`'s stored serialization, bypassing the serializer, through
|