@pikku/core 0.10.2 → 0.11.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/CHANGELOG.md +19 -0
- package/dist/errors/errors.d.ts +1 -1
- package/dist/errors/errors.js +3 -3
- package/dist/function/function-runner.d.ts +6 -7
- package/dist/function/function-runner.js +35 -16
- package/dist/function/functions.types.d.ts +23 -30
- package/dist/function/functions.types.js +9 -6
- package/dist/handle-error.d.ts +1 -1
- package/dist/handle-error.js +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/middleware/auth-apikey.d.ts +1 -0
- package/dist/middleware/auth-apikey.js +3 -3
- package/dist/middleware/auth-bearer.d.ts +1 -0
- package/dist/middleware/auth-bearer.js +3 -3
- package/dist/middleware/auth-cookie.d.ts +1 -0
- package/dist/middleware/auth-cookie.js +5 -5
- package/dist/middleware/timeout.d.ts +1 -0
- package/dist/middleware/timeout.js +3 -2
- package/dist/middleware-runner.d.ts +3 -6
- package/dist/middleware-runner.js +11 -11
- package/dist/permissions.d.ts +6 -6
- package/dist/permissions.js +15 -15
- package/dist/pikku-state.d.ts +7 -2
- package/dist/pikku-state.js +4 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +1 -0
- package/dist/services/scheduler-service.d.ts +63 -0
- package/dist/services/scheduler-service.js +6 -0
- package/dist/services/user-session-service.d.ts +7 -3
- package/dist/services/user-session-service.js +8 -1
- package/dist/time-utils.d.ts +14 -0
- package/dist/time-utils.js +62 -0
- package/dist/types/core.types.d.ts +48 -35
- package/dist/types/core.types.js +3 -13
- package/dist/utils.d.ts +1 -1
- package/dist/utils.js +3 -3
- package/dist/wirings/channel/channel-common.js +2 -3
- package/dist/wirings/channel/channel-handler.d.ts +3 -2
- package/dist/wirings/channel/channel-handler.js +6 -9
- package/dist/wirings/channel/channel-runner.d.ts +2 -2
- package/dist/wirings/channel/channel.types.d.ts +10 -5
- package/dist/wirings/channel/local/local-channel-runner.d.ts +1 -1
- package/dist/wirings/channel/local/local-channel-runner.js +19 -26
- package/dist/wirings/channel/serverless/serverless-channel-runner.d.ts +1 -1
- package/dist/wirings/channel/serverless/serverless-channel-runner.js +41 -46
- package/dist/wirings/cli/channel/cli-channel-runner.js +1 -1
- package/dist/wirings/cli/cli-runner.d.ts +5 -5
- package/dist/wirings/cli/cli-runner.js +11 -29
- package/dist/wirings/cli/cli.types.d.ts +15 -11
- package/dist/wirings/http/http-runner.d.ts +6 -6
- package/dist/wirings/http/http-runner.js +25 -39
- package/dist/wirings/http/http.types.d.ts +5 -10
- package/dist/wirings/mcp/mcp-runner.d.ts +2 -2
- package/dist/wirings/mcp/mcp-runner.js +12 -19
- package/dist/wirings/mcp/mcp.types.d.ts +6 -0
- package/dist/wirings/queue/queue-runner.d.ts +3 -3
- package/dist/wirings/queue/queue-runner.js +7 -14
- package/dist/wirings/queue/queue.types.d.ts +4 -13
- package/dist/wirings/rpc/index.d.ts +1 -1
- package/dist/wirings/rpc/index.js +1 -1
- package/dist/wirings/rpc/rpc-runner.d.ts +13 -7
- package/dist/wirings/rpc/rpc-runner.js +50 -26
- package/dist/wirings/rpc/rpc-types.d.ts +1 -0
- package/dist/wirings/scheduler/scheduler-runner.d.ts +3 -3
- package/dist/wirings/scheduler/scheduler-runner.js +13 -24
- package/dist/wirings/scheduler/scheduler.types.d.ts +3 -8
- package/dist/wirings/workflow/index.d.ts +15 -0
- package/dist/wirings/workflow/index.js +14 -0
- package/dist/wirings/workflow/pikku-workflow-service.d.ts +160 -0
- package/dist/wirings/workflow/pikku-workflow-service.js +430 -0
- package/dist/wirings/workflow/workflow-runner.d.ts +34 -0
- package/dist/wirings/workflow/workflow-runner.js +65 -0
- package/dist/wirings/workflow/workflow.types.d.ts +332 -0
- package/dist/wirings/workflow/workflow.types.js +1 -0
- package/package.json +3 -4
- package/src/errors/errors.ts +3 -3
- package/src/factory-functions.test.ts +9 -36
- package/src/function/function-runner.test.ts +57 -68
- package/src/function/function-runner.ts +51 -28
- package/src/function/function-runner.ts.bak +188 -0
- package/src/function/functions.types.ts +69 -51
- package/src/handle-error.ts +1 -1
- package/src/index.ts +2 -0
- package/src/middleware/auth-apikey.test.ts +360 -0
- package/src/middleware/auth-apikey.ts +3 -7
- package/src/middleware/auth-bearer.test.ts +447 -0
- package/src/middleware/auth-bearer.ts +27 -33
- package/src/middleware/auth-cookie.test.ts +525 -0
- package/src/middleware/auth-cookie.ts +6 -6
- package/src/middleware/timeout.ts +4 -2
- package/src/middleware-runner.test.ts +58 -127
- package/src/middleware-runner.ts +13 -15
- package/src/permissions.test.ts +41 -45
- package/src/permissions.ts +21 -20
- package/src/pikku-state.ts +14 -2
- package/src/services/index.ts +1 -0
- package/src/services/scheduler-service.ts +76 -0
- package/src/services/user-session-service.ts +14 -4
- package/src/time-utils.ts +75 -0
- package/src/types/core.types.ts +92 -51
- package/src/utils.ts +4 -4
- package/src/wirings/channel/channel-common.ts +4 -7
- package/src/wirings/channel/channel-handler.ts +16 -22
- package/src/wirings/channel/channel-runner.ts +2 -2
- package/src/wirings/channel/channel.types.ts +14 -11
- package/src/wirings/channel/local/local-channel-runner.test.ts +5 -3
- package/src/wirings/channel/local/local-channel-runner.ts +23 -38
- package/src/wirings/channel/serverless/serverless-channel-runner.ts +51 -77
- package/src/wirings/cli/channel/cli-channel-runner.ts +1 -1
- package/src/wirings/cli/cli-runner.test.ts +7 -7
- package/src/wirings/cli/cli-runner.ts +25 -63
- package/src/wirings/cli/cli.types.ts +22 -16
- package/src/wirings/http/http-runner.test.ts +8 -8
- package/src/wirings/http/http-runner.ts +29 -56
- package/src/wirings/http/http.types.ts +5 -14
- package/src/wirings/mcp/mcp-runner.ts +23 -48
- package/src/wirings/mcp/mcp.types.ts +6 -0
- package/src/wirings/queue/queue-runner.test.ts +641 -0
- package/src/wirings/queue/queue-runner.ts +10 -24
- package/src/wirings/queue/queue.types.ts +5 -15
- package/src/wirings/rpc/index.ts +1 -1
- package/src/wirings/rpc/rpc-runner.ts +71 -32
- package/src/wirings/rpc/rpc-types.ts +1 -0
- package/src/wirings/scheduler/scheduler-runner.test.ts +627 -0
- package/src/wirings/scheduler/scheduler-runner.ts +24 -50
- package/src/wirings/scheduler/scheduler.types.ts +3 -9
- package/src/wirings/workflow/index.ts +43 -0
- package/src/wirings/workflow/pikku-workflow-service.ts +746 -0
- package/src/wirings/workflow/workflow-runner.ts +72 -0
- package/src/wirings/workflow/workflow.types.ts +422 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/services/file-channel-store.d.ts +0 -19
- package/dist/services/file-channel-store.js +0 -69
- package/dist/services/file-eventhub-store.d.ts +0 -17
- package/dist/services/file-eventhub-store.js +0 -71
- package/src/services/file-channel-store.ts +0 -86
- package/src/services/file-eventhub-store.ts +0 -90
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
PikkuWiringTypes,
|
|
2
|
+
PikkuWire,
|
|
4
3
|
type CoreServices,
|
|
5
4
|
type CoreSingletonServices,
|
|
6
5
|
type CoreUserSession,
|
|
7
|
-
type
|
|
6
|
+
type CreateWireServices,
|
|
8
7
|
} from '../../types/core.types.js'
|
|
9
8
|
import type { CoreScheduledTask } from './scheduler.types.js'
|
|
10
9
|
import { getErrorResponse, PikkuError } from '../../errors/error-handler.js'
|
|
11
|
-
import {
|
|
10
|
+
import { closeWireServices } from '../../utils.js'
|
|
12
11
|
import { pikkuState } from '../../pikku-state.js'
|
|
13
12
|
import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
|
|
14
|
-
import {
|
|
15
|
-
import { PikkuUserSessionService } from '../../services/user-session-service.js'
|
|
13
|
+
import { PikkuSessionService } from '../../services/user-session-service.js'
|
|
16
14
|
import {
|
|
17
15
|
CorePikkuFunctionConfig,
|
|
18
16
|
CorePikkuFunctionSessionless,
|
|
@@ -22,7 +20,7 @@ export type RunScheduledTasksParams = {
|
|
|
22
20
|
name: string
|
|
23
21
|
session?: CoreUserSession
|
|
24
22
|
singletonServices: CoreSingletonServices
|
|
25
|
-
|
|
23
|
+
createWireServices?: CreateWireServices<
|
|
26
24
|
CoreSingletonServices,
|
|
27
25
|
CoreServices<CoreSingletonServices>,
|
|
28
26
|
CoreUserSession
|
|
@@ -45,9 +43,8 @@ export const wireScheduler = <
|
|
|
45
43
|
func: scheduledTask.func.func,
|
|
46
44
|
auth: scheduledTask.func.auth,
|
|
47
45
|
permissions: scheduledTask.func.permissions,
|
|
48
|
-
middleware: scheduledTask.func.middleware
|
|
46
|
+
middleware: scheduledTask.func.middleware,
|
|
49
47
|
tags: scheduledTask.func.tags,
|
|
50
|
-
docs: scheduledTask.func.docs as any,
|
|
51
48
|
})
|
|
52
49
|
|
|
53
50
|
const tasks = pikkuState('scheduler', 'tasks')
|
|
@@ -76,13 +73,13 @@ export async function runScheduledTask({
|
|
|
76
73
|
name,
|
|
77
74
|
session,
|
|
78
75
|
singletonServices,
|
|
79
|
-
|
|
76
|
+
createWireServices,
|
|
80
77
|
}: RunScheduledTasksParams): Promise<void> {
|
|
81
|
-
let
|
|
78
|
+
let wireServices: any
|
|
82
79
|
const task = pikkuState('scheduler', 'tasks').get(name)
|
|
83
80
|
const meta = pikkuState('scheduler', 'meta')[name]
|
|
84
81
|
|
|
85
|
-
const userSession = new
|
|
82
|
+
const userSession = new PikkuSessionService()
|
|
86
83
|
if (session) {
|
|
87
84
|
userSession.set(session)
|
|
88
85
|
}
|
|
@@ -96,8 +93,8 @@ export async function runScheduledTask({
|
|
|
96
93
|
)
|
|
97
94
|
}
|
|
98
95
|
|
|
99
|
-
// Create the scheduled task
|
|
100
|
-
const
|
|
96
|
+
// Create the scheduled task wire object
|
|
97
|
+
const wire: PikkuWire = {
|
|
101
98
|
scheduledTask: {
|
|
102
99
|
name,
|
|
103
100
|
schedule: task.schedule,
|
|
@@ -106,6 +103,7 @@ export async function runScheduledTask({
|
|
|
106
103
|
throw new ScheduledTaskSkippedError(name, reason)
|
|
107
104
|
},
|
|
108
105
|
},
|
|
106
|
+
session: userSession,
|
|
109
107
|
}
|
|
110
108
|
|
|
111
109
|
try {
|
|
@@ -113,40 +111,16 @@ export async function runScheduledTask({
|
|
|
113
111
|
`Running schedule task: ${name} | schedule: ${task.schedule}`
|
|
114
112
|
)
|
|
115
113
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
...sessionServices,
|
|
127
|
-
},
|
|
128
|
-
interaction
|
|
129
|
-
)
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
const result = await runPikkuFunc(
|
|
133
|
-
PikkuWiringTypes.scheduler,
|
|
134
|
-
meta.name,
|
|
135
|
-
meta.pikkuFuncName,
|
|
136
|
-
{
|
|
137
|
-
singletonServices,
|
|
138
|
-
getAllServices,
|
|
139
|
-
userSession,
|
|
140
|
-
auth: false,
|
|
141
|
-
data: () => undefined,
|
|
142
|
-
inheritedMiddleware: meta.middleware,
|
|
143
|
-
wireMiddleware: task.middleware,
|
|
144
|
-
tags: task.tags,
|
|
145
|
-
interaction,
|
|
146
|
-
}
|
|
147
|
-
)
|
|
148
|
-
|
|
149
|
-
return result
|
|
114
|
+
await runPikkuFunc('scheduler', meta.name, meta.pikkuFuncName, {
|
|
115
|
+
singletonServices,
|
|
116
|
+
createWireServices,
|
|
117
|
+
auth: false,
|
|
118
|
+
data: () => undefined,
|
|
119
|
+
inheritedMiddleware: meta.middleware,
|
|
120
|
+
wireMiddleware: task.middleware,
|
|
121
|
+
tags: task.tags,
|
|
122
|
+
wire,
|
|
123
|
+
})
|
|
150
124
|
} catch (e: any) {
|
|
151
125
|
const errorResponse = getErrorResponse(e)
|
|
152
126
|
if (errorResponse != null) {
|
|
@@ -154,8 +128,8 @@ export async function runScheduledTask({
|
|
|
154
128
|
}
|
|
155
129
|
throw e
|
|
156
130
|
} finally {
|
|
157
|
-
if (
|
|
158
|
-
await
|
|
131
|
+
if (wireServices) {
|
|
132
|
+
await closeWireServices(singletonServices.logger, wireServices)
|
|
159
133
|
}
|
|
160
134
|
}
|
|
161
135
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
|
-
PikkuDocs,
|
|
3
2
|
CoreUserSession,
|
|
4
3
|
CorePikkuMiddleware,
|
|
5
|
-
|
|
4
|
+
CommonWireMeta,
|
|
6
5
|
} from '../../types/core.types.js'
|
|
7
6
|
import {
|
|
8
7
|
CorePikkuFunctionConfig,
|
|
@@ -15,14 +14,10 @@ import {
|
|
|
15
14
|
export type ScheduledTasksMeta<UserSession extends CoreUserSession = any> =
|
|
16
15
|
Record<
|
|
17
16
|
string,
|
|
18
|
-
{
|
|
19
|
-
pikkuFuncName: string
|
|
17
|
+
CommonWireMeta & {
|
|
20
18
|
name: string
|
|
21
19
|
schedule: string
|
|
22
20
|
session?: UserSession
|
|
23
|
-
docs?: PikkuDocs
|
|
24
|
-
tags?: string[]
|
|
25
|
-
middleware?: MiddlewareMetadata[] // Pre-resolved middleware chain (tag + explicit)
|
|
26
21
|
}
|
|
27
22
|
>
|
|
28
23
|
|
|
@@ -38,13 +33,12 @@ export type CoreScheduledTask<
|
|
|
38
33
|
name: string
|
|
39
34
|
schedule: string
|
|
40
35
|
func: PikkuFunctionConfig
|
|
41
|
-
docs?: PikkuDocs
|
|
42
36
|
tags?: string[]
|
|
43
37
|
middleware?: PikkuMiddleware[]
|
|
44
38
|
}
|
|
45
39
|
|
|
46
40
|
/**
|
|
47
|
-
* Represents a scheduled task
|
|
41
|
+
* Represents a scheduled task wire object for middleware
|
|
48
42
|
* Provides information about the current scheduled task execution
|
|
49
43
|
*/
|
|
50
44
|
export interface PikkuScheduledTask {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Workflow module exports
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
// Types
|
|
6
|
+
export type {
|
|
7
|
+
CoreWorkflow,
|
|
8
|
+
WorkflowStepOptions,
|
|
9
|
+
WorkflowStepMeta,
|
|
10
|
+
RpcStepMeta,
|
|
11
|
+
BranchStepMeta,
|
|
12
|
+
ParallelGroupStepMeta,
|
|
13
|
+
FanoutStepMeta,
|
|
14
|
+
ReturnStepMeta,
|
|
15
|
+
InlineStepMeta,
|
|
16
|
+
SleepStepMeta,
|
|
17
|
+
CancelStepMeta,
|
|
18
|
+
InputSource,
|
|
19
|
+
OutputBinding,
|
|
20
|
+
PikkuWorkflowWire,
|
|
21
|
+
PikkuWorkflow,
|
|
22
|
+
WorkflowsMeta,
|
|
23
|
+
WorkflowRun,
|
|
24
|
+
StepState,
|
|
25
|
+
WorkflowStatus,
|
|
26
|
+
StepStatus,
|
|
27
|
+
} from './workflow.types.js'
|
|
28
|
+
|
|
29
|
+
export { PikkuWorkflowService } from './pikku-workflow-service.js'
|
|
30
|
+
|
|
31
|
+
// Internal registration function (used by generated code)
|
|
32
|
+
export { addWorkflow } from './workflow-runner.js'
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* @deprecated This function is no longer used and will be removed in a future release.
|
|
36
|
+
* It exists only for backwards compatibility with generated code.
|
|
37
|
+
* TODO: Remove this export in a future release after updating code generation
|
|
38
|
+
*/
|
|
39
|
+
export const wireWorkflow = <T extends { name: string; func: any }>(
|
|
40
|
+
workflow: T
|
|
41
|
+
): void => {
|
|
42
|
+
// Empty function - no longer used, kept for backwards compatibility
|
|
43
|
+
}
|