@refrakt-md/types 0.14.4 → 0.16.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/index.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  export { Newable, NodeType, } from './interfaces.js';
2
2
  export type { DesignTokens } from './tokens.js';
3
3
  export type { TokenContract, PartialTokenContract, ThemeTokensConfig, ThemeTokensModeOverlay, SentimentTokens, PrimaryScale, SyntaxTokens, DeepPartial, } from './token-contract.js';
4
- export type { RefraktConfig, SiteConfig, SiteThemeConfig, PlanConfig, ThemeManifest, LayoutDefinition, RouteRule, ComponentDefinition, } from './theme.js';
4
+ export type { RefraktConfig, SiteConfig, SiteThemeConfig, PlanConfig, XrefPattern, ThemeManifest, LayoutDefinition, RouteRule, EntityRoute, ComponentDefinition, } from './theme.js';
5
5
  export { getThemePackage } from './theme.js';
6
6
  export type { Plugin, PluginRune, PluginAttribute, RuneExtension, PluginThemeConfig, } from './package.js';
7
7
  export type { SerializedTag, RendererNode } from './serialized.js';
8
8
  export type { BaseComponentProps, PageSectionSlots, SplitLayoutProperties, } from './component-props.js';
9
9
  export type { ContentFieldDefinition, SequenceModel, HeadingExtractField, HeadingExtract, KnownSectionDefinition, SectionsModel, DelimitedZone, DelimitedModel, CustomModel, ItemFieldDefinition, ItemModel, AttributeInCondition, AttributeExistsCondition, HasChildCondition, ContentModelCondition, ConditionalContentModel, StructuralContentModel, ContentModel, ResolvedField, ResolvedContent, } from './content-model.js';
10
- export type { TransformedPage, PipelineHeadingInfo, EntityRegistration, EntityRegistry, AggregatedData, PipelineContext, PipelineWarning, PluginPipelineHooks, } from './pipeline.js';
10
+ export type { TransformedPage, PipelineHeadingInfo, EntityRegistration, EntityRegistry, EntityEdge, ResolvedEdge, AggregatedData, PipelineContext, PipelineWarning, PluginPipelineHooks, PluginConfigureOptions, PreprocessContext, PreprocessPage, ContributePagesContext, ContributedPage, } from './pipeline.js';
11
11
  export type { CliPlugin, CliPluginCommand, McpHandlerContext, JSONSchema7, } from './cli-plugin.js';
12
12
  export type { SecurityPolicy, ResolvedSecurityPolicy } from './security.js';
13
13
  export { resolveSecurityPolicy } from './security.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,YAAY,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,YAAY,EACX,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACX,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GACf,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,GACnB,MAAM,eAAe,CAAC;AAGvB,YAAY,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACX,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,QAAQ,GACT,MAAM,iBAAiB,CAAC;AAIzB,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGhD,YAAY,EACV,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,aAAa,EACb,UAAU,EACV,eAAe,EACf,UAAU,EACV,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,mBAAmB,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7C,YAAY,EACV,MAAM,EACN,UAAU,EACV,eAAe,EACf,aAAa,EACb,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGnE,YAAY,EACX,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,GACrB,MAAM,sBAAsB,CAAC;AAG9B,YAAY,EACX,sBAAsB,EACtB,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,aAAa,EACb,cAAc,EACd,WAAW,EACX,mBAAmB,EACnB,SAAS,EACT,oBAAoB,EACpB,wBAAwB,EACxB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,YAAY,EACZ,aAAa,EACb,eAAe,GACf,MAAM,oBAAoB,CAAC;AAG5B,YAAY,EACX,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,eAAe,GACf,MAAM,eAAe,CAAC;AAGvB,YAAY,EACX,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,GACX,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAiCA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAmE7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmCA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AA0E7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
