@hamak/microkernel-api 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.
@@ -0,0 +1 @@
1
+ $ tsc -p tsconfig.lib.json
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
@@ -0,0 +1,68 @@
1
+ export type Token<T = any> = string | symbol | {
2
+ new (...args: any[]): T;
3
+ };
4
+ export type CommandRegistry = {
5
+ register(id: string, handler: (...a: any[]) => any): void;
6
+ run(id: string, ...a: any[]): any;
7
+ has(id: string): boolean;
8
+ };
9
+ export type ViewRegistry = {
10
+ register(slot: string, viewFactory: any): void;
11
+ list(slot: string): any[];
12
+ };
13
+ export type Hooks = {
14
+ on(event: string, fn: (...a: any[]) => void): void;
15
+ off(event: string, fn: (...a: any[]) => void): void;
16
+ emit(event: string, ...a: any[]): void;
17
+ };
18
+ export type PluginManifest = {
19
+ name: string;
20
+ version: string;
21
+ entry: string;
22
+ baseUrl?: string;
23
+ dependsOn?: string[];
24
+ contributes?: {
25
+ commands?: Array<{
26
+ id: string;
27
+ title?: string;
28
+ }>;
29
+ views?: Array<{
30
+ slot: string;
31
+ id: string;
32
+ title?: string;
33
+ }>;
34
+ };
35
+ };
36
+ export type ClassProvider<T = any> = {
37
+ provide: Token<T>;
38
+ useClass: {
39
+ new (...args: any[]): T;
40
+ };
41
+ };
42
+ export type ValueProvider<T = any> = {
43
+ provide: Token<T>;
44
+ useValue: T;
45
+ };
46
+ export type FactoryProvider<T = any> = {
47
+ provide: Token<T>;
48
+ useFactory: (...deps: any[]) => T;
49
+ deps?: Token[];
50
+ };
51
+ export type Provider<T = any> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T>;
52
+ export type ProvidedServices = {
53
+ resolve<T>(token: Token<T>): T;
54
+ commands: CommandRegistry;
55
+ views: ViewRegistry;
56
+ hooks: Hooks;
57
+ env?: Record<string, any>;
58
+ };
59
+ export type ActivateContext = ProvidedServices;
60
+ export interface IHost {
61
+ loadPlugins(manifests: Array<string | PluginManifest>): Promise<void>;
62
+ bootstrapAllAtRoot(): Promise<void>;
63
+ createChildHost(overrides?: Provider[], env?: Record<string, any>): IChildHost;
64
+ }
65
+ export interface IChildHost {
66
+ bootstrap(pluginNames?: string[] | 'all'): Promise<void>;
67
+ }
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,27 @@
1
+ {
2
+ "name": "@hamak/microkernel-api",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "description": "Microkernel API - Core interfaces and contracts",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "sideEffects": false,
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/amah/app-framework.git",
12
+ "directory": "packages/microkernel/microkernel-api"
13
+ },
14
+ "publishConfig": {
15
+ "access": "public"
16
+ },
17
+ "scripts": {
18
+ "build": "tsc -p tsconfig.lib.json",
19
+ "clean": "rm -rf dist"
20
+ },
21
+ "exports": {
22
+ ".": {
23
+ "types": "./dist/index.d.ts",
24
+ "import": "./dist/index.js"
25
+ }
26
+ }
27
+ }
package/src/index.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export * from './types';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
package/src/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from './types';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC"}
package/src/index.ts ADDED
@@ -0,0 +1 @@
1
+ export * from './types';
package/src/types.d.ts ADDED
@@ -0,0 +1,68 @@
1
+ export type Token<T = any> = string | symbol | {
2
+ new (...args: any[]): T;
3
+ };
4
+ export type CommandRegistry = {
5
+ register(id: string, handler: (...a: any[]) => any): void;
6
+ run(id: string, ...a: any[]): any;
7
+ has(id: string): boolean;
8
+ };
9
+ export type ViewRegistry = {
10
+ register(slot: string, viewFactory: any): void;
11
+ list(slot: string): any[];
12
+ };
13
+ export type Hooks = {
14
+ on(event: string, fn: (...a: any[]) => void): void;
15
+ off(event: string, fn: (...a: any[]) => void): void;
16
+ emit(event: string, ...a: any[]): void;
17
+ };
18
+ export type PluginManifest = {
19
+ name: string;
20
+ version: string;
21
+ entry: string;
22
+ baseUrl?: string;
23
+ dependsOn?: string[];
24
+ contributes?: {
25
+ commands?: Array<{
26
+ id: string;
27
+ title?: string;
28
+ }>;
29
+ views?: Array<{
30
+ slot: string;
31
+ id: string;
32
+ title?: string;
33
+ }>;
34
+ };
35
+ };
36
+ export type ClassProvider<T = any> = {
37
+ provide: Token<T>;
38
+ useClass: {
39
+ new (...args: any[]): T;
40
+ };
41
+ };
42
+ export type ValueProvider<T = any> = {
43
+ provide: Token<T>;
44
+ useValue: T;
45
+ };
46
+ export type FactoryProvider<T = any> = {
47
+ provide: Token<T>;
48
+ useFactory: (...deps: any[]) => T;
49
+ deps?: Token[];
50
+ };
51
+ export type Provider<T = any> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T>;
52
+ export type ProvidedServices = {
53
+ resolve<T>(token: Token<T>): T;
54
+ commands: CommandRegistry;
55
+ views: ViewRegistry;
56
+ hooks: Hooks;
57
+ env?: Record<string, any>;
58
+ };
59
+ export type ActivateContext = ProvidedServices;
60
+ export interface IHost {
61
+ loadPlugins(manifests: Array<string | PluginManifest>): Promise<void>;
62
+ bootstrapAllAtRoot(): Promise<void>;
63
+ createChildHost(overrides?: Provider[], env?: Record<string, any>): IChildHost;
64
+ }
65
+ export interface IChildHost {
66
+ bootstrap(pluginNames?: string[] | 'all'): Promise<void>;
67
+ }
68
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":"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"}
package/src/types.js ADDED
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["types.ts"],"names":[],"mappings":""}
package/src/types.ts ADDED
@@ -0,0 +1,13 @@
1
+ export type Token<T = any> = string | symbol | { new (...args: any[]): T };
2
+ export type CommandRegistry = { register(id: string, handler: (...a: any[]) => any): void; run(id: string, ...a: any[]): any; has(id: string): boolean; };
3
+ export type ViewRegistry = { register(slot: string, viewFactory: any): void; list(slot: string): any[]; };
4
+ export type Hooks = { on(event: string, fn: (...a: any[]) => void): void; off(event: string, fn: (...a: any[]) => void): void; emit(event: string, ...a: any[]): void; };
5
+ export type PluginManifest = { name: string; version: string; entry: string; baseUrl?: string; dependsOn?: string[]; contributes?: { commands?: Array<{ id: string; title?: string }>; views?: Array<{ slot: string; id: string; title?: string }>; }; };
6
+ export type ClassProvider<T = any> = { provide: Token<T>; useClass: { new (...args: any[]): T } };
7
+ export type ValueProvider<T = any> = { provide: Token<T>; useValue: T };
8
+ export type FactoryProvider<T = any> = { provide: Token<T>; useFactory: (...deps: any[]) => T; deps?: Token[] };
9
+ export type Provider<T = any> = ClassProvider<T> | ValueProvider<T> | FactoryProvider<T>;
10
+ export type ProvidedServices = { resolve<T>(token: Token<T>): T; commands: CommandRegistry; views: ViewRegistry; hooks: Hooks; env?: Record<string, any>; };
11
+ export type ActivateContext = ProvidedServices;
12
+ export interface IHost { loadPlugins(manifests: Array<string | PluginManifest>): Promise<void>; bootstrapAllAtRoot(): Promise<void>; createChildHost(overrides?: Provider[], env?: Record<string, any>): IChildHost; }
13
+ export interface IChildHost { bootstrap(pluginNames?: string[] | 'all'): Promise<void>; }
package/tsconfig.json ADDED
@@ -0,0 +1,11 @@
1
+ {
2
+ "extends": "../../tsconfig.base.json",
3
+ "compilerOptions": {
4
+ "composite": true,
5
+ "outDir": "../../dist/libs/app-microkernel-api",
6
+ "rootDir": "src"
7
+ },
8
+ "include": [
9
+ "src/**/*.ts"
10
+ ]
11
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "lib": ["ES2020", "DOM"],
5
+ "module": "ESNext",
6
+ "moduleResolution": "Bundler",
7
+ "rootDir": "./src",
8
+ "outDir": "./dist",
9
+ "declaration": true,
10
+ "declarationMap": true,
11
+ "sourceMap": true,
12
+ "strict": true,
13
+ "esModuleInterop": true,
14
+ "skipLibCheck": true,
15
+ "types": []
16
+ },
17
+ "include": [
18
+ "src/**/*.ts"
19
+ ],
20
+ "exclude": [
21
+ "node_modules",
22
+ "dist"
23
+ ]
24
+ }