@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,94 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generates type definitions for WebSocket channel wirings
|
|
3
|
-
*/
|
|
4
|
-
export const serializeChannelTypes = (functionTypesImportPath: string) => {
|
|
5
|
-
return `/**
|
|
6
|
-
|
|
7
|
-
* Channel-specific type definitions for tree-shaking optimization
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { CoreChannel, wireChannel as wireChannelCore } from '@pikku/core/channel'
|
|
11
|
-
import { AssertHTTPWiringParams } from '@pikku/core/http'
|
|
12
|
-
import type { PikkuFunctionConfig, PikkuFunctionSessionless, PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Type definition for WebSocket channels with typed data exchange.
|
|
16
|
-
* Supports connection, disconnection, and message handling.
|
|
17
|
-
* Accepts both session-based (PikkuFunction) and sessionless (PikkuFunctionSessionless) functions.
|
|
18
|
-
*
|
|
19
|
-
* @template ChannelData - Type of data exchanged through the channel
|
|
20
|
-
* @template Channel - String literal type for the channel name
|
|
21
|
-
*/
|
|
22
|
-
type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
|
|
23
|
-
ChannelData,
|
|
24
|
-
Channel,
|
|
25
|
-
PikkuFunctionConfig<void, any, 'channel' | 'session' | 'rpc'>,
|
|
26
|
-
PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>,
|
|
27
|
-
PikkuFunctionConfig<any, any, 'channel' | 'session' | 'rpc'>,
|
|
28
|
-
PikkuPermission,
|
|
29
|
-
PikkuMiddleware
|
|
30
|
-
>
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Creates a function that handles WebSocket channel connections.
|
|
34
|
-
* Called when a client connects to a channel.
|
|
35
|
-
*
|
|
36
|
-
* @template Out - Output type for connection response
|
|
37
|
-
* @param func - Function definition, either direct function or configuration object
|
|
38
|
-
* @returns The normalized configuration object
|
|
39
|
-
*/
|
|
40
|
-
export const pikkuChannelConnectionFunc = <Out = unknown>(
|
|
41
|
-
func:
|
|
42
|
-
| PikkuFunctionSessionless<void, Out, 'channel' | 'session' | 'rpc'>
|
|
43
|
-
| PikkuFunctionConfig<void, Out, 'channel' | 'session' | 'rpc'>
|
|
44
|
-
) => {
|
|
45
|
-
return typeof func === 'function' ? { func } : func
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Creates a function that handles WebSocket channel disconnections.
|
|
50
|
-
* Called when a client disconnects from a channel.
|
|
51
|
-
*
|
|
52
|
-
* @param func - Function definition, either direct function or configuration object
|
|
53
|
-
* @returns The normalized configuration object
|
|
54
|
-
*/
|
|
55
|
-
export const pikkuChannelDisconnectionFunc = (
|
|
56
|
-
func:
|
|
57
|
-
| PikkuFunctionSessionless<void, void, 'channel'>
|
|
58
|
-
| PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>
|
|
59
|
-
) => {
|
|
60
|
-
return typeof func === 'function' ? { func } : func
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Creates a function that handles WebSocket channel messages.
|
|
65
|
-
* Called when a message is received on a channel.
|
|
66
|
-
* This is the same as pikkuSessionlessFunc but with ChannelData = unknown by default.
|
|
67
|
-
*
|
|
68
|
-
* @template In - Input type for channel messages
|
|
69
|
-
* @template Out - Output type for channel responses
|
|
70
|
-
* @param func - Function definition, either direct function or configuration object
|
|
71
|
-
* @returns The normalized configuration object
|
|
72
|
-
*/
|
|
73
|
-
export const pikkuChannelFunc = <In, Out = unknown>(
|
|
74
|
-
func:
|
|
75
|
-
| PikkuFunctionSessionless<In, Out, 'channel' | 'session' | 'rpc'>
|
|
76
|
-
| PikkuFunctionConfig<In, Out, 'channel' | 'session' | 'rpc'>
|
|
77
|
-
) => {
|
|
78
|
-
return typeof func === 'function' ? { func } : func
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Registers a WebSocket channel with the Pikku framework.
|
|
83
|
-
*
|
|
84
|
-
* @template ChannelData - Type of data associated with the channel
|
|
85
|
-
* @template Channel - String literal type for the channel name
|
|
86
|
-
* @param channel - Channel definition with connection, disconnection, and message handlers
|
|
87
|
-
*/
|
|
88
|
-
export const wireChannel = <ChannelData, Channel extends string>(
|
|
89
|
-
channel: ChannelWiring<ChannelData, Channel> & AssertHTTPWiringParams<ChannelData, Channel>
|
|
90
|
-
) => {
|
|
91
|
-
wireChannelCore(channel as any) // TODO
|
|
92
|
-
}
|
|
93
|
-
`
|
|
94
|
-
}
|
|
@@ -1,172 +0,0 @@
|
|
|
1
|
-
import { ChannelsMeta } from '@pikku/core/channel'
|
|
2
|
-
import { serializeImportMap } from '../../../utils/serialize-import-map.js'
|
|
3
|
-
import { TypesMap } from '@pikku/inspector'
|
|
4
|
-
import { generateCustomTypes } from '../../../utils/custom-types-generator.js'
|
|
5
|
-
import { FunctionsMeta } from '@pikku/core'
|
|
6
|
-
|
|
7
|
-
export const serializeTypedChannelsMap = (
|
|
8
|
-
relativeToPath: string,
|
|
9
|
-
packageMappings: Record<string, string>,
|
|
10
|
-
typesMap: TypesMap,
|
|
11
|
-
functionsMeta: FunctionsMeta,
|
|
12
|
-
channelsMeta: ChannelsMeta
|
|
13
|
-
): string => {
|
|
14
|
-
const { channels, requiredTypes } = generateChannels(
|
|
15
|
-
functionsMeta,
|
|
16
|
-
channelsMeta
|
|
17
|
-
)
|
|
18
|
-
typesMap.customTypes.forEach(({ references }) => {
|
|
19
|
-
for (const reference of references) {
|
|
20
|
-
// Skip __object types (placeholder types for invalid/broken functions)
|
|
21
|
-
if (reference !== '__object' && !reference.startsWith('__object_')) {
|
|
22
|
-
requiredTypes.add(reference)
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
})
|
|
26
|
-
const imports = serializeImportMap(
|
|
27
|
-
relativeToPath,
|
|
28
|
-
packageMappings,
|
|
29
|
-
typesMap,
|
|
30
|
-
requiredTypes
|
|
31
|
-
)
|
|
32
|
-
const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes)
|
|
33
|
-
return `/**
|
|
34
|
-
* This provides the structure needed for TypeScript to be aware of channels
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
${imports}
|
|
38
|
-
${serializedCustomTypes}
|
|
39
|
-
|
|
40
|
-
interface ChannelHandler<I, O> {
|
|
41
|
-
input: I;
|
|
42
|
-
output: O;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
${channels}
|
|
46
|
-
|
|
47
|
-
export type ChannelDefaultHandlerOf<Channel extends keyof ChannelsMap> =
|
|
48
|
-
ChannelsMap[Channel]['defaultMessage'] extends { input: infer I; output: infer O }
|
|
49
|
-
? ChannelHandler<I, O>
|
|
50
|
-
: never;
|
|
51
|
-
|
|
52
|
-
export type ChannelWiringHandlerOf<
|
|
53
|
-
Channel extends keyof ChannelsMap,
|
|
54
|
-
Route extends keyof ChannelsMap[Channel]['routes'],
|
|
55
|
-
Method extends keyof ChannelsMap[Channel]['routes'][Route],
|
|
56
|
-
> =
|
|
57
|
-
ChannelsMap[Channel]['routes'][Route][Method] extends { input: infer I; output: infer O }
|
|
58
|
-
? ChannelHandler<I, O>
|
|
59
|
-
: never;
|
|
60
|
-
`
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
function generateChannels(
|
|
64
|
-
functionsMeta: FunctionsMeta,
|
|
65
|
-
channelsMeta: ChannelsMeta
|
|
66
|
-
) {
|
|
67
|
-
const requiredTypes = new Set<string>()
|
|
68
|
-
const channelsObject: Record<
|
|
69
|
-
string,
|
|
70
|
-
{
|
|
71
|
-
message: { inputs: string[] | null; outputs: string[] | null } | null
|
|
72
|
-
routes: Record<
|
|
73
|
-
string,
|
|
74
|
-
Record<
|
|
75
|
-
string,
|
|
76
|
-
{
|
|
77
|
-
inputTypes: string[] | null
|
|
78
|
-
outputTypes: string[] | null
|
|
79
|
-
}
|
|
80
|
-
>
|
|
81
|
-
>
|
|
82
|
-
}
|
|
83
|
-
> = {}
|
|
84
|
-
|
|
85
|
-
for (const meta of Object.values(channelsMeta)) {
|
|
86
|
-
const { name, messageWirings, message } = meta
|
|
87
|
-
|
|
88
|
-
if (!channelsObject[name]) {
|
|
89
|
-
channelsObject[name] = { message: null, routes: {} }
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (message) {
|
|
93
|
-
const func = functionsMeta[message.pikkuFuncName]
|
|
94
|
-
if (!func) {
|
|
95
|
-
throw new Error(
|
|
96
|
-
`Function ${message.pikkuFuncName} not found in functionsMeta for channel ${name}`
|
|
97
|
-
)
|
|
98
|
-
}
|
|
99
|
-
const inputTypes = func.inputs || null
|
|
100
|
-
const outputTypes = func.outputs || null
|
|
101
|
-
channelsObject[name].message = {
|
|
102
|
-
inputs: inputTypes,
|
|
103
|
-
outputs: outputTypes,
|
|
104
|
-
}
|
|
105
|
-
inputTypes?.forEach((type) => requiredTypes.add(type))
|
|
106
|
-
outputTypes?.forEach((type) => requiredTypes.add(type))
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
for (const [key, route] of Object.entries(messageWirings)) {
|
|
110
|
-
if (!channelsObject[name].routes[key]) {
|
|
111
|
-
channelsObject[name].routes[key] = {}
|
|
112
|
-
}
|
|
113
|
-
for (const [method, { pikkuFuncName }] of Object.entries(route)) {
|
|
114
|
-
const func = functionsMeta[pikkuFuncName]
|
|
115
|
-
if (!func) {
|
|
116
|
-
throw new Error(
|
|
117
|
-
`Function ${pikkuFuncName} not found in functionsMeta for channel ${name}, route ${key}, method ${method}`
|
|
118
|
-
)
|
|
119
|
-
}
|
|
120
|
-
const inputTypes = func.inputs || null
|
|
121
|
-
const outputTypes = func.outputs || null
|
|
122
|
-
channelsObject[name].routes[key][method] = {
|
|
123
|
-
inputTypes,
|
|
124
|
-
outputTypes,
|
|
125
|
-
}
|
|
126
|
-
inputTypes?.forEach((type) => requiredTypes.add(type))
|
|
127
|
-
outputTypes?.forEach((type) => requiredTypes.add(type))
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
let routesStr = 'export type ChannelsMap = {\n'
|
|
133
|
-
|
|
134
|
-
for (const [channelPath, { routes, message }] of Object.entries(
|
|
135
|
-
channelsObject
|
|
136
|
-
)) {
|
|
137
|
-
routesStr += ` readonly '${channelPath}': {\n`
|
|
138
|
-
|
|
139
|
-
// Add `routes` object
|
|
140
|
-
routesStr += ` readonly routes: {\n`
|
|
141
|
-
for (const [key, methods] of Object.entries(routes)) {
|
|
142
|
-
routesStr += ` readonly ${key}: {\n`
|
|
143
|
-
for (const [method, handler] of Object.entries(methods)) {
|
|
144
|
-
routesStr += ` readonly ${method}: ChannelHandler<${
|
|
145
|
-
formatTypeArray(handler.inputTypes) || 'void'
|
|
146
|
-
}, ${formatTypeArray(handler.outputTypes) || 'never'}>,\n`
|
|
147
|
-
}
|
|
148
|
-
routesStr += ' },\n'
|
|
149
|
-
}
|
|
150
|
-
routesStr += ' },\n'
|
|
151
|
-
|
|
152
|
-
// Add `defaultMessage` outside `routes`
|
|
153
|
-
if (message) {
|
|
154
|
-
routesStr += ` readonly defaultMessage: ChannelHandler<${formatTypeArray(
|
|
155
|
-
message.inputs
|
|
156
|
-
)}, ${formatTypeArray(message.outputs)}>,\n`
|
|
157
|
-
} else {
|
|
158
|
-
routesStr += ` readonly defaultMessage: never,\n`
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
routesStr += ' },\n'
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
routesStr += '};'
|
|
165
|
-
|
|
166
|
-
return { channels: routesStr, requiredTypes }
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
// Utility to format type arrays
|
|
170
|
-
function formatTypeArray(types: string[] | null): string {
|
|
171
|
-
return types ? types.join(' | ') : 'null'
|
|
172
|
-
}
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
export const serializeWebsocketWrapper = (channelsMapPath: string) => {
|
|
2
|
-
return `import { CorePikkuWebsocket, CorePikkuRouteHandler } from '@pikku/websocket'
|
|
3
|
-
import { ChannelDefaultHandlerOf, ChannelWiringHandlerOf, ChannelsMap } from '${channelsMapPath}';
|
|
4
|
-
|
|
5
|
-
class PikkuWebSocketRoute<Channel extends keyof ChannelsMap, Route extends keyof ChannelsMap[Channel]['routes']> extends CorePikkuRouteHandler {
|
|
6
|
-
public subscribe<
|
|
7
|
-
Method extends keyof ChannelsMap[Channel]['routes'][Route],
|
|
8
|
-
Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
|
|
9
|
-
>(method: Method, callback: (data: Data) => void
|
|
10
|
-
) {
|
|
11
|
-
super.subscribe(method.toString(), callback)
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
public unsubscribe<
|
|
15
|
-
Method extends keyof ChannelsMap[Channel]['routes'][Route],
|
|
16
|
-
Data extends ChannelWiringHandlerOf<Channel, Route, Method>['output']
|
|
17
|
-
>(method: Method, callback?: (data: Data) => void) {
|
|
18
|
-
super.unsubscribe(method.toString(), callback)
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
public send<
|
|
22
|
-
Method extends keyof ChannelsMap[Channel]['routes'][Route],
|
|
23
|
-
Data extends ChannelWiringHandlerOf<Channel, Route, Method>['input']
|
|
24
|
-
>(method: Method, data: Data) {
|
|
25
|
-
super.send(method.toString(), data)
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Type-safe WebSocket wrapper for Pikku channels.
|
|
31
|
-
*
|
|
32
|
-
* @example
|
|
33
|
-
* // Browser usage
|
|
34
|
-
* const ws = new WebSocket('ws://localhost:3000')
|
|
35
|
-
* const pikkuWS = new PikkuWebSocket<'events'>(ws)
|
|
36
|
-
*
|
|
37
|
-
* @example
|
|
38
|
-
* // Node.js usage
|
|
39
|
-
* import WebSocket from 'ws'
|
|
40
|
-
* const ws = new WebSocket('ws://localhost:3000')
|
|
41
|
-
* const pikkuWS = new PikkuWebSocket<'events'>(ws)
|
|
42
|
-
*/
|
|
43
|
-
export class PikkuWebSocket<Channel extends keyof ChannelsMap, EventHubTopics extends Record<string, any> = {}> extends CorePikkuWebsocket {
|
|
44
|
-
/**
|
|
45
|
-
* Send a message to a specific route and method.
|
|
46
|
-
* Validates the input data type.
|
|
47
|
-
*/
|
|
48
|
-
public getRoute<Route extends keyof ChannelsMap[Channel]['routes']>(route: Route): PikkuWebSocketRoute<Channel, Route> {
|
|
49
|
-
return super.getRoute(route)
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Subscribe to a specific route and method.
|
|
54
|
-
*/
|
|
55
|
-
public subscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
|
|
56
|
-
callback: (data: Data) => void
|
|
57
|
-
) {
|
|
58
|
-
super.subscribe(callback)
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Subscribe to a specific route and method.
|
|
63
|
-
*/
|
|
64
|
-
public unsubscribe<Data extends ChannelDefaultHandlerOf<Channel>['output']>(
|
|
65
|
-
callback?: (data: Data) => void
|
|
66
|
-
) {
|
|
67
|
-
super.unsubscribe(callback)
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public send(data: ChannelDefaultHandlerOf<Channel>['input']) {
|
|
71
|
-
super.send(data)
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Subscribe to a topic from the EventHub system with strong typing.
|
|
76
|
-
*/
|
|
77
|
-
public subscribeToEventHub<Topic extends keyof EventHubTopics>(
|
|
78
|
-
topic: Topic,
|
|
79
|
-
callback: (data: EventHubTopics[Topic]) => void
|
|
80
|
-
) {
|
|
81
|
-
super.subscribe((data) => {
|
|
82
|
-
if (data.topic === topic) {
|
|
83
|
-
callback(data as EventHubTopics[Topic])
|
|
84
|
-
}
|
|
85
|
-
})
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
`
|
|
89
|
-
}
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
|
|
2
|
-
import { writeFileInDir } from '../../../utils/file-writer.js'
|
|
3
|
-
import { checkRequiredTypes } from '../../../utils/check-required-types.js'
|
|
4
|
-
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
|
|
5
|
-
import { join } from 'node:path'
|
|
6
|
-
import { serializeLocalCLIBootstrap } from './serialize-local-cli-bootstrap.js'
|
|
7
|
-
import { serializeChannelCLI } from './serialize-channel-cli.js'
|
|
8
|
-
import {
|
|
9
|
-
serializeChannelCLIClient,
|
|
10
|
-
collectRendererNames,
|
|
11
|
-
} from './serialize-channel-cli-client.js'
|
|
12
|
-
import { existsSync } from 'fs'
|
|
13
|
-
import { rm } from 'fs/promises'
|
|
14
|
-
import { ErrorCode } from '@pikku/inspector'
|
|
15
|
-
|
|
16
|
-
export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
|
|
17
|
-
func: async ({ logger, config, getInspectorState }) => {
|
|
18
|
-
const visitState = await getInspectorState()
|
|
19
|
-
|
|
20
|
-
// Check if CLI entrypoints are configured
|
|
21
|
-
if (
|
|
22
|
-
!config.cli?.entrypoints ||
|
|
23
|
-
Object.keys(config.cli.entrypoints).length === 0
|
|
24
|
-
) {
|
|
25
|
-
logger.info({
|
|
26
|
-
message:
|
|
27
|
-
'No CLI entrypoints configured in config.cli.entrypoints, skipping CLI bootstrap generation',
|
|
28
|
-
type: 'skip',
|
|
29
|
-
})
|
|
30
|
-
return
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Generate bootstrap files for each configured entrypoint
|
|
34
|
-
for (const [programName, entrypointConfigs] of Object.entries(
|
|
35
|
-
config.cli.entrypoints
|
|
36
|
-
)) {
|
|
37
|
-
const programMeta = visitState.cli.meta.programs[programName]
|
|
38
|
-
|
|
39
|
-
if (!programMeta) {
|
|
40
|
-
logger.warn(
|
|
41
|
-
`CLI program '${programName}' not found in metadata, skipping`
|
|
42
|
-
)
|
|
43
|
-
continue
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
// Normalize to array
|
|
47
|
-
const configs = Array.isArray(entrypointConfigs)
|
|
48
|
-
? entrypointConfigs
|
|
49
|
-
: [entrypointConfigs]
|
|
50
|
-
|
|
51
|
-
for (const entrypointConfig of configs) {
|
|
52
|
-
// Normalize entrypoint config to get type
|
|
53
|
-
const entrypointType =
|
|
54
|
-
typeof entrypointConfig === 'string'
|
|
55
|
-
? 'local'
|
|
56
|
-
: entrypointConfig.type || 'local'
|
|
57
|
-
|
|
58
|
-
// Handle channel type entrypoint
|
|
59
|
-
if (entrypointType === 'channel') {
|
|
60
|
-
if (
|
|
61
|
-
typeof entrypointConfig === 'string' ||
|
|
62
|
-
entrypointConfig.type !== 'channel'
|
|
63
|
-
) {
|
|
64
|
-
throw new Error('Channel entrypoint must be a channel type object')
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
const channelWirePath = entrypointConfig.wirePath
|
|
68
|
-
const channelClientPath = entrypointConfig.path
|
|
69
|
-
const channelName = entrypointConfig.name
|
|
70
|
-
const channelRoute = entrypointConfig.route
|
|
71
|
-
|
|
72
|
-
const channelWireFile = join(config.rootDir, channelWirePath)
|
|
73
|
-
|
|
74
|
-
const channelCode = serializeChannelCLI(
|
|
75
|
-
programName,
|
|
76
|
-
programMeta,
|
|
77
|
-
channelWireFile,
|
|
78
|
-
visitState.functions.files,
|
|
79
|
-
config.packageMappings,
|
|
80
|
-
config.channelsTypesFile,
|
|
81
|
-
config.functionTypesFile,
|
|
82
|
-
channelName,
|
|
83
|
-
channelRoute
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
await writeFileInDir(logger, channelWireFile, channelCode)
|
|
87
|
-
logger.debug(
|
|
88
|
-
`Serialized CLI channel for ${programName}: ${channelWireFile}`
|
|
89
|
-
)
|
|
90
|
-
|
|
91
|
-
// Generate client code if clientPath is provided
|
|
92
|
-
if (channelClientPath) {
|
|
93
|
-
const channelClientFile = join(config.rootDir, channelClientPath)
|
|
94
|
-
|
|
95
|
-
// Validate that renderers don't depend on services (client-side renderers can't access server services)
|
|
96
|
-
const rendererNames = collectRendererNames(programMeta)
|
|
97
|
-
const problematicRenderers: Array<{
|
|
98
|
-
name: string
|
|
99
|
-
services: string[]
|
|
100
|
-
}> = []
|
|
101
|
-
|
|
102
|
-
for (const rendererName of rendererNames) {
|
|
103
|
-
const rendererMeta = visitState.cli.meta.renderers[rendererName]
|
|
104
|
-
if (rendererMeta?.services?.services?.length > 0) {
|
|
105
|
-
problematicRenderers.push({
|
|
106
|
-
name: rendererName,
|
|
107
|
-
services: rendererMeta.services.services,
|
|
108
|
-
})
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// If any renderers depend on services, abort client generation
|
|
113
|
-
if (problematicRenderers.length > 0) {
|
|
114
|
-
const details = problematicRenderers
|
|
115
|
-
.map(
|
|
116
|
-
(r) => ` - ${r.name} depends on: ${r.services.join(', ')}`
|
|
117
|
-
)
|
|
118
|
-
.join('\n')
|
|
119
|
-
|
|
120
|
-
logger.critical(
|
|
121
|
-
ErrorCode.CLI_CLIENTSIDE_RENDERER_HAS_SERVICES,
|
|
122
|
-
`Cannot generate CLI channel client for '${programName}': renderers cannot depend on services (client-side execution)\n${details}\n\nRenderers used in CLI-over-channel must be service-free since they execute on the client.`
|
|
123
|
-
)
|
|
124
|
-
|
|
125
|
-
// Delete existing client file if it exists
|
|
126
|
-
if (existsSync(channelClientFile)) {
|
|
127
|
-
await rm(channelClientFile)
|
|
128
|
-
logger.debug(
|
|
129
|
-
`Deleted existing CLI channel client: ${channelClientFile}`
|
|
130
|
-
)
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
continue
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
const clientCode = serializeChannelCLIClient(
|
|
137
|
-
programName,
|
|
138
|
-
programMeta,
|
|
139
|
-
channelClientFile,
|
|
140
|
-
config,
|
|
141
|
-
config.bootstrapFile,
|
|
142
|
-
channelRoute,
|
|
143
|
-
visitState.cli.meta.renderers
|
|
144
|
-
)
|
|
145
|
-
|
|
146
|
-
await writeFileInDir(logger, channelClientFile, clientCode)
|
|
147
|
-
logger.debug(
|
|
148
|
-
`Serialized CLI channel client for ${programName}: ${channelClientFile}`
|
|
149
|
-
)
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
continue
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
// Handle local CLI type entrypoint (default)
|
|
156
|
-
const entrypointPath =
|
|
157
|
-
typeof entrypointConfig === 'string'
|
|
158
|
-
? entrypointConfig
|
|
159
|
-
: entrypointConfig.type === 'local'
|
|
160
|
-
? entrypointConfig.path
|
|
161
|
-
: undefined
|
|
162
|
-
|
|
163
|
-
if (!entrypointPath) {
|
|
164
|
-
throw new Error(
|
|
165
|
-
`CLI entrypoint must have a path: ${JSON.stringify(entrypointConfig)}`
|
|
166
|
-
)
|
|
167
|
-
}
|
|
168
|
-
|
|
169
|
-
const bootstrapFile = join(config.rootDir, entrypointPath)
|
|
170
|
-
|
|
171
|
-
// Get service factories for local mode
|
|
172
|
-
// Check for required types
|
|
173
|
-
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
174
|
-
config: true,
|
|
175
|
-
singletonServicesFactory: true,
|
|
176
|
-
wireServicesFactory: true,
|
|
177
|
-
})
|
|
178
|
-
|
|
179
|
-
const {
|
|
180
|
-
pikkuConfigFactory,
|
|
181
|
-
singletonServicesFactory,
|
|
182
|
-
wireServicesFactory,
|
|
183
|
-
} = visitState.filesAndMethods
|
|
184
|
-
|
|
185
|
-
if (
|
|
186
|
-
!pikkuConfigFactory ||
|
|
187
|
-
!singletonServicesFactory ||
|
|
188
|
-
!wireServicesFactory
|
|
189
|
-
) {
|
|
190
|
-
throw new Error('Required types not found')
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
const bootstrapCode = serializeLocalCLIBootstrap(
|
|
194
|
-
programName,
|
|
195
|
-
programMeta,
|
|
196
|
-
bootstrapFile,
|
|
197
|
-
config,
|
|
198
|
-
pikkuConfigFactory,
|
|
199
|
-
singletonServicesFactory,
|
|
200
|
-
wireServicesFactory
|
|
201
|
-
)
|
|
202
|
-
|
|
203
|
-
await writeFileInDir(logger, bootstrapFile, bootstrapCode)
|
|
204
|
-
logger.debug(
|
|
205
|
-
`Serialized CLI bootstrap for ${programName}: ${bootstrapFile}`
|
|
206
|
-
)
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
middleware: [
|
|
211
|
-
logCommandInfoAndTime({
|
|
212
|
-
commandStart: 'Serializing CLI',
|
|
213
|
-
commandEnd: 'Serialized CLI',
|
|
214
|
-
}),
|
|
215
|
-
],
|
|
216
|
-
})
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
|
|
2
|
-
import { writeFileInDir } from '../../../utils/file-writer.js'
|
|
3
|
-
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
4
|
-
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
|
|
5
|
-
import { serializeCLITypes } from './serialize-cli-types.js'
|
|
6
|
-
import { checkRequiredTypes } from '../../../utils/check-required-types.js'
|
|
7
|
-
|
|
8
|
-
export const pikkuCLITypes: any = pikkuSessionlessFunc<void, void>({
|
|
9
|
-
func: async ({ logger, config, getInspectorState }) => {
|
|
10
|
-
const { cliTypesFile, functionTypesFile, packageMappings } = config
|
|
11
|
-
const visitState = await getInspectorState()
|
|
12
|
-
|
|
13
|
-
const functionTypesImportPath = getFileImportRelativePath(
|
|
14
|
-
cliTypesFile,
|
|
15
|
-
functionTypesFile,
|
|
16
|
-
packageMappings
|
|
17
|
-
)
|
|
18
|
-
|
|
19
|
-
// Check for required types
|
|
20
|
-
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
21
|
-
userSessionType: true,
|
|
22
|
-
wireServiceType: true,
|
|
23
|
-
singletonServicesType: true,
|
|
24
|
-
})
|
|
25
|
-
|
|
26
|
-
const { userSessionType, singletonServicesType } =
|
|
27
|
-
visitState.filesAndMethods
|
|
28
|
-
|
|
29
|
-
if (!userSessionType || !singletonServicesType) {
|
|
30
|
-
throw new Error('Required types not found')
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
const content = serializeCLITypes(
|
|
34
|
-
functionTypesImportPath,
|
|
35
|
-
`import type { ${userSessionType.type} } from '${getFileImportRelativePath(cliTypesFile, userSessionType.typePath, packageMappings)}'`,
|
|
36
|
-
userSessionType.type,
|
|
37
|
-
`import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(cliTypesFile, singletonServicesType.typePath, packageMappings)}'`,
|
|
38
|
-
singletonServicesType.type
|
|
39
|
-
)
|
|
40
|
-
await writeFileInDir(logger, cliTypesFile, content)
|
|
41
|
-
},
|
|
42
|
-
middleware: [
|
|
43
|
-
logCommandInfoAndTime({
|
|
44
|
-
commandStart: 'Creating CLI types',
|
|
45
|
-
commandEnd: 'Created CLI types',
|
|
46
|
-
}),
|
|
47
|
-
],
|
|
48
|
-
})
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
|
|
2
|
-
import { serializeFileImports } from '../../../utils/file-imports-serializer.js'
|
|
3
|
-
import { writeFileInDir } from '../../../utils/file-writer.js'
|
|
4
|
-
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
|
|
5
|
-
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
6
|
-
|
|
7
|
-
export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
|
|
8
|
-
func: async ({ logger, config, getInspectorState }) => {
|
|
9
|
-
const visitState = await getInspectorState()
|
|
10
|
-
const {
|
|
11
|
-
cliWiringsFile,
|
|
12
|
-
cliWiringMetaFile,
|
|
13
|
-
cliWiringMetaJsonFile,
|
|
14
|
-
packageMappings,
|
|
15
|
-
schema,
|
|
16
|
-
} = config
|
|
17
|
-
const { cli } = visitState
|
|
18
|
-
|
|
19
|
-
// Generate CLI wirings file
|
|
20
|
-
await writeFileInDir(
|
|
21
|
-
logger,
|
|
22
|
-
cliWiringsFile,
|
|
23
|
-
serializeFileImports(
|
|
24
|
-
'wireCLI',
|
|
25
|
-
cliWiringsFile,
|
|
26
|
-
cli.files,
|
|
27
|
-
packageMappings
|
|
28
|
-
)
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
await writeFileInDir(
|
|
32
|
-
logger,
|
|
33
|
-
cliWiringMetaJsonFile,
|
|
34
|
-
JSON.stringify(cli.meta, null, 2)
|
|
35
|
-
)
|
|
36
|
-
|
|
37
|
-
const jsonImportPath = getFileImportRelativePath(
|
|
38
|
-
cliWiringMetaFile,
|
|
39
|
-
cliWiringMetaJsonFile,
|
|
40
|
-
packageMappings
|
|
41
|
-
)
|
|
42
|
-
|
|
43
|
-
const supportsImportAttributes = schema?.supportsImportAttributes ?? false
|
|
44
|
-
const importStatement = supportsImportAttributes
|
|
45
|
-
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
46
|
-
: `import metaData from '${jsonImportPath}'`
|
|
47
|
-
|
|
48
|
-
await writeFileInDir(
|
|
49
|
-
logger,
|
|
50
|
-
cliWiringMetaFile,
|
|
51
|
-
`import { pikkuState } from '@pikku/core'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState('cli', 'meta', metaData as CLIMeta)`
|
|
52
|
-
)
|
|
53
|
-
|
|
54
|
-
return true
|
|
55
|
-
},
|
|
56
|
-
middleware: [
|
|
57
|
-
logCommandInfoAndTime({
|
|
58
|
-
commandStart: 'Finding CLI commands',
|
|
59
|
-
commandEnd: 'Found CLI commands',
|
|
60
|
-
}),
|
|
61
|
-
],
|
|
62
|
-
})
|