@pikku/cli 0.11.3 → 0.12.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/cli.schema.json +1 -1
- package/console-app/android-chrome-192x192.png +0 -0
- package/console-app/android-chrome-512x512.png +0 -0
- package/console-app/apple-touch-icon.png +0 -0
- package/console-app/assets/index-0Ui5UudO.css +1 -0
- package/console-app/assets/index-DiYPTQU_.js +676 -0
- package/console-app/favicon-16x16.png +0 -0
- package/console-app/favicon-32x32.png +0 -0
- package/console-app/favicon.ico +0 -0
- package/console-app/index.html +34 -0
- package/console-app/pikku-console-logo.png +0 -0
- package/console-app/site.webmanifest +19 -0
- package/console-app/wiring-icons/cron.svg +6 -0
- package/console-app/wiring-icons/function.png +0 -0
- package/console-app/wiring-icons/http.svg +2 -0
- package/console-app/wiring-icons/mcp.svg +1 -0
- package/console-app/wiring-icons/queue.svg +18 -0
- package/console-app/wiring-icons/sse.svg +5 -0
- package/console-app/wiring-icons/websocket.svg +8 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +46 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js +17 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +6 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +27 -14
- package/dist/.pikku/channel/pikku-channel-types.gen.js +21 -4
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +2 -2
- 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 +72 -3
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +2 -2
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +261 -11
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -5
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
- package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +83 -29
- package/dist/.pikku/function/pikku-function-types.gen.js +51 -15
- package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
- package/dist/.pikku/function/pikku-functions-meta.gen.json +896 -192
- package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
- package/dist/.pikku/function/pikku-functions.gen.js +119 -0
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +55 -19
- package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +2 -2
- 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 +26 -27
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +2 -12
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +2 -2
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +2 -2
- package/dist/.pikku/node/pikku-node-types.gen.d.ts +1 -0
- package/dist/.pikku/node/pikku-node-types.gen.js +1 -0
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +5 -4
- package/dist/.pikku/pikku-bootstrap.gen.js +13 -2
- package/dist/.pikku/pikku-services.gen.d.ts +6 -1
- package/dist/.pikku/pikku-services.gen.js +5 -0
- package/dist/.pikku/pikku-types.gen.d.ts +4 -2
- package/dist/.pikku/pikku-types.gen.js +7 -3
- 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 +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +2 -2
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +2 -2
- 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 +3 -3
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +3 -3
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +6 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +70 -0
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +2 -2
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +2 -2
- 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 +43 -19
- package/dist/.pikku/schemas/schemas/BootstrapInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ConsoleCommandInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuAIAgentOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuConsoleFunctionsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuNewAddonInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNewFunctionInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNewMiddlewareInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNewPermissionInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNewWiringInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuTriggerOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
- package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +28 -180
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +18 -106
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +2 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku.js +20 -47
- package/dist/src/cli.wiring.js +210 -2
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/all.js +83 -180
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +13 -22
- package/dist/src/functions/commands/console.d.ts +7 -0
- package/dist/src/functions/commands/console.js +106 -0
- package/dist/src/functions/commands/info.d.ts +9 -0
- package/dist/src/functions/commands/info.js +283 -0
- package/dist/src/functions/commands/new-addon.d.ts +34 -0
- package/dist/src/functions/commands/new-addon.js +636 -0
- package/dist/src/functions/commands/new-function.d.ts +10 -0
- package/dist/src/functions/commands/new-function.js +79 -0
- package/dist/src/functions/commands/new-middleware.d.ts +10 -0
- package/dist/src/functions/commands/new-middleware.js +48 -0
- package/dist/src/functions/commands/new-permission.d.ts +10 -0
- package/dist/src/functions/commands/new-permission.js +45 -0
- package/dist/src/functions/commands/new-wiring.d.ts +10 -0
- package/dist/src/functions/commands/new-wiring.js +102 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.js +38 -0
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
- package/dist/src/functions/commands/pikku-command-summary.js +55 -0
- package/dist/src/functions/commands/versions-check.d.ts +1 -0
- package/dist/src/functions/commands/versions-check.js +99 -0
- package/dist/src/functions/commands/versions-init.d.ts +7 -0
- package/dist/src/functions/commands/versions-init.js +15 -0
- package/dist/src/functions/commands/versions-update.d.ts +1 -0
- package/dist/src/functions/commands/versions-update.js +20 -0
- package/dist/src/functions/commands/watch.d.ts +1 -1
- package/dist/src/functions/commands/watch.js +4 -5
- package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
- package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -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 +4 -16
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +4 -8
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
- package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +20 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
- package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
- package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +76 -0
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +68 -0
- package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-channels.js +2 -2
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
- package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels.js +2 -2
- package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +47 -17
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +5 -4
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +8 -8
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +3 -7
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.js +2 -2
- package/dist/src/functions/wirings/cli/serialize-channel-cli-client.d.ts +2 -2
- package/dist/src/functions/wirings/cli/serialize-channel-cli.d.ts +1 -1
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
- package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +3 -3
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
- package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-console-functions.js +24 -0
- package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
- package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
- package/dist/src/functions/wirings/console/serialize-console-functions.js +90 -0
- package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
- package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.js +33 -0
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types.js +6 -6
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +9 -15
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +1 -1
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
- package/dist/src/functions/wirings/functions/schemas.js +8 -10
- package/dist/src/functions/wirings/functions/serialize-addon-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/serialize-addon-types.js +78 -0
- package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +3 -4
- package/dist/src/functions/wirings/functions/serialize-function-imports.js +13 -20
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +126 -45
- package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +5 -2
- package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
- package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-routes.js +2 -2
- package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-types.js +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
- package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
- package/dist/src/functions/wirings/http/serialize-http-types.js +65 -20
- package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +7 -4
- package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -46
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +14 -5
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +27 -36
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -34
- package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
- package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
- package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/package/pikku-command-package.js +8 -8
- package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
- package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
- package/dist/src/functions/wirings/package/serialize-package.js +2 -2
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +7 -7
- package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-map.js +3 -3
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue.js +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue-map.js +3 -3
- package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue.js +1 -1
- package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +6 -3
- package/dist/src/functions/wirings/queue/serialize-queue-map.js +12 -40
- package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +1 -1
- package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
- package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.js +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.js +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +14 -9
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +3 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +34 -20
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +2 -2
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +55 -8
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +11 -3
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +106 -71
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +1 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -2
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
- package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
- package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
- package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
- package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
- package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
- package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +8 -37
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +5 -3
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +63 -12
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +32 -33
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +4 -31
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -6
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +60 -256
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +5 -5
- package/dist/src/services/cli-logger-forwarder.service.d.ts +4 -3
- package/dist/src/services/cli-logger-forwarder.service.js +1 -1
- package/dist/src/services/cli-logger.service.d.ts +3 -2
- package/dist/src/services/cli-logger.service.js +1 -1
- package/dist/src/services.d.ts +5 -4
- package/dist/src/services.js +53 -7
- package/dist/src/utils/check-required-types.d.ts +1 -1
- package/dist/src/utils/command-summary.d.ts +2 -1
- package/dist/src/utils/command-summary.js +2 -1
- package/dist/src/utils/contract-versions.d.ts +6 -0
- package/dist/src/utils/contract-versions.js +25 -0
- package/dist/src/utils/file-import-path.js +20 -6
- package/dist/src/utils/file-writer.d.ts +6 -1
- package/dist/src/utils/file-writer.js +14 -1
- package/dist/src/utils/generate-bootstrap-file.d.ts +2 -2
- package/dist/src/utils/openapi/codegen.d.ts +19 -0
- package/dist/src/utils/openapi/codegen.js +288 -0
- package/dist/src/utils/openapi/naming.d.ts +30 -0
- package/dist/src/utils/openapi/naming.js +167 -0
- package/dist/src/utils/openapi/parse-openapi.d.ts +36 -0
- package/dist/src/utils/openapi/parse-openapi.js +196 -0
- package/dist/src/utils/openapi/zod-codegen.d.ts +53 -0
- package/dist/src/utils/openapi/zod-codegen.js +251 -0
- package/dist/src/utils/pikku-cli-config.d.ts +2 -2
- package/dist/src/utils/pikku-cli-config.js +80 -23
- package/dist/src/utils/pikku-files-and-methods.d.ts +1 -2
- package/dist/src/utils/pikku-files-and-methods.js +15 -60
- package/dist/src/utils/serialize-import-map.d.ts +3 -2
- package/dist/src/utils/serialize-import-map.js +4 -55
- package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
- package/dist/src/utils/serialize-meta-ts.js +12 -0
- package/dist/src/utils/serialize-schemas.d.ts +3 -0
- package/dist/src/utils/serialize-schemas.js +38 -0
- package/dist/src/utils/strip-verbose-meta.d.ts +5 -5
- package/dist/src/utils/strip-verbose-meta.js +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -10
- package/.pikku/channel/pikku-channel-types.gen.ts +0 -148
- package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
- package/.pikku/channel/pikku-channels-meta.gen.json +0 -1
- package/.pikku/channel/pikku-channels-meta.gen.ts +0 -7
- package/.pikku/channel/pikku-channels.gen.ts +0 -4
- package/.pikku/cli/pikku-cli-channel.ts +0 -92
- package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
- package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
- package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -147
- package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
- package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
- package/.pikku/cli/pikku-cli.gen.ts +0 -41
- package/.pikku/forge/pikku-forge-types.gen.ts +0 -83
- package/.pikku/function/pikku-function-types.gen.ts +0 -572
- package/.pikku/function/pikku-functions-meta-verbose.gen.json +0 -1030
- package/.pikku/function/pikku-functions-meta.gen.json +0 -656
- package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
- package/.pikku/http/pikku-http-types.gen.ts +0 -102
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
- package/.pikku/http/pikku-http-wirings-meta.gen.json +0 -9
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -7
- package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -192
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
- package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp.gen.json +0 -5
- package/.pikku/pikku-bootstrap.gen.ts +0 -17
- package/.pikku/pikku-services.gen.ts +0 -28
- package/.pikku/pikku-types.gen.ts +0 -30
- package/.pikku/pikku-websocket.gen.ts +0 -90
- package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
- package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
- package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
- package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -30
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -62
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -105
- package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
- package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
- package/.pikku/schemas/register.gen.ts +0 -71
- package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
- package/.pikku/services/config.gen.json +0 -104
- package/.pikku/services/getInspectorState.gen.json +0 -10
- package/.pikku/services/jwt.gen.json +0 -13
- package/.pikku/services/logger.gen.json +0 -25
- package/.pikku/services/queueService.gen.json +0 -14
- package/.pikku/services/schedulerService.gen.json +0 -17
- package/.pikku/services/schema.gen.json +0 -14
- package/.pikku/services/secrets.gen.json +0 -13
- package/.pikku/services/variables.gen.json +0 -13
- package/.pikku/services/workflowService.gen.json +0 -31
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -28
- package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -349
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -9
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -3
- package/CHANGELOG.md +0 -957
- package/bin/pikku.ts +0 -88
- package/build.sh +0 -75
- package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +0 -72
- package/dist/.pikku/forge/pikku-forge-types.gen.js +0 -55
- package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
- package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
- package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +0 -90
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +0 -26
- package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +0 -4
- package/dist/src/functions/wirings/forge/serialize-forge-types.js +0 -90
- package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
- package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
- package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
- package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
- package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
- package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -102
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
- package/dist/src/utils/custom-types-generator.d.ts +0 -2
- package/dist/src/utils/custom-types-generator.js +0 -41
- package/dist/src/utils/schema-generator.d.ts +0 -7
- package/dist/src/utils/schema-generator.js +0 -238
- package/pikku.config.json +0 -29
- package/run-tests.sh +0 -53
- package/src/cli.wiring.ts +0 -112
- package/src/functions/commands/all.ts +0 -313
- package/src/functions/commands/bootstrap.ts +0 -35
- package/src/functions/commands/watch.ts +0 -61
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -131
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -282
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -215
- package/src/functions/wirings/channels/pikku-channels.ts +0 -59
- package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
- package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
- package/src/functions/wirings/channels/pikku-command-channels.ts +0 -83
- package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
- package/src/functions/wirings/channels/serialize-channel-types.ts +0 -151
- package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -173
- package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
- package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
- package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
- package/src/functions/wirings/cli/pikku-command-cli.ts +0 -81
- package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
- package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
- package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
- package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
- package/src/functions/wirings/fetch/index.ts +0 -36
- package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +0 -135
- package/src/functions/wirings/forge/pikku-command-forge-types.ts +0 -38
- package/src/functions/wirings/forge/serialize-forge-types.ts +0 -94
- package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -61
- package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -50
- package/src/functions/wirings/functions/pikku-command-functions.ts +0 -104
- package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
- package/src/functions/wirings/functions/pikku-function-types.ts +0 -45
- package/src/functions/wirings/functions/schemas.ts +0 -56
- package/src/functions/wirings/functions/serialize-function-imports.ts +0 -80
- package/src/functions/wirings/functions/serialize-function-types.ts +0 -587
- package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -39
- package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
- package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
- package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -80
- package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
- package/src/functions/wirings/http/pikku-command-openapi.ts +0 -64
- package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
- package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
- package/src/functions/wirings/http/serialize-http-types.ts +0 -105
- package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -178
- package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
- package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
- package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -162
- package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -161
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -195
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -89
- package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
- package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
- package/src/functions/wirings/package/pikku-command-package.ts +0 -81
- package/src/functions/wirings/package/serialize-package.ts +0 -69
- package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
- package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
- package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
- package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
- package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
- package/src/functions/wirings/queue/pikku-command-queue.ts +0 -86
- package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-queue.ts +0 -66
- package/src/functions/wirings/queue/serialize-queue-map.ts +0 -134
- package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
- package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
- package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
- package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -51
- package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
- package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
- package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -33
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
- package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -194
- package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -88
- package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
- package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
- package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -218
- package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -121
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -73
- package/src/functions/wirings/workflow/serialize-workflow-registration.ts +0 -83
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -357
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -47
- package/src/middleware/log-command-info-and-time.ts +0 -35
- package/src/services/cli-logger-forwarder.service.ts +0 -99
- package/src/services/cli-logger.service.ts +0 -108
- package/src/services.ts +0 -322
- package/src/utils/check-required-types.ts +0 -65
- package/src/utils/command-summary.ts +0 -107
- package/src/utils/custom-types-generator.ts +0 -55
- package/src/utils/file-import-path.test.ts +0 -175
- package/src/utils/file-import-path.ts +0 -53
- package/src/utils/file-imports-serializer.ts +0 -25
- package/src/utils/file-writer.ts +0 -72
- package/src/utils/generate-bootstrap-file.ts +0 -43
- package/src/utils/get-cli-version.ts +0 -28
- package/src/utils/pikku-cli-config.ts +0 -495
- package/src/utils/pikku-files-and-methods.ts +0 -145
- package/src/utils/schema-generator.ts +0 -335
- package/src/utils/serialize-import-map.ts +0 -102
- package/src/utils/strip-verbose-meta.ts +0 -254
- package/tsconfig.json +0 -21
- package/types/application-types.d.ts +0 -27
- package/types/config.d.ts +0 -304
- /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
- /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
|
@@ -1,17 +1,34 @@
|
|
|
1
1
|
import { serializeImportMap } from '../../../utils/serialize-import-map.js';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
|
+
import { generateCustomTypes } from '@pikku/inspector';
|
|
4
|
+
export const serializeTypedHTTPWiringsMap = (logger, relativeToPath, packageMappings, typesMap, wiringsMeta, metaTypes, resolvedIOTypes, rpcInternalMapDeclarationFile) => {
|
|
4
5
|
const requiredTypes = new Set();
|
|
5
6
|
const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
|
|
6
|
-
const serializedMetaTypes = generateMetaTypes(metaTypes, typesMap);
|
|
7
|
-
const serializedHTTPWirings = generateHTTPWirings(wiringsMeta,
|
|
8
|
-
const
|
|
7
|
+
const serializedMetaTypes = generateMetaTypes(metaTypes, typesMap, requiredTypes);
|
|
8
|
+
const serializedHTTPWirings = generateHTTPWirings(wiringsMeta, resolvedIOTypes, requiredTypes);
|
|
9
|
+
const needsFlattenedRPCMap = Array.from(requiredTypes).some((t) => t.includes('FlattenedRPCMap'));
|
|
10
|
+
if (needsFlattenedRPCMap) {
|
|
11
|
+
for (const t of Array.from(requiredTypes)) {
|
|
12
|
+
if (t.includes('FlattenedRPCMap')) {
|
|
13
|
+
requiredTypes.delete(t);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const serializedImportMap = serializeImportMap(logger, relativeToPath, packageMappings, typesMap, requiredTypes);
|
|
18
|
+
const rpcMapImport = needsFlattenedRPCMap
|
|
19
|
+
? `import type { FlattenedRPCMap } from '${getFileImportRelativePath(relativeToPath, rpcInternalMapDeclarationFile, packageMappings)}'`
|
|
20
|
+
: '';
|
|
21
|
+
const serializedCustomTypesDeclarationsOnly = serializedCustomTypes
|
|
22
|
+
.split('\n')
|
|
23
|
+
.filter((line) => !line.startsWith('import '))
|
|
24
|
+
.join('\n');
|
|
9
25
|
return `/**
|
|
10
26
|
* This provides the structure needed for typescript to be aware of routes and their return types
|
|
11
27
|
*/
|
|
12
28
|
|
|
13
29
|
${serializedImportMap}
|
|
14
|
-
${
|
|
30
|
+
${rpcMapImport}
|
|
31
|
+
${serializedCustomTypesDeclarationsOnly}
|
|
15
32
|
${serializedMetaTypes}
|
|
16
33
|
|
|
17
34
|
interface HTTPWiringHandler<I, O> {
|
|
@@ -31,52 +48,21 @@ export type HTTPWiringsWithMethod<Method extends string> = {
|
|
|
31
48
|
}[keyof HTTPWiringsMap];
|
|
32
49
|
`;
|
|
33
50
|
};
|
|
34
|
-
function generateHTTPWirings(routesMeta,
|
|
35
|
-
// Initialize an object to collect routes
|
|
51
|
+
function generateHTTPWirings(routesMeta, resolvedIOTypes, requiredTypes) {
|
|
36
52
|
const routesObj = {};
|
|
37
53
|
for (const methods of Object.values(routesMeta)) {
|
|
38
54
|
for (const meta of Object.values(methods)) {
|
|
39
|
-
const { route, method,
|
|
40
|
-
// Skip workflow-triggered routes (they don't have a function)
|
|
41
|
-
if (meta.workflow) {
|
|
42
|
-
continue;
|
|
43
|
-
}
|
|
44
|
-
const functionMeta = functionsMeta[pikkuFuncName];
|
|
45
|
-
if (!functionMeta) {
|
|
46
|
-
throw new Error(`Function ${pikkuFuncName} not found in functionsMeta. Please check your configuration.`);
|
|
47
|
-
}
|
|
48
|
-
const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
|
|
49
|
-
const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined;
|
|
55
|
+
const { route, method, pikkuFuncId } = meta;
|
|
50
56
|
if (!routesObj[route]) {
|
|
51
57
|
routesObj[route] = {};
|
|
52
58
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
inputType = typesMap.getTypeMeta(input).uniqueName;
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
inputType = input;
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
let outputType = 'null';
|
|
64
|
-
if (output) {
|
|
65
|
-
try {
|
|
66
|
-
outputType = typesMap.getTypeMeta(output).uniqueName;
|
|
67
|
-
}
|
|
68
|
-
catch {
|
|
69
|
-
// Zod-derived schema - use the schema name directly
|
|
70
|
-
outputType = output;
|
|
71
|
-
}
|
|
59
|
+
const resolved = resolvedIOTypes[pikkuFuncId];
|
|
60
|
+
if (!resolved) {
|
|
61
|
+
throw new Error(`Function ${pikkuFuncId} not found in resolvedIOTypes. Please check your configuration.`);
|
|
72
62
|
}
|
|
73
|
-
requiredTypes.add(inputType);
|
|
74
|
-
requiredTypes.add(outputType);
|
|
75
|
-
|
|
76
|
-
routesObj[route][method] = {
|
|
77
|
-
inputType,
|
|
78
|
-
outputType,
|
|
79
|
-
};
|
|
63
|
+
requiredTypes.add(resolved.inputType);
|
|
64
|
+
requiredTypes.add(resolved.outputType);
|
|
65
|
+
routesObj[route][method] = resolved;
|
|
80
66
|
}
|
|
81
67
|
}
|
|
82
68
|
// Build the routes object as a string
|
|
@@ -91,7 +77,7 @@ function generateHTTPWirings(routesMeta, functionsMeta, typesMap, requiredTypes)
|
|
|
91
77
|
routesStr += '};';
|
|
92
78
|
return routesStr;
|
|
93
79
|
}
|
|
94
|
-
const generateMetaTypes = (metaTypes, typesMap) => {
|
|
80
|
+
const generateMetaTypes = (metaTypes, typesMap, requiredTypes) => {
|
|
95
81
|
const nameToTypeMap = Array.from(metaTypes.entries()).reduce((result, [_name, { query, body, params }]) => {
|
|
96
82
|
let uniqueName;
|
|
97
83
|
try {
|
|
@@ -101,6 +87,7 @@ const generateMetaTypes = (metaTypes, typesMap) => {
|
|
|
101
87
|
// Zod-derived schema - use the name directly
|
|
102
88
|
uniqueName = _name;
|
|
103
89
|
}
|
|
90
|
+
requiredTypes.add(uniqueName);
|
|
104
91
|
const queryType = query && query.length > 0
|
|
105
92
|
? `Pick<${uniqueName}, '${query?.join("' | '")}'>`
|
|
106
93
|
: undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCPJSON:
|
|
1
|
+
export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
|
-
import { serializeMCPJson } from '
|
|
4
|
+
import { serializeMCPJson } from '@pikku/inspector';
|
|
5
5
|
export const pikkuMCPJSON = pikkuSessionlessFunc({
|
|
6
6
|
func: async ({ logger, config, getInspectorState }) => {
|
|
7
|
-
const
|
|
8
|
-
const { mcpJsonFile
|
|
9
|
-
// Generate MCP JSON file
|
|
7
|
+
const state = await getInspectorState();
|
|
8
|
+
const { mcpJsonFile } = config;
|
|
10
9
|
if (mcpJsonFile) {
|
|
11
|
-
const mcpJson =
|
|
10
|
+
const mcpJson = serializeMCPJson(logger, state);
|
|
12
11
|
await writeFileInDir(logger, mcpJsonFile, mcpJson, {
|
|
13
12
|
ignoreModifyComment: true,
|
|
14
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCPTypes:
|
|
1
|
+
export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCP:
|
|
1
|
+
export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
@@ -10,7 +10,16 @@ import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verb
|
|
|
10
10
|
const generateArgumentsFromSchema = async (inputSchema, schemaDirectory, typesMap, logger) => {
|
|
11
11
|
if (!inputSchema)
|
|
12
12
|
return [];
|
|
13
|
-
if ([
|
|
13
|
+
if ([
|
|
14
|
+
'boolean',
|
|
15
|
+
'string',
|
|
16
|
+
'number',
|
|
17
|
+
'null',
|
|
18
|
+
'undefined',
|
|
19
|
+
'void',
|
|
20
|
+
'unknown',
|
|
21
|
+
'never',
|
|
22
|
+
].includes(inputSchema)) {
|
|
14
23
|
return [];
|
|
15
24
|
}
|
|
16
25
|
const uniqueName = typesMap.getUniqueName(inputSchema);
|
|
@@ -44,11 +53,11 @@ export const pikkuMCP = pikkuSessionlessFunc({
|
|
|
44
53
|
func: async ({ logger, config, getInspectorState }) => {
|
|
45
54
|
const { mcpEndpoints, functions } = await getInspectorState();
|
|
46
55
|
const { mcpWiringsFile, mcpWiringsMetaFile, packageMappings, schemaDirectory, schema, } = config;
|
|
47
|
-
await writeFileInDir(logger, mcpWiringsFile, serializeFileImports('wireMCPResource
|
|
56
|
+
await writeFileInDir(logger, mcpWiringsFile, serializeFileImports('wireMCPResource', mcpWiringsFile, mcpEndpoints.files, packageMappings));
|
|
48
57
|
// Populate arguments for prompts meta before serializing
|
|
49
58
|
const promptsMetaWithArguments = { ...mcpEndpoints.promptsMeta };
|
|
50
59
|
for (const promptMeta of Object.values(promptsMetaWithArguments)) {
|
|
51
|
-
const functionMeta = functions.meta[promptMeta.
|
|
60
|
+
const functionMeta = functions.meta[promptMeta.pikkuFuncId];
|
|
52
61
|
if (functionMeta) {
|
|
53
62
|
const inputType = functionMeta.inputs?.[0];
|
|
54
63
|
promptMeta.arguments = await generateArgumentsFromSchema(inputType || null, schemaDirectory || '', functions.typesMap, logger);
|
|
@@ -72,7 +81,7 @@ export const pikkuMCP = pikkuSessionlessFunc({
|
|
|
72
81
|
const importStatement = supportsImportAttributes
|
|
73
82
|
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
74
83
|
: `import metaData from '${jsonImportPath}'`;
|
|
75
|
-
await writeFileInDir(logger, mcpWiringsMetaFile, `import { pikkuState } from '@pikku/core'
|
|
84
|
+
await writeFileInDir(logger, mcpWiringsMetaFile, `import { pikkuState } from '@pikku/core/internal'
|
|
76
85
|
import type { MCPResourceMeta, MCPToolMeta, MCPPromptMeta } from '@pikku/core/mcp'
|
|
77
86
|
${importStatement}
|
|
78
87
|
pikkuState(null, 'mcp', 'resourcesMeta', metaData.resourcesMeta as MCPResourceMeta)
|
|
@@ -8,10 +8,8 @@ export const serializeMCPTypes = (functionTypesImportPath) => {
|
|
|
8
8
|
|
|
9
9
|
import {
|
|
10
10
|
CoreMCPResource,
|
|
11
|
-
CoreMCPTool,
|
|
12
11
|
CoreMCPPrompt,
|
|
13
12
|
wireMCPResource as wireMCPResourceCore,
|
|
14
|
-
wireMCPTool as wireMCPToolCore,
|
|
15
13
|
wireMCPPrompt as wireMCPPromptCore,
|
|
16
14
|
MCPResourceResponse,
|
|
17
15
|
MCPToolResponse,
|
|
@@ -19,8 +17,9 @@ import {
|
|
|
19
17
|
AssertMCPResourceURIParams
|
|
20
18
|
} from '@pikku/core/mcp'
|
|
21
19
|
|
|
22
|
-
import type { PikkuFunctionConfig, PikkuFunctionSessionless,
|
|
23
|
-
import type {
|
|
20
|
+
import type { PikkuFunctionConfig, PikkuFunctionSessionless, PikkuMiddleware, PikkuPermission, InferSchemaOutput } from '${functionTypesImportPath}'
|
|
21
|
+
import type { CorePermissionGroup } from '@pikku/core'
|
|
22
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec'
|
|
24
23
|
|
|
25
24
|
/**
|
|
26
25
|
* Type definition for MCP resources that provide data to AI models.
|
|
@@ -30,13 +29,6 @@ import type { ZodLike } from '@pikku/core'
|
|
|
30
29
|
*/
|
|
31
30
|
type MCPResourceWiring<In, URI extends string> = CoreMCPResource<PikkuFunctionConfig<In, MCPResourceResponse, 'rpc' | 'session' | 'mcp'>> & { uri: URI }
|
|
32
31
|
|
|
33
|
-
/**
|
|
34
|
-
* Type definition for MCP tools that AI models can invoke.
|
|
35
|
-
*
|
|
36
|
-
* @template In - Input type for the tool invocation
|
|
37
|
-
*/
|
|
38
|
-
type MCPToolWiring<In> = CoreMCPTool<PikkuFunctionConfig<In, MCPToolResponse, 'rpc' | 'session' | 'mcp'>>
|
|
39
|
-
|
|
40
32
|
/**
|
|
41
33
|
* Type definition for MCP prompts that provide templates to AI models.
|
|
42
34
|
*
|
|
@@ -58,19 +50,6 @@ export const wireMCPResource = <In, URI extends string>(
|
|
|
58
50
|
wireMCPResourceCore(mcpResource as any)
|
|
59
51
|
}
|
|
60
52
|
|
|
61
|
-
/**
|
|
62
|
-
* Registers an MCP tool with the Pikku framework.
|
|
63
|
-
* Tools are functions that AI models can invoke.
|
|
64
|
-
*
|
|
65
|
-
* @template In - Input type for the tool invocation
|
|
66
|
-
* @param mcpTool - MCP tool definition with action function
|
|
67
|
-
*/
|
|
68
|
-
export const wireMCPTool = <In>(
|
|
69
|
-
mcpTool: MCPToolWiring<In>
|
|
70
|
-
) => {
|
|
71
|
-
wireMCPToolCore(mcpTool as any)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
53
|
/**
|
|
75
54
|
* Registers an MCP prompt with the Pikku framework.
|
|
76
55
|
* Prompts provide templates that AI models can use.
|
|
@@ -87,8 +66,8 @@ export const wireMCPPrompt = <In>(
|
|
|
87
66
|
/**
|
|
88
67
|
* Configuration for MCP prompt with Zod schema input validation.
|
|
89
68
|
*/
|
|
90
|
-
type MCPPromptFuncConfigWithSchema<InputSchema extends
|
|
91
|
-
func: PikkuFunctionSessionless<
|
|
69
|
+
type MCPPromptFuncConfigWithSchema<InputSchema extends StandardSchemaV1> = {
|
|
70
|
+
func: PikkuFunctionSessionless<InferSchemaOutput<InputSchema>, MCPPromptResponse, 'mcp' | 'rpc'>
|
|
92
71
|
name?: string
|
|
93
72
|
input: InputSchema
|
|
94
73
|
}
|
|
@@ -105,9 +84,9 @@ type MCPPromptFuncConfigWithSchema<InputSchema extends ZodLike> = {
|
|
|
105
84
|
* @param func - Function definition, either direct function or configuration object
|
|
106
85
|
* @returns The unwrapped function for internal use
|
|
107
86
|
*/
|
|
108
|
-
export function pikkuMCPPromptFunc<InputSchema extends
|
|
87
|
+
export function pikkuMCPPromptFunc<InputSchema extends StandardSchemaV1>(
|
|
109
88
|
config: MCPPromptFuncConfigWithSchema<InputSchema>
|
|
110
|
-
): PikkuFunctionConfig<
|
|
89
|
+
): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, MCPPromptResponse, 'mcp' | 'rpc'>
|
|
111
90
|
export function pikkuMCPPromptFunc<In>(
|
|
112
91
|
func:
|
|
113
92
|
| PikkuFunctionSessionless<In, MCPPromptResponse, 'mcp' | 'rpc'>
|
|
@@ -123,9 +102,15 @@ export function pikkuMCPPromptFunc(func: any): any {
|
|
|
123
102
|
/**
|
|
124
103
|
* Configuration for MCP tool with Zod schema input validation.
|
|
125
104
|
*/
|
|
126
|
-
type MCPToolFuncConfigWithSchema<InputSchema extends
|
|
127
|
-
func: PikkuFunctionSessionless<
|
|
105
|
+
type MCPToolFuncConfigWithSchema<InputSchema extends StandardSchemaV1> = {
|
|
106
|
+
func: PikkuFunctionSessionless<InferSchemaOutput<InputSchema>, MCPToolResponse, 'mcp' | 'rpc'>
|
|
107
|
+
description?: string
|
|
108
|
+
tags?: string[]
|
|
109
|
+
title?: string
|
|
110
|
+
summary?: string
|
|
128
111
|
name?: string
|
|
112
|
+
middleware?: PikkuMiddleware[]
|
|
113
|
+
permissions?: CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>>
|
|
129
114
|
input: InputSchema
|
|
130
115
|
}
|
|
131
116
|
|
|
@@ -141,15 +126,21 @@ type MCPToolFuncConfigWithSchema<InputSchema extends ZodLike> = {
|
|
|
141
126
|
* @param func - Function definition, either direct function or configuration object
|
|
142
127
|
* @returns The unwrapped function for internal use
|
|
143
128
|
*/
|
|
144
|
-
export function pikkuMCPToolFunc<InputSchema extends
|
|
129
|
+
export function pikkuMCPToolFunc<InputSchema extends StandardSchemaV1>(
|
|
145
130
|
config: MCPToolFuncConfigWithSchema<InputSchema>
|
|
146
|
-
): PikkuFunctionConfig<
|
|
131
|
+
): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, MCPToolResponse, 'mcp' | 'rpc'>
|
|
147
132
|
export function pikkuMCPToolFunc<In>(
|
|
148
133
|
func:
|
|
149
134
|
| PikkuFunctionSessionless<In, MCPToolResponse, 'mcp' | 'rpc'>
|
|
150
135
|
| {
|
|
151
136
|
func: PikkuFunctionSessionless<In, MCPToolResponse, 'mcp' | 'rpc'>
|
|
137
|
+
description?: string
|
|
138
|
+
tags?: string[]
|
|
139
|
+
title?: string
|
|
140
|
+
summary?: string
|
|
152
141
|
name?: string
|
|
142
|
+
middleware?: PikkuMiddleware[]
|
|
143
|
+
permissions?: CorePermissionGroup<PikkuPermission<In>>
|
|
153
144
|
}
|
|
154
145
|
): PikkuFunctionConfig<In, MCPToolResponse, 'mcp' | 'rpc'>
|
|
155
146
|
export function pikkuMCPToolFunc(func: any): any {
|
|
@@ -159,8 +150,8 @@ export function pikkuMCPToolFunc(func: any): any {
|
|
|
159
150
|
/**
|
|
160
151
|
* Configuration for MCP resource with Zod schema input validation.
|
|
161
152
|
*/
|
|
162
|
-
type MCPResourceFuncConfigWithSchema<InputSchema extends
|
|
163
|
-
func: PikkuFunctionSessionless<
|
|
153
|
+
type MCPResourceFuncConfigWithSchema<InputSchema extends StandardSchemaV1> = {
|
|
154
|
+
func: PikkuFunctionSessionless<InferSchemaOutput<InputSchema>, MCPResourceResponse, 'mcp' | 'rpc'>
|
|
164
155
|
name?: string
|
|
165
156
|
input: InputSchema
|
|
166
157
|
}
|
|
@@ -177,9 +168,9 @@ type MCPResourceFuncConfigWithSchema<InputSchema extends ZodLike> = {
|
|
|
177
168
|
* @param func - Function definition, either direct function or configuration object
|
|
178
169
|
* @returns The unwrapped function for internal use
|
|
179
170
|
*/
|
|
180
|
-
export function pikkuMCPResourceFunc<InputSchema extends
|
|
171
|
+
export function pikkuMCPResourceFunc<InputSchema extends StandardSchemaV1>(
|
|
181
172
|
config: MCPResourceFuncConfigWithSchema<InputSchema>
|
|
182
|
-
): PikkuFunctionConfig<
|
|
173
|
+
): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, MCPResourceResponse, 'mcp' | 'rpc'>
|
|
183
174
|
export function pikkuMCPResourceFunc<In>(
|
|
184
175
|
func:
|
|
185
176
|
| PikkuFunctionSessionless<In, MCPResourceResponse, 'mcp' | 'rpc'>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMiddleware:
|
|
1
|
+
export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,48 +1,25 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
4
|
import { serializeMiddlewareImports } from './serialize-middleware-imports.js';
|
|
5
|
-
import { serializeMiddlewareGroupsMeta } from './serialize-middleware-groups-meta.js';
|
|
6
|
-
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
7
5
|
export const pikkuMiddleware = pikkuSessionlessFunc({
|
|
8
6
|
func: async ({ logger, config, getInspectorState }) => {
|
|
9
7
|
const state = await getInspectorState();
|
|
10
8
|
const { middleware } = state;
|
|
11
|
-
const { middlewareFile, packageMappings
|
|
9
|
+
const { middlewareFile, packageMappings } = config;
|
|
12
10
|
let filesGenerated = false;
|
|
13
|
-
// Check if there are any middleware groups
|
|
14
11
|
const hasHTTPGroups = state.http.routeMiddleware.size > 0;
|
|
15
12
|
const hasTagGroups = state.middleware.tagMiddleware.size > 0;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
13
|
+
const hasDefinitions = Object.keys(state.middleware.definitions).length > 0;
|
|
14
|
+
const hasChannelMiddleware = state.channelMiddleware.tagMiddleware.size > 0 ||
|
|
15
|
+
Object.keys(state.channelMiddleware.definitions).length > 0;
|
|
16
|
+
if (hasHTTPGroups ||
|
|
17
|
+
hasTagGroups ||
|
|
18
|
+
hasDefinitions ||
|
|
19
|
+
hasChannelMiddleware) {
|
|
20
|
+
const metaData = state.middlewareGroupsMeta;
|
|
19
21
|
await writeFileInDir(logger, config.middlewareGroupsMetaJsonFile, JSON.stringify(metaData, null, 2));
|
|
20
|
-
|
|
21
|
-
const jsonImportPath = getFileImportRelativePath(config.middlewareGroupsMetaFile, config.middlewareGroupsMetaJsonFile, packageMappings);
|
|
22
|
-
// Write TypeScript file that imports JSON
|
|
23
|
-
const supportsImportAttributes = schema?.supportsImportAttributes ?? false;
|
|
24
|
-
const importStatement = supportsImportAttributes
|
|
25
|
-
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
26
|
-
: `import metaData from '${jsonImportPath}'`;
|
|
27
|
-
const packageNameValue = config.externalPackageName
|
|
28
|
-
? `'${config.externalPackageName}'`
|
|
29
|
-
: 'null';
|
|
30
|
-
const tsContent = `import { pikkuState } from '@pikku/core'
|
|
31
|
-
${importStatement}
|
|
32
|
-
|
|
33
|
-
// HTTP middleware groups metadata
|
|
34
|
-
if (metaData.httpGroups && Object.keys(metaData.httpGroups).length > 0) {
|
|
35
|
-
pikkuState(${packageNameValue}, 'middleware', 'httpGroupMeta', metaData.httpGroups)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Tag middleware groups metadata
|
|
39
|
-
if (metaData.tagGroups && Object.keys(metaData.tagGroups).length > 0) {
|
|
40
|
-
pikkuState(${packageNameValue}, 'middleware', 'tagGroupMeta', metaData.tagGroups)
|
|
41
|
-
}
|
|
42
|
-
`;
|
|
43
|
-
await writeFileInDir(logger, config.middlewareGroupsMetaFile, tsContent);
|
|
44
|
-
// Always generate middleware imports file when groups exist (even if empty)
|
|
45
|
-
await writeFileInDir(logger, middlewareFile, serializeMiddlewareImports(middlewareFile, middleware, state.http, packageMappings));
|
|
22
|
+
await writeFileInDir(logger, middlewareFile, serializeMiddlewareImports(middlewareFile, middleware, state.http, packageMappings, state));
|
|
46
23
|
filesGenerated = true;
|
|
47
24
|
}
|
|
48
25
|
return filesGenerated;
|
|
@@ -1,43 +1,38 @@
|
|
|
1
1
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
2
|
-
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
// Collect factory imports and calls for HTTP middleware groups
|
|
6
|
-
const httpFactories = new Map();
|
|
7
|
-
for (const [, groupMeta] of httpState.routeMiddleware.entries()) {
|
|
8
|
-
if (groupMeta.exportName && groupMeta.isFactory) {
|
|
9
|
-
const filePath = getFileImportRelativePath(outputPath, groupMeta.sourceFile, packageMappings);
|
|
10
|
-
httpFactories.set(groupMeta.exportName, {
|
|
11
|
-
exportName: groupMeta.exportName,
|
|
12
|
-
filePath,
|
|
13
|
-
});
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
// Collect factory imports and calls for tag middleware groups
|
|
17
|
-
const tagFactories = new Map();
|
|
18
|
-
for (const [, groupMeta] of middlewareState.tagMiddleware.entries()) {
|
|
2
|
+
const collectFactories = (groupMap, outputPath, packageMappings) => {
|
|
3
|
+
const factories = new Map();
|
|
4
|
+
for (const [, groupMeta] of groupMap.entries()) {
|
|
19
5
|
if (groupMeta.exportName && groupMeta.isFactory) {
|
|
20
6
|
const filePath = getFileImportRelativePath(outputPath, groupMeta.sourceFile, packageMappings);
|
|
21
|
-
|
|
7
|
+
factories.set(groupMeta.exportName, {
|
|
22
8
|
exportName: groupMeta.exportName,
|
|
23
9
|
filePath,
|
|
24
10
|
});
|
|
25
11
|
}
|
|
26
12
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
13
|
+
return factories;
|
|
14
|
+
};
|
|
15
|
+
export const serializeMiddlewareImports = (outputPath, middlewareState, httpState, packageMappings = {}, fullState) => {
|
|
16
|
+
const serializedImports = [];
|
|
17
|
+
const serializedFactoryCalls = [];
|
|
18
|
+
const httpFactories = collectFactories(httpState.routeMiddleware, outputPath, packageMappings);
|
|
19
|
+
const tagFactories = collectFactories(middlewareState.tagMiddleware, outputPath, packageMappings);
|
|
20
|
+
const channelMiddlewareFactories = fullState
|
|
21
|
+
? collectFactories(fullState.channelMiddleware.tagMiddleware, outputPath, packageMappings)
|
|
22
|
+
: new Map();
|
|
23
|
+
const allFactories = new Map([
|
|
24
|
+
...httpFactories,
|
|
25
|
+
...tagFactories,
|
|
26
|
+
...channelMiddlewareFactories,
|
|
27
|
+
]);
|
|
30
28
|
if (allFactories.size > 0) {
|
|
31
29
|
serializedImports.push('/* Call middleware group factories to register at module evaluation */');
|
|
32
|
-
// Import factories
|
|
33
30
|
for (const [exportName, { filePath }] of allFactories) {
|
|
34
31
|
serializedImports.push(`import { ${exportName} } from '${filePath}'`);
|
|
35
32
|
}
|
|
36
|
-
// Call factories
|
|
37
33
|
for (const [exportName] of allFactories) {
|
|
38
34
|
serializedFactoryCalls.push(`${exportName}()`);
|
|
39
35
|
}
|
|
40
36
|
}
|
|
41
|
-
// Return combined output
|
|
42
37
|
return [...serializedImports, ...serializedFactoryCalls].join('\n');
|
|
43
38
|
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
2
|
+
export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { pikkuVoidFunc } from '#pikku';
|
|
2
|
+
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
|
+
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
|
+
import { serializeSecretDefinitionTypes, serializeVariableDefinitionTypes, } from './serialize-package-types.js';
|
|
5
|
+
export const pikkuSecretDefinitionTypes = pikkuVoidFunc({
|
|
6
|
+
func: async ({ logger, config }) => {
|
|
7
|
+
const { secretTypesFile } = config;
|
|
8
|
+
const content = serializeSecretDefinitionTypes();
|
|
9
|
+
await writeFileInDir(logger, secretTypesFile, content);
|
|
10
|
+
},
|
|
11
|
+
middleware: [
|
|
12
|
+
logCommandInfoAndTime({
|
|
13
|
+
commandStart: 'Creating Secret definition types',
|
|
14
|
+
commandEnd: 'Created Secret definition types',
|
|
15
|
+
}),
|
|
16
|
+
],
|
|
17
|
+
});
|
|
18
|
+
export const pikkuVariableDefinitionTypes = pikkuVoidFunc({
|
|
19
|
+
func: async ({ logger, config }) => {
|
|
20
|
+
const { variableTypesFile } = config;
|
|
21
|
+
const content = serializeVariableDefinitionTypes();
|
|
22
|
+
await writeFileInDir(logger, variableTypesFile, content);
|
|
23
|
+
},
|
|
24
|
+
middleware: [
|
|
25
|
+
logCommandInfoAndTime({
|
|
26
|
+
commandStart: 'Creating Variable definition types',
|
|
27
|
+
commandEnd: 'Created Variable definition types',
|
|
28
|
+
}),
|
|
29
|
+
],
|
|
30
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPackage:
|
|
1
|
+
export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
4
|
import { serializePackageFactories } from './serialize-package.js';
|
|
5
5
|
export const pikkuPackage = pikkuSessionlessFunc({
|
|
6
6
|
func: async ({ logger, config, getInspectorState }) => {
|
|
7
|
-
const {
|
|
8
|
-
// Only generate for
|
|
9
|
-
if (!
|
|
10
|
-
logger.
|
|
11
|
-
message: 'Skipping package factories - not an
|
|
7
|
+
const { addonName, packageMappings, packageFile } = config;
|
|
8
|
+
// Only generate for addon packages
|
|
9
|
+
if (!addonName) {
|
|
10
|
+
logger.debug({
|
|
11
|
+
message: 'Skipping package factories - not an addon package (addonName not set)',
|
|
12
12
|
type: 'skip',
|
|
13
13
|
});
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
16
|
if (!packageFile) {
|
|
17
|
-
logger.
|
|
17
|
+
logger.debug({
|
|
18
18
|
message: 'Skipping package factories - packageFile not configured',
|
|
19
19
|
type: 'skip',
|
|
20
20
|
});
|
|
@@ -23,7 +23,7 @@ export const pikkuPackage = pikkuSessionlessFunc({
|
|
|
23
23
|
const state = await getInspectorState();
|
|
24
24
|
const { filesAndMethods } = state;
|
|
25
25
|
const { pikkuConfigFactory, singletonServicesFactory, wireServicesFactory, } = filesAndMethods;
|
|
26
|
-
const content = serializePackageFactories(packageFile,
|
|
26
|
+
const content = serializePackageFactories(packageFile, addonName, pikkuConfigFactory
|
|
27
27
|
? {
|
|
28
28
|
file: pikkuConfigFactory.file,
|
|
29
29
|
variable: pikkuConfigFactory.variable,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export const serializeSecretDefinitionTypes = () => {
|
|
2
|
+
return `export { wireSecret } from '@pikku/core/secret'
|
|
3
|
+
export type { CoreSecret, SecretDefinitionMeta, SecretDefinitionsMeta } from '@pikku/core/secret'
|
|
4
|
+
`;
|
|
5
|
+
};
|
|
6
|
+
export const serializeVariableDefinitionTypes = () => {
|
|
7
|
+
return `export { wireVariable } from '@pikku/core/variable'
|
|
8
|
+
export type { CoreVariable, VariableDefinitionMeta, VariableDefinitionsMeta } from '@pikku/core/variable'
|
|
9
|
+
`;
|
|
10
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
2
2
|
export const serializePackageFactories = (outputPath, packageName, configFactory, singletonServicesFactory, wireServicesFactory, packageMappings = {}) => {
|
|
3
3
|
const imports = [
|
|
4
|
-
`import {
|
|
4
|
+
`import { pikkuState } from '@pikku/core/internal'`,
|
|
5
5
|
];
|
|
6
6
|
const factoryEntries = [];
|
|
7
7
|
if (configFactory) {
|
|
@@ -25,7 +25,7 @@ export const serializePackageFactories = (outputPath, packageName, configFactory
|
|
|
25
25
|
}
|
|
26
26
|
return `${imports.join('\n')}
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
pikkuState('${packageName}', 'package', 'factories', {
|
|
29
29
|
${factoryEntries.join('\n')}
|
|
30
30
|
})
|
|
31
31
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPermissions:
|
|
1
|
+
export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
4
|
import { serializePermissionsImports } from './serialize-permissions-imports.js';
|
|
@@ -8,12 +8,12 @@ export const pikkuPermissions = pikkuSessionlessFunc({
|
|
|
8
8
|
const { permissions } = state;
|
|
9
9
|
const { permissionsFile, packageMappings } = config;
|
|
10
10
|
let filesGenerated = false;
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
const hasHTTPGroups = state.http.routePermissions.size > 0;
|
|
12
|
+
const hasTagGroups = state.permissions.tagPermissions.size > 0;
|
|
13
|
+
const hasIndividual = Object.keys(state.permissions.definitions).length > 0;
|
|
14
|
+
if (hasHTTPGroups || hasTagGroups || hasIndividual) {
|
|
15
|
+
const metaData = state.permissionsGroupsMeta;
|
|
16
|
+
await writeFileInDir(logger, config.permissionsGroupsMetaJsonFile, JSON.stringify(metaData, null, 2));
|
|
17
17
|
await writeFileInDir(logger, permissionsFile, serializePermissionsImports(permissionsFile, permissions, state.http, packageMappings));
|
|
18
18
|
filesGenerated = true;
|
|
19
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuQueueMap:
|
|
1
|
+
export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|