@tutti-os/workspace-file-manager 0.0.197 → 0.0.199

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.
@@ -1,6 +1,6 @@
1
- import { c as WorkspaceFileEntry, F as WorkspaceFileOpenWithApplication } from '../workspaceFileManagerLocations-RmwpZYaa.js';
2
- export { C as CreateWorkspaceFileManagerSessionInput, W as WorkspaceFileActivationTarget, a as WorkspaceFileDirectoryListing, b as WorkspaceFileDirectoryLocation, d as WorkspaceFileEntryKind, e as WorkspaceFileExternalLocation, f as WorkspaceFileImportConflict, g as WorkspaceFileImportSummary, h as WorkspaceFileImportSummaryReason, i as WorkspaceFileImportSummaryReasonCount, j as WorkspaceFileLocation, k as WorkspaceFileLocationKind, l as WorkspaceFileLocationSection, m as WorkspaceFileManagerCapabilities, n as WorkspaceFileManagerFileActivationRequest, o as WorkspaceFileManagerFileDefaultOpener, p as WorkspaceFileManagerHost, q as WorkspaceFileManagerHostActionMessage, r as WorkspaceFileManagerHostActionMessageStatus, s as WorkspaceFileManagerHostActionResult, t as WorkspaceFileManagerHostExportResult, u as WorkspaceFileManagerHostFallbackAction, v as WorkspaceFileManagerHostFallbackActionKind, w as WorkspaceFileManagerHostFileActivationResult, x as WorkspaceFileManagerHostImportConflict, y as WorkspaceFileManagerHostImportResult, z as WorkspaceFileManagerMutationErrorMessage, A as WorkspaceFileManagerPersistedState, B as WorkspaceFileManagerService, D as WorkspaceFileManagerSession, E as WorkspaceFileManagerState, G as WorkspaceFilePreviewKind, H as WorkspaceFilePreviewState, I as WorkspaceFileRecentLocation, J as WorkspaceFileSearchEntry, K as WorkspaceFileSearchResult, L as createWorkspaceFileManagerService, M as findWorkspaceFileLocationById, N as flattenWorkspaceFileLocations, O as isWorkspaceFileExternalLocation, P as isWorkspaceFileRecentLocation, Q as resolveWorkspaceFileLocationDefaultId } from '../workspaceFileManagerLocations-RmwpZYaa.js';
3
- export { W as WorkspaceFileManagerI18nKey, a as WorkspaceFileManagerI18nRuntime, c as createWorkspaceFileManagerI18nRuntime, r as resolveRevealInFolderLabel, w as workspaceFileManagerI18nNamespace, b as workspaceFileManagerI18nResources } from '../index-C3AgiOLN.js';
1
+ import { c as WorkspaceFileEntry, u as WorkspaceFileOpenWithApplication } from '../workspaceFileManagerLocations-BwRMCnUY.js';
2
+ export { C as CreateWorkspaceFileManagerSessionInput, W as WorkspaceFileActivationTarget, a as WorkspaceFileDirectoryListing, b as WorkspaceFileDirectoryLocation, d as WorkspaceFileEntryKind, e as WorkspaceFileExternalLocation, f as WorkspaceFileLocation, g as WorkspaceFileLocationKind, h as WorkspaceFileLocationSection, i as WorkspaceFileManagerCapabilities, j as WorkspaceFileManagerFileActivationRequest, k as WorkspaceFileManagerFileDefaultOpener, l as WorkspaceFileManagerHost, m as WorkspaceFileManagerHostFallbackAction, n as WorkspaceFileManagerHostFallbackActionKind, o as WorkspaceFileManagerHostFileActivationResult, p as WorkspaceFileManagerMutationErrorMessage, q as WorkspaceFileManagerPersistedState, r as WorkspaceFileManagerService, s as WorkspaceFileManagerSession, t as WorkspaceFileManagerState, v as WorkspaceFilePreviewKind, w as WorkspaceFilePreviewState, x as WorkspaceFileRecentLocation, y as WorkspaceFileSearchEntry, z as WorkspaceFileSearchResult, A as createWorkspaceFileManagerService, B as findWorkspaceFileLocationById, D as flattenWorkspaceFileLocations, E as isWorkspaceFileExternalLocation, F as isWorkspaceFileRecentLocation, G as resolveWorkspaceFileLocationDefaultId } from '../workspaceFileManagerLocations-BwRMCnUY.js';
3
+ export { W as WorkspaceFileManagerI18nKey, a as WorkspaceFileManagerI18nRuntime, c as createWorkspaceFileManagerI18nRuntime, r as resolveRevealInFolderLabel, w as workspaceFileManagerI18nNamespace, b as workspaceFileManagerI18nResources } from '../index-D0k_jjaw.js';
4
4
  import '@tutti-os/workspace-file-preview';
5
5
  import '@tutti-os/ui-i18n-runtime';
6
6
 