package/dist/package.d.ts CHANGED
@@ -46,6 +46,11 @@ export interface PluginThemeConfig {
46
46
  icons?: Record<string, Record<string, string>>;
47
47
  /** Background preset definitions for this plugin's runes */
48
48
  backgrounds?: Record<string, Record<string, unknown>>;
49
+ /** Domain-aware ordering overrides for collection/relationships sort &
50
+ * group (SPEC-072), keyed `type → field → ordered values`. Only needed
51
+ * where presentation order differs from a rune attribute's declaration
52
+ * `matches` (which is used as the default automatically). */
53
+ orderings?: Record<string, Record<string, string[]>>;
49
54
  }
50
55
  /** A plugin's exported registration object.
51
56
  * A plugin is an npm package that may contribute runes, layouts, theme config,
@@ -70,5 +75,12 @@ export interface Plugin {
70
75
  /** Build-time cross-page pipeline hooks.
71
76
  * Optional — plugins that don't need cross-page awareness omit this entirely. */
72
77
  pipeline?: import('./pipeline.js').PluginPipelineHooks;
78
+ /** File-root namespaces this plugin contributes, keyed by namespace.
79
+ * Values are paths relative to the plugin package's own directory.
80
+ * Once registered, references like `{% partial file="<ns>:foo.md" /%}`
81
+ * (and `{% snippet path="<ns>:bar.svelte" /%}` once SPEC-062's v2
82
+ * lands) resolve from the named root. See SPEC-063 for the full
83
+ * authoring + resolution model. */
84
+ fileRoots?: Record<string, string>;
73
85
  }
74
86
  //# sourceMappingURL=package.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IAC1B,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC7B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IACjC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtD;AAED;;;oBAGoB;AACpB,MAAM,WAAW,MAAM;IACtB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,kEAAkE;IAClE,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;yFACqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;sFACkF;IAClF,QAAQ,CAAC,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC;CACvD"}
1
+ {"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC/B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACpC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,yCAAyC;AACzC,MAAM,WAAW,UAAU;IAC1B,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;iEAC6D;IAC7D,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iDAAiD;AACjD,MAAM,WAAW,aAAa;IAC7B,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC;AAED,kDAAkD;AAClD,MAAM,WAAW,iBAAiB;IACjC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,iEAAiE;IACjE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD;;;kEAG8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;CACrD;AAED;;;oBAGoB;AACpB,MAAM,WAAW,MAAM;IACtB,6DAA6D;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAClC,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACxC,kEAAkE;IAClE,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B;yFACqF;IACrF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC;sFACkF;IAClF,QAAQ,CAAC,EAAE,OAAO,eAAe,EAAE,mBAAmB,CAAC;IACvD;;;;;wCAKoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC"}
@@ -28,29 +28,110 @@ export interface TransformedPage {
28
28
  }
29
29
  /**
30
30
  * A named entity registered during Phase 2 (Register).
31
- * The id field must be unique within its type.
31
+ * Identity within the registry is `(type, id)` for site-scoped entries
32
+ * (the default and back-compatible shape), or `(type, sourceUrl, id)` for
33
+ * page-scoped entries (where two pages may legitimately reuse the same id).
32
34
  */
