@pikku/addon-graph 0.0.1
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/addon/pikku-addon-types.gen.ts +78 -0
- package/.pikku/addon/pikku-package.gen.ts +9 -0
- package/.pikku/agent/pikku-agent-map.gen.d.ts +16 -0
- package/.pikku/agent/pikku-agent-types.gen.ts +76 -0
- package/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
- package/.pikku/agent/pikku-agent-wirings-meta.gen.ts +7 -0
- package/.pikku/agent/pikku-agent-wirings.gen.ts +3 -0
- package/.pikku/console/pikku-node-types.gen.ts +8 -0
- package/.pikku/console/pikku-nodes-meta.gen.json +278 -0
- package/.pikku/function/pikku-function-types.gen.ts +648 -0
- package/.pikku/function/pikku-functions-meta-verbose.gen.json +582 -0
- package/.pikku/function/pikku-functions-meta.gen.json +434 -0
- package/.pikku/function/pikku-functions-meta.gen.ts +7 -0
- package/.pikku/function/pikku-functions.gen.ts +54 -0
- package/.pikku/pikku-bootstrap.gen.ts +15 -0
- package/.pikku/pikku-services.gen.ts +32 -0
- package/.pikku/pikku-types.gen.ts +21 -0
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +470 -0
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +494 -0
- package/.pikku/schemas/register.gen.ts +195 -0
- package/.pikku/schemas/schemas/AggregateInput.schema.json +1 -0
- package/.pikku/schemas/schemas/AggregateOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/ChunkInput.schema.json +1 -0
- package/.pikku/schemas/schemas/ChunkOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/CoalesceInput.schema.json +1 -0
- package/.pikku/schemas/schemas/CoalesceOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/CryptoInput.schema.json +1 -0
- package/.pikku/schemas/schemas/CryptoOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/DateTimeInput.schema.json +1 -0
- package/.pikku/schemas/schemas/DateTimeOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/EditFieldsInput.schema.json +1 -0
- package/.pikku/schemas/schemas/EditFieldsOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/FindInput.schema.json +1 -0
- package/.pikku/schemas/schemas/FindOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/GroupByInput.schema.json +1 -0
- package/.pikku/schemas/schemas/GroupByOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/JwtDecodeInput.schema.json +1 -0
- package/.pikku/schemas/schemas/JwtDecodeOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/JwtSignInput.schema.json +1 -0
- package/.pikku/schemas/schemas/JwtSignOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/LimitInput.schema.json +1 -0
- package/.pikku/schemas/schemas/LimitOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/MathInput.schema.json +1 -0
- package/.pikku/schemas/schemas/MathOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/MergeInput.schema.json +1 -0
- package/.pikku/schemas/schemas/MergeOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/OmitInput.schema.json +1 -0
- package/.pikku/schemas/schemas/OmitOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/PickInput.schema.json +1 -0
- package/.pikku/schemas/schemas/PickOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/RemoveDuplicatesInput.schema.json +1 -0
- package/.pikku/schemas/schemas/RemoveDuplicatesOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/RenameKeysInput.schema.json +1 -0
- package/.pikku/schemas/schemas/RenameKeysOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/ReverseInput.schema.json +1 -0
- package/.pikku/schemas/schemas/ReverseOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/SortInput.schema.json +1 -0
- package/.pikku/schemas/schemas/SortOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/SplitOutInput.schema.json +1 -0
- package/.pikku/schemas/schemas/SplitOutOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/StringTransformInput.schema.json +1 -0
- package/.pikku/schemas/schemas/StringTransformOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/SummarizeInput.schema.json +1 -0
- package/.pikku/schemas/schemas/SummarizeOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/TypeConvertInput.schema.json +1 -0
- package/.pikku/schemas/schemas/TypeConvertOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/UniqueInput.schema.json +1 -0
- package/.pikku/schemas/schemas/UniqueOutput.schema.json +1 -0
- package/.pikku/secrets/pikku-secret-types.gen.ts +5 -0
- package/.pikku/secrets/pikku-secrets-meta.gen.json +1 -0
- package/.pikku/secrets/pikku-secrets.gen.ts +21 -0
- package/.pikku/trigger/pikku-trigger-types.gen.ts +160 -0
- package/.pikku/variables/pikku-variable-types.gen.ts +5 -0
- package/.pikku/variables/pikku-variables-meta.gen.json +1 -0
- package/.pikku/variables/pikku-variables.gen.ts +21 -0
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +34 -0
- package/.pikku/workflow/pikku-workflow-types.gen.ts +158 -0
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +9 -0
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +3 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +49 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts.map +1 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.js +55 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.js.map +1 -0
- package/dist/.pikku/addon/pikku-addon-types.gen.ts +78 -0
- package/dist/.pikku/addon/pikku-package.gen.d.ts +2 -0
- package/dist/.pikku/addon/pikku-package.gen.d.ts.map +1 -0
- package/dist/.pikku/addon/pikku-package.gen.js +9 -0
- package/dist/.pikku/addon/pikku-package.gen.js.map +1 -0
- package/dist/.pikku/addon/pikku-package.gen.ts +9 -0
- package/dist/.pikku/agent/pikku-agent-map.gen.d.ts +16 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +47 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts.map +1 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js +18 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js.map +1 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.ts +76 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts +2 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts.map +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +7 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js.map +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.ts +7 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +5 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts.map +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.js +5 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.js.map +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.ts +3 -0
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +7 -0
- package/dist/.pikku/console/pikku-node-types.gen.d.ts.map +1 -0
- package/dist/.pikku/console/pikku-node-types.gen.js +2 -0
- package/dist/.pikku/console/pikku-node-types.gen.js.map +1 -0
- package/dist/.pikku/console/pikku-node-types.gen.ts +8 -0
- package/dist/.pikku/console/pikku-nodes-meta.gen.json +278 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +477 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts.map +1 -0
- package/dist/.pikku/function/pikku-function-types.gen.js +298 -0
- package/dist/.pikku/function/pikku-function-types.gen.js.map +1 -0
- package/dist/.pikku/function/pikku-function-types.gen.ts +648 -0
- package/dist/.pikku/function/pikku-functions-meta-verbose.gen.json +582 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.d.ts +2 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.d.ts.map +1 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.js +7 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.js.map +1 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.json +434 -0
- package/dist/.pikku/function/pikku-functions-meta.gen.ts +7 -0
- package/dist/.pikku/function/pikku-functions.gen.d.ts +2 -0
- package/dist/.pikku/function/pikku-functions.gen.d.ts.map +1 -0
- package/dist/.pikku/function/pikku-functions.gen.js +54 -0
- package/dist/.pikku/function/pikku-functions.gen.js.map +1 -0
- package/dist/.pikku/function/pikku-functions.gen.ts +54 -0
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +7 -0
- package/dist/.pikku/pikku-bootstrap.gen.d.ts.map +1 -0
- package/dist/.pikku/pikku-bootstrap.gen.js +17 -0
- package/dist/.pikku/pikku-bootstrap.gen.js.map +1 -0
- package/dist/.pikku/pikku-bootstrap.gen.ts +15 -0
- package/dist/.pikku/pikku-services.gen.d.ts +25 -0
- package/dist/.pikku/pikku-services.gen.d.ts.map +1 -0
- package/dist/.pikku/pikku-services.gen.js +20 -0
- package/dist/.pikku/pikku-services.gen.js.map +1 -0
- package/dist/.pikku/pikku-services.gen.ts +32 -0
- package/dist/.pikku/pikku-types.gen.d.ts +12 -0
- package/dist/.pikku/pikku-types.gen.d.ts.map +1 -0
- package/dist/.pikku/pikku-types.gen.js +17 -0
- package/dist/.pikku/pikku-types.gen.js.map +1 -0
- package/dist/.pikku/pikku-types.gen.ts +21 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +470 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +494 -0
- package/dist/.pikku/schemas/register.gen.d.ts +2 -0
- package/dist/.pikku/schemas/register.gen.d.ts.map +1 -0
- package/dist/.pikku/schemas/register.gen.js +101 -0
- package/dist/.pikku/schemas/register.gen.js.map +1 -0
- package/dist/.pikku/schemas/register.gen.ts +195 -0
- package/dist/.pikku/schemas/schemas/AggregateInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/AggregateOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ChunkInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ChunkOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/CoalesceInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/CoalesceOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/CryptoInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/CryptoOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/DateTimeInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/DateTimeOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/EditFieldsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/EditFieldsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FindInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FindOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GroupByInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/GroupByOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/JwtDecodeInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/JwtDecodeOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/JwtSignInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/JwtSignOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/LimitInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/LimitOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/MathInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/MathOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/MergeInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/MergeOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/OmitInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/OmitOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PickInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PickOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/RemoveDuplicatesInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/RemoveDuplicatesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/RenameKeysInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/RenameKeysOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ReverseInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ReverseOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SortInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SortOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SplitOutInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SplitOutOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/StringTransformInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/StringTransformOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SummarizeInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/SummarizeOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/TypeConvertInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/TypeConvertOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/UniqueInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/UniqueOutput.schema.json +1 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +6 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts.map +1 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +5 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.js.map +1 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.ts +5 -0
- package/dist/.pikku/secrets/pikku-secrets-meta.gen.json +1 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +12 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts.map +1 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.js +11 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.js.map +1 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.ts +21 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +114 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts.map +1 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +34 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js.map +1 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.ts +160 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +6 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts.map +1 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.js +5 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.js.map +1 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.ts +5 -0
- package/dist/.pikku/variables/pikku-variables-meta.gen.json +1 -0
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +12 -0
- package/dist/.pikku/variables/pikku-variables.gen.d.ts.map +1 -0
- package/dist/.pikku/variables/pikku-variables.gen.js +11 -0
- package/dist/.pikku/variables/pikku-variables.gen.js.map +1 -0
- package/dist/.pikku/variables/pikku-variables.gen.ts +21 -0
- package/dist/.pikku/workflow/pikku-workflow-map.gen.d.ts +34 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +81 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +31 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.ts +158 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.d.ts +2 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.d.ts.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +7 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +9 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +5 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +5 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js.map +1 -0
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.ts +3 -0
- package/dist/src/functions/array/aggregate.function.d.ts +33 -0
- package/dist/src/functions/array/aggregate.function.d.ts.map +1 -0
- package/dist/src/functions/array/aggregate.function.js +51 -0
- package/dist/src/functions/array/aggregate.function.js.map +1 -0
- package/dist/src/functions/array/chunk.function.d.ts +25 -0
- package/dist/src/functions/array/chunk.function.d.ts.map +1 -0
- package/dist/src/functions/array/chunk.function.js +23 -0
- package/dist/src/functions/array/chunk.function.js.map +1 -0
- package/dist/src/functions/array/find.function.d.ts +41 -0
- package/dist/src/functions/array/find.function.d.ts.map +1 -0
- package/dist/src/functions/array/find.function.js +56 -0
- package/dist/src/functions/array/find.function.js.map +1 -0
- package/dist/src/functions/array/group-by.function.d.ts +25 -0
- package/dist/src/functions/array/group-by.function.d.ts.map +1 -0
- package/dist/src/functions/array/group-by.function.js +42 -0
- package/dist/src/functions/array/group-by.function.js.map +1 -0
- package/dist/src/functions/array/limit.function.d.ts +33 -0
- package/dist/src/functions/array/limit.function.d.ts.map +1 -0
- package/dist/src/functions/array/limit.function.js +28 -0
- package/dist/src/functions/array/limit.function.js.map +1 -0
- package/dist/src/functions/array/remove-duplicates.function.d.ts +33 -0
- package/dist/src/functions/array/remove-duplicates.function.d.ts.map +1 -0
- package/dist/src/functions/array/remove-duplicates.function.js +62 -0
- package/dist/src/functions/array/remove-duplicates.function.js.map +1 -0
- package/dist/src/functions/array/reverse.function.d.ts +21 -0
- package/dist/src/functions/array/reverse.function.d.ts.map +1 -0
- package/dist/src/functions/array/reverse.function.js +18 -0
- package/dist/src/functions/array/reverse.function.js.map +1 -0
- package/dist/src/functions/array/sort.function.d.ts +40 -0
- package/dist/src/functions/array/sort.function.d.ts.map +1 -0
- package/dist/src/functions/array/sort.function.js +74 -0
- package/dist/src/functions/array/sort.function.js.map +1 -0
- package/dist/src/functions/array/split-out.function.d.ts +29 -0
- package/dist/src/functions/array/split-out.function.d.ts.map +1 -0
- package/dist/src/functions/array/split-out.function.js +74 -0
- package/dist/src/functions/array/split-out.function.js.map +1 -0
- package/dist/src/functions/array/summarize.function.d.ts +54 -0
- package/dist/src/functions/array/summarize.function.d.ts.map +1 -0
- package/dist/src/functions/array/summarize.function.js +106 -0
- package/dist/src/functions/array/summarize.function.js.map +1 -0
- package/dist/src/functions/array/unique.function.d.ts +25 -0
- package/dist/src/functions/array/unique.function.d.ts.map +1 -0
- package/dist/src/functions/array/unique.function.js +44 -0
- package/dist/src/functions/array/unique.function.js.map +1 -0
- package/dist/src/functions/data/coalesce.function.d.ts +33 -0
- package/dist/src/functions/data/coalesce.function.d.ts.map +1 -0
- package/dist/src/functions/data/coalesce.function.js +36 -0
- package/dist/src/functions/data/coalesce.function.js.map +1 -0
- package/dist/src/functions/data/crypto.function.d.ts +59 -0
- package/dist/src/functions/data/crypto.function.d.ts.map +1 -0
- package/dist/src/functions/data/crypto.function.js +93 -0
- package/dist/src/functions/data/crypto.function.js.map +1 -0
- package/dist/src/functions/data/date-time.function.d.ts +71 -0
- package/dist/src/functions/data/date-time.function.d.ts.map +1 -0
- package/dist/src/functions/data/date-time.function.js +118 -0
- package/dist/src/functions/data/date-time.function.js.map +1 -0
- package/dist/src/functions/data/jwt.function.d.ts +63 -0
- package/dist/src/functions/data/jwt.function.d.ts.map +1 -0
- package/dist/src/functions/data/jwt.function.js +49 -0
- package/dist/src/functions/data/jwt.function.js.map +1 -0
- package/dist/src/functions/data/math.function.d.ts +48 -0
- package/dist/src/functions/data/math.function.d.ts.map +1 -0
- package/dist/src/functions/data/math.function.js +91 -0
- package/dist/src/functions/data/math.function.js.map +1 -0
- package/dist/src/functions/data/string-transform.function.d.ts +72 -0
- package/dist/src/functions/data/string-transform.function.d.ts.map +1 -0
- package/dist/src/functions/data/string-transform.function.js +123 -0
- package/dist/src/functions/data/string-transform.function.js.map +1 -0
- package/dist/src/functions/data/type-convert.function.d.ts +43 -0
- package/dist/src/functions/data/type-convert.function.d.ts.map +1 -0
- package/dist/src/functions/data/type-convert.function.js +102 -0
- package/dist/src/functions/data/type-convert.function.js.map +1 -0
- package/dist/src/functions/transform/edit-fields.function.d.ts +49 -0
- package/dist/src/functions/transform/edit-fields.function.d.ts.map +1 -0
- package/dist/src/functions/transform/edit-fields.function.js +95 -0
- package/dist/src/functions/transform/edit-fields.function.js.map +1 -0
- package/dist/src/functions/transform/merge.function.d.ts +25 -0
- package/dist/src/functions/transform/merge.function.d.ts.map +1 -0
- package/dist/src/functions/transform/merge.function.js +52 -0
- package/dist/src/functions/transform/merge.function.js.map +1 -0
- package/dist/src/functions/transform/omit.function.d.ts +25 -0
- package/dist/src/functions/transform/omit.function.d.ts.map +1 -0
- package/dist/src/functions/transform/omit.function.js +28 -0
- package/dist/src/functions/transform/omit.function.js.map +1 -0
- package/dist/src/functions/transform/pick.function.d.ts +25 -0
- package/dist/src/functions/transform/pick.function.d.ts.map +1 -0
- package/dist/src/functions/transform/pick.function.js +52 -0
- package/dist/src/functions/transform/pick.function.js.map +1 -0
- package/dist/src/functions/transform/rename-keys.function.d.ts +41 -0
- package/dist/src/functions/transform/rename-keys.function.d.ts.map +1 -0
- package/dist/src/functions/transform/rename-keys.function.js +42 -0
- package/dist/src/functions/transform/rename-keys.function.js.map +1 -0
- package/dist/src/services.d.ts +2 -0
- package/dist/src/services.d.ts.map +1 -0
- package/dist/src/services.js +5 -0
- package/dist/src/services.js.map +1 -0
- package/package.json +43 -0
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const RemoveDuplicatesInput: z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
4
|
+
fields: z.ZodArray<z.ZodString>;
|
|
5
|
+
keepFirst: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export declare const RemoveDuplicatesOutput: z.ZodObject<{
|
|
8
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
9
|
+
removedCount: z.ZodNumber;
|
|
10
|
+
}, z.core.$strip>;
|
|
11
|
+
export declare const removeDuplicates: import("#pikku").PikkuFunctionConfig<{
|
|
12
|
+
items: Record<string, unknown>[];
|
|
13
|
+
fields: string[];
|
|
14
|
+
keepFirst?: boolean | undefined;
|
|
15
|
+
}, {
|
|
16
|
+
items: Record<string, unknown>[];
|
|
17
|
+
removedCount: number;
|
|
18
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
19
|
+
items: Record<string, unknown>[];
|
|
20
|
+
fields: string[];
|
|
21
|
+
keepFirst?: boolean | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
items: Record<string, unknown>[];
|
|
24
|
+
removedCount: number;
|
|
25
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
26
|
+
items: Record<string, unknown>[];
|
|
27
|
+
fields: string[];
|
|
28
|
+
keepFirst?: boolean | undefined;
|
|
29
|
+
}, {
|
|
30
|
+
items: Record<string, unknown>[];
|
|
31
|
+
removedCount: number;
|
|
32
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
33
|
+
//# sourceMappingURL=remove-duplicates.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-duplicates.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/remove-duplicates.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,qBAAqB;;;;iBAahC,CAAA;AAEF,eAAO,MAAM,sBAAsB;;;iBAKjC,CAAA;AA4BF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;uEAwB3B,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
export const RemoveDuplicatesInput = z.object({
|
|
4
|
+
items: z
|
|
5
|
+
.array(z.record(z.string(), z.unknown()))
|
|
6
|
+
.describe('The array of items to deduplicate'),
|
|
7
|
+
fields: z
|
|
8
|
+
.array(z.string())
|
|
9
|
+
.describe('Fields to use for comparison (if empty, compares entire objects)'),
|
|
10
|
+
keepFirst: z
|
|
11
|
+
.boolean()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Keep the first occurrence (true) or last (false)'),
|
|
14
|
+
});
|
|
15
|
+
export const RemoveDuplicatesOutput = z.object({
|
|
16
|
+
items: z
|
|
17
|
+
.array(z.record(z.string(), z.unknown()))
|
|
18
|
+
.describe('The deduplicated array of items'),
|
|
19
|
+
removedCount: z.number().describe('Number of duplicates removed'),
|
|
20
|
+
});
|
|
21
|
+
const getNestedValue = (obj, path) => {
|
|
22
|
+
const keys = path.split('.');
|
|
23
|
+
let current = obj;
|
|
24
|
+
for (const key of keys) {
|
|
25
|
+
if (current === null || typeof current !== 'object')
|
|
26
|
+
return undefined;
|
|
27
|
+
current = current[key];
|
|
28
|
+
}
|
|
29
|
+
return current;
|
|
30
|
+
};
|
|
31
|
+
const getComparisonKey = (item, fields) => {
|
|
32
|
+
if (fields.length === 0) {
|
|
33
|
+
return JSON.stringify(item);
|
|
34
|
+
}
|
|
35
|
+
const values = fields.map((field) => getNestedValue(item, field));
|
|
36
|
+
return JSON.stringify(values);
|
|
37
|
+
};
|
|
38
|
+
export const removeDuplicates = pikkuSessionlessFunc({
|
|
39
|
+
description: 'Delete items with matching field values',
|
|
40
|
+
node: { displayName: 'Remove Duplicates', category: 'Array', type: 'action' },
|
|
41
|
+
input: RemoveDuplicatesInput,
|
|
42
|
+
output: RemoveDuplicatesOutput,
|
|
43
|
+
func: async (_services, data) => {
|
|
44
|
+
const keepFirst = data.keepFirst ?? true;
|
|
45
|
+
const seen = new Map();
|
|
46
|
+
const originalCount = data.items.length;
|
|
47
|
+
for (const item of data.items) {
|
|
48
|
+
const key = getComparisonKey(item, data.fields);
|
|
49
|
+
if (keepFirst) {
|
|
50
|
+
if (!seen.has(key)) {
|
|
51
|
+
seen.set(key, item);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
seen.set(key, item);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
const items = Array.from(seen.values());
|
|
59
|
+
return { items, removedCount: originalCount - items.length };
|
|
60
|
+
},
|
|
61
|
+
});
|
|
62
|
+
//# sourceMappingURL=remove-duplicates.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-duplicates.function.js","sourceRoot":"","sources":["../../../../src/functions/array/remove-duplicates.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const ReverseInput: z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<z.ZodUnknown>;
|
|
4
|
+
}, z.core.$strip>;
|
|
5
|
+
export declare const ReverseOutput: z.ZodObject<{
|
|
6
|
+
items: z.ZodArray<z.ZodUnknown>;
|
|
7
|
+
}, z.core.$strip>;
|
|
8
|
+
export declare const reverse: import("#pikku").PikkuFunctionConfig<{
|
|
9
|
+
items: unknown[];
|
|
10
|
+
}, {
|
|
11
|
+
items: unknown[];
|
|
12
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
13
|
+
items: unknown[];
|
|
14
|
+
}, {
|
|
15
|
+
items: unknown[];
|
|
16
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
17
|
+
items: unknown[];
|
|
18
|
+
}, {
|
|
19
|
+
items: unknown[];
|
|
20
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
21
|
+
//# sourceMappingURL=reverse.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/reverse.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,YAAY;;iBAEvB,CAAA;AAEF,eAAO,MAAM,aAAa;;iBAExB,CAAA;AAIF,eAAO,MAAM,OAAO;;;;;;;;;;;;uEAQlB,CAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
export const ReverseInput = z.object({
|
|
4
|
+
items: z.array(z.unknown()).describe('The array to reverse'),
|
|
5
|
+
});
|
|
6
|
+
export const ReverseOutput = z.object({
|
|
7
|
+
items: z.array(z.unknown()).describe('The reversed array'),
|
|
8
|
+
});
|
|
9
|
+
export const reverse = pikkuSessionlessFunc({
|
|
10
|
+
description: 'Reverse the order of items in an array',
|
|
11
|
+
node: { displayName: 'Reverse', category: 'Array', type: 'action' },
|
|
12
|
+
input: ReverseInput,
|
|
13
|
+
output: ReverseOutput,
|
|
14
|
+
func: async (_services, data) => {
|
|
15
|
+
return { items: [...data.items].reverse() };
|
|
16
|
+
},
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=reverse.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse.function.js","sourceRoot":"","sources":["../../../../src/functions/array/reverse.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAA;AAE7C,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC;IACnC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,sBAAsB,CAAC;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;CAC3D,CAAC,CAAA;AAIF,MAAM,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAAC;IAC1C,WAAW,EAAE,wCAAwC;IACrD,IAAI,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;IACnE,KAAK,EAAE,YAAY;IACnB,MAAM,EAAE,aAAa;IACrB,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAC9B,OAAO,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAA;IAC7C,CAAC;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SortInput: z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
4
|
+
sortBy: z.ZodArray<z.ZodObject<{
|
|
5
|
+
field: z.ZodString;
|
|
6
|
+
order: z.ZodOptional<z.ZodEnum<{
|
|
7
|
+
asc: "asc";
|
|
8
|
+
desc: "desc";
|
|
9
|
+
}>>;
|
|
10
|
+
}, z.core.$strip>>;
|
|
11
|
+
}, z.core.$strip>;
|
|
12
|
+
export declare const SortOutput: z.ZodObject<{
|
|
13
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
14
|
+
}, z.core.$strip>;
|
|
15
|
+
export declare const sort: import("#pikku").PikkuFunctionConfig<{
|
|
16
|
+
items: Record<string, unknown>[];
|
|
17
|
+
sortBy: {
|
|
18
|
+
field: string;
|
|
19
|
+
order?: "asc" | "desc" | undefined;
|
|
20
|
+
}[];
|
|
21
|
+
}, {
|
|
22
|
+
items: Record<string, unknown>[];
|
|
23
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
24
|
+
items: Record<string, unknown>[];
|
|
25
|
+
sortBy: {
|
|
26
|
+
field: string;
|
|
27
|
+
order?: "asc" | "desc" | undefined;
|
|
28
|
+
}[];
|
|
29
|
+
}, {
|
|
30
|
+
items: Record<string, unknown>[];
|
|
31
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
32
|
+
items: Record<string, unknown>[];
|
|
33
|
+
sortBy: {
|
|
34
|
+
field: string;
|
|
35
|
+
order?: "asc" | "desc" | undefined;
|
|
36
|
+
}[];
|
|
37
|
+
}, {
|
|
38
|
+
items: Record<string, unknown>[];
|
|
39
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
40
|
+
//# sourceMappingURL=sort.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/sort.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAUvB,eAAO,MAAM,SAAS;;;;;;;;;iBAOpB,CAAA;AAEF,eAAO,MAAM,UAAU;;iBAIrB,CAAA;AAoCF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;uEAmBf,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
const SortFieldSchema = z.object({
|
|
4
|
+
field: z
|
|
5
|
+
.string()
|
|
6
|
+
.describe('The field path to sort by (supports dot notation)'),
|
|
7
|
+
order: z.enum(['asc', 'desc']).optional().describe('Sort order'),
|
|
8
|
+
});
|
|
9
|
+
export const SortInput = z.object({
|
|
10
|
+
items: z
|
|
11
|
+
.array(z.record(z.string(), z.unknown()))
|
|
12
|
+
.describe('The array of items to sort'),
|
|
13
|
+
sortBy: z
|
|
14
|
+
.array(SortFieldSchema)
|
|
15
|
+
.describe('Fields to sort by (in order of priority)'),
|
|
16
|
+
});
|
|
17
|
+
export const SortOutput = z.object({
|
|
18
|
+
items: z
|
|
19
|
+
.array(z.record(z.string(), z.unknown()))
|
|
20
|
+
.describe('The sorted array of items'),
|
|
21
|
+
});
|
|
22
|
+
const getNestedValue = (obj, path) => {
|
|
23
|
+
const keys = path.split('.');
|
|
24
|
+
let current = obj;
|
|
25
|
+
for (const key of keys) {
|
|
26
|
+
if (current === null || typeof current !== 'object')
|
|
27
|
+
return undefined;
|
|
28
|
+
current = current[key];
|
|
29
|
+
}
|
|
30
|
+
return current;
|
|
31
|
+
};
|
|
32
|
+
const compare = (a, b, order) => {
|
|
33
|
+
if (a === b)
|
|
34
|
+
return 0;
|
|
35
|
+
if (a === null || a === undefined)
|
|
36
|
+
return order === 'asc' ? 1 : -1;
|
|
37
|
+
if (b === null || b === undefined)
|
|
38
|
+
return order === 'asc' ? -1 : 1;
|
|
39
|
+
let result;
|
|
40
|
+
if (typeof a === 'number' && typeof b === 'number') {
|
|
41
|
+
result = a - b;
|
|
42
|
+
}
|
|
43
|
+
else if (typeof a === 'string' && typeof b === 'string') {
|
|
44
|
+
result = a.localeCompare(b);
|
|
45
|
+
}
|
|
46
|
+
else if (a instanceof Date && b instanceof Date) {
|
|
47
|
+
result = a.getTime() - b.getTime();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
result = String(a).localeCompare(String(b));
|
|
51
|
+
}
|
|
52
|
+
return order === 'desc' ? -result : result;
|
|
53
|
+
};
|
|
54
|
+
export const sort = pikkuSessionlessFunc({
|
|
55
|
+
description: 'Change items order',
|
|
56
|
+
node: { displayName: 'Sort', category: 'Array', type: 'action' },
|
|
57
|
+
input: SortInput,
|
|
58
|
+
output: SortOutput,
|
|
59
|
+
func: async (_services, data) => {
|
|
60
|
+
const sorted = [...data.items].sort((a, b) => {
|
|
61
|
+
for (const sortField of data.sortBy) {
|
|
62
|
+
const order = sortField.order ?? 'asc';
|
|
63
|
+
const aVal = getNestedValue(a, sortField.field);
|
|
64
|
+
const bVal = getNestedValue(b, sortField.field);
|
|
65
|
+
const result = compare(aVal, bVal, order);
|
|
66
|
+
if (result !== 0)
|
|
67
|
+
return result;
|
|
68
|
+
}
|
|
69
|
+
return 0;
|
|
70
|
+
});
|
|
71
|
+
return { items: sorted };
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=sort.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sort.function.js","sourceRoot":"","sources":["../../../../src/functions/array/sort.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SplitOutInput: z.ZodObject<{
|
|
3
|
+
item: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
4
|
+
field: z.ZodString;
|
|
5
|
+
includeParent: z.ZodOptional<z.ZodBoolean>;
|
|
6
|
+
}, z.core.$strip>;
|
|
7
|
+
export declare const SplitOutOutput: z.ZodObject<{
|
|
8
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
9
|
+
}, z.core.$strip>;
|
|
10
|
+
export declare const splitOut: import("#pikku").PikkuFunctionConfig<{
|
|
11
|
+
item: Record<string, unknown>;
|
|
12
|
+
field: string;
|
|
13
|
+
includeParent?: boolean | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
items: Record<string, unknown>[];
|
|
16
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
17
|
+
item: Record<string, unknown>;
|
|
18
|
+
field: string;
|
|
19
|
+
includeParent?: boolean | undefined;
|
|
20
|
+
}, {
|
|
21
|
+
items: Record<string, unknown>[];
|
|
22
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
23
|
+
item: Record<string, unknown>;
|
|
24
|
+
field: string;
|
|
25
|
+
includeParent?: boolean | undefined;
|
|
26
|
+
}, {
|
|
27
|
+
items: Record<string, unknown>[];
|
|
28
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
29
|
+
//# sourceMappingURL=split-out.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-out.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/split-out.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,aAAa;;;;iBAaxB,CAAA;AAEF,eAAO,MAAM,cAAc;;iBAIzB,CAAA;AAuCF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;uEAiCnB,CAAA"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
export const SplitOutInput = z.object({
|
|
4
|
+
item: z
|
|
5
|
+
.record(z.string(), z.unknown())
|
|
6
|
+
.describe('The input object containing a nested array'),
|
|
7
|
+
field: z
|
|
8
|
+
.string()
|
|
9
|
+
.describe('The field path containing the array to split (supports dot notation)'),
|
|
10
|
+
includeParent: z
|
|
11
|
+
.boolean()
|
|
12
|
+
.optional()
|
|
13
|
+
.describe('Include parent object fields in each output item'),
|
|
14
|
+
});
|
|
15
|
+
export const SplitOutOutput = z.object({
|
|
16
|
+
items: z
|
|
17
|
+
.array(z.record(z.string(), z.unknown()))
|
|
18
|
+
.describe('The split array of items'),
|
|
19
|
+
});
|
|
20
|
+
const getNestedValue = (obj, path) => {
|
|
21
|
+
const keys = path.split('.');
|
|
22
|
+
let current = obj;
|
|
23
|
+
for (const key of keys) {
|
|
24
|
+
if (current === null || typeof current !== 'object')
|
|
25
|
+
return undefined;
|
|
26
|
+
current = current[key];
|
|
27
|
+
}
|
|
28
|
+
return current;
|
|
29
|
+
};
|
|
30
|
+
const deleteNestedValue = (obj, path) => {
|
|
31
|
+
const result = JSON.parse(JSON.stringify(obj));
|
|
32
|
+
const keys = path.split('.');
|
|
33
|
+
let current = result;
|
|
34
|
+
for (let i = 0; i < keys.length - 1; i++) {
|
|
35
|
+
const key = keys[i];
|
|
36
|
+
if (!(key in current) ||
|
|
37
|
+
typeof current[key] !== 'object' ||
|
|
38
|
+
current[key] === null) {
|
|
39
|
+
return result;
|
|
40
|
+
}
|
|
41
|
+
current = current[key];
|
|
42
|
+
}
|
|
43
|
+
delete current[keys[keys.length - 1]];
|
|
44
|
+
return result;
|
|
45
|
+
};
|
|
46
|
+
export const splitOut = pikkuSessionlessFunc({
|
|
47
|
+
description: 'Turn a list inside item(s) into separate items',
|
|
48
|
+
node: { displayName: 'Split Out', category: 'Array', type: 'action' },
|
|
49
|
+
input: SplitOutInput,
|
|
50
|
+
output: SplitOutOutput,
|
|
51
|
+
func: async (_services, data) => {
|
|
52
|
+
const includeParent = data.includeParent ?? true;
|
|
53
|
+
const arrayValue = getNestedValue(data.item, data.field);
|
|
54
|
+
if (!Array.isArray(arrayValue)) {
|
|
55
|
+
return { items: [data.item] };
|
|
56
|
+
}
|
|
57
|
+
const parentWithoutArray = includeParent
|
|
58
|
+
? deleteNestedValue(data.item, data.field)
|
|
59
|
+
: {};
|
|
60
|
+
const items = arrayValue.map((element) => {
|
|
61
|
+
if (typeof element === 'object' &&
|
|
62
|
+
element !== null &&
|
|
63
|
+
!Array.isArray(element)) {
|
|
64
|
+
return {
|
|
65
|
+
...parentWithoutArray,
|
|
66
|
+
...element,
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return { ...parentWithoutArray, value: element };
|
|
70
|
+
});
|
|
71
|
+
return { items };
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
//# sourceMappingURL=split-out.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"split-out.function.js","sourceRoot":"","sources":["../../../../src/functions/array/split-out.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const SummarizeInput: z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
4
|
+
aggregations: z.ZodArray<z.ZodObject<{
|
|
5
|
+
field: z.ZodString;
|
|
6
|
+
operation: z.ZodEnum<{
|
|
7
|
+
sum: "sum";
|
|
8
|
+
avg: "avg";
|
|
9
|
+
min: "min";
|
|
10
|
+
max: "max";
|
|
11
|
+
count: "count";
|
|
12
|
+
countDistinct: "countDistinct";
|
|
13
|
+
first: "first";
|
|
14
|
+
last: "last";
|
|
15
|
+
}>;
|
|
16
|
+
outputField: z.ZodString;
|
|
17
|
+
}, z.core.$strip>>;
|
|
18
|
+
groupBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
19
|
+
}, z.core.$strip>;
|
|
20
|
+
export declare const SummarizeOutput: z.ZodObject<{
|
|
21
|
+
items: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
22
|
+
}, z.core.$strip>;
|
|
23
|
+
export declare const summarize: import("#pikku").PikkuFunctionConfig<{
|
|
24
|
+
items: Record<string, unknown>[];
|
|
25
|
+
aggregations: {
|
|
26
|
+
field: string;
|
|
27
|
+
operation: "sum" | "avg" | "min" | "max" | "count" | "countDistinct" | "first" | "last";
|
|
28
|
+
outputField: string;
|
|
29
|
+
}[];
|
|
30
|
+
groupBy?: string[] | undefined;
|
|
31
|
+
}, {
|
|
32
|
+
items: Record<string, unknown>[];
|
|
33
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
34
|
+
items: Record<string, unknown>[];
|
|
35
|
+
aggregations: {
|
|
36
|
+
field: string;
|
|
37
|
+
operation: "sum" | "avg" | "min" | "max" | "count" | "countDistinct" | "first" | "last";
|
|
38
|
+
outputField: string;
|
|
39
|
+
}[];
|
|
40
|
+
groupBy?: string[] | undefined;
|
|
41
|
+
}, {
|
|
42
|
+
items: Record<string, unknown>[];
|
|
43
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
44
|
+
items: Record<string, unknown>[];
|
|
45
|
+
aggregations: {
|
|
46
|
+
field: string;
|
|
47
|
+
operation: "sum" | "avg" | "min" | "max" | "count" | "countDistinct" | "first" | "last";
|
|
48
|
+
outputField: string;
|
|
49
|
+
}[];
|
|
50
|
+
groupBy?: string[] | undefined;
|
|
51
|
+
}, {
|
|
52
|
+
items: Record<string, unknown>[];
|
|
53
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
54
|
+
//# sourceMappingURL=summarize.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarize.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/summarize.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAoBvB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;iBAQzB,CAAA;AAEF,eAAO,MAAM,eAAe;;iBAI1B,CAAA;AA4CF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uEA8CpB,CAAA"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
const AggregationSchema = z.object({
|
|
4
|
+
field: z.string().describe('The field path to aggregate'),
|
|
5
|
+
operation: z
|
|
6
|
+
.enum([
|
|
7
|
+
'sum',
|
|
8
|
+
'avg',
|
|
9
|
+
'min',
|
|
10
|
+
'max',
|
|
11
|
+
'count',
|
|
12
|
+
'countDistinct',
|
|
13
|
+
'first',
|
|
14
|
+
'last',
|
|
15
|
+
])
|
|
16
|
+
.describe('The aggregation operation'),
|
|
17
|
+
outputField: z.string().describe('The name of the output field'),
|
|
18
|
+
});
|
|
19
|
+
export const SummarizeInput = z.object({
|
|
20
|
+
items: z
|
|
21
|
+
.array(z.record(z.string(), z.unknown()))
|
|
22
|
+
.describe('The array of items to summarize'),
|
|
23
|
+
aggregations: z
|
|
24
|
+
.array(AggregationSchema)
|
|
25
|
+
.describe('List of aggregation operations to perform'),
|
|
26
|
+
groupBy: z.array(z.string()).optional().describe('Fields to group by'),
|
|
27
|
+
});
|
|
28
|
+
export const SummarizeOutput = z.object({
|
|
29
|
+
items: z
|
|
30
|
+
.array(z.record(z.string(), z.unknown()))
|
|
31
|
+
.describe('The summarized results'),
|
|
32
|
+
});
|
|
33
|
+
const getNestedValue = (obj, path) => {
|
|
34
|
+
const keys = path.split('.');
|
|
35
|
+
let current = obj;
|
|
36
|
+
for (const key of keys) {
|
|
37
|
+
if (current === null || typeof current !== 'object')
|
|
38
|
+
return undefined;
|
|
39
|
+
current = current[key];
|
|
40
|
+
}
|
|
41
|
+
return current;
|
|
42
|
+
};
|
|
43
|
+
const computeAggregation = (values, operation) => {
|
|
44
|
+
const numericValues = values.filter((v) => typeof v === 'number');
|
|
45
|
+
switch (operation) {
|
|
46
|
+
case 'sum':
|
|
47
|
+
return numericValues.reduce((a, b) => a + b, 0);
|
|
48
|
+
case 'avg':
|
|
49
|
+
return numericValues.length > 0
|
|
50
|
+
? numericValues.reduce((a, b) => a + b, 0) / numericValues.length
|
|
51
|
+
: null;
|
|
52
|
+
case 'min':
|
|
53
|
+
return numericValues.length > 0 ? Math.min(...numericValues) : null;
|
|
54
|
+
case 'max':
|
|
55
|
+
return numericValues.length > 0 ? Math.max(...numericValues) : null;
|
|
56
|
+
case 'count':
|
|
57
|
+
return values.length;
|
|
58
|
+
case 'countDistinct':
|
|
59
|
+
return new Set(values.map((v) => JSON.stringify(v))).size;
|
|
60
|
+
case 'first':
|
|
61
|
+
return values[0] ?? null;
|
|
62
|
+
case 'last':
|
|
63
|
+
return values[values.length - 1] ?? null;
|
|
64
|
+
default:
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
export const summarize = pikkuSessionlessFunc({
|
|
69
|
+
description: 'Sum, count, max, etc. across items',
|
|
70
|
+
node: { displayName: 'Summarize', category: 'Array', type: 'action' },
|
|
71
|
+
input: SummarizeInput,
|
|
72
|
+
output: SummarizeOutput,
|
|
73
|
+
func: async (_services, data) => {
|
|
74
|
+
const groupBy = data.groupBy ?? [];
|
|
75
|
+
if (groupBy.length === 0) {
|
|
76
|
+
const result = {};
|
|
77
|
+
for (const agg of data.aggregations) {
|
|
78
|
+
const values = data.items.map((item) => getNestedValue(item, agg.field));
|
|
79
|
+
result[agg.outputField] = computeAggregation(values, agg.operation);
|
|
80
|
+
}
|
|
81
|
+
return { items: [result] };
|
|
82
|
+
}
|
|
83
|
+
const groups = new Map();
|
|
84
|
+
for (const item of data.items) {
|
|
85
|
+
const groupKey = JSON.stringify(groupBy.map((f) => getNestedValue(item, f)));
|
|
86
|
+
if (!groups.has(groupKey)) {
|
|
87
|
+
groups.set(groupKey, []);
|
|
88
|
+
}
|
|
89
|
+
groups.get(groupKey).push(item);
|
|
90
|
+
}
|
|
91
|
+
const results = [];
|
|
92
|
+
for (const [, groupItems] of groups) {
|
|
93
|
+
const result = {};
|
|
94
|
+
for (const field of groupBy) {
|
|
95
|
+
result[field] = getNestedValue(groupItems[0], field);
|
|
96
|
+
}
|
|
97
|
+
for (const agg of data.aggregations) {
|
|
98
|
+
const values = groupItems.map((item) => getNestedValue(item, agg.field));
|
|
99
|
+
result[agg.outputField] = computeAggregation(values, agg.operation);
|
|
100
|
+
}
|
|
101
|
+
results.push(result);
|
|
102
|
+
}
|
|
103
|
+
return { items: results };
|
|
104
|
+
},
|
|
105
|
+
});
|
|
106
|
+
//# sourceMappingURL=summarize.function.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summarize.function.js","sourceRoot":"","sources":["../../../../src/functions/array/summarize.function.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const UniqueInput: z.ZodObject<{
|
|
3
|
+
items: z.ZodArray<z.ZodUnknown>;
|
|
4
|
+
field: z.ZodOptional<z.ZodString>;
|
|
5
|
+
}, z.core.$strip>;
|
|
6
|
+
export declare const UniqueOutput: z.ZodObject<{
|
|
7
|
+
items: z.ZodArray<z.ZodUnknown>;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
export declare const unique: import("#pikku").PikkuFunctionConfig<{
|
|
10
|
+
items: unknown[];
|
|
11
|
+
field?: string | undefined;
|
|
12
|
+
}, {
|
|
13
|
+
items: unknown[];
|
|
14
|
+
}, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
15
|
+
items: unknown[];
|
|
16
|
+
field?: string | undefined;
|
|
17
|
+
}, {
|
|
18
|
+
items: unknown[];
|
|
19
|
+
}, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
20
|
+
items: unknown[];
|
|
21
|
+
field?: string | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
items: unknown[];
|
|
24
|
+
}, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
25
|
+
//# sourceMappingURL=unique.function.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unique.function.d.ts","sourceRoot":"","sources":["../../../../src/functions/array/unique.function.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,WAAW;;;iBAMtB,CAAA;AAEF,eAAO,MAAM,YAAY;;iBAEvB,CAAA;AAeF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;uEAqBjB,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
3
|
+
export const UniqueInput = z.object({
|
|
4
|
+
items: z.array(z.unknown()).describe('The array to get unique values from'),
|
|
5
|
+
field: z
|
|
6
|
+
.string()
|
|
7
|
+
.optional()
|
|
8
|
+
.describe('For arrays of objects, the field to check uniqueness by'),
|
|
9
|
+
});
|
|
10
|
+
export const UniqueOutput = z.object({
|
|
11
|
+
items: z.array(z.unknown()).describe('Array with only unique values'),
|
|
12
|
+
});
|
|
13
|
+
const getNestedValue = (obj, path) => {
|
|
14
|
+
if (obj === null || typeof obj !== 'object')
|
|
15
|
+
return obj;
|
|
16
|
+
const keys = path.split('.');
|
|
17
|
+
let current = obj;
|
|
18
|
+
for (const key of keys) {
|
|
19
|
+
if (current === null || typeof current !== 'object')
|
|
20
|
+
return undefined;
|
|
21
|
+
current = current[key];
|
|
22
|
+
}
|
|
23
|
+
return current;
|
|
24
|
+
};
|
|
25
|
+
export const unique = pikkuSessionlessFunc({
|
|
26
|
+
description: 'Get unique values from an array',
|
|
27
|
+
node: { displayName: 'Unique', category: 'Array', type: 'action' },
|
|
28
|
+
input: UniqueInput,
|
|
29
|
+
output: UniqueOutput,
|
|
30
|
+
func: async (_services, data) => {
|
|
31
|
+
const seen = new Set();
|
|
32
|
+
const items = [];
|
|
33
|
+
for (const item of data.items) {
|
|
34
|
+
const value = data.field ? getNestedValue(item, data.field) : item;
|
|
35
|
+
const key = JSON.stringify(value);
|
|
36
|
+
if (!seen.has(key)) {
|
|
37
|
+
seen.add(key);
|
|
38
|
+
items.push(item);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return { items };
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=unique.function.js.map
|