@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,10 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.0
|
|
3
3
|
*/
|
|
4
4
|
import '../pikku-bootstrap.gen.js';
|
|
5
|
-
/**
|
|
6
|
-
* Pikku CLI function
|
|
7
|
-
* Handles command line arguments and executes the appropriate function
|
|
8
|
-
*/
|
|
9
5
|
export declare function PikkuCLI(args: string[]): Promise<void>;
|
|
10
6
|
export default PikkuCLI;
|
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.0
|
|
3
3
|
*/
|
|
4
4
|
import { executeCLI, CLIError } from '@pikku/core/cli';
|
|
5
5
|
import { createConfig as createConfig } from '../../src/services.js';
|
|
6
6
|
import { createSingletonServices as createSingletonServices } from '../../src/services.js';
|
|
7
7
|
import { createWireServices as createWireServices } from '../../src/services.js';
|
|
8
8
|
import '../pikku-bootstrap.gen.js';
|
|
9
|
-
/**
|
|
10
|
-
* Pikku CLI function
|
|
11
|
-
* Handles command line arguments and executes the appropriate function
|
|
12
|
-
*/
|
|
13
9
|
export async function PikkuCLI(args) {
|
|
14
10
|
try {
|
|
15
11
|
await executeCLI({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -1,18 +1,32 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Core function, middleware, and permission types for all wirings
|
|
6
6
|
*/
|
|
7
|
-
import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, PikkuWire, PickRequired } from '@pikku/core';
|
|
7
|
+
import { CorePikkuFunctionConfig, CorePikkuAuth, CorePikkuAuthConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, PikkuWire, PickRequired, CreateWireServices } from '@pikku/core';
|
|
8
|
+
import type { NodeType } from '@pikku/core/node';
|
|
9
|
+
import type { StandardSchemaV1 } from '@standard-schema/spec';
|
|
8
10
|
import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function';
|
|
9
11
|
import type { UserSession } from '../../types/application-types.d.js';
|
|
10
12
|
import type { SingletonServices } from '../../types/application-types.d.js';
|
|
11
13
|
import type { Services } from '../../types/application-types.d.js';
|
|
12
14
|
import type { Config } from '../../types/application-types.d.js';
|
|
13
|
-
import type { TypedPikkuRPC } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
|
|
15
|
+
import type { TypedPikkuRPC, FlattenedRPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
|
|
14
16
|
import type { RequiredSingletonServices, RequiredWireServices } from '../pikku-services.gen.js';
|
|
15
|
-
type
|
|
17
|
+
import type { TypedWorkflow } from '../workflow/pikku-workflow-types.gen.js';
|
|
18
|
+
export type { SingletonServices as SingletonServices };
|
|
19
|
+
export type { Services as Services };
|
|
20
|
+
export type Session = UserSession;
|
|
21
|
+
/**
|
|
22
|
+
* Inline node configuration for function definitions.
|
|
23
|
+
*/
|
|
24
|
+
export type NodeConfig = {
|
|
25
|
+
displayName: string;
|
|
26
|
+
category: string;
|
|
27
|
+
type: NodeType;
|
|
28
|
+
errorOutput?: boolean;
|
|
29
|
+
};
|
|
16
30
|
/**
|
|
17
31
|
* Type-safe API permission definition that integrates with your application's session type.
|
|
18
32
|
* Use this to define authorization logic for your API endpoints.
|
|
@@ -63,6 +77,39 @@ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Service
|
|
|
63
77
|
* ```
|
|
64
78
|
*/
|
|
65
79
|
export declare const pikkuPermission: <In>(permission: PikkuPermission<In> | PikkuPermissionConfig<In>) => PikkuPermission<In>;
|
|
80
|
+
/**
|
|
81
|
+
* Type-safe auth-only permission that only needs services and session.
|
|
82
|
+
* Use this for upfront authorization gates (MCP tools, AI agents, workflows)
|
|
83
|
+
* where request data isn't available yet.
|
|
84
|
+
*
|
|
85
|
+
* @template RequiredServices - The services required for this auth check
|
|
86
|
+
*/
|
|
87
|
+
export type PikkuAuth<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuth<RequiredServices, Session>;
|
|
88
|
+
/**
|
|
89
|
+
* Configuration object for creating an auth permission with metadata
|
|
90
|
+
*/
|
|
91
|
+
export type PikkuAuthConfig<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuAuthConfig<RequiredServices, Session>;
|
|
92
|
+
/**
|
|
93
|
+
* Factory function for creating auth-only permissions with tree-shaking support.
|
|
94
|
+
* Auth permissions only receive services and session (no request data),
|
|
95
|
+
* making them evaluable before request data is available.
|
|
96
|
+
*
|
|
97
|
+
* @example
|
|
98
|
+
* \`\`\`typescript
|
|
99
|
+
* const isAuthenticated = pikkuAuth(async ({ logger }, session) => {
|
|
100
|
+
* return !!session
|
|
101
|
+
* })
|
|
102
|
+
*
|
|
103
|
+
* const isAdmin = pikkuAuth({
|
|
104
|
+
* name: 'Admin Auth',
|
|
105
|
+
* description: 'Checks if user is an admin',
|
|
106
|
+
* func: async ({ logger }, session) => {
|
|
107
|
+
* return session?.role === 'admin'
|
|
108
|
+
* }
|
|
109
|
+
* })
|
|
110
|
+
* \`\`\`
|
|
111
|
+
*/
|
|
112
|
+
export declare const pikkuAuth: <RequiredServices extends SingletonServices = SingletonServices>(auth: PikkuAuth<RequiredServices> | PikkuAuthConfig<RequiredServices>) => PikkuPermission<any, any>;
|
|
66
113
|
/**
|
|
67
114
|
* Configuration object for creating middleware with metadata
|
|
68
115
|
*/
|
|
@@ -125,8 +172,8 @@ export declare const pikkuMiddlewareFactory: <In = any>(factory: (input: In) =>
|
|
|
125
172
|
* export const requireRole = pikkuPermissionFactory<{ role: string }>(({
|
|
126
173
|
* role
|
|
127
174
|
* }) => {
|
|
128
|
-
* return pikkuPermission(async ({ logger }, data, {
|
|
129
|
-
* if (!
|
|
175
|
+
* return pikkuPermission(async ({ logger }, data, { session }) => {
|
|
176
|
+
* if (!session || session.role !== role) {
|
|
130
177
|
* logger.warn(`Permission denied: required role '${role}'`)
|
|
131
178
|
* return false
|
|
132
179
|
* }
|
|
@@ -144,7 +191,7 @@ export declare const pikkuPermissionFactory: <In = any>(factory: (input: In) =>
|
|
|
144
191
|
* @template Out - The output type that the function returns
|
|
145
192
|
* @template RequiredServices - Services required by this function
|
|
146
193
|
*/
|
|
147
|
-
export type PikkuFunctionSessionless<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = never, RequiredServices extends Services = Services> = CorePikkuFunctionSessionless<In, Out, RequiredServices, PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any>, RequiredWires>>;
|
|
194
|
+
export type PikkuFunctionSessionless<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = never, RequiredServices extends Services = Services> = CorePikkuFunctionSessionless<In, Out, RequiredServices, Session, PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any, TypedWorkflow>, RequiredWires>>;
|
|
148
195
|
/**
|
|
149
196
|
* A session-aware API function that requires user authentication.
|
|
150
197
|
* Use this for protected endpoints that need access to user session data.
|
|
@@ -153,7 +200,11 @@ export type PikkuFunctionSessionless<In = unknown, Out = never, RequiredWires ex
|
|
|
153
200
|
* @template Out - The output type that the function returns
|
|
154
201
|
* @template RequiredServices - Services required by this function
|
|
155
202
|
*/
|
|
156
|
-
export type PikkuFunction<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = 'session', RequiredServices extends Services = Services> = CorePikkuFunction<In, Out, RequiredServices, PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any>, RequiredWires>>;
|
|
203
|
+
export type PikkuFunction<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = 'session', RequiredServices extends Services = Services> = CorePikkuFunction<In, Out, RequiredServices, Session, PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any, TypedWorkflow>, RequiredWires>>;
|
|
204
|
+
/**
|
|
205
|
+
* Helper type to infer the output type from a Standard Schema
|
|
206
|
+
*/
|
|
207
|
+
export type InferSchemaOutput<T> = T extends StandardSchemaV1<any, infer Output> ? Output : never;
|
|
157
208
|
/**
|
|
158
209
|
* Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
|
|
159
210
|
* This type wraps CorePikkuFunctionConfig with the user's custom types.
|
|
@@ -162,51 +213,122 @@ export type PikkuFunction<In = unknown, Out = never, RequiredWires extends keyof
|
|
|
162
213
|
* @template Out - The output type
|
|
163
214
|
* @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
|
|
164
215
|
*/
|
|
165
|
-
export type PikkuFunctionConfig<In = unknown, Out = unknown, RequiredWires extends keyof PikkuWire = never, PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires
|
|
216
|
+
export type PikkuFunctionConfig<In = unknown, Out = unknown, RequiredWires extends keyof PikkuWire = never, PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>, InputSchema extends StandardSchemaV1 | undefined = undefined, OutputSchema extends StandardSchemaV1 | undefined = undefined> = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware, InputSchema, OutputSchema>;
|
|
217
|
+
/**
|
|
218
|
+
* Configuration object for Pikku functions with Zod schema validation.
|
|
219
|
+
* Use this when you want to define input/output schemas using Zod.
|
|
220
|
+
* Types are automatically inferred from the schemas.
|
|
221
|
+
*/
|
|
222
|
+
export type PikkuFunctionConfigWithSchema<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1 | undefined = undefined, RequiredWires extends keyof PikkuWire = never> = {
|
|
223
|
+
name?: string;
|
|
224
|
+
tags?: string[];
|
|
225
|
+
expose?: boolean;
|
|
226
|
+
mcp?: boolean;
|
|
227
|
+
internal?: boolean;
|
|
228
|
+
func: PikkuFunction<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, RequiredWires> | PikkuFunctionSessionless<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, RequiredWires>;
|
|
229
|
+
auth?: boolean;
|
|
230
|
+
permissions?: CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>>;
|
|
231
|
+
middleware?: PikkuMiddleware[];
|
|
232
|
+
input: InputSchema;
|
|
233
|
+
output?: OutputSchema;
|
|
234
|
+
node?: NodeConfig;
|
|
235
|
+
};
|
|
166
236
|
/**
|
|
167
237
|
* Creates a Pikku function that can be either session-aware or sessionless.
|
|
168
238
|
* This is the main function wrapper for creating API endpoints.
|
|
169
239
|
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
240
|
+
* Supports two patterns:
|
|
241
|
+
* 1. Generic types: `pikkuFunc<Input, Output>({ func: ... })`
|
|
242
|
+
* 2. Zod schemas: `pikkuFunc({ input: z.object(...), output: z.object(...), func: ... })`
|
|
243
|
+
*
|
|
244
|
+
* @template In - Input type for the function (inferred from schema if provided)
|
|
245
|
+
* @template Out - Output type for the function (inferred from schema if provided)
|
|
172
246
|
* @param func - Function definition, either direct function or configuration object
|
|
173
247
|
* @returns The normalized configuration object
|
|
174
248
|
*
|
|
175
249
|
* @example
|
|
176
|
-
*
|
|
177
|
-
*
|
|
178
|
-
*
|
|
179
|
-
*
|
|
180
|
-
* logger.info('Creating user', input.name)
|
|
250
|
+
* ```typescript
|
|
251
|
+
* // Pattern 1: Using generic types
|
|
252
|
+
* const createUser = pikkuFunc<{name: string, email: string}, {id: number}>({
|
|
253
|
+
* func: async ({db}, input) => {
|
|
181
254
|
* const user = await db.users.create(input)
|
|
182
|
-
* return {id: user.id
|
|
183
|
-
* }
|
|
184
|
-
* auth: true
|
|
255
|
+
* return { id: user.id }
|
|
256
|
+
* }
|
|
185
257
|
* })
|
|
186
|
-
*
|
|
258
|
+
*
|
|
259
|
+
* // Pattern 2: Using Zod schemas (types inferred automatically)
|
|
260
|
+
* const createUserInput = z.object({ name: z.string(), email: z.string() })
|
|
261
|
+
* const createUserOutput = z.object({ id: z.number() })
|
|
262
|
+
*
|
|
263
|
+
* const createUser = pikkuFunc({
|
|
264
|
+
* input: createUserInput,
|
|
265
|
+
* output: createUserOutput,
|
|
266
|
+
* func: async ({db}, input) => {
|
|
267
|
+
* // input is typed as { name: string, email: string }
|
|
268
|
+
* const user = await db.users.create(input)
|
|
269
|
+
* return { id: user.id } // must match output schema
|
|
270
|
+
* }
|
|
271
|
+
* })
|
|
272
|
+
* ```
|
|
187
273
|
*/
|
|
188
|
-
export declare
|
|
274
|
+
export declare function pikkuFunc<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1 | undefined = undefined>(config: PikkuFunctionConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'session' | 'rpc'>;
|
|
275
|
+
export declare function pikkuFunc<In, Out = unknown>(func: PikkuFunction<In, Out, 'session' | 'rpc'> | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>;
|
|
276
|
+
/**
|
|
277
|
+
* Configuration object for sessionless Pikku functions with Zod schema validation.
|
|
278
|
+
*/
|
|
279
|
+
export type PikkuFunctionSessionlessConfigWithSchema<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1 | undefined = undefined, RequiredWires extends keyof PikkuWire = never> = {
|
|
280
|
+
name?: string;
|
|
281
|
+
description?: string;
|
|
282
|
+
tags?: string[];
|
|
283
|
+
expose?: boolean;
|
|
284
|
+
mcp?: boolean;
|
|
285
|
+
internal?: boolean;
|
|
286
|
+
remote?: boolean;
|
|
287
|
+
func: PikkuFunctionSessionless<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, RequiredWires>;
|
|
288
|
+
auth?: boolean;
|
|
289
|
+
permissions?: CorePermissionGroup<PikkuPermission<InferSchemaOutput<InputSchema>>>;
|
|
290
|
+
middleware?: PikkuMiddleware[];
|
|
291
|
+
input: InputSchema;
|
|
292
|
+
output?: OutputSchema;
|
|
293
|
+
node?: NodeConfig;
|
|
294
|
+
};
|
|
189
295
|
/**
|
|
190
296
|
* Creates a sessionless Pikku function that doesn't require user authentication.
|
|
191
297
|
* Use this for public endpoints, webhooks, or background tasks.
|
|
192
298
|
*
|
|
193
|
-
*
|
|
194
|
-
*
|
|
299
|
+
* Supports two patterns:
|
|
300
|
+
* 1. Generic types: `pikkuSessionlessFunc<Input, Output>({ func: ... })`
|
|
301
|
+
* 2. Zod schemas: `pikkuSessionlessFunc({ input: z.object(...), func: ... })`
|
|
302
|
+
*
|
|
303
|
+
* @template In - Input type for the function (inferred from schema if provided)
|
|
304
|
+
* @template Out - Output type for the function (inferred from schema if provided)
|
|
195
305
|
* @param func - Function definition, either direct function or configuration object
|
|
196
306
|
* @returns The normalized configuration object
|
|
197
307
|
*
|
|
198
308
|
* @example
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
*
|
|
202
|
-
*
|
|
203
|
-
* return {status: 'healthy'
|
|
204
|
-
* }
|
|
205
|
-
* name: 'healthCheck'
|
|
309
|
+
* ```typescript
|
|
310
|
+
* // Pattern 1: Using generic types
|
|
311
|
+
* const healthCheck = pikkuSessionlessFunc<void, {status: string}>({
|
|
312
|
+
* func: async ({logger}) => {
|
|
313
|
+
* return { status: 'healthy' }
|
|
314
|
+
* }
|
|
206
315
|
* })
|
|
207
|
-
*
|
|
316
|
+
*
|
|
317
|
+
* // Pattern 2: Using Zod schemas
|
|
318
|
+
* const greetInput = z.object({ name: z.string() })
|
|
319
|
+
* const greetOutput = z.object({ message: z.string() })
|
|
320
|
+
*
|
|
321
|
+
* const greet = pikkuSessionlessFunc({
|
|
322
|
+
* input: greetInput,
|
|
323
|
+
* output: greetOutput,
|
|
324
|
+
* func: async (_services, { name }) => {
|
|
325
|
+
* return { message: `Hello, ${name}!` }
|
|
326
|
+
* }
|
|
327
|
+
* })
|
|
328
|
+
* ```
|
|
208
329
|
*/
|
|
209
|
-
export declare
|
|
330
|
+
export declare function pikkuSessionlessFunc<InputSchema extends StandardSchemaV1, OutputSchema extends StandardSchemaV1 | undefined = undefined>(config: PikkuFunctionSessionlessConfigWithSchema<InputSchema, OutputSchema, 'session' | 'rpc'>): PikkuFunctionConfig<InferSchemaOutput<InputSchema>, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'session' | 'rpc'>;
|
|
331
|
+
export declare function pikkuSessionlessFunc<In, Out = unknown>(func: PikkuFunctionSessionless<In, Out, 'session' | 'rpc'> | PikkuFunctionConfig<In, Out, 'session' | 'rpc'>): PikkuFunctionConfig<In, Out, 'session' | 'rpc'>;
|
|
210
332
|
/**
|
|
211
333
|
* Creates a function that takes no input and returns no output.
|
|
212
334
|
* Useful for health checks, triggers, or cleanup operations.
|
|
@@ -215,15 +337,37 @@ export declare const pikkuSessionlessFunc: <In, Out = unknown>(func: PikkuFuncti
|
|
|
215
337
|
* @returns The normalized configuration object
|
|
216
338
|
*
|
|
217
339
|
* @example
|
|
218
|
-
*
|
|
340
|
+
* ```typescript
|
|
219
341
|
* const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
|
|
220
342
|
* logger.info('Starting cleanup of temporary files')
|
|
221
343
|
* await fileSystem.deleteDirectory('/tmp/uploads')
|
|
222
344
|
* logger.info('Cleanup completed')
|
|
223
345
|
* })
|
|
224
|
-
*
|
|
346
|
+
* ```
|
|
347
|
+
*/
|
|
348
|
+
export declare const pikkuVoidFunc: (func: PikkuFunctionSessionless<void, void, "session" | "rpc"> | PikkuFunctionConfig<void, void, "session" | "rpc">) => PikkuFunctionConfig<void, void, "session" | "rpc", PikkuFunctionSessionless<void, void, "session" | "rpc", Services> | PikkuFunction<void, void, "session" | "rpc", Services>, undefined, undefined>;
|
|
349
|
+
/**
|
|
350
|
+
* Creates a wrapper function for external package functions that are exposed via RPC.
|
|
351
|
+
* This allows you to wire external functions to any wiring type (HTTP, queue, etc.)
|
|
352
|
+
* without type compatibility issues.
|
|
353
|
+
*
|
|
354
|
+
* @template Name - The RPC method name (must be a key in FlattenedRPCMap)
|
|
355
|
+
* @param rpcName - The name of the RPC method to invoke
|
|
356
|
+
* @returns A Pikku function that proxies calls to the external RPC method
|
|
357
|
+
*
|
|
358
|
+
* @example
|
|
359
|
+
* ```typescript
|
|
360
|
+
* // Wire an external function via HTTP
|
|
361
|
+
* wireHTTP({
|
|
362
|
+
* auth: false,
|
|
363
|
+
* method: 'get',
|
|
364
|
+
* route: '/external/hello',
|
|
365
|
+
* func: external('ext:hello'),
|
|
366
|
+
* tags: ['external'],
|
|
367
|
+
* })
|
|
368
|
+
* ```
|
|
225
369
|
*/
|
|
226
|
-
export declare const
|
|
370
|
+
export declare const external: <Name extends keyof FlattenedRPCMap>(rpcName: Name) => PikkuFunctionConfig<FlattenedRPCMap[Name]["input"], FlattenedRPCMap[Name]["output"], "session" | "rpc">;
|
|
227
371
|
/**
|
|
228
372
|
* Creates a Pikku config factory.
|
|
229
373
|
* Use this to define your application's configuration factory.
|
|
@@ -278,7 +422,7 @@ export declare const pikkuServices: (func: (config: Config, existingServices?: P
|
|
|
278
422
|
* })
|
|
279
423
|
* ```
|
|
280
424
|
*/
|
|
281
|
-
export declare const pikkuWireServices: (func: (services: SingletonServices, wire: any) => Promise<RequiredWireServices>) =>
|
|
425
|
+
export declare const pikkuWireServices: (func: (services: SingletonServices, wire: any) => Promise<RequiredWireServices>) => CreateWireServices;
|
|
282
426
|
/**
|
|
283
427
|
* Adds global middleware for a specific tag.
|
|
284
428
|
*
|
|
@@ -327,4 +471,3 @@ export declare const addMiddleware: (tag: string, middleware: PikkuMiddleware[])
|
|
|
327
471
|
* ```
|
|
328
472
|
*/
|
|
329
473
|
export declare const addPermission: <In = unknown>(tag: string, permissions: CorePermissionGroup<PikkuPermission<In>> | PikkuPermission<In>[]) => void;
|
|
330
|
-
export {};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.0
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Core function, middleware, and permission types for all wirings
|
|
6
6
|
*/
|
|
7
7
|
import { addMiddleware as addMiddlewareCore, addPermission as addPermissionCore } from '@pikku/core';
|
|
8
|
+
import { pikkuAuth as pikkuAuthCore } from '@pikku/core';
|
|
8
9
|
/**
|
|
9
10
|
* Factory function for creating permissions with tree-shaking support.
|
|
10
11
|
* Supports both direct function and configuration object syntax.
|
|
@@ -31,6 +32,29 @@ import { addMiddleware as addMiddlewareCore, addPermission as addPermissionCore
|
|
|
31
32
|
export const pikkuPermission = (permission) => {
|
|
32
33
|
return typeof permission === 'function' ? permission : permission.func;
|
|
33
34
|
};
|
|
35
|
+
/**
|
|
36
|
+
* Factory function for creating auth-only permissions with tree-shaking support.
|
|
37
|
+
* Auth permissions only receive services and session (no request data),
|
|
38
|
+
* making them evaluable before request data is available.
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* \`\`\`typescript
|
|
42
|
+
* const isAuthenticated = pikkuAuth(async ({ logger }, session) => {
|
|
43
|
+
* return !!session
|
|
44
|
+
* })
|
|
45
|
+
*
|
|
46
|
+
* const isAdmin = pikkuAuth({
|
|
47
|
+
* name: 'Admin Auth',
|
|
48
|
+
* description: 'Checks if user is an admin',
|
|
49
|
+
* func: async ({ logger }, session) => {
|
|
50
|
+
* return session?.role === 'admin'
|
|
51
|
+
* }
|
|
52
|
+
* })
|
|
53
|
+
* \`\`\`
|
|
54
|
+
*/
|
|
55
|
+
export const pikkuAuth = (auth) => {
|
|
56
|
+
return pikkuAuthCore(auth);
|
|
57
|
+
};
|
|
34
58
|
/**
|
|
35
59
|
* Factory function for creating middleware with tree-shaking support.
|
|
36
60
|
* Supports both direct function and configuration object syntax.
|
|
@@ -86,8 +110,8 @@ export const pikkuMiddlewareFactory = (factory) => {
|
|
|
86
110
|
* export const requireRole = pikkuPermissionFactory<{ role: string }>(({
|
|
87
111
|
* role
|
|
88
112
|
* }) => {
|
|
89
|
-
* return pikkuPermission(async ({ logger }, data, {
|
|
90
|
-
* if (!
|
|
113
|
+
* return pikkuPermission(async ({ logger }, data, { session }) => {
|
|
114
|
+
* if (!session || session.role !== role) {
|
|
91
115
|
* logger.warn(`Permission denied: required role '${role}'`)
|
|
92
116
|
* return false
|
|
93
117
|
* }
|
|
@@ -99,54 +123,12 @@ export const pikkuMiddlewareFactory = (factory) => {
|
|
|
99
123
|
export const pikkuPermissionFactory = (factory) => {
|
|
100
124
|
return factory;
|
|
101
125
|
};
|
|
102
|
-
|
|
103
|
-
* Creates a Pikku function that can be either session-aware or sessionless.
|
|
104
|
-
* This is the main function wrapper for creating API endpoints.
|
|
105
|
-
*
|
|
106
|
-
* @template In - Input type for the function
|
|
107
|
-
* @template Out - Output type for the function
|
|
108
|
-
* @param func - Function definition, either direct function or configuration object
|
|
109
|
-
* @returns The normalized configuration object
|
|
110
|
-
*
|
|
111
|
-
* @example
|
|
112
|
-
* \`\`\`typescript
|
|
113
|
-
* const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
|
|
114
|
-
* func: async ({db, logger}, input, wire) => {
|
|
115
|
-
* const session = await wire.session.get()
|
|
116
|
-
* logger.info('Creating user', input.name)
|
|
117
|
-
* const user = await db.users.create(input)
|
|
118
|
-
* return {id: user.id, message: \`User \${input.name} created successfully\`}
|
|
119
|
-
* },
|
|
120
|
-
* auth: true
|
|
121
|
-
* })
|
|
122
|
-
* \`\`\`
|
|
123
|
-
*/
|
|
124
|
-
export const pikkuFunc = (func) => {
|
|
126
|
+
export function pikkuFunc(func) {
|
|
125
127
|
return typeof func === 'function' ? { func } : func;
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
* Creates a sessionless Pikku function that doesn't require user authentication.
|
|
129
|
-
* Use this for public endpoints, webhooks, or background tasks.
|
|
130
|
-
*
|
|
131
|
-
* @template In - Input type for the function
|
|
132
|
-
* @template Out - Output type for the function
|
|
133
|
-
* @param func - Function definition, either direct function or configuration object
|
|
134
|
-
* @returns The normalized configuration object
|
|
135
|
-
*
|
|
136
|
-
* @example
|
|
137
|
-
* \`\`\`typescript
|
|
138
|
-
* const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
|
|
139
|
-
* func: async ({logger}, input) => {
|
|
140
|
-
* logger.info('Health check requested')
|
|
141
|
-
* return {status: 'healthy', timestamp: new Date().toISOString()}
|
|
142
|
-
* },
|
|
143
|
-
* name: 'healthCheck'
|
|
144
|
-
* })
|
|
145
|
-
* \`\`\`
|
|
146
|
-
*/
|
|
147
|
-
export const pikkuSessionlessFunc = (func) => {
|
|
128
|
+
}
|
|
129
|
+
export function pikkuSessionlessFunc(func) {
|
|
148
130
|
return typeof func === 'function' ? { func } : func;
|
|
149
|
-
}
|
|
131
|
+
}
|
|
150
132
|
/**
|
|
151
133
|
* Creates a function that takes no input and returns no output.
|
|
152
134
|
* Useful for health checks, triggers, or cleanup operations.
|
|
@@ -155,17 +137,45 @@ export const pikkuSessionlessFunc = (func) => {
|
|
|
155
137
|
* @returns The normalized configuration object
|
|
156
138
|
*
|
|
157
139
|
* @example
|
|
158
|
-
*
|
|
140
|
+
* ```typescript
|
|
159
141
|
* const cleanupTempFiles = pikkuVoidFunc(async ({fileSystem, logger}) => {
|
|
160
142
|
* logger.info('Starting cleanup of temporary files')
|
|
161
143
|
* await fileSystem.deleteDirectory('/tmp/uploads')
|
|
162
144
|
* logger.info('Cleanup completed')
|
|
163
145
|
* })
|
|
164
|
-
*
|
|
146
|
+
* ```
|
|
165
147
|
*/
|
|
166
148
|
export const pikkuVoidFunc = (func) => {
|
|
167
149
|
return typeof func === 'function' ? { func } : func;
|
|
168
150
|
};
|
|
151
|
+
/**
|
|
152
|
+
* Creates a wrapper function for external package functions that are exposed via RPC.
|
|
153
|
+
* This allows you to wire external functions to any wiring type (HTTP, queue, etc.)
|
|
154
|
+
* without type compatibility issues.
|
|
155
|
+
*
|
|
156
|
+
* @template Name - The RPC method name (must be a key in FlattenedRPCMap)
|
|
157
|
+
* @param rpcName - The name of the RPC method to invoke
|
|
158
|
+
* @returns A Pikku function that proxies calls to the external RPC method
|
|
159
|
+
*
|
|
160
|
+
* @example
|
|
161
|
+
* ```typescript
|
|
162
|
+
* // Wire an external function via HTTP
|
|
163
|
+
* wireHTTP({
|
|
164
|
+
* auth: false,
|
|
165
|
+
* method: 'get',
|
|
166
|
+
* route: '/external/hello',
|
|
167
|
+
* func: external('ext:hello'),
|
|
168
|
+
* tags: ['external'],
|
|
169
|
+
* })
|
|
170
|
+
* ```
|
|
171
|
+
*/
|
|
172
|
+
export const external = (rpcName) => {
|
|
173
|
+
return {
|
|
174
|
+
func: (async (_services, data, { rpc }) => {
|
|
175
|
+
return rpc.invoke(rpcName, data);
|
|
176
|
+
})
|
|
177
|
+
};
|
|
178
|
+
};
|
|
169
179
|
/**
|
|
170
180
|
* Creates a Pikku config factory.
|
|
171
181
|
* Use this to define your application's configuration factory.
|
|
@@ -245,7 +255,7 @@ export const pikkuWireServices = (func) => func;
|
|
|
245
255
|
* ```
|
|
246
256
|
*/
|
|
247
257
|
export const addMiddleware = (tag, middleware) => {
|
|
248
|
-
addMiddlewareCore(tag, middleware);
|
|
258
|
+
addMiddlewareCore(tag, middleware, null);
|
|
249
259
|
};
|
|
250
260
|
/**
|
|
251
261
|
* Adds global permissions for a specific tag.
|
|
@@ -271,5 +281,5 @@ export const addMiddleware = (tag, middleware) => {
|
|
|
271
281
|
* ```
|
|
272
282
|
*/
|
|
273
283
|
export const addPermission = (tag, permissions) => {
|
|
274
|
-
addPermissionCore(tag, permissions);
|
|
284
|
+
addPermissionCore(tag, permissions, null);
|
|
275
285
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.0
|
|
3
3
|
*/
|
|
4
4
|
import { pikkuState } from '@pikku/core';
|
|
5
5
|
import metaData from './pikku-functions-meta.gen.json' with { type: 'json' };
|
|
6
|
-
pikkuState('function', 'meta', metaData);
|
|
6
|
+
pikkuState(null, 'function', 'meta', metaData);
|