foundrycms 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +152 -0
- package/dist/__tests__/foundry.test.d.ts +2 -0
- package/dist/__tests__/foundry.test.d.ts.map +1 -0
- package/dist/__tests__/foundry.test.js +1013 -0
- package/dist/__tests__/foundry.test.js.map +1 -0
- package/dist/config-manager.d.ts +33 -0
- package/dist/config-manager.d.ts.map +1 -0
- package/dist/config-manager.js +169 -0
- package/dist/config-manager.js.map +1 -0
- package/dist/hook-system.d.ts +61 -0
- package/dist/hook-system.d.ts.map +1 -0
- package/dist/hook-system.js +114 -0
- package/dist/hook-system.js.map +1 -0
- package/dist/index.d.ts +47 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +82 -0
- package/dist/index.js.map +1 -0
- package/dist/page-builder/element-registry.d.ts +47 -0
- package/dist/page-builder/element-registry.d.ts.map +1 -0
- package/dist/page-builder/element-registry.js +98 -0
- package/dist/page-builder/element-registry.js.map +1 -0
- package/dist/page-builder/elements/index.d.ts +22 -0
- package/dist/page-builder/elements/index.d.ts.map +1 -0
- package/dist/page-builder/elements/index.js +770 -0
- package/dist/page-builder/elements/index.js.map +1 -0
- package/dist/page-builder/renderer.d.ts +14 -0
- package/dist/page-builder/renderer.d.ts.map +1 -0
- package/dist/page-builder/renderer.js +240 -0
- package/dist/page-builder/renderer.js.map +1 -0
- package/dist/page-builder/serializer.d.ts +1220 -0
- package/dist/page-builder/serializer.d.ts.map +1 -0
- package/dist/page-builder/serializer.js +111 -0
- package/dist/page-builder/serializer.js.map +1 -0
- package/dist/page-builder/template-studio.d.ts +37 -0
- package/dist/page-builder/template-studio.d.ts.map +1 -0
- package/dist/page-builder/template-studio.js +923 -0
- package/dist/page-builder/template-studio.js.map +1 -0
- package/dist/page-builder/types.d.ts +99 -0
- package/dist/page-builder/types.d.ts.map +1 -0
- package/dist/page-builder/types.js +5 -0
- package/dist/page-builder/types.js.map +1 -0
- package/dist/plugin-system.d.ts +128 -0
- package/dist/plugin-system.d.ts.map +1 -0
- package/dist/plugin-system.js +252 -0
- package/dist/plugin-system.js.map +1 -0
- package/dist/plugins/communication.d.ts +6 -0
- package/dist/plugins/communication.d.ts.map +1 -0
- package/dist/plugins/communication.js +922 -0
- package/dist/plugins/communication.js.map +1 -0
- package/dist/plugins/core.d.ts +6 -0
- package/dist/plugins/core.d.ts.map +1 -0
- package/dist/plugins/core.js +675 -0
- package/dist/plugins/core.js.map +1 -0
- package/dist/plugins/growth.d.ts +6 -0
- package/dist/plugins/growth.d.ts.map +1 -0
- package/dist/plugins/growth.js +668 -0
- package/dist/plugins/growth.js.map +1 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/index.js +43 -0
- package/dist/plugins/index.js.map +1 -0
- package/dist/plugins/operations.d.ts +7 -0
- package/dist/plugins/operations.d.ts.map +1 -0
- package/dist/plugins/operations.js +930 -0
- package/dist/plugins/operations.js.map +1 -0
- package/dist/theme/presets.d.ts +8 -0
- package/dist/theme/presets.d.ts.map +1 -0
- package/dist/theme/presets.js +257 -0
- package/dist/theme/presets.js.map +1 -0
- package/dist/theme/types.d.ts +83 -0
- package/dist/theme/types.d.ts.map +1 -0
- package/dist/theme/types.js +5 -0
- package/dist/theme/types.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-studio.js","sourceRoot":"","sources":["../../src/page-builder/template-studio.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/** Status of a page in the CMS */
|
|
2
|
+
export type PageStatus = 'draft' | 'published' | 'scheduled';
|
|
3
|
+
/** Top-level page data */
|
|
4
|
+
export interface PageData {
|
|
5
|
+
id: string;
|
|
6
|
+
title: string;
|
|
7
|
+
slug: string;
|
|
8
|
+
status: PageStatus;
|
|
9
|
+
template: string;
|
|
10
|
+
content: Row[];
|
|
11
|
+
meta: PageMeta;
|
|
12
|
+
createdAt: Date;
|
|
13
|
+
updatedAt: Date;
|
|
14
|
+
publishedAt?: Date;
|
|
15
|
+
scheduledAt?: Date;
|
|
16
|
+
}
|
|
17
|
+
/** SEO and social sharing metadata */
|
|
18
|
+
export interface PageMeta {
|
|
19
|
+
description?: string;
|
|
20
|
+
ogTitle?: string;
|
|
21
|
+
ogDescription?: string;
|
|
22
|
+
ogImage?: string;
|
|
23
|
+
noIndex?: boolean;
|
|
24
|
+
canonicalUrl?: string;
|
|
25
|
+
customHead?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface Row {
|
|
28
|
+
id: string;
|
|
29
|
+
type: 'row';
|
|
30
|
+
settings: RowSettings;
|
|
31
|
+
columns: Column[];
|
|
32
|
+
}
|
|
33
|
+
export interface RowSettings {
|
|
34
|
+
/** 'full_width' | 'boxed' | 'narrow' */
|
|
35
|
+
layout: string;
|
|
36
|
+
/** CSS gap between columns */
|
|
37
|
+
gap?: string;
|
|
38
|
+
/** Top / bottom padding */
|
|
39
|
+
paddingTop?: string;
|
|
40
|
+
paddingBottom?: string;
|
|
41
|
+
/** Background color, gradient, image, or video */
|
|
42
|
+
background?: BackgroundSettings;
|
|
43
|
+
/** Custom CSS class */
|
|
44
|
+
className?: string;
|
|
45
|
+
/** Row visibility: 'visible' | 'hidden' | 'desktop_only' | 'mobile_only' */
|
|
46
|
+
visibility?: string;
|
|
47
|
+
/** HTML id attribute for anchor links */
|
|
48
|
+
anchorId?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface Column {
|
|
51
|
+
id: string;
|
|
52
|
+
/** Fractional width: '1/1', '1/2', '1/3', '2/3', '1/4', '3/4', '1/6', '5/6' */
|
|
53
|
+
width: string;
|
|
54
|
+
settings: ColumnSettings;
|
|
55
|
+
elements: Element[];
|
|
56
|
+
}
|
|
57
|
+
export interface ColumnSettings {
|
|
58
|
+
/** Vertical alignment: 'top' | 'center' | 'bottom' */
|
|
59
|
+
verticalAlign?: string;
|
|
60
|
+
/** Inner padding */
|
|
61
|
+
padding?: string;
|
|
62
|
+
/** Custom CSS class */
|
|
63
|
+
className?: string;
|
|
64
|
+
/** Background */
|
|
65
|
+
background?: BackgroundSettings;
|
|
66
|
+
/** Animation on scroll */
|
|
67
|
+
animation?: AnimationSettings;
|
|
68
|
+
}
|
|
69
|
+
export interface Element {
|
|
70
|
+
id: string;
|
|
71
|
+
/** Element type key — maps to a registered ElementDefinition */
|
|
72
|
+
type: string;
|
|
73
|
+
/** Element-specific settings (validated against the element's schema) */
|
|
74
|
+
settings: Record<string, any>;
|
|
75
|
+
}
|
|
76
|
+
export interface BackgroundSettings {
|
|
77
|
+
type: 'color' | 'gradient' | 'image' | 'video';
|
|
78
|
+
color?: string;
|
|
79
|
+
gradient?: string;
|
|
80
|
+
imageUrl?: string;
|
|
81
|
+
videoUrl?: string;
|
|
82
|
+
overlay?: string;
|
|
83
|
+
overlayOpacity?: number;
|
|
84
|
+
size?: string;
|
|
85
|
+
position?: string;
|
|
86
|
+
repeat?: string;
|
|
87
|
+
attachment?: string;
|
|
88
|
+
}
|
|
89
|
+
export interface AnimationSettings {
|
|
90
|
+
/** e.g. 'fade-in', 'slide-up', 'zoom-in' */
|
|
91
|
+
type: string;
|
|
92
|
+
/** Delay in ms */
|
|
93
|
+
delay?: number;
|
|
94
|
+
/** Duration in ms */
|
|
95
|
+
duration?: number;
|
|
96
|
+
/** Easing function */
|
|
97
|
+
easing?: string;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/page-builder/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/page-builder/types.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,+BAA+B;AAC/B,8EAA8E"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { HookEngine } from './hook-system.js';
|
|
3
|
+
import { ConfigManager } from './config-manager.js';
|
|
4
|
+
export interface AdminPageDefinition {
|
|
5
|
+
/** URL path segment (e.g. 'settings', 'analytics') */
|
|
6
|
+
path: string;
|
|
7
|
+
/** Display label in the admin sidebar */
|
|
8
|
+
label: string;
|
|
9
|
+
/** Icon identifier */
|
|
10
|
+
icon?: string;
|
|
11
|
+
/** Component reference key */
|
|
12
|
+
component: string;
|
|
13
|
+
/** Position in the sidebar (lower = higher) */
|
|
14
|
+
order?: number;
|
|
15
|
+
/** Required permission to view this page */
|
|
16
|
+
permission?: string;
|
|
17
|
+
/** Sub-pages / nested routes */
|
|
18
|
+
children?: AdminPageDefinition[];
|
|
19
|
+
}
|
|
20
|
+
export interface APIRouteDefinition {
|
|
21
|
+
/** HTTP method */
|
|
22
|
+
method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
|
|
23
|
+
/** Route path (e.g. '/api/invoices/:id') */
|
|
24
|
+
path: string;
|
|
25
|
+
/** Handler reference key */
|
|
26
|
+
handler: string;
|
|
27
|
+
/** Middleware keys */
|
|
28
|
+
middleware?: string[];
|
|
29
|
+
/** Description for auto-generated docs */
|
|
30
|
+
description?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface PageElement {
|
|
33
|
+
/** Element type key */
|
|
34
|
+
type: string;
|
|
35
|
+
/** Display name */
|
|
36
|
+
name: string;
|
|
37
|
+
/** Category */
|
|
38
|
+
category: string;
|
|
39
|
+
/** Component reference key */
|
|
40
|
+
component: string;
|
|
41
|
+
/** Settings schema */
|
|
42
|
+
settingsSchema?: z.ZodType<any>;
|
|
43
|
+
}
|
|
44
|
+
export interface WidgetDefinition {
|
|
45
|
+
/** Unique widget id */
|
|
46
|
+
id: string;
|
|
47
|
+
/** Display name */
|
|
48
|
+
name: string;
|
|
49
|
+
/** Component reference key */
|
|
50
|
+
component: string;
|
|
51
|
+
/** Where the widget can appear: 'dashboard', 'sidebar', 'footer' */
|
|
52
|
+
areas: string[];
|
|
53
|
+
/** Default size */
|
|
54
|
+
defaultSize?: {
|
|
55
|
+
width: number;
|
|
56
|
+
height: number;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface HookRegistration {
|
|
60
|
+
/** Hook name (must match a key in HookMap) */
|
|
61
|
+
hook: string;
|
|
62
|
+
/** Handler function */
|
|
63
|
+
handler: (...args: any[]) => any;
|
|
64
|
+
/** Priority (lower = earlier) */
|
|
65
|
+
priority?: number;
|
|
66
|
+
}
|
|
67
|
+
export interface FoundryPlugin {
|
|
68
|
+
/** Unique plugin identifier (e.g. '@foundry/blog', 'chronocraft-invoicing') */
|
|
69
|
+
id: string;
|
|
70
|
+
/** Human-readable name */
|
|
71
|
+
name: string;
|
|
72
|
+
/** Semver version */
|
|
73
|
+
version: string;
|
|
74
|
+
/** Short description */
|
|
75
|
+
description: string;
|
|
76
|
+
onRegister?: (core: FoundryCore) => void;
|
|
77
|
+
onActivate?: (core: FoundryCore) => Promise<void>;
|
|
78
|
+
onDeactivate?: (core: FoundryCore) => Promise<void>;
|
|
79
|
+
adminPages?: AdminPageDefinition[];
|
|
80
|
+
apiRoutes?: APIRouteDefinition[];
|
|
81
|
+
pageElements?: PageElement[];
|
|
82
|
+
widgets?: WidgetDefinition[];
|
|
83
|
+
hooks?: HookRegistration[];
|
|
84
|
+
settingsSchema?: z.ZodType<any>;
|
|
85
|
+
requires?: string[];
|
|
86
|
+
optionalDeps?: string[];
|
|
87
|
+
}
|
|
88
|
+
type PluginState = 'registered' | 'active' | 'inactive' | 'error';
|
|
89
|
+
export interface FoundryCore {
|
|
90
|
+
hooks: HookEngine;
|
|
91
|
+
config: ConfigManager;
|
|
92
|
+
plugins: PluginRegistry;
|
|
93
|
+
}
|
|
94
|
+
export declare class PluginRegistry {
|
|
95
|
+
private entries;
|
|
96
|
+
private hooks;
|
|
97
|
+
private config;
|
|
98
|
+
constructor(hooks: HookEngine, config: ConfigManager);
|
|
99
|
+
/** The core context object shared with all plugins */
|
|
100
|
+
private get core();
|
|
101
|
+
register(plugin: FoundryPlugin): void;
|
|
102
|
+
activate(pluginId: string): Promise<void>;
|
|
103
|
+
deactivate(pluginId: string): Promise<void>;
|
|
104
|
+
get(pluginId: string): FoundryPlugin | undefined;
|
|
105
|
+
getState(pluginId: string): PluginState | undefined;
|
|
106
|
+
has(pluginId: string): boolean;
|
|
107
|
+
isActive(pluginId: string): boolean;
|
|
108
|
+
list(): FoundryPlugin[];
|
|
109
|
+
listActive(): FoundryPlugin[];
|
|
110
|
+
getByCapability(capability: 'adminPages' | 'apiRoutes' | 'pageElements' | 'widgets'): FoundryPlugin[];
|
|
111
|
+
getAllAdminPages(): AdminPageDefinition[];
|
|
112
|
+
getAllAPIRoutes(): APIRouteDefinition[];
|
|
113
|
+
getAllPageElements(): PageElement[];
|
|
114
|
+
getAllWidgets(): WidgetDefinition[];
|
|
115
|
+
activateAll(): Promise<{
|
|
116
|
+
activated: string[];
|
|
117
|
+
failed: string[];
|
|
118
|
+
}>;
|
|
119
|
+
private getUnmetDependencies;
|
|
120
|
+
private getDependents;
|
|
121
|
+
/**
|
|
122
|
+
* Topological sort of plugins based on their dependency graph.
|
|
123
|
+
* Returns plugin IDs in safe activation order.
|
|
124
|
+
*/
|
|
125
|
+
private topologicalSort;
|
|
126
|
+
}
|
|
127
|
+
export {};
|
|
128
|
+
//# sourceMappingURL=plugin-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-system.d.ts","sourceRoot":"","sources":["../src/plugin-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,252 @@
|
|
|
1
|
+
// ---------------------------------------------------------------------------
|
|
2
|
+
// PluginRegistry
|
|
3
|
+
// ---------------------------------------------------------------------------
|
|
4
|
+
export class PluginRegistry {
|
|
5
|
+
entries = new Map();
|
|
6
|
+
hooks;
|
|
7
|
+
config;
|
|
8
|
+
constructor(hooks, config) {
|
|
9
|
+
this.hooks = hooks;
|
|
10
|
+
this.config = config;
|
|
11
|
+
}
|
|
12
|
+
/** The core context object shared with all plugins */
|
|
13
|
+
get core() {
|
|
14
|
+
return {
|
|
15
|
+
hooks: this.hooks,
|
|
16
|
+
config: this.config,
|
|
17
|
+
plugins: this,
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
// -----------------------------------------------------------------------
|
|
21
|
+
// register — add a plugin to the registry (does NOT activate it)
|
|
22
|
+
// -----------------------------------------------------------------------
|
|
23
|
+
register(plugin) {
|
|
24
|
+
if (this.entries.has(plugin.id)) {
|
|
25
|
+
throw new Error(`Plugin "${plugin.id}" is already registered.`);
|
|
26
|
+
}
|
|
27
|
+
// Validate required dependencies exist (they don't need to be active yet)
|
|
28
|
+
// We check at activation time whether they are active.
|
|
29
|
+
this.entries.set(plugin.id, {
|
|
30
|
+
plugin,
|
|
31
|
+
state: 'registered',
|
|
32
|
+
});
|
|
33
|
+
// Run synchronous lifecycle hook
|
|
34
|
+
plugin.onRegister?.(this.core);
|
|
35
|
+
// Register any hook handlers the plugin declared
|
|
36
|
+
if (plugin.hooks) {
|
|
37
|
+
for (const reg of plugin.hooks) {
|
|
38
|
+
this.hooks.on(reg.hook, reg.handler, {
|
|
39
|
+
priority: reg.priority,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// Register plugin settings if it has a schema
|
|
44
|
+
if (plugin.settingsSchema) {
|
|
45
|
+
this.config.registerSection({
|
|
46
|
+
key: `plugins.${plugin.id}`,
|
|
47
|
+
schema: plugin.settingsSchema,
|
|
48
|
+
defaults: {},
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
// Emit hook
|
|
52
|
+
this.hooks.emit('plugin:registered', { plugin });
|
|
53
|
+
}
|
|
54
|
+
// -----------------------------------------------------------------------
|
|
55
|
+
// activate — activate a registered plugin (resolves dependencies first)
|
|
56
|
+
// -----------------------------------------------------------------------
|
|
57
|
+
async activate(pluginId) {
|
|
58
|
+
const entry = this.entries.get(pluginId);
|
|
59
|
+
if (!entry) {
|
|
60
|
+
throw new Error(`Plugin "${pluginId}" is not registered.`);
|
|
61
|
+
}
|
|
62
|
+
if (entry.state === 'active')
|
|
63
|
+
return;
|
|
64
|
+
// Check required dependencies are registered and active
|
|
65
|
+
const unmet = this.getUnmetDependencies(entry.plugin);
|
|
66
|
+
if (unmet.length > 0) {
|
|
67
|
+
// Attempt to activate unmet dependencies first (topological activation)
|
|
68
|
+
for (const depId of unmet) {
|
|
69
|
+
const depEntry = this.entries.get(depId);
|
|
70
|
+
if (!depEntry) {
|
|
71
|
+
throw new Error(`Plugin "${pluginId}" requires "${depId}" which is not registered.`);
|
|
72
|
+
}
|
|
73
|
+
if (depEntry.state !== 'active') {
|
|
74
|
+
await this.activate(depId);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
try {
|
|
79
|
+
await entry.plugin.onActivate?.(this.core);
|
|
80
|
+
entry.state = 'active';
|
|
81
|
+
entry.activatedAt = new Date();
|
|
82
|
+
entry.error = undefined;
|
|
83
|
+
this.hooks.emit('plugin:activated', { plugin: entry.plugin });
|
|
84
|
+
}
|
|
85
|
+
catch (err) {
|
|
86
|
+
entry.state = 'error';
|
|
87
|
+
entry.error = err instanceof Error ? err.message : String(err);
|
|
88
|
+
throw new Error(`Failed to activate plugin "${pluginId}": ${entry.error}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// -----------------------------------------------------------------------
|
|
92
|
+
// deactivate — deactivate a plugin
|
|
93
|
+
// -----------------------------------------------------------------------
|
|
94
|
+
async deactivate(pluginId) {
|
|
95
|
+
const entry = this.entries.get(pluginId);
|
|
96
|
+
if (!entry) {
|
|
97
|
+
throw new Error(`Plugin "${pluginId}" is not registered.`);
|
|
98
|
+
}
|
|
99
|
+
if (entry.state !== 'active')
|
|
100
|
+
return;
|
|
101
|
+
// Check if any active plugin depends on this one
|
|
102
|
+
const dependents = this.getDependents(pluginId);
|
|
103
|
+
if (dependents.length > 0) {
|
|
104
|
+
throw new Error(`Cannot deactivate "${pluginId}" — the following active plugins depend on it: ${dependents.join(', ')}`);
|
|
105
|
+
}
|
|
106
|
+
try {
|
|
107
|
+
await entry.plugin.onDeactivate?.(this.core);
|
|
108
|
+
entry.state = 'inactive';
|
|
109
|
+
this.hooks.emit('plugin:deactivated', { plugin: entry.plugin });
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
entry.state = 'error';
|
|
113
|
+
entry.error = err instanceof Error ? err.message : String(err);
|
|
114
|
+
throw new Error(`Failed to deactivate plugin "${pluginId}": ${entry.error}`);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// -----------------------------------------------------------------------
|
|
118
|
+
// get — retrieve a plugin by id
|
|
119
|
+
// -----------------------------------------------------------------------
|
|
120
|
+
get(pluginId) {
|
|
121
|
+
return this.entries.get(pluginId)?.plugin;
|
|
122
|
+
}
|
|
123
|
+
// -----------------------------------------------------------------------
|
|
124
|
+
// getState — retrieve a plugin's current state
|
|
125
|
+
// -----------------------------------------------------------------------
|
|
126
|
+
getState(pluginId) {
|
|
127
|
+
return this.entries.get(pluginId)?.state;
|
|
128
|
+
}
|
|
129
|
+
// -----------------------------------------------------------------------
|
|
130
|
+
// has — check if a plugin is registered
|
|
131
|
+
// -----------------------------------------------------------------------
|
|
132
|
+
has(pluginId) {
|
|
133
|
+
return this.entries.has(pluginId);
|
|
134
|
+
}
|
|
135
|
+
// -----------------------------------------------------------------------
|
|
136
|
+
// isActive — check if a plugin is currently active
|
|
137
|
+
// -----------------------------------------------------------------------
|
|
138
|
+
isActive(pluginId) {
|
|
139
|
+
return this.entries.get(pluginId)?.state === 'active';
|
|
140
|
+
}
|
|
141
|
+
// -----------------------------------------------------------------------
|
|
142
|
+
// list — return all registered plugins
|
|
143
|
+
// -----------------------------------------------------------------------
|
|
144
|
+
list() {
|
|
145
|
+
return Array.from(this.entries.values()).map((e) => e.plugin);
|
|
146
|
+
}
|
|
147
|
+
// -----------------------------------------------------------------------
|
|
148
|
+
// listActive — return only active plugins
|
|
149
|
+
// -----------------------------------------------------------------------
|
|
150
|
+
listActive() {
|
|
151
|
+
return Array.from(this.entries.values())
|
|
152
|
+
.filter((e) => e.state === 'active')
|
|
153
|
+
.map((e) => e.plugin);
|
|
154
|
+
}
|
|
155
|
+
// -----------------------------------------------------------------------
|
|
156
|
+
// getByCapability — find plugins that provide a specific capability
|
|
157
|
+
// -----------------------------------------------------------------------
|
|
158
|
+
getByCapability(capability) {
|
|
159
|
+
return this.listActive().filter((plugin) => {
|
|
160
|
+
const items = plugin[capability];
|
|
161
|
+
return items && items.length > 0;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
// -----------------------------------------------------------------------
|
|
165
|
+
// getAllAdminPages — aggregate admin pages from all active plugins
|
|
166
|
+
// -----------------------------------------------------------------------
|
|
167
|
+
getAllAdminPages() {
|
|
168
|
+
return this.listActive().flatMap((p) => p.adminPages ?? []);
|
|
169
|
+
}
|
|
170
|
+
// -----------------------------------------------------------------------
|
|
171
|
+
// getAllAPIRoutes — aggregate API routes from all active plugins
|
|
172
|
+
// -----------------------------------------------------------------------
|
|
173
|
+
getAllAPIRoutes() {
|
|
174
|
+
return this.listActive().flatMap((p) => p.apiRoutes ?? []);
|
|
175
|
+
}
|
|
176
|
+
// -----------------------------------------------------------------------
|
|
177
|
+
// getAllPageElements — aggregate page elements from all active plugins
|
|
178
|
+
// -----------------------------------------------------------------------
|
|
179
|
+
getAllPageElements() {
|
|
180
|
+
return this.listActive().flatMap((p) => p.pageElements ?? []);
|
|
181
|
+
}
|
|
182
|
+
// -----------------------------------------------------------------------
|
|
183
|
+
// getAllWidgets — aggregate widgets from all active plugins
|
|
184
|
+
// -----------------------------------------------------------------------
|
|
185
|
+
getAllWidgets() {
|
|
186
|
+
return this.listActive().flatMap((p) => p.widgets ?? []);
|
|
187
|
+
}
|
|
188
|
+
// -----------------------------------------------------------------------
|
|
189
|
+
// activateAll — activate all registered plugins in dependency order
|
|
190
|
+
// -----------------------------------------------------------------------
|
|
191
|
+
async activateAll() {
|
|
192
|
+
const order = this.topologicalSort();
|
|
193
|
+
const activated = [];
|
|
194
|
+
const failed = [];
|
|
195
|
+
for (const pluginId of order) {
|
|
196
|
+
try {
|
|
197
|
+
await this.activate(pluginId);
|
|
198
|
+
activated.push(pluginId);
|
|
199
|
+
}
|
|
200
|
+
catch {
|
|
201
|
+
failed.push(pluginId);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
return { activated, failed };
|
|
205
|
+
}
|
|
206
|
+
// -----------------------------------------------------------------------
|
|
207
|
+
// Private helpers
|
|
208
|
+
// -----------------------------------------------------------------------
|
|
209
|
+
getUnmetDependencies(plugin) {
|
|
210
|
+
if (!plugin.requires || plugin.requires.length === 0)
|
|
211
|
+
return [];
|
|
212
|
+
return plugin.requires.filter((depId) => !this.isActive(depId));
|
|
213
|
+
}
|
|
214
|
+
getDependents(pluginId) {
|
|
215
|
+
return this.listActive()
|
|
216
|
+
.filter((p) => p.requires?.includes(pluginId))
|
|
217
|
+
.map((p) => p.id);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Topological sort of plugins based on their dependency graph.
|
|
221
|
+
* Returns plugin IDs in safe activation order.
|
|
222
|
+
*/
|
|
223
|
+
topologicalSort() {
|
|
224
|
+
const visited = new Set();
|
|
225
|
+
const sorted = [];
|
|
226
|
+
const visiting = new Set(); // cycle detection
|
|
227
|
+
const visit = (id) => {
|
|
228
|
+
if (visited.has(id))
|
|
229
|
+
return;
|
|
230
|
+
if (visiting.has(id)) {
|
|
231
|
+
throw new Error(`Circular dependency detected involving plugin "${id}"`);
|
|
232
|
+
}
|
|
233
|
+
visiting.add(id);
|
|
234
|
+
const entry = this.entries.get(id);
|
|
235
|
+
if (entry?.plugin.requires) {
|
|
236
|
+
for (const depId of entry.plugin.requires) {
|
|
237
|
+
if (this.entries.has(depId)) {
|
|
238
|
+
visit(depId);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
visiting.delete(id);
|
|
243
|
+
visited.add(id);
|
|
244
|
+
sorted.push(id);
|
|
245
|
+
};
|
|
246
|
+
for (const id of this.entries.keys()) {
|
|
247
|
+
visit(id);
|
|
248
|
+
}
|
|
249
|
+
return sorted;
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
//# sourceMappingURL=plugin-system.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-system.js","sourceRoot":"","sources":["../src/plugin-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FoundryPlugin } from '../plugin-system.js';
|
|
2
|
+
export declare const relayPlugin: FoundryPlugin;
|
|
3
|
+
export declare const canvasPlugin: FoundryPlugin;
|
|
4
|
+
export declare const marketPlugin: FoundryPlugin;
|
|
5
|
+
export declare const sentinelPlugin: FoundryPlugin;
|
|
6
|
+
//# sourceMappingURL=communication.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"communication.d.ts","sourceRoot":"","sources":["../../src/plugins/communication.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,qBAAqB,CAAC;AAMtE,eAAO,MAAM,WAAW,EAAE,aAqKzB,CAAC;AAQF,eAAO,MAAM,YAAY,EAAE,aAwN1B,CAAC;AA0BF,eAAO,MAAM,YAAY,EAAE,aAyT1B,CAAC;AAMF,eAAO,MAAM,cAAc,EAAE,aA6N5B,CAAC"}
|