@kaaterskillsawmill/devforge-sdk 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/dist/index.d.ts +75 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +174 -0
- package/dist/index.js.map +1 -0
- package/package.json +21 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Dane Anthony Cooper. All rights reserved.
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @kaaterskillsawmill/devforge-sdk — Module authoring SDK for DevForge.
|
|
3
|
+
*
|
|
4
|
+
* Provides helper functions for defining modules, wiring points,
|
|
5
|
+
* and lifecycle hooks. This is the primary API for module authors.
|
|
6
|
+
*/
|
|
7
|
+
import type { ModuleDefinition, ModuleInstance, PackJson } from '@kaaterskillsawmill/devforge-types';
|
|
8
|
+
/**
|
|
9
|
+
* Define a DevForge module. This is the main entry point for module authors.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts
|
|
13
|
+
* export default defineModule({
|
|
14
|
+
* name: '@kaaterskillsawmill/devforge-auth-supabase',
|
|
15
|
+
* requires: { database: { type: 'DatabaseProvider', optional: false } },
|
|
16
|
+
* provides: { auth: { type: 'AuthProvider' } },
|
|
17
|
+
* async activate(config, wiring) {
|
|
18
|
+
* return { auth: createSupabaseAuth(wiring.database) };
|
|
19
|
+
* },
|
|
20
|
+
* });
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare function defineModule<TConfig = Record<string, unknown>, TProvides extends Record<string, unknown> = Record<string, unknown>, TRequires extends Record<string, string> = Record<string, string>>(definition: ModuleDefinition<TConfig, TProvides, TRequires>): ModuleDefinition<TConfig, TProvides, TRequires>;
|
|
24
|
+
export interface WiringEngineOptions {
|
|
25
|
+
modules: Map<string, {
|
|
26
|
+
packJson: PackJson;
|
|
27
|
+
definition: ModuleDefinition;
|
|
28
|
+
}>;
|
|
29
|
+
configs: Record<string, Record<string, unknown>>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The wiring engine resolves module dependencies and connects
|
|
33
|
+
* provides/requires ports across all installed modules.
|
|
34
|
+
*/
|
|
35
|
+
export declare class WiringEngine {
|
|
36
|
+
private modules;
|
|
37
|
+
private providerIndex;
|
|
38
|
+
/**
|
|
39
|
+
* Register a module and index its provided wiring points.
|
|
40
|
+
*/
|
|
41
|
+
register(name: string, packJson: PackJson, config?: Record<string, unknown>): void;
|
|
42
|
+
/**
|
|
43
|
+
* Resolve all wiring connections. Returns unresolved requirements.
|
|
44
|
+
*/
|
|
45
|
+
resolve(): {
|
|
46
|
+
resolved: number;
|
|
47
|
+
unresolved: Array<{
|
|
48
|
+
module: string;
|
|
49
|
+
key: string;
|
|
50
|
+
type: string;
|
|
51
|
+
}>;
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Get the activation order (topological sort based on dependencies).
|
|
55
|
+
*/
|
|
56
|
+
getActivationOrder(): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Activate all modules in dependency order.
|
|
59
|
+
*/
|
|
60
|
+
activateAll(definitions: Map<string, ModuleDefinition>): Promise<Map<string, Record<string, unknown>>>;
|
|
61
|
+
getModule(name: string): ModuleInstance | undefined;
|
|
62
|
+
getAllModules(): ModuleInstance[];
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Create a wiring configuration from a devforge.json project manifest.
|
|
66
|
+
*/
|
|
67
|
+
export declare function createWiring(options: {
|
|
68
|
+
modules: Record<string, (config?: Record<string, unknown>) => ModuleDefinition>;
|
|
69
|
+
overrides?: Record<string, unknown>;
|
|
70
|
+
}): {
|
|
71
|
+
engine: WiringEngine;
|
|
72
|
+
activate: () => Promise<Map<string, Record<string, unknown>>>;
|
|
73
|
+
};
|
|
74
|
+
export type { ModuleDefinition, ModuleInstance, ModuleStatus, ModuleWiring, PackJson, WiringMap, WiringPoint, DevForgeProject, } from '@kaaterskillsawmill/devforge-types';
|
|
75
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EAGd,QAAQ,EAIT,MAAM,oCAAoC,CAAC;AAM5C;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,YAAY,CAC1B,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACnE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACjE,UAAU,EAAE,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,GAAG,gBAAgB,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAE9G;AAMD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,QAAQ,CAAC;QAAC,UAAU,EAAE,gBAAgB,CAAA;KAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAClD;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAA0C;IACzD,OAAO,CAAC,aAAa,CAA+D;IAEpF;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAAG,IAAI;IA0BtF;;OAEG;IACH,OAAO,IAAI;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,KAAK,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAAE;IA0BjG;;OAEG;IACH,kBAAkB,IAAI,MAAM,EAAE;IA4B9B;;OAEG;IACG,WAAW,CACf,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACzC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAqChD,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAInD,aAAa,IAAI,cAAc,EAAE;CAGlC;AAMD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,gBAAgB,CAAC,CAAC;IAChF,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC;IAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAA;CAAE,CAa1F;AAMD,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,WAAW,EACX,eAAe,GAChB,MAAM,oCAAoC,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @kaaterskillsawmill/devforge-sdk — Module authoring SDK for DevForge.
|
|
3
|
+
*
|
|
4
|
+
* Provides helper functions for defining modules, wiring points,
|
|
5
|
+
* and lifecycle hooks. This is the primary API for module authors.
|
|
6
|
+
*/
|
|
7
|
+
// =============================================================================
|
|
8
|
+
// MODULE DEFINITION HELPERS
|
|
9
|
+
// =============================================================================
|
|
10
|
+
/**
|
|
11
|
+
* Define a DevForge module. This is the main entry point for module authors.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* export default defineModule({
|
|
16
|
+
* name: '@kaaterskillsawmill/devforge-auth-supabase',
|
|
17
|
+
* requires: { database: { type: 'DatabaseProvider', optional: false } },
|
|
18
|
+
* provides: { auth: { type: 'AuthProvider' } },
|
|
19
|
+
* async activate(config, wiring) {
|
|
20
|
+
* return { auth: createSupabaseAuth(wiring.database) };
|
|
21
|
+
* },
|
|
22
|
+
* });
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export function defineModule(definition) {
|
|
26
|
+
return definition;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The wiring engine resolves module dependencies and connects
|
|
30
|
+
* provides/requires ports across all installed modules.
|
|
31
|
+
*/
|
|
32
|
+
export class WiringEngine {
|
|
33
|
+
modules = new Map();
|
|
34
|
+
providerIndex = new Map();
|
|
35
|
+
/**
|
|
36
|
+
* Register a module and index its provided wiring points.
|
|
37
|
+
*/
|
|
38
|
+
register(name, packJson, config = {}) {
|
|
39
|
+
const instance = {
|
|
40
|
+
name,
|
|
41
|
+
version: packJson.version,
|
|
42
|
+
status: 'installed',
|
|
43
|
+
config,
|
|
44
|
+
wiring: {
|
|
45
|
+
provides: {},
|
|
46
|
+
requires: Object.fromEntries(Object.entries(packJson.requires).map(([key, req]) => [
|
|
47
|
+
key,
|
|
48
|
+
{ type: req.type, optional: req.optional },
|
|
49
|
+
])),
|
|
50
|
+
},
|
|
51
|
+
exports: {},
|
|
52
|
+
};
|
|
53
|
+
this.modules.set(name, instance);
|
|
54
|
+
// Index what this module provides
|
|
55
|
+
for (const [key, decl] of Object.entries(packJson.provides)) {
|
|
56
|
+
this.providerIndex.set(decl.type, { moduleName: name, key });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Resolve all wiring connections. Returns unresolved requirements.
|
|
61
|
+
*/
|
|
62
|
+
resolve() {
|
|
63
|
+
let resolved = 0;
|
|
64
|
+
const unresolved = [];
|
|
65
|
+
for (const [moduleName, instance] of this.modules) {
|
|
66
|
+
for (const [key, req] of Object.entries(instance.wiring.requires)) {
|
|
67
|
+
const provider = this.providerIndex.get(req.type);
|
|
68
|
+
if (provider) {
|
|
69
|
+
req.resolved = {
|
|
70
|
+
type: req.type,
|
|
71
|
+
value: null, // Filled during activate()
|
|
72
|
+
metadata: {
|
|
73
|
+
moduleName: provider.moduleName,
|
|
74
|
+
version: this.modules.get(provider.moduleName)?.version ?? '0.0.0',
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
resolved++;
|
|
78
|
+
}
|
|
79
|
+
else if (!req.optional) {
|
|
80
|
+
unresolved.push({ module: moduleName, key, type: req.type });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return { resolved, unresolved };
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get the activation order (topological sort based on dependencies).
|
|
88
|
+
*/
|
|
89
|
+
getActivationOrder() {
|
|
90
|
+
const visited = new Set();
|
|
91
|
+
const order = [];
|
|
92
|
+
const visit = (name) => {
|
|
93
|
+
if (visited.has(name))
|
|
94
|
+
return;
|
|
95
|
+
visited.add(name);
|
|
96
|
+
const instance = this.modules.get(name);
|
|
97
|
+
if (!instance)
|
|
98
|
+
return;
|
|
99
|
+
// Visit dependencies first
|
|
100
|
+
for (const req of Object.values(instance.wiring.requires)) {
|
|
101
|
+
if (req.resolved) {
|
|
102
|
+
visit(req.resolved.metadata.moduleName);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
order.push(name);
|
|
106
|
+
};
|
|
107
|
+
for (const name of this.modules.keys()) {
|
|
108
|
+
visit(name);
|
|
109
|
+
}
|
|
110
|
+
return order;
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Activate all modules in dependency order.
|
|
114
|
+
*/
|
|
115
|
+
async activateAll(definitions) {
|
|
116
|
+
const order = this.getActivationOrder();
|
|
117
|
+
const allExports = new Map();
|
|
118
|
+
for (const name of order) {
|
|
119
|
+
const instance = this.modules.get(name);
|
|
120
|
+
const definition = definitions.get(name);
|
|
121
|
+
if (!instance || !definition)
|
|
122
|
+
continue;
|
|
123
|
+
// Build wiring map from resolved requirements
|
|
124
|
+
const wiringMap = {};
|
|
125
|
+
for (const [key, req] of Object.entries(instance.wiring.requires)) {
|
|
126
|
+
if (req.resolved) {
|
|
127
|
+
const providerExports = allExports.get(req.resolved.metadata.moduleName);
|
|
128
|
+
if (providerExports) {
|
|
129
|
+
const providerInfo = this.providerIndex.get(req.type);
|
|
130
|
+
if (providerInfo) {
|
|
131
|
+
wiringMap[key] = providerExports[providerInfo.key];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
try {
|
|
137
|
+
const exports = await definition.activate(instance.config, wiringMap);
|
|
138
|
+
instance.exports = exports;
|
|
139
|
+
instance.status = 'active';
|
|
140
|
+
allExports.set(name, exports);
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
instance.status = 'error';
|
|
144
|
+
throw new Error(`Failed to activate module ${name}: ${error}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return allExports;
|
|
148
|
+
}
|
|
149
|
+
getModule(name) {
|
|
150
|
+
return this.modules.get(name);
|
|
151
|
+
}
|
|
152
|
+
getAllModules() {
|
|
153
|
+
return Array.from(this.modules.values());
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
// =============================================================================
|
|
157
|
+
// PROJECT HELPERS
|
|
158
|
+
// =============================================================================
|
|
159
|
+
/**
|
|
160
|
+
* Create a wiring configuration from a devforge.json project manifest.
|
|
161
|
+
*/
|
|
162
|
+
export function createWiring(options) {
|
|
163
|
+
const engine = new WiringEngine();
|
|
164
|
+
const definitions = new Map();
|
|
165
|
+
for (const [key, factory] of Object.entries(options.modules)) {
|
|
166
|
+
const definition = factory();
|
|
167
|
+
definitions.set(definition.name, definition);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
engine,
|
|
171
|
+
activate: () => engine.activateAll(definitions),
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@kaaterskillsawmill/devforge-sdk",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist"
|
|
9
|
+
],
|
|
10
|
+
"dependencies": {
|
|
11
|
+
"@kaaterskillsawmill/devforge-types": "0.1.0"
|
|
12
|
+
},
|
|
13
|
+
"author": "Dane Anthony Cooper",
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "tsc -p tsconfig.json",
|
|
17
|
+
"test": "node --test",
|
|
18
|
+
"lint": "tsc -p tsconfig.json --noEmit",
|
|
19
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
20
|
+
}
|
|
21
|
+
}
|