@pikku/cli 0.11.1 → 0.11.2
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/.pikku/channel/pikku-channel-types.gen.ts +11 -12
- package/.pikku/channel/pikku-channels-map.gen.d.ts +8 -8
- package/.pikku/channel/pikku-channels-meta.gen.ts +1 -1
- package/.pikku/channel/pikku-channels.gen.ts +1 -1
- package/.pikku/cli/pikku-cli-channel.ts +2 -2
- package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
- package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
- package/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
- package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
- package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
- package/.pikku/cli/pikku-cli.gen.ts +3 -3
- package/.pikku/function/pikku-function-types.gen.ts +49 -63
- package/.pikku/function/pikku-functions-meta.gen.json +988 -0
- package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
- package/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
- package/.pikku/function/pikku-functions-meta.min.gen.ts +4 -209
- package/.pikku/http/pikku-http-types.gen.ts +2 -2
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +8 -8
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +1 -1
- package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
- package/.pikku/mcp/pikku-mcp-types.gen.ts +13 -13
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
- package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
- package/.pikku/pikku-bootstrap.gen.ts +1 -4
- package/.pikku/pikku-services.gen.ts +4 -6
- package/.pikku/pikku-types.gen.ts +1 -1
- package/.pikku/pikku-websocket.gen.ts +1 -1
- package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
- package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +8 -8
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
- package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
- package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +2 -2
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +8 -8
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +34 -33
- package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
- package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
- package/.pikku/schemas/register.gen.ts +25 -25
- package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/.pikku/services/config.gen.json +99 -0
- package/.pikku/services/getInspectorState.gen.json +10 -0
- package/.pikku/services/jwt.gen.json +13 -0
- package/.pikku/services/logger.gen.json +25 -0
- package/.pikku/services/queueService.gen.json +14 -0
- package/.pikku/services/schedulerService.gen.json +17 -0
- package/.pikku/services/schema.gen.json +14 -0
- package/.pikku/services/variables.gen.json +13 -0
- package/.pikku/services/workflowService.gen.json +31 -0
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +8 -8
- package/.pikku/workflow/pikku-workflow-types.gen.ts +36 -31
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +5 -2
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +6 -2
- package/CHANGELOG.md +21 -0
- package/bin/pikku.ts +6 -32
- package/build.sh +53 -31
- package/cli.schema.json +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +6 -7
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
- package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +29 -79
- package/dist/.pikku/function/pikku-function-types.gen.js +19 -15
- package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
- package/dist/.pikku/function/pikku-functions-meta.gen.json +988 -0
- package/dist/.pikku/function/pikku-functions-meta.min.gen.js +3 -208
- package/dist/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -2
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +13 -13
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -4
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -4
- package/dist/.pikku/pikku-services.gen.d.ts +3 -6
- package/dist/.pikku/pikku-services.gen.js +2 -5
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -1
- package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
- package/dist/.pikku/pikku-websocket.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +6 -9
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +15 -15
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +29 -25
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +22 -8
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +6 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +6 -3
- package/dist/bin/pikku.js +5 -26
- package/dist/src/cli.wiring.js +4 -4
- package/dist/src/functions/commands/all.js +82 -42
- package/dist/src/functions/commands/bootstrap.js +22 -10
- package/dist/src/functions/commands/watch.js +6 -3
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -7
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +42 -4
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +40 -2
- package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +10 -11
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.js +9 -3
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
- package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +15 -5
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +23 -23
- package/dist/src/functions/wirings/functions/schemas.js +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +50 -64
- package/dist/src/functions/wirings/http/openapi-spec-generator.js +4 -4
- package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
- package/dist/src/functions/wirings/http/serialize-http-types.js +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +18 -4
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +12 -12
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +26 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
- package/dist/src/functions/wirings/queue/pikku-command-queue.js +9 -3
- package/dist/src/functions/wirings/queue/pikku-queue.js +9 -3
- package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
- package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
- package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +1 -1
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +6 -3
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +3 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +12 -8
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +2 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +11 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +36 -31
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +8 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +30 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +2 -2
- package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
- package/dist/src/middleware/log-command-info-and-time.js +1 -4
- package/dist/src/services/cli-logger-forwarder.service.js +1 -1
- package/dist/src/services.d.ts +2 -7
- package/dist/src/services.js +14 -12
- package/dist/src/utils/check-required-types.d.ts +2 -2
- package/dist/src/utils/check-required-types.js +2 -3
- package/dist/src/utils/pikku-cli-config.js +35 -2
- package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
- package/dist/src/utils/pikku-files-and-methods.js +4 -4
- package/dist/src/utils/schema-generator.d.ts +1 -1
- package/dist/src/utils/schema-generator.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -8
- package/src/cli.wiring.ts +4 -4
- package/src/functions/commands/all.ts +94 -45
- package/src/functions/commands/bootstrap.ts +25 -10
- package/src/functions/commands/watch.ts +6 -3
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -5
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +43 -4
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +40 -1
- package/src/functions/wirings/channels/pikku-channels.ts +27 -3
- package/src/functions/wirings/channels/serialize-channel-types.ts +10 -11
- package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
- package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
- package/src/functions/wirings/cli/pikku-command-cli.ts +26 -3
- package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
- package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
- package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
- package/src/functions/wirings/functions/pikku-command-function-types-split.ts +6 -6
- package/src/functions/wirings/functions/pikku-command-functions.ts +39 -4
- package/src/functions/wirings/functions/pikku-command-services.ts +25 -25
- package/src/functions/wirings/functions/schemas.ts +2 -2
- package/src/functions/wirings/functions/serialize-function-types.ts +51 -65
- package/src/functions/wirings/http/openapi-spec-generator.ts +14 -5
- package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
- package/src/functions/wirings/http/serialize-http-types.ts +1 -1
- package/src/functions/wirings/mcp/pikku-command-mcp.ts +30 -4
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +12 -12
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +35 -2
- package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
- package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
- package/src/functions/wirings/queue/pikku-command-queue.ts +27 -2
- package/src/functions/wirings/queue/pikku-queue.ts +27 -2
- package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
- package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
- package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
- package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
- package/src/functions/wirings/rpc/serialize-remote-rpc.ts +1 -1
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +30 -4
- package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
- package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
- package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
- package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +8 -1
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +36 -8
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +18 -1
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +39 -31
- package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +47 -0
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +2 -2
- package/src/middleware/log-command-info-and-time.ts +3 -6
- package/src/services/cli-logger-forwarder.service.ts +1 -1
- package/src/services.ts +15 -15
- package/src/utils/check-required-types.ts +4 -7
- package/src/utils/pikku-cli-config.ts +69 -2
- package/src/utils/pikku-files-and-methods.ts +10 -13
- package/src/utils/schema-generator.ts +2 -2
- package/types/application-types.d.ts +1 -1
- package/types/config.d.ts +12 -1
- package/.pikku/function/pikku-functions.gen.ts +0 -84
- package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
- package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
- package/dist/.pikku/function/pikku-functions.gen.js +0 -83
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
- package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
|
@@ -1,30 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generates type definitions for workflow wirings
|
|
3
3
|
*/
|
|
4
|
-
export const serializeWorkflowTypes = (functionTypesImportPath) => {
|
|
4
|
+
export const serializeWorkflowTypes = (functionTypesImportPath, rpcMapImportPath) => {
|
|
5
5
|
return `/**
|
|
6
6
|
* Workflow-specific type definitions for tree-shaking optimization
|
|
7
7
|
*/
|
|
8
8
|
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import type {
|
|
12
|
-
import type { UserSession, SingletonServices } from '../../types/application-types.d.js'
|
|
13
|
-
import type { TypedPikkuRPC, RPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js'
|
|
9
|
+
import { PikkuWorkflowWire, WorkflowStepOptions } from '@pikku/core/workflow'
|
|
10
|
+
import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '${functionTypesImportPath}'
|
|
11
|
+
import type { RPCMap } from '${rpcMapImportPath}'
|
|
14
12
|
|
|
15
13
|
/**
|
|
16
|
-
*
|
|
17
|
-
* Workflows support both inline and remote execution modes with step caching.
|
|
18
|
-
*/
|
|
19
|
-
type WorkflowWiring = CoreWorkflow<
|
|
20
|
-
CorePikkuFunctionConfig<PikkuFunctionWorkflow<any, any>, PikkuPermission<any>, PikkuMiddleware>
|
|
21
|
-
>
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Typed workflow interaction with RPC awareness
|
|
14
|
+
* Typed workflow wire with RPC awareness
|
|
25
15
|
* Provides type-safe workflow.do() for RPC steps
|
|
26
16
|
*/
|
|
27
|
-
export interface TypedWorkflow extends
|
|
17
|
+
export interface TypedWorkflow extends PikkuWorkflowWire {
|
|
28
18
|
/**
|
|
29
19
|
* Execute a workflow step with RPC invocation (typed based on available RPCs)
|
|
30
20
|
* @template K - RPC name from the RPC map
|
|
@@ -49,25 +39,23 @@ export interface TypedWorkflow extends PikkuWorkflowInteraction {
|
|
|
49
39
|
|
|
50
40
|
/**
|
|
51
41
|
* Workflow function type with typed workflow service
|
|
52
|
-
* Includes the workflow
|
|
42
|
+
* Includes the workflow wire object with typed RPC methods
|
|
53
43
|
*/
|
|
54
44
|
export type PikkuFunctionWorkflow<
|
|
55
45
|
In = unknown,
|
|
56
46
|
Out = never
|
|
57
|
-
> =
|
|
47
|
+
> = PikkuFunctionSessionless<
|
|
58
48
|
In,
|
|
59
49
|
Out,
|
|
60
|
-
|
|
61
|
-
SingletonServices & {
|
|
62
|
-
rpc: TypedPikkuRPC
|
|
63
|
-
workflow: TypedWorkflow
|
|
64
|
-
},
|
|
65
|
-
UserSession
|
|
50
|
+
'workflow'
|
|
66
51
|
>
|
|
67
52
|
|
|
68
53
|
/**
|
|
69
54
|
* Creates a workflow function with typed input and output.
|
|
70
|
-
* Workflow functions have access to the workflow
|
|
55
|
+
* Workflow functions have access to the workflow wire object for step execution.
|
|
56
|
+
*
|
|
57
|
+
* This is the permissive mode - workflows that don't conform to simple DSL will fall back
|
|
58
|
+
* to basic extraction with a warning.
|
|
71
59
|
*
|
|
72
60
|
* @template In - Input type for the workflow
|
|
73
61
|
* @template Out - Output type for the workflow
|
|
@@ -77,19 +65,36 @@ export type PikkuFunctionWorkflow<
|
|
|
77
65
|
export const pikkuWorkflowFunc = <In, Out = unknown>(
|
|
78
66
|
func:
|
|
79
67
|
| PikkuFunctionWorkflow<In, Out>
|
|
80
|
-
|
|
|
68
|
+
| PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
|
|
81
69
|
) => {
|
|
82
70
|
return typeof func === 'function' ? { func } : func
|
|
83
71
|
}
|
|
84
72
|
|
|
85
73
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
74
|
+
* Creates a simple workflow function with typed input and output.
|
|
75
|
+
* Simple workflows must conform to the restricted DSL for static analysis.
|
|
76
|
+
*
|
|
77
|
+
* This is the strict mode - workflows that don't conform to simple DSL will cause
|
|
78
|
+
* a critical error during inspection.
|
|
88
79
|
*
|
|
89
|
-
*
|
|
80
|
+
* Constraints:
|
|
81
|
+
* - Must use only workflow.do() with RPC form (no inline functions)
|
|
82
|
+
* - Only if/else, for..of, and Promise.all(array.map()) control flow allowed
|
|
83
|
+
* - Step names must be unique (except across mutually exclusive branches)
|
|
84
|
+
* - All workflow calls must be awaited
|
|
85
|
+
*
|
|
86
|
+
* @template In - Input type for the workflow
|
|
87
|
+
* @template Out - Output type for the workflow
|
|
88
|
+
* @param func - Function definition, either direct function or configuration object
|
|
89
|
+
* @returns The normalized configuration object
|
|
90
90
|
*/
|
|
91
|
-
export const
|
|
92
|
-
|
|
91
|
+
export const pikkuSimpleWorkflowFunc = <In, Out = unknown>(
|
|
92
|
+
func:
|
|
93
|
+
| PikkuFunctionWorkflow<In, Out>
|
|
94
|
+
| PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
|
|
95
|
+
) => {
|
|
96
|
+
return typeof func === 'function' ? { func } : func
|
|
93
97
|
}
|
|
98
|
+
|
|
94
99
|
`;
|
|
95
100
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generate workflow registration wirings
|
|
3
|
+
* Imports all workflow functions and calls addWorkflow for each
|
|
4
|
+
*/
|
|
5
|
+
export declare const serializeWorkflowWirings: (outputPath: string, workflowFiles: Map<string, {
|
|
6
|
+
path: string;
|
|
7
|
+
exportedName: string;
|
|
8
|
+
}>, packageMappings?: Record<string, string>) => string;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
2
|
+
/**
|
|
3
|
+
* Generate workflow registration wirings
|
|
4
|
+
* Imports all workflow functions and calls addWorkflow for each
|
|
5
|
+
*/
|
|
6
|
+
export const serializeWorkflowWirings = (outputPath, workflowFiles, packageMappings = {}) => {
|
|
7
|
+
const imports = [];
|
|
8
|
+
const registrations = [];
|
|
9
|
+
// Sort by pikkuFuncName for consistent output
|
|
10
|
+
const sortedWorkflows = Array.from(workflowFiles.entries()).sort((a, b) => a[0].localeCompare(b[0]));
|
|
11
|
+
// Generate imports
|
|
12
|
+
for (const [, { path, exportedName }] of sortedWorkflows) {
|
|
13
|
+
const importPath = getFileImportRelativePath(outputPath, path, packageMappings);
|
|
14
|
+
imports.push(`import { ${exportedName} } from '${importPath}'`);
|
|
15
|
+
}
|
|
16
|
+
// Generate addWorkflow calls
|
|
17
|
+
for (const [pikkuFuncName, { exportedName }] of sortedWorkflows) {
|
|
18
|
+
registrations.push(`addWorkflow('${pikkuFuncName}', ${exportedName})`);
|
|
19
|
+
}
|
|
20
|
+
// Only import addWorkflow if there are workflows to register
|
|
21
|
+
const addWorkflowImport = sortedWorkflows.length > 0
|
|
22
|
+
? `import { addWorkflow } from '@pikku/core/workflow'\n\n`
|
|
23
|
+
: '';
|
|
24
|
+
return `/**
|
|
25
|
+
* Auto-generated workflow registrations
|
|
26
|
+
* Do not edit manually - regenerate with 'npx pikku'
|
|
27
|
+
*/
|
|
28
|
+
${addWorkflowImport}${imports.join('\n')}${imports.length > 0 ? '\n\n' : ''}${registrations.join('\n')}
|
|
29
|
+
`;
|
|
30
|
+
};
|
|
@@ -22,7 +22,7 @@ export const pikkuWorkflowWorker = pikkuSessionlessFunc<
|
|
|
22
22
|
WorkflowStepInput,
|
|
23
23
|
void
|
|
24
24
|
>({
|
|
25
|
-
func: async ({ workflowService
|
|
25
|
+
func: async ({ workflowService }, { runId, stepName, rpcName, data }, { rpc }) => {
|
|
26
26
|
await workflowService!.executeWorkflowStep(runId, stepName, rpcName, data, rpc)
|
|
27
27
|
}
|
|
28
28
|
})
|
|
@@ -31,7 +31,7 @@ export const pikkuWorkflowOrchestrator = pikkuSessionlessFunc<
|
|
|
31
31
|
{ runId: string },
|
|
32
32
|
void
|
|
33
33
|
>({
|
|
34
|
-
func: async ({ workflowService,
|
|
34
|
+
func: async ({ workflowService }, { runId }, { rpc }) => {
|
|
35
35
|
await workflowService!.orchestrateWorkflow(runId, rpc)
|
|
36
36
|
}
|
|
37
37
|
})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Services } from '../../types/application-types.js';
|
|
2
|
-
import type {
|
|
3
|
-
type PikkuMiddleware = (services: Services,
|
|
2
|
+
import type { PikkuWire } from '@pikku/core';
|
|
3
|
+
type PikkuMiddleware = (services: Services, wire: PikkuWire, next: () => Promise<void>) => Promise<void>;
|
|
4
4
|
export interface LogCommandInfoOptions {
|
|
5
5
|
commandStart: string;
|
|
6
6
|
commandEnd: string;
|
|
@@ -3,13 +3,10 @@
|
|
|
3
3
|
* Uses debug level so it only shows with --verbose flag
|
|
4
4
|
*/
|
|
5
5
|
export const logCommandInfoAndTime = ({ commandStart, commandEnd, }) => {
|
|
6
|
-
return async ({ logger },
|
|
7
|
-
// Log start (debug level - only shows with --verbose)
|
|
6
|
+
return async ({ logger }, _wire, next) => {
|
|
8
7
|
const start = Date.now();
|
|
9
8
|
logger.debug(`• ${commandStart}...`);
|
|
10
|
-
// Execute the function
|
|
11
9
|
await next();
|
|
12
|
-
// Log completion (debug level - only shows with --verbose)
|
|
13
10
|
logger.debug({
|
|
14
11
|
type: 'success',
|
|
15
12
|
message: `✓ ${commandEnd} in ${Date.now() - start}ms.`,
|
|
@@ -26,7 +26,7 @@ export class CLILoggerForwarder {
|
|
|
26
26
|
return;
|
|
27
27
|
let message;
|
|
28
28
|
if (messageOrObj instanceof Error) {
|
|
29
|
-
this.logger.error(messageOrObj);
|
|
29
|
+
this.logger.error(messageOrObj.toString());
|
|
30
30
|
message = messageOrObj.message;
|
|
31
31
|
}
|
|
32
32
|
else if (typeof messageOrObj === 'object') {
|
package/dist/src/services.d.ts
CHANGED
|
@@ -1,20 +1,15 @@
|
|
|
1
1
|
import type { Config, Services, SingletonServices, UserSession } from '../types/application-types.js';
|
|
2
|
-
import { CreateConfig,
|
|
2
|
+
import { CreateConfig, CreateWireServices, CreateSingletonServices } from '@pikku/core';
|
|
3
3
|
import { PikkuCLIConfig } from '../types/config.js';
|
|
4
4
|
import { ForwardedLogMessage } from './services/cli-logger-forwarder.service.js';
|
|
5
5
|
/**
|
|
6
6
|
* Default CLI renderer that logs output using the logger
|
|
7
7
|
*/
|
|
8
8
|
export declare const defaultCLIRenderer: import("@pikku/core").CorePikkuCLIRender<ForwardedLogMessage, SingletonServices, import("@pikku/core").CoreUserSession>;
|
|
9
|
-
/**
|
|
10
|
-
* Client-safe CLI renderer that outputs to console (no service dependencies)
|
|
11
|
-
* This renderer can be used in CLI-over-channel clients
|
|
12
|
-
*/
|
|
13
|
-
export declare const clientCLIRenderer: import("@pikku/core").CorePikkuCLIRender<ForwardedLogMessage, import("@pikku/core").CoreServices, import("@pikku/core").CoreUserSession>;
|
|
14
9
|
export declare const createConfig: CreateConfig<Config, [PikkuCLIConfig]>;
|
|
15
10
|
/**
|
|
16
11
|
* Singleton services factory for the Pikku CLI
|
|
17
12
|
* This function creates the singleton services used by the CLI and is created once on start.
|
|
18
13
|
*/
|
|
19
14
|
export declare const createSingletonServices: CreateSingletonServices<Config, SingletonServices>;
|
|
20
|
-
export declare const
|
|
15
|
+
export declare const createWireServices: CreateWireServices<SingletonServices, Services, UserSession>;
|
package/dist/src/services.js
CHANGED
|
@@ -70,15 +70,17 @@ export const defaultCLIRenderer = pikkuCLIRender(({ logger }, data) => {
|
|
|
70
70
|
logger[data.level]({ message: data.message, type: data.type });
|
|
71
71
|
}
|
|
72
72
|
});
|
|
73
|
-
/**
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
export const clientCLIRenderer = pikkuCLIRender(
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
}
|
|
73
|
+
// /**
|
|
74
|
+
// * Client-safe CLI renderer that outputs to console (no service dependencies)
|
|
75
|
+
// * This renderer can be used in CLI-over-channel clients
|
|
76
|
+
// */
|
|
77
|
+
// export const clientCLIRenderer = pikkuCLIRender<ForwardedLogMessage>(
|
|
78
|
+
// ({ logger }, data) => {
|
|
79
|
+
// if (data) {
|
|
80
|
+
// logger[data.level]?.({ message: data.message, type: data.type } as any)
|
|
81
|
+
// }
|
|
82
|
+
// }
|
|
83
|
+
// )
|
|
82
84
|
export const createConfig = async (_variablesService, data) => {
|
|
83
85
|
// Determine log level based on CLI flags with precedence:
|
|
84
86
|
// --silent > --loglevel > --verbose > --info > default (warn)
|
|
@@ -155,7 +157,7 @@ export const createSingletonServices = async (config) => {
|
|
|
155
157
|
type: 'CoreUserSession',
|
|
156
158
|
typePath: corePackagePath,
|
|
157
159
|
},
|
|
158
|
-
|
|
160
|
+
wireServicesType: {
|
|
159
161
|
file: corePackagePath,
|
|
160
162
|
variable: 'CoreServices',
|
|
161
163
|
type: 'CoreServices',
|
|
@@ -188,7 +190,7 @@ export const createSingletonServices = async (config) => {
|
|
|
188
190
|
configFileType: config.configFile,
|
|
189
191
|
userSessionType: config.userSessionType,
|
|
190
192
|
singletonServicesFactoryType: config.singletonServicesFactoryType,
|
|
191
|
-
|
|
193
|
+
wireServicesFactoryType: config.wireServicesFactoryType,
|
|
192
194
|
},
|
|
193
195
|
});
|
|
194
196
|
// Save unfiltered inspector state to file if stateOutput is provided
|
|
@@ -216,7 +218,7 @@ export const createSingletonServices = async (config) => {
|
|
|
216
218
|
getInspectorState,
|
|
217
219
|
};
|
|
218
220
|
};
|
|
219
|
-
export const
|
|
221
|
+
export const createWireServices = async ({ logger }, { cli, channel }) => {
|
|
220
222
|
const vChannel = cli ? cli.channel : channel;
|
|
221
223
|
if (!vChannel) {
|
|
222
224
|
throw new Error('No channel provided for CLI services');
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { FilesAndMethodsErrors } from '@pikku/inspector';
|
|
2
2
|
export type RequiredTypes = Partial<{
|
|
3
3
|
config: boolean;
|
|
4
|
-
|
|
4
|
+
wireServiceType: boolean;
|
|
5
5
|
singletonServicesType: boolean;
|
|
6
6
|
userSessionType: boolean;
|
|
7
7
|
singletonServicesFactory: boolean;
|
|
8
|
-
|
|
8
|
+
wireServicesFactory: boolean;
|
|
9
9
|
}>;
|
|
10
10
|
export declare const checkRequiredTypes: (errors: FilesAndMethodsErrors, requires?: RequiredTypes) => void;
|
|
@@ -13,7 +13,7 @@ export const checkRequiredTypes = (errors, requires = {}) => {
|
|
|
13
13
|
}
|
|
14
14
|
if (requires.config && message.includes('CoreConfig'))
|
|
15
15
|
return true;
|
|
16
|
-
if (requires.
|
|
16
|
+
if (requires.wireServiceType && message.includes('CoreServices'))
|
|
17
17
|
return true;
|
|
18
18
|
if (requires.singletonServicesType &&
|
|
19
19
|
message.includes('CoreSingletonServices'))
|
|
@@ -23,8 +23,7 @@ export const checkRequiredTypes = (errors, requires = {}) => {
|
|
|
23
23
|
if (requires.singletonServicesFactory &&
|
|
24
24
|
message.includes('CreateSingletonServices'))
|
|
25
25
|
return true;
|
|
26
|
-
if (requires.
|
|
27
|
-
message.includes('CreateSessionServices'))
|
|
26
|
+
if (requires.wireServicesFactory && message.includes('CreateWireServices'))
|
|
28
27
|
return true;
|
|
29
28
|
return false;
|
|
30
29
|
});
|
|
@@ -47,7 +47,7 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
47
47
|
],
|
|
48
48
|
schema: {
|
|
49
49
|
additionalProperties: false,
|
|
50
|
-
supportsImportAttributes:
|
|
50
|
+
supportsImportAttributes: true,
|
|
51
51
|
...extendedConfig.schema,
|
|
52
52
|
...config.schema,
|
|
53
53
|
},
|
|
@@ -69,7 +69,7 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
69
69
|
],
|
|
70
70
|
schema: {
|
|
71
71
|
additionalProperties: false,
|
|
72
|
-
supportsImportAttributes:
|
|
72
|
+
supportsImportAttributes: true,
|
|
73
73
|
...config.schema,
|
|
74
74
|
},
|
|
75
75
|
};
|
|
@@ -96,9 +96,15 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
96
96
|
if (!result.functionsMetaFile) {
|
|
97
97
|
result.functionsMetaFile = join(functionDir, 'pikku-functions-meta.gen.ts');
|
|
98
98
|
}
|
|
99
|
+
if (!result.functionsMetaJsonFile) {
|
|
100
|
+
result.functionsMetaJsonFile = join(functionDir, 'pikku-functions-meta.gen.json');
|
|
101
|
+
}
|
|
99
102
|
if (!result.functionsMetaMinFile) {
|
|
100
103
|
result.functionsMetaMinFile = join(functionDir, 'pikku-functions-meta.min.gen.ts');
|
|
101
104
|
}
|
|
105
|
+
if (!result.functionsMetaMinJsonFile) {
|
|
106
|
+
result.functionsMetaMinJsonFile = join(functionDir, 'pikku-functions-meta.min.gen.json');
|
|
107
|
+
}
|
|
102
108
|
if (!result.functionTypesFile) {
|
|
103
109
|
result.functionTypesFile = join(functionDir, 'pikku-function-types.gen.ts');
|
|
104
110
|
}
|
|
@@ -112,6 +118,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
112
118
|
if (!result.httpWiringMetaFile) {
|
|
113
119
|
result.httpWiringMetaFile = join(httpDir, 'pikku-http-wirings-meta.gen.ts');
|
|
114
120
|
}
|
|
121
|
+
if (!result.httpWiringMetaJsonFile) {
|
|
122
|
+
result.httpWiringMetaJsonFile = join(httpDir, 'pikku-http-wirings-meta.gen.json');
|
|
123
|
+
}
|
|
115
124
|
if (!result.httpMapDeclarationFile) {
|
|
116
125
|
result.httpMapDeclarationFile = join(httpDir, 'pikku-http-wirings-map.gen.d.ts');
|
|
117
126
|
}
|
|
@@ -125,6 +134,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
125
134
|
if (!result.channelsWiringMetaFile) {
|
|
126
135
|
result.channelsWiringMetaFile = join(channelDir, 'pikku-channels-meta.gen.ts');
|
|
127
136
|
}
|
|
137
|
+
if (!result.channelsWiringMetaJsonFile) {
|
|
138
|
+
result.channelsWiringMetaJsonFile = join(channelDir, 'pikku-channels-meta.gen.json');
|
|
139
|
+
}
|
|
128
140
|
if (!result.channelsMapDeclarationFile) {
|
|
129
141
|
result.channelsMapDeclarationFile = join(channelDir, 'pikku-channels-map.gen.d.ts');
|
|
130
142
|
}
|
|
@@ -135,6 +147,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
135
147
|
if (!result.rpcInternalWiringMetaFile) {
|
|
136
148
|
result.rpcInternalWiringMetaFile = join(rpcDir, 'pikku-rpc-wirings-meta.internal.gen.ts');
|
|
137
149
|
}
|
|
150
|
+
if (!result.rpcInternalWiringMetaJsonFile) {
|
|
151
|
+
result.rpcInternalWiringMetaJsonFile = join(rpcDir, 'pikku-rpc-wirings-meta.internal.gen.json');
|
|
152
|
+
}
|
|
138
153
|
if (!result.rpcInternalMapDeclarationFile) {
|
|
139
154
|
result.rpcInternalMapDeclarationFile = join(rpcDir, 'pikku-rpc-wirings-map.internal.gen.d.ts');
|
|
140
155
|
}
|
|
@@ -155,6 +170,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
155
170
|
if (!result.schedulersWiringMetaFile) {
|
|
156
171
|
result.schedulersWiringMetaFile = join(schedulerDir, 'pikku-schedulers-wirings-meta.gen.ts');
|
|
157
172
|
}
|
|
173
|
+
if (!result.schedulersWiringMetaJsonFile) {
|
|
174
|
+
result.schedulersWiringMetaJsonFile = join(schedulerDir, 'pikku-schedulers-wirings-meta.gen.json');
|
|
175
|
+
}
|
|
158
176
|
if (!result.schedulersTypesFile) {
|
|
159
177
|
result.schedulersTypesFile = join(schedulerDir, 'pikku-scheduler-types.gen.ts');
|
|
160
178
|
}
|
|
@@ -165,6 +183,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
165
183
|
if (!result.queueWorkersWiringMetaFile) {
|
|
166
184
|
result.queueWorkersWiringMetaFile = join(queueDir, 'pikku-queue-workers-wirings-meta.gen.ts');
|
|
167
185
|
}
|
|
186
|
+
if (!result.queueWorkersWiringMetaJsonFile) {
|
|
187
|
+
result.queueWorkersWiringMetaJsonFile = join(queueDir, 'pikku-queue-workers-wirings-meta.gen.json');
|
|
188
|
+
}
|
|
168
189
|
if (!result.queueMapDeclarationFile) {
|
|
169
190
|
result.queueMapDeclarationFile = join(queueDir, 'pikku-queue-workers-wirings-map.gen.d.ts');
|
|
170
191
|
}
|
|
@@ -178,6 +199,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
178
199
|
if (!result.workflowsWiringMetaFile) {
|
|
179
200
|
result.workflowsWiringMetaFile = join(workflowDir, 'pikku-workflow-wirings-meta.gen.ts');
|
|
180
201
|
}
|
|
202
|
+
if (!result.workflowsWiringMetaJsonFile) {
|
|
203
|
+
result.workflowsWiringMetaJsonFile = join(workflowDir, 'pikku-workflow-wirings-meta.gen.json');
|
|
204
|
+
}
|
|
181
205
|
if (!result.workflowsWorkersFile) {
|
|
182
206
|
result.workflowsWorkersFile = join(workflowDir, 'pikku-workflow-workers.gen.ts');
|
|
183
207
|
}
|
|
@@ -198,6 +222,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
198
222
|
if (!result.middlewareGroupsMetaFile) {
|
|
199
223
|
result.middlewareGroupsMetaFile = join(middlewareDir, 'pikku-middleware-groups-meta.gen.ts');
|
|
200
224
|
}
|
|
225
|
+
if (!result.middlewareGroupsMetaJsonFile) {
|
|
226
|
+
result.middlewareGroupsMetaJsonFile = join(middlewareDir, 'pikku-middleware-groups-meta.gen.json');
|
|
227
|
+
}
|
|
201
228
|
// Permissions
|
|
202
229
|
const permissionsDir = join(result.outDir, 'permissions');
|
|
203
230
|
if (!result.permissionsFile) {
|
|
@@ -211,6 +238,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
211
238
|
if (!result.mcpWiringsMetaFile) {
|
|
212
239
|
result.mcpWiringsMetaFile = join(mcpDir, 'pikku-mcp-wirings-meta.gen.ts');
|
|
213
240
|
}
|
|
241
|
+
if (!result.mcpWiringsMetaJsonFile) {
|
|
242
|
+
result.mcpWiringsMetaJsonFile = join(mcpDir, 'pikku-mcp-wirings-meta.gen.json');
|
|
243
|
+
}
|
|
214
244
|
if (!result.mcpWiringsFile) {
|
|
215
245
|
result.mcpWiringsFile = join(mcpDir, 'pikku-mcp-wirings.gen.ts');
|
|
216
246
|
}
|
|
@@ -227,6 +257,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
227
257
|
if (!result.cliWiringMetaFile) {
|
|
228
258
|
result.cliWiringMetaFile = join(cliDir, 'pikku-cli-wirings-meta.gen.ts');
|
|
229
259
|
}
|
|
260
|
+
if (!result.cliWiringMetaJsonFile) {
|
|
261
|
+
result.cliWiringMetaJsonFile = join(cliDir, 'pikku-cli-wirings-meta.gen.json');
|
|
262
|
+
}
|
|
230
263
|
if (!result.cliBootstrapFile) {
|
|
231
264
|
result.cliBootstrapFile = join(cliDir, 'pikku-cli-bootstrap.gen.ts');
|
|
232
265
|
}
|
|
@@ -8,11 +8,11 @@ interface Meta {
|
|
|
8
8
|
}
|
|
9
9
|
export type FilesAndMethods = {
|
|
10
10
|
userSessionType: Meta;
|
|
11
|
-
|
|
11
|
+
wireServicesType: Meta;
|
|
12
12
|
singletonServicesType: Meta;
|
|
13
13
|
pikkuConfigFactory: Meta;
|
|
14
14
|
singletonServicesFactory: Meta;
|
|
15
|
-
|
|
15
|
+
wireServicesFactory: Meta;
|
|
16
16
|
};
|
|
17
17
|
/**
|
|
18
18
|
* @deprecated Use state.filesAndMethods from InspectorState instead
|
|
@@ -45,16 +45,16 @@ const getMetaTypes = (type, map, desiredType) => {
|
|
|
45
45
|
* @deprecated Use state.filesAndMethods from InspectorState instead
|
|
46
46
|
*/
|
|
47
47
|
export const getPikkuFilesAndMethods = async (state, options = {}) => {
|
|
48
|
-
const { singletonServicesTypeImportMap,
|
|
49
|
-
const { configFileType, userSessionType, singletonServicesFactoryType,
|
|
48
|
+
const { singletonServicesTypeImportMap, wireServicesTypeImportMap, userSessionTypeImportMap, wireServicesFactories, singletonServicesFactories, configFactories, } = state;
|
|
49
|
+
const { configFileType, userSessionType, singletonServicesFactoryType, wireServicesFactoryType, } = options;
|
|
50
50
|
let errors = new Map();
|
|
51
51
|
const result = {
|
|
52
52
|
userSessionType: getMetaTypes('CoreUserSession', userSessionTypeImportMap, userSessionType),
|
|
53
53
|
singletonServicesType: getMetaTypes('CoreSingletonServices', singletonServicesTypeImportMap),
|
|
54
|
-
|
|
54
|
+
wireServicesType: getMetaTypes('CoreServices', wireServicesTypeImportMap),
|
|
55
55
|
pikkuConfigFactory: getMetaTypes('CoreConfig', configFactories, configFileType),
|
|
56
56
|
singletonServicesFactory: getMetaTypes('CreateSingletonServices', singletonServicesFactories, singletonServicesFactoryType),
|
|
57
|
-
|
|
57
|
+
wireServicesFactory: getMetaTypes('CreateWireServices', wireServicesFactories, wireServicesFactoryType),
|
|
58
58
|
};
|
|
59
59
|
if (errors.size > 0) {
|
|
60
60
|
const result = ['Found errors:'];
|
|
@@ -3,4 +3,4 @@ import { HTTPWiringsMeta } from '@pikku/core/http';
|
|
|
3
3
|
import { TypesMap } from '@pikku/inspector';
|
|
4
4
|
import { CLILogger } from '../services/cli-logger.service.js';
|
|
5
5
|
export declare function generateSchemas(logger: CLILogger, tsconfig: string, typesMap: TypesMap, functionMeta: FunctionsMeta, httpWiringsMeta: HTTPWiringsMeta, additionalTypes?: string[], additionalProperties?: boolean): Promise<Record<string, JSONValue>>;
|
|
6
|
-
export declare function saveSchemas(logger: CLILogger, schemaParentDir: string, schemas: Record<string, JSONValue>, typesMap: TypesMap, functionsMeta: FunctionsMeta, additionalTypes?: string[]
|
|
6
|
+
export declare function saveSchemas(logger: CLILogger, schemaParentDir: string, schemas: Record<string, JSONValue>, typesMap: TypesMap, functionsMeta: FunctionsMeta, supportsImportAttributes: boolean, additionalTypes?: string[]): Promise<void>;
|
|
@@ -65,7 +65,7 @@ export async function generateSchemas(logger, tsconfig, typesMap, functionMeta,
|
|
|
65
65
|
});
|
|
66
66
|
return schemas;
|
|
67
67
|
}
|
|
68
|
-
export async function saveSchemas(logger, schemaParentDir, schemas, typesMap, functionsMeta,
|
|
68
|
+
export async function saveSchemas(logger, schemaParentDir, schemas, typesMap, functionsMeta, supportsImportAttributes, additionalTypes) {
|
|
69
69
|
await writeFileInDir(logger, `${schemaParentDir}/register.gen.ts`, 'export const empty = null;');
|
|
70
70
|
const desiredSchemas = new Set([
|
|
71
71
|
...Object.values(functionsMeta)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/functions/commands/all.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/watch.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/pikku-command-websocket-typed.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/channels/serialize-websocket-wrapper.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/fetch/index.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-function-types.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/pikku-function-types.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-pikku-types-hub.ts","../src/functions/wirings/http/openapi-spec-generator.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-json.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-groups-meta.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/workflow/pikku-command-workflow-map.ts","../src/functions/wirings/workflow/pikku-command-workflow-types.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/wirings/workflow/serialize-workflow-workers.ts","../src/middleware/log-command-info-and-time.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/check-required-types.ts","../src/utils/command-summary.ts","../src/utils/custom-types-generator.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/schema-generator.ts","../src/utils/serialize-import-map.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/pikku-types.gen.ts","../.pikku/pikku-websocket.gen.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/channel/pikku-channels-map.gen.d.ts","../.pikku/channel/pikku-channels-meta.gen.ts","../.pikku/channel/pikku-channels.gen.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions-meta.min.gen.ts","../.pikku/
|
|
1
|
+
{"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/functions/commands/all.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/watch.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/pikku-command-websocket-typed.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/channels/serialize-websocket-wrapper.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/fetch/index.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-function-types.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/pikku-function-types.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-pikku-types-hub.ts","../src/functions/wirings/http/openapi-spec-generator.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-json.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-groups-meta.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/services/pikku-command-service-metadata.ts","../src/functions/wirings/workflow/pikku-command-workflow-map.ts","../src/functions/wirings/workflow/pikku-command-workflow-types.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/wirings/workflow/serialize-workflow-wirings.ts","../src/functions/wirings/workflow/serialize-workflow-workers.ts","../src/middleware/log-command-info-and-time.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/check-required-types.ts","../src/utils/command-summary.ts","../src/utils/custom-types-generator.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/schema-generator.ts","../src/utils/serialize-import-map.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/pikku-types.gen.ts","../.pikku/pikku-websocket.gen.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/channel/pikku-channels-map.gen.d.ts","../.pikku/channel/pikku-channels-meta.gen.ts","../.pikku/channel/pikku-channels.gen.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions-meta.min.gen.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/http/pikku-http-wirings-map.gen.d.ts","../.pikku/http/pikku-http-wirings-meta.gen.ts","../.pikku/http/pikku-http-wirings.gen.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/mcp/pikku-mcp-wirings-meta.gen.ts","../.pikku/mcp/pikku-mcp-wirings.gen.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.gen.ts","../.pikku/rpc/pikku-remote-rpc-workers.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts","../.pikku/scheduler/pikku-schedulers-wirings.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/config.d.ts"],"version":"5.9.3"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pikku/cli",
|
|
3
|
-
"version": "0.11.
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"author": "yasser.fadl@gmail.com",
|
|
5
|
-
"license": "
|
|
5
|
+
"license": "BUSL-1.1",
|
|
6
6
|
"bin": {
|
|
7
7
|
"pikku": "dist/bin/pikku.js"
|
|
8
8
|
},
|
|
@@ -12,8 +12,7 @@
|
|
|
12
12
|
"scripts": {
|
|
13
13
|
"tsc": "tsc",
|
|
14
14
|
"schema": "ts-json-schema-generator -o cli.schema.json --path 'src/utils/pikku-cli-config.ts' --type 'PikkuCLIConfig'",
|
|
15
|
-
"build": "
|
|
16
|
-
"build:esm": "./build.sh",
|
|
15
|
+
"build": "./build.sh",
|
|
17
16
|
"ncu": "npx npm-check-updates -x '/.*glob.*/'",
|
|
18
17
|
"release": "yarn build && npm test",
|
|
19
18
|
"test": "bash run-tests.sh",
|
|
@@ -21,9 +20,9 @@
|
|
|
21
20
|
"test:coverage": "bash run-tests.sh --coverage"
|
|
22
21
|
},
|
|
23
22
|
"dependencies": {
|
|
24
|
-
"@openapi-contrib/json-schema-to-openapi-schema": "^4.
|
|
25
|
-
"@pikku/core": "^0.11.
|
|
26
|
-
"@pikku/inspector": "^0.11.
|
|
23
|
+
"@openapi-contrib/json-schema-to-openapi-schema": "^4.3.0",
|
|
24
|
+
"@pikku/core": "^0.11.1",
|
|
25
|
+
"@pikku/inspector": "^0.11.1",
|
|
27
26
|
"@types/cookie": "^1.0.0",
|
|
28
27
|
"@types/json-schema": "^7.0.15",
|
|
29
28
|
"chalk": "^5.6.2",
|
|
@@ -37,7 +36,7 @@
|
|
|
37
36
|
"yaml": "^2.8.1"
|
|
38
37
|
},
|
|
39
38
|
"devDependencies": {
|
|
40
|
-
"@types/node": "^24.
|
|
39
|
+
"@types/node": "^24.10.1"
|
|
41
40
|
},
|
|
42
41
|
"engines": {
|
|
43
42
|
"node": ">=18"
|
package/src/cli.wiring.ts
CHANGED
|
@@ -9,13 +9,13 @@ import { pikkuCLICommand, wireCLI } from '../.pikku/cli/pikku-cli-types.gen.js'
|
|
|
9
9
|
import { all } from './functions/commands/all.js'
|
|
10
10
|
import { bootstrap } from './functions/commands/bootstrap.js'
|
|
11
11
|
import { watch } from './functions/commands/watch.js'
|
|
12
|
-
import { clientCLIRenderer } from './services.js'
|
|
12
|
+
// import { clientCLIRenderer } from './services.js'
|
|
13
13
|
|
|
14
14
|
wireCLI({
|
|
15
15
|
program: 'pikku',
|
|
16
16
|
description:
|
|
17
17
|
'Pikku CLI - Code generation tool for type-safe backend development',
|
|
18
|
-
render: clientCLIRenderer,
|
|
18
|
+
// render: clientCLIRenderer,
|
|
19
19
|
options: {
|
|
20
20
|
config: {
|
|
21
21
|
description: 'Path to pikku.config.json file',
|
|
@@ -33,8 +33,8 @@ wireCLI({
|
|
|
33
33
|
singletonServicesFactoryType: {
|
|
34
34
|
description: 'Specify which singleton services factory to use',
|
|
35
35
|
},
|
|
36
|
-
|
|
37
|
-
description: 'Specify which
|
|
36
|
+
wireServicesFactoryType: {
|
|
37
|
+
description: 'Specify which wire services factory to use',
|
|
38
38
|
},
|
|
39
39
|
stateOutput: {
|
|
40
40
|
description: 'Save inspector state to JSON file for reuse',
|