@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
|
@@ -8,9 +8,8 @@ export const serializeChannelTypes = (functionTypesImportPath: string) => {
|
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
10
|
import { CoreChannel, wireChannel as wireChannelCore } from '@pikku/core/channel'
|
|
11
|
-
import { CorePikkuFunctionConfig } from '@pikku/core'
|
|
12
11
|
import { AssertHTTPWiringParams } from '@pikku/core/http'
|
|
13
|
-
import type {
|
|
12
|
+
import type { PikkuFunctionConfig, PikkuFunctionSessionless, PikkuPermission, PikkuMiddleware } from '${functionTypesImportPath}'
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Type definition for WebSocket channels with typed data exchange.
|
|
@@ -23,9 +22,9 @@ import type { PikkuFunction, PikkuFunctionSessionless, PikkuPermission, PikkuMid
|
|
|
23
22
|
type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
|
|
24
23
|
ChannelData,
|
|
25
24
|
Channel,
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
PikkuFunctionConfig<void, any, 'channel' | 'session' | 'rpc'>,
|
|
26
|
+
PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>,
|
|
27
|
+
PikkuFunctionConfig<any, any, 'channel' | 'session' | 'rpc'>,
|
|
29
28
|
PikkuPermission,
|
|
30
29
|
PikkuMiddleware
|
|
31
30
|
>
|
|
@@ -40,8 +39,8 @@ type ChannelWiring<ChannelData, Channel extends string> = CoreChannel<
|
|
|
40
39
|
*/
|
|
41
40
|
export const pikkuChannelConnectionFunc = <Out = unknown>(
|
|
42
41
|
func:
|
|
43
|
-
| PikkuFunctionSessionless<void, Out,
|
|
44
|
-
|
|
|
42
|
+
| PikkuFunctionSessionless<void, Out, 'channel' | 'session' | 'rpc'>
|
|
43
|
+
| PikkuFunctionConfig<void, Out, 'channel' | 'session' | 'rpc'>
|
|
45
44
|
) => {
|
|
46
45
|
return typeof func === 'function' ? { func } : func
|
|
47
46
|
}
|
|
@@ -55,8 +54,8 @@ export const pikkuChannelConnectionFunc = <Out = unknown>(
|
|
|
55
54
|
*/
|
|
56
55
|
export const pikkuChannelDisconnectionFunc = (
|
|
57
56
|
func:
|
|
58
|
-
| PikkuFunctionSessionless<void, void,
|
|
59
|
-
|
|
|
57
|
+
| PikkuFunctionSessionless<void, void, 'channel'>
|
|
58
|
+
| PikkuFunctionConfig<void, void, 'channel' | 'session' | 'rpc'>
|
|
60
59
|
) => {
|
|
61
60
|
return typeof func === 'function' ? { func } : func
|
|
62
61
|
}
|
|
@@ -73,8 +72,8 @@ export const pikkuChannelDisconnectionFunc = (
|
|
|
73
72
|
*/
|
|
74
73
|
export const pikkuChannelFunc = <In, Out = unknown>(
|
|
75
74
|
func:
|
|
76
|
-
| PikkuFunctionSessionless<In, Out,
|
|
77
|
-
|
|
|
75
|
+
| PikkuFunctionSessionless<In, Out, 'channel' | 'session' | 'rpc'>
|
|
76
|
+
| PikkuFunctionConfig<In, Out, 'channel' | 'session' | 'rpc'>
|
|
78
77
|
) => {
|
|
79
78
|
return typeof func === 'function' ? { func } : func
|
|
80
79
|
}
|
|
@@ -173,19 +173,19 @@ export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
|
|
|
173
173
|
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
174
174
|
config: true,
|
|
175
175
|
singletonServicesFactory: true,
|
|
176
|
-
|
|
176
|
+
wireServicesFactory: true,
|
|
177
177
|
})
|
|
178
178
|
|
|
179
179
|
const {
|
|
180
180
|
pikkuConfigFactory,
|
|
181
181
|
singletonServicesFactory,
|
|
182
|
-
|
|
182
|
+
wireServicesFactory,
|
|
183
183
|
} = visitState.filesAndMethods
|
|
184
184
|
|
|
185
185
|
if (
|
|
186
186
|
!pikkuConfigFactory ||
|
|
187
187
|
!singletonServicesFactory ||
|
|
188
|
-
!
|
|
188
|
+
!wireServicesFactory
|
|
189
189
|
) {
|
|
190
190
|
throw new Error('Required types not found')
|
|
191
191
|
}
|
|
@@ -197,7 +197,7 @@ export const pikkuCLIEntry: any = pikkuSessionlessFunc<void, void>({
|
|
|
197
197
|
config,
|
|
198
198
|
pikkuConfigFactory,
|
|
199
199
|
singletonServicesFactory,
|
|
200
|
-
|
|
200
|
+
wireServicesFactory
|
|
201
201
|
)
|
|
202
202
|
|
|
203
203
|
await writeFileInDir(logger, bootstrapFile, bootstrapCode)
|
|
@@ -19,7 +19,7 @@ export const pikkuCLITypes: any = pikkuSessionlessFunc<void, void>({
|
|
|
19
19
|
// Check for required types
|
|
20
20
|
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
21
21
|
userSessionType: true,
|
|
22
|
-
|
|
22
|
+
wireServiceType: true,
|
|
23
23
|
singletonServicesType: true,
|
|
24
24
|
})
|
|
25
25
|
|
|
@@ -2,11 +2,18 @@ import { pikkuSessionlessFunc } from '../../../../.pikku/pikku-types.gen.js'
|
|
|
2
2
|
import { serializeFileImports } from '../../../utils/file-imports-serializer.js'
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js'
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js'
|
|
5
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
5
6
|
|
|
6
7
|
export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
|
|
7
8
|
func: async ({ logger, config, getInspectorState }) => {
|
|
8
9
|
const visitState = await getInspectorState()
|
|
9
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
cliWiringsFile,
|
|
12
|
+
cliWiringMetaFile,
|
|
13
|
+
cliWiringMetaJsonFile,
|
|
14
|
+
packageMappings,
|
|
15
|
+
schema,
|
|
16
|
+
} = config
|
|
10
17
|
const { cli } = visitState
|
|
11
18
|
|
|
12
19
|
// Generate CLI wirings file
|
|
@@ -21,11 +28,27 @@ export const pikkuCLI: any = pikkuSessionlessFunc<void, boolean | undefined>({
|
|
|
21
28
|
)
|
|
22
29
|
)
|
|
23
30
|
|
|
24
|
-
|
|
31
|
+
await writeFileInDir(
|
|
32
|
+
logger,
|
|
33
|
+
cliWiringMetaJsonFile,
|
|
34
|
+
JSON.stringify(cli.meta, null, 2)
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
const jsonImportPath = getFileImportRelativePath(
|
|
38
|
+
cliWiringMetaFile,
|
|
39
|
+
cliWiringMetaJsonFile,
|
|
40
|
+
packageMappings
|
|
41
|
+
)
|
|
42
|
+
|
|
43
|
+
const supportsImportAttributes = schema?.supportsImportAttributes ?? false
|
|
44
|
+
const importStatement = supportsImportAttributes
|
|
45
|
+
? `import metaData from '${jsonImportPath}' with { type: 'json' }`
|
|
46
|
+
: `import metaData from '${jsonImportPath}'`
|
|
47
|
+
|
|
25
48
|
await writeFileInDir(
|
|
26
49
|
logger,
|
|
27
50
|
cliWiringMetaFile,
|
|
28
|
-
`import { pikkuState } from '@pikku/core'\npikkuState('cli', 'meta',
|
|
51
|
+
`import { pikkuState } from '@pikku/core'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState('cli', 'meta', metaData as CLIMeta)`
|
|
29
52
|
)
|
|
30
53
|
|
|
31
54
|
return true
|
|
@@ -89,7 +89,7 @@ import { pikkuMiddleware } from '${functionTypesPath}'
|
|
|
89
89
|
${imports}
|
|
90
90
|
|
|
91
91
|
// Middleware to close the channel after CLI command completes
|
|
92
|
-
const cliCloseOnComplete = pikkuMiddleware(async (
|
|
92
|
+
const cliCloseOnComplete = pikkuMiddleware(async (_services, { channel }, next) => {
|
|
93
93
|
const closeChannel = () => {
|
|
94
94
|
setTimeout(async () => {
|
|
95
95
|
try {
|
|
@@ -56,7 +56,7 @@ export const pikkuCLIRender = <Data, RequiredServices extends SingletonServices
|
|
|
56
56
|
* CLI command configuration with project-specific types.
|
|
57
57
|
* Uses CoreCLICommandConfig from @pikku/core with local middleware and render types.
|
|
58
58
|
*/
|
|
59
|
-
type CLICommandConfig<Func extends PikkuFunctionConfig<In, Out>, In = any, Out = any, Params extends string = string> = CoreCLICommandConfig<Func, PikkuMiddleware, PikkuCLIRender<any>, Params>
|
|
59
|
+
type CLICommandConfig<Func extends PikkuFunctionConfig<In, Out, 'cli' | 'rpc' | 'session'>, In = any, Out = any, Params extends string = string> = CoreCLICommandConfig<Func, PikkuMiddleware, PikkuCLIRender<any>, Params>
|
|
60
60
|
|
|
61
61
|
/**
|
|
62
62
|
* Type definition for CLI applications with commands and global options.
|
|
@@ -90,7 +90,7 @@ export const wireCLI = <Commands extends Record<string, CoreCLICommandConfig<any
|
|
|
90
90
|
* @returns CLI command configuration with inferred types
|
|
91
91
|
*/
|
|
92
92
|
export const pikkuCLICommand = <
|
|
93
|
-
FuncConfig extends PikkuFunctionConfig<any, any>,
|
|
93
|
+
FuncConfig extends PikkuFunctionConfig<any, any, 'cli' | 'rpc' | 'session'>,
|
|
94
94
|
Params extends string
|
|
95
95
|
>(
|
|
96
96
|
config: CLICommandConfig<FuncConfig, any, any, Params>
|
|
@@ -11,7 +11,7 @@ export function serializeLocalCLIBootstrap(
|
|
|
11
11
|
config: Config,
|
|
12
12
|
pikkuConfigFactory: { file: string; variable: string },
|
|
13
13
|
singletonServicesFactory: { file: string; variable: string },
|
|
14
|
-
|
|
14
|
+
wireServicesFactory: { file: string; variable: string }
|
|
15
15
|
): string {
|
|
16
16
|
const capitalizedName =
|
|
17
17
|
programName.charAt(0).toUpperCase() + programName.slice(1).replace(/-/g, '')
|
|
@@ -27,9 +27,9 @@ export function serializeLocalCLIBootstrap(
|
|
|
27
27
|
singletonServicesFactory.file,
|
|
28
28
|
config.packageMappings
|
|
29
29
|
)
|
|
30
|
-
const
|
|
30
|
+
const wireServicesPath = getFileImportRelativePath(
|
|
31
31
|
bootstrapFile,
|
|
32
|
-
|
|
32
|
+
wireServicesFactory.file,
|
|
33
33
|
config.packageMappings
|
|
34
34
|
)
|
|
35
35
|
const cliBootstrapPath = getFileImportRelativePath(
|
|
@@ -42,7 +42,7 @@ export function serializeLocalCLIBootstrap(
|
|
|
42
42
|
import { executeCLI, CLIError } from '@pikku/core/cli'
|
|
43
43
|
import { ${pikkuConfigFactory.variable} as createConfig } from '${pikkuConfigPath}'
|
|
44
44
|
import { ${singletonServicesFactory.variable} as createSingletonServices } from '${singletonServicesPath}'
|
|
45
|
-
import { ${
|
|
45
|
+
import { ${wireServicesFactory.variable} as createWireServices } from '${wireServicesPath}'
|
|
46
46
|
import '${cliBootstrapPath}'
|
|
47
47
|
|
|
48
48
|
/**
|
|
@@ -56,7 +56,7 @@ export async function ${capitalizedName}CLI(args: string[]): Promise<void> {
|
|
|
56
56
|
args: args || process.argv.slice(2),
|
|
57
57
|
createConfig,
|
|
58
58
|
createSingletonServices,
|
|
59
|
-
|
|
59
|
+
createWireServices,
|
|
60
60
|
})
|
|
61
61
|
} catch (error) {
|
|
62
62
|
if (error instanceof CLIError) {
|
|
@@ -18,18 +18,18 @@ export const pikkuFunctionTypesSplit: any = pikkuSessionlessFunc<void, void>({
|
|
|
18
18
|
// Check for required types
|
|
19
19
|
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
20
20
|
userSessionType: true,
|
|
21
|
-
|
|
21
|
+
wireServiceType: true,
|
|
22
22
|
singletonServicesType: true,
|
|
23
23
|
})
|
|
24
24
|
|
|
25
25
|
const {
|
|
26
26
|
userSessionType,
|
|
27
|
-
|
|
27
|
+
wireServicesType,
|
|
28
28
|
singletonServicesType,
|
|
29
29
|
pikkuConfigType,
|
|
30
30
|
} = visitState.filesAndMethods
|
|
31
31
|
|
|
32
|
-
if (!userSessionType || !
|
|
32
|
+
if (!userSessionType || !wireServicesType || !singletonServicesType) {
|
|
33
33
|
throw new Error('Required types not found')
|
|
34
34
|
}
|
|
35
35
|
|
|
@@ -42,10 +42,10 @@ export const pikkuFunctionTypesSplit: any = pikkuSessionlessFunc<void, void>({
|
|
|
42
42
|
userSessionType.type,
|
|
43
43
|
`import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, singletonServicesType.typePath, packageMappings)}'`,
|
|
44
44
|
singletonServicesType.type,
|
|
45
|
-
`import type { ${
|
|
46
|
-
|
|
45
|
+
`import type { ${wireServicesType.type} } from '${getFileImportRelativePath(functionTypesFile, wireServicesType.typePath, packageMappings)}'`,
|
|
46
|
+
wireServicesType.type,
|
|
47
47
|
`import type { TypedPikkuRPC } from '${getFileImportRelativePath(functionTypesFile, rpcInternalMapDeclarationFile, packageMappings)}'`,
|
|
48
|
-
`import type { RequiredSingletonServices,
|
|
48
|
+
`import type { RequiredSingletonServices, RequiredWireServices } from '${getFileImportRelativePath(functionTypesFile, servicesFile, packageMappings)}'`,
|
|
49
49
|
configTypeImport
|
|
50
50
|
)
|
|
51
51
|
|
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
generateRuntimeMeta,
|
|
6
6
|
serializeFunctionImports,
|
|
7
7
|
} from './serialize-function-imports.js'
|
|
8
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
8
9
|
|
|
9
10
|
export const pikkuFunctions: any = pikkuSessionlessFunc<
|
|
10
11
|
void,
|
|
@@ -14,24 +15,58 @@ export const pikkuFunctions: any = pikkuSessionlessFunc<
|
|
|
14
15
|
const { functions, rpc } = await getInspectorState()
|
|
15
16
|
const {
|
|
16
17
|
functionsMetaFile,
|
|
18
|
+
functionsMetaJsonFile,
|
|
17
19
|
functionsMetaMinFile,
|
|
20
|
+
functionsMetaMinJsonFile,
|
|
18
21
|
functionsFile,
|
|
19
22
|
packageMappings,
|
|
23
|
+
schema,
|
|
20
24
|
} = config
|
|
21
25
|
|
|
22
|
-
|
|
26
|
+
await writeFileInDir(
|
|
27
|
+
logger,
|
|
28
|
+
functionsMetaJsonFile,
|
|
29
|
+
JSON.stringify(functions.meta, null, 2)
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
const fullJsonImportPath = getFileImportRelativePath(
|
|
33
|
+
functionsMetaFile,
|
|
34
|
+
functionsMetaJsonFile,
|
|
35
|
+
packageMappings
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
const supportsImportAttributes = schema?.supportsImportAttributes ?? false
|
|
39
|
+
const fullImportStatement = supportsImportAttributes
|
|
40
|
+
? `import metaData from '${fullJsonImportPath}' with { type: 'json' }`
|
|
41
|
+
: `import metaData from '${fullJsonImportPath}'`
|
|
42
|
+
|
|
23
43
|
await writeFileInDir(
|
|
24
44
|
logger,
|
|
25
45
|
functionsMetaFile,
|
|
26
|
-
`import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta',
|
|
46
|
+
`import { pikkuState, FunctionsMeta } from '@pikku/core'\n${fullImportStatement}\npikkuState('function', 'meta', metaData as FunctionsMeta)`
|
|
27
47
|
)
|
|
28
48
|
|
|
29
|
-
// Generate minimal metadata (runtime)
|
|
30
49
|
const runtimeMeta = generateRuntimeMeta(functions.meta)
|
|
50
|
+
await writeFileInDir(
|
|
51
|
+
logger,
|
|
52
|
+
functionsMetaMinJsonFile,
|
|
53
|
+
JSON.stringify(runtimeMeta, null, 2)
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
const minJsonImportPath = getFileImportRelativePath(
|
|
57
|
+
functionsMetaMinFile,
|
|
58
|
+
functionsMetaMinJsonFile,
|
|
59
|
+
packageMappings
|
|
60
|
+
)
|
|
61
|
+
|
|
62
|
+
const minImportStatement = supportsImportAttributes
|
|
63
|
+
? `import metaData from '${minJsonImportPath}' with { type: 'json' }`
|
|
64
|
+
: `import metaData from '${minJsonImportPath}'`
|
|
65
|
+
|
|
31
66
|
await writeFileInDir(
|
|
32
67
|
logger,
|
|
33
68
|
functionsMetaMinFile,
|
|
34
|
-
`import { pikkuState } from '@pikku/core'\npikkuState('function', 'meta',
|
|
69
|
+
`import { pikkuState, FunctionsRuntimeMeta } from '@pikku/core'\n${minImportStatement}\npikkuState('function', 'meta', metaData as FunctionsRuntimeMeta)`
|
|
35
70
|
)
|
|
36
71
|
|
|
37
72
|
const hasRPCs = rpc.exposedFiles.size > 0 || rpc.internalFiles.size > 0
|
|
@@ -6,11 +6,11 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
|
|
|
6
6
|
|
|
7
7
|
export const serializeServicesMap = (
|
|
8
8
|
allSingletonServices: string[],
|
|
9
|
-
|
|
9
|
+
allWireServices: string[],
|
|
10
10
|
requiredServices: Set<string>,
|
|
11
11
|
forceRequiredServices: string[] = [],
|
|
12
12
|
servicesImport: string,
|
|
13
|
-
|
|
13
|
+
wireServicesImport: string
|
|
14
14
|
): string => {
|
|
15
15
|
// Use pre-aggregated services from inspector state
|
|
16
16
|
// This includes services from:
|
|
@@ -20,7 +20,7 @@ export const serializeServicesMap = (
|
|
|
20
20
|
// - Session factories
|
|
21
21
|
const usedServices = new Set(requiredServices)
|
|
22
22
|
|
|
23
|
-
// Internal services that are created internally by the framework (
|
|
23
|
+
// Internal services that are created internally by the framework (PikkuWire)
|
|
24
24
|
// These should not appear in the services maps
|
|
25
25
|
const internalServices = new Set([
|
|
26
26
|
'rpc',
|
|
@@ -50,12 +50,12 @@ export const serializeServicesMap = (
|
|
|
50
50
|
singletonServicesMap[service] = usedServices.has(service)
|
|
51
51
|
})
|
|
52
52
|
|
|
53
|
-
// Create
|
|
54
|
-
// Exclude internal framework services (
|
|
55
|
-
const
|
|
56
|
-
|
|
53
|
+
// Create wire services map: all wire services with true/false based on usage
|
|
54
|
+
// Exclude internal framework services (PikkuWire)
|
|
55
|
+
const wireServicesMap: Record<string, boolean> = {}
|
|
56
|
+
allWireServices.forEach((service) => {
|
|
57
57
|
if (!internalServices.has(service)) {
|
|
58
|
-
|
|
58
|
+
wireServicesMap[service] = usedServices.has(service)
|
|
59
59
|
}
|
|
60
60
|
})
|
|
61
61
|
|
|
@@ -63,13 +63,13 @@ export const serializeServicesMap = (
|
|
|
63
63
|
const requiredSingletonServiceNames = Object.keys(singletonServicesMap)
|
|
64
64
|
.filter((key) => singletonServicesMap[key])
|
|
65
65
|
.sort()
|
|
66
|
-
const
|
|
67
|
-
.filter((key) =>
|
|
66
|
+
const requiredWireServiceNames = Object.keys(wireServicesMap)
|
|
67
|
+
.filter((key) => wireServicesMap[key])
|
|
68
68
|
.sort()
|
|
69
69
|
|
|
70
70
|
const code = [
|
|
71
71
|
servicesImport,
|
|
72
|
-
|
|
72
|
+
wireServicesImport,
|
|
73
73
|
'',
|
|
74
74
|
'// Singleton services map: true if required, false if available but unused',
|
|
75
75
|
'export const requiredSingletonServices = {',
|
|
@@ -78,11 +78,11 @@ export const serializeServicesMap = (
|
|
|
78
78
|
.map((service) => ` '${service}': ${singletonServicesMap[service]},`),
|
|
79
79
|
'} as const',
|
|
80
80
|
'',
|
|
81
|
-
'//
|
|
82
|
-
'export const
|
|
83
|
-
...Object.keys(
|
|
81
|
+
'// Wire services map: true if required, false if available but unused',
|
|
82
|
+
'export const requiredWireServices = {',
|
|
83
|
+
...Object.keys(wireServicesMap)
|
|
84
84
|
.sort()
|
|
85
|
-
.map((service) => ` '${service}': ${
|
|
85
|
+
.map((service) => ` '${service}': ${wireServicesMap[service]},`),
|
|
86
86
|
'} as const',
|
|
87
87
|
'',
|
|
88
88
|
'// Type exports',
|
|
@@ -90,9 +90,9 @@ export const serializeServicesMap = (
|
|
|
90
90
|
? `export type RequiredSingletonServices = Pick<SingletonServices, ${requiredSingletonServiceNames.map((key) => `'${key}'`).join(' | ')}> & Partial<Omit<SingletonServices, ${requiredSingletonServiceNames.map((key) => `'${key}'`).join(' | ')}>>`
|
|
91
91
|
: 'export type RequiredSingletonServices = Partial<SingletonServices>',
|
|
92
92
|
'',
|
|
93
|
-
|
|
94
|
-
? `export type
|
|
95
|
-
: 'export type
|
|
93
|
+
requiredWireServiceNames.length > 0
|
|
94
|
+
? `export type RequiredWireServices = Pick<Services, ${requiredWireServiceNames.map((key) => `'${key}'`).join(' | ')}> & Partial<Omit<Services, ${requiredWireServiceNames.map((key) => `'${key}'`).join(' | ')}>>`
|
|
95
|
+
: 'export type RequiredWireServices = Partial<Services>',
|
|
96
96
|
'',
|
|
97
97
|
].join('\n')
|
|
98
98
|
|
|
@@ -105,29 +105,29 @@ export const pikkuServices: any = pikkuSessionlessFunc<void, void>({
|
|
|
105
105
|
|
|
106
106
|
// Check for required types
|
|
107
107
|
checkRequiredTypes(visitState.filesAndMethodsErrors, {
|
|
108
|
-
|
|
108
|
+
wireServiceType: true,
|
|
109
109
|
singletonServicesType: true,
|
|
110
110
|
})
|
|
111
111
|
|
|
112
|
-
const {
|
|
112
|
+
const { wireServicesType, singletonServicesType } =
|
|
113
113
|
visitState.filesAndMethods
|
|
114
114
|
|
|
115
|
-
if (!
|
|
115
|
+
if (!wireServicesType || !singletonServicesType) {
|
|
116
116
|
throw new Error(
|
|
117
|
-
'Required types not found:
|
|
117
|
+
'Required types not found: wireServicesType or singletonServicesType'
|
|
118
118
|
)
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
const servicesImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, singletonServicesType.typePath, config.packageMappings)}'`
|
|
122
|
-
const
|
|
122
|
+
const wireServicesImport = `import type { ${wireServicesType.type} } from '${getFileImportRelativePath(config.typesDeclarationFile, wireServicesType.typePath, config.packageMappings)}'`
|
|
123
123
|
|
|
124
124
|
const servicesCode = serializeServicesMap(
|
|
125
125
|
visitState.serviceAggregation.allSingletonServices,
|
|
126
|
-
visitState.serviceAggregation.
|
|
126
|
+
visitState.serviceAggregation.allWireServices,
|
|
127
127
|
visitState.serviceAggregation.requiredServices,
|
|
128
128
|
config.forceRequiredServices,
|
|
129
129
|
servicesImport,
|
|
130
|
-
|
|
130
|
+
wireServicesImport
|
|
131
131
|
)
|
|
132
132
|
await writeFileInDir(logger, config.servicesFile, servicesCode)
|
|
133
133
|
},
|
|
@@ -31,8 +31,8 @@ export const pikkuSchemas: any = pikkuSessionlessFunc<
|
|
|
31
31
|
schemas,
|
|
32
32
|
visitState.functions.typesMap,
|
|
33
33
|
visitState.functions.meta,
|
|
34
|
-
config.
|
|
35
|
-
config.
|
|
34
|
+
config.schema?.supportsImportAttributes || true,
|
|
35
|
+
config.schemasFromTypes
|
|
36
36
|
)
|
|
37
37
|
|
|
38
38
|
return true
|