33
35
  export interface EntityRegistration {
34
36
  /** Entity category (e.g. 'page', 'heading', 'character', 'term') */
35
37
  type: string;
36
- /** Unique identifier within this type (e.g. '/docs/guide/' or '/docs/guide/#intro') */
38
+ /** Identifier. Unique within its type when `scope` is `'site'` (the default);
39
+ * unique within `(type, sourceUrl)` when `scope` is `'page'`. */
37
40
  id: string;
38
- /** URL of the page this entity was registered from */
39
- sourceUrl: string;
41
+ /** Registration scope. `'site'` (default) means the entity is globally
42
+ * addressable across the build — two registrations with the same
43
+ * `(type, id)` collide and the last one wins. `'page'` means the entity
44
+ * is local to the page it was registered from (its {@link sourceUrl}):
45
+ * the registry namespaces the entry by URL internally so two pages can
46
+ * legitimately register the same `(type, id)` without collision. Page-
47
+ * scoped entries are still discoverable via {@link EntityRegistry.getAll}
48
+ * and {@link EntityRegistry.getByUrl}; {@link EntityRegistry.getById}
49
+ * needs the calling page's URL to match them, falling back to a site-
50
+ * scoped match if no page-scoped one exists. */
51
+ scope?: 'page' | 'site';
52
+ /** URL of the page this entity was registered from, when one exists.
53
+ * May be `undefined` when the entity isn't reachable via a local page URL
54
+ * (e.g. SPEC-064 plan content registered from `plan.dir` outside any
55
+ * site's content tree). The xref resolver treats undefined / empty as
56
+ * "no usable URL" and falls through to {@link XrefPattern} resolution.
57
+ * Empty strings passed at registration are normalized to `undefined`.
58
+ * Required in practice for `scope: 'page'` — page-scoped entries
59
+ * without a URL fall back to site-scoped keying (with a likely
60
+ * collision warning from the registry implementation). */
61
+ sourceUrl?: string;
62
+ /** Project-root-relative path to the source `.md` file backing this entity.
63
+ * Populated by plugins that can extract content from disk (e.g. the plan
64
+ * plugin's unconditional-scan path). Consumed by content-embedding runes
65
+ * like {% expand %} (SPEC-066) that need to read and slice the source
66
+ * file at build time. Optional — entities registered from in-memory
67
+ * sources or pages without a stable file path may omit it. */
68
+ sourceFile?: string;
69
+ /** Function returning the entity's top-level AST node from a freshly-
70
+ * parsed source file, or `null` if the file's structure has been edited
71
+ * away from the expected shape. Consumed by {% expand %} (SPEC-066) to
72
+ * extract the entity's subtree for inline substitution. Optional and
73
+ * paired with `sourceFile` — entities without a backing file omit both. */
74
+ extract?: (parsedSource: import('@markdoc/markdoc').Node) => import('@markdoc/markdoc').Node | null;
75
+ /** Return the entity's embeddable content as a Markdoc AST node directly,
76
+ * without reading a source file (SPEC-069). The generalization of
77
+ * `sourceFile` + `extract`: an entity is embeddable via `embed()` *or*
78
+ * (`sourceFile` + `extract`). Plugins backed by in-memory / external data
79
+ * (no file on disk) provide `embed()`; file-backed plugins keep
80
+ * `sourceFile` + `extract`. Consumed by {% expand %}. */
81
+ embed?: () => import('@markdoc/markdoc').Node | null;
40
82
  /** Entity-specific payload */
41
83
  data: Record<string, unknown>;
42
84
  }
85
+ /** A directed, typed relationship edge between two entities (SPEC-072).
86
+ * `kind` is an arbitrary, domain-defined string (e.g. `implements`,
87
+ * `blocked-by`, `ally`). Bidirectional relationships are expressed by
88
+ * contributing both directions, so "every edge touching X" is X's outgoing
89
+ * edges. `fromType`/`toType` are optional hints that speed up target
90
+ * resolution; when absent the registry resolves `toId` by scanning types. */
91
+ export interface EntityEdge {
92
+ fromId: string;
93
+ toId: string;
94
+ kind: string;
95
+ fromType?: string;
96
+ toType?: string;
97
+ }
98
+ /** An edge with its target entity resolved, returned by
99
+ * {@link EntityRegistry.getRelated}. */
100
+ export interface ResolvedEdge {
101
+ kind: string;
102
+ fromId: string;
103
+ toId: string;
104
+ target: EntityRegistration;
105
+ }
43
106
  /** The site-wide entity registry built during Phase 2 (Register) */
