@frogbotai/piece-data-summarizer 0.29.0 → 0.30.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/dist/actions/calculateAverage.js +13 -6
- package/dist/actions/calculateAverage.js.map +1 -1
- package/dist/actions/calculateSum.js +13 -6
- package/dist/actions/calculateSum.js.map +1 -1
- package/dist/actions/countUniqueValues.js +19 -16
- package/dist/actions/countUniqueValues.js.map +1 -1
- package/dist/actions/findMinMax.js +14 -5
- package/dist/actions/findMinMax.js.map +1 -1
- package/dist/define.js +1 -0
- package/dist/define.js.map +1 -1
- package/dist/index.js +11 -2
- package/dist/index.js.map +1 -1
- package/dist/numbers.js +10 -3
- package/dist/numbers.js.map +1 -1
- package/package.json +4 -4
|
@@ -2,19 +2,26 @@ import { z } from 'zod';
|
|
|
2
2
|
import { defineAction } from '../define.js';
|
|
3
3
|
import { parseNumbers } from '../numbers.js';
|
|
4
4
|
const inputSchema = z.object({
|
|
5
|
-
values: z.array(z.unknown()).min(1).meta({
|
|
5
|
+
values: z.array(z.unknown()).min(1).meta({
|
|
6
|
+
label: 'Values'
|
|
7
|
+
})
|
|
8
|
+
});
|
|
9
|
+
const outputSchema = z.object({
|
|
10
|
+
average: z.number()
|
|
6
11
|
});
|
|
7
|
-
const outputSchema = z.object({ average: z.number() });
|
|
8
12
|
export const calculateAverage = defineAction({
|
|
9
13
|
slug: 'calculateAverage',
|
|
10
14
|
label: 'Calculate Average',
|
|
11
15
|
description: 'Calculate the average of a list of values.',
|
|
12
16
|
input: inputSchema,
|
|
13
17
|
output: outputSchema,
|
|
14
|
-
async run({ input }) {
|
|
18
|
+
async run ({ input }) {
|
|
15
19
|
const values = parseNumbers(input.values);
|
|
16
|
-
const sum = values.reduce((total, value)
|
|
17
|
-
return {
|
|
18
|
-
|
|
20
|
+
const sum = values.reduce((total, value)=>total + value, 0);
|
|
21
|
+
return {
|
|
22
|
+
average: sum / values.length
|
|
23
|
+
};
|
|
24
|
+
}
|
|
19
25
|
});
|
|
26
|
+
|
|
20
27
|
//# sourceMappingURL=calculateAverage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/actions/calculateAverage.ts"],"names":["z","defineAction","parseNumbers","inputSchema","object","values","array","unknown","min","meta","label","outputSchema","average","number","calculateAverage","slug","description","input","output","run","sum","reduce","total","value","length"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,MAAMC,cAAcH,EAAEI,MAAM,CAAC;IAC3BC,QAAQL,EAAEM,KAAK,CAACN,EAAEO,OAAO,IAAIC,GAAG,CAAC,GAAGC,IAAI,CAAC;QAAEC,OAAO;IAAS;AAC7D;AAEA,MAAMC,eAAeX,EAAEI,MAAM,CAAC;IAAEQ,SAASZ,EAAEa,MAAM;AAAG;AAEpD,OAAO,MAAMC,mBAAmBb,aAAa;IAC3Cc,MAAM;IACNL,OAAO;IACPM,aAAa;IACbC,OAAOd;IACPe,QAAQP;IACR,MAAMQ,KAAI,EAAEF,KAAK,EAAE;QACjB,MAAMZ,SAASH,aAAae,MAAMZ,MAAM;QACxC,MAAMe,MAAMf,OAAOgB,MAAM,CAAC,CAACC,OAAOC,QAAUD,QAAQC,OAAO;QAE3D,OAAO;YAAEX,SAASQ,MAAMf,OAAOmB,MAAM;QAAC;IACxC;AACF,GAAG","file":"calculateAverage.js"}
|
|
@@ -2,19 +2,26 @@ import { z } from 'zod';
|
|
|
2
2
|
import { defineAction } from '../define.js';
|
|
3
3
|
import { parseNumbers } from '../numbers.js';
|
|
4
4
|
const inputSchema = z.object({
|
|
5
|
-
values: z.array(z.unknown()).meta({
|
|
5
|
+
values: z.array(z.unknown()).meta({
|
|
6
|
+
label: 'Values'
|
|
7
|
+
})
|
|
8
|
+
});
|
|
9
|
+
const outputSchema = z.object({
|
|
10
|
+
sum: z.number()
|
|
6
11
|
});
|
|
7
|
-
const outputSchema = z.object({ sum: z.number() });
|
|
8
12
|
export const calculateSum = defineAction({
|
|
9
13
|
slug: 'calculateSum',
|
|
10
14
|
label: 'Calculate Sum',
|
|
11
15
|
description: 'Calculate the sum of a list of values.',
|
|
12
16
|
input: inputSchema,
|
|
13
17
|
output: outputSchema,
|
|
14
|
-
async run({ input }) {
|
|
18
|
+
async run ({ input }) {
|
|
15
19
|
const values = parseNumbers(input.values);
|
|
16
|
-
const sum = values.reduce((total, value)
|
|
17
|
-
return {
|
|
18
|
-
|
|
20
|
+
const sum = values.reduce((total, value)=>total + value, 0);
|
|
21
|
+
return {
|
|
22
|
+
sum
|
|
23
|
+
};
|
|
24
|
+
}
|
|
19
25
|
});
|
|
26
|
+
|
|
20
27
|
//# sourceMappingURL=calculateSum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/actions/calculateSum.ts"],"names":["z","defineAction","parseNumbers","inputSchema","object","values","array","unknown","meta","label","outputSchema","sum","number","calculateSum","slug","description","input","output","run","reduce","total","value"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,MAAMC,cAAcH,EAAEI,MAAM,CAAC;IAC3BC,QAAQL,EAAEM,KAAK,CAACN,EAAEO,OAAO,IAAIC,IAAI,CAAC;QAAEC,OAAO;IAAS;AACtD;AAEA,MAAMC,eAAeV,EAAEI,MAAM,CAAC;IAAEO,KAAKX,EAAEY,MAAM;AAAG;AAEhD,OAAO,MAAMC,eAAeZ,aAAa;IACvCa,MAAM;IACNL,OAAO;IACPM,aAAa;IACbC,OAAOb;IACPc,QAAQP;IACR,MAAMQ,KAAI,EAAEF,KAAK,EAAE;QACjB,MAAMX,SAASH,aAAac,MAAMX,MAAM;QACxC,MAAMM,MAAMN,OAAOc,MAAM,CAAC,CAACC,OAAOC,QAAUD,QAAQC,OAAO;QAE3D,OAAO;YAAEV;QAAI;IACf;AACF,GAAG","file":"calculateSum.js"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
2
|
import { defineAction } from '../define.js';
|
|
3
3
|
const inputSchema = z.object({
|
|
4
|
-
values: z.array(z.unknown()).meta({
|
|
4
|
+
values: z.array(z.unknown()).meta({
|
|
5
|
+
label: 'Values'
|
|
6
|
+
}),
|
|
5
7
|
fields: z.array(z.string()).optional().meta({
|
|
6
8
|
label: 'Fields',
|
|
7
|
-
description: 'For object values, count uniqueness using only these fields.'
|
|
8
|
-
})
|
|
9
|
+
description: 'For object values, count uniqueness using only these fields.'
|
|
10
|
+
})
|
|
11
|
+
});
|
|
12
|
+
const outputSchema = z.object({
|
|
13
|
+
numUniques: z.number().int().nonnegative()
|
|
9
14
|
});
|
|
10
|
-
const outputSchema = z.object({ numUniques: z.number().int().nonnegative() });
|
|
11
15
|
function selectFields(value, fields) {
|
|
12
16
|
const selected = {};
|
|
13
|
-
if (typeof value !== 'object' || value === null)
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (fields.includes(key))
|
|
17
|
-
selected[key] = fieldValue;
|
|
17
|
+
if (typeof value !== 'object' || value === null) return selected;
|
|
18
|
+
Object.entries(value).forEach(([key, fieldValue])=>{
|
|
19
|
+
if (fields.includes(key)) selected[key] = fieldValue;
|
|
18
20
|
});
|
|
19
21
|
return selected;
|
|
20
22
|
}
|
|
@@ -24,13 +26,14 @@ export const countUniqueValues = defineAction({
|
|
|
24
26
|
description: 'Count unique values, optionally using selected object fields.',
|
|
25
27
|
input: inputSchema,
|
|
26
28
|
output: outputSchema,
|
|
27
|
-
async run({ input }) {
|
|
29
|
+
async run ({ input }) {
|
|
28
30
|
const fields = input.fields;
|
|
29
|
-
const values = fields?.length
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
31
|
+
const values = fields?.length ? input.values.map((value)=>selectFields(value, fields)) : input.values;
|
|
32
|
+
const numUniques = new Set(values.map((value)=>JSON.stringify(value))).size;
|
|
33
|
+
return {
|
|
34
|
+
numUniques
|
|
35
|
+
};
|
|
36
|
+
}
|
|
35
37
|
});
|
|
38
|
+
|
|
36
39
|
//# sourceMappingURL=countUniqueValues.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/actions/countUniqueValues.ts"],"names":["z","defineAction","inputSchema","object","values","array","unknown","meta","label","fields","string","optional","description","outputSchema","numUniques","number","int","nonnegative","selectFields","value","selected","Object","entries","forEach","key","fieldValue","includes","countUniqueValues","slug","input","output","run","length","map","Set","JSON","stringify","size"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAE5C,MAAMC,cAAcF,EAAEG,MAAM,CAAC;IAC3BC,QAAQJ,EAAEK,KAAK,CAACL,EAAEM,OAAO,IAAIC,IAAI,CAAC;QAAEC,OAAO;IAAS;IACpDC,QAAQT,EAAEK,KAAK,CAACL,EAAEU,MAAM,IAAIC,QAAQ,GAAGJ,IAAI,CAAC;QAC1CC,OAAO;QACPI,aAAa;IACf;AACF;AAEA,MAAMC,eAAeb,EAAEG,MAAM,CAAC;IAAEW,YAAYd,EAAEe,MAAM,GAAGC,GAAG,GAAGC,WAAW;AAAG;AAE3E,SAASC,aAAaC,KAAc,EAAEV,MAAgB;IACpD,MAAMW,WAAoC,CAAC;IAE3C,IAAI,OAAOD,UAAU,YAAYA,UAAU,MAAM,OAAOC;IAExDC,OAAOC,OAAO,CAACH,OAAOI,OAAO,CAAC,CAAC,CAACC,KAAKC,WAAW;QAC9C,IAAIhB,OAAOiB,QAAQ,CAACF,MAAMJ,QAAQ,CAACI,IAAI,GAAGC;IAC5C;IAEA,OAAOL;AACT;AAEA,OAAO,MAAMO,oBAAoB1B,aAAa;IAC5C2B,MAAM;IACNpB,OAAO;IACPI,aAAa;IACbiB,OAAO3B;IACP4B,QAAQjB;IACR,MAAMkB,KAAI,EAAEF,KAAK,EAAE;QACjB,MAAMpB,SAASoB,MAAMpB,MAAM;QAC3B,MAAML,SAASK,QAAQuB,SACnBH,MAAMzB,MAAM,CAAC6B,GAAG,CAAC,CAACd,QAAUD,aAAaC,OAAOV,WAChDoB,MAAMzB,MAAM;QAEhB,MAAMU,aAAa,IAAIoB,IAAI9B,OAAO6B,GAAG,CAAC,CAACd,QAAUgB,KAAKC,SAAS,CAACjB,SAASkB,IAAI;QAE7E,OAAO;YAAEvB;QAAW;IACtB;AACF,GAAG","file":"countUniqueValues.js"}
|
|
@@ -2,18 +2,27 @@ import { z } from 'zod';
|
|
|
2
2
|
import { defineAction } from '../define.js';
|
|
3
3
|
import { parseNumbers } from '../numbers.js';
|
|
4
4
|
const inputSchema = z.object({
|
|
5
|
-
values: z.array(z.unknown()).min(1).meta({
|
|
5
|
+
values: z.array(z.unknown()).min(1).meta({
|
|
6
|
+
label: 'Values'
|
|
7
|
+
})
|
|
8
|
+
});
|
|
9
|
+
const outputSchema = z.object({
|
|
10
|
+
min: z.number(),
|
|
11
|
+
max: z.number()
|
|
6
12
|
});
|
|
7
|
-
const outputSchema = z.object({ min: z.number(), max: z.number() });
|
|
8
13
|
export const findMinMax = defineAction({
|
|
9
14
|
slug: 'findMinMax',
|
|
10
15
|
label: 'Find Minimum and Maximum',
|
|
11
16
|
description: 'Find the smallest and greatest values in a list.',
|
|
12
17
|
input: inputSchema,
|
|
13
18
|
output: outputSchema,
|
|
14
|
-
async run({ input }) {
|
|
19
|
+
async run ({ input }) {
|
|
15
20
|
const values = parseNumbers(input.values);
|
|
16
|
-
return {
|
|
17
|
-
|
|
21
|
+
return {
|
|
22
|
+
min: Math.min(...values),
|
|
23
|
+
max: Math.max(...values)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
18
26
|
});
|
|
27
|
+
|
|
19
28
|
//# sourceMappingURL=findMinMax.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../src/actions/findMinMax.ts"],"names":["z","defineAction","parseNumbers","inputSchema","object","values","array","unknown","min","meta","label","outputSchema","number","max","findMinMax","slug","description","input","output","run","Math"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAM;AAExB,SAASC,YAAY,QAAQ,eAAe;AAC5C,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,MAAMC,cAAcH,EAAEI,MAAM,CAAC;IAC3BC,QAAQL,EAAEM,KAAK,CAACN,EAAEO,OAAO,IAAIC,GAAG,CAAC,GAAGC,IAAI,CAAC;QAAEC,OAAO;IAAS;AAC7D;AAEA,MAAMC,eAAeX,EAAEI,MAAM,CAAC;IAAEI,KAAKR,EAAEY,MAAM;IAAIC,KAAKb,EAAEY,MAAM;AAAG;AAEjE,OAAO,MAAME,aAAab,aAAa;IACrCc,MAAM;IACNL,OAAO;IACPM,aAAa;IACbC,OAAOd;IACPe,QAAQP;IACR,MAAMQ,KAAI,EAAEF,KAAK,EAAE;QACjB,MAAMZ,SAASH,aAAae,MAAMZ,MAAM;QAExC,OAAO;YAAEG,KAAKY,KAAKZ,GAAG,IAAIH;YAASQ,KAAKO,KAAKP,GAAG,IAAIR;QAAQ;IAC9D;AACF,GAAG","file":"findMinMax.js"}
|
package/dist/define.js
CHANGED
package/dist/define.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/define.ts"],"names":["createPieceHelpers","defineAction"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,iBAAiB;AAEpD,OAAO,MAAM,EAAEC,YAAY,EAAE,GAAGD,qBAAqB","file":"define.js"}
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,16 @@ import { findMinMax } from './actions/findMinMax.js';
|
|
|
6
6
|
export const createDataSummarizer = definePiece({
|
|
7
7
|
slug: 'data-summarizer',
|
|
8
8
|
label: 'Data Summarizer',
|
|
9
|
-
admin: {
|
|
10
|
-
|
|
9
|
+
admin: {
|
|
10
|
+
description: 'Summarize numeric and unique values',
|
|
11
|
+
group: 'Core'
|
|
12
|
+
},
|
|
13
|
+
actions: [
|
|
14
|
+
calculateAverage,
|
|
15
|
+
calculateSum,
|
|
16
|
+
countUniqueValues,
|
|
17
|
+
findMinMax
|
|
18
|
+
]
|
|
11
19
|
});
|
|
20
|
+
|
|
12
21
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"names":["definePiece","calculateAverage","calculateSum","countUniqueValues","findMinMax","createDataSummarizer","slug","label","admin","description","group","actions"],"mappings":"AAAA,SAASA,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,gBAAgB,QAAQ,gCAAgC;AACjE,SAASC,YAAY,QAAQ,4BAA4B;AACzD,SAASC,iBAAiB,QAAQ,iCAAiC;AACnE,SAASC,UAAU,QAAQ,0BAA0B;AAErD,OAAO,MAAMC,uBAAuBL,YAAY;IAC9CM,MAAM;IACNC,OAAO;IACPC,OAAO;QAAEC,aAAa;QAAuCC,OAAO;IAAO;IAC3EC,SAAS;QAACV;QAAkBC;QAAcC;QAAmBC;KAAW;AAC1E,GAAG","file":"index.js"}
|
package/dist/numbers.js
CHANGED
|
@@ -1,17 +1,24 @@
|
|
|
1
1
|
export function parseNumbers(values) {
|
|
2
2
|
const numbers = [];
|
|
3
3
|
const errors = [];
|
|
4
|
-
values.forEach((value, location)
|
|
4
|
+
values.forEach((value, location)=>{
|
|
5
5
|
const number = Number(value);
|
|
6
6
|
if (Number.isNaN(number)) {
|
|
7
|
-
errors.push({
|
|
7
|
+
errors.push({
|
|
8
|
+
value,
|
|
9
|
+
location
|
|
10
|
+
});
|
|
8
11
|
return;
|
|
9
12
|
}
|
|
10
13
|
numbers.push(number);
|
|
11
14
|
});
|
|
12
15
|
if (errors.length > 0) {
|
|
13
|
-
throw new Error(JSON.stringify({
|
|
16
|
+
throw new Error(JSON.stringify({
|
|
17
|
+
message: 'The following values are not numbers',
|
|
18
|
+
errors
|
|
19
|
+
}));
|
|
14
20
|
}
|
|
15
21
|
return numbers;
|
|
16
22
|
}
|
|
23
|
+
|
|
17
24
|
//# sourceMappingURL=numbers.js.map
|
package/dist/numbers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/numbers.ts"],"names":["parseNumbers","values","numbers","errors","forEach","value","location","number","Number","isNaN","push","length","Error","JSON","stringify","message"],"mappings":"AAAA,OAAO,SAASA,aAAaC,MAAiB;IAC5C,MAAMC,UAAoB,EAAE;IAC5B,MAAMC,SAAiD,EAAE;IAEzDF,OAAOG,OAAO,CAAC,CAACC,OAAOC;QACrB,MAAMC,SAASC,OAAOH;QAEtB,IAAIG,OAAOC,KAAK,CAACF,SAAS;YACxBJ,OAAOO,IAAI,CAAC;gBAAEL;gBAAOC;YAAS;YAE9B;QACF;QAEAJ,QAAQQ,IAAI,CAACH;IACf;IAEA,IAAIJ,OAAOQ,MAAM,GAAG,GAAG;QACrB,MAAM,IAAIC,MAAMC,KAAKC,SAAS,CAAC;YAAEC,SAAS;YAAwCZ;QAAO;IAC3F;IAEA,OAAOD;AACT","file":"numbers.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@frogbotai/piece-data-summarizer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"description": "data-summarizer tools for FrogBot.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Colby Gilbert",
|
|
@@ -22,17 +22,17 @@
|
|
|
22
22
|
"zod": "^4.3.6"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
|
-
"frogbot": "0.
|
|
25
|
+
"frogbot": "0.30.0"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"typescript": "5.6.2",
|
|
29
|
-
"frogbot": "0.
|
|
29
|
+
"frogbot": "0.30.0"
|
|
30
30
|
},
|
|
31
31
|
"publishConfig": {
|
|
32
32
|
"access": "public"
|
|
33
33
|
},
|
|
34
34
|
"scripts": {
|
|
35
|
-
"build": "
|
|
35
|
+
"build": "node ../../../scripts/build-package.mjs",
|
|
36
36
|
"clean": "rm -rf dist",
|
|
37
37
|
"typecheck": "tsc --noEmit"
|
|
38
38
|
}
|