@pikku/cli 0.11.0 → 0.11.2
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/.pikku/channel/pikku-channel-types.gen.ts +11 -12
- package/.pikku/channel/pikku-channels-map.gen.d.ts +9 -9
- package/.pikku/channel/pikku-channels-meta.gen.ts +1 -1
- package/.pikku/channel/pikku-channels.gen.ts +1 -1
- package/.pikku/cli/pikku-cli-channel.ts +92 -0
- package/.pikku/cli/pikku-cli-client.gen.ts +54 -0
- package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
- package/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
- package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -34
- package/.pikku/cli/pikku-cli-wirings.gen.ts +2 -1
- package/.pikku/cli/pikku-cli.gen.ts +41 -0
- package/.pikku/function/pikku-function-types.gen.ts +49 -63
- package/.pikku/function/pikku-functions-meta.gen.json +988 -0
- package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
- package/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
- package/.pikku/function/pikku-functions-meta.min.gen.ts +4 -209
- package/.pikku/http/pikku-http-types.gen.ts +2 -2
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +9 -9
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +1 -1
- package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
- package/.pikku/mcp/pikku-mcp-types.gen.ts +13 -13
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
- package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
- package/.pikku/pikku-bootstrap.gen.ts +1 -4
- package/.pikku/pikku-services.gen.ts +6 -8
- package/.pikku/pikku-types.gen.ts +1 -1
- package/.pikku/pikku-websocket.gen.ts +1 -1
- package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
- package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +9 -9
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
- package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
- package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +2 -2
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +9 -9
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +41 -40
- package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
- package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
- package/.pikku/schemas/register.gen.ts +27 -27
- package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
- package/.pikku/services/config.gen.json +99 -0
- package/.pikku/services/getInspectorState.gen.json +10 -0
- package/.pikku/services/jwt.gen.json +13 -0
- package/.pikku/services/logger.gen.json +25 -0
- package/.pikku/services/queueService.gen.json +14 -0
- package/.pikku/services/schedulerService.gen.json +17 -0
- package/.pikku/services/schema.gen.json +14 -0
- package/.pikku/services/variables.gen.json +13 -0
- package/.pikku/services/workflowService.gen.json +31 -0
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +9 -9
- package/.pikku/workflow/pikku-workflow-types.gen.ts +36 -31
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +5 -2
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +6 -2
- package/CHANGELOG.md +27 -1
- package/bin/pikku.ts +6 -32
- package/build.sh +53 -31
- package/cli.schema.json +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +6 -7
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
- 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 +91 -0
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +10 -0
- package/dist/.pikku/cli/pikku-cli-client.gen.js +44 -0
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -34
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +146 -0
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +10 -0
- package/dist/.pikku/cli/pikku-cli.gen.js +38 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +29 -79
- package/dist/.pikku/function/pikku-function-types.gen.js +19 -15
- package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
- package/dist/.pikku/function/pikku-functions-meta.gen.json +988 -0
- package/dist/.pikku/function/pikku-functions-meta.min.gen.js +3 -208
- package/dist/.pikku/function/pikku-functions-meta.min.gen.json +212 -0
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -2
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +1 -1
- 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 +13 -13
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -4
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -4
- package/dist/.pikku/pikku-services.gen.d.ts +5 -8
- package/dist/.pikku/pikku-services.gen.js +3 -6
- package/dist/.pikku/pikku-types.gen.d.ts +1 -1
- package/dist/.pikku/pikku-types.gen.js +1 -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 +2 -2
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- 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 -9
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- 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 +17 -17
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +29 -25
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +22 -8
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +6 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +6 -3
- package/dist/bin/pikku.js +5 -28
- package/dist/src/cli.wiring.js +108 -106
- package/dist/src/functions/commands/all.js +82 -42
- package/dist/src/functions/commands/bootstrap.js +22 -10
- package/dist/src/functions/commands/watch.js +6 -3
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -7
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +42 -4
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +40 -2
- package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +10 -11
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.js +9 -3
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
- package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +15 -5
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +23 -23
- package/dist/src/functions/wirings/functions/schemas.js +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +50 -64
- package/dist/src/functions/wirings/http/openapi-spec-generator.js +4 -4
- package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
- package/dist/src/functions/wirings/http/serialize-http-types.js +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +18 -4
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +12 -12
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +26 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
- package/dist/src/functions/wirings/queue/pikku-command-queue.js +9 -3
- package/dist/src/functions/wirings/queue/pikku-queue.js +9 -3
- package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
- package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
- package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +1 -1
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +6 -3
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +3 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +12 -8
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +2 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +11 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +36 -31
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +8 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +30 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +2 -2
- package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
- package/dist/src/middleware/log-command-info-and-time.js +1 -4
- package/dist/src/services/cli-logger-forwarder.service.d.ts +3 -0
- package/dist/src/services/cli-logger-forwarder.service.js +9 -2
- package/dist/src/services.d.ts +2 -7
- package/dist/src/services.js +14 -12
- package/dist/src/utils/check-required-types.d.ts +2 -2
- package/dist/src/utils/check-required-types.js +2 -3
- package/dist/src/utils/pikku-cli-config.js +35 -2
- package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
- package/dist/src/utils/pikku-files-and-methods.js +4 -4
- package/dist/src/utils/schema-generator.d.ts +1 -1
- package/dist/src/utils/schema-generator.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -8
- package/src/cli.wiring.ts +110 -105
- package/src/functions/commands/all.ts +94 -45
- package/src/functions/commands/bootstrap.ts +25 -10
- package/src/functions/commands/watch.ts +6 -3
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -5
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +43 -4
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +40 -1
- package/src/functions/wirings/channels/pikku-channels.ts +27 -3
- package/src/functions/wirings/channels/serialize-channel-types.ts +10 -11
- package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
- package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
- package/src/functions/wirings/cli/pikku-command-cli.ts +26 -3
- package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
- package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
- package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
- package/src/functions/wirings/functions/pikku-command-function-types-split.ts +6 -6
- package/src/functions/wirings/functions/pikku-command-functions.ts +39 -4
- package/src/functions/wirings/functions/pikku-command-services.ts +25 -25
- package/src/functions/wirings/functions/schemas.ts +2 -2
- package/src/functions/wirings/functions/serialize-function-types.ts +51 -65
- package/src/functions/wirings/http/openapi-spec-generator.ts +14 -5
- package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
- package/src/functions/wirings/http/serialize-http-types.ts +1 -1
- package/src/functions/wirings/mcp/pikku-command-mcp.ts +30 -4
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +12 -12
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +35 -2
- package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
- package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
- package/src/functions/wirings/queue/pikku-command-queue.ts +27 -2
- package/src/functions/wirings/queue/pikku-queue.ts +27 -2
- package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
- package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
- package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
- package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
- package/src/functions/wirings/rpc/serialize-remote-rpc.ts +1 -1
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +30 -4
- package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
- package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
- package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
- package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +8 -1
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +36 -8
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +18 -1
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +39 -31
- package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +47 -0
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +2 -2
- package/src/middleware/log-command-info-and-time.ts +3 -6
- package/src/services/cli-logger-forwarder.service.ts +11 -2
- package/src/services.ts +15 -15
- package/src/utils/check-required-types.ts +4 -7
- package/src/utils/pikku-cli-config.ts +69 -2
- package/src/utils/pikku-files-and-methods.ts +10 -13
- package/src/utils/schema-generator.ts +2 -2
- package/types/application-types.d.ts +1 -1
- package/types/config.d.ts +12 -1
- package/.pikku/function/pikku-functions.gen.ts +0 -84
- package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
- package/dist/.pikku/function/pikku-functions.gen.js +0 -83
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
- package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
- /package/dist/.pikku/{function/pikku-functions.gen.d.ts → cli/pikku-cli-channel.d.ts} +0 -0
|
@@ -1,19 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.11.
|
|
2
|
+
* This file was generated by @pikku/cli@0.11.2
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Core function, middleware, and permission types for all wirings
|
|
6
6
|
*/
|
|
7
|
-
import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup } from '@pikku/core';
|
|
7
|
+
import { CorePikkuFunctionConfig, CorePikkuPermission, CorePikkuMiddleware, CorePermissionGroup, PikkuWire, PickRequired } from '@pikku/core';
|
|
8
8
|
import { CorePikkuFunction, CorePikkuFunctionSessionless } from '@pikku/core/function';
|
|
9
|
-
import { PikkuChannel } from '@pikku/core/channel';
|
|
10
|
-
import { PikkuMCP } from '@pikku/core/mcp';
|
|
11
9
|
import type { UserSession } from '../../types/application-types.d.js';
|
|
12
10
|
import type { SingletonServices } from '../../types/application-types.d.js';
|
|
13
11
|
import type { Services } from '../../types/application-types.d.js';
|
|
14
12
|
import type { Config } from '../../types/application-types.d.js';
|
|
15
13
|
import type { TypedPikkuRPC } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
|
|
16
|
-
import type { RequiredSingletonServices,
|
|
14
|
+
import type { RequiredSingletonServices, RequiredWireServices } from '../pikku-services.gen.js';
|
|
17
15
|
type Session = UserSession;
|
|
18
16
|
/**
|
|
19
17
|
* Type-safe API permission definition that integrates with your application's session type.
|
|
@@ -22,14 +20,14 @@ type Session = UserSession;
|
|
|
22
20
|
* @template In - The input type that the permission check will receive
|
|
23
21
|
* @template RequiredServices - The services required for this permission check
|
|
24
22
|
*/
|
|
25
|
-
export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, Session
|
|
23
|
+
export type PikkuPermission<In = unknown, RequiredServices extends Services = Services> = CorePikkuPermission<In, RequiredServices, PikkuWire<In, never, false, Session>>;
|
|
26
24
|
/**
|
|
27
25
|
* Type-safe middleware definition that can access your application's services and session.
|
|
28
26
|
* Use this to define reusable middleware that can be applied to multiple wirings.
|
|
29
27
|
*
|
|
30
28
|
* @template RequiredServices - The services required for this middleware
|
|
31
29
|
*/
|
|
32
|
-
export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices
|
|
30
|
+
export type PikkuMiddleware<RequiredServices extends SingletonServices = SingletonServices> = CorePikkuMiddleware<RequiredServices>;
|
|
33
31
|
/**
|
|
34
32
|
* Configuration object for creating a permission with metadata
|
|
35
33
|
*/
|
|
@@ -48,7 +46,8 @@ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Service
|
|
|
48
46
|
* @example
|
|
49
47
|
* ```typescript
|
|
50
48
|
* // Direct function syntax
|
|
51
|
-
* const permission = pikkuPermission(({ logger }, data, session) => {
|
|
49
|
+
* const permission = pikkuPermission(async ({ logger }, data, { session }) => {
|
|
50
|
+
* const session = await session?.get()
|
|
52
51
|
* return session?.role === 'admin'
|
|
53
52
|
* })
|
|
54
53
|
*
|
|
@@ -56,7 +55,8 @@ export type PikkuPermissionConfig<In = unknown, RequiredServices extends Service
|
|
|
56
55
|
* const adminPermission = pikkuPermission({
|
|
57
56
|
* name: 'Admin Permission',
|
|
58
57
|
* description: 'Checks if user has admin role',
|
|
59
|
-
* func: async ({ logger }, data, session) => {
|
|
58
|
+
* func: async ({ logger }, data, { session }) => {
|
|
59
|
+
* const session = await session?.get()
|
|
60
60
|
* return session?.role === 'admin'
|
|
61
61
|
* }
|
|
62
62
|
* })
|
|
@@ -81,7 +81,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
|
|
|
81
81
|
* @example
|
|
82
82
|
* ```typescript
|
|
83
83
|
* // Direct function syntax
|
|
84
|
-
* const middleware = pikkuMiddleware(({ logger },
|
|
84
|
+
* const middleware = pikkuMiddleware(({ logger }, wires, next) => {
|
|
85
85
|
* logger.info('Middleware executed')
|
|
86
86
|
* await next()
|
|
87
87
|
* })
|
|
@@ -90,7 +90,7 @@ export type PikkuMiddlewareConfig<RequiredServices extends SingletonServices = S
|
|
|
90
90
|
* const logMiddleware = pikkuMiddleware({
|
|
91
91
|
* name: 'Request Logger',
|
|
92
92
|
* description: 'Logs all incoming requests',
|
|
93
|
-
* func: async ({ logger },
|
|
93
|
+
* func: async ({ logger }, wires, next) => {
|
|
94
94
|
* logger.info('Request started')
|
|
95
95
|
* await next()
|
|
96
96
|
* }
|
|
@@ -108,7 +108,7 @@ export declare const pikkuMiddleware: <RequiredServices extends SingletonService
|
|
|
108
108
|
* message,
|
|
109
109
|
* level = 'info'
|
|
110
110
|
* }) => {
|
|
111
|
-
* return pikkuMiddleware(async ({ logger },
|
|
111
|
+
* return pikkuMiddleware(async ({ logger }, next) => {
|
|
112
112
|
* logger[level](message)
|
|
113
113
|
* await next()
|
|
114
114
|
* })
|
|
@@ -125,8 +125,8 @@ export declare const pikkuMiddlewareFactory: <In = any>(factory: (input: In) =>
|
|
|
125
125
|
* export const requireRole = pikkuPermissionFactory<{ role: string }>(({
|
|
126
126
|
* role
|
|
127
127
|
* }) => {
|
|
128
|
-
* return pikkuPermission(async ({ logger }, data,
|
|
129
|
-
* if (!
|
|
128
|
+
* return pikkuPermission(async ({ logger }, data, { initialSession }) => {
|
|
129
|
+
* if (!initialSession || initialSession.role !== role) {
|
|
130
130
|
* logger.warn(`Permission denied: required role '${role}'`)
|
|
131
131
|
* return false
|
|
132
132
|
* }
|
|
@@ -142,61 +142,27 @@ export declare const pikkuPermissionFactory: <In = any>(factory: (input: In) =>
|
|
|
142
142
|
*
|
|
143
143
|
* @template In - The input type
|
|
144
144
|
* @template Out - The output type that the function returns
|
|
145
|
-
* @template ChannelData - Channel data type (null = optional channel)
|
|
146
|
-
* @template MCPData - MCP data type (null = optional MCP)
|
|
147
145
|
* @template RequiredServices - Services required by this function
|
|
148
146
|
*/
|
|
149
|
-
export type PikkuFunctionSessionless<In = unknown, Out = never,
|
|
150
|
-
MCPData = null, // null means optional MCP
|
|
151
|
-
RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> & {
|
|
152
|
-
rpc: TypedPikkuRPC;
|
|
153
|
-
} & ([
|
|
154
|
-
ChannelData
|
|
155
|
-
] extends [null] ? {
|
|
156
|
-
channel?: PikkuChannel<unknown, Out>;
|
|
157
|
-
} : {
|
|
158
|
-
channel: PikkuChannel<ChannelData, Out>;
|
|
159
|
-
}) & ([MCPData] extends [null] ? {
|
|
160
|
-
mcp?: PikkuMCP;
|
|
161
|
-
} : {
|
|
162
|
-
mcp: PikkuMCP;
|
|
163
|
-
})> = CorePikkuFunctionSessionless<In, Out, ChannelData, RequiredServices, Session>;
|
|
147
|
+
export type PikkuFunctionSessionless<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = never, RequiredServices extends Services = Services> = CorePikkuFunctionSessionless<In, Out, RequiredServices, PickRequired<PikkuWire<In, Out, false, Session, TypedPikkuRPC, null, any>, RequiredWires>>;
|
|
164
148
|
/**
|
|
165
149
|
* A session-aware API function that requires user authentication.
|
|
166
150
|
* Use this for protected endpoints that need access to user session data.
|
|
167
151
|
*
|
|
168
152
|
* @template In - The input type
|
|
169
153
|
* @template Out - The output type that the function returns
|
|
170
|
-
* @template ChannelData - Channel data type (null = optional channel)
|
|
171
|
-
* @template MCPData - MCP data type (null = optional MCP)
|
|
172
154
|
* @template RequiredServices - Services required by this function
|
|
173
155
|
*/
|
|
174
|
-
export type PikkuFunction<In = unknown, Out = never,
|
|
175
|
-
MCPData = null, // null means optional MCP
|
|
176
|
-
RequiredServices extends Services = Omit<Services, 'rpc' | 'channel' | 'mcp'> & {
|
|
177
|
-
rpc: TypedPikkuRPC;
|
|
178
|
-
} & ([
|
|
179
|
-
ChannelData
|
|
180
|
-
] extends [null] ? {
|
|
181
|
-
channel?: PikkuChannel<unknown, Out>;
|
|
182
|
-
} : {
|
|
183
|
-
channel: PikkuChannel<ChannelData, Out>;
|
|
184
|
-
}) & ([MCPData] extends [null] ? {
|
|
185
|
-
mcp?: PikkuMCP;
|
|
186
|
-
} : {
|
|
187
|
-
mcp: PikkuMCP;
|
|
188
|
-
})> = CorePikkuFunction<In, Out, ChannelData, RequiredServices, Session>;
|
|
156
|
+
export type PikkuFunction<In = unknown, Out = never, RequiredWires extends keyof PikkuWire = 'session', RequiredServices extends Services = Services> = CorePikkuFunction<In, Out, RequiredServices, PickRequired<PikkuWire<In, Out, true, Session, TypedPikkuRPC, null, any>, RequiredWires>>;
|
|
189
157
|
/**
|
|
190
158
|
* Configuration object for Pikku functions with optional middleware, permissions, tags, and documentation.
|
|
191
159
|
* This type wraps CorePikkuFunctionConfig with the user's custom types.
|
|
192
160
|
*
|
|
193
161
|
* @template In - The input type
|
|
194
162
|
* @template Out - The output type
|
|
195
|
-
* @template ChannelData - Channel data type
|
|
196
|
-
* @template MCPData - MCP data type
|
|
197
163
|
* @template PikkuFunc - The function type (can be narrowed to PikkuFunction or PikkuFunctionSessionless)
|
|
198
164
|
*/
|
|
199
|
-
export type PikkuFunctionConfig<In = unknown, Out = unknown,
|
|
165
|
+
export type PikkuFunctionConfig<In = unknown, Out = unknown, RequiredWires extends keyof PikkuWire = never, PikkuFunc extends PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires> = PikkuFunction<In, Out, RequiredWires> | PikkuFunctionSessionless<In, Out, RequiredWires>> = CorePikkuFunctionConfig<PikkuFunc, PikkuPermission<In>, PikkuMiddleware>;
|
|
200
166
|
/**
|
|
201
167
|
* Creates a Pikku function that can be either session-aware or sessionless.
|
|
202
168
|
* This is the main function wrapper for creating API endpoints.
|
|
@@ -209,7 +175,8 @@ export type PikkuFunctionConfig<In = unknown, Out = unknown, ChannelData = unkno
|
|
|
209
175
|
* @example
|
|
210
176
|
* \`\`\`typescript
|
|
211
177
|
* const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
|
|
212
|
-
* func: async ({db, logger}, input) => {
|
|
178
|
+
* func: async ({db, logger}, input, wire) => {
|
|
179
|
+
* const session = await wire.session.get()
|
|
213
180
|
* logger.info('Creating user', input.name)
|
|
214
181
|
* const user = await db.users.create(input)
|
|
215
182
|
* return {id: user.id, message: \`User \${input.name} created successfully\`}
|
|
@@ -218,13 +185,7 @@ export type PikkuFunctionConfig<In = unknown, Out = unknown, ChannelData = unkno
|
|
|
218
185
|
* })
|
|
219
186
|
* \`\`\`
|
|
220
187
|
*/
|
|
221
|
-
export declare const pikkuFunc: <In, Out = unknown>(func: PikkuFunction<In, Out> |
|
|
222
|
-
rpc: TypedPikkuRPC;
|
|
223
|
-
} & {
|
|
224
|
-
channel?: PikkuChannel<unknown, Out> | undefined;
|
|
225
|
-
} & {
|
|
226
|
-
mcp?: PikkuMCP;
|
|
227
|
-
}>, PikkuPermission<In, Services>, PikkuMiddleware<SingletonServices>>;
|
|
188
|
+
export declare const pikkuFunc: <In, Out = unknown>(func: PikkuFunction<In, Out, "session" | "rpc"> | PikkuFunctionConfig<In, Out, "session" | "rpc">) => PikkuFunctionConfig<In, Out, "rpc" | "session", PikkuFunction<In, Out, "rpc" | "session", Services> | PikkuFunctionSessionless<In, Out, "rpc" | "session", Services>>;
|
|
228
189
|
/**
|
|
229
190
|
* Creates a sessionless Pikku function that doesn't require user authentication.
|
|
230
191
|
* Use this for public endpoints, webhooks, or background tasks.
|
|
@@ -237,7 +198,7 @@ export declare const pikkuFunc: <In, Out = unknown>(func: PikkuFunction<In, Out>
|
|
|
237
198
|
* @example
|
|
238
199
|
* \`\`\`typescript
|
|
239
200
|
* const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
|
|
240
|
-
* func: async ({logger}) => {
|
|
201
|
+
* func: async ({logger}, input) => {
|
|
241
202
|
* logger.info('Health check requested')
|
|
242
203
|
* return {status: 'healthy', timestamp: new Date().toISOString()}
|
|
243
204
|
* },
|
|
@@ -245,13 +206,7 @@ export declare const pikkuFunc: <In, Out = unknown>(func: PikkuFunction<In, Out>
|
|
|
245
206
|
* })
|
|
246
207
|
* \`\`\`
|
|
247
208
|
*/
|
|
248
|
-
export declare const pikkuSessionlessFunc: <In, Out = unknown>(func: PikkuFunctionSessionless<In, Out> |
|
|
249
|
-
rpc: TypedPikkuRPC;
|
|
250
|
-
} & {
|
|
251
|
-
channel?: PikkuChannel<unknown, Out> | undefined;
|
|
252
|
-
} & {
|
|
253
|
-
mcp?: PikkuMCP;
|
|
254
|
-
}>, PikkuPermission<In, Services>, PikkuMiddleware<SingletonServices>>;
|
|
209
|
+
export declare const pikkuSessionlessFunc: <In, Out = unknown>(func: PikkuFunctionSessionless<In, Out, "session" | "rpc"> | PikkuFunctionConfig<In, Out, "session" | "rpc">) => PikkuFunctionConfig<In, Out, "rpc" | "session", PikkuFunctionSessionless<In, Out, "rpc" | "session", Services> | PikkuFunction<In, Out, "rpc" | "session", Services>>;
|
|
255
210
|
/**
|
|
256
211
|
* Creates a function that takes no input and returns no output.
|
|
257
212
|
* Useful for health checks, triggers, or cleanup operations.
|
|
@@ -268,13 +223,7 @@ export declare const pikkuSessionlessFunc: <In, Out = unknown>(func: PikkuFuncti
|
|
|
268
223
|
* })
|
|
269
224
|
* \`\`\`
|
|
270
225
|
*/
|
|
271
|
-
export declare const pikkuVoidFunc: (func: PikkuFunctionSessionless<void, void> |
|
|
272
|
-
rpc: TypedPikkuRPC;
|
|
273
|
-
} & {
|
|
274
|
-
channel?: PikkuChannel<unknown, void> | undefined;
|
|
275
|
-
} & {
|
|
276
|
-
mcp?: PikkuMCP;
|
|
277
|
-
}>, PikkuPermission<void, Services>>;
|
|
226
|
+
export declare const pikkuVoidFunc: (func: PikkuFunctionSessionless<void, void, "session" | "rpc"> | PikkuFunctionConfig<void, void, "session" | "rpc">) => PikkuFunctionConfig<void, void, "rpc" | "session", PikkuFunctionSessionless<void, void, "rpc" | "session", Services> | PikkuFunction<void, void, "rpc" | "session", Services>>;
|
|
278
227
|
/**
|
|
279
228
|
* Creates a Pikku config factory.
|
|
280
229
|
* Use this to define your application's configuration factory.
|
|
@@ -313,22 +262,23 @@ export declare const pikkuConfig: (func: (variables?: any, ...args: any[]) => Pr
|
|
|
313
262
|
*/
|
|
314
263
|
export declare const pikkuServices: (func: (config: Config, existingServices?: Partial<SingletonServices>) => Promise<RequiredSingletonServices>) => (config: Config, existingServices?: Partial<SingletonServices>) => Promise<RequiredSingletonServices>;
|
|
315
264
|
/**
|
|
316
|
-
* Creates a Pikku
|
|
265
|
+
* Creates a Pikku wire services factory.
|
|
317
266
|
* Use this to define services that are created per-request/session.
|
|
318
267
|
*
|
|
319
|
-
* @param func -
|
|
320
|
-
* @returns The
|
|
268
|
+
* @param func - Wire services factory function
|
|
269
|
+
* @returns The wire services factory function
|
|
321
270
|
*
|
|
322
271
|
* @example
|
|
323
272
|
* ```typescript
|
|
324
|
-
* export const
|
|
273
|
+
* export const createWireServices = pikkuWireServices(async (services, wire) => {
|
|
274
|
+
* const session = await wire.session?.get()
|
|
325
275
|
* return {
|
|
326
276
|
* userCache: new UserCache(session?.userId)
|
|
327
277
|
* }
|
|
328
278
|
* })
|
|
329
279
|
* ```
|
|
330
280
|
*/
|
|
331
|
-
export declare const
|
|
281
|
+
export declare const pikkuWireServices: (func: (services: SingletonServices, wire: any) => Promise<RequiredWireServices>) => (services: SingletonServices, wire: any) => Promise<RequiredWireServices>;
|
|
332
282
|
/**
|
|
333
283
|
* Adds global middleware for a specific tag.
|
|
334
284
|
*
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.11.
|
|
2
|
+
* This file was generated by @pikku/cli@0.11.2
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Core function, middleware, and permission types for all wirings
|
|
@@ -12,7 +12,8 @@ import { addMiddleware as addMiddlewareCore, addPermission as addPermissionCore
|
|
|
12
12
|
* @example
|
|
13
13
|
* ```typescript
|
|
14
14
|
* // Direct function syntax
|
|
15
|
-
* const permission = pikkuPermission(({ logger }, data, session) => {
|
|
15
|
+
* const permission = pikkuPermission(async ({ logger }, data, { session }) => {
|
|
16
|
+
* const session = await session?.get()
|
|
16
17
|
* return session?.role === 'admin'
|
|
17
18
|
* })
|
|
18
19
|
*
|
|
@@ -20,7 +21,8 @@ import { addMiddleware as addMiddlewareCore, addPermission as addPermissionCore
|
|
|
20
21
|
* const adminPermission = pikkuPermission({
|
|
21
22
|
* name: 'Admin Permission',
|
|
22
23
|
* description: 'Checks if user has admin role',
|
|
23
|
-
* func: async ({ logger }, data, session) => {
|
|
24
|
+
* func: async ({ logger }, data, { session }) => {
|
|
25
|
+
* const session = await session?.get()
|
|
24
26
|
* return session?.role === 'admin'
|
|
25
27
|
* }
|
|
26
28
|
* })
|
|
@@ -36,7 +38,7 @@ export const pikkuPermission = (permission) => {
|
|
|
36
38
|
* @example
|
|
37
39
|
* ```typescript
|
|
38
40
|
* // Direct function syntax
|
|
39
|
-
* const middleware = pikkuMiddleware(({ logger },
|
|
41
|
+
* const middleware = pikkuMiddleware(({ logger }, wires, next) => {
|
|
40
42
|
* logger.info('Middleware executed')
|
|
41
43
|
* await next()
|
|
42
44
|
* })
|
|
@@ -45,7 +47,7 @@ export const pikkuPermission = (permission) => {
|
|
|
45
47
|
* const logMiddleware = pikkuMiddleware({
|
|
46
48
|
* name: 'Request Logger',
|
|
47
49
|
* description: 'Logs all incoming requests',
|
|
48
|
-
* func: async ({ logger },
|
|
50
|
+
* func: async ({ logger }, wires, next) => {
|
|
49
51
|
* logger.info('Request started')
|
|
50
52
|
* await next()
|
|
51
53
|
* }
|
|
@@ -65,7 +67,7 @@ export const pikkuMiddleware = (middleware) => {
|
|
|
65
67
|
* message,
|
|
66
68
|
* level = 'info'
|
|
67
69
|
* }) => {
|
|
68
|
-
* return pikkuMiddleware(async ({ logger },
|
|
70
|
+
* return pikkuMiddleware(async ({ logger }, next) => {
|
|
69
71
|
* logger[level](message)
|
|
70
72
|
* await next()
|
|
71
73
|
* })
|
|
@@ -84,8 +86,8 @@ export const pikkuMiddlewareFactory = (factory) => {
|
|
|
84
86
|
* export const requireRole = pikkuPermissionFactory<{ role: string }>(({
|
|
85
87
|
* role
|
|
86
88
|
* }) => {
|
|
87
|
-
* return pikkuPermission(async ({ logger }, data,
|
|
88
|
-
* if (!
|
|
89
|
+
* return pikkuPermission(async ({ logger }, data, { initialSession }) => {
|
|
90
|
+
* if (!initialSession || initialSession.role !== role) {
|
|
89
91
|
* logger.warn(`Permission denied: required role '${role}'`)
|
|
90
92
|
* return false
|
|
91
93
|
* }
|
|
@@ -109,7 +111,8 @@ export const pikkuPermissionFactory = (factory) => {
|
|
|
109
111
|
* @example
|
|
110
112
|
* \`\`\`typescript
|
|
111
113
|
* const createUser = pikkuFunc<{name: string, email: string}, {id: number, message: string}>({
|
|
112
|
-
* func: async ({db, logger}, input) => {
|
|
114
|
+
* func: async ({db, logger}, input, wire) => {
|
|
115
|
+
* const session = await wire.session.get()
|
|
113
116
|
* logger.info('Creating user', input.name)
|
|
114
117
|
* const user = await db.users.create(input)
|
|
115
118
|
* return {id: user.id, message: \`User \${input.name} created successfully\`}
|
|
@@ -133,7 +136,7 @@ export const pikkuFunc = (func) => {
|
|
|
133
136
|
* @example
|
|
134
137
|
* \`\`\`typescript
|
|
135
138
|
* const healthCheck = pikkuSessionlessFunc<void, {status: string, timestamp: string}>({
|
|
136
|
-
* func: async ({logger}) => {
|
|
139
|
+
* func: async ({logger}, input) => {
|
|
137
140
|
* logger.info('Health check requested')
|
|
138
141
|
* return {status: 'healthy', timestamp: new Date().toISOString()}
|
|
139
142
|
* },
|
|
@@ -201,22 +204,23 @@ export const pikkuConfig = (func) => func;
|
|
|
201
204
|
*/
|
|
202
205
|
export const pikkuServices = (func) => func;
|
|
203
206
|
/**
|
|
204
|
-
* Creates a Pikku
|
|
207
|
+
* Creates a Pikku wire services factory.
|
|
205
208
|
* Use this to define services that are created per-request/session.
|
|
206
209
|
*
|
|
207
|
-
* @param func -
|
|
208
|
-
* @returns The
|
|
210
|
+
* @param func - Wire services factory function
|
|
211
|
+
* @returns The wire services factory function
|
|
209
212
|
*
|
|
210
213
|
* @example
|
|
211
214
|
* ```typescript
|
|
212
|
-
* export const
|
|
215
|
+
* export const createWireServices = pikkuWireServices(async (services, wire) => {
|
|
216
|
+
* const session = await wire.session?.get()
|
|
213
217
|
* return {
|
|
214
218
|
* userCache: new UserCache(session?.userId)
|
|
215
219
|
* }
|
|
216
220
|
* })
|
|
217
221
|
* ```
|
|
218
222
|
*/
|
|
219
|
-
export const
|
|
223
|
+
export const pikkuWireServices = (func) => func;
|
|
220
224
|
/**
|
|
221
225
|
* Adds global middleware for a specific tag.
|
|
222
226
|
*
|