@baishuyun/ai-feat-utils 1.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.
@@ -0,0 +1,114 @@
1
+ const n = (r) => {
2
+ if ((r == null ? void 0 : r.type) !== "text" || !r.providerMetadata || !r.providerMetadata.raw || !r.providerMetadata.raw.data)
3
+ return null;
4
+ if (typeof r.providerMetadata.raw.data != "string")
5
+ return r.providerMetadata.raw.data;
6
+ let e;
7
+ try {
8
+ e = JSON.parse(r.providerMetadata.raw.data);
9
+ } catch (t) {
10
+ console.error("invalid raw data");
11
+ }
12
+ return e || r.providerMetadata.raw.data;
13
+ }, i = (r) => {
14
+ if ((r == null ? void 0 : r.type) === "error")
15
+ return !0;
16
+ const e = n(r);
17
+ return (e == null ? void 0 : e.type) === "agent-error";
18
+ }, f = (r) => {
19
+ const e = n(r);
20
+ return (e == null ? void 0 : e.type) === "agent-fake-msg";
21
+ }, l = (r) => (r == null ? void 0 : r.type) === "file", g = (r) => {
22
+ const e = n(r);
23
+ return (e == null ? void 0 : e.type) === "query-stream-parsed-info";
24
+ }, d = (r) => {
25
+ const e = n(r);
26
+ if ((e == null ? void 0 : e.type) !== "query-stream-parsed-info")
27
+ return null;
28
+ const t = e.result;
29
+ console.log("query result raw data:", t);
30
+ try {
31
+ return JSON.parse(t);
32
+ } catch (o) {
33
+ return console.error("invalid query result data"), null;
34
+ }
35
+ }, y = (r) => {
36
+ if (!Array.isArray(r))
37
+ return !1;
38
+ for (const e of r)
39
+ if ((e == null ? void 0 : e.type) === "file")
40
+ return !0;
41
+ return !1;
42
+ }, w = (r) => {
43
+ const e = n(r);
44
+ return (e == null ? void 0 : e.type) === "agent-loading";
45
+ }, A = (r) => {
46
+ const e = n(r);
47
+ return (e == null ? void 0 : e.type) !== "agent-loading" ? "" : (e == null ? void 0 : e.label) || "加载中";
48
+ }, m = (r) => {
49
+ if (!i(r))
50
+ return "";
51
+ if (r != null && r.errorText)
52
+ return r.errorText;
53
+ const e = n(r);
54
+ return (e == null ? void 0 : e.error) || "未知错误";
55
+ }, x = (r) => {
56
+ if (r != null && r.errorText)
57
+ return r.errorText;
58
+ const e = n(r);
59
+ return (e == null ? void 0 : e.error) || "未知错误";
60
+ };
61
+ function u(r) {
62
+ return Array.isArray(r) ? r.every((e) => typeof e == "string") : !1;
63
+ }
64
+ function a(r) {
65
+ return Array.isArray(r) ? r.every(
66
+ (e) => typeof e == "object" && e !== null && "label" in e && "value" in e && typeof e.label == "string" && typeof e.value == "string"
67
+ ) : !1;
68
+ }
69
+ const M = (r) => u(r) ? r.join(", ") : a(r) ? r.map((t) => t.value).join(", ") : r, c = /* @__PURE__ */ new Set([
70
+ "password",
71
+ "textarea",
72
+ "datetime",
73
+ "text",
74
+ "radiogroup",
75
+ "radio",
76
+ "combo",
77
+ "combocheck",
78
+ "checkboxgroup",
79
+ "number"
80
+ ]), h = (r) => Array.isArray(r) ? r.filter((e) => e.widget ? c.has(e.widget.type) : !1) : [], v = (r) => (e) => {
81
+ const t = n(e);
82
+ return (t == null ? void 0 : t.type) === r;
83
+ }, I = (r) => (e) => {
84
+ const t = n(e);
85
+ return (t == null ? void 0 : t.type) !== r ? null : (t == null ? void 0 : t.field) || null;
86
+ }, P = (r) => (e) => Array.isArray(e) && e.length > 0 ? e.filter(r) : r(e) ? [e] : [], T = 10, E = (r, e = "image/png") => new Promise((t) => {
87
+ const o = new Image();
88
+ o.crossOrigin = "anonymous", o.onload = () => {
89
+ const s = document.createElement("canvas");
90
+ s.width = o.naturalWidth, s.height = o.naturalHeight, s.getContext("2d").drawImage(o, 0, 0), t(s.toDataURL(e));
91
+ }, o.onerror = () => t(r), o.src = r;
92
+ });
93
+ export {
94
+ T as DATA_COUNT_PER_BATCH,
95
+ A as GetLoadingMsg,
96
+ m as GetPartErrMsg,
97
+ d as GetQueryResult,
98
+ h as GetSafeFormStructure,
99
+ i as IsErrorPart,
100
+ f as IsFakeMsgPart,
101
+ y as IsFileGroupPart,
102
+ l as IsFilePart,
103
+ w as IsLoadingPart,
104
+ g as IsQueryResultPart,
105
+ c as WHITE_LIST_FIELDS_SET,
106
+ P as createFieldPartsExtractor,
107
+ I as createGetFieldJsonInfo,
108
+ v as createPartTypeChecker,
109
+ n as extractTextPartMeta,
110
+ x as getMetaErrorMsg,
111
+ E as imageUrlToBase64,
112
+ M as valueNormalizer
113
+ };
114
+ //# sourceMappingURL=ai-feat-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-feat-utils.js","sources":["../src/text-part.ts","../src/part.ts","../src/value-normalizer.ts","../src/form-structure.ts","../src/field-json.ts","../src/constants.ts","../src/attachment.ts"],"sourcesContent":["export const extractTextPartMeta = (part: any) => {\n if (part?.type !== 'text') {\n return null;\n }\n\n if (!part.providerMetadata) {\n return null;\n }\n\n if (!part.providerMetadata.raw || !part.providerMetadata.raw.data) {\n return null;\n }\n\n if (typeof part.providerMetadata.raw.data !== 'string') {\n return part.providerMetadata.raw.data;\n }\n\n let payload;\n try {\n payload = JSON.parse(part.providerMetadata.raw.data);\n } catch (e) {\n console.error('invalid raw data');\n }\n\n return payload || part.providerMetadata.raw.data;\n};\n","import { IQueryResult } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const IsErrorPart = (part: any): boolean => {\n if (part?.type === 'error') {\n return true;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-error';\n};\n\nexport const IsFakeMsgPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-fake-msg';\n};\n\nexport const IsFilePart = (part: any): boolean => {\n return part?.type === 'file';\n};\n\nexport const IsQueryResultPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'query-stream-parsed-info';\n};\n\nexport const GetQueryResult = (part: any): IQueryResult | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'query-stream-parsed-info') {\n return null;\n }\n\n const result = payload.result;\n console.log('query result raw data:', result);\n try {\n return JSON.parse(result);\n } catch (e) {\n console.error('invalid query result data');\n return null;\n }\n};\n\nexport const IsFileGroupPart = (part: any) => {\n if (!Array.isArray(part)) {\n return false;\n }\n\n // any one is file part\n for (const p of part) {\n if (p?.type === 'file') {\n return true;\n }\n }\n\n return false;\n};\n\nexport const IsLoadingPart = (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === 'agent-loading';\n};\n\nexport const GetLoadingMsg = (part: any): string => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== 'agent-loading') {\n return '';\n }\n\n return payload?.label || '加载中';\n};\n\nexport const GetPartErrMsg = (part: any): string => {\n if (!IsErrorPart(part)) {\n return '';\n }\n\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n\nexport const getMetaErrorMsg = (part: any): string => {\n if (part?.errorText) {\n return part.errorText;\n }\n\n const payload = extractTextPartMeta(part);\n return payload?.error || '未知错误';\n};\n","function isStringArray(value: unknown): value is string[] {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every((item) => typeof item === 'string');\n}\n\nfunction isOptionArray(value: unknown): value is Array<{ label: string; value: string }> {\n if (!Array.isArray(value)) {\n return false;\n }\n\n return value.every(\n (item) =>\n typeof item === 'object' &&\n item !== null &&\n 'label' in item &&\n 'value' in item &&\n typeof (item as any).label === 'string' &&\n typeof (item as any).value === 'string'\n );\n}\n\nexport const valueNormalizer = (value: string | string[]): string => {\n if (isStringArray(value)) {\n return value.join(', ');\n }\n\n if (isOptionArray(value)) {\n const values = value.map((item) => item.value);\n return values.join(', ');\n }\n\n return value;\n};\n","import { FieldType, IField } from '@baishuyun/types';\n\nexport const WHITE_LIST_FIELDS_SET = new Set<FieldType>([\n 'password',\n 'textarea',\n 'datetime',\n 'text',\n 'radiogroup',\n 'radio',\n 'combo',\n 'combocheck',\n 'checkboxgroup',\n 'number',\n]);\n\nexport const GetSafeFormStructure = (formStructure: Array<IField>) => {\n if (!Array.isArray(formStructure)) {\n return [];\n }\n\n return formStructure.filter((f) => {\n if (!f.widget) {\n return false;\n }\n\n return WHITE_LIST_FIELDS_SET.has(f.widget.type);\n });\n};\n","import { IFilledField } from '@baishuyun/types';\nimport { extractTextPartMeta } from './text-part';\n\nexport const createPartTypeChecker =\n (type: string) =>\n (part: any): boolean => {\n const payload = extractTextPartMeta(part);\n return payload?.type === type;\n };\n\nexport const createGetFieldJsonInfo =\n (type: string) =>\n (part: any): IFilledField | null => {\n const payload = extractTextPartMeta(part);\n if (payload?.type !== type) {\n return null;\n }\n return payload?.field || null;\n };\n\nexport const createFieldPartsExtractor =\n (isTarget: (part: any) => boolean) =>\n (part: any): any[] => {\n if (Array.isArray(part) && part.length > 0) return part.filter(isTarget);\n if (isTarget(part)) return [part];\n return [];\n };\n","export const DATA_COUNT_PER_BATCH = 10;\n","export const imageUrlToBase64 = (url: string, mediaType = 'image/png'): Promise<string> =>\n new Promise((resolve) => {\n const img = new Image();\n img.crossOrigin = 'anonymous';\n img.onload = () => {\n const canvas = document.createElement('canvas');\n canvas.width = img.naturalWidth;\n canvas.height = img.naturalHeight;\n canvas.getContext('2d')!.drawImage(img, 0, 0);\n resolve(canvas.toDataURL(mediaType));\n };\n img.onerror = () => resolve(url);\n img.src = url;\n });\n"],"names":["extractTextPartMeta","part","payload","e","IsErrorPart","IsFakeMsgPart","IsFilePart","IsQueryResultPart","GetQueryResult","result","IsFileGroupPart","p","IsLoadingPart","GetLoadingMsg","GetPartErrMsg","getMetaErrorMsg","isStringArray","value","item","isOptionArray","valueNormalizer","WHITE_LIST_FIELDS_SET","GetSafeFormStructure","formStructure","f","createPartTypeChecker","type","createGetFieldJsonInfo","createFieldPartsExtractor","isTarget","DATA_COUNT_PER_BATCH","imageUrlToBase64","url","mediaType","resolve","img","canvas"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const imageUrlToBase64: (url: string, mediaType?: string) => Promise<string>;
2
+ //# sourceMappingURL=attachment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attachment.d.ts","sourceRoot":"","sources":["../src/attachment.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,EAAE,kBAAuB,KAAG,OAAO,CAAC,MAAM,CAalF,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const DATA_COUNT_PER_BATCH = 10;
2
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,KAAK,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { IFilledField } from '@baishuyun/types';
2
+ export declare const createPartTypeChecker: (type: string) => (part: any) => boolean;
3
+ export declare const createGetFieldJsonInfo: (type: string) => (part: any) => IFilledField | null;
4
+ export declare const createFieldPartsExtractor: (isTarget: (part: any) => boolean) => (part: any) => any[];
5
+ //# sourceMappingURL=field-json.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"field-json.d.ts","sourceRoot":"","sources":["../src/field-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,qBAAqB,GAC/B,MAAM,MAAM,MACZ,MAAM,GAAG,KAAG,OAGZ,CAAC;AAEJ,eAAO,MAAM,sBAAsB,GAChC,MAAM,MAAM,MACZ,MAAM,GAAG,KAAG,YAAY,GAAG,IAM3B,CAAC;AAEJ,eAAO,MAAM,yBAAyB,GACnC,UAAU,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,MAChC,MAAM,GAAG,KAAG,GAAG,EAIf,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { FieldType, IField } from '@baishuyun/types';
2
+ export declare const WHITE_LIST_FIELDS_SET: Set<FieldType>;
3
+ export declare const GetSafeFormStructure: (formStructure: Array<IField>) => IField[];
4
+ //# sourceMappingURL=form-structure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-structure.d.ts","sourceRoot":"","sources":["../src/form-structure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAErD,eAAO,MAAM,qBAAqB,gBAWhC,CAAC;AAEH,eAAO,MAAM,oBAAoB,GAAI,eAAe,KAAK,CAAC,MAAM,CAAC,aAYhE,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { extractTextPartMeta } from './text-part';
2
+ export * from './part';
3
+ export { valueNormalizer } from './value-normalizer';
4
+ export { GetSafeFormStructure, WHITE_LIST_FIELDS_SET } from './form-structure';
5
+ export { createPartTypeChecker, createGetFieldJsonInfo, createFieldPartsExtractor, } from './field-json';
6
+ export { DATA_COUNT_PER_BATCH } from './constants';
7
+ export { imageUrlToBase64 } from './attachment';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,OAAO,EACL,qBAAqB,EACrB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
package/dist/part.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { IQueryResult } from '@baishuyun/types';
2
+ export declare const IsErrorPart: (part: any) => boolean;
3
+ export declare const IsFakeMsgPart: (part: any) => boolean;
4
+ export declare const IsFilePart: (part: any) => boolean;
5
+ export declare const IsQueryResultPart: (part: any) => boolean;
6
+ export declare const GetQueryResult: (part: any) => IQueryResult | null;
7
+ export declare const IsFileGroupPart: (part: any) => boolean;
8
+ export declare const IsLoadingPart: (part: any) => boolean;
9
+ export declare const GetLoadingMsg: (part: any) => string;
10
+ export declare const GetPartErrMsg: (part: any) => string;
11
+ export declare const getMetaErrorMsg: (part: any) => string;
12
+ //# sourceMappingURL=part.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"part.d.ts","sourceRoot":"","sources":["../src/part.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,WAAW,GAAI,MAAM,GAAG,KAAG,OAOvC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,OAGzC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,MAAM,GAAG,KAAG,OAEtC,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,GAAG,KAAG,OAG7C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,MAAM,GAAG,KAAG,YAAY,GAAG,IAczD,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,GAAG,YAaxC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,OAGzC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,MAOzC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,GAAG,KAAG,MAWzC,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,GAAG,KAAG,MAO3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const extractTextPartMeta: (part: any) => any;
2
+ //# sourceMappingURL=text-part.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-part.d.ts","sourceRoot":"","sources":["../src/text-part.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB,GAAI,MAAM,GAAG,QAyB5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare const valueNormalizer: (value: string | string[]) => string;
2
+ //# sourceMappingURL=value-normalizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-normalizer.d.ts","sourceRoot":"","sources":["../src/value-normalizer.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,eAAe,GAAI,OAAO,MAAM,GAAG,MAAM,EAAE,KAAG,MAW1D,CAAC"}
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@baishuyun/ai-feat-utils",
3
+ "version": "1.0.1",
4
+ "description": "Shared utility functions for AI feature plugins",
5
+ "type": "module",
6
+ "main": "dist/ai-feat-utils.js",
7
+ "module": "dist/ai-feat-utils.js",
8
+ "types": "dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/ai-feat-utils.js"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist/**/*"
17
+ ],
18
+ "dependencies": {
19
+ "@baishuyun/types": "2.0.2"
20
+ },
21
+ "devDependencies": {
22
+ "rimraf": "^6.1.2",
23
+ "typescript": "^5.5.0",
24
+ "vite": "^5.1.4",
25
+ "vite-plugin-dts": "^4.5.4",
26
+ "@baishuyun/typescript-config": "1.0.2"
27
+ },
28
+ "keywords": [],
29
+ "author": "",
30
+ "license": "ISC",
31
+ "scripts": {
32
+ "build": "vite build",
33
+ "dev": "vite build --watch",
34
+ "clean": "rimraf dist *.tsbuildinfo"
35
+ }
36
+ }