44
107
  export interface EntityRegistry {
45
108
  register(entry: EntityRegistration): void;
46
- /** All entities of a given type, in registration order */
109
+ /** All entities of a given type, in registration order. Mixed scopes —
110
+ * page-scoped and site-scoped entries appear together. */
47
111
  getAll(type: string): EntityRegistration[];
48
- /** All entities of a given type registered from a specific page URL */
112
+ /** All entities of a given type registered from a specific page URL.
113
+ * Includes both page-scoped and site-scoped entries from that page. */
49
114
  getByUrl(type: string, url: string): EntityRegistration[];
50
- /** Find a specific entity by type and id */
51
- getById(type: string, id: string): EntityRegistration | undefined;
115
+ /** Find a specific entity by type and id. When `pageUrl` is provided,
116
+ * page-scoped entries from that page take precedence over site-scoped
117
+ * matches of the same id; if no page-scoped match exists the search
118
+ * falls back to a site-scoped match. Without `pageUrl` only site-scoped
119
+ * entries are returned. */
120
+ getById(type: string, id: string, pageUrl?: string): EntityRegistration | undefined;
52
121
  /** All registered entity type names */
53
122
  getTypes(): string[];
123
+ /** Contribute a relationship edge to the graph (SPEC-072). Called by
124
+ * plugins during the aggregate phase. Exact `(fromId, toId, kind)`
125
+ * duplicates are deduped. Optional — a minimal registry need not carry a
126
+ * relationship graph. */
127
+ relate?(edge: EntityEdge): void;
128
+ /** Edges whose `fromId` is `id`, each with its target resolved (SPEC-072).
129
+ * `opts.kind` / `opts.type` filter by edge kind and target entity type.
130
+ * Edges to unknown entities are dropped. Optional — see {@link relate}. */
131
+ getRelated?(id: string, opts?: {
132
+ kind?: string | string[];
133
+ type?: string | string[];
134
+ }): ResolvedEdge[];
54
135
  }
55
136
  /**
56
137
  * Cross-page data produced by aggregate hooks (Phase 3).
@@ -66,24 +147,107 @@ export interface PipelineContext {
66
147
  /** A diagnostic emitted by a pipeline hook */
67
148
  export interface PipelineWarning {
68
149
  severity: 'info' | 'warning' | 'error';
69
- phase: 'register' | 'aggregate' | 'postProcess';
150
+ phase: 'register' | 'contribute' | 'aggregate' | 'postProcess';
70
151
  pluginName: string;
71
152
  /** Page URL that triggered the warning, if applicable */
72
153
  url?: string;
73
154
  message: string;
74
155
  }
156
+ /** Per-build configuration handed to {@link PluginPipelineHooks.configure}.
157
+ * Plugins that need access to the full `refrakt.config.json` (e.g. the plan
158
+ * plugin needs `plan.dir` for its unconditional-scan path) read it here. */
159
+ export interface PluginConfigureOptions {
160
+ /** The full, normalized refrakt config. Typed as `unknown` here to avoid
161
+ * a circular import between pipeline.ts and theme.ts; plugins cast to
162
+ * `RefraktConfig` from `@refrakt-md/types`. */
163
+ config: unknown;
164
+ /** Absolute path to the directory containing `refrakt.config.json`.
165
+ * Useful for resolving config-relative paths (`plan.dir`, etc.). */
166
+ configDir: string;
167
+ /** Dynamically register a file-root namespace. Use this when the plugin's
168
+ * contribution depends on user config (e.g., the plan plugin registers
169
+ * `plan:` pointing at the user's `plan.dir`, which isn't knowable
170
+ * statically from the plugin's package directory). Roots registered
171
+ * here merge with `Plugin.fileRoots` and user-config `fileRoots`; user
172
+ * config still wins any namespace collision. */
173
+ registerFileRoot?: (namespace: string, absolutePath: string) => void;
174
+ }
175
+ /** Per-page context handed to {@link PluginPipelineHooks.preprocess}.
176
+ * Extends {@link PipelineContext} with the file-system + project-root
177
+ * information preprocess hooks need to do sandboxed file reads. Variables
178
+ * from the transform `config.variables` aren't available yet (the
179
+ * transform hasn't run), so file-reading preprocessors that need disk
180
+ * access read here. */
181
+ export interface PreprocessContext extends PipelineContext {
182
+ /** Absolute path to the project root (the directory containing
183
+ * `refrakt.config.json`). The snippet rune uses this as its sandbox
184
+ * anchor; any preprocessor that resolves files relative to the project
185
+ * root reads it here. */
186
+ projectRoot?: string;
187
+ /** Sandbox file-reading helpers — same shape as the transform-time
188
+ * `__sandboxReadFile` family. Preprocess runs before the transform
189
+ * config exists, so the helpers are exposed here instead. */
190
+ sandbox?: {
191
+ read: (path: string) => string | null;
192
+ list: (path: string) => string[];
193
+ exists: (path: string) => boolean;
194
+ };
195
+ /** Markdoc variables that would otherwise be available to transforms
196
+ * via `config.variables`. Snippet's preprocess uses these to resolve
197
+ * attribute values that come in as Markdoc `Variable` nodes (e.g.
198
+ * `path=$file.path` parses as a variable reference, not a string).
199
+ * Variable nodes that aren't resolvable here render as empty strings,
200
+ * matching transform-time behaviour. */
201
+ variables?: Record<string, unknown>;
202
+ }
203
+ /** Per-page metadata handed to {@link PluginPipelineHooks.preprocess}. */
204
+ export interface PreprocessPage {
205
+ /** Resolved URL for this page. */
206
+ url: string;
207
+ /** Path relative to the content root. */
208
+ relativePath: string;
209
+ /** Absolute filesystem path to the source `.md` file. */
210
+ filePath: string;
211
+ }
75
212
  /**
76
213
  * Build-time cross-page pipeline hooks a Plugin can provide.
77
- * All three hooks are optional — plugins that don't need cross-page
78
- * awareness omit this field entirely.
214
+ * All hooks are optional — plugins that don't need cross-page awareness
215
+ * omit this field entirely.
79
216
  */
