@interdead/framework 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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +86 -0
  3. package/dist/browser/interdead-framework.global.js +319 -0
  4. package/dist/cjs/adapters/hugo-config-source-adapter.js +51 -0
  5. package/dist/cjs/adapters/hugo-config-source-adapter.js.map +1 -0
  6. package/dist/cjs/adapters/js-object-config-source-adapter.js +13 -0
  7. package/dist/cjs/adapters/js-object-config-source-adapter.js.map +1 -0
  8. package/dist/cjs/contracts/framework-config.js +3 -0
  9. package/dist/cjs/contracts/framework-config.js.map +1 -0
  10. package/dist/cjs/contracts/framework-feature.js +3 -0
  11. package/dist/cjs/contracts/framework-feature.js.map +1 -0
  12. package/dist/cjs/core/feature-registry.js +28 -0
  13. package/dist/cjs/core/feature-registry.js.map +1 -0
  14. package/dist/cjs/core/framework-runtime.js +64 -0
  15. package/dist/cjs/core/framework-runtime.js.map +1 -0
  16. package/dist/cjs/features/membrane/membrane-feature.js +87 -0
  17. package/dist/cjs/features/membrane/membrane-feature.js.map +1 -0
  18. package/dist/cjs/features/membrane/membrane-renderer.js +64 -0
  19. package/dist/cjs/features/membrane/membrane-renderer.js.map +1 -0
  20. package/dist/cjs/index.js +25 -0
  21. package/dist/cjs/index.js.map +1 -0
  22. package/dist/cjs/ports/config-source-port.js +3 -0
  23. package/dist/cjs/ports/config-source-port.js.map +1 -0
  24. package/dist/esm/adapters/hugo-config-source-adapter.js +47 -0
  25. package/dist/esm/adapters/hugo-config-source-adapter.js.map +1 -0
  26. package/dist/esm/adapters/js-object-config-source-adapter.js +9 -0
  27. package/dist/esm/adapters/js-object-config-source-adapter.js.map +1 -0
  28. package/dist/esm/contracts/framework-config.js +2 -0
  29. package/dist/esm/contracts/framework-config.js.map +1 -0
  30. package/dist/esm/contracts/framework-feature.js +2 -0
  31. package/dist/esm/contracts/framework-feature.js.map +1 -0
  32. package/dist/esm/core/feature-registry.js +24 -0
  33. package/dist/esm/core/feature-registry.js.map +1 -0
  34. package/dist/esm/core/framework-runtime.js +59 -0
  35. package/dist/esm/core/framework-runtime.js.map +1 -0
  36. package/dist/esm/features/membrane/membrane-feature.js +83 -0
  37. package/dist/esm/features/membrane/membrane-feature.js.map +1 -0
  38. package/dist/esm/features/membrane/membrane-renderer.js +60 -0
  39. package/dist/esm/features/membrane/membrane-renderer.js.map +1 -0
  40. package/dist/esm/index.js +9 -0
  41. package/dist/esm/index.js.map +1 -0
  42. package/dist/esm/ports/config-source-port.js +2 -0
  43. package/dist/esm/ports/config-source-port.js.map +1 -0
  44. package/dist/types/adapters/hugo-config-source-adapter.d.ts +7 -0
  45. package/dist/types/adapters/js-object-config-source-adapter.d.ts +7 -0
  46. package/dist/types/contracts/framework-config.d.ts +21 -0
  47. package/dist/types/contracts/framework-feature.d.ts +7 -0
  48. package/dist/types/core/feature-registry.d.ts +7 -0
  49. package/dist/types/core/framework-runtime.d.ts +18 -0
  50. package/dist/types/features/membrane/membrane-feature.d.ts +21 -0
  51. package/dist/types/features/membrane/membrane-renderer.d.ts +15 -0
  52. package/dist/types/index.d.ts +8 -0
  53. package/dist/types/ports/config-source-port.d.ts +4 -0
  54. package/package.json +51 -0
