@appthen/vibe-workspace 0.1.8 → 0.1.9
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/{DocxPreview-CAmipQT3.js → DocxPreview-D2izjHfQ.js} +5 -5
- package/dist/{DocxPreview-CAmipQT3.js.map → DocxPreview-D2izjHfQ.js.map} +1 -1
- package/dist/{DotBadge-CeeLzNu3.js → DotBadge-BTtlqPqv.js} +2 -2
- package/dist/{DotBadge-CeeLzNu3.js.map → DotBadge-BTtlqPqv.js.map} +1 -1
- package/dist/{FreeCanvas-DritKIPq.js → FreeCanvas-D0qGlWl-.js} +2 -2
- package/dist/{FreeCanvas-DritKIPq.js.map → FreeCanvas-D0qGlWl-.js.map} +1 -1
- package/dist/{ImagePreview-ByIQrPzb.js → ImagePreview-CVw1IKRl.js} +4 -4
- package/dist/{ImagePreview-ByIQrPzb.js.map → ImagePreview-CVw1IKRl.js.map} +1 -1
- package/dist/{PdfPreview-0vwF3tLn.js → PdfPreview-BRDBxezL.js} +4 -4
- package/dist/{PdfPreview-0vwF3tLn.js.map → PdfPreview-BRDBxezL.js.map} +1 -1
- package/dist/{PluginContext-uAiGNF8S.js → PluginContext-DCtbrkoX.js} +2 -2
- package/dist/{PluginContext-uAiGNF8S.js.map → PluginContext-DCtbrkoX.js.map} +1 -1
- package/dist/{Workbench-8uTfTtsq.js → Workbench-Bz0iJPL8.js} +12 -12
- package/dist/{Workbench-8uTfTtsq.js.map → Workbench-Bz0iJPL8.js.map} +1 -1
- package/dist/{activate-DVnxnmfA.js → activate-B_lpUEhD.js} +3 -3
- package/dist/{activate-DVnxnmfA.js.map → activate-B_lpUEhD.js.map} +1 -1
- package/dist/canvas-core/index.js +1 -1
- package/dist/coding-kit/index.js +1 -1
- package/dist/components/index.js +4 -4
- package/dist/{dialog-ssICQNSV.js → dialog-RPHf7Mz2.js} +2 -2
- package/dist/{dialog-ssICQNSV.js.map → dialog-RPHf7Mz2.js.map} +1 -1
- package/dist/{docx-preview-lJ7EdPsl.js → docx-preview-CH7hwx62.js} +2 -2
- package/dist/{docx-preview-lJ7EdPsl.js.map → docx-preview-CH7hwx62.js.map} +1 -1
- package/dist/extension-dev-workbench/index.js +4 -4
- package/dist/{extensionRegistry-D35Ld-Wa.js → extensionRegistry-B6X2GQLX.js} +2 -2
- package/dist/{extensionRegistry-D35Ld-Wa.js.map → extensionRegistry-B6X2GQLX.js.map} +1 -1
- package/dist/index.js +13 -13
- package/dist/{list-detail-workspace-template-BTrgMGPx.js → list-detail-workspace-template-DsiEfhxo.js} +2 -2
- package/dist/{list-detail-workspace-template-BTrgMGPx.js.map → list-detail-workspace-template-DsiEfhxo.js.map} +1 -1
- package/dist/overlay/index.js +2 -2
- package/dist/{pluginCapabilities-BkCT7QDO.js → pluginCapabilities-BKLR6W4M.js} +2 -2
- package/dist/{pluginCapabilities-BkCT7QDO.js.map → pluginCapabilities-BKLR6W4M.js.map} +1 -1
- package/dist/plugins/agent/PluginModule.js +2 -2
- package/dist/plugins/base/index.js +1 -1
- package/dist/{sheet-Bsq3CLW4.js → sheet-tD__qqBd.js} +10 -10
- package/dist/{sheet-Bsq3CLW4.js.map → sheet-tD__qqBd.js.map} +1 -1
- package/dist/{skeleton-BSqTbX9l.js → skeleton-6VSIwQtG.js} +2 -2
- package/dist/{skeleton-BSqTbX9l.js.map → skeleton-6VSIwQtG.js.map} +1 -1
- package/dist/ui/index.js +3 -3
- package/dist/{useBinaryFileUrl-D11yvGuG.js → useBinaryFileUrl-_FJREA5b.js} +3 -3
- package/dist/{useBinaryFileUrl-D11yvGuG.js.map → useBinaryFileUrl-_FJREA5b.js.map} +1 -1
- package/dist/vibe-workspace.css +1 -1
- package/dist/workbench/index.js +2 -2
- package/package.json +1 -1
package/dist/ui/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { A, a, b, c, d, e, B, f, C, D, g, h, i, j, k, l, m, n, o, p, q, r, s, t, E, I, R, u, S, v, w, x, y, W, X, z, F, G, H, J, T, K, L, M, N, O, P, Q, U, V, Y } from "../skeleton-
|
|
1
|
+
import { A, a, b, c, d, e, B, f, C, D, g, h, i, j, k, l, m, n, o, p, q, r, s, t, E, I, R, u, S, v, w, x, y, W, X, z, F, G, H, J, T, K, L, M, N, O, P, Q, U, V, Y } from "../skeleton-6VSIwQtG.js";
|
|
2
2
|
import { P as P2, T as T2, a as a2, b as b2, c as c2, d as d2, e as e2, f as f2, g as g2, h as h2, i as i2, j as j2 } from "../toast-C4mLAjyT.js";
|
|
3
|
-
import { D as D2, a as a3, b as b3, c as c3, d as d3, e as e3, f as f3, g as g3, h as h3, i as i3 } from "../dialog-
|
|
4
|
-
import { S as S2, a as a4, b as b4, c as c4, d as d4, e as e4, f as f4, g as g4, h as h4, i as i4 } from "../sheet-
|
|
3
|
+
import { D as D2, a as a3, b as b3, c as c3, d as d3, e as e3, f as f3, g as g3, h as h3, i as i3 } from "../dialog-RPHf7Mz2.js";
|
|
4
|
+
import { S as S2, a as a4, b as b4, c as c4, d as d4, e as e4, f as f4, g as g4, h as h4, i as i4 } from "../sheet-tD__qqBd.js";
|
|
5
5
|
export {
|
|
6
6
|
A as WorkbenchAlert,
|
|
7
7
|
a as WorkbenchAlertDescription,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useContext, useState, useRef, useEffect } from "react";
|
|
2
|
-
import { b as FileSystemContext } from "./activate-
|
|
3
|
-
import { M as MAX_BINARY_PREVIEW_BYTES, g as getBinaryMime, B as BinaryAssetNotFoundError } from "./Workbench-
|
|
2
|
+
import { b as FileSystemContext } from "./activate-B_lpUEhD.js";
|
|
3
|
+
import { M as MAX_BINARY_PREVIEW_BYTES, g as getBinaryMime, B as BinaryAssetNotFoundError } from "./Workbench-Bz0iJPL8.js";
|
|
4
4
|
function base64ToBlob(base64, mime) {
|
|
5
5
|
const binary = atob(base64);
|
|
6
6
|
const bytes = new Uint8Array(binary.length);
|
|
@@ -76,4 +76,4 @@ function useBinaryFileUrl(file) {
|
|
|
76
76
|
export {
|
|
77
77
|
useBinaryFileUrl as u
|
|
78
78
|
};
|
|
79
|
-
//# sourceMappingURL=useBinaryFileUrl-
|
|
79
|
+
//# sourceMappingURL=useBinaryFileUrl-_FJREA5b.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBinaryFileUrl-
|
|
1
|
+
{"version":3,"file":"useBinaryFileUrl-_FJREA5b.js","sources":["../src/plugins/binary-previews/useBinaryFileUrl.ts"],"sourcesContent":["/**\n * 二进制文件预览 URL 解析 hook。\n *\n * 通过 FileSystemContext 拿 Workbench 实际的 FileSystemService 实例\n * (存在模块单例与 WorkbenchProvider 实例双实例,绝不 import 单例)。\n * runtime:base64 → Blob → objectURL(切换/卸载时 revoke);\n * 云端:VFS 资产签名 URL(无需 revoke)。\n */\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { FileSystemContext } from '../../core/FileSystemContext';\nimport {\n BinaryAssetNotFoundError,\n type FileSystemService,\n} from '../explorer/services/fileSystem';\nimport type { FileNode } from '../../types';\nimport { getBinaryMime, MAX_BINARY_PREVIEW_BYTES } from './binaryTypes';\n\nexport type BinaryUrlState =\n | { status: 'loading' }\n | { status: 'ready'; url: string; kind: 'blob' | 'signed-url' }\n | { status: 'no-asset' }\n | { status: 'too-large'; size?: number }\n | { status: 'error'; message: string };\n\nfunction base64ToBlob(base64: string, mime: string): Blob {\n const binary = atob(base64);\n const bytes = new Uint8Array(binary.length);\n for (let i = 0; i < binary.length; i += 1) {\n bytes[i] = binary.charCodeAt(i);\n }\n return new Blob([bytes], { type: mime });\n}\n\nexport function useBinaryFileUrl(\n file: FileNode | null | undefined,\n): [BinaryUrlState, () => void] {\n const fileSystem = useContext(FileSystemContext) as FileSystemService | null;\n const [state, setState] = useState<BinaryUrlState>({ status: 'loading' });\n const [nonce, setNonce] = useState(0);\n // 当前持有的 blob: URL(签名 URL 不 revoke)\n const objectUrlRef = useRef<string | null>(null);\n const generationRef = useRef(0);\n\n const retry = () => setNonce((n) => n + 1);\n\n useEffect(() => {\n const generation = ++generationRef.current;\n\n // 释放上一个 blob URL(可能属于上一个文件)\n if (objectUrlRef.current) {\n URL.revokeObjectURL(objectUrlRef.current);\n objectUrlRef.current = null;\n }\n\n if (!file) {\n setState({ status: 'loading' });\n return;\n }\n if (!fileSystem) {\n setState({ status: 'error', message: '二进制预览需要工作台文件系统' });\n return;\n }\n const size = file.stats?.size;\n if (typeof size === 'number' && size > MAX_BINARY_PREVIEW_BYTES) {\n setState({ status: 'too-large', size });\n return;\n }\n\n let cancelled = false;\n setState({ status: 'loading' });\n\n (async () => {\n try {\n const source = await fileSystem.resolveBinarySource(file.id);\n if (cancelled || generation !== generationRef.current) return;\n\n if (source.kind === 'signed-url') {\n setState({ status: 'ready', url: source.url, kind: 'signed-url' });\n } else {\n const blob = base64ToBlob(source.base64, getBinaryMime(file.name) ?? 'application/octet-stream');\n const url = URL.createObjectURL(blob);\n objectUrlRef.current = url;\n setState({ status: 'ready', url, kind: 'blob' });\n }\n } catch (e) {\n if (cancelled || generation !== generationRef.current) return;\n if (e instanceof BinaryAssetNotFoundError) {\n setState({ status: 'no-asset' });\n } else {\n setState({ status: 'error', message: e instanceof Error ? e.message : String(e) });\n }\n }\n })();\n\n return () => {\n cancelled = true;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [fileSystem, file?.id, nonce]);\n\n // 卸载时释放 blob URL\n useEffect(() => {\n return () => {\n if (objectUrlRef.current) {\n URL.revokeObjectURL(objectUrlRef.current);\n objectUrlRef.current = null;\n }\n };\n }, []);\n\n return [state, retry];\n}\n"],"names":[],"mappings":";;;AAwBA,SAAS,aAAa,QAAgB,MAAoB;AACxD,QAAM,SAAS,KAAK,MAAM;AAC1B,QAAM,QAAQ,IAAI,WAAW,OAAO,MAAM;AAC1C,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AACzC,UAAM,CAAC,IAAI,OAAO,WAAW,CAAC;AAAA,EAChC;AACA,SAAO,IAAI,KAAK,CAAC,KAAK,GAAG,EAAE,MAAM,MAAM;AACzC;AAEO,SAAS,iBACd,MAC8B;AAC9B,QAAM,aAAa,WAAW,iBAAiB;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAyB,EAAE,QAAQ,WAAW;AACxE,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAS,CAAC;AAEpC,QAAM,eAAe,OAAsB,IAAI;AAC/C,QAAM,gBAAgB,OAAO,CAAC;AAE9B,QAAM,QAAQ,MAAM,SAAS,CAAC,MAAM,IAAI,CAAC;AAEzC,YAAU,MAAM;;AACd,UAAM,aAAa,EAAE,cAAc;AAGnC,QAAI,aAAa,SAAS;AACxB,UAAI,gBAAgB,aAAa,OAAO;AACxC,mBAAa,UAAU;AAAA,IACzB;AAEA,QAAI,CAAC,MAAM;AACT,eAAS,EAAE,QAAQ,WAAW;AAC9B;AAAA,IACF;AACA,QAAI,CAAC,YAAY;AACf,eAAS,EAAE,QAAQ,SAAS,SAAS,kBAAkB;AACvD;AAAA,IACF;AACA,UAAM,QAAO,UAAK,UAAL,mBAAY;AACzB,QAAI,OAAO,SAAS,YAAY,OAAO,0BAA0B;AAC/D,eAAS,EAAE,QAAQ,aAAa,KAAA,CAAM;AACtC;AAAA,IACF;AAEA,QAAI,YAAY;AAChB,aAAS,EAAE,QAAQ,WAAW;AAE9B,KAAC,YAAY;AACX,UAAI;AACF,cAAM,SAAS,MAAM,WAAW,oBAAoB,KAAK,EAAE;AAC3D,YAAI,aAAa,eAAe,cAAc,QAAS;AAEvD,YAAI,OAAO,SAAS,cAAc;AAChC,mBAAS,EAAE,QAAQ,SAAS,KAAK,OAAO,KAAK,MAAM,cAAc;AAAA,QACnE,OAAO;AACL,gBAAM,OAAO,aAAa,OAAO,QAAQ,cAAc,KAAK,IAAI,KAAK,0BAA0B;AAC/F,gBAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,uBAAa,UAAU;AACvB,mBAAS,EAAE,QAAQ,SAAS,KAAK,MAAM,QAAQ;AAAA,QACjD;AAAA,MACF,SAAS,GAAG;AACV,YAAI,aAAa,eAAe,cAAc,QAAS;AACvD,YAAI,aAAa,0BAA0B;AACzC,mBAAS,EAAE,QAAQ,YAAY;AAAA,QACjC,OAAO;AACL,mBAAS,EAAE,QAAQ,SAAS,SAAS,aAAa,QAAQ,EAAE,UAAU,OAAO,CAAC,EAAA,CAAG;AAAA,QACnF;AAAA,MACF;AAAA,IACF,GAAA;AAEA,WAAO,MAAM;AACX,kBAAY;AAAA,IACd;AAAA,EAEF,GAAG,CAAC,YAAY,6BAAM,IAAI,KAAK,CAAC;AAGhC,YAAU,MAAM;AACd,WAAO,MAAM;AACX,UAAI,aAAa,SAAS;AACxB,YAAI,gBAAgB,aAAa,OAAO;AACxC,qBAAa,UAAU;AAAA,MACzB;AAAA,IACF;AAAA,EACF,GAAG,CAAA,CAAE;AAEL,SAAO,CAAC,OAAO,KAAK;AACtB;"}
|