@dogsbay/types 0.2.0-beta.16 → 0.2.0-beta.160

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.
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Import limits: the RESOURCE limits an import puts on someone else's repo, in one place
3
+ * (plans/import-limits.md). They exist so a hostile repo cannot make an import read gigabytes or
4
+ * build a table of a million rows; for the operator's own repo they are only a way for content
5
+ * to turn into a note, so `trusted` sets none.
6
+ *
7
+ * Who may set them: the OPERATOR (CLI flags, a host's `migrate()` options), never the repo being
8
+ * imported. Safety rules (containment, no repo code run, escaping) are NOT limits and are not
9
+ * here: they hold whether the repo is trusted or not.
10
+ *
11
+ * Each default is measured against the largest real value it guards, with the headroom noted.
12
+ * A limit that trips is REPORTED (`LIMIT_REACHED`), never silent.
13
+ */
14
+ export interface ImportLimits {
15
+ /** One file read as data (bytes). */
16
+ fileBytes: number;
17
+ /** Files in one data folder. */
18
+ folderFiles: number;
19
+ /** All data read in one import (bytes). */
20
+ importBytes: number;
21
+ /** Data one catalogue (a table built from data files) may read (bytes). */
22
+ catalogueBytes: number;
23
+ /** Rows in one catalogue. */
24
+ catalogueRows: number;
25
+ /** Characters of text in one table cell. */
26
+ cellChars: number;
27
+ /** Bytes of one code example the import transforms (TypeScript → JavaScript with prettier). */
28
+ exampleBytes: number;
29
+ }
30
+ export type LimitName = keyof ImportLimits;
31
+ /**
32
+ * The defaults, for a repo that is not trusted. Measured on cloudflare-docs (6e85ac29,
33
+ * 2026-11-03), the largest real use of each today:
34
+ */
35
+ export declare const DEFAULT_LIMITS: Readonly<ImportLimits>;
36
+ /** What each limit guards, for the report. */
37
+ export declare const LIMIT_DESCRIPTIONS: Readonly<Record<LimitName, string>>;
38
+ /** The ledger code a tripped limit is reported under. */
39
+ export declare const LIMIT_REACHED = "limit-reached";
40
+ /**
41
+ * The limits an import runs with: the defaults, or none when `trusted`, then each given value.
42
+ * A given value must be a positive number (or Infinity); anything else throws, naming it — a typo
43
+ * must not run with a limit the operator did not mean.
44
+ */
45
+ export declare function resolveLimits(given?: Partial<Record<string, unknown>>, opts?: {
46
+ trusted?: boolean;
47
+ }): ImportLimits;
48
+ /**
49
+ * One `--limit name=value` flag: `catalogueBytes=500MB`, `catalogueRows=50000`, `cellChars=none`.
50
+ * Sizes take `KB`/`MB`/`GB` (powers of 1,000) or `KiB`/`MiB`/`GiB`; `none` is no limit.
51
+ */
52
+ export declare function parseLimit(flag: string): [LimitName, number];
53
+ /** A limit's value as a person reads it: `256 MB`, `20,000`, `none`. */
54
+ export declare function formatLimit(name: LimitName, value: number): string;
55
+ /**
56
+ * How an operator raises a limit, by where the import runs: the CLI's flags, `site build`'s config,
57
+ * a host's options (the playground). The report names the one that works where it is read.
58
+ */
59
+ export type LimitHost = "cli" | "config" | "host";
60
+ /**
61
+ * The report for a tripped limit: what was not done, the measured value against the limit, and
62
+ * how to raise it where the import runs.
63
+ */
64
+ export declare function limitMessage(what: string, name: LimitName, measured: number | undefined, limit: number, host?: LimitHost): string;
65
+ /** UTF-8 bytes of a string, without encoding it: limits on bytes count bytes, not UTF-16 units. */
66
+ export declare function utf8Bytes(s: string): number;
package/dist/limits.js ADDED
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Import limits: the RESOURCE limits an import puts on someone else's repo, in one place
3
+ * (plans/import-limits.md). They exist so a hostile repo cannot make an import read gigabytes or
4
+ * build a table of a million rows; for the operator's own repo they are only a way for content
5
+ * to turn into a note, so `trusted` sets none.
6
+ *
7
+ * Who may set them: the OPERATOR (CLI flags, a host's `migrate()` options), never the repo being
8
+ * imported. Safety rules (containment, no repo code run, escaping) are NOT limits and are not
9
+ * here: they hold whether the repo is trusted or not.
10
+ *
11
+ * Each default is measured against the largest real value it guards, with the headroom noted.
12
+ * A limit that trips is REPORTED (`LIMIT_REACHED`), never silent.
13
+ */
14
+ /**
15
+ * The defaults, for a repo that is not trusted. Measured on cloudflare-docs (6e85ac29,
16
+ * 2026-11-03), the largest real use of each today:
17
+ */
18
+ export const DEFAULT_LIMITS = Object.freeze({
19
+ // largest model JSON 496 KB → 32×
20
+ fileBytes: 16_000_000,
21
+ // catalog-models holds 199 files → 100×
22
+ folderFiles: 20_000,
23
+ // all the data files in Cloudflare's src/content (JSON/YAML outside the pages): 15.6 MB → 64×;
24
+ // the whole src/content, pages included, is 54.7 MB
25
+ importBytes: 1_000_000_000,
26
+ // the model catalogue reads 14.1 MB of JSON → 18×
27
+ catalogueBytes: 256_000_000,
28
+ // 272 models, 193 fields → 70×
29
+ catalogueRows: 20_000,
30
+ // longest model description 611 characters → 16×
31
+ cellChars: 10_000,
32
+ // largest <TypeScriptExample> 11.5 KB (median 409 bytes) → 87×; 1 MB is ~1.8 s of prettier
33
+ exampleBytes: 1_000_000,
34
+ });
35
+ /** What each limit guards, for the report. */
36
+ export const LIMIT_DESCRIPTIONS = Object.freeze({
37
+ fileBytes: "bytes in one data file",
38
+ folderFiles: "files in one data folder",
39
+ importBytes: "data read in one import",
40
+ catalogueBytes: "data one catalogue reads",
41
+ catalogueRows: "rows in one catalogue",
42
+ cellChars: "characters in one table cell",
43
+ exampleBytes: "bytes in one code example to transform",
44
+ });
45
+ /** The ledger code a tripped limit is reported under. */
46
+ export const LIMIT_REACHED = "limit-reached";
47
+ /** Every limit unset: what `trusted` gives. */
48
+ const NONE = Object.freeze({
49
+ fileBytes: Infinity,
50
+ folderFiles: Infinity,
51
+ importBytes: Infinity,
52
+ catalogueBytes: Infinity,
53
+ catalogueRows: Infinity,
54
+ cellChars: Infinity,
55
+ exampleBytes: Infinity,
56
+ });
57
+ const isLimitName = (k) => Object.hasOwn(DEFAULT_LIMITS, k);
58
+ /**
59
+ * The limits an import runs with: the defaults, or none when `trusted`, then each given value.
60
+ * A given value must be a positive number (or Infinity); anything else throws, naming it — a typo
61
+ * must not run with a limit the operator did not mean.
62
+ */
63
+ export function resolveLimits(given, opts = {}) {
64
+ const out = { ...(opts.trusted ? NONE : DEFAULT_LIMITS) };
65
+ for (const [k, v] of Object.entries(given ?? {})) {
66
+ if (v === undefined)
67
+ continue;
68
+ if (!isLimitName(k))
69
+ throw new Error(`No such limit: ${k} (there is ${Object.keys(DEFAULT_LIMITS).join(", ")})`);
70
+ // a whole number ≥ 1, or Infinity (none): `cellChars=0.5` cut a cell to one character and an ellipsis
71
+ if (typeof v !== "number" || !(v === Infinity || (Number.isInteger(v) && v >= 1)))
72
+ throw new Error(`Limit ${k} must be a whole number of at least 1 (or none), not ${JSON.stringify(v)}`);
73
+ out[k] = v;
74
+ }
75
+ return out;
76
+ }
77
+ /**
78
+ * One `--limit name=value` flag: `catalogueBytes=500MB`, `catalogueRows=50000`, `cellChars=none`.
79
+ * Sizes take `KB`/`MB`/`GB` (powers of 1,000) or `KiB`/`MiB`/`GiB`; `none` is no limit.
80
+ */
81
+ export function parseLimit(flag) {
82
+ const m = /^([A-Za-z]+)=(.+)$/.exec(flag.trim());
83
+ if (!m)
84
+ throw new Error(`--limit takes name=value, not ${JSON.stringify(flag)}`);
85
+ const [, name, raw] = m;
86
+ if (!isLimitName(name))
87
+ throw new Error(`No such limit: ${name} (there is ${Object.keys(DEFAULT_LIMITS).join(", ")})`);
88
+ if (/^(none|unlimited|infinity)$/i.test(raw))
89
+ return [name, Infinity];
90
+ const v = /^(\d+(?:\.\d+)?)\s*([KMG]i?B)?$/i.exec(raw.replace(/_/g, ""));
91
+ if (!v)
92
+ throw new Error(`--limit ${name}: ${JSON.stringify(raw)} is not a number (or 500MB, or none)`);
93
+ const unit = (v[2] ?? "").toUpperCase();
94
+ if (unit && !name.endsWith("Bytes"))
95
+ throw new Error(`--limit ${name} is a count, not a size: ${JSON.stringify(raw)}`);
96
+ const scale = { "": 1, KB: 1e3, MB: 1e6, GB: 1e9, KIB: 1024, MIB: 1024 ** 2, GIB: 1024 ** 3 };
97
+ // a size rounds to whole bytes; a count must be whole
98
+ const n = unit ? Math.round(Number(v[1]) * scale[unit]) : Number(v[1]);
99
+ // only the word `none` means no limit: 400 digits is a typo, not Infinity
100
+ if (!Number.isFinite(n) || n > Number.MAX_SAFE_INTEGER)
101
+ throw new Error(`--limit ${name}: ${JSON.stringify(raw)} is too large (use none for no limit)`);
102
+ if (!Number.isInteger(n) || n < 1)
103
+ throw new Error(`--limit ${name} must be a whole number of at least 1, not ${JSON.stringify(raw)}`);
104
+ return [name, n];
105
+ }
106
+ /** A limit's value as a person reads it: `256 MB`, `20,000`, `none`. */
107
+ export function formatLimit(name, value) {
108
+ if (!Number.isFinite(value))
109
+ return "none";
110
+ if (name.endsWith("Bytes")) {
111
+ if (value >= 1e9)
112
+ return `${+(value / 1e9).toFixed(1)} GB`;
113
+ if (value >= 1e6)
114
+ return `${+(value / 1e6).toFixed(1)} MB`;
115
+ if (value >= 1e3)
116
+ return `${+(value / 1e3).toFixed(1)} KB`;
117
+ return `${value} bytes`;
118
+ }
119
+ return value.toLocaleString("en-US");
120
+ }
121
+ const HOW = {
122
+ cli: (name) => `--limit ${name}=…, or --trusted for a repo you trust`,
123
+ config: (name) => `\`limits: { ${name}: … }\` in dogsbay.config.yml, or \`limits: { trusted: true }\``,
124
+ host: (name) => `the import's \`limits.${name}\` option, or \`trusted\` for a repo you trust`,
125
+ };
126
+ /**
127
+ * The report for a tripped limit: what was not done, the measured value against the limit, and
128
+ * how to raise it where the import runs.
129
+ */
130
+ export function limitMessage(what, name, measured, limit, host = "cli") {
131
+ const over = measured === undefined ? `over the ${formatLimit(name, limit)} limit` : `${formatLimit(name, measured)}, over the ${formatLimit(name, limit)} limit`;
132
+ return `${what}: ${LIMIT_DESCRIPTIONS[name]} ${over} (${HOW[host](name)})`;
133
+ }
134
+ /** UTF-8 bytes of a string, without encoding it: limits on bytes count bytes, not UTF-16 units. */
135
+ export function utf8Bytes(s) {
136
+ let n = 0;
137
+ for (let i = 0; i < s.length; i++) {
138
+ const c = s.charCodeAt(i);
139
+ if (c < 0x80)
140
+ n += 1;
141
+ else if (c < 0x800)
142
+ n += 2;
143
+ else if (c >= 0xd800 && c <= 0xdbff && i + 1 < s.length && (s.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {
144
+ n += 4;
145
+ i++;
146
+ }
147
+ else
148
+ n += 3;
149
+ }
150
+ return n;
151
+ }
package/dist/meta.d.ts CHANGED
@@ -19,13 +19,19 @@ export interface PageMeta {
19
19
  tags?: string[];
20
20
  /**
21
21
  * Broader grouping. Auto-derived from path when frontmatter
22
- * doesn't supply a valid value (`content/guides/auth.md` →
23
- * `["guides"]`). Override with `category: foo` or
24
- * `category: [foo, bar]`.
22
+ * doesn't supply a valid value, emitted as **cumulative slash-
23
+ * paths** so each value uniquely identifies its position in the
24
+ * hierarchy (`content/guides/oauth/setup.md` →
25
+ * `["guides", "guides/oauth"]`). The bare top segment is
26
+ * preserved so simple queries like `category:guides` still match
27
+ * the whole subtree. Override with `category: foo` or
28
+ * `category: [foo, bar]` (explicit values pass through
29
+ * unchanged — no auto-prefix).
25
30
  *
26
31
  * No first-class "belongs nowhere" sentinel in v1: `category: []`
27
32
  * falls through to slug-derived default. See
28
- * plans/metadata-and-taxonomies.md.
33
+ * plans/metadata-and-taxonomies.md and
34
+ * plans/hierarchical-facets.md.
29
35
  */
30
36
  category?: string[];
31
37
  /**
@@ -41,6 +47,16 @@ export interface PageMeta {
41
47
  /** ISO date strings. Consumers parse to Date when needed. */
42
48
  updated?: string;
43
49
  created?: string;
50
+ /**
51
+ * Post authors. Accepts a single string or a list in frontmatter;
52
+ * always normalized to a list here so consumers have one shape.
53
+ *
54
+ * Added for the blog capability (plans/blog-capability.md) — it was
55
+ * the only field a post needs that PageMeta did not already carry.
56
+ * Absent means "no byline", never "unknown author": the layout omits
57
+ * the row entirely rather than rendering a placeholder.
58
+ */
59
+ author?: string[];
44
60
  /** Sort hint for navigation/list pages. Lower weight first. */
45
61
  weight?: number;
46
62
  /**
@@ -77,6 +93,12 @@ export interface ParseMetaOptions {
77
93
  */
78
94
  taxonomyNames?: readonly string[];
79
95
  }
96
+ /**
97
+ * Closed enum for status validation. Exported so the frontmatter CHECKER
98
+ * (packages/commands) reports exactly the values this parser drops, instead
99
+ * of restating the list a third time.
100
+ */
101
+ export declare const STATUS_VALUES: readonly PageStatus[];
80
102
  /**
81
103
  * Parse and normalize frontmatter into `PageMeta`. Pure function;
82
104
  * no I/O. Unknown frontmatter keys are not lifted — they stay in
@@ -97,4 +119,3 @@ export interface ParseMetaOptions {
97
119
  * `meta.taxonomies` as string arrays.
98
120
  */
99
121
  export declare function parseMeta(frontmatter: Record<string, unknown> | undefined, options?: ParseMetaOptions): PageMeta;
100
- //# sourceMappingURL=meta.d.ts.map
package/dist/meta.js CHANGED
@@ -8,8 +8,12 @@
8
8
  *
9
9
  * See plans/metadata-and-taxonomies.md for the design rationale.
10
10
  */
11
- /** Closed enum for status validation. */
12
- const STATUS_VALUES = [
11
+ /**
12
+ * Closed enum for status validation. Exported so the frontmatter CHECKER
13
+ * (packages/commands) reports exactly the values this parser drops, instead
14
+ * of restating the list a third time.
15
+ */
16
+ export const STATUS_VALUES = [
13
17
  "draft",
14
18
  "preview",
15
19
  "stable",
@@ -58,6 +62,9 @@ export function parseMeta(frontmatter, options = {}) {
58
62
  const created = coerceIsoDate(fm.created);
59
63
  if (created)
60
64
  meta.created = created;
65
+ const author = coerceStringArray(fm.author);
66
+ if (author)
67
+ meta.author = author;
61
68
  if (typeof fm.weight === "number" && Number.isFinite(fm.weight)) {
62
69
  meta.weight = fm.weight;
63
70
  }
@@ -71,13 +78,29 @@ export function parseMeta(frontmatter, options = {}) {
71
78
  }
72
79
  /**
73
80
  * Auto-derive `category` from a slug. The leaf segment is treated
74
- * as the page filename and dropped; remaining segments become the
75
- * category path.
81
+ * as the page filename and dropped; remaining segments emit as
82
+ * **cumulative slash-paths**, so each value uniquely identifies its
83
+ * position in the document hierarchy.
76
84
  *
77
85
  * - `"guides/auth"` → `["guides"]`
78
- * - `"guides/oauth/setup"` → `["guides", "oauth"]`
86
+ * - `"guides/oauth/setup"` → `["guides", "guides/oauth"]`
87
+ * - `"installing/installing_aws/ipi/foo"` → `["installing", "installing/installing_aws", "installing/installing_aws/ipi"]`
79
88
  * - `"intro"` → undefined (no parent path)
80
89
  * - `""` / undefined → undefined
90
+ *
91
+ * Why cumulative instead of bare segments: a leaf name like `ipi`
92
+ * appears at multiple positions across a large corpus (under
93
+ * `installing/installing_aws/`, `installing/installing_azure/`, …).
94
+ * Bare segments would collide as Pagefind filter values, so the
95
+ * search dialog's hierarchical-facet tree can't distinguish
96
+ * positions and tree-click cascades leak across siblings. Cumulative
97
+ * paths disambiguate fully and also let the search dialog detect
98
+ * the slash-encoded shape automatically (no nav.json needed to build
99
+ * the tree). The containment semantic is preserved — every page
100
+ * under `installing/` still carries the bare-prefix `"installing"`
101
+ * value as its top-level entry, so existing filter queries like
102
+ * `category:installing` continue to match the whole subtree.
103
+ * See plans/hierarchical-facets.md ("Open follow-ups").
81
104
  */
82
105
  function deriveCategoryFromSlug(slug) {
83
106
  if (!slug)
@@ -85,7 +108,12 @@ function deriveCategoryFromSlug(slug) {
85
108
  const parts = slug.split("/").filter((p) => p.length > 0);
86
109
  if (parts.length < 2)
87
110
  return undefined;
88
- return parts.slice(0, -1);
111
+ const parents = parts.slice(0, -1);
112
+ const out = [];
113
+ for (let i = 0; i < parents.length; i++) {
114
+ out.push(parents.slice(0, i + 1).join("/"));
115
+ }
116
+ return out;
89
117
  }
90
118
  function coerceStringArray(value) {
91
119
  if (typeof value === "string") {
@@ -127,4 +155,3 @@ function collectTaxonomies(fm, taxonomyNames) {
127
155
  }
128
156
  return Object.keys(out).length > 0 ? out : undefined;
129
157
  }
130
- //# sourceMappingURL=meta.js.map
package/dist/plugin.d.ts CHANGED
@@ -73,9 +73,9 @@ export interface PluginVisibleConfig {
73
73
  }
74
74
  /**
75
75
  * Audit rule contract — re-stated here to avoid a circular dep
76
- * between `@dogsbay/types` and `@dogsbay/cli` (where the canonical
76
+ * between `@dogsbay/types` and `@dogsbay/site-check` (where the canonical
77
77
  * audit module lives). The shape MUST stay in sync with
78
- * `packages/cli/src/audit/types.ts` — adapted via a runtime
78
+ * `@dogsbay/site-check` (`packages/site-check/src/types.ts`) — adapted via a runtime
79
79
  * pass-through in the loader.
80
80
  */
81
81
  export interface PluginRule {
@@ -87,7 +87,7 @@ export interface PluginRule {
87
87
  /**
88
88
  * The audit runner narrows this on the rule's declared `stage`.
89
89
  * Plugins import the concrete context types from
90
- * `@dogsbay/cli/audit` if they need typed access.
90
+ * `@dogsbay/site-check` if they need typed access.
91
91
  */
92
92
  run(ctx: unknown): PluginIssue[];
93
93
  }
@@ -266,4 +266,3 @@ export type PluginConfigEntry = string | {
266
266
  /** Options forwarded to the plugin's factory. */
267
267
  options?: unknown;
268
268
  };
269
- //# sourceMappingURL=plugin.d.ts.map
package/dist/plugin.js CHANGED
@@ -13,4 +13,3 @@
13
13
  * file owns only the shapes — keeping `@dogsbay/types` light.
14
14
  */
15
15
  export {};
16
- //# sourceMappingURL=plugin.js.map
package/dist/tree.d.ts CHANGED
@@ -35,7 +35,7 @@ export interface TreeNode {
35
35
  *
36
36
  * Links use `children` because link text can contain formatted spans.
37
37
  */
38
- export type InlineNode = InlineText | InlineLink | InlineImage | InlineCode | InlineHighlight | InlineFootnoteRef | InlineKbd | InlineIcon | InlineMath | InlineHtml | InlineBreak;
38
+ export type InlineNode = InlineText | InlineLink | InlineImage | InlineCode | InlineHighlight | InlineFootnoteRef | InlineKbd | InlineIcon | InlineBadge | InlineMath | InlineHtml | InlineBreak;
39
39
  /** Text span with flat formatting annotations. */
40
40
  export interface InlineText {
41
41
  type: "text";
@@ -43,14 +43,46 @@ export interface InlineText {
43
43
  bold?: boolean;
44
44
  italic?: boolean;
45
45
  strikethrough?: boolean;
46
+ /**
47
+ * Set by the dogsbay-md parser on bold text (or an all-bold link) that ends a source line
48
+ * inside a paragraph. Markdown turns that line break into a space, so without it `**Title**`
49
+ * over a line of detail and `**Click** Save.` are the same tree. Read by `stepLead`.
50
+ */
51
+ lineEnd?: boolean;
46
52
  }
47
53
  /** Link wrapping inline children (link text can contain formatting). */
48
54
  export interface InlineLink {
49
55
  type: "link";
50
56
  href: string;
51
57
  title?: string;
58
+ /** As on InlineText: an all-bold link that ends a source line inside a paragraph. */
59
+ lineEnd?: boolean;
60
+ /**
61
+ * Attributes from a trailing `{...}` block, e.g.
62
+ * `[text](href){.class #id style="..."}`. `id`, `class`, and `style`
63
+ * are first-class; any other key passes through to the renderer.
64
+ */
65
+ attrs?: InlineAttrs;
66
+ /**
67
+ * An inline `:button[label]{href="…" variant="…"}`: a link styled as a
68
+ * button. Renderers that do not know it render a plain link.
69
+ */
70
+ button?: {
71
+ variant?: string;
72
+ };
52
73
  children: InlineNode[];
53
74
  }
75
+ /**
76
+ * Attribute set for inline elements (links and images). Mirrors the
77
+ * shape of block-level attribute blocks but lives on the inline node
78
+ * so renderers can apply id/class/style to the emitted element.
79
+ */
80
+ export interface InlineAttrs {
81
+ id?: string;
82
+ class?: string;
83
+ style?: string;
84
+ [key: string]: string | undefined;
85
+ }
54
86
  /** Image (block or inline depending on context). */
55
87
  export interface InlineImage {
56
88
  type: "image";
@@ -59,11 +91,36 @@ export interface InlineImage {
59
91
  title?: string;
60
92
  width?: number;
61
93
  height?: number;
94
+ /**
95
+ * Attributes from a trailing `{...}` block, e.g.
96
+ * `![alt](src){.class #id width="64"}`. `id`, `class`, and `style`
97
+ * are first-class; any other key passes through to the renderer.
98
+ * Mirrors `InlineLink.attrs`.
99
+ */
100
+ attrs?: InlineAttrs;
62
101
  }
63
102
  /** Inline code span. */
64
103
  export interface InlineCode {
65
104
  type: "code";
66
105
  text: string;
106
+ /**
107
+ * The span carries the `{minja}` build-processing opt-in
108
+ * (`` `x`{minja} `` — the inline twin of the `{minja}` fence marker;
109
+ * planted by the AsciiDoc engine on spans holding attribute refs).
110
+ * Parser and serializer round-trip it so a normalize pass or an
111
+ * editor save can't silently flip the span back to masked (#030).
112
+ */
113
+ minja?: boolean;
114
+ /**
115
+ * Formatting inherited from an enclosing strong/em/strike span
116
+ * (`**\`code\` text**`). Without these the parser dropped the wrapper
117
+ * on the code node and serializers re-emitted the caption as
118
+ * `\`LVMCluster\`** CR fields**` — bold broken, literal `**` visible
119
+ * (issue #045).
120
+ */
121
+ bold?: boolean;
122
+ italic?: boolean;
123
+ strikethrough?: boolean;
67
124
  }
68
125
  /** Highlighted/marked text (==text== in Obsidian/pymdownx.mark). */
69
126
  export interface InlineHighlight {
@@ -103,6 +160,18 @@ export interface InlineIcon {
103
160
  /** Attributes from attr_list syntax { .class style="..." } */
104
161
  attrs?: Record<string, string>;
105
162
  }
163
+ /**
164
+ * `:badge[text]{variant="…"}`: a short status label (New, Beta,
165
+ * Deprecated). `variant` is the Badge component's: default, secondary,
166
+ * outline, success, warning, destructive…
167
+ */
168
+ export interface InlineBadge {
169
+ type: "badge";
170
+ text: string;
171
+ variant?: string;
172
+ /** Other attributes from the `{…}` block. */
173
+ attrs?: InlineAttrs;
174
+ }
106
175
  /** Raw HTML escape hatch for unsupported inline types. */
107
176
  export interface InlineHtml {
108
177
  type: "html-inline";
@@ -112,4 +181,3 @@ export interface InlineHtml {
112
181
  export interface InlineBreak {
113
182
  type: "break";
114
183
  }
115
- //# sourceMappingURL=tree.d.ts.map
package/dist/tree.js CHANGED
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=tree.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dogsbay/types",
3
- "version": "0.2.0-beta.16",
3
+ "version": "0.2.0-beta.160",
4
4
  "description": "Universal document tree model for Dogsbay format loaders and renderers",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -22,8 +22,8 @@
22
22
  "types"
23
23
  ],
24
24
  "devDependencies": {
25
- "typescript": "^5.7.0",
26
- "vitest": "^3.0.0"
25
+ "typescript": "^5.9.3",
26
+ "vitest": "^4.1.10"
27
27
  },
28
28
  "license": "MIT",
29
29
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,iBAAiB,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACtL,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACrE,YAAY,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,eAAe,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACpO,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,UAAU,EACV,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIrE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,OAAO,CAErD;AAkBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EAAE,EACjB,QAAQ,GAAE,MAAU,GACnB,QAAQ,EAAE,CAoDZ;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAiBlD"}
package/dist/json.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,+EAA+E;AAC/E,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC;AAEvE,MAAM,WAAW,QAAQ;IACvB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;;;;;;OASG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,6EAA6E;IAC7E,MAAM,CAAC,EAAE,UAAU,CAAC;IAEpB,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+DAA+D;IAC/D,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACvC;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACnC;AAUD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,SAAS,CACvB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAChD,OAAO,GAAE,gBAAqB,GAC7B,QAAQ,CAwCV"}
package/dist/meta.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"meta.js","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmFH,yCAAyC;AACzC,MAAM,aAAa,GAA0B;IAC3C,OAAO;IACP,SAAS;IACT,QAAQ;IACR,YAAY;CACb,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,SAAS,CACvB,WAAgD,EAChD,UAA4B,EAAE;IAE9B,MAAM,EAAE,GAAG,WAAW,IAAI,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,MAAM,IAAI,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAE3B,MAAM,QAAQ,GACZ,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,sBAAsB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzE,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEvC,IAAI,OAAO,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;IACtB,CAAC;IAED,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAK,aAAmC,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9F,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAoB,CAAC;IACxC,CAAC;IAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAEpC,MAAM,OAAO,GAAG,aAAa,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,OAAO;QAAE,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAEpC,IAAI,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;QAChE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,CAAC;IAC1B,CAAC;IAED,IAAI,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,EAAE,GAAI,EAAE,CAAC,KAAiC,EAAE,CAAC;IAC5D,CAAC;IAED,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAChE,IAAI,UAAU;QAAE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAE7C,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,sBAAsB,CAAC,IAAwB;IACtD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC1D,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAc;IACvC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAChD,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACpF,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1C,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClD,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACrB,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,CACzB,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,EAA2B,EAC3B,aAA4C;IAE5C,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACnE,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;QACjC,wDAAwD;QACxD,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU;YAAE,SAAS;QAC5E,MAAM,KAAK,GAAG,iBAAiB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,IAAI,KAAK;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.d.ts","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":"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"}
package/dist/tree.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"tree.js","sourceRoot":"","sources":["../src/tree.ts"],"names":[],"mappings":""}