@pikku/addon-graph 0.12.5 → 0.12.6

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.
Files changed (173) hide show
  1. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  2. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  3. package/dist/.pikku/addon/pikku-package.gen.js +1 -1
  4. package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +1 -1
  5. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +3 -2
  6. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts.map +1 -1
  7. package/dist/.pikku/agent/pikku-agent-types.gen.js.map +1 -1
  8. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  9. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  10. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  11. package/dist/.pikku/function/pikku-function-types.gen.d.ts +9 -15
  12. package/dist/.pikku/function/pikku-function-types.gen.d.ts.map +1 -1
  13. package/dist/.pikku/function/pikku-function-types.gen.js +3 -12
  14. package/dist/.pikku/function/pikku-function-types.gen.js.map +1 -1
  15. package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
  16. package/dist/.pikku/function/pikku-functions-meta.gen.json +350 -33
  17. package/dist/.pikku/function/pikku-functions.gen.js +19 -1
  18. package/dist/.pikku/function/pikku-functions.gen.js.map +1 -1
  19. package/dist/.pikku/http/pikku-http-types.gen.d.ts +2 -24
  20. package/dist/.pikku/http/pikku-http-types.gen.d.ts.map +1 -1
  21. package/dist/.pikku/http/pikku-http-types.gen.js +2 -24
  22. package/dist/.pikku/http/pikku-http-types.gen.js.map +1 -1
  23. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  24. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  25. package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
  26. package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
  27. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  28. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  29. package/dist/.pikku/pikku-services.gen.d.ts +5 -1
  30. package/dist/.pikku/pikku-services.gen.d.ts.map +1 -1
  31. package/dist/.pikku/pikku-services.gen.js +4 -0
  32. package/dist/.pikku/pikku-services.gen.js.map +1 -1
  33. package/dist/.pikku/pikku-types.gen.d.ts +2 -1
  34. package/dist/.pikku/pikku-types.gen.d.ts.map +1 -1
  35. package/dist/.pikku/pikku-types.gen.js +3 -1
  36. package/dist/.pikku/pikku-types.gen.js.map +1 -1
  37. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  38. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  39. package/dist/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +163 -7
  40. package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +172 -7
  41. package/dist/.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts +652 -0
  42. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
  43. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +10 -1
  44. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  45. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  46. package/dist/.pikku/schemas/register.gen.js +37 -1
  47. package/dist/.pikku/schemas/register.gen.js.map +1 -1
  48. package/dist/.pikku/schemas/schemas/AggregateInput.schema.json +1 -1
  49. package/dist/.pikku/schemas/schemas/BranchInput.schema.json +1 -0
  50. package/dist/.pikku/schemas/schemas/BranchOutput.schema.json +1 -0
  51. package/dist/.pikku/schemas/schemas/ConcatInput.schema.json +1 -0
  52. package/dist/.pikku/schemas/schemas/ConcatOutput.schema.json +1 -0
  53. package/dist/.pikku/schemas/schemas/DateTimeInput.schema.json +1 -1
  54. package/dist/.pikku/schemas/schemas/EditFieldsOutput.schema.json +1 -1
  55. package/dist/.pikku/schemas/schemas/FanoutInput.schema.json +1 -0
  56. package/dist/.pikku/schemas/schemas/FanoutOutput.schema.json +1 -0
  57. package/dist/.pikku/schemas/schemas/HttpRequestInput.schema.json +1 -0
  58. package/dist/.pikku/schemas/schemas/HttpRequestOutput.schema.json +1 -0
  59. package/dist/.pikku/schemas/schemas/ReadFileInput.schema.json +1 -0
  60. package/dist/.pikku/schemas/schemas/ReadFileOutput.schema.json +1 -0
  61. package/dist/.pikku/schemas/schemas/SplitTextInput.schema.json +1 -0
  62. package/dist/.pikku/schemas/schemas/SplitTextOutput.schema.json +1 -0
  63. package/dist/.pikku/schemas/schemas/StopAndErrorInput.schema.json +1 -0
  64. package/dist/.pikku/schemas/schemas/StopAndErrorOutput.schema.json +1 -0
  65. package/dist/.pikku/schemas/schemas/WaitInput.schema.json +1 -0
  66. package/dist/.pikku/schemas/schemas/WaitOutput.schema.json +1 -0
  67. package/dist/.pikku/schemas/schemas/WriteFileInput.schema.json +1 -0
  68. package/dist/.pikku/schemas/schemas/WriteFileOutput.schema.json +1 -0
  69. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +6 -0
  70. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts.map +1 -0
  71. package/dist/.pikku/scopes/pikku-scope-types.gen.js +5 -0
  72. package/dist/.pikku/scopes/pikku-scope-types.gen.js.map +1 -0
  73. package/dist/.pikku/scopes/pikku-scopes-meta.gen.json +1 -0
  74. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +36 -0
  75. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts.map +1 -0
  76. package/dist/.pikku/scopes/pikku-scopes.gen.js +28 -0
  77. package/dist/.pikku/scopes/pikku-scopes.gen.js.map +1 -0
  78. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  79. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  80. package/dist/.pikku/secrets/pikku-secrets-meta.gen.json +1 -0
  81. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -1
  82. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts.map +1 -1
  83. package/dist/.pikku/secrets/pikku-secrets.gen.js +11 -1
  84. package/dist/.pikku/secrets/pikku-secrets.gen.js.map +1 -1
  85. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  86. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  87. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  88. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  89. package/dist/.pikku/variables/pikku-variables-meta.gen.json +1 -0
  90. package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -1
  91. package/dist/.pikku/variables/pikku-variables.gen.d.ts.map +1 -1
  92. package/dist/.pikku/variables/pikku-variables.gen.js +13 -3
  93. package/dist/.pikku/variables/pikku-variables.gen.js.map +1 -1
  94. package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +1 -1
  95. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +22 -5
  96. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts.map +1 -1
  97. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +4 -1
  98. package/dist/.pikku/workflow/pikku-workflow-types.gen.js.map +1 -1
  99. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  100. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
  101. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  102. package/dist/src/functions/array/aggregate.function.d.ts +33 -4
  103. package/dist/src/functions/array/aggregate.function.d.ts.map +1 -1
  104. package/dist/src/functions/array/aggregate.function.js +47 -14
  105. package/dist/src/functions/array/aggregate.function.js.map +1 -1
  106. package/dist/src/functions/array/aggregate.function.test.d.ts +2 -0
  107. package/dist/src/functions/array/aggregate.function.test.d.ts.map +1 -0
  108. package/dist/src/functions/array/aggregate.function.test.js +42 -0
  109. package/dist/src/functions/array/aggregate.function.test.js.map +1 -0
  110. package/dist/src/functions/array/fanout.function.d.ts +32 -0
  111. package/dist/src/functions/array/fanout.function.d.ts.map +1 -0
  112. package/dist/src/functions/array/fanout.function.js +80 -0
  113. package/dist/src/functions/array/fanout.function.js.map +1 -0
  114. package/dist/src/functions/array/fanout.function.test.d.ts +2 -0
  115. package/dist/src/functions/array/fanout.function.test.d.ts.map +1 -0
  116. package/dist/src/functions/array/fanout.function.test.js +66 -0
  117. package/dist/src/functions/array/fanout.function.test.js.map +1 -0
  118. package/dist/src/functions/array/summarize.function.d.ts +4 -4
  119. package/dist/src/functions/data/date-time.function.d.ts +17 -3
  120. package/dist/src/functions/data/date-time.function.d.ts.map +1 -1
  121. package/dist/src/functions/data/date-time.function.js +46 -0
  122. package/dist/src/functions/data/date-time.function.js.map +1 -1
  123. package/dist/src/functions/data/jwt.function.d.ts +4 -4
  124. package/dist/src/functions/data/read-file.function.d.ts +40 -0
  125. package/dist/src/functions/data/read-file.function.d.ts.map +1 -0
  126. package/dist/src/functions/data/read-file.function.js +39 -0
  127. package/dist/src/functions/data/read-file.function.js.map +1 -0
  128. package/dist/src/functions/data/type-convert.function.d.ts +4 -4
  129. package/dist/src/functions/data/wait.function.d.ts +26 -0
  130. package/dist/src/functions/data/wait.function.d.ts.map +1 -0
  131. package/dist/src/functions/data/wait.function.js +29 -0
  132. package/dist/src/functions/data/wait.function.js.map +1 -0
  133. package/dist/src/functions/data/write-file.function.d.ts +40 -0
  134. package/dist/src/functions/data/write-file.function.d.ts.map +1 -0
  135. package/dist/src/functions/data/write-file.function.js +37 -0
  136. package/dist/src/functions/data/write-file.function.js.map +1 -0
  137. package/dist/src/functions/logic/branch.function.d.ts +71 -0
  138. package/dist/src/functions/logic/branch.function.d.ts.map +1 -0
  139. package/dist/src/functions/logic/branch.function.js +213 -0
  140. package/dist/src/functions/logic/branch.function.js.map +1 -0
  141. package/dist/src/functions/logic/stop-and-error.function.d.ts +13 -0
  142. package/dist/src/functions/logic/stop-and-error.function.d.ts.map +1 -0
  143. package/dist/src/functions/logic/stop-and-error.function.js +18 -0
  144. package/dist/src/functions/logic/stop-and-error.function.js.map +1 -0
  145. package/dist/src/functions/network/http-request.function.d.ts +105 -0
  146. package/dist/src/functions/network/http-request.function.d.ts.map +1 -0
  147. package/dist/src/functions/network/http-request.function.js +142 -0
  148. package/dist/src/functions/network/http-request.function.js.map +1 -0
  149. package/dist/src/functions/network/http-request.function.test.d.ts +2 -0
  150. package/dist/src/functions/network/http-request.function.test.d.ts.map +1 -0
  151. package/dist/src/functions/network/http-request.function.test.js +119 -0
  152. package/dist/src/functions/network/http-request.function.test.js.map +1 -0
  153. package/dist/src/functions/transform/concat.function.d.ts +21 -0
  154. package/dist/src/functions/transform/concat.function.d.ts.map +1 -0
  155. package/dist/src/functions/transform/concat.function.js +22 -0
  156. package/dist/src/functions/transform/concat.function.js.map +1 -0
  157. package/dist/src/functions/transform/concat.function.test.d.ts +2 -0
  158. package/dist/src/functions/transform/concat.function.test.d.ts.map +1 -0
  159. package/dist/src/functions/transform/concat.function.test.js +23 -0
  160. package/dist/src/functions/transform/concat.function.test.js.map +1 -0
  161. package/dist/src/functions/transform/edit-fields.function.d.ts +9 -12
  162. package/dist/src/functions/transform/edit-fields.function.d.ts.map +1 -1
  163. package/dist/src/functions/transform/edit-fields.function.js +9 -4
  164. package/dist/src/functions/transform/edit-fields.function.js.map +1 -1
  165. package/dist/src/functions/transform/split-text.function.d.ts +41 -0
  166. package/dist/src/functions/transform/split-text.function.d.ts.map +1 -0
  167. package/dist/src/functions/transform/split-text.function.js +116 -0
  168. package/dist/src/functions/transform/split-text.function.js.map +1 -0
  169. package/dist/src/functions/transform/split-text.function.test.d.ts +2 -0
  170. package/dist/src/functions/transform/split-text.function.test.d.ts.map +1 -0
  171. package/dist/src/functions/transform/split-text.function.test.js +66 -0
  172. package/dist/src/functions/transform/split-text.function.test.js.map +1 -0
  173. package/package.json +2 -2