@@ -4,27 +4,67 @@ import {
4
4
  findWorkspaceFileLocationById,
5
5
  flattenWorkspaceFileLocations,
6
6
  isWorkspaceApplicationBundle,
7
- isWorkspaceFileBrowserOpenable,
8
7
  isWorkspaceFileExternalLocation,
9
8
  isWorkspaceFileRecentLocation,
10
9
  resolveWorkspaceFileDefaultApplicationIconExtension,
11
10
  resolveWorkspaceFileEntryIconCacheKey,
12
11
  resolveWorkspaceFileLocationDefaultId,
13
12
  resolveWorkspaceFileOpenWithCacheKey,
14
- shouldFilterVideoPlayersForOpenWith,
15
13
  shouldResolveWorkspaceFileEntryIcon,
16
14
  shouldUseWorkspaceFileArchiveIcon,
17
15
  shouldUseWorkspaceFileExtensionDocumentIcon,
18
16
  sortWorkspaceFileEntriesForArrangeMode,
19
- workspaceFileName,
20
- workspaceFileVideoHandlerCollisionExtensions
21
- } from "../chunk-P4SNEQWG.js";
17
+ workspaceFileName
18
+ } from "../chunk-TNFCNCZV.js";
22
19
  import {
23
20
  createWorkspaceFileManagerI18nRuntime,
24
21
  resolveRevealInFolderLabel,
25
22
  workspaceFileManagerI18nNamespace,
26
23
  workspaceFileManagerI18nResources
27
- } from "../chunk-KKKQGRC5.js";
24
+ } from "../chunk-EI4ICYY4.js";
25
+
26
+ // src/services/internal/model/openWithPolicy.ts
27
+ import {
28
+ classifyWorkspaceFilePreviewKind,
29
+ isTextDegradablePreviewKind,
30
+ isWorkspaceFileBrowserHtmlExtension,
31
+ isWorkspaceFileImageExtension,
32
+ resolveWorkspaceFileExtension,
33
+ resolveWorkspaceFileVisualKind,
34
+ workspaceFileBrowserVideoExtensions
35
+ } from "@tutti-os/workspace-file-preview";
36
+ var workspaceFileVideoHandlerCollisionExtensions = /* @__PURE__ */ new Set(["ts"]);
37
+ function isWorkspaceFileBrowserOpenable(entry) {
38
+ if (entry.kind !== "file") {
39
+ return false;
40
+ }
41
+ const extension = resolveWorkspaceFileExtension(
42
+ entry.path || entry.name || ""
43
+ );
44
+ if (extension === "pdf" || isWorkspaceFileBrowserHtmlExtension(extension) || isWorkspaceFileImageExtension(extension) || workspaceFileBrowserVideoExtensions.has(extension)) {
45
+ return true;
46
+ }
47
+ return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));
48
+ }
49
+ function shouldFilterVideoPlayersForOpenWith(entry) {
50
+ if (entry.kind !== "file") {
51
+ return false;
52
+ }
53
+ const visualKind = resolveWorkspaceFileVisualKind(entry);
54
+ if (visualKind === "video") {
55
+ return false;
56
+ }
57
+ const extension = resolveWorkspaceFileExtension(
58
+ entry.path || entry.name || ""
59
+ );
60
+ if (workspaceFileVideoHandlerCollisionExtensions.has(extension)) {
61
+ return true;
62
+ }
63
+ if (visualKind === "code" || visualKind === "markdown") {
64
+ return true;
65
+ }
66
+ return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));
67
+ }
28
68
  export {
29
69
  WorkspaceFileOpenWithApplicationsCache,
30
70
  createWorkspaceFileManagerI18nRuntime,
@@ -1 +1 @@
1
- {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
1
+ {"version":3,"sources":["../../src/services/internal/model/openWithPolicy.ts"],"sourcesContent":["/**\n * Open / open-with / browser-activation advisories.\n *\n * These helpers live on the file-manager host edge, not in\n * `@tutti-os/workspace-file-preview` (see that package CONTRACT.md).\n */\n\nimport {\n classifyWorkspaceFilePreviewKind,\n isTextDegradablePreviewKind,\n isWorkspaceFileBrowserHtmlExtension,\n isWorkspaceFileImageExtension,\n resolveWorkspaceFileExtension,\n resolveWorkspaceFileVisualKind,\n workspaceFileBrowserVideoExtensions\n} from \"@tutti-os/workspace-file-preview\";\n\nexport interface WorkspaceFileOpenWithEntry {\n kind: string;\n name?: string;\n path: string;\n}\n\n/**\n * Extensions where macOS Launch Services may register video handlers even when\n * the workspace file is source code (UTI / uniform type collisions).\n */\nexport const workspaceFileVideoHandlerCollisionExtensions = new Set([\"ts\"]);\n\nexport function isWorkspaceFileBrowserOpenable(\n entry: WorkspaceFileOpenWithEntry\n): boolean {\n if (entry.kind !== \"file\") {\n return false;\n }\n\n const extension = resolveWorkspaceFileExtension(\n entry.path || entry.name || \"\"\n );\n if (\n extension === \"pdf\" ||\n isWorkspaceFileBrowserHtmlExtension(extension) ||\n isWorkspaceFileImageExtension(extension) ||\n workspaceFileBrowserVideoExtensions.has(extension)\n ) {\n return true;\n }\n\n return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));\n}\n\nexport function shouldFilterVideoPlayersForOpenWith(\n entry: WorkspaceFileOpenWithEntry\n): boolean {\n if (entry.kind !== \"file\") {\n return false;\n }\n\n const visualKind = resolveWorkspaceFileVisualKind(entry);\n if (visualKind === \"video\") {\n return false;\n }\n\n const extension = resolveWorkspaceFileExtension(\n entry.path || entry.name || \"\"\n );\n if (workspaceFileVideoHandlerCollisionExtensions.has(extension)) {\n return true;\n }\n\n if (visualKind === \"code\" || visualKind === \"markdown\") {\n return true;\n }\n\n return isTextDegradablePreviewKind(classifyWorkspaceFilePreviewKind(entry));\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAYA,IAAM,+CAA+C,oBAAI,IAAI,CAAC,IAAI,CAAC;AAEnE,SAAS,+BACd,OACS;AACT,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC9B;AACA,MACE,cAAc,SACd,oCAAoC,SAAS,KAC7C,8BAA8B,SAAS,KACvC,oCAAoC,IAAI,SAAS,GACjD;AACA,WAAO;AAAA,EACT;AAEA,SAAO,4BAA4B,iCAAiC,KAAK,CAAC;AAC5E;AAEO,SAAS,oCACd,OACS;AACT,MAAI,MAAM,SAAS,QAAQ;AACzB,WAAO;AAAA,EACT;AAEA,QAAM,aAAa,+BAA+B,KAAK;AACvD,MAAI,eAAe,SAAS;AAC1B,WAAO;AAAA,EACT;AAEA,QAAM,YAAY;AAAA,IAChB,MAAM,QAAQ,MAAM,QAAQ;AAAA,EAC9B;AACA,MAAI,6CAA6C,IAAI,SAAS,GAAG;AAC/D,WAAO;AAAA,EACT;AAEA,MAAI,eAAe,UAAU,eAAe,YAAY;AACtD,WAAO;AAAA,EACT;AAEA,SAAO,4BAA4B,iCAAiC,KAAK,CAAC;AAC5E;","names":[]}
@@ -1,38 +1,6 @@
1
- import { a as WorkspaceFileManagerI18nRuntime } from './index-C3AgiOLN.js';
1
+ import { a as WorkspaceFileManagerI18nRuntime } from './index-D0k_jjaw.js';
2
2
  import { WorkspaceFilePreviewTarget, WorkspaceFilePreviewKind as WorkspaceFilePreviewKind$1 } from '@tutti-os/workspace-file-preview';
3
3
 
4
- type WorkspaceFileManagerHostActionMessageStatus = "cancelled" | "completed" | "started";
5
- interface WorkspaceFileManagerHostActionMessage {
6
- actionKind: "export" | "import";
7
- entry?: WorkspaceFileEntry | null;
8
- message: string;
9
- status: WorkspaceFileManagerHostActionMessageStatus;
10
- }
11
- interface WorkspaceFileManagerHostImportResult {
12
- cancelledMessage?: string | null;
13
- completedMessage?: string | null;
14
- startedMessage?: string | null;
15
- summary?: WorkspaceFileImportSummary | null;
16
- message?: string | null;
17
- supported: boolean;
18
- title?: string | null;
19
- importConflict?: WorkspaceFileManagerHostImportConflict | null;
20
- }
21
- interface WorkspaceFileManagerHostExportResult {
22
- cancelledMessage?: string | null;
23
- completedMessage?: string | null;
24
- message?: string | null;
25
- startedMessage?: string | null;
26
- supported: boolean;
27
- title?: string | null;
28
- importConflict?: null;
29
- }
30
- type WorkspaceFileManagerHostActionResult = WorkspaceFileManagerHostExportResult | WorkspaceFileManagerHostImportResult;
31
- interface WorkspaceFileManagerHostImportConflict {
32
- conflicts: WorkspaceFileImportConflict[];
33
- summary?: WorkspaceFileImportSummary | null;
34
- onConfirm?: () => Promise<WorkspaceFileManagerHostImportResult | void>;
35
- }
36
4
  interface WorkspaceFileManagerFileActivationRequest {
37
5
  entry: WorkspaceFileEntry;
38
6
  target: WorkspaceFileActivationTarget | null;
@@ -57,7 +25,6 @@ type WorkspaceFileManagerHostFileActivationResult = {
57
25
 
58
26
  type WorkspaceFileEntryKind = "file" | "directory" | "unknown";
59
27
  type WorkspaceFileSearchMatchTarget = "basename" | "path";
60
- type WorkspaceFileImportConflictKind = "replaceable" | "type_mismatch";
61
28
  type WorkspaceFilePreviewKind = WorkspaceFilePreviewKind$1;
62
29
  type WorkspaceFileLocationKind = "directory" | "external" | "recent";
63
30
  type WorkspaceFileManagerFileDefaultOpener = "appBrowser" | "defaultBrowser" | "fileViewer" | "system";
@@ -173,24 +140,6 @@ interface WorkspaceFileRecentLocation {
173
140
  kind: "recent";
174
141
  label: string;
175
142
  }
176
- interface WorkspaceFileImportConflict {
177
- conflictKind: WorkspaceFileImportConflictKind;
178
- destinationKind: WorkspaceFileEntryKind;
179
- destinationPath: string;
180
- name: string;
181
- sourcePath: string;
182
- }
183
- type WorkspaceFileImportSummaryReason = "ignored" | "symlink" | "system_metadata";
184
- interface WorkspaceFileImportSummaryReasonCount {
185
- count: number;
186
- reason: WorkspaceFileImportSummaryReason;
187
- }
188
- interface WorkspaceFileImportSummary {
189
- filteredCount?: number;
190
- ignoredCount?: number;
191
- reasonBreakdown?: WorkspaceFileImportSummaryReasonCount[];
192
- selectedCount?: number;
193
- }
194
143
  interface WorkspaceFileManagerPersistedState {
195
144
  currentDirectoryPath: string;
196
145
  navigationBackStack: string[];
@@ -214,9 +163,6 @@ interface WorkspaceFileManagerCapabilities {
214
163
  canCreateDirectory: boolean;
215
164
  canCreateFile: boolean;
216
165
  canDelete: boolean;
217
- canExport: boolean;
218
- canImportFromDrop: boolean;
219
- canImportFromPicker: boolean;
220
166
  canMove: boolean;
221
167
  canOpenInAppBrowser: boolean;
222
168
  canOpenInDefaultBrowser: boolean;
@@ -226,7 +172,7 @@ interface WorkspaceFileManagerCapabilities {
226
172
  canRename: boolean;
227
173
  canSearch: boolean;
228
174
  }
229
- type WorkspaceFileManagerBusyAction = "create" | "delete" | "export" | "import" | "move" | "rename" | "view";
175
+ type WorkspaceFileManagerBusyAction = "create" | "delete" | "move" | "rename" | "view";
230
176
  interface WorkspaceFileManagerCreateDialogState {
231
177
  errorMessage: string | null;
232
178
  kind: "directory" | "file";
@@ -244,7 +190,7 @@ interface WorkspaceFileManagerContextMenuState {
244
190
  interface WorkspaceFileManagerUnsupportedDialogState {
245
191
  actions?: WorkspaceFileManagerHostFallbackAction[] | null;
246
192
  entryPath?: string | null;
247
- kind: "import" | "view";
193
+ kind: "view";
248
194
  message?: string | null;
249
195
  title?: string | null;
250
196
  }
@@ -259,7 +205,6 @@ interface WorkspaceFileManagerState {
259
205
  directoryExpansionByPath: Record<string, WorkspaceFileDirectoryExpansionState>;
260
206
  inlineRenameEntryPath: string | null;
261
207
  inlineRenameValidation: WorkspaceFileManagerInlineRenameValidation | null;
262
- dragDepth: number;
263
208
  entries: WorkspaceFileEntry[];
264
209
  error: string | null;
265
210
  expandedDirectoryPaths: Record<string, boolean>;
@@ -278,7 +223,6 @@ interface WorkspaceFileManagerState {
278
223
  selectedLocationId: string | null;
279
224
  selectedPath: string | null;
280
225
  unsupportedDialog: WorkspaceFileManagerUnsupportedDialogState | null;
281
- importConflictDialog: WorkspaceFileManagerHostImportConflict | null;
282
226
  workspaceID: string;
283
227
  }
284
228
 
@@ -359,15 +303,8 @@ interface WorkspaceFileManagerHost {
359
303
  workspaceID: string;
360
304
  }): Promise<void>;
361
305
  activateFile?(request: WorkspaceFileManagerFileActivationRequest, workspaceID: string): Promise<WorkspaceFileManagerHostFileActivationResult>;
362
- exportEntry?(input: {
363
- entry: WorkspaceFileEntry;
364
- workspaceID: string;
365
- }): Promise<WorkspaceFileManagerHostExportResult>;
366
306
  readPreviewFile?(workspaceID: string, path: string): Promise<Uint8Array | ArrayBuffer>;
367
307
  resolveErrorMessage?(error: unknown, overrides?: Record<string, string>): string;
368
- resolveDroppedPaths?(dataTransfer: Pick<DataTransfer, "files" | "items">): string[];
369
- importFiles?(workspaceID: string, targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
370
- importPaths?(workspaceID: string, targetDirectoryPath: string, sourcePaths: string[]): Promise<WorkspaceFileManagerHostActionResult>;
371
308
  }
372
309
  interface CreateWorkspaceFileManagerSessionInput {
373
310
  i18n: WorkspaceFileManagerI18nRuntime;
@@ -375,7 +312,6 @@ interface CreateWorkspaceFileManagerSessionInput {
375
312
  initialDirectoryPath?: string;
376
313
  defaultLocationId?: string | null;
377
314
  locationSections?: WorkspaceFileLocationSection[];
378
- onHostActionMessage?: (message: WorkspaceFileManagerHostActionMessage) => void;
379
315
  onMutationErrorMessage?: (message: WorkspaceFileManagerMutationErrorMessage) => boolean | void;
380
316
  persistedState?: WorkspaceFileManagerPersistedState | null;
381
317
  persistence?: {
@@ -388,7 +324,7 @@ interface CreateWorkspaceFileManagerSessionInput {
388
324
 
389
325
  interface WorkspaceFileManagerCommands {
390
326
  applyRevealIntent(intent: {
391
- mode?: "reveal" | "open-directory";
327
+ mode?: "select" | "open";
392
328
  path: string;
393
329
  requestID: string;
394
330
  } | null): Promise<void>;
@@ -398,22 +334,18 @@ interface WorkspaceFileManagerCommands {
398
334
  cancelInlineRename(): void;
399
335
  closeTransientUi(): void;
400
336
  closeUnsupportedDialog(): void;
401
- closeImportConflictDialog(): void;
402
337
  confirmCreateDialog(): Promise<void>;
403
338
  confirmDeleteDialog(): Promise<void>;
404
339
  clearInlineRenameValidation(): void;
405
340
  confirmInlineRename(newName: string): Promise<boolean>;
406
341
  copyToClipboard(entry: WorkspaceFileEntry): Promise<void>;
407
- confirmImportConflict(): Promise<void>;
408
342
  createDirectory(path: string): Promise<void>;
409
343
  createFile(path: string): Promise<void>;
410
344
  deleteSelected(): Promise<void>;
411
- decrementDragDepth(): void;
412
345
  goBack(): Promise<void>;
413
346
  goForward(): Promise<void>;
414
347
  getPersistedState(): WorkspaceFileManagerPersistedState;
415
348
  handleActivationFallbackAction(action: WorkspaceFileManagerHostFallbackAction): Promise<void>;
416
- incrementDragDepth(): void;
417
349
  initialize(): Promise<void>;
418
350
  loadDirectory(path?: string): Promise<void>;
419
351
  openContextMenu(input: WorkspaceFileManagerContextMenuState): void;
@@ -432,13 +364,9 @@ interface WorkspaceFileManagerCommands {
432
364
  openFileInSystemDefault(entry: WorkspaceFileEntry): Promise<void>;
433
365
  openFileWithOtherApplication(entry: WorkspaceFileEntry): Promise<void>;
434
366
  revealEntry(entry: WorkspaceFileEntry): Promise<void>;
435
- exportEntry(entry: WorkspaceFileEntry): Promise<WorkspaceFileManagerHostActionResult>;
436
- importDroppedFiles(dataTransfer: Pick<DataTransfer, "files" | "items">, targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
437
- importFiles(targetDirectoryPath: string): Promise<WorkspaceFileManagerHostActionResult>;
438
367
  moveEntry(entry: WorkspaceFileEntry, targetDirectoryPath: string): Promise<void>;
439
368
  refresh(): Promise<void>;
440
369
  revealPath(path: string): Promise<void>;
441
- resetDragDepth(): void;
442
370
  search(query: string): Promise<void>;
443
371
  select(path: string | null): void;
444
372
  selectLocation(locationId: string): Promise<void>;
@@ -472,4 +400,4 @@ declare function resolveWorkspaceFileLocationDefaultId(input: {
472
400
  declare function isWorkspaceFileRecentLocation(location: WorkspaceFileLocation | null | undefined): boolean;
473
401
  declare function isWorkspaceFileExternalLocation(location: WorkspaceFileLocation | null | undefined): boolean;
474
402
 
475
- export { type WorkspaceFileManagerPersistedState as A, type WorkspaceFileManagerService as B, type CreateWorkspaceFileManagerSessionInput as C, type WorkspaceFileManagerSession as D, type WorkspaceFileManagerState as E, type WorkspaceFileOpenWithApplication as F, type WorkspaceFilePreviewKind as G, type WorkspaceFilePreviewState as H, type WorkspaceFileRecentLocation as I, type WorkspaceFileSearchEntry as J, type WorkspaceFileSearchResult as K, createWorkspaceFileManagerService as L, findWorkspaceFileLocationById as M, flattenWorkspaceFileLocations as N, isWorkspaceFileExternalLocation as O, isWorkspaceFileRecentLocation as P, resolveWorkspaceFileLocationDefaultId as Q, type WorkspaceFileActivationTarget as W, type WorkspaceFileDirectoryListing as a, type WorkspaceFileDirectoryLocation as b, type WorkspaceFileEntry as c, type WorkspaceFileEntryKind as d, type WorkspaceFileExternalLocation as e, type WorkspaceFileImportConflict as f, type WorkspaceFileImportSummary as g, type WorkspaceFileImportSummaryReason as h, type WorkspaceFileImportSummaryReasonCount as i, type WorkspaceFileLocation as j, type WorkspaceFileLocationKind as k, type WorkspaceFileLocationSection as l, type WorkspaceFileManagerCapabilities as m, type WorkspaceFileManagerFileActivationRequest as n, type WorkspaceFileManagerFileDefaultOpener as o, type WorkspaceFileManagerHost as p, type WorkspaceFileManagerHostActionMessage as q, type WorkspaceFileManagerHostActionMessageStatus as r, type WorkspaceFileManagerHostActionResult as s, type WorkspaceFileManagerHostExportResult as t, type WorkspaceFileManagerHostFallbackAction as u, type WorkspaceFileManagerHostFallbackActionKind as v, type WorkspaceFileManagerHostFileActivationResult as w, type WorkspaceFileManagerHostImportConflict as x, type WorkspaceFileManagerHostImportResult as y, type WorkspaceFileManagerMutationErrorMessage as z };
403
+ export { createWorkspaceFileManagerService as A, findWorkspaceFileLocationById as B, type CreateWorkspaceFileManagerSessionInput as C, flattenWorkspaceFileLocations as D, isWorkspaceFileExternalLocation as E, isWorkspaceFileRecentLocation as F, resolveWorkspaceFileLocationDefaultId as G, type WorkspaceFileActivationTarget as W, type WorkspaceFileDirectoryListing as a, type WorkspaceFileDirectoryLocation as b, type WorkspaceFileEntry as c, type WorkspaceFileEntryKind as d, type WorkspaceFileExternalLocation as e, type WorkspaceFileLocation as f, type WorkspaceFileLocationKind as g, type WorkspaceFileLocationSection as h, type WorkspaceFileManagerCapabilities as i, type WorkspaceFileManagerFileActivationRequest as j, type WorkspaceFileManagerFileDefaultOpener as k, type WorkspaceFileManagerHost as l, type WorkspaceFileManagerHostFallbackAction as m, type WorkspaceFileManagerHostFallbackActionKind as n, type WorkspaceFileManagerHostFileActivationResult as o, type WorkspaceFileManagerMutationErrorMessage as p, type WorkspaceFileManagerPersistedState as q, type WorkspaceFileManagerService as r, type WorkspaceFileManagerSession as s, type WorkspaceFileManagerState as t, type WorkspaceFileOpenWithApplication as u, type WorkspaceFilePreviewKind as v, type WorkspaceFilePreviewState as w, type WorkspaceFileRecentLocation as x, type WorkspaceFileSearchEntry as y, type WorkspaceFileSearchResult as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tutti-os/workspace-file-manager",
3
- "version": "0.0.197",
3
+ "version": "0.0.199",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -28,9 +28,9 @@
28
28
  "directory": "packages/workspace/file-manager"
29
29
  },
30
30
  "dependencies": {
31
- "@tutti-os/ui-i18n-runtime": "0.0.197",
32
- "@tutti-os/ui-system": "0.0.197",
33
- "@tutti-os/workspace-file-preview": "0.0.197"
31
+ "@tutti-os/ui-i18n-runtime": "0.0.199",
32
+ "@tutti-os/ui-system": "0.0.199",
33
+ "@tutti-os/workspace-file-preview": "0.0.199"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@types/node": "^24.0.1",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/i18n/workspaceFileManagerI18n.ts"],"sourcesContent":["import {\n createScopedLocaleObjectsI18nModuleManifest,\n createScopedI18nRuntime,\n type I18nDictionary,\n type I18nRuntime\n} from \"@tutti-os/ui-i18n-runtime\";\n\ntype WorkspaceFileManagerI18nLocale = \"en\" | \"zh-CN\";\nexport const workspaceFileManagerI18nNamespace = \"workspaceFileManager\";\nexport const tuttiI18nModule = createScopedLocaleObjectsI18nModuleManifest({\n localeObjectByLocale: {\n en: \"workspaceFileManagerEn\",\n \"zh-CN\": \"workspaceFileManagerZhCN\"\n },\n name: \"workspace-file-manager\",\n namespace: \"workspaceFileManager\",\n sourceRoot: \"packages/workspace/file-manager/src\"\n});\n\nconst workspaceFileManagerEn = {\n backLabel: \"Back\",\n arrangeApplicationLabel: \"Application\",\n arrangeCreatedLabel: \"Created\",\n arrangeDateAddedLabel: \"Date Added\",\n arrangeKindLabel: \"Kind\",\n arrangeLastOpenedLabel: \"Last Opened\",\n arrangeMenuLabel: \"Arrange\",\n arrangeNoneLabel: \"None\",\n breadcrumbRootLabel: \"workspace\",\n cancelLabel: \"Cancel\",\n closeLabel: \"Close\",\n copyLabel: \"Copy\",\n copyPathLabel: \"Copy path\",\n copyPathSuccessTitle: \"Path copied\",\n copySuccessTitle: \"Copied to clipboard\",\n createActionLabel: \"Create\",\n createDirectoryLabel: \"New folder\",\n createDirectoryPlaceholder: \"Folder name\",\n createFileLabel: \"New file\",\n createFilePlaceholder: \"File name\",\n createNameInvalid: \"Use a valid name without path separators\",\n createNameRequired: \"Enter a name to continue\",\n clearSearchLabel: \"Clear search\",\n deleteConfirmDescription: \"Delete {{name}} from this workspace?\",\n deleteLabel: \"Delete\",\n deletingLabel: \"Deleting...\",\n downloadFailedTitle: \"Download failed\",\n downloadLabel: \"Download\",\n dropToImportLabel: \"Drop files here to import to the current folder\",\n emptyDirectory: \"No visible files in this folder\",\n collapseFolderLabel: \"Collapse folder\",\n expandFolderLabel: \"Expand folder\",\n forwardLabel: \"Forward\",\n loading: \"Loading\",\n modifiedLabel: \"Modified\",\n nameLabel: \"Name\",\n noSearchResults: \"No files matched your search\",\n openFailedTitle: \"Open failed\",\n openLabel: \"Open\",\n openInAppBrowserLabel: \"Tutti built-in browser\",\n openInDefaultBrowserLabel: \"Default Browser\",\n openInFileViewerLabel: \"File viewer\",\n openWithLabel: \"Open With\",\n openWithLoadingLabel: \"Loading apps...\",\n openWithOtherLabel: \"Other...\",\n openWithOtherPickerPrompt: \"Choose an application to open this file:\",\n revealInFileExplorerLabel: \"Reveal in File Explorer\",\n revealInFileManagerLabel: \"Reveal in File Manager\",\n revealInFinderLabel: \"Reveal in Finder\",\n unknownErrorMessage: \"Something went wrong. Please try again.\",\n previewBinary:\n \"This file looks binary, so the preview stays read-only for now.\",\n previewDecodeFailed:\n \"We couldn't decode this file as UTF-8 text for preview.\",\n previewDirectoryLabel: \"Folder\",\n previewEmptyLabel: \"Select a file or folder to view details\",\n previewFileTooLarge:\n \"This file is larger than {{maxSize}}, so inline preview is disabled.\",\n previewLoadingLabel: \"Loading preview...\",\n previewTooLarge:\n \"This text file is larger than {{maxSize}}, so inline preview is disabled.\",\n previewUnavailableDownloadBody:\n \"Download {{name}} to open it in another environment.\",\n previewUnavailableOpenBody: \"Open {{name}} in your local app instead.\",\n previewUnavailableTitle: \"Can't preview this file\",\n previewUnsupported: \"Inline preview isn't available for this file type yet.\",\n revealFailedTitle: \"Could not reveal in file manager\",\n renameActionLabel: \"Rename\",\n renameLabel: \"Rename\",\n renamePlaceholder: \"New name\",\n refreshLabel: \"Refresh\",\n resizeLocationsSidebar: \"Resize locations sidebar\",\n resizePreviewPanel: \"Resize file details panel\",\n retryLabel: \"Retry\",\n searchPlaceholder: \"Search files\",\n searchResultsLabel: \"Search results\",\n sizeLabel: \"Size\",\n unsupportedImportBody:\n \"Importing local files into the workspace is not wired up in this desktop build yet.\",\n unsupportedImportTitle: \"Import not available yet\",\n unsupportedViewBody:\n \"Opening {{name}} from the file manager is not supported in this desktop build yet.\",\n unsupportedViewTitle: \"Open not available yet\",\n importConflictDescription:\n \"{{count}} file from this import already exists in this folder tree. Replace it?\",\n importConflictReplaceLabel: \"Replace files\",\n importConflictReviewLabel: \"Existing path\",\n importConflictSummaryFiltered: \"Filtered: {{count}}\",\n importConflictSummaryIgnored: \"Ignored: {{count}}\",\n importConflictSummaryReasonIgnored: \"Ignored by rules: {{count}}\",\n importConflictSummaryReasonSymlink: \"Skipped symlinks: {{count}}\",\n importConflictSummaryReasonSystemMetadata:\n \"Skipped system metadata: {{count}}\",\n importConflictSummarySelected: \"Selected: {{count}}\",\n importConflictTitle: \"Replace existing file?\",\n importFailedTitle: \"Import failed\",\n importLabel: \"Import\",\n importTypeConflictDescription:\n \"{{count}} import path conflicts with an existing file or folder using an incompatible type. Resolve it before retrying.\",\n importTypeConflictTitle: \"Import path conflict\",\n layoutIconViewLabel: \"Icon view\",\n layoutIconViewTooltipLabel: \"Icon mode\",\n layoutListViewLabel: \"List view\",\n layoutListViewTooltipLabel: \"List mode\"\n} as const satisfies I18nDictionary;\n\nconst workspaceFileManagerZhCN = {\n backLabel: \"后退\",\n arrangeApplicationLabel: \"应用程序\",\n arrangeCreatedLabel: \"创建日期\",\n arrangeDateAddedLabel: \"添加日期\",\n arrangeKindLabel: \"种类\",\n arrangeLastOpenedLabel: \"上次打开日期\",\n arrangeMenuLabel: \"排列方式\",\n arrangeNoneLabel: \"无\",\n breadcrumbRootLabel: \"工作区\",\n cancelLabel: \"取消\",\n closeLabel: \"关闭\",\n copyLabel: \"复制\",\n copyPathLabel: \"复制路径\",\n copyPathSuccessTitle: \"复制成功\",\n copySuccessTitle: \"已复制到剪贴板\",\n createActionLabel: \"创建\",\n createDirectoryLabel: \"新建文件夹\",\n createDirectoryPlaceholder: \"文件夹名称\",\n createFileLabel: \"新建文件\",\n createFilePlaceholder: \"文件名称\",\n createNameInvalid: \"请输入有效名称,且不要包含路径分隔符\",\n createNameRequired: \"请输入名称后再继续\",\n clearSearchLabel: \"清空搜索\",\n deleteConfirmDescription: \"要从这个工作区删除 {{name}} 吗?\",\n deleteLabel: \"删除\",\n deletingLabel: \"删除中...\",\n downloadFailedTitle: \"下载失败\",\n downloadLabel: \"下载\",\n dropToImportLabel: \"将文件拖到这里以导入到当前文件夹\",\n emptyDirectory: \"这个文件夹里没有可见文件\",\n collapseFolderLabel: \"收起文件夹\",\n expandFolderLabel: \"展开文件夹\",\n forwardLabel: \"前进\",\n loading: \"加载中\",\n modifiedLabel: \"修改时间\",\n nameLabel: \"名称\",\n noSearchResults: \"没有匹配的文件\",\n openFailedTitle: \"打开失败\",\n openLabel: \"打开\",\n openInAppBrowserLabel: \"Tutti 内置的浏览器\",\n openInDefaultBrowserLabel: \"默认浏览器\",\n openInFileViewerLabel: \"文件查看器\",\n openWithLabel: \"打开方式\",\n openWithLoadingLabel: \"正在加载应用...\",\n openWithOtherLabel: \"其他...\",\n openWithOtherPickerPrompt: \"选择用来打开此文件的应用程序:\",\n revealInFileExplorerLabel: \"在文件资源管理器中显示\",\n revealInFileManagerLabel: \"在文件管理器中显示\",\n revealInFinderLabel: \"在 Finder 中显示\",\n unknownErrorMessage: \"出了点问题,请稍后再试。\",\n previewBinary: \"这个文件更像二进制内容,当前先保持只读占位。\",\n previewDecodeFailed: \"暂时无法按 UTF-8 文本解码这个文件。\",\n previewDirectoryLabel: \"文件夹\",\n previewEmptyLabel: \"选择文件或文件夹查看详情\",\n previewFileTooLarge: \"这个文件超过了 {{maxSize}},暂时不做内联预览。\",\n previewLoadingLabel: \"正在加载预览...\",\n previewTooLarge: \"这个文本文件超过了 {{maxSize}},暂时不做内联预览。\",\n previewUnavailableDownloadBody: \"下载 {{name}} 后再在其他环境中打开。\",\n previewUnavailableOpenBody: \"改为在本地应用中打开 {{name}}。\",\n previewUnavailableTitle: \"这个文件暂时无法预览\",\n previewUnsupported: \"这种文件类型暂时还不支持内联预览。\",\n revealFailedTitle: \"无法在文件管理器中显示\",\n renameActionLabel: \"重命名\",\n renameLabel: \"重命名\",\n renamePlaceholder: \"新名称\",\n refreshLabel: \"刷新\",\n resizeLocationsSidebar: \"调整位置侧栏宽度\",\n resizePreviewPanel: \"调整文件详情面板宽度\",\n retryLabel: \"重试\",\n searchPlaceholder: \"搜索文件\",\n searchResultsLabel: \"搜索结果\",\n sizeLabel: \"大小\",\n unsupportedImportBody:\n \"这个桌面版本暂时还没有把本地文件导入到工作区的链路接通。\",\n unsupportedImportTitle: \"暂不支持导入\",\n unsupportedViewBody:\n \"这个桌面版本暂时还不支持直接从文件管理器打开 {{name}}。\",\n unsupportedViewTitle: \"暂不支持打开\",\n importConflictDescription:\n \"这次导入里有 {{count}} 个文件在当前目录树中已经存在。要替换吗?\",\n importConflictReplaceLabel: \"替换文件\",\n importConflictReviewLabel: \"现有路径\",\n importConflictSummaryFiltered: \"已过滤:{{count}}\",\n importConflictSummaryIgnored: \"已忽略:{{count}}\",\n importConflictSummaryReasonIgnored: \"规则忽略:{{count}}\",\n importConflictSummaryReasonSymlink: \"已跳过符号链接:{{count}}\",\n importConflictSummaryReasonSystemMetadata: \"已跳过系统元数据:{{count}}\",\n importConflictSummarySelected: \"已选择:{{count}}\",\n importConflictTitle: \"替换已有文件?\",\n importFailedTitle: \"导入失败\",\n importLabel: \"导入\",\n importTypeConflictDescription:\n \"这次导入里有 {{count}} 个路径与现有文件或文件夹的类型不兼容。请先处理后再重试。\",\n importTypeConflictTitle: \"导入路径冲突\",\n layoutIconViewLabel: \"图标\",\n layoutIconViewTooltipLabel: \"图标模式\",\n layoutListViewLabel: \"列表\",\n layoutListViewTooltipLabel: \"列表模式\"\n} as const satisfies I18nDictionary;\n\nexport type WorkspaceFileManagerI18nKey = keyof typeof workspaceFileManagerEn;\n\nexport type WorkspaceFileManagerI18nRuntime =\n I18nRuntime<WorkspaceFileManagerI18nKey>;\n\nconst workspaceFileManagerDefaults: Record<\n WorkspaceFileManagerI18nLocale,\n I18nDictionary\n> = {\n en: workspaceFileManagerEn,\n \"zh-CN\": workspaceFileManagerZhCN\n};\n\nexport const workspaceFileManagerI18nResources: Record<\n WorkspaceFileManagerI18nLocale,\n I18nDictionary\n> = {\n en: {\n [workspaceFileManagerI18nNamespace]: workspaceFileManagerDefaults.en\n },\n \"zh-CN\": {\n [workspaceFileManagerI18nNamespace]: workspaceFileManagerDefaults[\"zh-CN\"]\n }\n};\n\nexport function createWorkspaceFileManagerI18nRuntime(\n runtime: I18nRuntime<string>\n): WorkspaceFileManagerI18nRuntime {\n return createScopedI18nRuntime<WorkspaceFileManagerI18nKey>(\n runtime,\n workspaceFileManagerI18nNamespace\n );\n}\n\nexport function resolveRevealInFolderLabel(\n copy: WorkspaceFileManagerI18nRuntime,\n platform: NodeJS.Platform\n): string {\n if (platform === \"darwin\") {\n return copy.t(\"revealInFinderLabel\");\n }\n if (platform === \"win32\") {\n return copy.t(\"revealInFileExplorerLabel\");\n }\n return copy.t(\"revealInFileManagerLabel\");\n}\n"],"mappings":"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","names":[]}