@refrakt-md/types 0.11.3 → 0.12.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 +4 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/package.d.ts +24 -21
- package/dist/package.d.ts.map +1 -1
- package/dist/package.js +1 -1
- package/dist/package.js.map +1 -1
- package/dist/pipeline.d.ts +7 -7
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/security.d.ts +38 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +16 -0
- package/dist/security.js.map +1 -0
- package/dist/theme.d.ts +15 -14
- package/dist/theme.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
export { Newable, NodeType, } from './interfaces.js';
|
|
2
2
|
export type { DesignTokens } from './tokens.js';
|
|
3
3
|
export type { RefraktConfig, SiteConfig, PlanConfig, ThemeManifest, LayoutDefinition, RouteRule, ComponentDefinition, } from './theme.js';
|
|
4
|
-
export type {
|
|
4
|
+
export type { Plugin, PluginRune, PluginAttribute, RuneExtension, PluginThemeConfig, } from './package.js';
|
|
5
5
|
export type { SerializedTag, RendererNode } from './serialized.js';
|
|
6
6
|
export type { BaseComponentProps, PageSectionSlots, SplitLayoutProperties, } from './component-props.js';
|
|
7
7
|
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';
|
|
8
|
-
export type { TransformedPage, PipelineHeadingInfo, EntityRegistration, EntityRegistry, AggregatedData, PipelineContext, PipelineWarning,
|
|
8
|
+
export type { TransformedPage, PipelineHeadingInfo, EntityRegistration, EntityRegistry, AggregatedData, PipelineContext, PipelineWarning, PluginPipelineHooks, } from './pipeline.js';
|
|
9
9
|
export type { CliPlugin, CliPluginCommand, McpHandlerContext, JSONSchema7, } from './cli-plugin.js';
|
|
10
|
+
export type { SecurityPolicy, ResolvedSecurityPolicy } from './security.js';
|
|
11
|
+
export { resolveSecurityPolicy } from './security.js';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,UAAU,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,
|
|
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,UAAU,EACV,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,mBAAmB,GACpB,MAAM,YAAY,CAAC;AAGpB,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"}
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export {};
|
|
1
|
+
export { resolveSecurityPolicy } from './security.js';
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsFA,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/package.d.ts
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
/**
|
|
2
|
-
/** Attribute definition for
|
|
3
|
-
export interface
|
|
1
|
+
/** Plugin registration types */
|
|
2
|
+
/** Attribute definition for plugin rune tooling and validation */
|
|
3
|
+
export interface PluginAttribute {
|
|
4
4
|
type: 'string' | 'number' | 'boolean';
|
|
5
5
|
default?: string | number | boolean;
|
|
6
6
|
required?: boolean;
|
|
7
7
|
/** Allowed values for enum-style attributes */
|
|
8
8
|
matches?: string[];
|
|
9
9
|
}
|
|
10
|
-
/** A single rune provided by a
|
|
11
|
-
export interface
|
|
10
|
+
/** A single rune provided by a plugin */
|
|
11
|
+
export interface PluginRune {
|
|
12
12
|
/** Markdoc Schema for parsing and transformation (built using the full Model API) */
|
|
13
13
|
transform: Record<string, unknown>;
|
|
14
14
|
/** Attribute schema for tooling and validation */
|
|
15
|
-
schema?: Record<string,
|
|
15
|
+
schema?: Record<string, PluginAttribute>;
|
|
16
16
|
/** Markdoc fixture string for the inspect command */
|
|
17
17
|
fixture?: string;
|
|
18
18
|
/**
|
|
@@ -36,36 +36,39 @@ export interface RunePackageEntry {
|
|
|
36
36
|
/** Additive extension to a core rune's schema */
|
|
37
37
|
export interface RuneExtension {
|
|
38
38
|
/** Additional attributes to accept on the core rune */
|
|
39
|
-
schema?: Record<string,
|
|
39
|
+
schema?: Record<string, PluginAttribute>;
|
|
40
40
|
}
|
|
41
|
-
/** Theme configuration contributed by a
|
|
42
|
-
export interface
|
|
43
|
-
/** RuneConfig entries for the
|
|
41
|
+
/** Theme configuration contributed by a plugin */
|
|
42
|
+
export interface PluginThemeConfig {
|
|
43
|
+
/** RuneConfig entries for the plugin's runes (keyed by typeof name) */
|
|
44
44
|
runes?: Record<string, Record<string, unknown>>;
|
|
45
45
|
/** Additional icon SVGs (group name → icon name → SVG string) */
|
|
46
46
|
icons?: Record<string, Record<string, string>>;
|
|
47
|
-
/** Background preset definitions for this
|
|
47
|
+
/** Background preset definitions for this plugin's runes */
|
|
48
48
|
backgrounds?: Record<string, Record<string, unknown>>;
|
|
49
49
|
}
|
|
50
|
-
/** A
|
|
51
|
-
|
|
52
|
-
|
|
50
|
+
/** A plugin's exported registration object.
|
|
51
|
+
* A plugin is an npm package that may contribute runes, layouts, theme config,
|
|
52
|
+
* pipeline hooks, behaviors, and/or CLI commands (via a separate `cli-plugin`
|
|
53
|
+
* entry point). */
|
|
54
|
+
export interface Plugin {
|
|
55
|
+
/** Short identifier used for namespacing (e.g., 'dnd-5e') */
|
|
53
56
|
name: string;
|
|
54
57
|
/** Human-readable display name */
|
|
55
58
|
displayName?: string;
|
|
56
|
-
/**
|
|
59
|
+
/** Plugin version (semver) */
|
|
57
60
|
version: string;
|
|
58
|
-
/** Rune definitions provided by this
|
|
59
|
-
runes: Record<string,
|
|
61
|
+
/** Rune definitions provided by this plugin */
|
|
62
|
+
runes: Record<string, PluginRune>;
|
|
60
63
|
/** Additive extensions to core runes (schema additions only) */
|
|
61
64
|
extends?: Record<string, RuneExtension>;
|
|
62
|
-
/** Identity transform config and icons for this
|
|
63
|
-
theme?:
|
|
65
|
+
/** Identity transform config and icons for this plugin's runes */
|
|
66
|
+
theme?: PluginThemeConfig;
|
|
64
67
|
/** Client-side behavior functions keyed by rune typeof name (lowercase).
|
|
65
68
|
* Typed as unknown here — actual BehaviorFn type lives in @refrakt-md/behaviors. */
|
|
66
69
|
behaviors?: Record<string, unknown>;
|
|
67
70
|
/** Build-time cross-page pipeline hooks.
|
|
68
|
-
* Optional —
|
|
69
|
-
pipeline?: import('./pipeline.js').
|
|
71
|
+
* Optional — plugins that don't need cross-page awareness omit this entirely. */
|
|
72
|
+
pipeline?: import('./pipeline.js').PluginPipelineHooks;
|
|
70
73
|
}
|
|
71
74
|
//# sourceMappingURL=package.d.ts.map
|
package/dist/package.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.d.ts","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,
|
|
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"}
|
package/dist/package.js
CHANGED
package/dist/package.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"package.js","sourceRoot":"","sources":["../src/package.ts"],"names":[],"mappings":"AAAA,gCAAgC"}
|
package/dist/pipeline.d.ts
CHANGED
|
@@ -54,7 +54,7 @@ export interface EntityRegistry {
|
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* Cross-page data produced by aggregate hooks (Phase 3).
|
|
57
|
-
* Keyed by
|
|
57
|
+
* Keyed by plugin name to prevent collisions between plugins.
|
|
58
58
|
*/
|
|
59
59
|
export type AggregatedData = Record<string, unknown>;
|
|
60
60
|
/** Context object passed to each pipeline hook for emitting structured warnings */
|
|
@@ -67,17 +67,17 @@ export interface PipelineContext {
|
|
|
67
67
|
export interface PipelineWarning {
|
|
68
68
|
severity: 'info' | 'warning' | 'error';
|
|
69
69
|
phase: 'register' | 'aggregate' | 'postProcess';
|
|
70
|
-
|
|
70
|
+
pluginName: string;
|
|
71
71
|
/** Page URL that triggered the warning, if applicable */
|
|
72
72
|
url?: string;
|
|
73
73
|
message: string;
|
|
74
74
|
}
|
|
75
75
|
/**
|
|
76
|
-
* Build-time cross-page pipeline hooks a
|
|
77
|
-
* All three hooks are optional —
|
|
76
|
+
* Build-time cross-page pipeline hooks a Plugin can provide.
|
|
77
|
+
* All three hooks are optional — plugins that don't need cross-page
|
|
78
78
|
* awareness omit this field entirely.
|
|
79
79
|
*/
|
|
80
|
-
export interface
|
|
80
|
+
export interface PluginPipelineHooks {
|
|
81
81
|
/**
|
|
82
82
|
* Phase 2 — Register.
|
|
83
83
|
* Scan all transformed pages and register named entities in the site-wide registry.
|
|
@@ -88,13 +88,13 @@ export interface PackagePipelineHooks {
|
|
|
88
88
|
* Phase 3 — Aggregate.
|
|
89
89
|
* Build cross-page indexes, graphs, or collections from the full registry.
|
|
90
90
|
* Called once after all register hooks have run.
|
|
91
|
-
* Return value is stored as aggregated[
|
|
91
|
+
* Return value is stored as aggregated[pluginName].
|
|
92
92
|
*/
|
|
93
93
|
aggregate?: (registry: Readonly<EntityRegistry>, ctx: PipelineContext) => unknown;
|
|
94
94
|
/**
|
|
95
95
|
* Phase 4 — Post-process.
|
|
96
96
|
* Enrich a page's renderable tree using cross-page data from aggregated.
|
|
97
|
-
* Called once per page, in
|
|
97
|
+
* Called once per page, in plugin registration order.
|
|
98
98
|
* Return the modified page (or the original if no changes needed).
|
|
99
99
|
*/
|
|
100
100
|
postProcess?: (page: TransformedPage, aggregated: AggregatedData, ctx: PipelineContext) => TransformedPage;
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -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,
|
|
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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/** Security policy controlling how the transform pipeline treats untrusted
|
|
2
|
+
* author content (sandbox HTML/CSS/JS, etc.).
|
|
3
|
+
*
|
|
4
|
+
* Use the string presets for the common cases:
|
|
5
|
+
* - `'trusted'` — current default; full power, no sanitisation, sandbox iframes get
|
|
6
|
+
* `allow-scripts allow-same-origin`. Self-hosted single-author projects.
|
|
7
|
+
* - `'strict'` — sugar for `{ trust: 'untrusted', allowJs: false }`. Hosted-product
|
|
8
|
+
* default: scripts and event handlers stripped; only HTML/CSS rendered.
|
|
9
|
+
*
|
|
10
|
+
* Use the object form when you need to allow JS in untrusted mode:
|
|
11
|
+
* - `allowJs: true` — keep author scripts but harden the iframe (drop
|
|
12
|
+
* `allow-same-origin`, inject meta-CSP). Fingerprinting and
|
|
13
|
+
* cryptojacking remain accepted residual risks.
|
|
14
|
+
* - `sandboxOrigin` — host-provided URL (e.g. `https://sandbox.example.com`).
|
|
15
|
+
* Sandbox iframes load from this origin instead of `srcdoc`,
|
|
16
|
+
* enabling real CSP response headers and cross-origin browser
|
|
17
|
+
* protections. Falls back to srcdoc + meta-CSP when unset.
|
|
18
|
+
*/
|
|
19
|
+
export type SecurityPolicy = 'trusted' | 'strict' | {
|
|
20
|
+
trust: 'untrusted';
|
|
21
|
+
/** Allow author `<script>` blocks and event-handler attributes through.
|
|
22
|
+
* Default `false` — scripts are stripped before they reach the iframe. */
|
|
23
|
+
allowJs?: boolean;
|
|
24
|
+
/** When set, sandbox iframes load from this origin instead of `srcdoc`.
|
|
25
|
+
* The host must serve sandbox content from this origin with appropriate
|
|
26
|
+
* CSP headers — see docs/security for the endpoint contract. */
|
|
27
|
+
sandboxOrigin?: string;
|
|
28
|
+
};
|
|
29
|
+
/** Internal resolved form of `SecurityPolicy` after preset expansion. */
|
|
30
|
+
export interface ResolvedSecurityPolicy {
|
|
31
|
+
trust: 'trusted' | 'untrusted';
|
|
32
|
+
allowJs: boolean;
|
|
33
|
+
sandboxOrigin: string | undefined;
|
|
34
|
+
}
|
|
35
|
+
/** Expand the `SecurityPolicy` shorthand into its canonical resolved form.
|
|
36
|
+
* Centralised so every consumer reads the same defaults. */
|
|
37
|
+
export declare function resolveSecurityPolicy(policy: SecurityPolicy | undefined): ResolvedSecurityPolicy;
|
|
38
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,QAAQ,GACR;IACE,KAAK,EAAE,WAAW,CAAC;IACnB;+EAC2E;IAC3E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;qEAEiE;IACjE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEN,yEAAyE;AACzE,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,SAAS,GAAG,WAAW,CAAC;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED;6DAC6D;AAC7D,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,GAAG,SAAS,GAAG,sBAAsB,CAYhG"}
|
package/dist/security.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** Expand the `SecurityPolicy` shorthand into its canonical resolved form.
|
|
2
|
+
* Centralised so every consumer reads the same defaults. */
|
|
3
|
+
export function resolveSecurityPolicy(policy) {
|
|
4
|
+
if (policy === undefined || policy === 'trusted') {
|
|
5
|
+
return { trust: 'trusted', allowJs: true, sandboxOrigin: undefined };
|
|
6
|
+
}
|
|
7
|
+
if (policy === 'strict') {
|
|
8
|
+
return { trust: 'untrusted', allowJs: false, sandboxOrigin: undefined };
|
|
9
|
+
}
|
|
10
|
+
return {
|
|
11
|
+
trust: 'untrusted',
|
|
12
|
+
allowJs: policy.allowJs ?? false,
|
|
13
|
+
sandboxOrigin: policy.sandboxOrigin,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../src/security.ts"],"names":[],"mappings":"AAuCA;6DAC6D;AAC7D,MAAM,UAAU,qBAAqB,CAAC,MAAkC;IACtE,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IACvE,CAAC;IACD,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO;QACL,KAAK,EAAE,WAAW;QAClB,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,KAAK;QAChC,aAAa,EAAE,MAAM,CAAC,aAAa;KACpC,CAAC;AACJ,CAAC"}
|
package/dist/theme.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
/** Per-site configuration. A project may declare a single site (via `site`) or
|
|
2
2
|
* multiple named sites (via `sites: { name: SiteConfig }`).
|
|
3
|
-
*
|
|
3
|
+
* Only `contentDir` and `theme` are strictly required for the site to load. */
|
|
4
4
|
export interface SiteConfig {
|
|
5
5
|
/** Path to content directory, relative to project root */
|
|
6
6
|
contentDir: string;
|
|
7
7
|
/** Active theme — package name or relative path */
|
|
8
8
|
theme: string;
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/** Documentation-only adapter hint (`svelte`, `astro`, `next`, `nuxt`, `eleventy`, `html`).
|
|
10
|
+
* No adapter reads or validates this field today; it serves as an in-config record of
|
|
11
|
+
* which adapter the site is intended for. Slated for removal in v1.0. */
|
|
12
|
+
target?: string;
|
|
11
13
|
/** Component overrides — maps typeof names to relative paths of replacement components */
|
|
12
14
|
overrides?: Record<string, string>;
|
|
13
15
|
/** Route-to-layout mapping rules, evaluated in order (first match wins) */
|
|
@@ -21,8 +23,8 @@ export interface SiteConfig {
|
|
|
21
23
|
};
|
|
22
24
|
/** Custom icon SVGs — merged into the theme's global icon group */
|
|
23
25
|
icons?: Record<string, string>;
|
|
24
|
-
/**
|
|
25
|
-
|
|
26
|
+
/** Plugins to merge into this site's ThemeConfig (runes, layouts, hooks, etc.) */
|
|
27
|
+
plugins?: string[];
|
|
26
28
|
/** Project-level tint presets — merged after theme tints (last wins) */
|
|
27
29
|
tints?: Record<string, Record<string, unknown>>;
|
|
28
30
|
/** Project-level background presets — merged after theme backgrounds (last wins) */
|
|
@@ -62,7 +64,8 @@ export interface PlanConfig {
|
|
|
62
64
|
* Flat and singular shapes both collapse to `sites.default`. Plural projects
|
|
63
65
|
* must reference sites by name in CLI commands and adapter options. */
|
|
64
66
|
export interface RefraktConfig {
|
|
65
|
-
/**
|
|
67
|
+
/** Plugins for this project — npm packages that contribute runes, layouts,
|
|
68
|
+
* pipeline hooks, behaviors, and/or CLI commands and MCP tools.
|
|
66
69
|
* When set, this is authoritative; when absent, plugin discovery falls back
|
|
67
70
|
* to scanning `package.json` for `@refrakt-md/*` dependencies. */
|
|
68
71
|
plugins?: string[];
|
|
@@ -72,12 +75,12 @@ export interface RefraktConfig {
|
|
|
72
75
|
site?: SiteConfig;
|
|
73
76
|
/** Multi-site declaration keyed by site name. Mutually exclusive with `site`. */
|
|
74
77
|
sites?: Record<string, SiteConfig>;
|
|
75
|
-
/** @deprecated Shorthand for `sites.default.contentDir` */
|
|
76
|
-
contentDir
|
|
77
|
-
/** @deprecated Shorthand for `sites.default.theme` */
|
|
78
|
-
theme
|
|
79
|
-
/** @deprecated Shorthand for `sites.default.target` */
|
|
80
|
-
target
|
|
78
|
+
/** @deprecated Shorthand for `sites.default.contentDir`. Undefined for multi-site configs — use `resolveSite(config).site.contentDir`. */
|
|
79
|
+
contentDir?: string;
|
|
80
|
+
/** @deprecated Shorthand for `sites.default.theme`. Undefined for multi-site configs — use `resolveSite(config).site.theme`. */
|
|
81
|
+
theme?: string;
|
|
82
|
+
/** @deprecated Shorthand for `sites.default.target`. Undefined for multi-site configs — use `resolveSite(config).site.target`. The field itself is also under review (v0.11.0 follow-up): adapters do not validate it and it is increasingly vestigial; treat it as documentation-only for now. */
|
|
83
|
+
target?: string;
|
|
81
84
|
/** @deprecated Shorthand for `sites.default.overrides` */
|
|
82
85
|
overrides?: Record<string, string>;
|
|
83
86
|
/** @deprecated Shorthand for `sites.default.routeRules` */
|
|
@@ -91,8 +94,6 @@ export interface RefraktConfig {
|
|
|
91
94
|
};
|
|
92
95
|
/** @deprecated Shorthand for `sites.default.icons` */
|
|
93
96
|
icons?: Record<string, string>;
|
|
94
|
-
/** @deprecated Shorthand for `sites.default.packages` */
|
|
95
|
-
packages?: string[];
|
|
96
97
|
/** @deprecated Shorthand for `sites.default.tints` */
|
|
97
98
|
tints?: Record<string, Record<string, unknown>>;
|
|
98
99
|
/** @deprecated Shorthand for `sites.default.backgrounds` */
|
package/dist/theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;
|
|
1
|
+
{"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAAA;;gFAEgF;AAChF,MAAM,WAAW,UAAU;IAC1B,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd;;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,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,wEAAwE;IACxE,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,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,gIAAgI;IAChI,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,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,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAChD,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,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"}
|