@@ -1,25 +1,28 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.62
2
+ * This file was generated by @pikku/cli@0.12.83
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { template } from '@pikku/core/workflow';
6
6
  import { type PikkuWorkflowGraphConfig, type PikkuWorkflowGraphResult } from '@pikku/core/workflow';
7
- import type { PikkuWorkflowWire, WorkflowStepOptions } from '@pikku/core/workflow';
7
+ import type { PikkuWorkflowWire, PikkuScenarioWire, WorkflowStepOptions } from '@pikku/core/workflow';
8
8
  export { WorkflowCancelledException };
9
9
  import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '../function/pikku-function-types.gen.js';
10
10
  import type { FlattenedRPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
11
11
  import type { FlattenedWorkflowMap } from './pikku-workflow-map.gen.d.js';
12
+ import type { AgentMap as FlattenedAgentMap } from '../agent/pikku-agent-map.gen.d.js';
12
13
  export { template };
13
14
  export interface TypedWorkflow extends PikkuWorkflowWire {
14
15
  do<K extends keyof FlattenedRPCMap>(stepName: string, rpcName: K, data: FlattenedRPCMap[K]['input'], options?: WorkflowStepOptions): Promise<FlattenedRPCMap[K]['output']>;
15
16
  do<K extends keyof FlattenedWorkflowMap>(stepName: string, workflowName: K, data: FlattenedWorkflowMap[K]['input'], options?: WorkflowStepOptions): Promise<FlattenedWorkflowMap[K]['output']>;
16
17
  do<T>(stepName: string, fn: () => T | Promise<T>, options?: WorkflowStepOptions): Promise<T>;
17
18
  }
19
+ export type TypedScenario = TypedWorkflow & Omit<PikkuScenarioWire, keyof PikkuWorkflowWire>;
18
20
  import type { StandardSchemaV1 } from '@standard-schema/spec';
19
21
  import type { InferSchemaOutput, PikkuPermission, PikkuMiddleware, NodeConfig, PikkuApprovalDescription } from '../function/pikku-function-types.gen.js';
20
22
  import { PikkuError } from '@pikku/core/errors';
21
23
  import type { CorePermissionGroup } from '@pikku/core';
22
24
  export type PikkuFunctionWorkflow<In = unknown, Out = never> = PikkuFunctionSessionless<In, Out, 'workflow'>;
25
+ export type PikkuFunctionScenario<In = unknown, Out = never> = PikkuFunctionSessionless<In, Out, 'scenario' | 'actors'>;
23
26
  export type PikkuWorkflowConfigWithSchema<InputSchema extends StandardSchemaV1 | undefined = undefined, OutputSchema extends StandardSchemaV1 | undefined = undefined> = {
24
27
  title?: string;
25
28
  description?: string;
@@ -47,6 +50,17 @@ export declare function pikkuWorkflowFunc<InputSchema extends StandardSchemaV1 |
47
50
  export declare function pikkuWorkflowFunc<In, Out = unknown>(func: PikkuFunctionWorkflow<In, Out> | PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>): PikkuFunctionConfig<In, Out, 'workflow'>;
48
51
  export declare function pikkuWorkflowComplexFunc<InputSchema extends StandardSchemaV1 | undefined = undefined, OutputSchema extends StandardSchemaV1 | undefined = undefined>(config: PikkuWorkflowConfigWithSchema<InputSchema, OutputSchema>): PikkuFunctionConfig<InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'workflow', PikkuFunctionWorkflow<InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown>, InputSchema, OutputSchema>;
49
52
  export declare function pikkuWorkflowComplexFunc<In, Out = unknown>(func: PikkuFunctionWorkflow<In, Out> | PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>): PikkuFunctionConfig<In, Out, 'workflow'>;
53
+ export type PikkuScenarioConfigWithSchema<InputSchema extends StandardSchemaV1 | undefined = undefined, OutputSchema extends StandardSchemaV1 | undefined = undefined> = Omit<PikkuWorkflowConfigWithSchema<InputSchema, OutputSchema>, 'func'> & {
54
+ func: PikkuFunctionScenario<InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown>;
55
+ };
56
+ /**
57
+ * A scenario: a complex workflow that drives the app the way users do.
58
+ * Steps run as actors over the REAL transport — `scenario.do(step, rpc,
59
+ * data, { actor: actors.yasser })` — so flows double as e2e tests and
60
+ * staged/production health checks (no state reset; scope what you create).
61
+ */
62
+ export declare function pikkuScenario<InputSchema extends StandardSchemaV1 | undefined = undefined, OutputSchema extends StandardSchemaV1 | undefined = undefined>(config: PikkuScenarioConfigWithSchema<InputSchema, OutputSchema>): PikkuFunctionConfig<InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown, 'scenario' | 'actors', PikkuFunctionScenario<InputSchema extends StandardSchemaV1 ? InferSchemaOutput<InputSchema> : unknown, OutputSchema extends StandardSchemaV1 ? InferSchemaOutput<OutputSchema> : unknown>, InputSchema, OutputSchema>;
63
+ export declare function pikkuScenario<In, Out = unknown>(func: PikkuFunctionScenario<In, Out> | PikkuFunctionConfig<In, Out, 'scenario' | 'actors', PikkuFunctionScenario<In, Out>>): PikkuFunctionConfig<In, Out, 'scenario' | 'actors'>;
50
64
  type TypedRef<T> = {
51
65
  $ref: string;
52
66
  path?: string;
@@ -67,10 +81,11 @@ type TemplateString = {
67
81
  type InputWithRefs<T> = {
68
82
  [K in keyof T]?: T[K] | TypedRef<T[K]> | TypedRef<unknown> | TemplateString;
69
83
  };
70
- type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> = FuncMap[K] extends keyof FlattenedRPCMap ? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']> : Record<string, unknown>;
71
- type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> = N extends keyof FuncMap ? FuncMap[N] extends keyof FlattenedRPCMap ? keyof FlattenedRPCMap[FuncMap[N]]['output'] & string : string : string;
84
+ type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> = FuncMap[K] extends keyof FlattenedRPCMap ? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']> : FuncMap[K] extends keyof FlattenedWorkflowMap ? InputWithRefs<FlattenedWorkflowMap[FuncMap[K]]['input']> : Record<string, unknown>;
85
+ type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> = N extends keyof FuncMap ? FuncMap[N] extends keyof FlattenedRPCMap ? keyof FlattenedRPCMap[FuncMap[N]]['output'] & string : FuncMap[N] extends keyof FlattenedWorkflowMap ? keyof FlattenedWorkflowMap[FuncMap[N]]['output'] & string : FuncMap[N] extends keyof FlattenedAgentMap ? keyof FlattenedAgentMap[FuncMap[N]]['output'] & string : string : string;
72
86
  type RefFunction<FuncMap extends Record<string, string>> = {
73
87
  <N extends Extract<keyof FuncMap, string>>(nodeId: N, path: NodeOutputKeys<FuncMap, N>): TypedRef<unknown>;
88
+ <N extends Extract<keyof FuncMap, string>>(nodeId: N): TypedRef<unknown>;
74
89
  (nodeId: 'trigger' | '$item', path?: string): TypedRef<unknown>;
75
90
  };
76
91
  type TemplateFunction = (templateStr: string, refs: TypedRef<unknown>[]) => TemplateString;
@@ -79,6 +94,8 @@ type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
79
94
  next?: NextConfig<Extract<keyof FuncMap, string>>;
80
95
  input?: NodeInputType<FuncMap, K> | (() => NodeInputType<FuncMap, K>) | ((ref: RefFunction<FuncMap>, template: TemplateFunction) => NodeInputType<FuncMap, K>);
81
96
  onError?: Extract<keyof FuncMap, string> | Extract<keyof FuncMap, string>[];
97
+ /** Free-text node documentation. Non-semantic — excluded from graphHash. */
98
+ notes?: string;
82
99
  };
83
100
  };
84
101
  type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | {
@@ -86,5 +103,5 @@ type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | {
86
103
  then: NodeIds;
87
104
  else?: NodeIds;
88
105
  };
89
- export declare function pikkuWorkflowGraph<const FuncMap extends Record<string, keyof FlattenedRPCMap & string>>(config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>): PikkuWorkflowGraphResult;
106
+ export declare function pikkuWorkflowGraph<const FuncMap extends Record<string, (keyof FlattenedRPCMap & string) | (keyof FlattenedWorkflowMap & string) | (keyof FlattenedAgentMap & string)>>(config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>): PikkuWorkflowGraphResult;
90
107
  //# sourceMappingURL=pikku-workflow-types.gen.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pikku-workflow-types.gen.d.ts","sourceRoot":"","sources":["../../../.pikku/workflow/pikku-workflow-types.gen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pikku-workflow-types.gen.d.ts","sourceRoot":"","sources":["../../../.pikku/workflow/pikku-workflow-types.gen.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.62
2
+ * This file was generated by @pikku/cli@0.12.83
3
3
  */
4
4
  import { WorkflowCancelledException } from '@pikku/core/workflow';
5
5
  import { template } from '@pikku/core/workflow';
@@ -12,6 +12,9 @@ export function pikkuWorkflowFunc(func) {
12
12
  export function pikkuWorkflowComplexFunc(func) {
13
13
  return typeof func === 'function' ? { func } : func;
14
14
  }
15
+ export function pikkuScenario(func) {
16
+ return typeof func === 'function' ? { func } : func;
17
+ }
15
18
  export function pikkuWorkflowGraph(config) {
16
19
  return corePikkuWorkflowGraph(config);
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pikku-workflow-types.gen.js","sourceRoot":"","sources":["../../../.pikku/workflow/pikku-workflow-types.gen.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EACL,kBAAkB,IAAI,sBAAsB,GAG7C,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAKrC,OAAO,EAAE,QAAQ,EAAE,CAAA;AA2EnB,MAAM,UAAU,iBAAiB,CAAC,IAAS;IACzC,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAaD,MAAM,UAAU,wBAAwB,CAAC,IAAS;IAChD,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAkDD,MAAM,UAAU,kBAAkB,CAGhC,MAAsE;IAEtE,OAAO,sBAAsB,CAAC,MAAa,CAAC,CAAA;AAC9C,CAAC"}
1
+ {"version":3,"file":"pikku-workflow-types.gen.js","sourceRoot":"","sources":["../../../.pikku/workflow/pikku-workflow-types.gen.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAC/C,OAAO,EACL,kBAAkB,IAAI,sBAAsB,GAG7C,MAAM,sBAAsB,CAAA;AAG7B,OAAO,EAAE,0BAA0B,EAAE,CAAA;AAMrC,OAAO,EAAE,QAAQ,EAAE,CAAA;AAkFnB,MAAM,UAAU,iBAAiB,CAAC,IAAS;IACzC,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AAaD,MAAM,UAAU,wBAAwB,CAAC,IAAS;IAChD,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AA6BD,MAAM,UAAU,aAAa,CAAC,IAAS;IACrC,OAAO,OAAO,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;AACrD,CAAC;AA2DD,MAAM,UAAU,kBAAkB,CAQhC,MAAsE;IAEtE,OAAO,sBAAsB,CAAC,MAAa,CAAC,CAAA;AAC9C,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.62
2
+ * This file was generated by @pikku/cli@0.12.83
3
3
  */
4
4
  import { pikkuState } from '@pikku/core/internal';
5
5
  const workflowsMeta = {};
@@ -1,5 +1,5 @@
1
1
  export {};
2
2
  /**
3
- * This file was generated by @pikku/cli@0.12.62
3
+ * This file was generated by @pikku/cli@0.12.83
4
4
  */
5
5
  //# sourceMappingURL=pikku-workflow-wirings.gen.d.ts.map
@@ -1,5 +1,5 @@
1
1
  export {};
2
2
  /**
3
- * This file was generated by @pikku/cli@0.12.62
3
+ * This file was generated by @pikku/cli@0.12.83
4
4
  */
5
5
  //# sourceMappingURL=pikku-workflow-wirings.gen.js.map
@@ -1,32 +1,61 @@
1
1
  import { z } from 'zod';
2
+ export declare const AggregateFieldInput: z.ZodObject<{
3
+ field: z.ZodString;
4
+ outputField: z.ZodOptional<z.ZodString>;
5
+ unique: z.ZodOptional<z.ZodBoolean>;
6
+ }, z.core.$strip>;
2
7
  export declare const AggregateInput: z.ZodObject<{
3
8
  items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
4
- field: z.ZodString;
9
+ field: z.ZodOptional<z.ZodString>;
5
10
  outputField: z.ZodOptional<z.ZodString>;
6
11
  unique: z.ZodOptional<z.ZodBoolean>;
12
+ fields: z.ZodOptional<z.ZodArray<z.ZodObject<{
13
+ field: z.ZodString;
14
+ outputField: z.ZodOptional<z.ZodString>;
15
+ unique: z.ZodOptional<z.ZodBoolean>;
16
+ }, z.core.$strip>>>;
17
+ includeAllItems: z.ZodOptional<z.ZodBoolean>;
7
18
  }, z.core.$strip>;
8
19
  export declare const AggregateOutput: z.ZodObject<{
9
20
  item: z.ZodRecord<z.ZodString, z.ZodUnknown>;
10
21
  }, z.core.$strip>;
11
22
  export declare const aggregate: import("#pikku").PikkuFunctionConfig<{
12
23
  items: Record<string, unknown>[];
13
- field: string;
24
+ field?: string | undefined;
14
25
  outputField?: string | undefined;
15
26
  unique?: boolean | undefined;
27
+ fields?: {
28
+ field: string;
29
+ outputField?: string | undefined;
30
+ unique?: boolean | undefined;
31
+ }[] | undefined;
32
+ includeAllItems?: boolean | undefined;
16
33
  }, {
17
34
  item: Record<string, unknown>;
18
35
  }, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
19
36
  items: Record<string, unknown>[];
20
- field: string;
37
+ field?: string | undefined;
21
38
  outputField?: string | undefined;
22
39
  unique?: boolean | undefined;
40
+ fields?: {
41
+ field: string;
42
+ outputField?: string | undefined;
43
+ unique?: boolean | undefined;
44
+ }[] | undefined;
45
+ includeAllItems?: boolean | undefined;
23
46
  }, {
24
47
  item: Record<string, unknown>;
25
48
  }, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
26
49
  items: Record<string, unknown>[];
27
- field: string;
50
+ field?: string | undefined;
28
51
  outputField?: string | undefined;
29
52
  unique?: boolean | undefined;
53
+ fields?: {
54
+ field: string;
55
+ outputField?: string | undefined;
56
+ unique?: boolean | undefined;
57
+ }[] | undefined;
58
+ includeAllItems?: boolean | undefined;
30
59
  }, {
31
60
  item: Record<string, unknown>;
32
61
  }, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,cAAc;;;;;iBAUzB,CAAA;AAEF,eAAO,MAAM,eAAe;;iBAI1B,CAAA;AAiBF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;uEAsBpB,CAAA"}
1
+ {"version":3,"file":"aggregate.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,mBAAmB;;;;iBAO9B,CAAA;AAEF,eAAO,MAAM,cAAc;;;;;;;;;;;iBAuBzB,CAAA;AAEF,eAAO,MAAM,eAAe;;iBAI1B,CAAA;AAiBF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEAqCpB,CAAA"}
@@ -1,15 +1,34 @@
1
1
  import { z } from 'zod';
2
2
  import { pikkuSessionlessFunc } from '#pikku';
3
+ export const AggregateFieldInput = z.object({
4
+ field: z.string().describe('The field path to collect values from'),
5
+ outputField: z
6
+ .string()
7
+ .optional()
8
+ .describe('The output field name (defaults to the source field path)'),
9
+ unique: z.boolean().optional().describe('Only include unique values'),
10
+ });
3
11
  export const AggregateInput = z.object({
4
12
  items: z
5
13
  .array(z.record(z.string(), z.unknown()))
6
14
  .describe('The array of items to aggregate'),
7
- field: z.string().describe('The field path to collect values from'),
15
+ field: z
16
+ .string()
17
+ .optional()
18
+ .describe('The field path to collect values from (single-field mode)'),
8
19
  outputField: z
9
20
  .string()
10
21
  .optional()
11
22
  .describe('The name of the output field containing the list'),
12
23
  unique: z.boolean().optional().describe('Only include unique values'),
24
+ fields: z
25
+ .array(AggregateFieldInput)
26
+ .optional()
27
+ .describe('Collect several fields at once into one output item'),
28
+ includeAllItems: z
29
+ .boolean()
30
+ .optional()
31
+ .describe('Collect the entire items into a single list field (n8n aggregateAllItemData)'),
13
32
  });
14
33
  export const AggregateOutput = z.object({
15
34
  item: z
@@ -32,20 +51,34 @@ export const aggregate = pikkuSessionlessFunc({
32
51
  input: AggregateInput,
33
52
  output: AggregateOutput,
34
53
  func: async (_services, data) => {
35
- const outputField = data.outputField ?? 'aggregated';
36
- const unique = data.unique ?? false;
37
- let values = data.items.map((item) => getNestedValue(item, data.field));
38
- if (unique) {
39
- const seen = new Set();
40
- values = values.filter((v) => {
41
- const key = JSON.stringify(v);
42
- if (seen.has(key))
43
- return false;
44
- seen.add(key);
45
- return true;
46
- });
54
+ const collect = (field, unique) => {
55
+ let values = data.items.map((item) => getNestedValue(item, field));
56
+ if (unique) {
57
+ const seen = new Set();
58
+ values = values.filter((v) => {
59
+ const key = JSON.stringify(v);
60
+ if (seen.has(key))
61
+ return false;
62
+ seen.add(key);
63
+ return true;
64
+ });
65
+ }
66
+ return values;
67
+ };
68
+ if (data.includeAllItems) {
69
+ return { item: { [data.outputField ?? 'data']: data.items } };
70
+ }
71
+ if (data.fields && data.fields.length > 0) {
72
+ const item = {};
73
+ for (const f of data.fields) {
74
+ item[f.outputField ?? f.field] = collect(f.field, f.unique ?? false);
75
+ }
76
+ return { item };
47
77
  }
48
- return { item: { [outputField]: values } };
78
+ const outputField = data.outputField ?? 'aggregated';
79
+ return {
80
+ item: { [outputField]: collect(data.field ?? '', data.unique ?? false) },
81
+ };
49
82
  },
50
83
  });
51
84
  //# sourceMappingURL=aggregate.function.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.function.js","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAE7C,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC;SACL,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;SACxC,QAAQ,CAAC,iCAAiC,CAAC;IAC9C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,kDAAkD,CAAC;IAC/D,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACtE,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC;SACJ,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;SAC/B,QAAQ,CAAC,0CAA0C,CAAC;CACxD,CAAC,CAAA;AAIF,MAAM,cAAc,GAAG,CACrB,GAA4B,EAC5B,IAAY,EACH,EAAE;IACX,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,OAAO,GAAY,GAAG,CAAA;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,SAAS,CAAA;QACrE,OAAO,GAAI,OAAmC,CAAC,GAAG,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,OAAO,CAAA;AAChB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,oBAAoB,CAAC;IAC5C,WAAW,EAAE,8DAA8D;IAC3E,IAAI,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrE,KAAK,EAAE,cAAc;IACrB,MAAM,EAAE,eAAe;IACvB,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAA;QACnC,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAEvE,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;YAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;gBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAA;gBAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACb,OAAO,IAAI,CAAA;YACb,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,CAAA;IAC5C,CAAC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"aggregate.function.js","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=aggregate.function.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.function.test.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,42 @@
1
+ import { describe, test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { aggregate } from './aggregate.function.js';
4
+ const call = (data) => aggregate.func({}, data);
5
+ describe('graph:aggregate', () => {
6
+ test('single-field mode collects one field into a list', async () => {
7
+ const out = await call({
8
+ items: [{ name: 'a' }, { name: 'b' }],
9
+ field: 'name',
10
+ outputField: 'names',
11
+ });
12
+ assert.deepEqual(out, { item: { names: ['a', 'b'] } });
13
+ });
14
+ test('multi-field mode collects several fields at once', async () => {
15
+ const out = await call({
16
+ items: [
17
+ { a: 1, b: 2 },
18
+ { a: 3, b: 4 },
19
+ ],
20
+ fields: [{ field: 'a' }, { field: 'b', outputField: 'bs' }],
21
+ });
22
+ assert.deepEqual(out, { item: { a: [1, 3], bs: [2, 4] } });
23
+ });
24
+ test('whole-item mode collects the entire items into one field (n8n aggregateAllItemData)', async () => {
25
+ const items = [
26
+ { id: 1, name: 'a' },
27
+ { id: 2, name: 'b' },
28
+ ];
29
+ const out = await call({
30
+ items,
31
+ includeAllItems: true,
32
+ outputField: 'data',
33
+ });
34
+ assert.deepEqual(out, { item: { data: items } });
35
+ });
36
+ test('whole-item mode defaults the output field to "data"', async () => {
37
+ const items = [{ x: 1 }];
38
+ const out = await call({ items, includeAllItems: true });
39
+ assert.deepEqual(out, { item: { data: items } });
40
+ });
41
+ });
42
+ //# sourceMappingURL=aggregate.function.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregate.function.test.js","sourceRoot":"","sources":["../../../../src/functions/array/aggregate.function.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,MAAM,MAAM,oBAAoB,CAAA;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,MAAM,IAAI,GAAG,CAAC,IAAS,EAAE,EAAE,CAAE,SAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAA;AAE7D,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC/B,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACrB,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;YACrC,KAAK,EAAE,MAAM;YACb,WAAW,EAAE,OAAO;SACrB,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACrB,KAAK,EAAE;gBACL,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;gBACd,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE;aACf;YACD,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;SAC5D,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC5D,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qFAAqF,EAAE,KAAK,IAAI,EAAE;QACrG,MAAM,KAAK,GAAG;YACZ,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;YACpB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE;SACrB,CAAA;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;YACrB,KAAK;YACL,eAAe,EAAE,IAAI;YACrB,WAAW,EAAE,MAAM;SACpB,CAAC,CAAA;QACF,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACrE,MAAM,KAAK,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAA;QACxD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -0,0 +1,32 @@
1
+ import { z } from 'zod';
2
+ export declare const FanoutInput: z.ZodObject<{
3
+ items: z.ZodArray<z.ZodUnknown>;
4
+ child: z.ZodString;
5
+ childInput: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
6
+ mode: z.ZodDefault<z.ZodEnum<{
7
+ parallel: "parallel";
8
+ sequential: "sequential";
9
+ }>>;
10
+ stepPrefix: z.ZodOptional<z.ZodString>;
11
+ }, z.core.$strip>;
12
+ export declare const FanoutOutput: z.ZodArray<z.ZodUnknown>;
13
+ export declare const fanout: import("#pikku").PikkuFunctionConfig<{
14
+ items: unknown[];
15
+ child: string;
16
+ mode: "parallel" | "sequential";
17
+ childInput?: Record<string, unknown> | undefined;
18
+ stepPrefix?: string | undefined;
19
+ }, unknown[], "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
20
+ items: unknown[];
21
+ child: string;
22
+ mode: "parallel" | "sequential";
23
+ childInput?: Record<string, unknown> | undefined;
24
+ stepPrefix?: string | undefined;
25
+ }, unknown[], "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
26
+ items: unknown[];
27
+ child: string;
28
+ mode: "parallel" | "sequential";
29
+ childInput?: Record<string, unknown> | undefined;
30
+ stepPrefix?: string | undefined;
31
+ }, unknown[], "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
32
+ //# sourceMappingURL=fanout.function.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/fanout.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;;;;iBAuBtB,CAAA;AAEF,eAAO,MAAM,YAAY,0BAEwC,CAAA;AA6BjE,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;kFAqCjB,CAAA"}
@@ -0,0 +1,80 @@
1
+ import { z } from 'zod';
2
+ import { pikkuSessionlessFunc } from '#pikku';
3
+ export const FanoutInput = z.object({
4
+ items: z
5
+ .array(z.unknown())
6
+ .describe('The array to fan out over — one child invocation per element'),
7
+ child: z
8
+ .string()
9
+ .describe('RPC name invoked once per item as a durable child step'),
10
+ childInput: z
11
+ .record(z.string(), z.unknown())
12
+ .optional()
13
+ .describe('Per-item input template; `$item` references resolve against the current element'),
14
+ mode: z
15
+ .enum(['parallel', 'sequential'])
16
+ .default('parallel')
17
+ .describe('Run child invocations concurrently or one after another'),
18
+ stepPrefix: z
19
+ .string()
20
+ .optional()
21
+ .describe('Stable prefix for the per-item durable step names (`<prefix>#<index>`); defaults to `child`'),
22
+ });
23
+ export const FanoutOutput = z
24
+ .array(z.unknown())
25
+ .describe('Child results in the same order as the input items');
26
+ function getValueAtPath(obj, path) {
27
+ if (!path)
28
+ return obj;
29
+ let current = obj;
30
+ for (const part of path.split('.')) {
31
+ if (current == null)
32
+ return undefined;
33
+ current = current[part];
34
+ }
35
+ return current;
36
+ }
37
+ function resolveItemTemplate(value, item) {
38
+ if (Array.isArray(value)) {
39
+ return value.map((v) => resolveItemTemplate(v, item));
40
+ }
41
+ if (value && typeof value === 'object') {
42
+ if (value.$ref === '$item') {
43
+ return value.path ? getValueAtPath(item, value.path) : item;
44
+ }
45
+ const out = {};
46
+ for (const [k, v] of Object.entries(value)) {
47
+ out[k] = resolveItemTemplate(v, item);
48
+ }
49
+ return out;
50
+ }
51
+ return value;
52
+ }
53
+ export const fanout = pikkuSessionlessFunc({
54
+ description: 'Fan out over an array, invoking a child RPC once per element and collecting the ordered results',
55
+ node: { displayName: 'Fan Out', category: 'Array', type: 'action' },
56
+ input: FanoutInput,
57
+ output: FanoutOutput,
58
+ func: async (_services, data, { workflow }) => {
59
+ if (!workflow) {
60
+ throw new Error('graph:fanout can only be called from within a workflow');
61
+ }
62
+ if (!Array.isArray(data.items)) {
63
+ throw new Error(`graph:fanout expected an array to fan out over but received ${typeof data.items}`);
64
+ }
65
+ const prefix = data.stepPrefix ?? data.child;
66
+ // `child` is a runtime-resolved RPC name (often another addon's, never in
67
+ // this package's RPCMap), so use the dynamic-name RPC form of do().
68
+ const doRpc = workflow.do;
69
+ const runChild = (item, index) => doRpc(`${prefix}#${index}`, data.child, resolveItemTemplate(data.childInput ?? {}, item));
70
+ if (data.mode === 'sequential') {
71
+ const results = [];
72
+ for (let i = 0; i < data.items.length; i++) {
73
+ results.push(await runChild(data.items[i], i));
74
+ }
75
+ return results;
76
+ }
77
+ return await Promise.all(data.items.map((item, i) => runChild(item, i)));
78
+ },
79
+ });
80
+ //# sourceMappingURL=fanout.function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.function.js","sourceRoot":"","sources":["../../../../src/functions/array/fanout.function.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=fanout.function.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.function.test.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/fanout.function.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,66 @@
1
+ import { describe, test } from 'node:test';
2
+ import assert from 'node:assert/strict';
3
+ import { fanout } from './fanout.function.js';
4
+ const call = (data, wire) => fanout.func({}, data, wire);
5
+ describe('graph:fanout fan out', () => {
6
+ test('invokes the child once per item, binding $item refs per element, ordered results', async () => {
7
+ const calls = [];
8
+ const workflow = {
9
+ do: async (step, rpc, data) => {
10
+ calls.push({ step, rpc, data });
11
+ return { posted: data.url };
12
+ },
13
+ };
14
+ const items = [
15
+ { 'URL VIDEO': 'a.mp4', DESCRIPTION: 'first' },
16
+ { 'URL VIDEO': 'b.mp4', DESCRIPTION: 'second' },
17
+ ];
18
+ const results = await call({
19
+ items,
20
+ child: 'postVideo',
21
+ stepPrefix: 'postAll',
22
+ mode: 'parallel',
23
+ childInput: {
24
+ url: { $ref: '$item', path: 'URL VIDEO' },
25
+ text: { $ref: '$item', path: 'DESCRIPTION' },
26
+ campaign: 'launch',
27
+ },
28
+ }, { workflow });
29
+ assert.deepEqual(results, [{ posted: 'a.mp4' }, { posted: 'b.mp4' }]);
30
+ assert.deepEqual(calls.map((c) => c.step), ['postAll#0', 'postAll#1']);
31
+ assert.deepEqual(calls[0].data, {
32
+ url: 'a.mp4',
33
+ text: 'first',
34
+ campaign: 'launch',
35
+ });
36
+ assert.deepEqual(calls[1].data, {
37
+ url: 'b.mp4',
38
+ text: 'second',
39
+ campaign: 'launch',
40
+ });
41
+ });
42
+ test('sequential mode preserves order and defaults stepPrefix to child', async () => {
43
+ const order = [];
44
+ const workflow = {
45
+ do: async (_step, _rpc, data) => {
46
+ order.push(data.n);
47
+ return data.n * 2;
48
+ },
49
+ };
50
+ const results = await call({
51
+ items: [{ n: 1 }, { n: 2 }, { n: 3 }],
52
+ child: 'double',
53
+ mode: 'sequential',
54
+ childInput: { n: { $ref: '$item', path: 'n' } },
55
+ }, { workflow });
56
+ assert.deepEqual(results, [2, 4, 6]);
57
+ assert.deepEqual(order, [1, 2, 3]);
58
+ });
59
+ test('throws when items is not an array', async () => {
60
+ await assert.rejects(() => call({ items: 'not-an-array', child: 'x' }, { workflow: { do: async () => ({}) } }), /expected an array to fan out over/);
61
+ });
62
+ test('throws when called outside a workflow', async () => {
63
+ await assert.rejects(() => call({ items: [], child: 'x' }, {}), /can only be called from within a workflow/);
64
+ });
65
+ });
66
+ //# sourceMappingURL=fanout.function.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fanout.function.test.js","sourceRoot":"","sources":["../../../../src/functions/array/fanout.function.test.ts"],"names":[],"mappings":"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"}