80
217
  export interface PluginPipelineHooks {
218
+ /** Phase −1 — Configure.
219
+ * Runs once per build before any other hook, receiving the user's
220
+ * `refrakt.config.json` and the config-file directory. Plugins that need
221
+ * build-time configuration (e.g. plan reading `plan.dir`) wire it up
222
+ * here. Sync or async; the loader awaits the promise. */
223
+ configure?: (opts: PluginConfigureOptions) => void | Promise<void>;
224
+ /** Phase 0 — Preprocess.
225
+ * Runs per page on the parsed Markdoc AST before the schema-driven
226
+ * transform. Hooks may rewrite the AST (replace tags with other node
227
+ * types, inject nodes, resolve include-style references). The returned
228
+ * AST is the one passed to the transform. Return `undefined` (or `void`)
229
+ * to leave the AST unchanged.
230
+ *
231
+ * Use sparingly — most concerns belong in transforms or postProcess
232
+ * hooks. Preprocess is for cases where the rune needs to be invisible
233
+ * to downstream transforms (e.g., snippet → fence so container runes
234
+ * don't need per-rune awareness). */
235
+ preprocess?: (ast: import('@markdoc/markdoc').Node, page: PreprocessPage, ctx: PreprocessContext) => import('@markdoc/markdoc').Node | void | Promise<import('@markdoc/markdoc').Node | void>;
81
236
  /**
82
237
  * Phase 2 — Register.
83
238
  * Scan all transformed pages and register named entities in the site-wide registry.
84
239
  * Called once with the full page array after Phase 1 is complete.
85
240
  */
86
241
  register?: (pages: readonly TransformedPage[], registry: EntityRegistry, ctx: PipelineContext) => void;
242
+ /**
243
+ * Phase 2.5 — Contribute pages (SPEC-069).
244
+ * Synthesize virtual pages (from registered entities or external data) that
245
+ * flow through the rest of the pipeline exactly like file-backed pages.
246
+ * Runs after register (so the registry is populated) and before aggregate.
247
+ * Sync or async; the loader awaits the promise. Errors are caught and the
248
+ * plugin's contributions are skipped with a build warning.
249
+ */
250
+ contributePages?: (ctx: ContributePagesContext) => ContributedPage[] | Promise<ContributedPage[]>;
87
251
  /**
88
252
  * Phase 3 — Aggregate.
89
253
  * Build cross-page indexes, graphs, or collections from the full registry.
@@ -99,4 +263,34 @@ export interface PluginPipelineHooks {
99
263
  */
100
264
  postProcess?: (page: TransformedPage, aggregated: AggregatedData, ctx: PipelineContext) => TransformedPage;
101
265
  }
