@synopackageland/sdk 0.0.0-stage → 0.9.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.
Files changed (136) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +34 -2
  3. package/dist/i18n/authorization/de.json +37 -0
  4. package/dist/i18n/authorization/en.json +37 -0
  5. package/dist/i18n/authorization/es.json +37 -0
  6. package/dist/i18n/authorization/fr.json +37 -0
  7. package/dist/i18n/authorization/it.json +37 -0
  8. package/dist/i18n/authorization/ja.json +37 -0
  9. package/dist/i18n/authorization/ko.json +37 -0
  10. package/dist/i18n/authorization/zh-CN.json +37 -0
  11. package/dist/i18n/authorization/zh-TW.json +37 -0
  12. package/dist/i18n/background/de.json +75 -0
  13. package/dist/i18n/background/en.json +75 -0
  14. package/dist/i18n/background/es.json +75 -0
  15. package/dist/i18n/background/fr.json +75 -0
  16. package/dist/i18n/background/it.json +75 -0
  17. package/dist/i18n/background/ja.json +75 -0
  18. package/dist/i18n/background/ko.json +75 -0
  19. package/dist/i18n/background/zh-CN.json +75 -0
  20. package/dist/i18n/background/zh-TW.json +75 -0
  21. package/dist/i18n/delegate/de.json +49 -0
  22. package/dist/i18n/delegate/en.json +49 -0
  23. package/dist/i18n/delegate/es.json +49 -0
  24. package/dist/i18n/delegate/fr.json +49 -0
  25. package/dist/i18n/delegate/it.json +49 -0
  26. package/dist/i18n/delegate/ja.json +49 -0
  27. package/dist/i18n/delegate/ko.json +49 -0
  28. package/dist/i18n/delegate/zh-CN.json +49 -0
  29. package/dist/i18n/delegate/zh-TW.json +49 -0
  30. package/dist/i18n/files/de.json +41 -0
  31. package/dist/i18n/files/en.json +41 -0
  32. package/dist/i18n/files/es.json +41 -0
  33. package/dist/i18n/files/fr.json +41 -0
  34. package/dist/i18n/files/it.json +41 -0
  35. package/dist/i18n/files/ja.json +41 -0
  36. package/dist/i18n/files/ko.json +41 -0
  37. package/dist/i18n/files/zh-CN.json +41 -0
  38. package/dist/i18n/files/zh-TW.json +41 -0
  39. package/dist/i18n/identity/de.json +27 -0
  40. package/dist/i18n/identity/en.json +27 -0
  41. package/dist/i18n/identity/es.json +27 -0
  42. package/dist/i18n/identity/fr.json +27 -0
  43. package/dist/i18n/identity/it.json +27 -0
  44. package/dist/i18n/identity/ja.json +27 -0
  45. package/dist/i18n/identity/ko.json +27 -0
  46. package/dist/i18n/identity/zh-CN.json +27 -0
  47. package/dist/i18n/identity/zh-TW.json +27 -0
  48. package/dist/i18n/save/de.json +42 -0
  49. package/dist/i18n/save/en.json +42 -0
  50. package/dist/i18n/save/es.json +42 -0
  51. package/dist/i18n/save/fr.json +42 -0
  52. package/dist/i18n/save/it.json +42 -0
  53. package/dist/i18n/save/ja.json +42 -0
  54. package/dist/i18n/save/ko.json +42 -0
  55. package/dist/i18n/save/zh-CN.json +42 -0
  56. package/dist/i18n/save/zh-TW.json +42 -0
  57. package/dist/i18n/shell/de.json +4 -0
  58. package/dist/i18n/shell/en.json +4 -0
  59. package/dist/i18n/shell/es.json +4 -0
  60. package/dist/i18n/shell/fr.json +4 -0
  61. package/dist/i18n/shell/it.json +4 -0
  62. package/dist/i18n/shell/ja.json +4 -0
  63. package/dist/i18n/shell/ko.json +4 -0
  64. package/dist/i18n/shell/zh-CN.json +4 -0
  65. package/dist/i18n/shell/zh-TW.json +4 -0
  66. package/dist/index.js +2627 -0
  67. package/dist/src/authorization/AuthorizationGate.vue.d.ts +22 -0
  68. package/dist/src/authorization/i18n.d.ts +3 -0
  69. package/dist/src/background/BackgroundPanel.vue.d.ts +7 -0
  70. package/dist/src/background/i18n.d.ts +79 -0
  71. package/dist/src/background/picker-provider.d.ts +3 -0
  72. package/dist/src/background/request-key.d.ts +1 -0
  73. package/dist/src/context.d.ts +114 -0
  74. package/dist/src/delegate/BackgroundSavePanel.vue.d.ts +18 -0
  75. package/dist/src/delegate/DelegatePanel.vue.d.ts +7 -0
  76. package/dist/src/delegate/ExecutorSettings.vue.d.ts +13 -0
  77. package/dist/src/delegate/copy.d.ts +101 -0
  78. package/dist/src/delegate/executor-setup.d.ts +16 -0
  79. package/dist/src/delegate/facade.d.ts +8 -0
  80. package/dist/src/delegate/long-running.d.ts +74 -0
  81. package/dist/src/delegate/save-copy.d.ts +126 -0
  82. package/dist/src/delegate/scoped-picker.d.ts +3 -0
  83. package/dist/src/delegate/use-executor-setup.d.ts +4 -0
  84. package/dist/src/files/FileBrowser.vue.d.ts +17 -0
  85. package/dist/src/files/FilesPage.vue.d.ts +7 -0
  86. package/dist/src/files/transfers.d.ts +9 -0
  87. package/dist/src/i18n.d.ts +7 -0
  88. package/dist/src/identity/LoginPage.vue.d.ts +8 -0
  89. package/dist/src/identity/i18n.d.ts +31 -0
  90. package/dist/src/identity/session.d.ts +20 -0
  91. package/dist/src/index.d.ts +24 -0
  92. package/dist/src/nas/NasPicker.vue.d.ts +22 -0
  93. package/dist/src/nas/contract.d.ts +27 -0
  94. package/dist/src/nas/i18n.d.ts +2 -0
  95. package/dist/src/nas/locale.d.ts +45 -0
  96. package/dist/src/nas/provider.d.ts +3 -0
  97. package/dist/src/nas/use-request.d.ts +6 -0
  98. package/dist/src/portal/PortalSettings.vue.d.ts +7 -0
  99. package/dist/src/protocol/codec.d.ts +17 -0
  100. package/dist/src/protocol/v1.d.ts +518 -0
  101. package/dist/src/shell/AppShell.vue.d.ts +26 -0
  102. package/dist/src/shell/i18n.d.ts +7 -0
  103. package/dist/src/shell/pages.d.ts +7 -0
  104. package/dist/src/vue.d.ts +15 -0
  105. package/dist/style.css +1 -0
  106. package/dist/vue.js +2331 -0
  107. package/package.json +64 -4
  108. package/spec/protocol/v1/README.md +112 -0
  109. package/spec/protocol/v1/errors.json +454 -0
  110. package/spec/protocol/v1/schema/delegate.audit.json +11 -0
  111. package/spec/protocol/v1/schema/delegate.create.json +49 -0
  112. package/spec/protocol/v1/schema/delegate.disable.json +11 -0
  113. package/spec/protocol/v1/schema/delegate.enable.json +11 -0
  114. package/spec/protocol/v1/schema/delegate.list.json +11 -0
  115. package/spec/protocol/v1/schema/delegate.revoke.json +23 -0
  116. package/spec/protocol/v1/schema/files.cancelOperation.json +24 -0
  117. package/spec/protocol/v1/schema/files.checkPermission.json +30 -0
  118. package/spec/protocol/v1/schema/files.copy.json +42 -0
  119. package/spec/protocol/v1/schema/files.createFolder.json +38 -0
  120. package/spec/protocol/v1/schema/files.delete.json +36 -0
  121. package/spec/protocol/v1/schema/files.info.json +30 -0
  122. package/spec/protocol/v1/schema/files.list.json +30 -0
  123. package/spec/protocol/v1/schema/files.move.json +42 -0
  124. package/spec/protocol/v1/schema/files.moveFromStaging.json +47 -0
  125. package/spec/protocol/v1/schema/files.operationStatus.json +24 -0
  126. package/spec/protocol/v1/schema/files.read.json +35 -0
  127. package/spec/protocol/v1/schema/files.rename.json +35 -0
  128. package/spec/protocol/v1/schema/files.taskCancel.json +29 -0
  129. package/spec/protocol/v1/schema/files.taskStatus.json +29 -0
  130. package/spec/protocol/v1/schema/files.write.json +46 -0
  131. package/spec/protocol/v1/schema/root.run.json +19 -0
  132. package/spec/protocol/v1/schema/status.json +11 -0
  133. package/spec/protocol/v1/vectors/delegate.jsonl +16 -0
  134. package/spec/protocol/v1/vectors/envelope.jsonl +11 -0
  135. package/spec/protocol/v1/vectors/files.jsonl +10 -0
  136. package/spec/protocol/v1/vectors/status.jsonl +2 -0
