@frogbotai/piece-data-summarizer 0.22.0 → 0.24.0

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/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # `@frogbotai/piece-data-summarizer`
2
+
3
+ Calculate numeric summaries and count unique values without a configured credential.
4
+
5
+ ## Usage
6
+
7
+ ```ts
8
+ import { createDataSummarizer } from '@frogbotai/piece-data-summarizer';
9
+
10
+ export const dataSummarizer = createDataSummarizer();
11
+ ```
12
+
13
+ ## Actions
14
+
15
+ | Upstream action slug | Previous wrapper export | Native action | Notes |
16
+ | -------------------- | ----------------------- | ------------------- | ------------------------------------------- |
17
+ | `calculateAverage` | `calculateAverage` | `calculateAverage` | Coerces numeric strings to numbers. |
18
+ | `calculateSum` | `calculateSum` | `calculateSum` | Coerces numeric strings to numbers. |
19
+ | `countUniques` | `countUniques` | `countUniqueValues` | Can compare selected fields of each object. |
20
+ | `getMinMax` | `getMinMax` | `findMinMax` | Uses a semantic operation name. |
@@ -0,0 +1,21 @@
1
+ import { type PieceRunArgs } from 'frogbot/pieces';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ values: z.ZodArray<z.ZodUnknown>;
5
+ }, z.core.$strip>;
6
+ export declare const calculateAverage: {
7
+ slug: string;
8
+ label: string;
9
+ description: string;
10
+ input: z.ZodObject<{
11
+ values: z.ZodArray<z.ZodUnknown>;
12
+ }, z.core.$strip>;
13
+ output: z.ZodObject<{
14
+ average: z.ZodNumber;
15
+ }, z.core.$strip>;
16
+ run({ input }: PieceRunArgs<z.output<typeof inputSchema>, object, undefined>): Promise<{
17
+ average: number;
18
+ }>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=calculateAverage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateAverage.d.ts","sourceRoot":"","sources":["../../src/actions/calculateAverage.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAIH,eAAO,MAAM,gBAAgB;;;;;;;;;;mBAMN,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;;;CAMS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { parseNumbers } from '../numbers.js';
3
+ const inputSchema = z.object({
4
+ values: z.array(z.unknown()).min(1).meta({ label: 'Values' }),
5
+ });
6
+ const outputSchema = z.object({ average: z.number() });
7
+ export const calculateAverage = {
8
+ slug: 'calculateAverage',
9
+ label: 'Calculate Average',
10
+ description: 'Calculate the average of a list of values.',
11
+ input: inputSchema,
12
+ output: outputSchema,
13
+ async run({ input }) {
14
+ const values = parseNumbers(input.values);
15
+ const sum = values.reduce((total, value) => total + value, 0);
16
+ return { average: sum / values.length };
17
+ },
18
+ };
19
+ //# sourceMappingURL=calculateAverage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateAverage.js","sourceRoot":"","sources":["../../src/actions/calculateAverage.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEvD,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,kBAAkB;IACxB,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EAAE,4CAA4C;IACzD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAiE;QAChF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAE9D,OAAO,EAAE,OAAO,EAAE,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1C,CAAC;CAC0F,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { type PieceRunArgs } from 'frogbot/pieces';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ values: z.ZodArray<z.ZodUnknown>;
5
+ }, z.core.$strip>;
6
+ export declare const calculateSum: {
7
+ slug: string;
8
+ label: string;
9
+ description: string;
10
+ input: z.ZodObject<{
11
+ values: z.ZodArray<z.ZodUnknown>;
12
+ }, z.core.$strip>;
13
+ output: z.ZodObject<{
14
+ sum: z.ZodNumber;
15
+ }, z.core.$strip>;
16
+ run({ input }: PieceRunArgs<z.output<typeof inputSchema>, object, undefined>): Promise<{
17
+ sum: number;
18
+ }>;
19
+ };
20
+ export {};
21
+ //# sourceMappingURL=calculateSum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSum.d.ts","sourceRoot":"","sources":["../../src/actions/calculateSum.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAIH,eAAO,MAAM,YAAY;;;;;;;;;;mBAMF,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;;;CAMS,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ import { parseNumbers } from '../numbers.js';
3
+ const inputSchema = z.object({
4
+ values: z.array(z.unknown()).meta({ label: 'Values' }),
5
+ });
6
+ const outputSchema = z.object({ sum: z.number() });
7
+ export const calculateSum = {
8
+ slug: 'calculateSum',
9
+ label: 'Calculate Sum',
10
+ description: 'Calculate the sum of a list of values.',
11
+ input: inputSchema,
12
+ output: outputSchema,
13
+ async run({ input }) {
14
+ const values = parseNumbers(input.values);
15
+ const sum = values.reduce((total, value) => total + value, 0);
16
+ return { sum };
17
+ },
18
+ };
19
+ //# sourceMappingURL=calculateSum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculateSum.js","sourceRoot":"","sources":["../../src/actions/calculateSum.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;CACvD,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,wCAAwC;IACrD,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAiE;QAChF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC;QAE9D,OAAO,EAAE,GAAG,EAAE,CAAC;IACjB,CAAC;CAC0F,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type PieceRunArgs } from 'frogbot/pieces';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ values: z.ZodArray<z.ZodUnknown>;
5
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
6
+ }, z.core.$strip>;
7
+ export declare const countUniqueValues: {
8
+ slug: string;
9
+ label: string;
10
+ description: string;
11
+ input: z.ZodObject<{
12
+ values: z.ZodArray<z.ZodUnknown>;
13
+ fields: z.ZodOptional<z.ZodArray<z.ZodString>>;
14
+ }, z.core.$strip>;
15
+ output: z.ZodObject<{
16
+ numUniques: z.ZodNumber;
17
+ }, z.core.$strip>;
18
+ run({ input }: PieceRunArgs<z.output<typeof inputSchema>, object, undefined>): Promise<{
19
+ numUniques: number;
20
+ }>;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=countUniqueValues.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countUniqueValues.d.ts","sourceRoot":"","sources":["../../src/actions/countUniqueValues.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,WAAW;;;iBAMf,CAAC;AAgBH,eAAO,MAAM,iBAAiB;;;;;;;;;;;mBAMP,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;;;CAUS,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { z } from 'zod';
2
+ const inputSchema = z.object({
3
+ values: z.array(z.unknown()).meta({ label: 'Values' }),
4
+ fields: z.array(z.string()).optional().meta({
5
+ label: 'Fields',
6
+ description: 'For object values, count uniqueness using only these fields.',
7
+ }),
8
+ });
9
+ const outputSchema = z.object({ numUniques: z.number().int().nonnegative() });
10
+ function selectFields(value, fields) {
11
+ const selected = {};
12
+ if (typeof value !== 'object' || value === null)
13
+ return selected;
14
+ Object.entries(value).forEach(([key, fieldValue]) => {
15
+ if (fields.includes(key))
16
+ selected[key] = fieldValue;
17
+ });
18
+ return selected;
19
+ }
20
+ export const countUniqueValues = {
21
+ slug: 'countUniqueValues',
22
+ label: 'Count Unique Values',
23
+ description: 'Count unique values, optionally using selected object fields.',
24
+ input: inputSchema,
25
+ output: outputSchema,
26
+ async run({ input }) {
27
+ const fields = input.fields;
28
+ const values = fields?.length
29
+ ? input.values.map((value) => selectFields(value, fields))
30
+ : input.values;
31
+ const numUniques = new Set(values.map((value) => JSON.stringify(value))).size;
32
+ return { numUniques };
33
+ },
34
+ };
35
+ //# sourceMappingURL=countUniqueValues.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"countUniqueValues.js","sourceRoot":"","sources":["../../src/actions/countUniqueValues.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;IACtD,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC;QAC1C,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE,8DAA8D;KAC5E,CAAC;CACH,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;AAE9E,SAAS,YAAY,CAAC,KAAc,EAAE,MAAgB;IACpD,MAAM,QAAQ,GAA4B,EAAE,CAAC;IAE7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,QAAQ,CAAC;IAEjE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,UAAU,CAAC,EAAE,EAAE;QAClD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE,mBAAmB;IACzB,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EAAE,+DAA+D;IAC5E,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAiE;QAChF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM;YAC3B,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC;QAEjB,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAE9E,OAAO,EAAE,UAAU,EAAE,CAAC;IACxB,CAAC;CAC0F,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { type PieceRunArgs } from 'frogbot/pieces';
2
+ import { z } from 'zod';
3
+ declare const inputSchema: z.ZodObject<{
4
+ values: z.ZodArray<z.ZodUnknown>;
5
+ }, z.core.$strip>;
6
+ export declare const findMinMax: {
7
+ slug: string;
8
+ label: string;
9
+ description: string;
10
+ input: z.ZodObject<{
11
+ values: z.ZodArray<z.ZodUnknown>;
12
+ }, z.core.$strip>;
13
+ output: z.ZodObject<{
14
+ min: z.ZodNumber;
15
+ max: z.ZodNumber;
16
+ }, z.core.$strip>;
17
+ run({ input }: PieceRunArgs<z.output<typeof inputSchema>, object, undefined>): Promise<{
18
+ min: number;
19
+ max: number;
20
+ }>;
21
+ };
22
+ export {};
23
+ //# sourceMappingURL=findMinMax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findMinMax.d.ts","sourceRoot":"","sources":["../../src/actions/findMinMax.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC/E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,QAAA,MAAM,WAAW;;iBAEf,CAAC;AAIH,eAAO,MAAM,UAAU;;;;;;;;;;;mBAMA,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC;;;;CAKS,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { parseNumbers } from '../numbers.js';
3
+ const inputSchema = z.object({
4
+ values: z.array(z.unknown()).min(1).meta({ label: 'Values' }),
5
+ });
6
+ const outputSchema = z.object({ min: z.number(), max: z.number() });
7
+ export const findMinMax = {
8
+ slug: 'findMinMax',
9
+ label: 'Find Minimum and Maximum',
10
+ description: 'Find the smallest and greatest values in a list.',
11
+ input: inputSchema,
12
+ output: outputSchema,
13
+ async run({ input }) {
14
+ const values = parseNumbers(input.values);
15
+ return { min: Math.min(...values), max: Math.max(...values) };
16
+ },
17
+ };
18
+ //# sourceMappingURL=findMinMax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findMinMax.js","sourceRoot":"","sources":["../../src/actions/findMinMax.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;CAC9D,CAAC,CAAC;AAEH,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,0BAA0B;IACjC,WAAW,EAAE,kDAAkD;IAC/D,KAAK,EAAE,WAAW;IAClB,MAAM,EAAE,YAAY;IACpB,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAiE;QAChF,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE1C,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,EAAE,CAAC;IAChE,CAAC;CAC0F,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,74 @@
1
- import { type PieceFactoryConfig } from 'frogbot/pieces';
2
- export declare const dataSummarizerActions: readonly ["calculateAverage", "calculateSum", "countUniques", "getMinMax"];
3
- export declare const dataSummarizerScopes: readonly [];
4
- export declare function createDataSummarizer(config?: PieceFactoryConfig): import("frogbot/pieces").Piece & {
5
- /** Calculate Average: Calculates the average of a list of values. */
6
- calculateAverage: import("node_modules/frogbot/dist/tools/types").AnyTool;
7
- /** Calculate Sum: Calculates the sum of a list of values. */
8
- calculateSum: import("node_modules/frogbot/dist/tools/types").AnyTool;
9
- /** Count Uniques: Counts the number of unique values for multiple fields */
10
- countUniques: import("node_modules/frogbot/dist/tools/types").AnyTool;
11
- /** Find Min and Max: Get the smallest and greatest values from a list of numeric values. */
12
- getMinMax: import("node_modules/frogbot/dist/tools/types").AnyTool;
13
- };
1
+ export declare const createDataSummarizer: import("frogbot/pieces").PieceFactory<{
2
+ readonly slug: "data-summarizer";
3
+ readonly label: "Data Summarizer";
4
+ readonly admin: {
5
+ readonly description: "Summarize numeric and unique values";
6
+ readonly group: "Core";
7
+ };
8
+ readonly actions: readonly [{
9
+ slug: string;
10
+ label: string;
11
+ description: string;
12
+ input: import("zod").ZodObject<{
13
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
14
+ }, import("zod/v4/core").$strip>;
15
+ output: import("zod").ZodObject<{
16
+ average: import("zod").ZodNumber;
17
+ }, import("zod/v4/core").$strip>;
18
+ run({ input }: import("frogbot/pieces").PieceRunArgs<import("zod").infer<import("zod").ZodObject<{
19
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
20
+ }, import("zod/v4/core").$strip>>, object, undefined>): Promise<{
21
+ average: number;
22
+ }>;
23
+ }, {
24
+ slug: string;
25
+ label: string;
26
+ description: string;
27
+ input: import("zod").ZodObject<{
28
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
29
+ }, import("zod/v4/core").$strip>;
30
+ output: import("zod").ZodObject<{
31
+ sum: import("zod").ZodNumber;
32
+ }, import("zod/v4/core").$strip>;
33
+ run({ input }: import("frogbot/pieces").PieceRunArgs<import("zod").infer<import("zod").ZodObject<{
34
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
35
+ }, import("zod/v4/core").$strip>>, object, undefined>): Promise<{
36
+ sum: number;
37
+ }>;
38
+ }, {
39
+ slug: string;
40
+ label: string;
41
+ description: string;
42
+ input: import("zod").ZodObject<{
43
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
44
+ fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
45
+ }, import("zod/v4/core").$strip>;
46
+ output: import("zod").ZodObject<{
47
+ numUniques: import("zod").ZodNumber;
48
+ }, import("zod/v4/core").$strip>;
49
+ run({ input }: import("frogbot/pieces").PieceRunArgs<import("zod").infer<import("zod").ZodObject<{
50
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
51
+ fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString>>;
52
+ }, import("zod/v4/core").$strip>>, object, undefined>): Promise<{
53
+ numUniques: number;
54
+ }>;
55
+ }, {
56
+ slug: string;
57
+ label: string;
58
+ description: string;
59
+ input: import("zod").ZodObject<{
60
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
61
+ }, import("zod/v4/core").$strip>;
62
+ output: import("zod").ZodObject<{
63
+ min: import("zod").ZodNumber;
64
+ max: import("zod").ZodNumber;
65
+ }, import("zod/v4/core").$strip>;
66
+ run({ input }: import("frogbot/pieces").PieceRunArgs<import("zod").infer<import("zod").ZodObject<{
67
+ values: import("zod").ZodArray<import("zod").ZodUnknown>;
68
+ }, import("zod/v4/core").$strip>>, object, undefined>): Promise<{
69
+ min: number;
70
+ max: number;
71
+ }>;
72
+ }];
73
+ }>;
14
74
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAElF,eAAO,MAAM,qBAAqB,4EAKxB,CAAC;AACX,eAAO,MAAM,oBAAoB,aAAc,CAAC;AAEhD,wBAAgB,oBAAoB,CAAC,MAAM,CAAC,EAAE,kBAAkB;IAU5D,qEAAqE;;IAErE,6DAA6D;;IAE7D,4EAA4E;;IAE5E,4FAA4F;;EAG/F"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAK/B,CAAC"}
package/dist/index.js CHANGED
@@ -1,30 +1,12 @@
1
- import * as module from '@activepieces/piece-data-summarizer';
2
- import { createActivepiecesPiece } from 'frogbot/pieces';
3
- export const dataSummarizerActions = [
4
- 'calculateAverage',
5
- 'calculateSum',
6
- 'countUniques',
7
- 'getMinMax',
8
- ];
9
- export const dataSummarizerScopes = [];
10
- export function createDataSummarizer(config) {
11
- const piece = createActivepiecesPiece({
12
- module: module,
13
- service: 'data_summarizer',
14
- credentialType: 'none',
15
- defaultActions: dataSummarizerActions,
16
- scopes: dataSummarizerScopes,
17
- config,
18
- });
19
- return Object.assign(piece, {
20
- /** Calculate Average: Calculates the average of a list of values. */
21
- calculateAverage: piece.tool('calculateAverage'),
22
- /** Calculate Sum: Calculates the sum of a list of values. */
23
- calculateSum: piece.tool('calculateSum'),
24
- /** Count Uniques: Counts the number of unique values for multiple fields */
25
- countUniques: piece.tool('countUniques'),
26
- /** Find Min and Max: Get the smallest and greatest values from a list of numeric values. */
27
- getMinMax: piece.tool('getMinMax'),
28
- });
29
- }
1
+ import { definePiece } from 'frogbot/pieces';
2
+ import { calculateAverage } from './actions/calculateAverage.js';
3
+ import { calculateSum } from './actions/calculateSum.js';
4
+ import { countUniqueValues } from './actions/countUniqueValues.js';
5
+ import { findMinMax } from './actions/findMinMax.js';
6
+ export const createDataSummarizer = definePiece({
7
+ slug: 'data-summarizer',
8
+ label: 'Data Summarizer',
9
+ admin: { description: 'Summarize numeric and unique values', group: 'Core' },
10
+ actions: [calculateAverage, calculateSum, countUniqueValues, findMinMax],
11
+ });
30
12
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,qCAAqC,CAAC;AAC9D,OAAO,EAAE,uBAAuB,EAA2B,MAAM,gBAAgB,CAAC;AAElF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,kBAAkB;IAClB,cAAc;IACd,cAAc;IACd,WAAW;CACH,CAAC;AACX,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAW,CAAC;AAEhD,MAAM,UAAU,oBAAoB,CAAC,MAA2B;IAC9D,MAAM,KAAK,GAAG,uBAAuB,CAAC;QACpC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,iBAAiB;QAC1B,cAAc,EAAE,MAAM;QACtB,cAAc,EAAE,qBAAqB;QACrC,MAAM,EAAE,oBAAoB;QAC5B,MAAM;KACP,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE;QAC1B,qEAAqE;QACrE,gBAAgB,EAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAChD,6DAA6D;QAC7D,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QACxC,4EAA4E;QAC5E,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC;QACxC,4FAA4F;QAC5F,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;KACnC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,CAAC,MAAM,oBAAoB,GAAG,WAAW,CAAC;IAC9C,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,iBAAiB;IACxB,KAAK,EAAE,EAAE,WAAW,EAAE,qCAAqC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC5E,OAAO,EAAE,CAAC,gBAAgB,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,CAAC;CACzE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function parseNumbers(values: unknown[]): number[];
2
+ //# sourceMappingURL=numbers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../src/numbers.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,YAqB7C"}
@@ -0,0 +1,17 @@
1
+ export function parseNumbers(values) {
2
+ const numbers = [];
3
+ const errors = [];
4
+ values.forEach((value, location) => {
5
+ const number = Number(value);
6
+ if (Number.isNaN(number)) {
7
+ errors.push({ value, location });
8
+ return;
9
+ }
10
+ numbers.push(number);
11
+ });
12
+ if (errors.length > 0) {
13
+ throw new Error(JSON.stringify({ message: 'The following values are not numbers', errors }));
14
+ }
15
+ return numbers;
16
+ }
17
+ //# sourceMappingURL=numbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"numbers.js","sourceRoot":"","sources":["../src/numbers.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAC,MAAiB;IAC5C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,MAAM,GAA2C,EAAE,CAAC;IAE1D,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;QAE7B,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YAEjC,OAAO;QACT,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC/F,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@frogbotai/piece-data-summarizer",
3
- "version": "0.22.0",
4
- "description": "Data summarization tools for FrogBot.",
3
+ "version": "0.24.0",
4
+ "description": "data-summarizer tools for FrogBot.",
5
5
  "license": "MIT",
6
6
  "author": "Colby Gilbert",
7
7
  "type": "module",
@@ -19,14 +19,14 @@
19
19
  ],
20
20
  "sideEffects": false,
21
21
  "dependencies": {
22
- "@activepieces/piece-data-summarizer": "0.0.11"
22
+ "zod": "^4.3.6"
23
23
  },
24
24
  "peerDependencies": {
25
- "frogbot": "0.22.0"
25
+ "frogbot": "0.24.0"
26
26
  },
27
27
  "devDependencies": {
28
28
  "typescript": "5.6.2",
29
- "frogbot": "0.22.0"
29
+ "frogbot": "0.24.0"
30
30
  },
31
31
  "publishConfig": {
32
32
  "access": "public"