@@ -0,0 +1,18 @@
1
+ import type { FrameworkConfig } from "../contracts/framework-config.js";
2
+ import type { ConfigSourcePort } from "../ports/config-source-port.js";
3
+ export interface RuntimeOptions {
4
+ windowRef?: Window;
5
+ documentRef?: Document;
6
+ }
7
+ export declare class FrameworkRuntime {
8
+ private readonly configSource;
9
+ private readonly options;
10
+ private readonly registry;
11
+ private readonly features;
12
+ private config;
13
+ constructor(configSource: ConfigSourcePort, options?: RuntimeOptions);
14
+ boot(): void;
15
+ destroy(): void;
16
+ private applyMinimalMembraneProfile;
17
+ }
18
+ export declare function createInterdeadFramework(config?: FrameworkConfig, options?: RuntimeOptions): FrameworkRuntime;
@@ -0,0 +1,21 @@
1
+ import type { FrameworkFeature } from "../../contracts/framework-feature.js";
2
+ import type { FrameworkConfig } from "../../contracts/framework-config.js";
3
+ export declare class MembraneFeature implements FrameworkFeature {
4
+ private readonly windowRef;
5
+ private readonly documentRef;
6
+ readonly key: "membrane";
7
+ private animationFrame;
8
+ private canvas;
9
+ private renderer;
10
+ private boundInteractions;
11
+ private config;
12
+ private appliedBodyClass;
13
+ constructor(windowRef?: Window, documentRef?: Document);
14
+ mount(): void;
15
+ updateConfig(config: FrameworkConfig): void;
16
+ destroy(): void;
17
+ private readonly handleResize;
18
+ private readonly tick;
19
+ private bindInteractions;
20
+ private unbindInteractions;
21
+ }
@@ -0,0 +1,15 @@
1
+ import type { MembraneConfig } from "../../contracts/framework-config.js";
2
+ export declare class MembraneRenderer {
3
+ private readonly canvas;
4
+ private readonly windowRef;
5
+ private readonly ctx;
6
+ private width;
7
+ private height;
8
+ private pulse;
9
+ private pulseX;
10
+ private pulseY;
11
+ constructor(canvas: HTMLCanvasElement, windowRef: Window);
12
+ resize(): void;
13
+ triggerPulse(xRatio: number, yRatio: number): void;
14
+ draw(time: number, config?: MembraneConfig): void;
15
+ }
@@ -0,0 +1,8 @@
1
+ export * from "./contracts/framework-config.js";
2
+ export * from "./contracts/framework-feature.js";
3
+ export * from "./ports/config-source-port.js";
4
+ export * from "./adapters/js-object-config-source-adapter.js";
5
+ export * from "./adapters/hugo-config-source-adapter.js";
6
+ export * from "./features/membrane/membrane-feature.js";
7
+ export * from "./core/feature-registry.js";
8
+ export * from "./core/framework-runtime.js";
@@ -0,0 +1,4 @@
1
+ import type { FrameworkConfig } from "../contracts/framework-config.js";
2
+ export interface ConfigSourcePort {
3
+ load(): FrameworkConfig;
4
+ }
package/package.json ADDED
@@ -0,0 +1,51 @@
1
+ {
2
+ "name": "@interdead/framework",
3
+ "version": "0.1.0",
4
+ "description": "InterDead UI framework runtime with modular feature loading and host-agnostic config adapters.",
5
+ "type": "module",
6
+ "main": "dist/esm/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "types": "./dist/types/index.d.ts",
11
+ "import": "./dist/esm/index.js",
12
+ "require": "./dist/cjs/index.js"
13
+ },
14
+ "./browser": {
15
+ "default": "./dist/browser/interdead-framework.global.js"
16
+ }
17
+ },
18
+ "files": [
19
+ "dist",
20
+ "README.md",
21
+ "LICENSE"
22
+ ],
23
+ "scripts": {
24
+ "build": "npm run build:esm && npm run build:cjs && npm run build:browser",
25
+ "build:esm": "tsc -p tsconfig.json",
26
+ "build:cjs": "tsc -p tsconfig.cjs.json",
27
+ "build:browser": "esbuild src/index.ts --bundle --format=iife --global-name=InterdeadFramework --platform=browser --outfile=dist/browser/interdead-framework.global.js",
28
+ "format": "prettier --write \"src/**/*.{ts,tsx}\" \"tests/**/*.{ts,tsx}\"",
29
+ "format:check": "prettier --check \"src/**/*.{ts,tsx}\" \"tests/**/*.{ts,tsx}\"",
30
+ "test": "vitest run"
31
+ },
32
+ "engines": {
33
+ "node": ">=18"
34
+ },
35
+ "keywords": [
36
+ "interdead",
37
+ "framework",
38
+ "membrane",
39
+ "hexagonal"
40
+ ],
41
+ "author": "InterDead Core",
42
+ "license": "MIT",
43
+ "devDependencies": {
44
+ "@types/node": "^24.10.1",
45
+ "prettier": "^3.3.0",
46
+ "ts-node": "^10.9.2",
47
+ "typescript": "^5.0.0",
48
+ "vitest": "^1.0.0",
49
+ "esbuild": "^0.25.0"
50
+ }
51
+ }