@pikku/cli 0.12.83 → 0.12.86
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/console-app/assets/index-CSzCJzBb.css +1 -0
- package/console-app/assets/{index-CN_U0k_D.js → index-Cr3_cO3Z.js} +161 -150
- package/console-app/index.html +2 -2
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +3 -2
- package/dist/.pikku/{http/pikku-http-wirings.gen.d.ts → auth/auth.types.d.ts} +1 -1
- package/dist/.pikku/auth/auth.types.js +5 -0
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.d.ts +4 -4
- package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
- 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-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +4 -0
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +4 -0
- 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 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +24 -14
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +45 -36
- package/dist/.pikku/function/pikku-functions.gen.js +3 -3
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -5
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -5
- package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +2 -1
- package/dist/.pikku/pikku-services.gen.js +1 -0
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.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 +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +3 -7
- package/dist/.pikku/schemas/schemas/FabricLoginInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuUserAdminFunctionsOutput.schema.json +1 -0
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/meta/allWorkflow.gen.json +9 -3
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +8 -2
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/src/fabric/fabric-commands.d.ts +56 -53
- package/dist/src/fabric/fabric-commands.js +4 -0
- package/dist/src/fabric/functions/add.function.d.ts +2 -2
- package/dist/src/fabric/functions/addon-verify.function.d.ts +2 -2
- package/dist/src/fabric/functions/db-schema.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy-units.function.d.ts +2 -2
- package/dist/src/fabric/functions/deploy.function.d.ts +4 -4
- package/dist/src/fabric/functions/domains-add.function.d.ts +2 -2
- package/dist/src/fabric/functions/domains-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/domains-remove.function.d.ts +2 -2
- package/dist/src/fabric/functions/errors.function.d.ts +2 -2
- package/dist/src/fabric/functions/init.function.d.ts +2 -2
- package/dist/src/fabric/functions/link.function.d.ts +2 -2
- package/dist/src/fabric/functions/llm-key.function.d.ts +6 -6
- package/dist/src/fabric/functions/login.function.d.ts +6 -2
- package/dist/src/fabric/functions/login.function.js +45 -4
- package/dist/src/fabric/functions/logs.function.d.ts +2 -2
- package/dist/src/fabric/functions/metrics.function.d.ts +2 -2
- package/dist/src/fabric/functions/publish.function.d.ts +2 -2
- package/dist/src/fabric/functions/rollback.function.d.ts +2 -2
- package/dist/src/fabric/functions/secrets-list.function.d.ts +2 -2
- package/dist/src/fabric/functions/secrets-set.function.d.ts +2 -2
- package/dist/src/fabric/functions/smoke.function.d.ts +2 -2
- package/dist/src/fabric/functions/status.function.d.ts +2 -2
- package/dist/src/fabric/functions/trace.function.d.ts +2 -2
- package/dist/src/fabric/functions/validate.function.d.ts +2 -2
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/audit.d.ts +1 -1
- package/dist/src/functions/commands/binary.d.ts +2 -2
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/db-audit.d.ts +1 -1
- package/dist/src/functions/commands/db-generate.d.ts +1 -1
- package/dist/src/functions/commands/db-migrate.d.ts +1 -1
- package/dist/src/functions/commands/db-reset.d.ts +1 -1
- package/dist/src/functions/commands/db-seed.d.ts +1 -1
- package/dist/src/functions/commands/deploy-apply.d.ts +2 -2
- package/dist/src/functions/commands/deploy-info.d.ts +1 -1
- package/dist/src/functions/commands/deploy-plan.d.ts +2 -2
- package/dist/src/functions/commands/dev.d.ts +2 -2
- package/dist/src/functions/commands/emails-init.d.ts +1 -1
- package/dist/src/functions/commands/enable.d.ts +8 -8
- package/dist/src/functions/commands/import-n8n.d.ts +2 -2
- package/dist/src/functions/commands/info.d.ts +4 -4
- package/dist/src/functions/commands/login.d.ts +5 -5
- package/dist/src/functions/commands/meta.d.ts +25 -25
- package/dist/src/functions/commands/new-addon.d.ts +13 -2
- package/dist/src/functions/commands/new-addon.js +38 -4
- package/dist/src/functions/commands/new-function.d.ts +2 -2
- package/dist/src/functions/commands/new-middleware.d.ts +2 -2
- package/dist/src/functions/commands/new-permission.d.ts +2 -2
- package/dist/src/functions/commands/new-wiring.d.ts +2 -2
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
- package/dist/src/functions/commands/scenario.d.ts +3 -3
- package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
- package/dist/src/functions/commands/scopes-prune.d.ts +2 -2
- package/dist/src/functions/commands/serve.d.ts +2 -2
- package/dist/src/functions/commands/skills.d.ts +4 -4
- package/dist/src/functions/commands/versions-check.d.ts +1 -1
- package/dist/src/functions/commands/versions-init.d.ts +2 -2
- package/dist/src/functions/commands/versions-update.d.ts +1 -1
- package/dist/src/functions/commands/watch.d.ts +2 -2
- package/dist/src/functions/commands/workspace-validate.d.ts +2 -2
- package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
- package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +3 -2
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +6 -2
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +3 -2
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +5 -1
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +112 -40
- package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +2 -2
- package/dist/src/functions/wirings/auth/pikku-command-auth.js +4 -0
- package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-console-functions.js +6 -2
- package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
- package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +5 -1
- package/dist/src/functions/wirings/console/serialize-console-functions.js +55 -23
- package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
- package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-services.js +9 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
- package/dist/src/functions/wirings/functions/schemas.js +10 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +23 -12
- package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
- package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
- package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.js +2 -0
- package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +3 -3
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.js +8 -2
- package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/serialize-events-scaffold.d.ts +5 -4
- package/dist/src/functions/wirings/realtime/serialize-events-scaffold.js +17 -7
- 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 +6 -2
- package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
- 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 +6 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +5 -1
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +16 -5
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.d.ts +5 -1
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +16 -5
- package/dist/src/functions/wirings/scenarios/pikku-command-scenario-functions.d.ts +1 -1
- package/dist/src/functions/wirings/scenarios/pikku-command-scenario-functions.js +8 -2
- package/dist/src/functions/wirings/scenarios/serialize-scenario-functions.d.ts +5 -1
- package/dist/src/functions/wirings/scenarios/serialize-scenario-functions.js +22 -16
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
- package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +2 -2
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +2 -2
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
- package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.d.ts +1 -0
- package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.js +49 -0
- package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.d.ts +24 -0
- package/dist/src/functions/wirings/user-admin/serialize-user-admin-functions.js +283 -0
- package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
- package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
- package/dist/src/functions/wirings/webhook/pikku-command-webhook.js +6 -2
- package/dist/src/functions/wirings/webhook/serialize-webhook.d.ts +5 -8
- package/dist/src/functions/wirings/webhook/serialize-webhook.js +19 -12
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.js +8 -2
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +2 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-routes.d.ts +5 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +61 -31
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +8 -2
- package/dist/src/functions/workflows/all.workflow.js +8 -0
- package/dist/src/utils/pikku-cli-config.js +40 -10
- package/dist/src/utils/remove-legacy-scaffold-file.d.ts +3 -0
- package/dist/src/utils/remove-legacy-scaffold-file.js +43 -0
- package/dist/src/utils/serialize-schemas.js +57 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/skills/pikku-addon/SKILL.md +1 -0
- package/skills/pikku-ai-agent/SKILL.md +5 -4
- package/skills/pikku-ai-vercel/SKILL.md +1 -0
- package/skills/pikku-better-auth/SKILL.md +57 -0
- package/skills/pikku-concepts/SKILL.md +1 -1
- package/skills/pikku-concepts/references/concept-mapping.md +11 -9
- package/skills/pikku-emails/SKILL.md +1 -0
- package/skills/pikku-fabric-debug/SKILL.md +112 -0
- package/skills/pikku-permissions/SKILL.md +8 -8
- package/skills/pikku-react/SKILL.md +32 -3
- package/skills/pikku-react-query/SKILL.md +38 -1
- package/skills/pikku-realtime/SKILL.md +1 -1
- package/skills/pikku-security/SKILL.md +3 -3
- package/skills/pikku-services/SKILL.md +34 -0
- package/skills/pikku-template-clone/SKILL.md +1 -0
- package/cli.schema.json +0 -1
- package/console-app/assets/index-CpHRlBt-.css +0 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.d.ts +0 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +0 -6
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +0 -26
- package/dist/.pikku/http/pikku-http-wirings.gen.js +0 -5
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.d.ts +0 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +0 -6
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -10
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +0 -4
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +0 -5
- package/dist/.pikku/schemas/schemas/RemoteRPCHandlerInput.schema.json +0 -1
- package/dist/src/scaffold/rpc-remote.gen.d.ts +0 -10
- package/dist/src/scaffold/rpc-remote.gen.js +0 -27
|
@@ -42,6 +42,17 @@ ${wireServicesTypeName !== 'Services' ? `export type Services = ${wireServicesTy
|
|
|
42
42
|
${userSessionTypeName !== 'Session' ? `export type Session = ${userSessionTypeName}` : `export type { ${userSessionTypeName} as Session }`}
|
|
43
43
|
${configTypeImport.includes('Config type not found') ? 'export type Config = any' : ''}
|
|
44
44
|
|
|
45
|
+
/**
|
|
46
|
+
* The services a wired function actually receives. The inspector records which
|
|
47
|
+
* services each wired \`func\`, \`permissions\` and \`middleware\` destructures and
|
|
48
|
+
* emits them as \`RequiredSingletonServices\`; intersecting that here makes those
|
|
49
|
+
* services **non-optional** at every call site. A service is optional only when
|
|
50
|
+
* nothing destructures it — in which case it is never created either. This is
|
|
51
|
+
* why an \`if (!service)\` guard inside a function body is always dead code.
|
|
52
|
+
*/
|
|
53
|
+
export type WiredSingletonServices = RequiredSingletonServices & SingletonServices
|
|
54
|
+
export type WiredServices = RequiredSingletonServices & Services
|
|
55
|
+
|
|
45
56
|
/**
|
|
46
57
|
* Inline node configuration for function definitions.
|
|
47
58
|
*/
|
|
@@ -59,7 +70,7 @@ export type NodeConfig = {
|
|
|
59
70
|
* @template In - The input type that the permission check will receive
|
|
60
71
|
* @template RequiredServices - The services required for this permission check
|
|
61
72
|
*/
|
|
62
|
-
export type PikkuPermission<In = unknown, RequiredServices extends Services =
|
|
73
|
+
export type PikkuPermission<In = unknown, RequiredServices extends Services = WiredServices> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>
|
|
63
74
|
|
|
64
75
|
/**
|
|
65
76
|
* Type-safe middleware definition that can access your application's services and session.
|
|
@@ -67,12 +78,12 @@ export type PikkuPermission<In = unknown, RequiredServices extends Services = Se
|
|
|
67
78
|
*
|
|
68
79
|
* @template RequiredServices - The services required for this middleware
|
|
69
80
|
*/
|
|
70
|
-
export type PikkuMiddleware<RequiredServices extends SingletonServices =
|
|
81
|
+
export type PikkuMiddleware<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuMiddleware<RequiredServices>
|
|
71
82
|
|
|
72
83
|
/**
|
|
73
84
|
* Configuration object for creating a permission with metadata
|
|
74
85
|
*/
|
|
75
|
-
export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services =
|
|
86
|
+
export type PikkuPermissionConfig<In = unknown, RequiredServices extends Services = WiredServices> = {
|
|
76
87
|
/** The permission function */
|
|
77
88
|
func: PikkuPermission<In, RequiredServices>
|
|
78
89
|
/** Optional human-readable name for the permission */
|
|
@@ -117,12 +128,12 @@ export const pikkuPermission = <In>(
|
|
|
117
128
|
*
|
|
118
129
|
* @template RequiredServices - The services required for this auth check
|
|
119
130
|
*/
|
|
120
|
-
export type PikkuAuth<RequiredServices extends SingletonServices =
|
|
131
|
+
export type PikkuAuth<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuAuth<RequiredServices, Session>
|
|
121
132
|
|
|
122
133
|
/**
|
|
123
134
|
* Configuration object for creating an auth permission with metadata
|
|
124
135
|
*/
|
|
125
|
-
export type PikkuAuthConfig<RequiredServices extends SingletonServices =
|
|
136
|
+
export type PikkuAuthConfig<RequiredServices extends SingletonServices = WiredSingletonServices> = CorePikkuAuthConfig<RequiredServices, Session>
|
|
126
137
|
|
|
127
138
|
/**
|
|
128
139
|
* Factory function for creating auth-only permissions with tree-shaking support.
|
|
@@ -144,7 +155,7 @@ export type PikkuAuthConfig<RequiredServices extends SingletonServices = Singlet
|
|
|
144
155
|
* })
|
|
145
156
|
* \\\`\\\`\\\`
|
|
146
157
|
*/
|
|
147
|
-
export const pikkuAuth = <RequiredServices extends SingletonServices =
|
|
158
|
+
export const pikkuAuth = <RequiredServices extends SingletonServices = WiredSingletonServices>(
|
|
148
159
|
auth: PikkuAuth<RequiredServices> | PikkuAuthConfig<RequiredServices>
|
|
149
160
|
): PikkuPermission<any, any> => {
|
|
150
161
|
return pikkuAuthCore(auth as any) as any
|
|
@@ -153,7 +164,7 @@ export const pikkuAuth = <RequiredServices extends SingletonServices = Singleton
|
|
|
153
164
|
/**
|
|
154
165
|
* Configuration object for creating middleware with metadata
|
|
155
166
|
*/
|
|
156
|
-
export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices =
|
|
167
|
+
export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = WiredSingletonServices> = {
|
|
157
168
|
/** The middleware function */
|
|
158
169
|
func: PikkuMiddleware<RequiredServices>
|
|
159
170
|
/** Optional human-readable name for the middleware */
|
|
@@ -185,7 +196,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
|
|
|
185
196
|
* })
|
|
186
197
|
* \`\`\`
|
|
187
198
|
*/
|
|
188
|
-
export const pikkuMiddleware = <RequiredServices extends SingletonServices =
|
|
199
|
+
export const pikkuMiddleware = <RequiredServices extends SingletonServices = WiredSingletonServices>(
|
|
189
200
|
middleware: PikkuMiddleware<RequiredServices> | PikkuMiddlewareConfig<RequiredServices>
|
|
190
201
|
): PikkuMiddleware<RequiredServices> => {
|
|
191
202
|
return typeof middleware === 'function' ? middleware : middleware.func
|
|
@@ -246,7 +257,7 @@ export const pikkuPermissionFactory = <In = any>(
|
|
|
246
257
|
* @template In - The input type (same as the function it describes)
|
|
247
258
|
* @template RequiredServices - The services required for this description function
|
|
248
259
|
*/
|
|
249
|
-
export type PikkuApprovalDescription<In = unknown, RequiredServices extends Services =
|
|
260
|
+
export type PikkuApprovalDescription<In = unknown, RequiredServices extends Services = WiredServices> = (
|
|
250
261
|
services: RequiredServices,
|
|
251
262
|
data: In
|
|
252
263
|
) => Promise<string>
|
|
@@ -264,7 +275,7 @@ export type PikkuApprovalDescription<In = unknown, RequiredServices extends Serv
|
|
|
264
275
|
* )
|
|
265
276
|
* \`\`\`
|
|
266
277
|
*/
|
|
267
|
-
export const pikkuApprovalDescription = <In = unknown, RequiredServices extends Services =
|
|
278
|
+
export const pikkuApprovalDescription = <In = unknown, RequiredServices extends Services = WiredServices>(
|
|
268
279
|
fn: PikkuApprovalDescription<In, RequiredServices>
|
|
269
280
|
): PikkuApprovalDescription<In, RequiredServices> => {
|
|
270
281
|
return fn
|
|
@@ -282,7 +293,7 @@ export type PikkuFunctionSessionless<
|
|
|
282
293
|
In = unknown,
|
|
283
294
|
Out = never,
|
|
284
295
|
RequiredWires extends keyof PikkuWire = never,
|
|
285
|
-
RequiredServices extends Services =
|
|
296
|
+
RequiredServices extends Services = WiredServices
|
|
286
297
|
> = CorePikkuFunctionSessionless<
|
|
287
298
|
In,
|
|
288
299
|
Out,
|
|
@@ -303,7 +314,7 @@ export type PikkuFunction<
|
|
|
303
314
|
In = unknown,
|
|
304
315
|
Out = never,
|
|
305
316
|
RequiredWires extends keyof PikkuWire = 'session',
|
|
306
|
-
RequiredServices extends Services =
|
|
317
|
+
RequiredServices extends Services = WiredServices
|
|
307
318
|
> = CorePikkuFunction<
|
|
308
319
|
In,
|
|
309
320
|
Out,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuGateway: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuGraphWirings: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuGraphWirings: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,12 +2,14 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
|
|
5
6
|
import { serializeGraphWirings } from './serialize-graph-wirings.js';
|
|
6
7
|
export const pikkuGraphWirings = pikkuSessionlessFunc({
|
|
7
8
|
func: async ({ logger, config }) => {
|
|
8
9
|
if (config.scaffold?.graph && config.graphWiringsFile) {
|
|
9
10
|
const pathToPikkuTypes = getFileImportRelativePath(config.graphWiringsFile, config.typesDeclarationFile, config.packageMappings);
|
|
10
11
|
await writeFileInDir(logger, config.graphWiringsFile, serializeGraphWirings(pathToPikkuTypes));
|
|
12
|
+
await removeLegacyScaffoldFile(config.graphWiringsFile);
|
|
11
13
|
return true;
|
|
12
14
|
}
|
|
13
15
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuHTTPMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCommandHTTP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuHTTPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuOpenAPI: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuHTTP: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuMCPJSON: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuMCPTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuMCP: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuMiddleware: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
2
|
-
export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
3
|
-
export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuSecretDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
2
|
+
export declare const pikkuScopeDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
3
|
+
export declare const pikkuVariableDefinitionTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuPackage: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuPermissions: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCommandQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuQueueService: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuQueueTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuCommandQueue: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuQueueMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuQueue: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuEventsScaffold: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,10 +2,13 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
|
|
5
6
|
import { serializeEventsScaffold } from './serialize-events-scaffold.js';
|
|
6
7
|
export const pikkuEventsScaffold = pikkuSessionlessFunc({
|
|
7
8
|
func: async ({ logger, config }) => {
|
|
8
|
-
if (!config.scaffold?.events ||
|
|
9
|
+
if (!config.scaffold?.events ||
|
|
10
|
+
!config.eventsChannelFile ||
|
|
11
|
+
!config.eventsSchemasFile) {
|
|
9
12
|
logger.debug({
|
|
10
13
|
message: 'Skipping events scaffold (set scaffold.events in pikku.config.json to enable).',
|
|
11
14
|
type: 'skip',
|
|
@@ -14,7 +17,10 @@ export const pikkuEventsScaffold = pikkuSessionlessFunc({
|
|
|
14
17
|
}
|
|
15
18
|
const authRequired = config.scaffold.events === 'auth';
|
|
16
19
|
const pikkuTypesImportPath = getFileImportRelativePath(config.eventsChannelFile, config.typesDeclarationFile, config.packageMappings);
|
|
17
|
-
|
|
20
|
+
const { schemas, functions } = serializeEventsScaffold(authRequired, pikkuTypesImportPath);
|
|
21
|
+
await writeFileInDir(logger, config.eventsSchemasFile, schemas);
|
|
22
|
+
await writeFileInDir(logger, config.eventsChannelFile, functions);
|
|
23
|
+
await removeLegacyScaffoldFile(config.eventsChannelFile);
|
|
18
24
|
return true;
|
|
19
25
|
},
|
|
20
26
|
middleware: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuRealtime: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
export interface EventsGenOutput {
|
|
2
|
+
schemas: string;
|
|
3
|
+
functions: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
6
|
* Generates the server-side `events.gen.ts` scaffold.
|
|
3
7
|
*
|
|
@@ -16,8 +20,5 @@
|
|
|
16
20
|
* Both routes call `eventHub.subscribe`/`unsubscribe` with the channel id;
|
|
17
21
|
* publish-side ergonomics (envelope shape) are documented in the
|
|
18
22
|
* pikku-realtime skill.
|
|
19
|
-
*
|
|
20
|
-
* Uses TypeScript generics (not named Zod schema constants) so schemas and
|
|
21
|
-
* wiring calls can safely coexist in a single generated file.
|
|
22
23
|
*/
|
|
23
|
-
export declare const serializeEventsScaffold: (authRequired: boolean, pikkuTypesImportPath: string) =>
|
|
24
|
+
export declare const serializeEventsScaffold: (authRequired: boolean, pikkuTypesImportPath: string) => EventsGenOutput;
|
|
@@ -16,19 +16,25 @@
|
|
|
16
16
|
* Both routes call `eventHub.subscribe`/`unsubscribe` with the channel id;
|
|
17
17
|
* publish-side ergonomics (envelope shape) are documented in the
|
|
18
18
|
* pikku-realtime skill.
|
|
19
|
-
*
|
|
20
|
-
* Uses TypeScript generics (not named Zod schema constants) so schemas and
|
|
21
|
-
* wiring calls can safely coexist in a single generated file.
|
|
22
19
|
*/
|
|
23
20
|
export const serializeEventsScaffold = (authRequired, pikkuTypesImportPath) => {
|
|
24
21
|
const auth = authRequired ? 'true' : 'false';
|
|
25
|
-
|
|
22
|
+
const schemas = `/**
|
|
23
|
+
* Auto-generated realtime event schemas
|
|
24
|
+
* Do not edit manually - regenerate with 'npx pikku'
|
|
25
|
+
*/
|
|
26
|
+
import { z } from 'zod'
|
|
27
|
+
|
|
28
|
+
export const TopicRef = z.object({ topic: z.string() })
|
|
29
|
+
`;
|
|
30
|
+
const functions = `import {
|
|
26
31
|
pikkuChannelFunc,
|
|
27
32
|
pikkuSessionlessFunc,
|
|
28
33
|
wireChannel,
|
|
29
34
|
wireHTTP,
|
|
30
35
|
defineChannelRoutes,
|
|
31
36
|
} from '${pikkuTypesImportPath}'
|
|
37
|
+
import { TopicRef } from './events.schemas.gen.js'
|
|
32
38
|
|
|
33
39
|
/**
|
|
34
40
|
* Topic envelope clients receive: \`{ topic, data }\`. Functions that publish
|
|
@@ -40,13 +46,15 @@ export const serializeEventsScaffold = (authRequired, pikkuTypesImportPath) => {
|
|
|
40
46
|
* the duplication; pick whichever style your project prefers.
|
|
41
47
|
*/
|
|
42
48
|
|
|
43
|
-
export const realtimeSubscribe = pikkuChannelFunc
|
|
49
|
+
export const realtimeSubscribe = pikkuChannelFunc({
|
|
50
|
+
input: TopicRef,
|
|
44
51
|
func: async ({ eventHub }, { topic }, { channel }) => {
|
|
45
52
|
await eventHub?.subscribe(topic, channel.channelId)
|
|
46
53
|
},
|
|
47
54
|
})
|
|
48
55
|
|
|
49
|
-
export const realtimeUnsubscribe = pikkuChannelFunc
|
|
56
|
+
export const realtimeUnsubscribe = pikkuChannelFunc({
|
|
57
|
+
input: TopicRef,
|
|
50
58
|
func: async ({ eventHub }, { topic }, { channel }) => {
|
|
51
59
|
await eventHub?.unsubscribe(topic, channel.channelId)
|
|
52
60
|
},
|
|
@@ -74,7 +82,8 @@ wireChannel({
|
|
|
74
82
|
* SSE per-topic stream. One connection = one subscription. The eventHub
|
|
75
83
|
* cleans up automatically when the channel closes (onChannelClosed).
|
|
76
84
|
*/
|
|
77
|
-
export const realtimeEventStream = pikkuSessionlessFunc
|
|
85
|
+
export const realtimeEventStream = pikkuSessionlessFunc({
|
|
86
|
+
input: TopicRef,
|
|
78
87
|
description: 'Auto-generated SSE stream for a single event-hub topic',
|
|
79
88
|
func: async ({ eventHub }, { topic }, { channel }) => {
|
|
80
89
|
if (!channel) {
|
|
@@ -95,4 +104,5 @@ wireHTTP({
|
|
|
95
104
|
tags: ['pikku:realtime', 'sse'],
|
|
96
105
|
})
|
|
97
106
|
`;
|
|
107
|
+
return { schemas, functions };
|
|
98
108
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuPublicRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,6 +2,7 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
|
|
5
6
|
import { serializePublicRPC } from './serialize-public-rpc.js';
|
|
6
7
|
export const pikkuPublicRPC = pikkuSessionlessFunc({
|
|
7
8
|
func: async ({ logger, config, variables }) => {
|
|
@@ -9,9 +10,12 @@ export const pikkuPublicRPC = pikkuSessionlessFunc({
|
|
|
9
10
|
if (deployCodegenFlag === '1') {
|
|
10
11
|
return false;
|
|
11
12
|
}
|
|
12
|
-
if (config.scaffold?.rpc) {
|
|
13
|
+
if (config.scaffold?.rpc && config.publicRpcSchemasFile) {
|
|
13
14
|
const pathToPikkuTypes = getFileImportRelativePath(config.publicRpcFile, config.typesDeclarationFile, config.packageMappings);
|
|
14
|
-
|
|
15
|
+
const { schemas, functions } = serializePublicRPC(pathToPikkuTypes, config.scaffold.rpc === 'auth', config.globalHTTPPrefix || '');
|
|
16
|
+
await writeFileInDir(logger, config.publicRpcSchemasFile, schemas);
|
|
17
|
+
await writeFileInDir(logger, config.publicRpcFile, functions);
|
|
18
|
+
await removeLegacyScaffoldFile(config.publicRpcFile);
|
|
15
19
|
return true;
|
|
16
20
|
}
|
|
17
21
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuReactQuery: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuRemoteRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,6 +2,7 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
|
|
5
6
|
import { serializeRemoteRPC } from './serialize-remote-rpc.js';
|
|
6
7
|
export const pikkuRemoteRPC = pikkuSessionlessFunc({
|
|
7
8
|
func: async ({ logger, config, variables }) => {
|
|
@@ -9,9 +10,12 @@ export const pikkuRemoteRPC = pikkuSessionlessFunc({
|
|
|
9
10
|
if (deployCodegenFlag === '1') {
|
|
10
11
|
return false;
|
|
11
12
|
}
|
|
12
|
-
if (config.remoteRpcWorkersFile) {
|
|
13
|
+
if (config.remoteRpcWorkersFile && config.remoteRpcSchemasFile) {
|
|
13
14
|
const pathToPikkuTypes = getFileImportRelativePath(config.remoteRpcWorkersFile, config.typesDeclarationFile, config.packageMappings);
|
|
14
|
-
|
|
15
|
+
const { schemas, functions } = serializeRemoteRPC(pathToPikkuTypes);
|
|
16
|
+
await writeFileInDir(logger, config.remoteRpcSchemasFile, schemas);
|
|
17
|
+
await writeFileInDir(logger, config.remoteRpcWorkersFile, functions);
|
|
18
|
+
await removeLegacyScaffoldFile(config.remoteRpcWorkersFile);
|
|
15
19
|
return true;
|
|
16
20
|
}
|
|
17
21
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuRPCClient: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
2
|
-
export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuRPCInternalMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
2
|
+
export declare const pikkuRPCExposedMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
3
3
|
/**
|
|
4
4
|
* The `remote: true` surface — what a `wireRemoteAddon` consumer imports.
|
|
5
5
|
* Mirrors the exposed map but is fed from `rpc.remoteMeta`.
|
|
6
6
|
*/
|
|
7
|
-
export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").
|
|
7
|
+
export declare const pikkuRPCRemoteMap: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export declare function filterInternalRPCMeta(internalMeta: Record<string, string>, functionsMeta: Record<string, unknown>): Record<string, string>;
|
|
2
|
-
export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
2
|
+
export declare const pikkuRPC: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
export interface PublicRPCGenOutput {
|
|
2
|
+
schemas: string;
|
|
3
|
+
functions: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
6
|
* Generate public RPC HTTP endpoint
|
|
3
7
|
*/
|
|
4
|
-
export declare const serializePublicRPC: (pathToPikkuTypes: string, requireAuth?: boolean, globalHTTPPrefix?: string) =>
|
|
8
|
+
export declare const serializePublicRPC: (pathToPikkuTypes: string, requireAuth?: boolean, globalHTTPPrefix?: string) => PublicRPCGenOutput;
|
|
@@ -3,18 +3,28 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const serializePublicRPC = (pathToPikkuTypes, requireAuth = true, globalHTTPPrefix = '') => {
|
|
5
5
|
const authFlag = requireAuth ? 'true' : 'false';
|
|
6
|
-
|
|
6
|
+
const schemas = `/**
|
|
7
|
+
* Auto-generated public RPC endpoint schemas
|
|
8
|
+
* Do not edit manually - regenerate with 'npx pikku'
|
|
9
|
+
*/
|
|
10
|
+
import { z } from 'zod'
|
|
11
|
+
|
|
12
|
+
export const RPCCall = z.object({
|
|
13
|
+
rpcName: z.string(),
|
|
14
|
+
data: z.unknown().optional(),
|
|
15
|
+
})
|
|
16
|
+
`;
|
|
17
|
+
const functions = `/**
|
|
7
18
|
* Auto-generated public RPC HTTP endpoint
|
|
8
19
|
* Do not edit manually - regenerate with 'npx pikku'
|
|
9
20
|
*/
|
|
10
21
|
import { pikkuSessionlessFunc, wireHTTP } from '${pathToPikkuTypes}'
|
|
22
|
+
import { RPCCall } from './rpc-public.schemas.gen.js'
|
|
11
23
|
|
|
12
|
-
export const rpcCaller = pikkuSessionlessFunc
|
|
13
|
-
{ rpcName: string; data?: unknown },
|
|
14
|
-
unknown
|
|
15
|
-
>({
|
|
24
|
+
export const rpcCaller = pikkuSessionlessFunc({
|
|
16
25
|
tags: ['pikku'],
|
|
17
26
|
auth: ${authFlag},
|
|
27
|
+
input: RPCCall,
|
|
18
28
|
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
19
29
|
return await rpc.exposed(rpcName, data)
|
|
20
30
|
},
|
|
@@ -28,4 +38,5 @@ wireHTTP({
|
|
|
28
38
|
func: rpcCaller,
|
|
29
39
|
})
|
|
30
40
|
`;
|
|
41
|
+
return { schemas, functions };
|
|
31
42
|
};
|
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
export interface RemoteRPCGenOutput {
|
|
2
|
+
schemas: string;
|
|
3
|
+
functions: string;
|
|
4
|
+
}
|
|
1
5
|
/**
|
|
2
6
|
* Generate remote internal RPC queue worker and HTTP endpoint
|
|
3
7
|
*/
|
|
4
|
-
export declare const serializeRemoteRPC: (pathToPikkuTypes: string) =>
|
|
8
|
+
export declare const serializeRemoteRPC: (pathToPikkuTypes: string) => RemoteRPCGenOutput;
|
|
@@ -2,18 +2,28 @@
|
|
|
2
2
|
* Generate remote internal RPC queue worker and HTTP endpoint
|
|
3
3
|
*/
|
|
4
4
|
export const serializeRemoteRPC = (pathToPikkuTypes) => {
|
|
5
|
-
|
|
5
|
+
const schemas = `/**
|
|
6
|
+
* Auto-generated remote internal RPC schemas
|
|
7
|
+
* Do not edit manually - regenerate with 'npx pikku'
|
|
8
|
+
*/
|
|
9
|
+
import { z } from 'zod'
|
|
10
|
+
|
|
11
|
+
export const RemoteRPCCall = z.object({
|
|
12
|
+
rpcName: z.string(),
|
|
13
|
+
data: z.unknown().optional(),
|
|
14
|
+
})
|
|
15
|
+
`;
|
|
16
|
+
const functions = `/**
|
|
6
17
|
* Auto-generated remote internal RPC queue worker and HTTP endpoint
|
|
7
18
|
* Do not edit manually - regenerate with 'npx pikku'
|
|
8
19
|
*/
|
|
9
20
|
import { pikkuSessionlessFunc, wireHTTP, wireQueueWorker } from '${pathToPikkuTypes}'
|
|
10
21
|
import { pikkuRemoteAuthMiddleware } from '@pikku/core/middleware'
|
|
22
|
+
import { RemoteRPCCall } from './rpc-remote.schemas.gen.js'
|
|
11
23
|
|
|
12
|
-
export const remoteRPCHandler = pikkuSessionlessFunc
|
|
13
|
-
{ rpcName: string, data?: unknown },
|
|
14
|
-
unknown
|
|
15
|
-
>({
|
|
24
|
+
export const remoteRPCHandler = pikkuSessionlessFunc({
|
|
16
25
|
tags: ['pikku'],
|
|
26
|
+
input: RemoteRPCCall,
|
|
17
27
|
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
18
28
|
return await (rpc.invoke as any)(rpcName, data)
|
|
19
29
|
},
|
|
@@ -35,4 +45,5 @@ wireHTTP({
|
|
|
35
45
|
func: remoteRPCHandler,
|
|
36
46
|
})
|
|
37
47
|
`;
|
|
48
|
+
return { schemas, functions };
|
|
38
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuScenarioFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").
|
|
1
|
+
export declare const pikkuScenarioFunctions: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
|
|
@@ -2,6 +2,7 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { removeLegacyScaffoldFile } from '../../../utils/remove-legacy-scaffold-file.js';
|
|
5
6
|
import { serializeScenarioFunctions } from './serialize-scenario-functions.js';
|
|
6
7
|
export const pikkuScenarioFunctions = pikkuSessionlessFunc({
|
|
7
8
|
func: async ({ logger, config, variables }) => {
|
|
@@ -9,9 +10,14 @@ export const pikkuScenarioFunctions = pikkuSessionlessFunc({
|
|
|
9
10
|
if (deployCodegenFlag === '1') {
|
|
10
11
|
return false;
|
|
11
12
|
}
|
|
12
|
-
if (config.scaffold?.scenarios &&
|
|
13
|
+
if (config.scaffold?.scenarios &&
|
|
14
|
+
config.scenariosFunctionsFile &&
|
|
15
|
+
config.scenariosSchemasFile) {
|
|
13
16
|
const pathToPikkuTypes = getFileImportRelativePath(config.scenariosFunctionsFile, config.typesDeclarationFile, config.packageMappings);
|
|
14
|
-
|
|
17
|
+
const { schemas, functions } = serializeScenarioFunctions(pathToPikkuTypes, config.scaffold.scenarios === 'auth');
|
|
18
|
+
await writeFileInDir(logger, config.scenariosSchemasFile, schemas);
|
|
19
|
+
await writeFileInDir(logger, config.scenariosFunctionsFile, functions);
|
|
20
|
+
await removeLegacyScaffoldFile(config.scenariosFunctionsFile);
|
|
15
21
|
return true;
|
|
16
22
|
}
|
|
17
23
|
return false;
|