@superbee/core 0.1.0
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/backend.d.ts +77 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +380 -0
- package/dist/backend.js.map +1 -0
- package/dist/bundle.d.ts +38 -0
- package/dist/bundle.d.ts.map +1 -0
- package/dist/bundle.js +107 -0
- package/dist/bundle.js.map +1 -0
- package/dist/content-type.d.ts +72 -0
- package/dist/content-type.d.ts.map +1 -0
- package/dist/content-type.js +149 -0
- package/dist/content-type.js.map +1 -0
- package/dist/document-mutation.d.ts +83 -0
- package/dist/document-mutation.d.ts.map +1 -0
- package/dist/document-mutation.js +319 -0
- package/dist/document-mutation.js.map +1 -0
- package/dist/document-precondition.d.ts +62 -0
- package/dist/document-precondition.d.ts.map +1 -0
- package/dist/document-precondition.js +134 -0
- package/dist/document-precondition.js.map +1 -0
- package/dist/document-write-policy.d.ts +42 -0
- package/dist/document-write-policy.d.ts.map +1 -0
- package/dist/document-write-policy.js +134 -0
- package/dist/document-write-policy.js.map +1 -0
- package/dist/engine.d.ts +48 -0
- package/dist/engine.d.ts.map +1 -0
- package/dist/engine.js +209 -0
- package/dist/engine.js.map +1 -0
- package/dist/errors.d.ts +36 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +50 -0
- package/dist/errors.js.map +1 -0
- package/dist/filesystem-identity.d.ts +208 -0
- package/dist/filesystem-identity.d.ts.map +1 -0
- package/dist/filesystem-identity.js +675 -0
- package/dist/filesystem-identity.js.map +1 -0
- package/dist/filesystem-lock.d.ts +65 -0
- package/dist/filesystem-lock.d.ts.map +1 -0
- package/dist/filesystem-lock.js +460 -0
- package/dist/filesystem-lock.js.map +1 -0
- package/dist/freshness.d.ts +31 -0
- package/dist/freshness.d.ts.map +1 -0
- package/dist/freshness.js +98 -0
- package/dist/freshness.js.map +1 -0
- package/dist/frontmatter-contract.d.ts +17 -0
- package/dist/frontmatter-contract.d.ts.map +1 -0
- package/dist/frontmatter-contract.js +29 -0
- package/dist/frontmatter-contract.js.map +1 -0
- package/dist/frontmatter.d.ts +30 -0
- package/dist/frontmatter.d.ts.map +1 -0
- package/dist/frontmatter.js +115 -0
- package/dist/frontmatter.js.map +1 -0
- package/dist/index-marker.d.ts +3 -0
- package/dist/index-marker.d.ts.map +1 -0
- package/dist/index-marker.js +3 -0
- package/dist/index-marker.js.map +1 -0
- package/dist/index-projection.d.ts +79 -0
- package/dist/index-projection.d.ts.map +1 -0
- package/dist/index-projection.js +245 -0
- package/dist/index-projection.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +110 -0
- package/dist/index.js.map +1 -0
- package/dist/kinds-load.d.ts +13 -0
- package/dist/kinds-load.d.ts.map +1 -0
- package/dist/kinds-load.js +34 -0
- package/dist/kinds-load.js.map +1 -0
- package/dist/kinds.d.ts +241 -0
- package/dist/kinds.d.ts.map +1 -0
- package/dist/kinds.js +1001 -0
- package/dist/kinds.js.map +1 -0
- package/dist/links.d.ts +62 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +203 -0
- package/dist/links.js.map +1 -0
- package/dist/meaningful-change-time.d.ts +11 -0
- package/dist/meaningful-change-time.d.ts.map +1 -0
- package/dist/meaningful-change-time.js +16 -0
- package/dist/meaningful-change-time.js.map +1 -0
- package/dist/memory-backend.d.ts +55 -0
- package/dist/memory-backend.d.ts.map +1 -0
- package/dist/memory-backend.js +214 -0
- package/dist/memory-backend.js.map +1 -0
- package/dist/mutation-attribution.d.ts +19 -0
- package/dist/mutation-attribution.d.ts.map +1 -0
- package/dist/mutation-attribution.js +34 -0
- package/dist/mutation-attribution.js.map +1 -0
- package/dist/mutation.d.ts +89 -0
- package/dist/mutation.d.ts.map +1 -0
- package/dist/mutation.js +94 -0
- package/dist/mutation.js.map +1 -0
- package/dist/page.d.ts +87 -0
- package/dist/page.d.ts.map +1 -0
- package/dist/page.js +151 -0
- package/dist/page.js.map +1 -0
- package/dist/paths.d.ts +78 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +148 -0
- package/dist/paths.js.map +1 -0
- package/dist/portable-frontmatter.d.ts +8 -0
- package/dist/portable-frontmatter.d.ts.map +1 -0
- package/dist/portable-frontmatter.js +35 -0
- package/dist/portable-frontmatter.js.map +1 -0
- package/dist/publication-filesystem.d.ts +6 -0
- package/dist/publication-filesystem.d.ts.map +1 -0
- package/dist/publication-filesystem.js +6 -0
- package/dist/publication-filesystem.js.map +1 -0
- package/dist/query-filter.d.ts +12 -0
- package/dist/query-filter.d.ts.map +1 -0
- package/dist/query-filter.js +29 -0
- package/dist/query-filter.js.map +1 -0
- package/dist/query-selection.d.ts +25 -0
- package/dist/query-selection.d.ts.map +1 -0
- package/dist/query-selection.js +48 -0
- package/dist/query-selection.js.map +1 -0
- package/dist/remote-backend.d.ts +152 -0
- package/dist/remote-backend.d.ts.map +1 -0
- package/dist/remote-backend.js +505 -0
- package/dist/remote-backend.js.map +1 -0
- package/dist/remote.d.ts +4 -0
- package/dist/remote.d.ts.map +1 -0
- package/dist/remote.js +3 -0
- package/dist/remote.js.map +1 -0
- package/dist/storage.d.ts +7 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/storage.js +6 -0
- package/dist/storage.js.map +1 -0
- package/dist/types.d.ts +438 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +12 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +22 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +12 -0
- package/dist/validation.js.map +1 -0
- package/dist/version-transport.d.ts +13 -0
- package/dist/version-transport.d.ts.map +1 -0
- package/dist/version-transport.js +26 -0
- package/dist/version-transport.js.map +1 -0
- package/dist/versioning.d.ts +48 -0
- package/dist/versioning.d.ts.map +1 -0
- package/dist/versioning.js +62 -0
- package/dist/versioning.js.map +1 -0
- package/package.json +84 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kinds.js","sourceRoot":"","sources":["../src/kinds.ts"],"names":[],"mappings":"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"}
|
package/dist/links.d.ts
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-link extraction and resolution.
|
|
3
|
+
*
|
|
4
|
+
* OKF cross-links are STANDARD markdown links `[text](target)` — NOT
|
|
5
|
+
* `[[wikilinks]]` (SPEC §5). Two target forms are supported and BOTH are
|
|
6
|
+
* resolved here (unlike the reference tooling, which is internally split —
|
|
7
|
+
* its edge-builder counts only relative links while its body-rewriter navigates
|
|
8
|
+
* only absolute ones):
|
|
9
|
+
* - absolute bundle-relative: `/tables/users.md` (spec-recommended, move-stable)
|
|
10
|
+
* - relative: `./x.md`, `../refs/m.md`
|
|
11
|
+
* External (`scheme://…`, `mailto:`), in-page (`#…`) and non-`.md` targets are
|
|
12
|
+
* ignored — they never become concept edges. A link to a nonexistent target is
|
|
13
|
+
* still returned (broken links are valid, §5). A link whose resolved target's
|
|
14
|
+
* FINAL SEGMENT is a reserved OKF filename (`index.md`/`log.md`, at any directory
|
|
15
|
+
* level per §3.1) is likewise dropped: reserved files are never concept documents
|
|
16
|
+
* (`paths.ts`'s `isReservedFile` — the ONE reserved-name predicate, reused here
|
|
17
|
+
* rather than restated), so a concept id they'd resolve to (`index`, `docs/log`,
|
|
18
|
+
* …) can never exist in the doc set. Without this guard such a link resolved to a
|
|
19
|
+
* phantom concept id, which surfaced as a false-positive "unresolved link" in
|
|
20
|
+
* `status` and could never become a real graph edge anywhere.
|
|
21
|
+
*
|
|
22
|
+
* These functions are pure and dependency-free — INCLUDING free of `node:path`:
|
|
23
|
+
* this module is the ONE link resolver and it now also runs in
|
|
24
|
+
* the BROWSER (the shell's doc reader routes links through it), where `node:path`
|
|
25
|
+
* does not bundle. The posix join/relative/basename logic is implemented as pure
|
|
26
|
+
* string helpers below, parity-pinned against `node:path.posix` by
|
|
27
|
+
* `links-path-parity.test.ts` and against browser bundling by `browser-bundle.test.ts` (the
|
|
28
|
+
* isomorphic-boundary gate over every browser-consumed core subpath).
|
|
29
|
+
*/
|
|
30
|
+
import type { ConceptId, Link, OkfDocument } from "./types.js";
|
|
31
|
+
/** Normalize posix segments with a stack: `.` drops, `..` pops (or survives at the front when nothing is left to pop — matching `path.posix.join` semantics), empty segments drop. Exported for the direct parity pin (links-path-parity.test.ts) — the resolver's `..`-past-root guard is otherwise masked by its leading-`../` post-strip. */
|
|
32
|
+
export declare function normalizeSegments(segments: string[]): string[];
|
|
33
|
+
/** A raw markdown link as written in the body, before resolution. */
|
|
34
|
+
export interface RawLink {
|
|
35
|
+
text: string;
|
|
36
|
+
href: string;
|
|
37
|
+
}
|
|
38
|
+
/** True for links that never become concept edges (external / mail / in-page anchors). */
|
|
39
|
+
export declare function isExternalHref(href: string): boolean;
|
|
40
|
+
/** Extract every non-image markdown link from a body, in document order. */
|
|
41
|
+
export declare function extractMarkdownLinks(body: string): RawLink[];
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a raw markdown href to a bundle-relative {@link ConceptId}, or `null`
|
|
44
|
+
* when the href is not an internal `.md` concept link. Absolute hrefs resolve
|
|
45
|
+
* from the bundle root; relative hrefs resolve against the directory of `fromId`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveConceptId(fromId: ConceptId, href: string): ConceptId | null;
|
|
48
|
+
/**
|
|
49
|
+
* Build a bundle-RELATIVE markdown href from `fromId` to a target concept id (or
|
|
50
|
+
* pass an external URL through unchanged). This is the emit-side counterpart of
|
|
51
|
+
* {@link resolveConceptId}: it produces the relative form (`../refs/x.md`,
|
|
52
|
+
* `y.md`) that the OKF reference graph builder counts as an edge — the form
|
|
53
|
+
* VISION and the sample bundles use — rather than the absolute `/…md` form,
|
|
54
|
+
* which the OKF reference graph does not count as a relative concept edge.
|
|
55
|
+
*/
|
|
56
|
+
export declare function relativeHref(fromId: ConceptId, target: string): string;
|
|
57
|
+
/**
|
|
58
|
+
* Outbound resolved cross-links of a document. Non-concept links (external,
|
|
59
|
+
* anchors, non-`.md`) are dropped; broken (unresolved-target) links are kept.
|
|
60
|
+
*/
|
|
61
|
+
export declare function parseLinksFromDoc(doc: OkfDocument): Link[];
|
|
62
|
+
//# sourceMappingURL=links.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE/D,gVAAgV;AAChV,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAW9D;AAyBD,qEAAqE;AACrE,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGpD;AAED,4EAA4E;AAC5E,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,EAAE,CAoD5D;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAgClF;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAatE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,EAAE,CAQ1D"}
|
package/dist/links.js
ADDED
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-link extraction and resolution.
|
|
3
|
+
*
|
|
4
|
+
* OKF cross-links are STANDARD markdown links `[text](target)` — NOT
|
|
5
|
+
* `[[wikilinks]]` (SPEC §5). Two target forms are supported and BOTH are
|
|
6
|
+
* resolved here (unlike the reference tooling, which is internally split —
|
|
7
|
+
* its edge-builder counts only relative links while its body-rewriter navigates
|
|
8
|
+
* only absolute ones):
|
|
9
|
+
* - absolute bundle-relative: `/tables/users.md` (spec-recommended, move-stable)
|
|
10
|
+
* - relative: `./x.md`, `../refs/m.md`
|
|
11
|
+
* External (`scheme://…`, `mailto:`), in-page (`#…`) and non-`.md` targets are
|
|
12
|
+
* ignored — they never become concept edges. A link to a nonexistent target is
|
|
13
|
+
* still returned (broken links are valid, §5). A link whose resolved target's
|
|
14
|
+
* FINAL SEGMENT is a reserved OKF filename (`index.md`/`log.md`, at any directory
|
|
15
|
+
* level per §3.1) is likewise dropped: reserved files are never concept documents
|
|
16
|
+
* (`paths.ts`'s `isReservedFile` — the ONE reserved-name predicate, reused here
|
|
17
|
+
* rather than restated), so a concept id they'd resolve to (`index`, `docs/log`,
|
|
18
|
+
* …) can never exist in the doc set. Without this guard such a link resolved to a
|
|
19
|
+
* phantom concept id, which surfaced as a false-positive "unresolved link" in
|
|
20
|
+
* `status` and could never become a real graph edge anywhere.
|
|
21
|
+
*
|
|
22
|
+
* These functions are pure and dependency-free — INCLUDING free of `node:path`:
|
|
23
|
+
* this module is the ONE link resolver and it now also runs in
|
|
24
|
+
* the BROWSER (the shell's doc reader routes links through it), where `node:path`
|
|
25
|
+
* does not bundle. The posix join/relative/basename logic is implemented as pure
|
|
26
|
+
* string helpers below, parity-pinned against `node:path.posix` by
|
|
27
|
+
* `links-path-parity.test.ts` and against browser bundling by `browser-bundle.test.ts` (the
|
|
28
|
+
* isomorphic-boundary gate over every browser-consumed core subpath).
|
|
29
|
+
*/
|
|
30
|
+
import { assertSafeConceptId, isReservedFile } from "./paths.js";
|
|
31
|
+
import { InvalidInputError } from "./errors.js";
|
|
32
|
+
/** Normalize posix segments with a stack: `.` drops, `..` pops (or survives at the front when nothing is left to pop — matching `path.posix.join` semantics), empty segments drop. Exported for the direct parity pin (links-path-parity.test.ts) — the resolver's `..`-past-root guard is otherwise masked by its leading-`../` post-strip. */
|
|
33
|
+
export function normalizeSegments(segments) {
|
|
34
|
+
const out = [];
|
|
35
|
+
for (const segment of segments) {
|
|
36
|
+
if (segment === "" || segment === ".")
|
|
37
|
+
continue;
|
|
38
|
+
if (segment === ".." && out.length > 0 && out[out.length - 1] !== "..") {
|
|
39
|
+
out.pop();
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
out.push(segment);
|
|
43
|
+
}
|
|
44
|
+
return out;
|
|
45
|
+
}
|
|
46
|
+
/** Pure `path.posix.join(base, rel)` for the two-argument, relative-path case this module uses. */
|
|
47
|
+
function joinPosix(base, rel) {
|
|
48
|
+
return normalizeSegments([...base.split("/"), ...rel.split("/")]).join("/");
|
|
49
|
+
}
|
|
50
|
+
/** Pure `path.posix.relative(from, to)` for already-rooted bundle paths (no leading `/`). */
|
|
51
|
+
function relativePosix(from, to) {
|
|
52
|
+
const fromSegments = normalizeSegments(from.split("/"));
|
|
53
|
+
const toSegments = normalizeSegments(to.split("/"));
|
|
54
|
+
let common = 0;
|
|
55
|
+
while (common < fromSegments.length && common < toSegments.length && fromSegments[common] === toSegments[common]) {
|
|
56
|
+
common++;
|
|
57
|
+
}
|
|
58
|
+
const ups = fromSegments.length - common;
|
|
59
|
+
return [...Array(ups).fill(".."), ...toSegments.slice(common)].join("/");
|
|
60
|
+
}
|
|
61
|
+
/** Pure `path.posix.basename` (no extension handling — this module never needs it). */
|
|
62
|
+
function basenamePosix(p) {
|
|
63
|
+
const slash = p.lastIndexOf("/");
|
|
64
|
+
return slash >= 0 ? p.slice(slash + 1) : p;
|
|
65
|
+
}
|
|
66
|
+
/** True for links that never become concept edges (external / mail / in-page anchors). */
|
|
67
|
+
export function isExternalHref(href) {
|
|
68
|
+
const h = href.trim();
|
|
69
|
+
return /^[a-z][a-z0-9+.-]*:\/\//i.test(h) || h.startsWith("mailto:") || h.startsWith("#");
|
|
70
|
+
}
|
|
71
|
+
/** Extract every non-image markdown link from a body, in document order. */
|
|
72
|
+
export function extractMarkdownLinks(body) {
|
|
73
|
+
const out = [];
|
|
74
|
+
let textOpen = -1;
|
|
75
|
+
let afterClose;
|
|
76
|
+
let hrefFirst;
|
|
77
|
+
let hrefRest;
|
|
78
|
+
for (let cursor = 0; cursor < body.length; cursor++) {
|
|
79
|
+
const char = body[cursor];
|
|
80
|
+
// This is a constant-state simulation of the former
|
|
81
|
+
// /\[([^\]]*)\]\(([^)\s]+)\)/g expression. Keeping only the earliest
|
|
82
|
+
// candidate in each state preserves the regex's leftmost-first behavior
|
|
83
|
+
// without backtracking over hostile input.
|
|
84
|
+
if (hrefRest) {
|
|
85
|
+
if (char === ")") {
|
|
86
|
+
if (hrefRest.open === 0 || body[hrefRest.open - 1] !== "!") {
|
|
87
|
+
out.push({
|
|
88
|
+
text: body.slice(hrefRest.open + 1, hrefRest.close),
|
|
89
|
+
href: body.slice(hrefRest.hrefStart, cursor),
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
textOpen = -1;
|
|
93
|
+
afterClose = undefined;
|
|
94
|
+
hrefFirst = undefined;
|
|
95
|
+
hrefRest = undefined;
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
if (char.trim() === "")
|
|
99
|
+
hrefRest = undefined;
|
|
100
|
+
}
|
|
101
|
+
if (hrefFirst) {
|
|
102
|
+
if (char !== ")" && char.trim() !== "" && !hrefRest) {
|
|
103
|
+
hrefRest = hrefFirst;
|
|
104
|
+
}
|
|
105
|
+
hrefFirst = undefined;
|
|
106
|
+
}
|
|
107
|
+
if (afterClose) {
|
|
108
|
+
if (char === "(") {
|
|
109
|
+
hrefFirst = { ...afterClose, hrefStart: cursor + 1 };
|
|
110
|
+
}
|
|
111
|
+
afterClose = undefined;
|
|
112
|
+
}
|
|
113
|
+
if (textOpen >= 0 && char === "]") {
|
|
114
|
+
afterClose = { open: textOpen, close: cursor };
|
|
115
|
+
textOpen = -1;
|
|
116
|
+
}
|
|
117
|
+
if (char === "[" && textOpen < 0)
|
|
118
|
+
textOpen = cursor;
|
|
119
|
+
}
|
|
120
|
+
return out;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Resolve a raw markdown href to a bundle-relative {@link ConceptId}, or `null`
|
|
124
|
+
* when the href is not an internal `.md` concept link. Absolute hrefs resolve
|
|
125
|
+
* from the bundle root; relative hrefs resolve against the directory of `fromId`.
|
|
126
|
+
*/
|
|
127
|
+
export function resolveConceptId(fromId, href) {
|
|
128
|
+
// Drop anchor and query before reasoning about the path.
|
|
129
|
+
const target = (href.split("#")[0] ?? "").split("?")[0]?.trim() ?? "";
|
|
130
|
+
if (target === "" || isExternalHref(target))
|
|
131
|
+
return null;
|
|
132
|
+
if (!target.endsWith(".md"))
|
|
133
|
+
return null; // only `.md` targets become concept links
|
|
134
|
+
let resolved;
|
|
135
|
+
if (target.startsWith("/")) {
|
|
136
|
+
resolved = target.slice(1);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
const slash = fromId.lastIndexOf("/");
|
|
140
|
+
const fromDir = slash >= 0 ? fromId.slice(0, slash) : "";
|
|
141
|
+
// posix.join normalizes `.`/`..` segments deterministically.
|
|
142
|
+
resolved = joinPosix(fromDir, target);
|
|
143
|
+
}
|
|
144
|
+
// Strip any residual leading `../` that escaped the bundle root (best-effort).
|
|
145
|
+
resolved = resolved.replace(/^(\.\.\/)+/, "");
|
|
146
|
+
// Reserved files (index.md/log.md, any directory level) are never concept
|
|
147
|
+
// documents — a link to one is not a concept edge. Check BEFORE dropping the
|
|
148
|
+
// `.md` suffix, since `isReservedFile` matches on the filename incl. extension.
|
|
149
|
+
if (isReservedFile(resolved))
|
|
150
|
+
return null;
|
|
151
|
+
// Drop the `.md` suffix to yield the concept id, then enforce the same canonical grammar used
|
|
152
|
+
// at the storage seam. For example, `/foo.md/bar.md` cannot become `foo.md/bar`: that id would
|
|
153
|
+
// collide with the concept file `foo.md` and no backend can expose it consistently.
|
|
154
|
+
const id = resolved.replace(/\.md$/, "");
|
|
155
|
+
try {
|
|
156
|
+
assertSafeConceptId(id);
|
|
157
|
+
return id;
|
|
158
|
+
}
|
|
159
|
+
catch (error) {
|
|
160
|
+
if (error instanceof InvalidInputError)
|
|
161
|
+
return null;
|
|
162
|
+
throw error;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Build a bundle-RELATIVE markdown href from `fromId` to a target concept id (or
|
|
167
|
+
* pass an external URL through unchanged). This is the emit-side counterpart of
|
|
168
|
+
* {@link resolveConceptId}: it produces the relative form (`../refs/x.md`,
|
|
169
|
+
* `y.md`) that the OKF reference graph builder counts as an edge — the form
|
|
170
|
+
* VISION and the sample bundles use — rather than the absolute `/…md` form,
|
|
171
|
+
* which the OKF reference graph does not count as a relative concept edge.
|
|
172
|
+
*/
|
|
173
|
+
export function relativeHref(fromId, target) {
|
|
174
|
+
const t = target.trim();
|
|
175
|
+
if (isExternalHref(t))
|
|
176
|
+
return t;
|
|
177
|
+
assertSafeConceptId(fromId);
|
|
178
|
+
assertSafeConceptId(t);
|
|
179
|
+
// `target` is an already-canonical ConceptId, not a file-like user address. A canonical id may
|
|
180
|
+
// itself end in `.md` (the concept stored at `x.md.md`), so stripping here would alias it to `x`.
|
|
181
|
+
const targetId = t;
|
|
182
|
+
const slash = fromId.lastIndexOf("/");
|
|
183
|
+
const fromDir = slash >= 0 ? fromId.slice(0, slash) : "";
|
|
184
|
+
let rel = relativePosix(fromDir, targetId);
|
|
185
|
+
if (rel === "")
|
|
186
|
+
rel = basenamePosix(targetId); // link to a concept in one's own dir
|
|
187
|
+
return `${rel}.md`;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Outbound resolved cross-links of a document. Non-concept links (external,
|
|
191
|
+
* anchors, non-`.md`) are dropped; broken (unresolved-target) links are kept.
|
|
192
|
+
*/
|
|
193
|
+
export function parseLinksFromDoc(doc) {
|
|
194
|
+
const links = [];
|
|
195
|
+
for (const raw of extractMarkdownLinks(doc.body)) {
|
|
196
|
+
const to = resolveConceptId(doc.id, raw.href);
|
|
197
|
+
if (to === null)
|
|
198
|
+
continue;
|
|
199
|
+
links.push({ from: doc.id, to, text: raw.text, href: raw.href });
|
|
200
|
+
}
|
|
201
|
+
return links;
|
|
202
|
+
}
|
|
203
|
+
//# sourceMappingURL=links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return the raw frontmatter value that represents a document's last meaningful change.
|
|
3
|
+
*
|
|
4
|
+
* This is intentionally only field selection: each consumer keeps its existing parsing,
|
|
5
|
+
* formatting, and missing-value behavior. Backend revision timestamps are a different clock.
|
|
6
|
+
*/
|
|
7
|
+
export declare function meaningfulChangeTimeValue(frontmatter: {
|
|
8
|
+
readonly generated?: unknown;
|
|
9
|
+
readonly timestamp?: unknown;
|
|
10
|
+
}): unknown;
|
|
11
|
+
//# sourceMappingURL=meaningful-change-time.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meaningful-change-time.d.ts","sourceRoot":"","sources":["../src/meaningful-change-time.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE;IACrD,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,OAAO,CAOV"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return the raw frontmatter value that represents a document's last meaningful change.
|
|
3
|
+
*
|
|
4
|
+
* This is intentionally only field selection: each consumer keeps its existing parsing,
|
|
5
|
+
* formatting, and missing-value behavior. Backend revision timestamps are a different clock.
|
|
6
|
+
*/
|
|
7
|
+
export function meaningfulChangeTimeValue(frontmatter) {
|
|
8
|
+
const generated = frontmatter.generated;
|
|
9
|
+
if (generated !== null && typeof generated === "object" && !Array.isArray(generated)) {
|
|
10
|
+
const at = generated.at;
|
|
11
|
+
if (at !== undefined)
|
|
12
|
+
return at;
|
|
13
|
+
}
|
|
14
|
+
return frontmatter.timestamp;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=meaningful-change-time.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meaningful-change-time.js","sourceRoot":"","sources":["../src/meaningful-change-time.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,WAGzC;IACC,MAAM,SAAS,GAAG,WAAW,CAAC,SAAS,CAAC;IACxC,IAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrF,MAAM,EAAE,GAAI,SAAqC,CAAC,EAAE,CAAC;QACrD,IAAI,EAAE,KAAK,SAAS;YAAE,OAAO,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,WAAW,CAAC,SAAS,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory {@link StorageBackend} — the PROOF that the seam's hard contract is
|
|
3
|
+
* implementable, and that the engine leaks no filesystem assumptions.
|
|
4
|
+
*
|
|
5
|
+
* Where {@link FilesystemBackend} is the degenerate adapter (single-version history,
|
|
6
|
+
* cross-process filesystem compare-and-swap), this adapter implements the historical hard case:
|
|
7
|
+
* - a genuine per-document VERSION CHAIN (`versions()` returns the full history,
|
|
8
|
+
* newest-first);
|
|
9
|
+
* - ENFORCED compare-and-swap: a `write` whose `expectedVersion` no longer matches
|
|
10
|
+
* the current head throws {@link VersionConflict}, atomically against the in-process
|
|
11
|
+
* map (no check-then-write window);
|
|
12
|
+
* - per-write ACTOR attribution recorded on every revision;
|
|
13
|
+
* - a real batch {@link MemoryBackend.readMany}.
|
|
14
|
+
*
|
|
15
|
+
* It touches NO filesystem and NO markdown serialization for storage — documents are
|
|
16
|
+
* held as parsed {@link OkfDocument} objects, keyed by concept id — so running the
|
|
17
|
+
* core operations over it exercises exactly the parts of the engine that must be
|
|
18
|
+
* backend-neutral. Version tokens are still content-addressed via {@link contentVersion},
|
|
19
|
+
* so an engine-written document carries the SAME token here as on disk.
|
|
20
|
+
*
|
|
21
|
+
* Id/dir safety mirrors {@link FilesystemBackend} exactly: an unsafe concept id (a `..`
|
|
22
|
+
* segment, an absolute id) or an unsafe reserved-file `dir` is harmless against a plain
|
|
23
|
+
* `Map` key, but this adapter rejects it via the SAME `assertSafeConceptId` /
|
|
24
|
+
* `assertSafeReservedDir` guards anyway — the two adapters must agree on rejecting it, or
|
|
25
|
+
* the dual-backend / wire-protocol contract tests diverge.
|
|
26
|
+
*/
|
|
27
|
+
import type { BlobKey, ConceptId, DeleteOptions, OkfDocument, ReadBlobResult, ReadResult, ReservedFilename, ReservedReadResult, StorageBackend, Version, VersionInfo, WriteOptions } from "./types.js";
|
|
28
|
+
/**
|
|
29
|
+
* A fully in-memory OKF store implementing the {@link StorageBackend} contract for
|
|
30
|
+
* the hard, multi-writer case. Not persistent — its purpose is to prove the seam and
|
|
31
|
+
* to back tests, not to be a shipping store.
|
|
32
|
+
*/
|
|
33
|
+
export declare class MemoryBackend implements StorageBackend {
|
|
34
|
+
/** Concept id → revision chain, newest-first (index 0 is the head). */
|
|
35
|
+
private readonly chains;
|
|
36
|
+
/** Reserved-file path → raw content. */
|
|
37
|
+
private readonly reserved;
|
|
38
|
+
/** Blob key → current state. Separate from `chains` — a different namespace, no history. */
|
|
39
|
+
private readonly blobs;
|
|
40
|
+
read(id: ConceptId): Promise<ReadResult>;
|
|
41
|
+
readMany(ids: ConceptId[]): Promise<ReadResult[]>;
|
|
42
|
+
write(id: ConceptId, doc: OkfDocument, options?: WriteOptions): Promise<Version>;
|
|
43
|
+
delete(id: ConceptId, options?: DeleteOptions): Promise<boolean>;
|
|
44
|
+
exists(id: ConceptId): Promise<boolean>;
|
|
45
|
+
list(prefix?: string): Promise<ConceptId[]>;
|
|
46
|
+
versions(id: ConceptId): Promise<VersionInfo[]>;
|
|
47
|
+
readReserved(dir: string, name: ReservedFilename): Promise<ReservedReadResult | null>;
|
|
48
|
+
writeReserved(dir: string, name: ReservedFilename, content: string, options?: WriteOptions): Promise<Version>;
|
|
49
|
+
readBlob(key: BlobKey): Promise<ReadBlobResult | null>;
|
|
50
|
+
writeBlob(key: BlobKey, bytes: Uint8Array, contentType?: string, options?: WriteOptions): Promise<Version>;
|
|
51
|
+
deleteBlob(key: BlobKey, options?: DeleteOptions): Promise<boolean>;
|
|
52
|
+
existsBlob(key: BlobKey): Promise<boolean>;
|
|
53
|
+
listBlobs(prefix?: string): Promise<BlobKey[]>;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=memory-backend.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"memory-backend.d.ts","sourceRoot":"","sources":["../src/memory-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAKH,OAAO,KAAK,EACV,OAAO,EACP,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,OAAO,EACP,WAAW,EACX,YAAY,EACb,MAAM,YAAY,CAAC;AA4CpB;;;;GAIG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,uEAAuE;IACvE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,wCAAwC;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IACtD,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiC;IAEjD,IAAI,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC;IASxC,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAOjD,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,OAAO,CAAC;IA4BpF,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAgBpE,MAAM,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAKvC,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAM3C,QAAQ,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAW/C,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IAQrF,aAAa,CACjB,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,OAAO,CAAC;IAeb,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAatD,SAAS,CACb,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,WAAW,CAAC,EAAE,MAAM,EACpB,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,OAAO,CAAC;IAyBb,UAAU,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAYvE,UAAU,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAK1C,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAKrD"}
|