266
+ /** Context handed to {@link PluginPipelineHooks.contributePages} (SPEC-069). */
267
+ export interface ContributePagesContext extends PipelineContext {
268
+ /** The registry after Phase 2 — read entities to derive routes. */
269
+ registry: Readonly<EntityRegistry>;
270
+ /** Absolute path to the project root, for resolving config-relative paths. */
271
+ projectRoot?: string;
272
+ /** The per-site config slice (typed `unknown` to avoid a circular import;
273
+ * the built-in entityRoutes adapter casts to `SiteConfig`). */
274
+ siteConfig?: unknown;
275
+ }
276
+ /** A page synthesized by a plugin (SPEC-069). The framework parses + transforms
277
+ * it and runs it through register / aggregate / postProcess like a file page. */
278
+ export interface ContributedPage {
279
+ /** Site-root-relative route (basePath is applied by the loader). */
280
+ url: string;
281
+ /** Page title; falls back to the rendered content's heading when omitted. */
282
+ title?: string;
283
+ /** Frontmatter for the synthesized page. */
284
+ frontmatter?: Record<string, unknown>;
285
+ /** Markdoc source for the page body. */
286
+ content: string;
287
+ /** Extra markdoc variables bound when transforming the page body (e.g. the
288
+ * entityRoutes adapter binds `{ item }` so `$item` resolves in `render`). */
289
+ variables?: Record<string, unknown>;
290
+ /** Attribution for diagnostics / collision messages. */
291
+ source?: {
292
+ plugin?: string;
293
+ ruleIndex?: number;
294
+ };
295
+ }
102
296
  //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,wDAAwD;AACxD,MAAM,WAAW,mBAAmB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACX;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,QAAQ,EAAE,mBAAmB,EAAE,CAAC;IAChC,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC;;;;;OAKG;IACH,UAAU,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAClC,oEAAoE;IACpE,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,EAAE,EAAE,MAAM,CAAC;IACX,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC9B;AAED,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC1C,0DAA0D;IAC1D,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAC3C,uEAAuE;IACvE,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAAC;IAC1D,4CAA4C;IAC5C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAAC;IAClE,uCAAuC;IACvC,QAAQ,IAAI,MAAM,EAAE,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAErD,mFAAmF;AACnF,MAAM,WAAW,eAAe;IAC/B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3C;AAED,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC/B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IACnC;;;;OAIG;IACH,QAAQ,CAAC,EAAE,CACV,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,QAAQ,EAAE,cAAc,EACxB,GAAG,EAAE,eAAe,KAChB,IAAI,CAAC;IAEV;;;;;OAKG;IACH,SAAS,CAAC,EAAE,CACX,QAAQ,EAAE,QAAQ,CAAC,cAAc,CAAC,EAClC,GAAG,EAAE,eAAe,KAChB,OAAO,CAAC;IAEb;;;;;OAKG;IACH,WAAW,CAAC,EAAE,CACb,IAAI,EAAE,eAAe,EACrB,UAAU,EAAE,cAAc,EAC1B,GAAG,EAAE,eAAe,KAChB,eAAe,CAAC;CACrB"}
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"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"}
package/dist/theme.d.ts CHANGED
@@ -42,6 +42,27 @@ export interface SiteThemeConfig {
42
42
  colorScheme?: 'auto' | 'light' | 'dark';
43
43
  };
44
44
  }
