@frogbotai/piece-data-summarizer 0.22.0 → 0.23.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 +20 -0
- package/dist/actions/calculateAverage.d.ts +21 -0
- package/dist/actions/calculateAverage.d.ts.map +1 -0
- package/dist/actions/calculateAverage.js +19 -0
- package/dist/actions/calculateAverage.js.map +1 -0
- package/dist/actions/calculateSum.d.ts +21 -0
- package/dist/actions/calculateSum.d.ts.map +1 -0
- package/dist/actions/calculateSum.js +19 -0
- package/dist/actions/calculateSum.js.map +1 -0
- package/dist/actions/countUniqueValues.d.ts +23 -0
- package/dist/actions/countUniqueValues.d.ts.map +1 -0
- package/dist/actions/countUniqueValues.js +35 -0
- package/dist/actions/countUniqueValues.js.map +1 -0
- package/dist/actions/findMinMax.d.ts +23 -0
- package/dist/actions/findMinMax.d.ts.map +1 -0
- package/dist/actions/findMinMax.js +18 -0
- package/dist/actions/findMinMax.js.map +1 -0
- package/dist/index.d.ts +73 -13
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -29
- package/dist/index.js.map +1 -1
- package/dist/numbers.d.ts +2 -0
- package/dist/numbers.d.ts.map +1 -0
- package/dist/numbers.js +17 -0
- package/dist/numbers.js.map +1 -0
- package/package.json +5 -5
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
'
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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,
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../src/numbers.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,YAqB7C"}
|
package/dist/numbers.js
ADDED
|
@@ -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.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.23.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
|
-
"
|
|
22
|
+
"zod": "^4.3.6"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"frogbot": "0.
|
|
25
|
+
"frogbot": "0.23.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"typescript": "5.6.2",
|
|
29
|
-
"frogbot": "0.
|
|
29
|
+
"frogbot": "0.23.0"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|