@helloxiaohu/plugin-mineru 0.1.3 → 0.1.5

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.
@@ -175,6 +175,31 @@ export declare class MinerUToolsetStrategy implements IToolsetStrategy<MinerUToo
175
175
  };
176
176
  };
177
177
  };
178
+ returnJson: {
179
+ type: string;
180
+ title: {
181
+ en_US: string;
182
+ zh_Hans: string;
183
+ };
184
+ description: {
185
+ en_US: string;
186
+ zh_Hans: string;
187
+ };
188
+ enum: string[];
189
+ default: string;
190
+ 'x-ui': {
191
+ enumLabels: {
192
+ true: {
193
+ en_US: string;
194
+ zh_Hans: string;
195
+ };
196
+ false: {
197
+ en_US: string;
198
+ zh_Hans: string;
199
+ };
200
+ };
201
+ };
202
+ };
178
203
  extraFormats: {
179
204
  type: string;
180
205
  title: {
@@ -1 +1 @@
1
- {"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;IA6M/E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IA9M/B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4Ca,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAoJjC;IAEF,QAAQ,CAAC,WAAW,yBAMlB;gBAIiB,aAAa,EAAE,aAAa,EAE5B,YAAY,EAAE,yBAAyB;IAG1D,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAwBlD,WAAW;;;;;;;;;;;;;;;;;;;;CAiBZ"}
1
+ {"version":3,"file":"mineru-toolset.strategy.d.ts","sourceRoot":"","sources":["../../src/lib/mineru-toolset.strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EACL,cAAc,EACd,gBAAgB,EAEhB,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvE,OAAO,EAAiB,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AASzE,qBAEa,qBAAsB,YAAW,gBAAgB,CAAC,mBAAmB,CAAC;IAsO/E,OAAO,CAAC,QAAQ,CAAC,aAAa;IAE9B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvO/B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4BA4Ca,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MA6KjC;IAEF,QAAQ,CAAC,WAAW,yBAMlB;gBAIiB,aAAa,EAAE,aAAa,EAE5B,YAAY,EAAE,yBAAyB;IAG1D,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAWvE,MAAM,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC,cAAc,CAAC;IAyBlD,WAAW;;;;;;;;;;;;;;;;;;;;CAkBZ"}
@@ -187,6 +187,31 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
187
187
  },
188
188
  },
189
189
  },
190
+ returnJson: {
191
+ type: 'string',
192
+ title: {
193
+ en_US: 'Return JSON',
194
+ zh_Hans: '返回完整 JSON',
195
+ },
196
+ description: {
197
+ en_US: 'Return full JSON payload instead of plain text.',
198
+ zh_Hans: '返回完整 JSON 结构,而非纯文本。',
199
+ },
200
+ enum: ['true', 'false'],
201
+ default: 'false',
202
+ 'x-ui': {
203
+ enumLabels: {
204
+ 'true': {
205
+ en_US: 'Enabled',
206
+ zh_Hans: '启用',
207
+ },
208
+ 'false': {
209
+ en_US: 'Disabled',
210
+ zh_Hans: '禁用',
211
+ },
212
+ },
213
+ },
214
+ },
190
215
  extraFormats: {
191
216
  type: 'string',
192
217
  title: {
@@ -233,6 +258,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
233
258
  enableTable: creds.enableTable,
234
259
  language: creds.language,
235
260
  modelVersion: creds.modelVersion,
261
+ returnJson: creds.returnJson,
236
262
  configService: this.configService,
237
263
  resultParser: this.resultParser,
238
264
  };
@@ -246,6 +272,7 @@ let MinerUToolsetStrategy = class MinerUToolsetStrategy {
246
272
  enableTable: true,
247
273
  language: 'ch',
248
274
  modelVersion: 'pipeline',
275
+ returnJson: false,
249
276
  }),
250
277
  ];
251
278
  }
@@ -9,6 +9,7 @@ export interface MinerUToolDefaults {
9
9
  enableTable?: boolean | string;
10
10
  language?: 'en' | 'ch';
11
11
  modelVersion?: 'pipeline' | 'vlm';
12
+ returnJson?: boolean | string;
12
13
  }
13
14
  export declare function buildMinerUTool(configService: ConfigService, resultParser: MinerUResultParserService, options?: MinerUIntegrationOptions, fileSystem?: XpFileSystem, defaults?: MinerUToolDefaults): import("@langchain/core/tools").DynamicStructuredTool<z.ZodObject<{
14
15
  doc_url: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;CACnC;AAiBD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,yBAAyB,EACvC,OAAO,CAAC,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;MAsM9B"}
1
+ {"version":3,"file":"mineru.tool.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.tool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAE/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAEvE,OAAO,EAAU,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAE9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAiBD,wBAAgB,eAAe,CAC7B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,yBAAyB,EACvC,OAAO,CAAC,EAAE,wBAAwB,EAClC,UAAU,CAAC,EAAE,YAAY,EACzB,QAAQ,CAAC,EAAE,kBAAkB;;;;;;;;;;;;;;;;;;;MAoN9B"}
@@ -48,6 +48,7 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
48
48
  enableTable: defaults?.enableTable,
49
49
  language: defaults?.language,
50
50
  modelVersion: defaults?.modelVersion,
51
+ returnJson: defaults?.returnJson,
51
52
  },
52
53
  });
53
54
  const finalIsOcr = defaults?.isOcr === undefined
@@ -68,6 +69,11 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
68
69
  const finalLanguage = defaults?.language || 'ch';
69
70
  const finalModelVersion = defaults?.modelVersion || 'pipeline';
70
71
  const finalExtraFormats = normalizeExtraFormats(options?.extraFormats);
72
+ const returnJson = defaults?.returnJson === undefined
73
+ ? false
74
+ : typeof defaults.returnJson === 'string'
75
+ ? defaults.returnJson === 'true'
76
+ : defaults.returnJson === true;
71
77
  const effectiveOptions = {
72
78
  apiUrl: finalApiUrl,
73
79
  apiKey: finalApiKey,
@@ -152,13 +158,18 @@ export function buildMinerUTool(configService, resultParser, options, fileSystem
152
158
  }
153
159
  }
154
160
  const markdownContent = parsedResult.chunks?.map((chunk) => chunk.pageContent).join('\n\n') || '';
161
+ const artifact = {
162
+ files: fileArtifacts,
163
+ taskId,
164
+ metadata: parsedResult.metadata,
165
+ };
166
+ const fullPayload = {
167
+ output: markdownContent,
168
+ artifact,
169
+ };
155
170
  return [
156
- markdownContent,
157
- {
158
- files: fileArtifacts,
159
- taskId,
160
- metadata: parsedResult.metadata,
161
- },
171
+ returnJson ? JSON.stringify(fullPayload) : markdownContent,
172
+ artifact,
162
173
  ];
163
174
  }
