@pikku/addon-graph 0.12.4 → 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 +15 -44
  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 +93 -57
  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 +3 -3
@@ -1,11 +1,21 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.46
2
+ * This file was generated by @pikku/cli@0.12.83
3
3
  */
4
4
  import { TypedVariablesService as CoreTypedVariablesService } from '@pikku/core/services';
5
- const VARIABLES_META = {};
5
+ import variablesMeta from './pikku-variables-meta.gen.json' with { type: 'json' };
6
+ /**
7
+ * Every variable declared in this package.
8
+ *
9
+ * Read from the metadata sidecar rather than inlined, so that the import above
10
+ * forces tsc to emit the .json alongside this file. An addon publishes only its
11
+ * compiled output, and a host reads that .json to discover the addon's declared
12
+ * variables — an uncopied sidecar leaves them invisible to the host.
13
+ */
14
+ export const VARIABLES_META = variablesMeta;
15
+ const TYPED_VARIABLES_META = {};
6
16
  export class TypedVariablesService extends CoreTypedVariablesService {
7
17
  constructor(variables) {
8
- super(variables, VARIABLES_META);
18
+ super(variables, TYPED_VARIABLES_META);
9
19
  }
10
20
  }
11
21
  //# sourceMappingURL=pikku-variables.gen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pikku-variables.gen.js","sourceRoot":"","sources":["../../../.pikku/variables/pikku-variables.gen.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAqB,MAAM,sBAAsB,CAAA;AAS5G,MAAM,cAAc,GAAiC,EAEpD,CAAA;AAED,MAAM,OAAO,qBAAsB,SAAQ,yBAAuC;IAChF,YAAY,SAA2B;QACrC,KAAK,CAAC,SAAS,EAAE,cAAc,CAAC,CAAA;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"pikku-variables.gen.js","sourceRoot":"","sources":["../../../.pikku/variables/pikku-variables.gen.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,qBAAqB,IAAI,yBAAyB,EAAqB,MAAM,sBAAsB,CAAA;AAG5G,OAAO,aAAa,MAAM,iCAAiC,CAAC,OAAO,IAAI,EAAE,MAAM,EAAE,CAAA;AAEjF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GACzB,aAAwC,CAAA;AAQ1C,MAAM,oBAAoB,GAAiC,EAE1D,CAAA;AAED,MAAM,OAAO,qBAAsB,SAAQ,yBAAuC;IAChF,YAAY,SAA2B;QACrC,KAAK,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAA;IACxC,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.46
2
+ * This file was generated by @pikku/cli@0.12.83
3
3
  */
4
4
  /**
5
5
  * Workflow type map with input/output types for each workflow
@@ -1,25 +1,28 @@
1
1
  /**
2
- * This file was generated by @pikku/cli@0.12.46
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.46
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.46
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.46
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.46
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":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAE7C,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACnE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;CACtE,CAAC,CAAA;AAEF,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;SACL,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,2DAA2D,CAAC;IACxE,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;IACrE,MAAM,EAAE,CAAC;SACN,KAAK,CAAC,mBAAmB,CAAC;SAC1B,QAAQ,EAAE;SACV,QAAQ,CAAC,qDAAqD,CAAC;IAClE,eAAe,EAAE,CAAC;SACf,OAAO,EAAE;SACT,QAAQ,EAAE;SACV,QAAQ,CACP,8EAA8E,CAC/E;CACJ,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,OAAO,GAAG,CAAC,KAAa,EAAE,MAAe,EAAa,EAAE;YAC5D,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;YAClE,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;gBAC9B,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;oBAC7B,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO,KAAK,CAAA;oBAC/B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;oBACb,OAAO,IAAI,CAAA;gBACb,CAAC,CAAC,CAAA;YACJ,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAA;QAED,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,CAAA;QAC/D,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAA4B,EAAE,CAAA;YACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAC5B,IAAI,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAA;YACtE,CAAC;YACD,OAAO,EAAE,IAAI,EAAE,CAAA;QACjB,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,YAAY,CAAA;QACpD,OAAO;YACL,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;SACzE,CAAA;IACH,CAAC;CACF,CAAC,CAAA"}
@@ -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":""}