@pikku/cli 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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-C19L3UJu.js +637 -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 +29 -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 +19 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js +4 -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 +65 -10
- package/dist/.pikku/channel/pikku-channel-types.gen.js +23 -16
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -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 +18 -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 +45 -12
- 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 +180 -37
- package/dist/.pikku/function/pikku-function-types.gen.js +63 -53
- package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
- package/dist/.pikku/function/pikku-functions-meta.gen.json +624 -506
- 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 +54 -3
- package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
- 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 +68 -29
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +8 -42
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +4 -4
- 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 +9 -10
- package/dist/.pikku/pikku-bootstrap.gen.js +17 -8
- package/dist/.pikku/pikku-services.gen.d.ts +7 -2
- package/dist/.pikku/pikku-services.gen.js +5 -0
- package/dist/.pikku/pikku-types.gen.d.ts +4 -1
- package/dist/.pikku/pikku-types.gen.js +7 -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 +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 +6 -3
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +6 -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 +61 -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 +33 -15
- 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/PikkuConsoleFunctionsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
- 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/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 +71 -53
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +23 -35
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -3
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +2 -6
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +2 -6
- package/dist/bin/pikku.js +20 -47
- package/dist/src/cli.wiring.js +29 -2
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/all.js +109 -168
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +13 -29
- package/dist/src/functions/commands/console.d.ts +7 -0
- package/dist/src/functions/commands/console.js +106 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -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 +17 -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 -8
- 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 +49 -43
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +45 -35
- 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 +19 -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 +31 -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 +90 -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 +19 -3
- package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +97 -10
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +9 -10
- 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 +11 -3
- 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 +2 -2
- 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 +23 -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 +229 -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-external-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/pikku-command-external-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 +8 -3
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +34 -19
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +2 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
- package/dist/src/functions/wirings/functions/schemas.js +8 -9
- package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
- package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +4 -3
- package/dist/src/functions/wirings/functions/serialize-function-imports.js +16 -19
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +256 -42
- 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 +22 -21
- 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 +19 -3
- 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 +64 -3
- package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
- package/dist/src/functions/wirings/http/serialize-typed-http-map.js +43 -31
- 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 +28 -10
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +81 -38
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -31
- 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 -0
- package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
- 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.d.ts +5 -0
- package/dist/src/functions/wirings/package/serialize-package.js +32 -0
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
- 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 +11 -3
- 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 +2 -10
- package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
- package/dist/src/functions/wirings/queue/serialize-queue-map.js +13 -24
- 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 +12 -7
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +5 -2
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +130 -59
- 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 +11 -2
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
- 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 +29 -20
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +7 -2
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +87 -38
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -3
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +42 -18
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +26 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -4
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +121 -63
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +15 -28
- package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
- package/dist/src/services/cli-logger-forwarder.service.js +1 -1
- package/dist/src/services/cli-logger.service.d.ts +1 -1
- package/dist/src/services/cli-logger.service.js +1 -1
- package/dist/src/services.d.ts +1 -1
- package/dist/src/services.js +56 -6
- package/dist/src/utils/command-summary.d.ts +3 -0
- package/dist/src/utils/command-summary.js +3 -0
- 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/generate-bootstrap-file.js +1 -1
- package/dist/src/utils/pikku-cli-config.js +104 -13
- package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
- package/dist/src/utils/pikku-files-and-methods.js +15 -60
- package/dist/src/utils/serialize-import-map.d.ts +2 -1
- package/dist/src/utils/serialize-import-map.js +3 -54
- 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 +43 -0
- package/dist/src/utils/strip-verbose-meta.js +210 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -8
- package/.pikku/channel/pikku-channel-types.gen.ts +0 -91
- package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
- package/.pikku/channel/pikku-channels-meta.gen.ts +0 -5
- 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 -146
- 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/function/pikku-function-types.gen.ts +0 -426
- package/.pikku/function/pikku-functions-meta.gen.json +0 -988
- package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
- package/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
- package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -6
- package/.pikku/http/pikku-http-types.gen.ts +0 -86
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -13
- package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -140
- 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 -19
- package/.pikku/pikku-services.gen.ts +0 -27
- package/.pikku/pikku-types.gen.ts +0 -27
- 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 -27
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -57
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -99
- 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 -63
- 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/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/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 -99
- 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/variables.gen.json +0 -13
- package/.pikku/services/workflowService.gen.json +0 -31
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -62
- package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -97
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +0 -1
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -8
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -8
- package/CHANGELOG.md +0 -935
- package/bin/pikku.ts +0 -88
- package/build.sh +0 -75
- package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -6
- package/dist/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
- 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/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 -101
- 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/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -13
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +0 -8
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +0 -30
- package/dist/src/utils/custom-types-generator.d.ts +0 -2
- package/dist/src/utils/custom-types-generator.js +0 -43
- package/dist/src/utils/schema-generator.d.ts +0 -6
- package/dist/src/utils/schema-generator.js +0 -118
- 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 -266
- package/src/functions/commands/bootstrap.ts +0 -43
- package/src/functions/commands/watch.ts +0 -61
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -132
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -268
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -201
- 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 -40
- package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
- package/src/functions/wirings/channels/serialize-channel-types.ts +0 -94
- package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -172
- 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 -62
- 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/functions/pikku-command-function-types-split.ts +0 -60
- package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -43
- package/src/functions/wirings/functions/pikku-command-functions.ts +0 -94
- package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
- package/src/functions/wirings/functions/pikku-function-types.ts +0 -43
- package/src/functions/wirings/functions/schemas.ts +0 -46
- package/src/functions/wirings/functions/serialize-function-imports.ts +0 -71
- package/src/functions/wirings/functions/serialize-function-types.ts +0 -439
- package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -38
- 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 -36
- package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
- package/src/functions/wirings/http/pikku-command-openapi.ts +0 -63
- 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 -89
- package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -154
- 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 -140
- package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -159
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -143
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -85
- 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/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 -66
- package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-queue.ts +0 -75
- package/src/functions/wirings/queue/serialize-queue-map.ts +0 -119
- 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 -48
- 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 -30
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
- package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -128
- package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -67
- 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-map.ts +0 -24
- package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -29
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -151
- package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -123
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -33
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -103
- package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +0 -47
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -60
- 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 -315
- package/src/utils/check-required-types.ts +0 -65
- package/src/utils/command-summary.ts +0 -103
- 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 -462
- package/src/utils/pikku-files-and-methods.ts +0 -145
- package/src/utils/schema-generator.ts +0 -172
- package/src/utils/serialize-import-map.ts +0 -102
- package/tsconfig.json +0 -21
- package/types/application-types.d.ts +0 -27
- package/types/config.d.ts +0 -270
- /package/dist/.pikku/{function/pikku-functions-meta.min.gen.d.ts → agent/pikku-agent-wirings-meta.gen.d.ts} +0 -0
- /package/dist/.pikku/{workflow/pikku-workflow-wirings-meta.gen.json → channel/pikku-channels-meta.gen.json} +0 -0
- /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,12 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generates core function, middleware, and permission type definitions
|
|
3
3
|
*/
|
|
4
|
-
export const serializeFunctionTypes = (userSessionTypeImport, userSessionTypeName, singletonServicesTypeImport, singletonServicesTypeName, wireServicesTypeImport, wireServicesTypeName, rpcMapTypeImport, requiredServicesTypeImport, configTypeImport) => {
|
|
4
|
+
export const serializeFunctionTypes = (userSessionTypeImport, userSessionTypeName, singletonServicesTypeImport, singletonServicesTypeName, wireServicesTypeImport, wireServicesTypeName, rpcMapTypeImport, requiredServicesTypeImport, configTypeImport, packageName, workflowTypesImport, nodeCategories) => {
|
|
5
|
+
const packageNameValue = packageName ? `'${packageName}'` : 'null';
|
|
6
|
+
const nodeCategoryType = nodeCategories?.length
|
|
7
|
+
? nodeCategories.map((c) => `'${c}'`).join(' | ')
|
|
8
|
+
: 'string';
|
|
9
|
+
const workflowImport = workflowTypesImport ||
|
|
10
|
+
`import type { TypedWorkflow } from '../workflow/pikku-workflow-types.gen.js'`;
|
|
5
11
|
return `/**
|
|
6
12
|
* Core function, middleware, and permission types for all wirings
|
|
7
13
|
*/
|
|
8
14
|
|
|
9
|
-
import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore, PikkuWire, PickRequired } from '@pikku/core'
|
|
15
|
+
import { CorePikkuFunctionConfig, CorePikkuAuth, CorePikkuAuthConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, addMiddleware as addMiddlewareCore, addPermission as addPermissionCore, PikkuWire, PickRequired, CreateWireServices } from '@pikku/core'
|
|
16
|
+
import { pikkuAuth as pikkuAuthCore } from '@pikku/core'
|
|
17
|
+
import type { NodeType } from '@pikku/core/node'
|
|
18
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec'
|
|
10
19
|
import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function'
|
|
11
20
|
|
|
12
21
|
${userSessionTypeImport}
|
|
@@ -15,11 +24,22 @@ ${wireServicesTypeImport}
|
|
|
15
24
|
${configTypeImport}
|
|
16
25
|
${rpcMapTypeImport}
|
|
17
26
|
${requiredServicesTypeImport}
|
|
27
|
+
${workflowImport}
|
|
18
28
|
|
|
19
|
-
${singletonServicesTypeName !== 'SingletonServices' ? `type SingletonServices = ${singletonServicesTypeName}` :
|
|
20
|
-
${wireServicesTypeName !== 'Services' ? `type Services = ${wireServicesTypeName}` :
|
|
21
|
-
${userSessionTypeName !== 'Session' ? `type Session = ${userSessionTypeName}` :
|
|
22
|
-
${configTypeImport.includes('Config type not found') ? 'type Config = any' : ''}
|
|
29
|
+
${singletonServicesTypeName !== 'SingletonServices' ? `export type SingletonServices = ${singletonServicesTypeName}` : `export type { ${singletonServicesTypeName} as SingletonServices }`}
|
|
30
|
+
${wireServicesTypeName !== 'Services' ? `export type Services = ${wireServicesTypeName}` : `export type { ${wireServicesTypeName} as Services }`}
|
|
31
|
+
${userSessionTypeName !== 'Session' ? `export type Session = ${userSessionTypeName}` : `export type { ${userSessionTypeName} as Session }`}
|
|
32
|
+
${configTypeImport.includes('Config type not found') ? 'export type Config = any' : ''}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Inline node configuration for function definitions.
|
|
36
|
+
*/
|
|
37
|
+
export type NodeConfig = {
|
|
38
|
+
displayName: string
|
|
39
|
+
category: ${nodeCategoryType}
|
|
40
|
+
type: NodeType
|
|
41
|
+
errorOutput?: boolean
|
|
42
|
+
}
|
|
23
43
|
|
|
24
44
|
/**
|
|
25
45
|
* Type-safe API permission definition that integrates with your application's session type.
|
|
@@ -79,6 +99,46 @@ export const pikkuPermission = <In>(
|
|
|
79
99
|
return typeof permission === 'function' ? permission : permission.func
|
|
80
100
|
}
|
|
81
101
|
|
|
102
|
+
/**
|
|
103
|
+
* Type-safe auth-only permission that only needs services and session.
|
|
104
|
+
* Use this for upfront authorization gates (MCP tools, AI agents, workflows)
|
|
105
|
+
* where request data isn't available yet.
|
|
106
|
+
*
|
|
107
|
+
* @template RequiredServices - The services required for this auth check
|
|
108
|
+
*/
|
|
109
|
+
export type PikkuAuth<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuth<RequiredServices, Session>
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Configuration object for creating an auth permission with metadata
|
|
113
|
+
*/
|
|
114
|
+
export type PikkuAuthConfig<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuthConfig<RequiredServices, Session>
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Factory function for creating auth-only permissions with tree-shaking support.
|
|
118
|
+
* Auth permissions only receive services and session (no request data),
|
|
119
|
+
* making them evaluable before request data is available.
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* \\\`\\\`\\\`typescript
|
|
123
|
+
* const isAuthenticated = pikkuAuth(async ({ logger }, session) => {
|
|
124
|
+
* return !!session
|
|
125
|
+
* })
|
|
126
|
+
*
|
|
127
|
+
* const isAdmin = pikkuAuth({
|
|
128
|
+
* name: 'Admin Auth',
|
|
129
|
+
* description: 'Checks if user is an admin',
|
|
130
|
+
* func: async ({ logger }, session) => {
|
|
131
|
+
* return session?.role === 'admin'
|
|
132
|
+
* }
|
|
133
|
+
* })
|
|
134
|
+
* \\\`\\\`\\\`
|
|
135
|
+
*/
|
|
136
|
+
export const pikkuAuth = <RequiredServices extends SingletonServices = SingletonServices>(
|
|
137
|
+
auth: PikkuAuth<RequiredServices> | PikkuAuthConfig<RequiredServices>
|
|
138
|
+
): PikkuPermission<any, any> => {
|
|
139
|
+
return pikkuAuthCore(auth as any) as any
|
|
140
|
+
}
|
|
141
|
+
|
|
82
142
|
/**
|
|
83
143
|
* Configuration object for creating middleware with metadata
|
|
84
144
|
*/
|
|
@@ -152,8 +212,8 @@ export const pikkuMiddlewareFactory = <In = any>(
|
|
|
152
212
|
* export const requireRole = pikkuPermissionFactory<{ role: string }>(({
|
|
153
213
|
* role
|
|
154
214
|
* }) => {
|
|
155
|
-
* return pikkuPermission(async ({ logger }, data, {
|
|
156
|
-
* if (!
|
|
215
|
+
* return pikkuPermission(async ({ logger }, data, { session }) => {
|
|
216
|
+
* if (!session || session.role !== role) {
|
|
157
217
|
* logger.warn(\`Permission denied: required role '\${role}'\`)
|
|
158
218
|
* return false
|
|
159
219
|
* }
|
|
@@ -185,7 +245,8 @@ export type PikkuFunctionSessionless<
|
|
|
185
245
|
In,
|
|
186
246
|
Out,
|
|
187
247
|
RequiredServices,
|
|
188
|
-
|
|
248
|
+
Session,
|
|
249
|
+
PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any, TypedWorkflow>, RequiredWires>
|
|
189
250
|
>
|
|
190
251
|
|
|
191
252
|
/**
|
|
@@ -205,9 +266,15 @@ export type PikkuFunction<
|
|
|
205
266
|
In,
|
|
206
267
|
Out,
|
|
207
268
|
RequiredServices,
|
|
208
|
-
|
|
269
|
+
Session,
|
|
270
|
+
PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any, TypedWorkflow>, RequiredWires>
|
|
209
271
|
>
|
|
210
272
|
|
|
273
|
+
/**
|
|
274
|
+
* Helper type to infer the output type from a Standard Schema
|
|
275
|
+
*/
|
|
276
|
+
export type InferSchemaOutput<T> = T extends StandardSchemaV1<any, infer Output> ? Output : never
|
|
277
|
+
|
|
211
278
|
/**
|
|
212
279
|
* Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
|
|
213
280
|
* This type wraps CorePikkuFunctionConfig with the user's custom types.
|
|
@@ -220,64 +287,171 @@ export type PikkuFunctionConfig<
|
|
|
220
287
|
In = unknown,
|
|
221
288
|
Out = unknown,
|
|
222
289
|
RequiredWires extends keyof PikkuWire = never,
|
|
223
|
-
PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires
|
|
224
|
-
|
|
290
|
+
PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>,
|
|
291
|
+
InputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
292
|
+
OutputSchema extends StandardSchemaV1 | undefined = undefined
|
|
293
|
+
> = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware, InputSchema, OutputSchema>
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Configuration object for Pikku functions with Zod schema validation.
|
|
297
|
+
* Use this when you want to define input/output schemas using Zod.
|
|
298
|
+
* Types are automatically inferred from the schemas.
|
|
299
|
+
*/
|
|
300
|
+
export type PikkuFunctionConfigWithSchema<
|
|
301
|
+
InputSchema extends StandardSchemaV1,
|
|
302
|
+
OutputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
303
|
+
RequiredWires extends keyof PikkuWire = never
|
|
304
|
+
> = {
|
|
305
|
+
name?: string
|
|
306
|
+
tags?: string[]
|
|
307
|
+
expose?: boolean
|
|
308
|
+
mcp?: boolean
|
|
309
|
+
internal?: boolean
|
|
310
|
+
func: PikkuFunction<
|
|
311
|
+
InferSchemaOutput<InputSchema>,
|
|
312
|
+
OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown,
|
|
313
|
+
RequiredWires
|
|
314
|
+
> | PikkuFunctionSessionless<
|
|
315
|
+
InferSchemaOutput<InputSchema>,
|
|
316
|
+
OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown,
|
|
317
|
+
RequiredWires
|
|
318
|
+
>
|
|
319
|
+
auth?: boolean
|
|
320
|
+
permissions?: CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>>
|
|
321
|
+
middleware?: PikkuMiddleware[]
|
|
322
|
+
input: InputSchema
|
|
323
|
+
output?: OutputSchema
|
|
324
|
+
node?: NodeConfig
|
|
325
|
+
}
|
|
225
326
|
|
|
226
327
|
/**
|
|
227
328
|
* Creates a Pikku function that can be either session-aware or sessionless.
|
|
228
329
|
* This is the main function wrapper for creating API endpoints.
|
|
229
330
|
*
|
|
230
|
-
*
|
|
231
|
-
*
|
|
331
|
+
* Supports two patterns:
|
|
332
|
+
* 1. Generic types: \`pikkuFunc<Input, Output>({ func: ... })\`
|
|
333
|
+
* 2. Zod schemas: \`pikkuFunc({ input: z.object(...), output: z.object(...), func: ... })\`
|
|
334
|
+
*
|
|
335
|
+
* @template In - Input type for the function (inferred from schema if provided)
|
|
336
|
+
* @template Out - Output type for the function (inferred from schema if provided)
|
|
232
337
|
* @param func - Function definition, either direct function or configuration object
|
|
233
338
|
* @returns The normalized configuration object
|
|
234
339
|
*
|
|
235
340
|
* @example
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
240
|
-
* logger.info('Creating user', input.name)
|
|
341
|
+
* \`\`\`typescript
|
|
342
|
+
* // Pattern 1: Using generic types
|
|
343
|
+
* const createUser = pikkuFunc<{name: string, email: string}, {id: number}>({
|
|
344
|
+
* func: async ({db}, input) => {
|
|
241
345
|
* const user = await db.users.create(input)
|
|
242
|
-
* return {id: user.id
|
|
243
|
-
* }
|
|
244
|
-
* auth: true
|
|
346
|
+
* return { id: user.id }
|
|
347
|
+
* }
|
|
245
348
|
* })
|
|
246
|
-
*
|
|
349
|
+
*
|
|
350
|
+
* // Pattern 2: Using Zod schemas (types inferred automatically)
|
|
351
|
+
* const createUserInput = z.object({ name: z.string(), email: z.string() })
|
|
352
|
+
* const createUserOutput = z.object({ id: z.number() })
|
|
353
|
+
*
|
|
354
|
+
* const createUser = pikkuFunc({
|
|
355
|
+
* input: createUserInput,
|
|
356
|
+
* output: createUserOutput,
|
|
357
|
+
* func: async ({db}, input) => {
|
|
358
|
+
* // input is typed as { name: string, email: string }
|
|
359
|
+
* const user = await db.users.create(input)
|
|
360
|
+
* return { id: user.id } // must match output schema
|
|
361
|
+
* }
|
|
362
|
+
* })
|
|
363
|
+
* \`\`\`
|
|
247
364
|
*/
|
|
248
|
-
export
|
|
365
|
+
export function pikkuFunc<
|
|
366
|
+
InputSchema extends StandardSchemaV1,
|
|
367
|
+
OutputSchema extends StandardSchemaV1 | undefined = undefined
|
|
368
|
+
>(
|
|
369
|
+
config: PikkuFunctionConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>
|
|
370
|
+
): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'session' | 'rpc'>
|
|
371
|
+
export function pikkuFunc<In, Out = unknown>(
|
|
249
372
|
func:
|
|
250
373
|
| PikkuFunction<In, Out, 'session' | 'rpc'>
|
|
251
374
|
| PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
|
|
252
|
-
)
|
|
375
|
+
): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
|
|
376
|
+
export function pikkuFunc(func: any) {
|
|
253
377
|
return typeof func === 'function' ? { func } : func
|
|
254
378
|
}
|
|
255
379
|
|
|
380
|
+
/**
|
|
381
|
+
* Configuration object for sessionless Pikku functions with Zod schema validation.
|
|
382
|
+
*/
|
|
383
|
+
export type PikkuFunctionSessionlessConfigWithSchema<
|
|
384
|
+
InputSchema extends StandardSchemaV1,
|
|
385
|
+
OutputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
386
|
+
RequiredWires extends keyof PikkuWire = never
|
|
387
|
+
> = {
|
|
388
|
+
name?: string
|
|
389
|
+
description?: string
|
|
390
|
+
tags?: string[]
|
|
391
|
+
expose?: boolean
|
|
392
|
+
mcp?: boolean
|
|
393
|
+
internal?: boolean
|
|
394
|
+
remote?: boolean
|
|
395
|
+
func: PikkuFunctionSessionless<
|
|
396
|
+
InferSchemaOutput<InputSchema>,
|
|
397
|
+
OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown,
|
|
398
|
+
RequiredWires
|
|
399
|
+
>
|
|
400
|
+
auth?: boolean
|
|
401
|
+
permissions?: CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>>
|
|
402
|
+
middleware?: PikkuMiddleware[]
|
|
403
|
+
input: InputSchema
|
|
404
|
+
output?: OutputSchema
|
|
405
|
+
node?: NodeConfig
|
|
406
|
+
}
|
|
407
|
+
|
|
256
408
|
/**
|
|
257
409
|
* Creates a sessionless Pikku function that doesn't require user authentication.
|
|
258
410
|
* Use this for public endpoints, webhooks, or background tasks.
|
|
259
411
|
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
412
|
+
* Supports two patterns:
|
|
413
|
+
* 1. Generic types: \`pikkuSessionlessFunc<Input, Output>({ func: ... })\`
|
|
414
|
+
* 2. Zod schemas: \`pikkuSessionlessFunc({ input: z.object(...), func: ... })\`
|
|
415
|
+
*
|
|
416
|
+
* @template In - Input type for the function (inferred from schema if provided)
|
|
417
|
+
* @template Out - Output type for the function (inferred from schema if provided)
|
|
262
418
|
* @param func - Function definition, either direct function or configuration object
|
|
263
419
|
* @returns The normalized configuration object
|
|
264
420
|
*
|
|
265
421
|
* @example
|
|
266
|
-
*
|
|
267
|
-
*
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
* return {status: 'healthy'
|
|
271
|
-
* }
|
|
272
|
-
* name: 'healthCheck'
|
|
422
|
+
* \`\`\`typescript
|
|
423
|
+
* // Pattern 1: Using generic types
|
|
424
|
+
* const healthCheck = pikkuSessionlessFunc<void, {status: string}>({
|
|
425
|
+
* func: async ({logger}) => {
|
|
426
|
+
* return { status: 'healthy' }
|
|
427
|
+
* }
|
|
273
428
|
* })
|
|
274
|
-
*
|
|
429
|
+
*
|
|
430
|
+
* // Pattern 2: Using Zod schemas
|
|
431
|
+
* const greetInput = z.object({ name: z.string() })
|
|
432
|
+
* const greetOutput = z.object({ message: z.string() })
|
|
433
|
+
*
|
|
434
|
+
* const greet = pikkuSessionlessFunc({
|
|
435
|
+
* input: greetInput,
|
|
436
|
+
* output: greetOutput,
|
|
437
|
+
* func: async (_services, { name }) => {
|
|
438
|
+
* return { message: \`Hello, \${name}!\` }
|
|
439
|
+
* }
|
|
440
|
+
* })
|
|
441
|
+
* \`\`\`
|
|
275
442
|
*/
|
|
276
|
-
export
|
|
443
|
+
export function pikkuSessionlessFunc<
|
|
444
|
+
InputSchema extends StandardSchemaV1,
|
|
445
|
+
OutputSchema extends StandardSchemaV1 | undefined = undefined
|
|
446
|
+
>(
|
|
447
|
+
config: PikkuFunctionSessionlessConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>
|
|
448
|
+
): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'session' | 'rpc'>
|
|
449
|
+
export function pikkuSessionlessFunc<In, Out = unknown>(
|
|
277
450
|
func:
|
|
278
451
|
| PikkuFunctionSessionless<In, Out, 'session' | 'rpc'>
|
|
279
452
|
| PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
|
|
280
|
-
)
|
|
453
|
+
): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>
|
|
454
|
+
export function pikkuSessionlessFunc(func: any) {
|
|
281
455
|
return typeof func === 'function' ? { func } : func
|
|
282
456
|
}
|
|
283
457
|
|
|
@@ -289,13 +463,13 @@ export const pikkuSessionlessFunc = <In, Out = unknown>(
|
|
|
289
463
|
* @returns The normalized configuration object
|
|
290
464
|
*
|
|
291
465
|
* @example
|
|
292
|
-
*
|
|
466
|
+
* \`\`\`typescript
|
|
293
467
|
* const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
|
|
294
468
|
* logger.info('Starting cleanup of temporary files')
|
|
295
469
|
* await fileSystem.deleteDirectory('/tmp/uploads')
|
|
296
470
|
* logger.info('Cleanup completed')
|
|
297
471
|
* })
|
|
298
|
-
*
|
|
472
|
+
* \`\`\`
|
|
299
473
|
*/
|
|
300
474
|
export const pikkuVoidFunc = (
|
|
301
475
|
func:
|
|
@@ -305,6 +479,45 @@ export const pikkuVoidFunc = (
|
|
|
305
479
|
return typeof func === 'function' ? { func } : func
|
|
306
480
|
}
|
|
307
481
|
|
|
482
|
+
/**
|
|
483
|
+
* Creates a wrapper function for external package functions that are exposed via RPC.
|
|
484
|
+
* This allows you to wire external functions to any wiring type (HTTP, queue, etc.)
|
|
485
|
+
* without type compatibility issues.
|
|
486
|
+
*
|
|
487
|
+
* @template Name - The RPC method name (must be a key in FlattenedRPCMap)
|
|
488
|
+
* @param rpcName - The name of the RPC method to invoke
|
|
489
|
+
* @returns A Pikku function that proxies calls to the external RPC method
|
|
490
|
+
*
|
|
491
|
+
* @example
|
|
492
|
+
* \`\`\`typescript
|
|
493
|
+
* // Wire an external function via HTTP
|
|
494
|
+
* wireHTTP({
|
|
495
|
+
* auth: false,
|
|
496
|
+
* method: 'get',
|
|
497
|
+
* route: '/external/hello',
|
|
498
|
+
* func: external('ext:hello'),
|
|
499
|
+
* tags: ['external'],
|
|
500
|
+
* })
|
|
501
|
+
* \`\`\`
|
|
502
|
+
*/
|
|
503
|
+
export const external = <Name extends keyof FlattenedRPCMap>(
|
|
504
|
+
rpcName: Name
|
|
505
|
+
): PikkuFunctionConfig<
|
|
506
|
+
FlattenedRPCMap[Name]['input'],
|
|
507
|
+
FlattenedRPCMap[Name]['output'],
|
|
508
|
+
'session' | 'rpc'
|
|
509
|
+
> => {
|
|
510
|
+
return {
|
|
511
|
+
func: (async (_services: any, data: any, { rpc }: any) => {
|
|
512
|
+
return rpc.invoke(rpcName, data)
|
|
513
|
+
}) as any
|
|
514
|
+
} as PikkuFunctionConfig<
|
|
515
|
+
FlattenedRPCMap[Name]['input'],
|
|
516
|
+
FlattenedRPCMap[Name]['output'],
|
|
517
|
+
'session' | 'rpc'
|
|
518
|
+
>
|
|
519
|
+
}
|
|
520
|
+
|
|
308
521
|
/**
|
|
309
522
|
* Creates a Pikku config factory.
|
|
310
523
|
* Use this to define your application's configuration factory.
|
|
@@ -326,6 +539,7 @@ export const pikkuConfig = (
|
|
|
326
539
|
func: (variables?: any, ...args: any[]) => Promise<Config>
|
|
327
540
|
) => func
|
|
328
541
|
|
|
542
|
+
|
|
329
543
|
/**
|
|
330
544
|
* Creates a Pikku singleton services factory.
|
|
331
545
|
* Use this to define services that are created once and shared across all requests.
|
|
@@ -370,7 +584,7 @@ export const pikkuWireServices = (
|
|
|
370
584
|
services: SingletonServices,
|
|
371
585
|
wire: any
|
|
372
586
|
) => Promise<RequiredWireServices>
|
|
373
|
-
) => func
|
|
587
|
+
): CreateWireServices => func as unknown as CreateWireServices
|
|
374
588
|
|
|
375
589
|
/**
|
|
376
590
|
* Adds global middleware for a specific tag.
|
|
@@ -396,7 +610,7 @@ export const pikkuWireServices = (
|
|
|
396
610
|
* \`\`\`
|
|
397
611
|
*/
|
|
398
612
|
export const addMiddleware = (tag: string, middleware: PikkuMiddleware[]) => {
|
|
399
|
-
addMiddlewareCore(tag, middleware as any)
|
|
613
|
+
addMiddlewareCore(tag, middleware as any, ${packageNameValue})
|
|
400
614
|
}
|
|
401
615
|
|
|
402
616
|
/**
|
|
@@ -423,7 +637,7 @@ export const addMiddleware = (tag: string, middleware: PikkuMiddleware[]) => {
|
|
|
423
637
|
* \`\`\`
|
|
424
638
|
*/
|
|
425
639
|
export const addPermission = <In = unknown>(tag: string, permissions: CorePermissionGroup<PikkuPermission<In>> | PikkuPermission<In>[]) => {
|
|
426
|
-
addPermissionCore(tag, permissions as any)
|
|
640
|
+
addPermissionCore(tag, permissions as any, ${packageNameValue})
|
|
427
641
|
}
|
|
428
642
|
`;
|
|
429
643
|
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generates the main pikku-types.gen.ts file as a re-export hub
|
|
3
3
|
*/
|
|
4
|
-
export declare const serializePikkuTypesHub: (functionTypesImportPath: string, httpTypesImportPath: string, channelTypesImportPath: string, schedulerTypesImportPath: string, queueTypesImportPath: string, mcpTypesImportPath: string, cliTypesImportPath: string) => string;
|
|
4
|
+
export declare const serializePikkuTypesHub: (functionTypesImportPath: string, httpTypesImportPath: string | null, channelTypesImportPath: string | null, triggerTypesImportPath: string | null, schedulerTypesImportPath: string | null, queueTypesImportPath: string | null, mcpTypesImportPath: string | null, cliTypesImportPath: string | null, nodeTypesImportPath: string | null, secretTypesImportPath: string | null, externalTypesImportPath: string | null) => string;
|
|
@@ -1,30 +1,31 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generates the main pikku-types.gen.ts file as a re-export hub
|
|
3
3
|
*/
|
|
4
|
-
export const serializePikkuTypesHub = (functionTypesImportPath, httpTypesImportPath, channelTypesImportPath, schedulerTypesImportPath, queueTypesImportPath, mcpTypesImportPath, cliTypesImportPath) => {
|
|
4
|
+
export const serializePikkuTypesHub = (functionTypesImportPath, httpTypesImportPath, channelTypesImportPath, triggerTypesImportPath, schedulerTypesImportPath, queueTypesImportPath, mcpTypesImportPath, cliTypesImportPath, nodeTypesImportPath, secretTypesImportPath, externalTypesImportPath) => {
|
|
5
|
+
const exports = [
|
|
6
|
+
{
|
|
7
|
+
comment: 'Core function, middleware, and permission types',
|
|
8
|
+
path: functionTypesImportPath,
|
|
9
|
+
},
|
|
10
|
+
{ comment: 'HTTP wiring types', path: httpTypesImportPath },
|
|
11
|
+
{ comment: 'Channel wiring types', path: channelTypesImportPath },
|
|
12
|
+
{ comment: 'Trigger wiring types', path: triggerTypesImportPath },
|
|
13
|
+
{ comment: 'Scheduler wiring types', path: schedulerTypesImportPath },
|
|
14
|
+
{ comment: 'Queue wiring types', path: queueTypesImportPath },
|
|
15
|
+
{ comment: 'MCP wiring types', path: mcpTypesImportPath },
|
|
16
|
+
{ comment: 'CLI wiring types', path: cliTypesImportPath },
|
|
17
|
+
{ comment: 'Node wiring types', path: nodeTypesImportPath },
|
|
18
|
+
{ comment: 'Secret definition types', path: secretTypesImportPath },
|
|
19
|
+
{ comment: 'External package types', path: externalTypesImportPath },
|
|
20
|
+
];
|
|
21
|
+
const exportStatements = exports
|
|
22
|
+
.filter((e) => e.path)
|
|
23
|
+
.map((e) => `// ${e.comment}\nexport * from '${e.path}'`)
|
|
24
|
+
.join('\n\n');
|
|
5
25
|
return `/**
|
|
6
26
|
* Main type export hub - re-exports all wiring-specific types
|
|
7
27
|
*/
|
|
8
28
|
|
|
9
|
-
|
|
10
|
-
export * from '${functionTypesImportPath}'
|
|
11
|
-
|
|
12
|
-
// HTTP wiring types
|
|
13
|
-
export * from '${httpTypesImportPath}'
|
|
14
|
-
|
|
15
|
-
// Channel wiring types
|
|
16
|
-
export * from '${channelTypesImportPath}'
|
|
17
|
-
|
|
18
|
-
// Scheduler wiring types
|
|
19
|
-
export * from '${schedulerTypesImportPath}'
|
|
20
|
-
|
|
21
|
-
// Queue wiring types
|
|
22
|
-
export * from '${queueTypesImportPath}'
|
|
23
|
-
|
|
24
|
-
// MCP wiring types
|
|
25
|
-
export * from '${mcpTypesImportPath}'
|
|
26
|
-
|
|
27
|
-
// CLI wiring types
|
|
28
|
-
export * from '${cliTypesImportPath}'
|
|
29
|
+
${exportStatements}
|
|
29
30
|
`;
|
|
30
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTPMap:
|
|
1
|
+
export declare const pikkuHTTPMap: 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,12 +1,12 @@
|
|
|
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 { serializeTypedHTTPWiringsMap } from './serialize-typed-http-map.js';
|
|
5
5
|
export const pikkuHTTPMap = pikkuSessionlessFunc({
|
|
6
6
|
func: async ({ logger, config, getInspectorState }) => {
|
|
7
|
-
const { http, functions } = await getInspectorState();
|
|
8
|
-
const { httpMapDeclarationFile, packageMappings } = config;
|
|
9
|
-
const content = serializeTypedHTTPWiringsMap(httpMapDeclarationFile, packageMappings, functions.typesMap,
|
|
7
|
+
const { http, functions, resolvedIOTypes } = await getInspectorState();
|
|
8
|
+
const { httpMapDeclarationFile, rpcInternalMapDeclarationFile, packageMappings, } = config;
|
|
9
|
+
const content = serializeTypedHTTPWiringsMap(logger, httpMapDeclarationFile, packageMappings, functions.typesMap, http.meta, http.metaInputTypes, resolvedIOTypes, rpcInternalMapDeclarationFile);
|
|
10
10
|
await writeFileInDir(logger, httpMapDeclarationFile, content);
|
|
11
11
|
},
|
|
12
12
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTP:
|
|
1
|
+
export declare const pikkuHTTP: 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,14 +1,30 @@
|
|
|
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';
|
|
5
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
6
|
+
import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
|
|
5
7
|
export const pikkuHTTP = pikkuSessionlessFunc({
|
|
6
8
|
func: async ({ logger, config, getInspectorState }) => {
|
|
7
9
|
const visitState = await getInspectorState();
|
|
8
|
-
const { httpWiringsFile, httpWiringMetaFile, packageMappings } = config;
|
|
10
|
+
const { httpWiringsFile, httpWiringMetaFile, httpWiringMetaJsonFile, packageMappings, schema, } = config;
|
|
9
11
|
const { http } = visitState;
|
|
10
12
|
await writeFileInDir(logger, httpWiringsFile, serializeFileImports('wireHTTP', httpWiringsFile, http.files, packageMappings));
|
|
11
|
-
|
|
13
|
+
// Write minimal JSON (runtime-only fields)
|
|
14
|
+
const minimalMeta = stripVerboseFields(http.meta);
|
|
15
|
+
await writeFileInDir(logger, httpWiringMetaJsonFile, JSON.stringify(minimalMeta, null, 2));
|
|
16
|
+
// Write verbose JSON only if it has additional fields
|
|
17
|
+
if (hasVerboseFields(http.meta)) {
|
|
18
|
+
const verbosePath = httpWiringMetaJsonFile.replace(/\.gen\.json$/, '-verbose.gen.json');
|
|
19
|
+
await writeFileInDir(logger, verbosePath, JSON.stringify(http.meta, null, 2));
|
|
20
|
+
}
|
|
21
|
+
// Generate TypeScript file that imports the minimal JSON
|
|
22
|
+
const jsonImportPath = getFileImportRelativePath(httpWiringMetaFile, httpWiringMetaJsonFile, packageMappings);
|
|
23
|
+
const supportsImportAttributes = schema?.supportsImportAttributes ?? false;
|
|
24
|
+
const importStatement = supportsImportAttributes
|
|
25
|
+
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
26
|
+
: `import metaData from '${jsonImportPath}'`;
|
|
27
|
+
await writeFileInDir(logger, httpWiringMetaFile, `import { pikkuState } from '@pikku/core'\nimport type { HTTPWiringsMeta } from '@pikku/core/http'\n${importStatement}\npikkuState(null, 'http', 'meta', metaData as HTTPWiringsMeta)`);
|
|
12
28
|
return true;
|
|
13
29
|
},
|
|
14
30
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTPTypes:
|
|
1
|
+
export declare const pikkuHTTPTypes: 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 pikkuOpenAPI:
|
|
1
|
+
export declare const pikkuOpenAPI: 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,23 +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
|
-
import { generateSchemas } from '../../../utils/schema-generator.js';
|
|
5
|
-
import { generateOpenAPISpec } from './openapi-spec-generator.js';
|
|
6
4
|
import { stringify } from 'yaml';
|
|
7
5
|
export const pikkuOpenAPI = pikkuSessionlessFunc({
|
|
8
6
|
func: async ({ logger, config, getInspectorState }) => {
|
|
9
|
-
const {
|
|
10
|
-
// If openAPI outputFile is not defined, clean up any existing file and return
|
|
7
|
+
const { openAPI } = config;
|
|
11
8
|
if (!openAPI?.outputFile) {
|
|
12
|
-
logger.
|
|
9
|
+
logger.debug({
|
|
13
10
|
message: 'Skipping creating OpenAPI spec since openAPI outfile is not defined.',
|
|
14
11
|
type: 'skip',
|
|
15
12
|
});
|
|
16
13
|
return;
|
|
17
14
|
}
|
|
18
|
-
const {
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const { openAPISpec } = await getInspectorState();
|
|
16
|
+
if (!openAPISpec) {
|
|
17
|
+
logger.debug({
|
|
18
|
+
message: 'Skipping creating OpenAPI spec since no spec was generated.',
|
|
19
|
+
type: 'skip',
|
|
20
|
+
});
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
21
23
|
if (openAPI.outputFile.endsWith('.json')) {
|
|
22
24
|
await writeFileInDir(logger, openAPI.outputFile, JSON.stringify(openAPISpec, null, 2), { ignoreModifyComment: true });
|
|
23
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTP:
|
|
1
|
+
export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "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';
|
|
@@ -15,7 +15,7 @@ export const pikkuHTTP = pikkuSessionlessFunc({
|
|
|
15
15
|
const importStatement = supportsImportAttributes
|
|
16
16
|
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
17
17
|
: `import metaData from '${jsonImportPath}'`;
|
|
18
|
-
await writeFileInDir(logger, httpWiringMetaFile, `import { pikkuState
|
|
18
|
+
await writeFileInDir(logger, httpWiringMetaFile, `import { pikkuState } from '@pikku/core'\nimport type { HTTPWiringsMeta } from '@pikku/core/http'\n${importStatement}\npikkuState(null, 'http', 'meta', metaData as HTTPWiringsMeta)`);
|
|
19
19
|
return true;
|
|
20
20
|
},
|
|
21
21
|
middleware: [
|