@@ -0,0 +1,22 @@
1
+ import type { Context } from '../context';
2
+ type __VLS_Props = {
3
+ ctx: Pick<Context, 'locale' | 'displayName' | 'reopen' | 'authorization'>;
4
+ name?: string;
5
+ };
6
+ declare var __VLS_53: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_53) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
11
+ ready: () => any;
12
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
13
+ onReady?: (() => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,3 @@
1
+ export declare const authorizationCatalogs: Record<string, Record<string, string>>;
2
+ /** Root-task semantics are owned by the native product. */
3
+ export declare function authorizationCopy(locale: string, packageName: string): (key: string) => string;
@@ -0,0 +1,7 @@
1
+ import type { Context } from '../context';
2
+ type __VLS_Props = {
3
+ ctx: Pick<Context, 'call' | 'locale'>;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,79 @@
1
+ import en from '../../i18n/background/en.json';
2
+ export type BackgroundCopy = typeof en;
3
+ export declare const backgroundCatalogs: Record<import("..").UiLocale, {
4
+ title: string;
5
+ help: string;
6
+ worker: string;
7
+ workerRunning: string;
8
+ workerStopped: string;
9
+ chooseFile: string;
10
+ chosen: string;
11
+ pickerTitle: string;
12
+ pickerConsent: string;
13
+ submit: string;
14
+ refresh: string;
15
+ cancel: string;
16
+ result: string;
17
+ download: string;
18
+ noJobs: string;
19
+ state_queued: string;
20
+ state_running: string;
21
+ state_succeeded: string;
22
+ state_failed: string;
23
+ state_canceled: string;
24
+ state_interrupted: string;
25
+ limits: string;
26
+ errors: {
27
+ jobs_busy: string;
28
+ failed: string;
29
+ "limit-exceeded": string;
30
+ "queue-full": string;
31
+ "quota-exceeded": string;
32
+ conflict: string;
33
+ not_found: string;
34
+ denied: string;
35
+ session_required: string;
36
+ "owner-queue-full": string;
37
+ "owner-quota-exceeded": string;
38
+ identity_unavailable: string;
39
+ "schedule-full": string;
40
+ "input-unavailable": string;
41
+ unsupported: string;
42
+ };
43
+ ownerScope: string;
44
+ adminScope: string;
45
+ ownerLimits: string;
46
+ owner: string;
47
+ purgeOwner: string;
48
+ purgeConfirm: string;
49
+ confirmPurge: string;
50
+ keepJobs: string;
51
+ schedulesTitle: string;
52
+ scheduleHelp: string;
53
+ scheduleCopy: string;
54
+ scheduleSource: string;
55
+ interval: string;
56
+ hourly: string;
57
+ daily: string;
58
+ weekly: string;
59
+ scheduleConsent: string;
60
+ createSchedule: string;
61
+ noSchedules: string;
62
+ scheduleOn: string;
63
+ scheduleOff: string;
64
+ nextRun: string;
65
+ missedRuns: string;
66
+ disableSchedule: string;
67
+ deleteSchedule: string;
68
+ deleteScheduleConsent: string;
69
+ confirmDeleteSchedule: string;
70
+ enableSchedule: string;
71
+ enableScheduleConsent: string;
72
+ confirmEnableSchedule: string;
73
+ revisionChanged: string;
74
+ scheduledJob: string;
75
+ unknownTime: string;
76
+ unsupported: string;
77
+ }>;
78
+ export declare function backgroundCopy(locale: string): BackgroundCopy;
79
+ export declare function backgroundErrorCopy(e: unknown, copy: BackgroundCopy): string;
@@ -0,0 +1,3 @@
1
+ import type { Context } from '../context';
2
+ import type { NasProvider } from '../nas/contract';
3
+ export declare function createBackgroundPickerProvider(ctx: Pick<Context, 'call'>): NasProvider;
@@ -0,0 +1 @@
1
+ export declare function requestKey(): string;
@@ -0,0 +1,114 @@
1
+ export interface HostPlatformSnapshot {
2
+ readonly web: boolean;
3
+ readonly host: 'dsm' | 'standalone-web' | 'unavailable';
4
+ readonly dsmStandalone: boolean | null;
5
+ readonly dsmLanguage: string | null;
6
+ readonly appLocale: string | null;
7
+ readonly systemVersion: string | null;
8
+ readonly fullVersion: string | null;
9
+ readonly theme: null;
10
+ }
11
+ export type HostTitleResult = {
12
+ status: 'ok';
13
+ target: 'dsm-window' | 'document';
14
+ } | {
15
+ status: 'unsupported' | 'unavailable' | 'invalid-input' | 'failed';
16
+ };
17
+ export type HostRequestResult = {
18
+ status: 'requested';
19
+ } | {
20
+ status: 'unsupported' | 'unavailable' | 'invalid-input' | 'blocked' | 'failed';
21
+ };
22
+ export type HostURLResult = {
23
+ status: 'requested';
24
+ windowHandleAvailable: boolean;
25
+ } | {
26
+ status: 'unsupported' | 'unavailable' | 'invalid-input' | 'failed';
27
+ };
28
+ export type HostEvent = 'window-resize' | 'host-theme-change' | 'host-language-change';
29
+ export type HostSubscriptionResult = {
30
+ status: 'subscribed';
31
+ dispose(): void;
32
+ } | {
33
+ status: 'unsupported' | 'unavailable' | 'invalid-input' | 'failed';
34
+ };
35
+ export type HostFileNavigationResult = {
36
+ status: 'requested';
37
+ action: 'locate-folder' | 'highlight-file';
38
+ } | {
39
+ status: 'unsupported' | 'unavailable' | 'invalid-input' | 'failed';
40
+ };
41
+ export type HostUnsupportedResult = {
42
+ status: 'unsupported' | 'unavailable';
43
+ };
44
+ export interface HostAdapter {
45
+ platform(): HostPlatformSnapshot;
46
+ setTitle(title: string): HostTitleResult;
47
+ activateWindow(): HostRequestResult;
48
+ requestClose(): HostRequestResult;
49
+ openApp(appId: string): HostRequestResult;
50
+ openURL(url: string): HostURLResult;
51
+ openFileManager(path: string): HostFileNavigationResult;
52
+ revealFile(path: string): HostFileNavigationResult;
53
+ openFile(path: string): HostUnsupportedResult;
54
+ showFileDetails(paths: readonly string[]): HostUnsupportedResult;
55
+ openAppSetting(): HostUnsupportedResult;
56
+ subscribe(event: HostEvent, listener: () => void): HostSubscriptionResult;
57
+ dispose(): void;
58
+ }
59
+ export interface PortalStatus {
60
+ state: 'active' | 'inactive' | 'unavailable';
61
+ alias?: string;
62
+ url?: string;
63
+ canManage: boolean;
64
+ controlPanel: boolean;
65
+ defaultAlias: string;
66
+ }
67
+ export interface PortalAccess {
68
+ messages: Record<string, string>;
69
+ status(): Promise<PortalStatus>;
70
+ apply(alias: string): Promise<PortalStatus>;
71
+ disable(): Promise<PortalStatus>;
72
+ openControlPanel(): void;
73
+ mountPanel(element: HTMLElement): {
74
+ refresh(): Promise<void>;
75
+ dispose(): void;
76
+ };
77
+ }
78
+ export interface AuthorizationStatus {
79
+ command: 'authorization';
80
+ schema_version: 1;
81
+ state: 'ready' | 'authorization_required' | 'not_admin' | 'session_expired' | 'unavailable';
82
+ reason?: string | null;
83
+ }
84
+ export interface AuthorizationAccess {
85
+ canManage(): boolean;
86
+ status(): Promise<AuthorizationStatus>;
87
+ request(): Promise<AuthorizationStatus>;
88
+ revoke(): Promise<AuthorizationStatus>;
89
+ }
90
+ export interface Context {
91
+ authorization?: AuthorizationAccess;
92
+ delegate?: import('./delegate/long-running').BackgroundSaveFacade;
93
+ files?: {
94
+ endpoint: string;
95
+ token?: () => string | undefined;
96
+ };
97
+ displayName?: string;
98
+ executor?: import('./delegate/executor-setup').ExecutorSetup;
99
+ user?: {
100
+ readonly name: string;
101
+ readonly isAdmin: boolean;
102
+ };
103
+ portal?: PortalAccess;
104
+ call<T = unknown>(method: string, params?: Record<string, unknown>): Promise<T>;
105
+ reopen(fn: () => void): () => void;
106
+ locale: string;
107
+ host: HostAdapter;
108
+ }
109
+ export interface AppStatus {
110
+ package: string;
111
+ version: string;
112
+ user: string;
113
+ admin: boolean;
114
+ }
@@ -0,0 +1,18 @@
1
+ import type { BackgroundSaveFacade, DestinationGrant } from './long-running';
2
+ import type { NasProvider } from '../nas/contract';
3
+ type __VLS_Props = {
4
+ sdk: BackgroundSaveFacade;
5
+ admin: boolean;
6
+ locale: string;
7
+ picker?: {
8
+ provider: NasProvider;
9
+ keys: string[];
10
+ };
11
+ };
12
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ authorized: (grant: DestinationGrant) => any;
14
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
15
+ onAuthorized?: ((grant: DestinationGrant) => any) | undefined;
16
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
+ declare const _default: typeof __VLS_export;
18
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { Context } from '../context';
2
+ type __VLS_Props = {
3
+ ctx: Pick<Context, 'call' | 'locale'>;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import type { Context } from '../context';
2
+ type __VLS_Props = {
3
+ admin: boolean;
4
+ locale?: string;
5
+ ctx?: Pick<Context, 'call'>;
6
+ };
7
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ confirmed: () => any;
9
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onConfirmed?: (() => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,101 @@
1
+ import en from '../../i18n/delegate/en.json';
2
+ export type DelegateCopy = typeof en;
3
+ export declare const delegateCatalogs: Record<import("..").UiLocale, {
4
+ title: string;
5
+ help: string;
6
+ setupTitle: string;
7
+ setupHelp: string;
8
+ password: string;
9
+ authorize: string;
10
+ confirmShare: string;
11
+ scopeNeeds: string;
12
+ ready: string;
13
+ needs: string;
14
+ blocked: string;
15
+ loading: string;
16
+ details: string;
17
+ refresh: string;
18
+ revoke: string;
19
+ cancel: string;
20
+ noDelegations: string;
21
+ delegations: string;
22
+ expires: string;
23
+ downloads: string;
24
+ noJobs: string;
25
+ url: string;
26
+ name: string;
27
+ choose: string;
28
+ submit: string;
29
+ destination: string;
30
+ pending: string;
31
+ error: string;
32
+ setupError: string;
33
+ denied: string;
34
+ session: string;
35
+ size: string;
36
+ queued: string;
37
+ running: string;
38
+ succeeded: string;
39
+ failed: string;
40
+ canceled: string;
41
+ interrupted: string;
42
+ homeScope: string;
43
+ scopeLabel: string;
44
+ protectedScope: string;
45
+ preselection: string;
46
+ preselectionHelp: string;
47
+ scopeMismatch: string;
48
+ scopeChangeHelp: string;
49
+ confirmScope: string;
50
+ waiting_executor: string;
51
+ }>;
52
+ export declare function delegateCopy(locale?: string): {
53
+ title: string;
54
+ help: string;
55
+ setupTitle: string;
56
+ setupHelp: string;
57
+ password: string;
58
+ authorize: string;
59
+ confirmShare: string;
60
+ scopeNeeds: string;
61
+ ready: string;
62
+ needs: string;
63
+ blocked: string;
64
+ loading: string;
65
+ details: string;
66
+ refresh: string;
67
+ revoke: string;
68
+ cancel: string;
69
+ noDelegations: string;
70
+ delegations: string;
71
+ expires: string;
72
+ downloads: string;
73
+ noJobs: string;
74
+ url: string;
75
+ name: string;
76
+ choose: string;
77
+ submit: string;
78
+ destination: string;
79
+ pending: string;
80
+ error: string;
81
+ setupError: string;
82
+ denied: string;
83
+ session: string;
84
+ size: string;
85
+ queued: string;
86
+ running: string;
87
+ succeeded: string;
88
+ failed: string;
89
+ canceled: string;
90
+ interrupted: string;
91
+ homeScope: string;
92
+ scopeLabel: string;
93
+ protectedScope: string;
94
+ preselection: string;
95
+ preselectionHelp: string;
96
+ scopeMismatch: string;
97
+ scopeChangeHelp: string;
98
+ confirmScope: string;
99
+ waiting_executor: string;
100
+ };
101
+ export declare function errorCopy(error: unknown, copy: DelegateCopy): string;
@@ -0,0 +1,16 @@
1
+ export type CapabilityState = 'unsupported' | 'needs-admin-approval' | 'ready' | 'blocked' | 'incompatible';
2
+ export interface CapabilityStatus {
3
+ state: CapabilityState;
4
+ reason?: string;
5
+ requested?: {
6
+ scope: string;
7
+ generation: number;
8
+ };
9
+ retry?: boolean;
10
+ }
11
+ export interface ExecutorSetup {
12
+ status(): Promise<CapabilityStatus>;
13
+ authorize(password: string, selectedScope?: string): Promise<CapabilityStatus>;
14
+ control(action: 'start' | 'stop' | 'purge'): Promise<CapabilityStatus>;
15
+ subscribe?(listener: (status: CapabilityStatus) => void): void;
16
+ }
@@ -0,0 +1,8 @@
1
+ import type { Context } from '../context';
2
+ import type { BackgroundSaveFacade, OperationRef } from './long-running';
3
+ export interface AppSaveJob extends OperationRef {
4
+ name: string;
5
+ refusal?: string;
6
+ }
7
+ /** Bind the UI facade to the App backend's authenticated delegate.* routes (Go package delegate). */
8
+ export declare function createBackgroundSaveFacade(ctx: Pick<Context, 'call'>, jobs?: () => Promise<readonly AppSaveJob[]>): BackgroundSaveFacade;
@@ -0,0 +1,74 @@
1
+ export interface SelectDestination {
2
+ key: string;
3
+ path: string;
4
+ }
5
+ export interface ScopeSelection {
6
+ scope: string;
7
+ root: string;
8
+ generation: number;
9
+ }
10
+ export interface DestinationState {
11
+ key: string;
12
+ selection: ScopeSelection | null;
13
+ destination: DestinationGrant | null;
14
+ status: 'active' | 'missing' | 'revoked' | 'reselection-required' | 'needs-scope-confirmation' | 'disabled';
15
+ }
16
+ export interface DestinationGrant {
17
+ id: string;
18
+ key: string;
19
+ path: string;
20
+ username: string;
21
+ lifetime: 'until-revoked';
22
+ }
23
+ export type DelegateOperationState = 'queued' | 'copying' | 'committed' | 'canceled' | 'interrupted' | 'uncertain';
24
+ export interface OperationRef {
25
+ delegation_id: string;
26
+ job_id: string;
27
+ }
28
+ export interface OperationResult {
29
+ job_id: string;
30
+ state: DelegateOperationState;
31
+ receipt?: {
32
+ path: string;
33
+ size: number;
34
+ };
35
+ code?: string;
36
+ reason?: string;
37
+ }
38
+ export interface SaveOperation extends OperationResult, OperationRef {
39
+ name: string;
40
+ }
41
+ export interface BackgroundSaveStatus {
42
+ disabled: boolean;
43
+ selection?: ScopeSelection | null;
44
+ scopeMode?: string;
45
+ preselection?: string;
46
+ mismatch?: boolean;
47
+ }
48
+ export interface DestinationSelection {
49
+ key: string;
50
+ selectDestination(input: SelectDestination): Promise<DestinationGrant>;
51
+ }
52
+ export interface BackgroundSaveFacade {
53
+ destination(key: string): Promise<DestinationState>;
54
+ exportExample(input: {
55
+ key: string;
56
+ job_id: string;
57
+ }): Promise<OperationRef>;
58
+ selectDestination(input: SelectDestination): Promise<DestinationGrant>;
59
+ status(): Promise<BackgroundSaveStatus>;
60
+ list(): Promise<DestinationGrant[]>;
61
+ operations(): Promise<SaveOperation[]>;
62
+ revoke(input: {
63
+ delegation_id: string;
64
+ }): Promise<{
65
+ revoked: true;
66
+ }>;
67
+ cancel(input: OperationRef): Promise<OperationResult>;
68
+ disable(): Promise<{
69
+ disabled: true;
70
+ }>;
71
+ enable(): Promise<{
72
+ disabled: false;
73
+ }>;
74
+ }
@@ -0,0 +1,126 @@
1
+ export declare const saveCatalogs: Record<import("..").UiLocale, {
2
+ title: string;
3
+ help: string;
4
+ selection: string;
5
+ delegations: string;
6
+ operations: string;
7
+ empty: string;
8
+ noOperations: string;
9
+ revoke: string;
10
+ choose: string;
11
+ needs: string;
12
+ cancel: string;
13
+ refresh: string;
14
+ disable: string;
15
+ enable: string;
16
+ disableHelp: string;
17
+ disabled: string;
18
+ enabled: string;
19
+ revoked: string;
20
+ untilRevoked: string;
21
+ queued: string;
22
+ copying: string;
23
+ committed: string;
24
+ canceled: string;
25
+ canceling: string;
26
+ interrupted: string;
27
+ uncertain: string;
28
+ uncertainHelp: string;
29
+ interruptedHelp: string;
30
+ loading: string;
31
+ denied: string;
32
+ session: string;
33
+ conflict: string;
34
+ space: string;
35
+ error: string;
36
+ scope: string;
37
+ scopeNeeds: string;
38
+ scopeMismatch: string;
39
+ reselect: string;
40
+ example: string;
41
+ exampleHelp: string;
42
+ }>;
43
+ export declare function saveCopy(locale?: string): {
44
+ title: string;
45
+ help: string;
46
+ selection: string;
47
+ delegations: string;
48
+ operations: string;
49
+ empty: string;
50
+ noOperations: string;
51
+ revoke: string;
52
+ choose: string;
53
+ needs: string;
54
+ cancel: string;
55
+ refresh: string;
56
+ disable: string;
57
+ enable: string;
58
+ disableHelp: string;
59
+ disabled: string;
60
+ enabled: string;
61
+ revoked: string;
62
+ untilRevoked: string;
63
+ queued: string;
64
+ copying: string;
65
+ committed: string;
66
+ canceled: string;
67
+ canceling: string;
68
+ interrupted: string;
69
+ uncertain: string;
70
+ uncertainHelp: string;
71
+ interruptedHelp: string;
72
+ loading: string;
73
+ denied: string;
74
+ session: string;
75
+ conflict: string;
76
+ space: string;
77
+ error: string;
78
+ scope: string;
79
+ scopeNeeds: string;
80
+ scopeMismatch: string;
81
+ reselect: string;
82
+ example: string;
83
+ exampleHelp: string;
84
+ };
85
+ export declare function saveError(error: unknown, copy?: {
86
+ title: string;
87
+ help: string;
88
+ selection: string;
89
+ delegations: string;
90
+ operations: string;
91
+ empty: string;
92
+ noOperations: string;
93
+ revoke: string;
94
+ choose: string;
95
+ needs: string;
96
+ cancel: string;
97
+ refresh: string;
98
+ disable: string;
99
+ enable: string;
100
+ disableHelp: string;
101
+ disabled: string;
102
+ enabled: string;
103
+ revoked: string;
104
+ untilRevoked: string;
105
+ queued: string;
106
+ copying: string;
107
+ committed: string;
108
+ canceled: string;
109
+ canceling: string;
110
+ interrupted: string;
111
+ uncertain: string;
112
+ uncertainHelp: string;
113
+ interruptedHelp: string;
114
+ loading: string;
115
+ denied: string;
116
+ session: string;
117
+ conflict: string;
118
+ space: string;
119
+ error: string;
120
+ scope: string;
121
+ scopeNeeds: string;
122
+ scopeMismatch: string;
123
+ reselect: string;
124
+ example: string;
125
+ exampleHelp: string;
126
+ }): string;
@@ -0,0 +1,3 @@
1
+ import type { NasProvider } from '../nas/contract';
2
+ /** A UX bound only; the executor independently enforces its protected scope. */
3
+ export declare function scopedPicker(source: NasProvider, root: string): NasProvider;
@@ -0,0 +1,4 @@
1
+ import { type InjectionKey } from 'vue';
2
+ import type { ExecutorSetup } from './executor-setup';
3
+ export declare const ExecutorSetupKey: InjectionKey<ExecutorSetup>;
4
+ export declare function useExecutorSetup(): ExecutorSetup;
@@ -0,0 +1,17 @@
1
+ import type { NasProvider } from '../nas/contract';
2
+ type __VLS_Props = {
3
+ provider: NasProvider;
4
+ locale: string;
5
+ mode?: 'folder' | 'file';
6
+ transfers?: boolean;
7
+ };
8
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
9
+ selected: (path: string | undefined) => any;
10
+ }, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{
11
+ onSelected?: ((path: string | undefined) => any) | undefined;
12
+ }>, {
13
+ mode: "folder" | "file";
14
+ transfers: boolean;
15
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import type { Context } from '../context';
2
+ type __VLS_Props = {
3
+ ctx: Context;
4
+ };
5
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,9 @@
1
+ export interface FileTransport {
2
+ endpoint: string;
3
+ token?: () => string | undefined;
4
+ }
5
+ export declare function createFileTransfers(transport: FileTransport): {
6
+ download(path: string): void;
7
+ dispose(): void;
8
+ upload(parent: string, file: File, signal: AbortSignal): Promise<void>;
9
+ };
@@ -0,0 +1,7 @@
1
+ export type UiLocale = 'en' | 'zh-TW' | 'zh-CN' | 'ja' | 'ko' | 'de' | 'fr' | 'es' | 'it';
2
+ export declare const uiLocales: readonly UiLocale[];
3
+ /** The built-in UI locale (shared by these catalogs and the UI's own text) for a DSM or BCP-47 language tag. */
4
+ export declare function uiLocale(locale: string): UiLocale;
5
+ /** The catalogs of one capability by locale, typed by its en catalog. Each
6
+ * capability globs its own folder, so a bundle carries only what it imports. */
7
+ export declare function catalogs<T>(files: Record<string, unknown>, _en: T): Record<UiLocale, T>;
@@ -0,0 +1,8 @@
1
+ import type { IdentitySession } from './session';
2
+ type __VLS_Props = {
3
+ session: IdentitySession;
4
+ locale: string;
5
+ };
6
+ declare const __VLS_export: import("vue").DefineComponent<__VLS_Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;