45
+ /** A declarative entity → page route (SPEC-069). Generates one page per
46
+ * registered entity matching `type` + optional `filter`. `{name}` placeholders
47
+ * in `url` / `title` / `frontmatter` interpolate entity fields; `$item` is
48
+ * bound in `render` / `render-template`. `render` and `render-template` are
49
+ * mutually exclusive. */
50
+ export interface EntityRoute {
51
+ /** Entity type(s) the rule matches, comma-separated for multiple. */
52
+ type: string;
53
+ /** Optional field:value filter (SPEC-070 grammar). */
54
+ filter?: string;
55
+ /** Templated route, site-root-relative (basePath applied by the loader). */
56
+ url: string;
57
+ /** Templated page title; falls back to the rendered content's heading. */
58
+ title?: string;
59
+ /** Inline markdoc body, with `$item` bound. */
60
+ render?: string;
61
+ /** Markdoc partial used as the body instead of `render`. */
62
+ 'render-template'?: string;
63
+ /** Frontmatter for the generated page (`{name}` placeholders interpolate). */
64
+ frontmatter?: Record<string, unknown>;
65
+ }
45
66
  /** Per-site configuration. A project may declare a single site (via `site`) or
46
67
  * multiple named sites (via `sites: { name: SiteConfig }`).
47
68
  * Only `contentDir` and `theme` are strictly required for the site to load. */
