@moku-labs/core 0.1.0-alpha.0 → 0.1.0-alpha.1
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/README.md +3 -3
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +9 -8
- package/dist/index.d.mts +9 -8
- package/dist/index.mjs +8 -8
- package/package.json +48 -48
package/README.md
CHANGED
|
@@ -110,7 +110,7 @@ export const { createApp, createPlugin } = framework;
|
|
|
110
110
|
// my-app/main.ts
|
|
111
111
|
import { createApp } from 'my-framework';
|
|
112
112
|
|
|
113
|
-
const app =
|
|
113
|
+
const app = createApp({
|
|
114
114
|
plugins: [blogPlugin],
|
|
115
115
|
config: { siteName: 'My Blog', mode: 'production' },
|
|
116
116
|
pluginConfigs: { router: { basePath: '/blog' } },
|
|
@@ -218,7 +218,7 @@ createPlugin('name', {
|
|
|
218
218
|
createState: ctx => ({ /* mutable state */ }),
|
|
219
219
|
api: ctx => ({ /* public methods, mounted on app.name */ }),
|
|
220
220
|
hooks: ctx => ({ 'event:name': handler }),
|
|
221
|
-
onInit:
|
|
221
|
+
onInit: ctx => { /* all plugins exist, sync only */ },
|
|
222
222
|
onStart: async ctx => { /* app is running */ },
|
|
223
223
|
onStop: async ctx => { /* teardown, reverse order */ },
|
|
224
224
|
});
|
|
@@ -268,7 +268,7 @@ Creates a plugin instance. Zero explicit generics — everything inferred from t
|
|
|
268
268
|
|
|
269
269
|
### createApp(options?)
|
|
270
270
|
|
|
271
|
-
Merges framework defaults with consumer options. Validates, resolves config, runs `onInit`. Returns `
|
|
271
|
+
Merges framework defaults with consumer options. Validates, resolves config, runs `onInit`. Returns `App` — a frozen object with plugin APIs mounted as properties.
|
|
272
272
|
|
|
273
273
|
### App
|
|
274
274
|
|
package/dist/index.cjs
CHANGED
|
@@ -405,13 +405,13 @@ function buildApp(runtime, flatPlugins, buildPluginContext, consumer) {
|
|
|
405
405
|
* API building, lifecycle execution, returns frozen app object.
|
|
406
406
|
*
|
|
407
407
|
* @param parameters - All kernel inputs captured from the factory chain.
|
|
408
|
-
* @returns
|
|
408
|
+
* @returns The frozen app object.
|
|
409
409
|
* @example
|
|
410
410
|
* ```ts
|
|
411
411
|
* const app = await kernel({ id: "my-app", configDefaults: {}, ... });
|
|
412
412
|
* ```
|
|
413
413
|
*/
|
|
414
|
-
|
|
414
|
+
function kernel(parameters) {
|
|
415
415
|
const { id, configDefaults, frameworkPluginConfigs, flatPlugins, configOverrides, consumerPluginConfigs, onReady, onError, consumer } = parameters;
|
|
416
416
|
const pluginNameSet = new Set(flatPlugins.map((plugin) => plugin.name));
|
|
417
417
|
const globalConfig = Object.freeze({
|
|
@@ -435,9 +435,9 @@ async function kernel(parameters) {
|
|
|
435
435
|
const buildPluginContext = createContextFactory(runtime, resolvedConfigs, states);
|
|
436
436
|
registerPluginHooks(flatPlugins, buildPluginContext, registerHook);
|
|
437
437
|
for (const plugin of flatPlugins) if (plugin.spec.api) apis.set(plugin.name, plugin.spec.api(buildPluginContext(plugin)));
|
|
438
|
-
for (const plugin of flatPlugins) if (plugin.spec.onInit)
|
|
439
|
-
if (onReady)
|
|
440
|
-
if (consumer?.onReady)
|
|
438
|
+
for (const plugin of flatPlugins) if (plugin.spec.onInit) plugin.spec.onInit(buildPluginContext(plugin));
|
|
439
|
+
if (onReady) onReady({ config: globalConfig });
|
|
440
|
+
if (consumer?.onReady) consumer.onReady(buildCallbackContext(runtime));
|
|
441
441
|
return buildApp(runtime, flatPlugins, buildPluginContext, consumer);
|
|
442
442
|
}
|
|
443
443
|
|
|
@@ -485,13 +485,13 @@ function createCoreFactory(frameworkId, configDefaults, createPlugin) {
|
|
|
485
485
|
* plugins, then delegates to the kernel for lifecycle execution.
|
|
486
486
|
*
|
|
487
487
|
* @param consumerOptions - Consumer-level config, plugins, and callbacks.
|
|
488
|
-
* @returns
|
|
488
|
+
* @returns The frozen App object.
|
|
489
489
|
* @example
|
|
490
490
|
* ```ts
|
|
491
|
-
* const app =
|
|
491
|
+
* const app = createApp({ config: { siteName: "Blog" } });
|
|
492
492
|
* ```
|
|
493
493
|
*/
|
|
494
|
-
const createApp =
|
|
494
|
+
const createApp = (consumerOptions) => {
|
|
495
495
|
const appOptions = consumerOptions ?? {};
|
|
496
496
|
const allPlugins = [...defaultPlugins, ...appOptions.plugins ?? []];
|
|
497
497
|
validatePlugins(frameworkId, allPlugins);
|
package/dist/index.d.cts
CHANGED
|
@@ -221,7 +221,7 @@ type PluginSpec<Config, Events extends Record<string, unknown>, PluginEvents ext
|
|
|
221
221
|
depends?: Deps;
|
|
222
222
|
createState?: (context: MinimalContext<Config, C>) => S;
|
|
223
223
|
api?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => A;
|
|
224
|
-
onInit?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void
|
|
224
|
+
onInit?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void;
|
|
225
225
|
onStart?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void | Promise<void>;
|
|
226
226
|
onStop?: (context: TeardownContext<Config>) => void | Promise<void>;
|
|
227
227
|
hooks?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => { [K in string & keyof (Events & PluginEvents & DepsEvents<Deps>)]?: (payload: (Events & PluginEvents & DepsEvents<Deps>)[K]) => void | Promise<void> };
|
|
@@ -378,7 +378,7 @@ type AppCallbackContext<Config extends Record<string, unknown>, Events extends R
|
|
|
378
378
|
*
|
|
379
379
|
* @example
|
|
380
380
|
* ```ts
|
|
381
|
-
* const app =
|
|
381
|
+
* const app = createApp({
|
|
382
382
|
* config: { siteName: "My Blog" },
|
|
383
383
|
* pluginConfigs: { router: { basePath: "/blog" } },
|
|
384
384
|
* onReady: ctx => { console.log("App ready:", ctx.config.siteName); },
|
|
@@ -389,7 +389,7 @@ type CreateAppOptions<Config extends Record<string, unknown>, Events extends Rec
|
|
|
389
389
|
plugins?: ExtraPlugins;
|
|
390
390
|
config?: { [K in keyof Config]?: Config[K] };
|
|
391
391
|
pluginConfigs?: { [K in P as ExtractConfig<K> extends Record<string, never> ? never : IsLiteralString<ExtractName<K>> extends true ? ExtractName<K> : never]?: Partial<ExtractConfig<K>> };
|
|
392
|
-
onReady?: (context: AppCallbackContext<Config, Events, P>) => void
|
|
392
|
+
onReady?: (context: AppCallbackContext<Config, Events, P>) => void;
|
|
393
393
|
onError?: (error: Error, context: AppCallbackContext<Config, Events, P>) => void;
|
|
394
394
|
onStart?: (context: AppCallbackContext<Config, Events, P>) => void | Promise<void>;
|
|
395
395
|
onStop?: (context: AppCallbackContext<Config, Events, P>) => void | Promise<void>;
|
|
@@ -699,7 +699,8 @@ type CreatePluginSpec<GlobalConfig extends FrameworkConfig, GlobalEventMap exten
|
|
|
699
699
|
api?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => PluginApi;
|
|
700
700
|
/**
|
|
701
701
|
* Called after all plugins are registered and APIs are built. Runs in forward
|
|
702
|
-
* plugin order,
|
|
702
|
+
* plugin order, synchronously. Use for setup that depends on other plugins.
|
|
703
|
+
* For async initialization, use `onStart` instead.
|
|
703
704
|
*
|
|
704
705
|
* @example
|
|
705
706
|
* ```ts
|
|
@@ -709,7 +710,7 @@ type CreatePluginSpec<GlobalConfig extends FrameworkConfig, GlobalEventMap exten
|
|
|
709
710
|
* }
|
|
710
711
|
* ```
|
|
711
712
|
*/
|
|
712
|
-
onInit?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => void
|
|
713
|
+
onInit?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => void;
|
|
713
714
|
/**
|
|
714
715
|
* Called when the app starts. Runs in forward plugin order, sequentially awaited.
|
|
715
716
|
* Use for runtime startup (open connections, start listeners).
|
|
@@ -801,7 +802,7 @@ interface CreateCoreOptions<Config> {
|
|
|
801
802
|
/** Called after all plugins are initialized. */
|
|
802
803
|
readonly onReady?: (context: {
|
|
803
804
|
config: Readonly<Config>;
|
|
804
|
-
}) => void
|
|
805
|
+
}) => void;
|
|
805
806
|
/** Error handler for hook dispatch and teardown failures. */
|
|
806
807
|
readonly onError?: (error: Error) => void;
|
|
807
808
|
}
|
|
@@ -820,9 +821,9 @@ interface CreateCoreResult<Config extends Record<string, unknown>, Events extend
|
|
|
820
821
|
* Generic over ExtraPlugins to merge consumer plugins into the return type.
|
|
821
822
|
*
|
|
822
823
|
* @param options - Consumer-level config overrides, plugin configs, extra plugins.
|
|
823
|
-
* @returns
|
|
824
|
+
* @returns The frozen, fully typed App object.
|
|
824
825
|
*/
|
|
825
|
-
readonly createApp: <const ExtraPlugins extends readonly AnyPluginInstance[] = readonly []>(options?: CreateAppOptions<Config, Events, Plugins[number] | ExtraPlugins[number], [...ExtraPlugins]>) =>
|
|
826
|
+
readonly createApp: <const ExtraPlugins extends readonly AnyPluginInstance[] = readonly []>(options?: CreateAppOptions<Config, Events, Plugins[number] | ExtraPlugins[number], [...ExtraPlugins]>) => App<Config, Events, Plugins[number] | ExtraPlugins[number]>;
|
|
826
827
|
/** Re-exported createPlugin for consumer convenience. */
|
|
827
828
|
readonly createPlugin: BoundCreatePluginFunction<Config, Events>;
|
|
828
829
|
}
|
package/dist/index.d.mts
CHANGED
|
@@ -221,7 +221,7 @@ type PluginSpec<Config, Events extends Record<string, unknown>, PluginEvents ext
|
|
|
221
221
|
depends?: Deps;
|
|
222
222
|
createState?: (context: MinimalContext<Config, C>) => S;
|
|
223
223
|
api?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => A;
|
|
224
|
-
onInit?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void
|
|
224
|
+
onInit?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void;
|
|
225
225
|
onStart?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => void | Promise<void>;
|
|
226
226
|
onStop?: (context: TeardownContext<Config>) => void | Promise<void>;
|
|
227
227
|
hooks?: (context: PluginContext<Config, Events & PluginEvents & DepsEvents<Deps>, C, S>) => { [K in string & keyof (Events & PluginEvents & DepsEvents<Deps>)]?: (payload: (Events & PluginEvents & DepsEvents<Deps>)[K]) => void | Promise<void> };
|
|
@@ -378,7 +378,7 @@ type AppCallbackContext<Config extends Record<string, unknown>, Events extends R
|
|
|
378
378
|
*
|
|
379
379
|
* @example
|
|
380
380
|
* ```ts
|
|
381
|
-
* const app =
|
|
381
|
+
* const app = createApp({
|
|
382
382
|
* config: { siteName: "My Blog" },
|
|
383
383
|
* pluginConfigs: { router: { basePath: "/blog" } },
|
|
384
384
|
* onReady: ctx => { console.log("App ready:", ctx.config.siteName); },
|
|
@@ -389,7 +389,7 @@ type CreateAppOptions<Config extends Record<string, unknown>, Events extends Rec
|
|
|
389
389
|
plugins?: ExtraPlugins;
|
|
390
390
|
config?: { [K in keyof Config]?: Config[K] };
|
|
391
391
|
pluginConfigs?: { [K in P as ExtractConfig<K> extends Record<string, never> ? never : IsLiteralString<ExtractName<K>> extends true ? ExtractName<K> : never]?: Partial<ExtractConfig<K>> };
|
|
392
|
-
onReady?: (context: AppCallbackContext<Config, Events, P>) => void
|
|
392
|
+
onReady?: (context: AppCallbackContext<Config, Events, P>) => void;
|
|
393
393
|
onError?: (error: Error, context: AppCallbackContext<Config, Events, P>) => void;
|
|
394
394
|
onStart?: (context: AppCallbackContext<Config, Events, P>) => void | Promise<void>;
|
|
395
395
|
onStop?: (context: AppCallbackContext<Config, Events, P>) => void | Promise<void>;
|
|
@@ -699,7 +699,8 @@ type CreatePluginSpec<GlobalConfig extends FrameworkConfig, GlobalEventMap exten
|
|
|
699
699
|
api?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => PluginApi;
|
|
700
700
|
/**
|
|
701
701
|
* Called after all plugins are registered and APIs are built. Runs in forward
|
|
702
|
-
* plugin order,
|
|
702
|
+
* plugin order, synchronously. Use for setup that depends on other plugins.
|
|
703
|
+
* For async initialization, use `onStart` instead.
|
|
703
704
|
*
|
|
704
705
|
* @example
|
|
705
706
|
* ```ts
|
|
@@ -709,7 +710,7 @@ type CreatePluginSpec<GlobalConfig extends FrameworkConfig, GlobalEventMap exten
|
|
|
709
710
|
* }
|
|
710
711
|
* ```
|
|
711
712
|
*/
|
|
712
|
-
onInit?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => void
|
|
713
|
+
onInit?: (context: PluginExecutionContext<GlobalConfig, MergedPluginEvents<GlobalEventMap, PluginEventMap, DependencyPlugins>, PluginConfig, PluginState>) => void;
|
|
713
714
|
/**
|
|
714
715
|
* Called when the app starts. Runs in forward plugin order, sequentially awaited.
|
|
715
716
|
* Use for runtime startup (open connections, start listeners).
|
|
@@ -801,7 +802,7 @@ interface CreateCoreOptions<Config> {
|
|
|
801
802
|
/** Called after all plugins are initialized. */
|
|
802
803
|
readonly onReady?: (context: {
|
|
803
804
|
config: Readonly<Config>;
|
|
804
|
-
}) => void
|
|
805
|
+
}) => void;
|
|
805
806
|
/** Error handler for hook dispatch and teardown failures. */
|
|
806
807
|
readonly onError?: (error: Error) => void;
|
|
807
808
|
}
|
|
@@ -820,9 +821,9 @@ interface CreateCoreResult<Config extends Record<string, unknown>, Events extend
|
|
|
820
821
|
* Generic over ExtraPlugins to merge consumer plugins into the return type.
|
|
821
822
|
*
|
|
822
823
|
* @param options - Consumer-level config overrides, plugin configs, extra plugins.
|
|
823
|
-
* @returns
|
|
824
|
+
* @returns The frozen, fully typed App object.
|
|
824
825
|
*/
|
|
825
|
-
readonly createApp: <const ExtraPlugins extends readonly AnyPluginInstance[] = readonly []>(options?: CreateAppOptions<Config, Events, Plugins[number] | ExtraPlugins[number], [...ExtraPlugins]>) =>
|
|
826
|
+
readonly createApp: <const ExtraPlugins extends readonly AnyPluginInstance[] = readonly []>(options?: CreateAppOptions<Config, Events, Plugins[number] | ExtraPlugins[number], [...ExtraPlugins]>) => App<Config, Events, Plugins[number] | ExtraPlugins[number]>;
|
|
826
827
|
/** Re-exported createPlugin for consumer convenience. */
|
|
827
828
|
readonly createPlugin: BoundCreatePluginFunction<Config, Events>;
|
|
828
829
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -403,13 +403,13 @@ function buildApp(runtime, flatPlugins, buildPluginContext, consumer) {
|
|
|
403
403
|
* API building, lifecycle execution, returns frozen app object.
|
|
404
404
|
*
|
|
405
405
|
* @param parameters - All kernel inputs captured from the factory chain.
|
|
406
|
-
* @returns
|
|
406
|
+
* @returns The frozen app object.
|
|
407
407
|
* @example
|
|
408
408
|
* ```ts
|
|
409
409
|
* const app = await kernel({ id: "my-app", configDefaults: {}, ... });
|
|
410
410
|
* ```
|
|
411
411
|
*/
|
|
412
|
-
|
|
412
|
+
function kernel(parameters) {
|
|
413
413
|
const { id, configDefaults, frameworkPluginConfigs, flatPlugins, configOverrides, consumerPluginConfigs, onReady, onError, consumer } = parameters;
|
|
414
414
|
const pluginNameSet = new Set(flatPlugins.map((plugin) => plugin.name));
|
|
415
415
|
const globalConfig = Object.freeze({
|
|
@@ -433,9 +433,9 @@ async function kernel(parameters) {
|
|
|
433
433
|
const buildPluginContext = createContextFactory(runtime, resolvedConfigs, states);
|
|
434
434
|
registerPluginHooks(flatPlugins, buildPluginContext, registerHook);
|
|
435
435
|
for (const plugin of flatPlugins) if (plugin.spec.api) apis.set(plugin.name, plugin.spec.api(buildPluginContext(plugin)));
|
|
436
|
-
for (const plugin of flatPlugins) if (plugin.spec.onInit)
|
|
437
|
-
if (onReady)
|
|
438
|
-
if (consumer?.onReady)
|
|
436
|
+
for (const plugin of flatPlugins) if (plugin.spec.onInit) plugin.spec.onInit(buildPluginContext(plugin));
|
|
437
|
+
if (onReady) onReady({ config: globalConfig });
|
|
438
|
+
if (consumer?.onReady) consumer.onReady(buildCallbackContext(runtime));
|
|
439
439
|
return buildApp(runtime, flatPlugins, buildPluginContext, consumer);
|
|
440
440
|
}
|
|
441
441
|
|
|
@@ -483,13 +483,13 @@ function createCoreFactory(frameworkId, configDefaults, createPlugin) {
|
|
|
483
483
|
* plugins, then delegates to the kernel for lifecycle execution.
|
|
484
484
|
*
|
|
485
485
|
* @param consumerOptions - Consumer-level config, plugins, and callbacks.
|
|
486
|
-
* @returns
|
|
486
|
+
* @returns The frozen App object.
|
|
487
487
|
* @example
|
|
488
488
|
* ```ts
|
|
489
|
-
* const app =
|
|
489
|
+
* const app = createApp({ config: { siteName: "Blog" } });
|
|
490
490
|
* ```
|
|
491
491
|
*/
|
|
492
|
-
const createApp =
|
|
492
|
+
const createApp = (consumerOptions) => {
|
|
493
493
|
const appOptions = consumerOptions ?? {};
|
|
494
494
|
const allPlugins = [...defaultPlugins, ...appOptions.plugins ?? []];
|
|
495
495
|
validatePlugins(frameworkId, allPlugins);
|
package/package.json
CHANGED
|
@@ -1,26 +1,59 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moku-labs/core",
|
|
3
|
-
"version": "0.1.0-alpha.
|
|
4
|
-
"description": "Micro-kernel plugin framework for LLMs (TypeScript)",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
3
|
+
"version": "0.1.0-alpha.1",
|
|
7
4
|
"author": "Alex Kucherenko",
|
|
8
5
|
"repository": {
|
|
9
6
|
"type": "git",
|
|
10
7
|
"url": "git+https://github.com/moku-labs/core.git"
|
|
11
8
|
},
|
|
9
|
+
"main": "./dist/index.cjs",
|
|
10
|
+
"module": "./dist/index.mjs",
|
|
11
|
+
"devDependencies": {
|
|
12
|
+
"@arethetypeswrong/cli": "0.18.2",
|
|
13
|
+
"@arethetypeswrong/core": "0.18.2",
|
|
14
|
+
"@biomejs/biome": "2.4.2",
|
|
15
|
+
"@types/bun": "1.3.9",
|
|
16
|
+
"@vitest/coverage-istanbul": "4.0.18",
|
|
17
|
+
"eslint": "9",
|
|
18
|
+
"eslint-config-biome": "2.1.3",
|
|
19
|
+
"eslint-plugin-jsdoc": "62.6.0",
|
|
20
|
+
"eslint-plugin-sonarjs": "4.0.0",
|
|
21
|
+
"eslint-plugin-unicorn": "63.0.0",
|
|
22
|
+
"globals": "17.3.0",
|
|
23
|
+
"jiti": "2.6.1",
|
|
24
|
+
"lefthook": "2.1.1",
|
|
25
|
+
"publint": "0.3.17",
|
|
26
|
+
"tsdown": "0.20.3",
|
|
27
|
+
"typescript": "5.9.3",
|
|
28
|
+
"typescript-eslint": "8.56.0",
|
|
29
|
+
"vitest": "4.0.18"
|
|
30
|
+
},
|
|
31
|
+
"exports": {
|
|
32
|
+
".": {
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/index.d.mts",
|
|
35
|
+
"default": "./dist/index.mjs"
|
|
36
|
+
},
|
|
37
|
+
"require": {
|
|
38
|
+
"types": "./dist/index.d.cts",
|
|
39
|
+
"default": "./dist/index.cjs"
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
12
43
|
"bugs": {
|
|
13
44
|
"url": "https://github.com/moku-labs/core/issues"
|
|
14
45
|
},
|
|
15
|
-
"
|
|
16
|
-
"publishConfig": {
|
|
17
|
-
"access": "public",
|
|
18
|
-
"registry": "https://registry.npmjs.org/"
|
|
19
|
-
},
|
|
46
|
+
"description": "Micro-kernel plugin framework for LLMs (TypeScript)",
|
|
20
47
|
"engines": {
|
|
21
48
|
"node": ">=22.0.0",
|
|
22
49
|
"bun": ">=1.3.8"
|
|
23
50
|
},
|
|
51
|
+
"files": [
|
|
52
|
+
"dist",
|
|
53
|
+
"LICENSE",
|
|
54
|
+
"README.md"
|
|
55
|
+
],
|
|
56
|
+
"homepage": "https://github.com/moku-labs/core#readme",
|
|
24
57
|
"keywords": [
|
|
25
58
|
"plugin",
|
|
26
59
|
"framework",
|
|
@@ -30,21 +63,11 @@
|
|
|
30
63
|
"event-bus",
|
|
31
64
|
"type-safe"
|
|
32
65
|
],
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"default": "./dist/index.mjs"
|
|
38
|
-
},
|
|
39
|
-
"require": {
|
|
40
|
-
"types": "./dist/index.d.cts",
|
|
41
|
-
"default": "./dist/index.cjs"
|
|
42
|
-
}
|
|
43
|
-
}
|
|
66
|
+
"license": "MIT",
|
|
67
|
+
"publishConfig": {
|
|
68
|
+
"access": "public",
|
|
69
|
+
"registry": "https://registry.npmjs.org/"
|
|
44
70
|
},
|
|
45
|
-
"main": "./dist/index.cjs",
|
|
46
|
-
"module": "./dist/index.mjs",
|
|
47
|
-
"types": "./dist/index.d.mts",
|
|
48
71
|
"scripts": {
|
|
49
72
|
"build": "tsdown",
|
|
50
73
|
"validate": "publint && attw --pack . --profile node16",
|
|
@@ -57,29 +80,6 @@
|
|
|
57
80
|
"test:sandbox": "vitest run --project sandbox",
|
|
58
81
|
"test:coverage": "vitest run --project unit --project integration --coverage"
|
|
59
82
|
},
|
|
60
|
-
"
|
|
61
|
-
|
|
62
|
-
"LICENSE",
|
|
63
|
-
"README.md"
|
|
64
|
-
],
|
|
65
|
-
"devDependencies": {
|
|
66
|
-
"@arethetypeswrong/cli": "0.18.2",
|
|
67
|
-
"@arethetypeswrong/core": "0.18.2",
|
|
68
|
-
"@biomejs/biome": "2.4.2",
|
|
69
|
-
"@types/bun": "1.3.9",
|
|
70
|
-
"@vitest/coverage-istanbul": "4.0.18",
|
|
71
|
-
"eslint": "9",
|
|
72
|
-
"eslint-config-biome": "2.1.3",
|
|
73
|
-
"eslint-plugin-jsdoc": "62.6.0",
|
|
74
|
-
"eslint-plugin-sonarjs": "4.0.0",
|
|
75
|
-
"eslint-plugin-unicorn": "63.0.0",
|
|
76
|
-
"globals": "17.3.0",
|
|
77
|
-
"jiti": "2.6.1",
|
|
78
|
-
"lefthook": "2.1.1",
|
|
79
|
-
"publint": "0.3.17",
|
|
80
|
-
"tsdown": "0.20.3",
|
|
81
|
-
"typescript": "5.9.3",
|
|
82
|
-
"typescript-eslint": "8.56.0",
|
|
83
|
-
"vitest": "4.0.18"
|
|
84
|
-
}
|
|
83
|
+
"type": "module",
|
|
84
|
+
"types": "./dist/index.d.mts"
|
|
85
85
|
}
|