@pikku/core 0.7.8 → 0.8.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/CHANGELOG.md +10 -1
- package/dist/errors/error-handler.d.ts +2 -0
- package/dist/errors/errors.js +2 -0
- package/dist/{channel → events/channel}/channel-handler.d.ts +1 -1
- package/dist/{channel → events/channel}/channel-handler.js +2 -2
- package/dist/{channel → events/channel}/channel-runner.d.ts +1 -1
- package/dist/{channel → events/channel}/channel-runner.js +4 -4
- package/dist/{channel → events/channel}/channel-store.d.ts +1 -1
- package/dist/{channel → events/channel}/channel.types.d.ts +3 -3
- package/dist/{channel → events/channel}/local/local-channel-runner.js +6 -6
- package/dist/{channel → events/channel}/log-channels.d.ts +1 -1
- package/dist/{channel → events/channel}/log-channels.js +1 -1
- package/dist/{channel → events/channel}/serverless/serverless-channel-runner.js +7 -7
- package/dist/{http → events/http}/http-runner.d.ts +1 -1
- package/dist/{http → events/http}/http-runner.js +8 -8
- package/dist/{http → events/http}/http.types.d.ts +3 -3
- package/dist/{http → events/http}/index.d.ts +0 -1
- package/dist/{http → events/http}/index.js +0 -1
- package/dist/{http → events/http}/log-http-routes.d.ts +1 -1
- package/dist/{http → events/http}/log-http-routes.js +1 -1
- package/dist/{http → events/http}/pikku-fetch-http-request.js +1 -1
- package/dist/events/mcp/index.d.ts +2 -0
- package/dist/events/mcp/index.js +2 -0
- package/dist/events/mcp/mcp-runner.d.ts +30 -0
- package/dist/events/mcp/mcp-runner.js +192 -0
- package/dist/events/mcp/mcp.types.d.ts +117 -0
- package/dist/events/queue/index.d.ts +6 -0
- package/dist/events/queue/index.js +6 -0
- package/dist/events/queue/queue-runner.d.ts +24 -0
- package/dist/events/queue/queue-runner.js +83 -0
- package/dist/events/queue/queue.types.d.ts +154 -0
- package/dist/events/queue/register-queue-helper.d.ts +17 -0
- package/dist/events/queue/register-queue-helper.js +34 -0
- package/dist/events/queue/validate-worker-config.d.ts +41 -0
- package/dist/events/queue/validate-worker-config.js +50 -0
- package/dist/events/rpc/index.d.ts +2 -0
- package/dist/events/rpc/rpc-runner.d.ts +28 -0
- package/dist/{rpc → events/rpc}/rpc-runner.js +2 -2
- package/dist/events/scheduler/index.d.ts +3 -0
- package/dist/events/scheduler/index.js +3 -0
- package/dist/{scheduler → events/scheduler}/log-schedulers.d.ts +1 -1
- package/dist/{scheduler → events/scheduler}/log-schedulers.js +1 -1
- package/dist/{scheduler → events/scheduler}/scheduler-runner.d.ts +4 -3
- package/dist/{scheduler → events/scheduler}/scheduler-runner.js +7 -4
- package/dist/{scheduler → events/scheduler}/scheduler.types.d.ts +3 -4
- package/dist/function/function-runner.js +8 -0
- package/dist/function/functions.types.d.ts +3 -2
- package/dist/handle-error.d.ts +2 -2
- package/dist/handle-error.js +1 -1
- package/dist/index.d.ts +10 -6
- package/dist/index.js +10 -6
- package/dist/middleware-runner.d.ts +4 -4
- package/dist/middleware-runner.js +3 -1
- package/dist/pikku-state.d.ts +18 -4
- package/dist/pikku-state.js +12 -0
- package/dist/services/user-session-service.d.ts +1 -1
- package/dist/types/core.types.d.ts +17 -5
- package/dist/types/core.types.js +2 -0
- package/lcov.info +3191 -3123
- package/package.json +8 -7
- package/src/errors/error-handler.ts +2 -1
- package/src/errors/errors.ts +2 -0
- package/src/{channel → events/channel}/channel-handler.ts +3 -3
- package/src/{channel → events/channel}/channel-runner.ts +5 -5
- package/src/{channel → events/channel}/channel-store.ts +1 -1
- package/src/{channel → events/channel}/channel.types.ts +3 -3
- package/src/{channel → events/channel}/local/local-channel-runner.test.ts +1 -1
- package/src/{channel → events/channel}/local/local-channel-runner.ts +7 -7
- package/src/{channel → events/channel}/local/local-eventhub-service.test.ts +1 -1
- package/src/{channel → events/channel}/log-channels.ts +2 -2
- package/src/{channel → events/channel}/serverless/serverless-channel-runner.ts +8 -8
- package/src/{http → events/http}/http-runner.test.ts +4 -4
- package/src/{http → events/http}/http-runner.ts +9 -9
- package/src/{http → events/http}/http.types.ts +3 -3
- package/src/{http → events/http}/index.ts +0 -1
- package/src/{http → events/http}/log-http-routes.ts +2 -2
- package/src/{http → events/http}/pikku-fetch-http-request.ts +1 -1
- package/src/events/mcp/index.ts +2 -0
- package/src/events/mcp/mcp-runner.ts +321 -0
- package/src/events/mcp/mcp.types.ts +150 -0
- package/src/events/queue/index.ts +18 -0
- package/src/events/queue/queue-runner.ts +125 -0
- package/src/events/queue/queue.types.ts +176 -0
- package/src/events/queue/register-queue-helper.ts +62 -0
- package/src/events/queue/validate-worker-config.ts +113 -0
- package/src/events/rpc/index.ts +2 -0
- package/src/{rpc → events/rpc}/rpc-runner.ts +3 -3
- package/src/events/scheduler/index.ts +9 -0
- package/src/{scheduler → events/scheduler}/log-schedulers.ts +2 -2
- package/src/{scheduler → events/scheduler}/scheduler-runner.ts +11 -10
- package/src/{scheduler → events/scheduler}/scheduler.types.ts +2 -4
- package/src/function/function-runner.ts +19 -1
- package/src/function/functions.types.ts +3 -1
- package/src/handle-error.ts +2 -2
- package/src/index.ts +23 -6
- package/src/middleware-runner.ts +14 -7
- package/src/pikku-state.ts +40 -4
- package/src/services/user-session-service.ts +1 -1
- package/src/types/core.types.ts +24 -4
- package/tsconfig.json +3 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/rpc/index.d.ts +0 -2
- package/dist/rpc/rpc-runner.d.ts +0 -27
- package/dist/scheduler/index.d.ts +0 -3
- package/dist/scheduler/index.js +0 -3
- package/src/http/incomingmessage-to-request-convertor.ts +0 -0
- package/src/rpc/index.ts +0 -2
- package/src/scheduler/index.ts +0 -5
- /package/dist/{channel → events/channel}/channel-store.js +0 -0
- /package/dist/{channel → events/channel}/channel.types.js +0 -0
- /package/dist/{channel → events/channel}/eventhub-service.d.ts +0 -0
- /package/dist/{channel → events/channel}/eventhub-service.js +0 -0
- /package/dist/{channel → events/channel}/eventhub-store.d.ts +0 -0
- /package/dist/{channel → events/channel}/eventhub-store.js +0 -0
- /package/dist/{channel → events/channel}/index.d.ts +0 -0
- /package/dist/{channel → events/channel}/index.js +0 -0
- /package/dist/{channel → events/channel}/local/index.d.ts +0 -0
- /package/dist/{channel → events/channel}/local/index.js +0 -0
- /package/dist/{channel → events/channel}/local/local-channel-handler.d.ts +0 -0
- /package/dist/{channel → events/channel}/local/local-channel-handler.js +0 -0
- /package/dist/{channel → events/channel}/local/local-channel-runner.d.ts +0 -0
- /package/dist/{channel → events/channel}/local/local-eventhub-service.d.ts +0 -0
- /package/dist/{channel → events/channel}/local/local-eventhub-service.js +0 -0
- /package/dist/{channel → events/channel}/pikku-abstract-channel-handler.d.ts +0 -0
- /package/dist/{channel → events/channel}/pikku-abstract-channel-handler.js +0 -0
- /package/dist/{channel → events/channel}/serverless/index.d.ts +0 -0
- /package/dist/{channel → events/channel}/serverless/index.js +0 -0
- /package/dist/{channel → events/channel}/serverless/serverless-channel-runner.d.ts +0 -0
- /package/dist/{http → events/http}/http.types.js +0 -0
- /package/dist/{http → events/http}/pikku-fetch-http-request.d.ts +0 -0
- /package/dist/{http → events/http}/pikku-fetch-http-response.d.ts +0 -0
- /package/dist/{http → events/http}/pikku-fetch-http-response.js +0 -0
- /package/dist/{http/incomingmessage-to-request-convertor.d.ts → events/mcp/mcp.types.js} +0 -0
- /package/dist/{http/incomingmessage-to-request-convertor.js → events/queue/queue.types.js} +0 -0
- /package/dist/{rpc → events/rpc}/index.js +0 -0
- /package/dist/{rpc → events/rpc}/rpc-types.d.ts +0 -0
- /package/dist/{rpc → events/rpc}/rpc-types.js +0 -0
- /package/dist/{scheduler → events/scheduler}/scheduler.types.js +0 -0
- /package/src/{channel → events/channel}/eventhub-service.ts +0 -0
- /package/src/{channel → events/channel}/eventhub-store.ts +0 -0
- /package/src/{channel → events/channel}/index.ts +0 -0
- /package/src/{channel → events/channel}/local/index.ts +0 -0
- /package/src/{channel → events/channel}/local/local-channel-handler.ts +0 -0
- /package/src/{channel → events/channel}/local/local-eventhub-service.ts +0 -0
- /package/src/{channel → events/channel}/pikku-abstract-channel-handler.test.ts +0 -0
- /package/src/{channel → events/channel}/pikku-abstract-channel-handler.ts +0 -0
- /package/src/{channel → events/channel}/serverless/index.ts +0 -0
- /package/src/{http → events/http}/pikku-fetch-http-request.test.ts +0 -0
- /package/src/{http → events/http}/pikku-fetch-http-response.test.ts +0 -0
- /package/src/{http → events/http}/pikku-fetch-http-response.ts +0 -0
- /package/src/{rpc → events/rpc}/rpc-types.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { UserSessionService } from './services/user-session-service.js';
|
|
2
|
-
import { CoreSingletonServices, PikkuInteraction, PikkuMiddleware } from './types/core.types.js';
|
|
2
|
+
import { CoreSingletonServices, PikkuFunctionMiddleware, PikkuInteraction, PikkuMiddleware } from './types/core.types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Runs a chain of middleware functions in sequence before executing the main function.
|
|
5
5
|
*
|
|
@@ -17,6 +17,6 @@ import { CoreSingletonServices, PikkuInteraction, PikkuMiddleware } from './type
|
|
|
17
17
|
* async () => { return await runMain(); }
|
|
18
18
|
* );
|
|
19
19
|
*/
|
|
20
|
-
export declare const runMiddleware: (services: CoreSingletonServices & {
|
|
21
|
-
userSession
|
|
22
|
-
}, interaction: PikkuInteraction, middlewares:
|
|
20
|
+
export declare const runMiddleware: <Middleware extends PikkuMiddleware | PikkuFunctionMiddleware = PikkuMiddleware>(services: CoreSingletonServices & {
|
|
21
|
+
userSession?: UserSessionService<any>;
|
|
22
|
+
}, interaction: PikkuInteraction, middlewares: Middleware[], main?: () => Promise<unknown>) => Promise<unknown>;
|
|
@@ -16,13 +16,15 @@
|
|
|
16
16
|
* );
|
|
17
17
|
*/
|
|
18
18
|
export const runMiddleware = async (services, interaction, middlewares, main) => {
|
|
19
|
+
let result;
|
|
19
20
|
const dispatch = async (index) => {
|
|
20
21
|
if (middlewares && index < middlewares.length) {
|
|
21
22
|
return await middlewares[index](services, interaction, () => dispatch(index + 1));
|
|
22
23
|
}
|
|
23
24
|
else if (main) {
|
|
24
|
-
await main();
|
|
25
|
+
result = await main();
|
|
25
26
|
}
|
|
26
27
|
};
|
|
27
28
|
await dispatch(0);
|
|
29
|
+
return result;
|
|
28
30
|
};
|
package/dist/pikku-state.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import { ChannelsMeta, CoreAPIChannel } from './channel/channel.types.js';
|
|
2
|
-
import { CoreHTTPFunctionRoute, HTTPMethod, HTTPRoutesMeta } from './http/http.types.js';
|
|
1
|
+
import { ChannelsMeta, CoreAPIChannel } from './events/channel/channel.types.js';
|
|
2
|
+
import { CoreHTTPFunctionRoute, HTTPMethod, HTTPRoutesMeta } from './events/http/http.types.js';
|
|
3
3
|
import { FunctionsMeta, PikkuMiddleware } from './types/core.types.js';
|
|
4
|
-
import { CoreScheduledTask, ScheduledTasksMeta } from './scheduler/scheduler.types.js';
|
|
4
|
+
import { CoreScheduledTask, ScheduledTasksMeta } from './events/scheduler/scheduler.types.js';
|
|
5
5
|
import { ErrorDetails, PikkuError } from './errors/error-handler.js';
|
|
6
6
|
import { CorePikkuFunctionConfig } from './function/functions.types.js';
|
|
7
|
-
import { RPCMeta } from './rpc/rpc-types.js';
|
|
7
|
+
import { RPCMeta } from './events/rpc/rpc-types.js';
|
|
8
|
+
import { queueWorkersMeta, CoreQueueWorker } from './events/queue/queue.types.js';
|
|
9
|
+
import { CoreMCPResource, CoreMCPTool, CoreMCPPrompt, MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from './events/mcp/mcp.types.js';
|
|
8
10
|
interface PikkuState {
|
|
9
11
|
function: {
|
|
10
12
|
meta: FunctionsMeta;
|
|
@@ -33,6 +35,18 @@ interface PikkuState {
|
|
|
33
35
|
tasks: Map<string, CoreScheduledTask>;
|
|
34
36
|
meta: ScheduledTasksMeta;
|
|
35
37
|
};
|
|
38
|
+
queue: {
|
|
39
|
+
registrations: Map<string, CoreQueueWorker>;
|
|
40
|
+
meta: queueWorkersMeta;
|
|
41
|
+
};
|
|
42
|
+
mcp: {
|
|
43
|
+
resources: Map<string, CoreMCPResource>;
|
|
44
|
+
resourcesMeta: MCPResourceMeta;
|
|
45
|
+
tools: Map<string, CoreMCPTool>;
|
|
46
|
+
toolsMeta: MCPToolMeta;
|
|
47
|
+
prompts: Map<string, CoreMCPPrompt>;
|
|
48
|
+
promptsMeta: MCPPromptMeta;
|
|
49
|
+
};
|
|
36
50
|
misc: {
|
|
37
51
|
errors: Map<PikkuError, ErrorDetails>;
|
|
38
52
|
schemas: Map<string, any>;
|
package/dist/pikku-state.js
CHANGED
|
@@ -21,6 +21,18 @@ export const resetPikkuState = () => {
|
|
|
21
21
|
tasks: new Map(),
|
|
22
22
|
meta: [],
|
|
23
23
|
},
|
|
24
|
+
queue: {
|
|
25
|
+
registrations: new Map(),
|
|
26
|
+
meta: {},
|
|
27
|
+
},
|
|
28
|
+
mcp: {
|
|
29
|
+
resources: new Map(),
|
|
30
|
+
resourcesMeta: {},
|
|
31
|
+
tools: new Map(),
|
|
32
|
+
toolsMeta: {},
|
|
33
|
+
prompts: new Map(),
|
|
34
|
+
promptsMeta: {},
|
|
35
|
+
},
|
|
24
36
|
misc: {
|
|
25
37
|
errors: globalThis.pikkuState?.misc?.errors || new Map(),
|
|
26
38
|
schemas: globalThis.pikkuState?.misc?.schema || new Map(),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ChannelStore } from '../channel/channel-store.js';
|
|
1
|
+
import { ChannelStore } from '../events/channel/channel-store.js';
|
|
2
2
|
import { CoreUserSession } from '../types/core.types.js';
|
|
3
3
|
export interface UserSessionService<UserSession extends CoreUserSession> {
|
|
4
4
|
sessionChanged: boolean;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { Logger, LogLevel } from '../services/logger.js';
|
|
2
2
|
import { VariablesService } from '../services/variables-service.js';
|
|
3
|
-
import { EventHubService } from '../channel/eventhub-service.js';
|
|
3
|
+
import { EventHubService } from '../events/channel/eventhub-service.js';
|
|
4
4
|
import { SchemaService } from '../services/schema-service.js';
|
|
5
|
-
import { PikkuHTTP } from '../http/http.types.js';
|
|
5
|
+
import { PikkuHTTP } from '../events/http/http.types.js';
|
|
6
6
|
import { UserSessionService } from '../services/user-session-service.js';
|
|
7
7
|
import { JWTService } from '../services/jwt-service.js';
|
|
8
8
|
import { SecretService } from '../services/secret-service.js';
|
|
9
|
-
import { PikkuChannel } from '../channel/channel.types.js';
|
|
10
|
-
import { PikkuRPC } from '../rpc/rpc-types.js';
|
|
9
|
+
import { PikkuChannel } from '../events/channel/channel.types.js';
|
|
10
|
+
import { PikkuRPC } from '../events/rpc/rpc-types.js';
|
|
11
|
+
import { PikkuMCP } from '../events/mcp/mcp.types.js';
|
|
11
12
|
export declare enum PikkuEventTypes {
|
|
12
13
|
http = "http",
|
|
13
14
|
scheduled = "scheduled",
|
|
14
15
|
channel = "channel",
|
|
15
|
-
rpc = "rpc"
|
|
16
|
+
rpc = "rpc",
|
|
17
|
+
queue = "queue",
|
|
18
|
+
mcp = "mcp"
|
|
16
19
|
}
|
|
17
20
|
export interface FunctionServicesMeta {
|
|
18
21
|
optimized: boolean;
|
|
@@ -89,7 +92,15 @@ export interface CoreSingletonServices<Config extends CoreConfig = CoreConfig> {
|
|
|
89
92
|
*/
|
|
90
93
|
export interface PikkuInteraction {
|
|
91
94
|
http?: PikkuHTTP;
|
|
95
|
+
mcp?: PikkuMCP;
|
|
96
|
+
rpc?: PikkuRPC;
|
|
92
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* A function that can wrap an interaction and be called before or after
|
|
100
|
+
*/
|
|
101
|
+
export type PikkuFunctionMiddleware<SingletonServices extends CoreSingletonServices = CoreSingletonServices, UserSession extends CoreUserSession = CoreUserSession> = (services: SingletonServices & {
|
|
102
|
+
userSession?: UserSessionService<UserSession>;
|
|
103
|
+
}, interactions: PikkuInteraction, next: () => Promise<void>) => Promise<void>;
|
|
93
104
|
/**
|
|
94
105
|
* A function that can wrap an interaction and be called before or after
|
|
95
106
|
*/
|
|
@@ -100,6 +111,7 @@ export type PikkuMiddleware<SingletonServices extends CoreSingletonServices = Co
|
|
|
100
111
|
* Represents the core services used by Pikku, including singleton services and the request/response interaction.
|
|
101
112
|
*/
|
|
102
113
|
export type CoreServices<SingletonServices = CoreSingletonServices, UserSession extends CoreUserSession = CoreUserSession, CoreServices extends Record<string, unknown> = {}> = SingletonServices & PikkuInteraction & {
|
|
114
|
+
mcp?: PikkuMCP;
|
|
103
115
|
rpc?: PikkuRPC;
|
|
104
116
|
userSession?: UserSessionService<UserSession>;
|
|
105
117
|
channel?: PikkuChannel<unknown, unknown>;
|
package/dist/types/core.types.js
CHANGED