@@ -60,6 +81,9 @@ export interface SiteConfig {
60
81
  overrides?: Record<string, string>;
61
82
  /** Route-to-layout mapping rules, evaluated in order (first match wins) */
62
83
  routeRules?: RouteRule[];
84
+ /** Declarative entity → page routes (SPEC-069). Each rule generates one page
85
+ * per registered entity matching `type` + optional `filter`. */
86
+ entityRoutes?: EntityRoute[];
63
87
  /** Syntax highlighting options */
64
88
  highlight?: {
65
89
  theme?: string | {
@@ -120,6 +144,20 @@ export interface RefraktConfig {
120
144
  plugins?: string[];
121
145
  /** Plan-management configuration. */
122
146
  plan?: PlanConfig;
147
+ /** Cross-reference URL templates. Patterns are tried in array order when an
148
+ * xref's ID isn't found in the registry (or when the registry-found entity
149
+ * has no usable `sourceUrl`). First match wins. See {@link XrefPattern}. */
150
+ xrefs?: XrefPattern[];
151
+ /** Named file roots — directories that file-reading runes can reach via
152
+ * a `namespace:filename` syntax. Markdoc partials extend `{% partial %}`
153
+ * to honor namespaced refs (`shared:footer.md`); the snippet rune
154
+ * ({% ref "SPEC-062" /%}) consumes the same resolver when its v2 lands.
155
+ *
156
+ * Keys are namespace names; values are paths relative to the config
157
+ * file's directory (i.e. the project root). Paths must point to existing
158
+ * directories. The namespace `site` is reserved for future site-level
159
+ * resolution. See SPEC-063 for the full resolution model. */
160
+ fileRoots?: Record<string, string>;
123
161
  /** Singular-site declaration. Mutually exclusive with `sites`. */
124
162
  site?: SiteConfig;
125
163
  /** Multi-site declaration keyed by site name. Mutually exclusive with `site`. */
@@ -164,6 +202,39 @@ export interface RefraktConfig {
164
202
  local?: Record<string, string>;
165
203
  };
166
204
  }
205
+ /** A single cross-reference resolution pattern. Configures how unresolved xref
206
+ * IDs (those without a matching registry entity) are turned into URLs.
207
+ *
208
+ * Example: route GitHub-style refs to issue pages.
209
+ * ```jsonc
210
+ * {
211
+ * "match": "^GH-(?<num>\\d+)$",
212
+ * "template": "https://github.com/myuser/myrepo/issues/{num}",
213
+ * "type": "github-issue",
214
+ * "label": "GitHub #{num}"
215
+ * }
216
+ * ```
217
+ *
218
+ * See SPEC-065 for the full resolution model. */
219
+ export interface XrefPattern {
220
+ /** Regex pattern matched against the ID. Anchored to whole-string match by
221
+ * default — `^` and `$` are auto-applied unless explicit anchors are
222
+ * present at the start/end. Named groups (`(?<name>...)`) are extractable
223
+ * in `template` and `label` as `{name}`. */
224
+ match: string;
225
+ /** URL template. Supports `{id}` (the full matched ID) and `{name}` for
226
+ * named groups. Each substituted value is encoded per URL segment (split
227
+ * on `/`, encode each segment, rejoin) so path-shaped captures preserve
228
+ * slashes. */
229
+ template: string;
230
+ /** CSS modifier class — applied as `rf-xref--{type}`. Default: `"external"`.
231
+ * The value `"unresolved"` is reserved and rejected at config load. */
232
+ type?: string;
233
+ /** Template for the rendered link text. Same placeholder syntax as
234
+ * `template`. Default: `"{id}"`. The rune's `label=` attribute (if set)
235
+ * still overrides this. */
236
+ label?: string;
237
+ }
167
238
  /** Theme manifest — the universal contract between content and rendering */
168
239
  export interface ThemeManifest {
169
240
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;;yEAGyE;AACzE,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,eAAe,GAAG,MAAM,CAEvE;AAED;;;;;;;2DAO2D;AAC3D,MAAM,WAAW,eAAe;IAC/B,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAChB;;wDAEoD;IACpD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;oFAGgF;IAChF,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;IACxC;oEACgE;IAChE,MAAM,CAAC,EAAE,OAAO,qBAAqB,EAAE,iBAAiB,CAAC;IACzD;sCACkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;IAC3E,0CAA0C;IAC1C,IAAI,CAAC,EAAE;QACN;;;;;;;yEAOiE;QACjE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;KACxC,CAAC;CACF;AAED;;;;0BAI0B;AAC1B,MAAM,WAAW,WAAW;IAC3B,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4DAA4D;IAC5D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8EAA8E;IAC9E,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED;;gFAEgF;AAChF,MAAM,WAAW,UAAU;IAC1B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB;;uCAEmC;IACnC,KAAK,EAAE,MAAM,GAAG,eAAe,CAAC;IAChC;;8EAE0E;IAC1E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB;qEACiE;IACjE,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,kCAAkC;IAClC,SAAS,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,CAAC;IACF,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,kFAAkF;IAClF,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB;;;kDAG8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,oFAAoF;IACpF,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,4BAA4B;IAC5B,OAAO,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,8CAA8C;IAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,KAAK,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACF;AAED;iEACiE;AACjE,MAAM,WAAW,UAAU;IAC1B,gEAAgE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;CACb;AAED;;;;;;;;wEAQwE;AACxE,MAAM,WAAW,aAAa;IAC7B;;;uEAGmE;IACnE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;iFAE6E;IAC7E,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtB;;;;;;;;kEAQ8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEnC,kEAAkE;IAClE,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,iFAAiF;IACjF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAWnC,0IAA0I;IAC1I,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yMAAyM;IACzM,KAAK,CAAC,EAAE,MAAM,GAAG,eAAe,CAAC;IACjC,mSAAmS;IACnS,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,2DAA2D;IAC3D,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,0DAA0D;IAC1D,SAAS,CAAC,EAAE;QACX,KAAK,CAAC,EAAE,MAAM,GAAG;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACjD,CAAC;IACF,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,4DAA4D;IAC5D,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACtD,wDAAwD;IACxD,OAAO,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;IACF,wDAAwD;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,KAAK,CAAC,EAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC/B,CAAC;CACF;AAED;;;;;;;;;;;;;kDAakD;AAClD,MAAM,WAAW,WAAW;IAC3B;;;iDAG6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd;;;mBAGe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB;4EACwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;gCAE4B;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,MAAM,WAAW,aAAa;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,kDAAkD;IAClD,YAAY,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC1C;;gFAE4E;IAC5E,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC;IACzB,sEAAsE;IACtE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0EAA0E;IAC1E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,2IAA2I;IAC3I,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sGAAsG;IACtG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sDAAsD;IACtD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IAChD,qDAAqD;IACrD,uBAAuB,CAAC,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,CAAC;IAC9D,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,gBAAgB;IAChC,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,SAAS;IACzB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IACnC,sCAAsC;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,qEAAqE;IACrE,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACzD"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/types",
3
3
  "description": "Shared type definitions for refrakt.md",
4
- "version": "0.14.4",
4
+ "version": "0.16.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {