@aalis/plugin-office 0.1.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/utils.js ADDED
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 从 URL 或 storage URI 加载图片为 Buffer。
3
+ * - http/https URL:直接 fetch
4
+ * - storage URI(含 `:/`):通过 storage.readFile
5
+ * - 其它(裸路径/相对路径):若给了 baseUri,按 baseUri 拼接(不带尾部斜杠时自动补)
6
+ */
7
+ export async function loadImage(storage, source, baseUri) {
8
+ if (source.startsWith('http://') || source.startsWith('https://')) {
9
+ const resp = await fetch(source);
10
+ if (!resp.ok)
11
+ throw new Error(`图片下载失败: ${resp.status} ${source}`);
12
+ const arrayBuf = await resp.arrayBuffer();
13
+ const mime = resp.headers.get('content-type') || guessMime(source);
14
+ return { buffer: Buffer.from(arrayBuf), mime };
15
+ }
16
+ const uri = source.includes(':/') ? source : joinUri(baseUri ?? 'workspace:/', source);
17
+ const data = (await storage.readFile(uri));
18
+ return { buffer: Buffer.from(data), mime: guessMime(uri) };
19
+ }
20
+ function joinUri(base, rel) {
21
+ const b = base.endsWith('/') ? base : `${base}/`;
22
+ return `${b}${rel.replace(/^\/+/, '')}`;
23
+ }
24
+ function guessMime(path) {
25
+ const ext = path.split('.').pop()?.toLowerCase();
26
+ switch (ext) {
27
+ case 'png':
28
+ return 'image/png';
29
+ case 'jpg':
30
+ case 'jpeg':
31
+ return 'image/jpeg';
32
+ case 'gif':
33
+ return 'image/gif';
34
+ case 'svg':
35
+ return 'image/svg+xml';
36
+ case 'webp':
37
+ return 'image/webp';
38
+ case 'bmp':
39
+ return 'image/bmp';
40
+ default:
41
+ return 'image/png';
42
+ }
43
+ }
44
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,OAAuB,EACvB,MAAc,EACd,OAAgB;IAEhB,IAAI,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,IAAI,MAAM,EAAE,CAAC,CAAC;QAClE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,CAAC;IACjD,CAAC;IAED,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,IAAI,aAAa,EAAE,MAAM,CAAC,CAAC;IACvF,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAe,CAAC;IACzD,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7D,CAAC;AAED,SAAS,OAAO,CAAC,IAAY,EAAE,GAAW;IACxC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;IACjD,OAAO,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,CAAC;IACjD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB,KAAK,KAAK,CAAC;QACX,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB,KAAK,KAAK;YACR,OAAO,eAAe,CAAC;QACzB,KAAK,MAAM;YACT,OAAO,YAAY,CAAC;QACtB,KAAK,KAAK;YACR,OAAO,WAAW,CAAC;QACrB;YACE,OAAO,WAAW,CAAC;IACvB,CAAC;AACH,CAAC"}
package/package.json ADDED
@@ -0,0 +1,45 @@
1
+ {
2
+ "name": "@aalis/plugin-office",
3
+ "version": "0.1.0",
4
+ "type": "module",
5
+ "keywords": [
6
+ "aalis-plugin"
7
+ ],
8
+ "main": "dist/index.js",
9
+ "types": "dist/index.d.ts",
10
+ "files": [
11
+ "dist"
12
+ ],
13
+ "dependencies": {
14
+ "docx": "^9.5.0",
15
+ "exceljs": "^4.4.0",
16
+ "pdf-lib": "^1.17.1",
17
+ "pptxgenjs": "^3.12.0",
18
+ "@aalis/plugin-process-api": "^0.1.0",
19
+ "@aalis/plugin-storage-api": "^0.1.0",
20
+ "@aalis/plugin-tools-api": "^0.1.0"
21
+ },
22
+ "devDependencies": {
23
+ "@types/node": "^22.0.0",
24
+ "typescript": "^5.7.0",
25
+ "@aalis/core": "0.1.0"
26
+ },
27
+ "peerDependencies": {
28
+ "@aalis/core": "^0.1.0"
29
+ },
30
+ "aalis": {
31
+ "service": {
32
+ "required": [
33
+ "storage",
34
+ "tools"
35
+ ],
36
+ "optional": [
37
+ "process"
38
+ ]
39
+ }
40
+ },
41
+ "scripts": {
42
+ "build": "tsc",
43
+ "dev": "tsc --watch"
44
+ }
45
+ }