164
175
  catch (error) {
@@ -14,6 +14,7 @@ export interface MinerUToolsetConfig {
14
14
  enableTable?: boolean | string;
15
15
  language?: 'en' | 'ch';
16
16
  modelVersion?: 'pipeline' | 'vlm';
17
+ returnJson?: boolean | string;
17
18
  }
18
19
  export declare class MinerUToolset extends BuiltinToolset<StructuredToolInterface, MinerUToolsetConfig> {
19
20
  private readonly config;
@@ -1 +1 @@
1
- {"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;CACnC;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACpC,KAAK,EAAE,GAAG,EAAE,CAAM;gBAEf,MAAM,EAAE,mBAAmB;IAiBxB,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CA+CzF"}
1
+ {"version":3,"file":"mineru.toolset.d.ts","sourceRoot":"","sources":["../../src/lib/mineru.toolset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAChF,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAIvE,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,yBAAyB,CAAC;IACzC,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACvB,YAAY,CAAC,EAAE,UAAU,GAAG,KAAK,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC/B;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,uBAAuB,EAAE,mBAAmB,CAAC;IAC7F,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IACpC,KAAK,EAAE,GAAG,EAAE,CAAM;gBAEf,MAAM,EAAE,mBAAmB;IAiBxB,oBAAoB,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE,SAAS,IAAI,OAAO,CAAC,uBAAuB,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;CAiDzF"}
@@ -20,7 +20,7 @@ export class MinerUToolset extends BuiltinToolset {
20
20
  // No validation during authorization phase.
21
21
  }
22
22
  async initTools() {
23
- const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, } = this.config;
23
+ const { configService, resultParser, apiUrl, apiKey, extraFormats, fileSystem, isOcr, enableFormula, enableTable, language, modelVersion, returnJson, } = this.config;
24
24
  if (!configService || !resultParser) {
25
25
  throw new Error('ConfigService and MinerUResultParserService are required');
26
26
  }
@@ -41,6 +41,7 @@ export class MinerUToolset extends BuiltinToolset {
41
41
  enableTable: finalEnableTable,
42
42
  language: finalLanguage,
43
43
  modelVersion: finalModelVersion,
44
+ returnJson,
44
45
  }),
45
46
  ];
46
47
  return this.tools;
@@ -4,12 +4,12 @@ import { ChunkMetadata, XpFileSystem } from '@xpert-ai/plugin-sdk';
4
4
  import { MinerUDocumentMetadata, MineruSelfHostedTaskResult } from './types.js';
5
5
  export declare class MinerUResultParserService {
6
6
  private readonly logger;
7
- parseFromUrl(fullZipUrl: string, taskId: string, document: Partial<IKnowledgeDocument>, fileSystem: XpFileSystem): Promise<{
7
+ parseFromUrl(fullZipUrl: string, taskId: string, document: Partial<IKnowledgeDocument>, fileSystem?: XpFileSystem): Promise<{
8
8
  id?: string;
9
9
  chunks: Document<ChunkMetadata>[];
10
10
  metadata: MinerUDocumentMetadata;
11
11
  }>;
12
- parseLocalTask(result: MineruSelfHostedTaskResult, taskId: string, document: Partial<IKnowledgeDocument>, fileSystem: XpFileSystem): Promise<{
12
+ parseLocalTask(result: MineruSelfHostedTaskResult, taskId: string, document: Partial<IKnowledgeDocument>, fileSystem?: XpFileSystem): Promise<{
13
13
  id?: string;
14
14
  chunks: Document<ChunkMetadata>[];
15
15
  metadata: MinerUDocumentMetadata;
@@ -1 +1 @@
1
- {"version":3,"file":"result-parser.service.d.ts","sourceRoot":"","sources":["../../src/lib/result-parser.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EACL,aAAa,EAEb,YAAY,EACb,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAEL,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,qBACa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAE/D,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,UAAU,EAAE,YAAY,GACvB,OAAO,CAAC;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,QAAQ,EAAE,sBAAsB,CAAC;KAClC,CAAC;IAsFI,cAAc,CAClB,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,UAAU,EAAE,YAAY,GACvB,OAAO,CAAC;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,QAAQ,EAAE,sBAAsB,CAAC;KAClC,CAAC;CAkDH"}
1
+ {"version":3,"file":"result-parser.service.d.ts","sourceRoot":"","sources":["../../src/lib/result-parser.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,EACL,aAAa,EAEb,YAAY,EACb,MAAM,sBAAsB,CAAC;AAK9B,OAAO,EAEL,sBAAsB,EACtB,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAEpB,qBACa,yBAAyB;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA8C;IAE/D,YAAY,CAChB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,QAAQ,EAAE,sBAAsB,CAAC;KAClC,CAAC;IAmGI,cAAc,CAClB,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,OAAO,CAAC,kBAAkB,CAAC,EACrC,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAAC;QACT,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,QAAQ,EAAE,sBAAsB,CAAC;KAClC,CAAC;CA2DH"}
@@ -37,43 +37,59 @@ let MinerUResultParserService = MinerUResultParserService_1 = class MinerUResult
37
37
  zipEntries.push({ entryName: entry.path, data });
38
38
  const fileName = entry.path;
39
39
  const filePath = join(document.folder || '', entry.path);
40
- const url = await fileSystem.writeFile(filePath, data);
41
- pathMap.set(fileName, url);
42
- // Write images to local file system
43
- if (fileName.startsWith('images/')) {
44
- assets.push({
45
- type: 'image',
46
- url: url,
47
- filePath: filePath,
48
- });
49
- }
50
- else if (fileName.endsWith('layout.json')) {
51
- layoutJson = JSON.parse(data.toString('utf-8'));
52
- metadata.mineruBackend = layoutJson?._backend;
53
- metadata.mineruVersion = layoutJson?._version_name;
54
- assets.push({
55
- type: 'file',
56
- url,
57
- filePath: filePath,
58
- });
59
- }
60
- else if (fileName.endsWith('content_list.json')) {
61
- assets.push({
62
- type: 'file',
63
- url,
64
- filePath: filePath,
65
- });
66
- }
67
- else if (fileName.endsWith('full.md')) {
68
- fullMd = data.toString('utf-8');
69
- assets.push({
70
- type: 'file',
71
- url,
72
- filePath: filePath,
73
- });
40
+ if (fileSystem) {
41
+ const url = await fileSystem.writeFile(filePath, data);
42
+ pathMap.set(fileName, url);
43
+ // Write images to local file system
44
+ if (fileName.startsWith('images/')) {
45
+ assets.push({
46
+ type: 'image',
47
+ url: url,
48
+ filePath: filePath,
49
+ });
50
+ }
51
+ else if (fileName.endsWith('layout.json')) {
52
+ layoutJson = JSON.parse(data.toString('utf-8'));
53
+ metadata.mineruBackend = layoutJson?._backend;
54
+ metadata.mineruVersion = layoutJson?._version_name;
55
+ assets.push({
56
+ type: 'file',
57
+ url,
58
+ filePath: filePath,
59
+ });
60
+ }
61
+ else if (fileName.endsWith('content_list.json')) {
62
+ assets.push({
63
+ type: 'file',
64
+ url,
65
+ filePath: filePath,
66
+ });
67
+ }
68
+ else if (fileName.endsWith('full.md')) {
69
+ fullMd = data.toString('utf-8');
70
+ assets.push({
71
+ type: 'file',
72
+ url,
73
+ filePath: filePath,
74
+ });
75
+ }
76
+ else if (fileName.endsWith('origin.pdf')) {
77
+ metadata.originPdfUrl = fileName;
78
+ }
74
79
  }
75
- else if (fileName.endsWith('origin.pdf')) {
76
- metadata.originPdfUrl = fileName;
80
+ else {
81
+ // Still extract key metadata & markdown without writing to filesystem.
82
+ if (fileName.endsWith('layout.json')) {
83
+ layoutJson = JSON.parse(data.toString('utf-8'));
84
+ metadata.mineruBackend = layoutJson?._backend;
85
+ metadata.mineruVersion = layoutJson?._version_name;
86
+ }
87
+ else if (fileName.endsWith('full.md')) {
88
+ fullMd = data.toString('utf-8');
89
+ }
90
+ else if (fileName.endsWith('origin.pdf')) {
91
+ metadata.originPdfUrl = fileName;
92
+ }
77
93
  }
78
94
  }
79
95
  metadata.assets = assets;
@@ -102,13 +118,23 @@ let MinerUResultParserService = MinerUResultParserService_1 = class MinerUResult
102
118
  const pathMap = new Map();
103
119
  for (const image of result.images) {
104
120
  const filePath = join(document.folder || '', 'images', image.name);
105
- const url = await fileSystem.writeFile(filePath, Buffer.from(image.dataUrl.split(',')[1], 'base64'));
106
- pathMap.set(`images/${image.name}`, url);
107
- assets.push({
108
- type: 'image',
109
- url: url,
110
- filePath: filePath,
111
- });
121
+ if (fileSystem) {
122
+ const url = await fileSystem.writeFile(filePath, Buffer.from(image.dataUrl.split(',')[1], 'base64'));
123
+ pathMap.set(`images/${image.name}`, url);
124
+ assets.push({
125
+ type: 'image',
126
+ url: url,
127
+ filePath: filePath,
128
+ });
129
+ }
130
+ else {
131
+ pathMap.set(`images/${image.name}`, image.dataUrl);
132
+ assets.push({
133
+ type: 'image',
134
+ url: image.dataUrl,
135
+ filePath: filePath,
136
+ });
137
+ }
112
138
  }
113
139
  if (result.sourceUrl) {
114
140
  assets.push({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@helloxiaohu/plugin-mineru",
3
- "version": "0.1.3",
3
+ "version": "0.1.5",
4
4
  "description": "MinerU document converter plugin for Xpert AI platform",
5
5
  "license": "AGPL-3.0",
6
6
  "repository": {