@deepseek-ai/dsh-client-ui-plugin-manager 0.1.6-alpha.2
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/LICENSE +21 -0
- package/README.i18n.yaml +6 -0
- package/README.md +129 -0
- package/README.zh.md +129 -0
- package/lib/client.js +2550 -0
- package/lib/index.js +6 -0
- package/lib/types/client/PluginManagerPage.d.ts +18 -0
- package/lib/types/client/PluginsPanelIcon.d.ts +10 -0
- package/lib/types/client/config-ledger.d.ts +38 -0
- package/lib/types/client/index.d.ts +35 -0
- package/lib/types/client/locales.d.ts +320 -0
- package/lib/types/client/manager-store.d.ts +330 -0
- package/lib/types/client/presentation.d.ts +42 -0
- package/lib/types/client/slot-contract.d.ts +56 -0
- package/lib/types/index.d.ts +4 -0
- package/package.json +71 -0
package/lib/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Global plugin management: the Official group's cards for the bundles the
|
|
3
|
+
* installation ships switched off and for the official plugins that register
|
|
4
|
+
* their configuration, the Installed group's cards for the profile's bundles,
|
|
5
|
+
* their row switches, the install dialog with its guide and folded pnpm
|
|
6
|
+
* output, the uninstall confirmation, and the toasts an action's outcome
|
|
7
|
+
* becomes. A bundle's page lists the rows it contributes as the Host runs
|
|
8
|
+
* them; a plugin's configuration renders on its own page through the slots
|
|
9
|
+
* the page declares.
|
|
10
|
+
*/
|
|
11
|
+
import { type ReactNode } from 'react';
|
|
12
|
+
import type { InjectFace, PropsLocale, PropsRenderSlots, PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
13
|
+
import { type PluginManagerFace } from './manager-store.ts';
|
|
14
|
+
/** Full component props assembled by the main slot renderer. */
|
|
15
|
+
export type PluginManagerPageProps = PropsRuntime<'main'> & PropsLocale<'pluginManager'> & PropsRenderSlots<'plugins.item' | 'plugins.bundle.config' | 'plugins.row.config'> & InjectFace<PluginManagerFace>;
|
|
16
|
+
/** Render the plugin manager: the official plugins and installed bundles, their pages, the install dialog, and the confirmation. */
|
|
17
|
+
export declare function PluginManagerPage(props: PluginManagerPageProps): ReactNode;
|
|
18
|
+
//# sourceMappingURL=PluginManagerPage.d.ts.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** The sidebar's Plugins entry icon; the sidebar owns the button, label, and selected state around it. */
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
import type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots';
|
|
4
|
+
/**
|
|
5
|
+
* Render the plugin glyph at the size the sidebar asks for.
|
|
6
|
+
* @param props - the sidebar's icon share: the requested edge and whether the panel is selected.
|
|
7
|
+
* @returns the icon element.
|
|
8
|
+
*/
|
|
9
|
+
export declare function PluginsPanelIcon({ size }: PropsRuntime<'sidebar.panellist'>): ReactNode;
|
|
10
|
+
//# sourceMappingURL=PluginsPanelIcon.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which plugins bring their own configuration to the Plugins page, read from
|
|
3
|
+
* the three slots the page declares: the official plugins listed beside the
|
|
4
|
+
* official bundles, the bundles with a form on their page, and the rows with a
|
|
5
|
+
* page of their own. The projection follows the slot ledgers and the active
|
|
6
|
+
* locale and keeps its snapshot until one of them moves.
|
|
7
|
+
*/
|
|
8
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
9
|
+
import { type HostObservable } from '@deepseek-ai/dsh-client-ui-slots';
|
|
10
|
+
/** One official plugin as the page lists it: its registration id and its title in the active locale. */
|
|
11
|
+
export interface OfficialItem {
|
|
12
|
+
readonly id: string;
|
|
13
|
+
readonly label: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* The plugins carrying configuration: the official plugins in ledger order,
|
|
17
|
+
* the package names of the bundles with a page-level form, and the keys
|
|
18
|
+
* ({@link rowConfigKey}) of the rows with a page.
|
|
19
|
+
*/
|
|
20
|
+
export interface ConfigLedger {
|
|
21
|
+
readonly items: readonly OfficialItem[];
|
|
22
|
+
readonly bundles: ReadonlySet<string>;
|
|
23
|
+
readonly rows: ReadonlySet<string>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* The key a row's configuration registers under.
|
|
27
|
+
* @param bundle - the bundle's package name.
|
|
28
|
+
* @param rowId - the row id the bundle's patch declares.
|
|
29
|
+
* @returns the `plugins.row.config` key.
|
|
30
|
+
*/
|
|
31
|
+
export declare function rowConfigKey(bundle: string, rowId: string): string;
|
|
32
|
+
/**
|
|
33
|
+
* Project the configuration ledgers as one observable the page binds.
|
|
34
|
+
* @param ctx - the page plugin's context, whose slot registry and locale the projection follows.
|
|
35
|
+
* @returns the ledger source; its snapshot changes only when a ledger or the locale does.
|
|
36
|
+
*/
|
|
37
|
+
export declare function configLedgerSource(ctx: ClientContext): HostObservable<ConfigLedger>;
|
|
38
|
+
//# sourceMappingURL=config-ledger.d.ts.map
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin manager, browser half: the **Plugins** entry of the sidebar and the
|
|
3
|
+
* management page it opens in the main column. The page installs, enables,
|
|
4
|
+
* disables, and removes the bundles of the Host's profile through the
|
|
5
|
+
* `pluginManager` Remote and switches their rows in the profile's user layer.
|
|
6
|
+
* A plugin that carries its own configuration renders it on this page through
|
|
7
|
+
* the slots the page declares (`slot-contract.ts`).
|
|
8
|
+
*/
|
|
9
|
+
import type { Context as ClientContext } from '@deepseek-ai/cordis';
|
|
10
|
+
import type { MainPanelId } from '@deepseek-ai/dsh-client-ui-layout/client';
|
|
11
|
+
import { type PluginManagerLocaleKey } from './locales.ts';
|
|
12
|
+
export type { PluginManagerPageProps } from './PluginManagerPage.tsx';
|
|
13
|
+
export type { ConfigLedger, OfficialItem } from './config-ledger.ts';
|
|
14
|
+
export type { PluginManagerFace } from './manager-store.ts';
|
|
15
|
+
export type { PluginManagerLocaleKey } from './locales.ts';
|
|
16
|
+
export type { PluginConfigViewProps } from './slot-contract.ts';
|
|
17
|
+
declare module '@deepseek-ai/dsh-client-ui-slots' {
|
|
18
|
+
interface LocaleNamespaceMap {
|
|
19
|
+
/** Plugin manager tab copy. */
|
|
20
|
+
'pluginManager': PluginManagerLocaleKey;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/** Dictionary namespace owned by this plugin. */
|
|
24
|
+
export declare const NS = "pluginManager";
|
|
25
|
+
/** The id shared by the sidebar entry and the main panel it opens. */
|
|
26
|
+
export declare const PANEL_ID: MainPanelId;
|
|
27
|
+
/** Services required by the sidebar registration and the Remote methods; the inventory says whether the Host manages a profile. */
|
|
28
|
+
export declare const inject: string[];
|
|
29
|
+
/**
|
|
30
|
+
* Contribute the Plugins entry to the sidebar with the management page it
|
|
31
|
+
* opens, and keep it current on the Host's change events.
|
|
32
|
+
* @param ctx - the browser plugin context.
|
|
33
|
+
*/
|
|
34
|
+
export declare function apply(ctx: ClientContext): void;
|
|
35
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
/** Plugin management copy and display names of shipped global rows. */
|
|
2
|
+
/** Simplified Chinese dictionary and key source of truth. */
|
|
3
|
+
export declare const zh: {
|
|
4
|
+
panel: string;
|
|
5
|
+
title: string;
|
|
6
|
+
intro: string;
|
|
7
|
+
loading: string;
|
|
8
|
+
error: string;
|
|
9
|
+
unavailable: string;
|
|
10
|
+
retry: string;
|
|
11
|
+
refresh: string;
|
|
12
|
+
empty: string;
|
|
13
|
+
addPlugin: string;
|
|
14
|
+
restartNotice: string;
|
|
15
|
+
overriddenNotice: string;
|
|
16
|
+
bundlesTitle: string;
|
|
17
|
+
officialTitle: string;
|
|
18
|
+
builtinAgentTeamTitle: string;
|
|
19
|
+
builtinAgentTeamDescription: string;
|
|
20
|
+
builtinAgentTeamWebTitle: string;
|
|
21
|
+
builtinAgentTeamWebDescription: string;
|
|
22
|
+
builtinAutoReviewTitle: string;
|
|
23
|
+
builtinAutoReviewDescription: string;
|
|
24
|
+
statusProblem: string;
|
|
25
|
+
statusBeta: string;
|
|
26
|
+
reasonLabel: string;
|
|
27
|
+
versionTag: string;
|
|
28
|
+
noDescription: string;
|
|
29
|
+
partsLabel: string;
|
|
30
|
+
partsEmpty: string;
|
|
31
|
+
partsCountTotal: string;
|
|
32
|
+
partsCountRunning: string;
|
|
33
|
+
partsCountOff: string;
|
|
34
|
+
partOff: string;
|
|
35
|
+
partsCountFailed: string;
|
|
36
|
+
partsFilter: string;
|
|
37
|
+
partsFilterEmpty: string;
|
|
38
|
+
partToggle: string;
|
|
39
|
+
rowPhasePending: string;
|
|
40
|
+
rowPhaseLoading: string;
|
|
41
|
+
rowPhaseActive: string;
|
|
42
|
+
rowPhaseFailed: string;
|
|
43
|
+
rowPhaseUnloading: string;
|
|
44
|
+
enableToggle: string;
|
|
45
|
+
openDetail: string;
|
|
46
|
+
backToList: string;
|
|
47
|
+
crumbRoot: string;
|
|
48
|
+
backToPackage: string;
|
|
49
|
+
configureRow: string;
|
|
50
|
+
rowStateIdle: string;
|
|
51
|
+
uninstall: string;
|
|
52
|
+
uninstallLabel: string;
|
|
53
|
+
installTitle: string;
|
|
54
|
+
installDescription: string;
|
|
55
|
+
installSpecLabel: string;
|
|
56
|
+
installSpecPlaceholder: string;
|
|
57
|
+
installGuideToggle: string;
|
|
58
|
+
installGuideHide: string;
|
|
59
|
+
installGuideIntro: string;
|
|
60
|
+
installGuideIdNote: string;
|
|
61
|
+
installGuideIdTitle: string;
|
|
62
|
+
installGuideIdExample: string;
|
|
63
|
+
installGuideIdHint: string;
|
|
64
|
+
installGuideGitTitle: string;
|
|
65
|
+
installGuideGitExample: string;
|
|
66
|
+
installGuideGitHint: string;
|
|
67
|
+
installGuidePathTitle: string;
|
|
68
|
+
installGuidePathExample: string;
|
|
69
|
+
installGuidePathHint: string;
|
|
70
|
+
installGuideExampleLabel: string;
|
|
71
|
+
installGuideFill: string;
|
|
72
|
+
installGuideFillAria: string;
|
|
73
|
+
installGuideSafety: string;
|
|
74
|
+
installRun: string;
|
|
75
|
+
installChecking: string;
|
|
76
|
+
installProblemInvalid: string;
|
|
77
|
+
installProblemInstalled: string;
|
|
78
|
+
installProblemNotFound: string;
|
|
79
|
+
installProblemNotPackage: string;
|
|
80
|
+
installProblemNotBundle: string;
|
|
81
|
+
installProblemNetwork: string;
|
|
82
|
+
installProblemUnknown: string;
|
|
83
|
+
installingTitle: string;
|
|
84
|
+
installedTitle: string;
|
|
85
|
+
installFailedTitle: string;
|
|
86
|
+
installEdit: string;
|
|
87
|
+
installEditAria: string;
|
|
88
|
+
installCancel: string;
|
|
89
|
+
installCloseCancels: string;
|
|
90
|
+
installStarting: string;
|
|
91
|
+
installCancelling: string;
|
|
92
|
+
installApplying: string;
|
|
93
|
+
installCancelledShort: string;
|
|
94
|
+
installCancelled: string;
|
|
95
|
+
installCancelUnconfirmed: string;
|
|
96
|
+
installEnableNow: string;
|
|
97
|
+
installDetailsShow: string;
|
|
98
|
+
installDetailsHide: string;
|
|
99
|
+
installVersion: string;
|
|
100
|
+
installSubjectPath: string;
|
|
101
|
+
installSubjectGit: string;
|
|
102
|
+
installSubjectTarball: string;
|
|
103
|
+
installLocation: string;
|
|
104
|
+
installRetry: string;
|
|
105
|
+
installFailureNetwork: string;
|
|
106
|
+
installFailureNotFound: string;
|
|
107
|
+
installFailureNoMatchingVersion: string;
|
|
108
|
+
installFailureDiskFull: string;
|
|
109
|
+
installFailurePermission: string;
|
|
110
|
+
installFailureBuildBlocked: string;
|
|
111
|
+
installFailureBuildBlockedManual: string;
|
|
112
|
+
installFailureIntegrity: string;
|
|
113
|
+
installFailureTimeout: string;
|
|
114
|
+
installFailurePnpmMissing: string;
|
|
115
|
+
installFailureGeneric: string;
|
|
116
|
+
terminalRunning: string;
|
|
117
|
+
terminalFailed: string;
|
|
118
|
+
terminalDone: string;
|
|
119
|
+
terminalCopy: string;
|
|
120
|
+
terminalCopied: string;
|
|
121
|
+
terminalNoOutput: string;
|
|
122
|
+
terminalCollapseAria: string;
|
|
123
|
+
terminalCollapse: string;
|
|
124
|
+
terminalExpandAria: string;
|
|
125
|
+
terminalExpand: string;
|
|
126
|
+
terminalExitCode: string;
|
|
127
|
+
terminalSignal: string;
|
|
128
|
+
terminalNoExitCode: string;
|
|
129
|
+
installDoneNothing: string;
|
|
130
|
+
installDoneRestart: string;
|
|
131
|
+
installDoneApproved: string;
|
|
132
|
+
installApprovalTitle: string;
|
|
133
|
+
installApprovalDescription: string;
|
|
134
|
+
installApprovalConsequence: string;
|
|
135
|
+
installApprovalCaution: string;
|
|
136
|
+
installApproveAndRetry: string;
|
|
137
|
+
installClose: string;
|
|
138
|
+
close: string;
|
|
139
|
+
cancel: string;
|
|
140
|
+
confirmUninstallTitle: string;
|
|
141
|
+
confirmUninstallDescription: string;
|
|
142
|
+
confirmUninstall: string;
|
|
143
|
+
failedEnable: string;
|
|
144
|
+
failedDisable: string;
|
|
145
|
+
failedUninstall: string;
|
|
146
|
+
failedRowEnable: string;
|
|
147
|
+
failedRowDisable: string;
|
|
148
|
+
reasonManagementRequired: string;
|
|
149
|
+
reasonUnaddressable: string;
|
|
150
|
+
reasonUnknownPlugin: string;
|
|
151
|
+
reasonInvalidSpec: string;
|
|
152
|
+
reasonAmbiguousInstall: string;
|
|
153
|
+
reasonNotBundle: string;
|
|
154
|
+
reasonNotRemovable: string;
|
|
155
|
+
reasonStopProfile: string;
|
|
156
|
+
reasonBundleInUse: string;
|
|
157
|
+
reasonStaleApproval: string;
|
|
158
|
+
reasonOperationError: string;
|
|
159
|
+
};
|
|
160
|
+
/** Plugin manager locale key union. */
|
|
161
|
+
export type PluginManagerLocaleKey = keyof typeof zh;
|
|
162
|
+
/** English dictionary checked against the Chinese key set. */
|
|
163
|
+
export declare const en: {
|
|
164
|
+
panel: string;
|
|
165
|
+
title: string;
|
|
166
|
+
intro: string;
|
|
167
|
+
loading: string;
|
|
168
|
+
error: string;
|
|
169
|
+
unavailable: string;
|
|
170
|
+
retry: string;
|
|
171
|
+
refresh: string;
|
|
172
|
+
empty: string;
|
|
173
|
+
addPlugin: string;
|
|
174
|
+
restartNotice: string;
|
|
175
|
+
overriddenNotice: string;
|
|
176
|
+
bundlesTitle: string;
|
|
177
|
+
officialTitle: string;
|
|
178
|
+
builtinAgentTeamTitle: string;
|
|
179
|
+
builtinAgentTeamDescription: string;
|
|
180
|
+
builtinAgentTeamWebTitle: string;
|
|
181
|
+
builtinAgentTeamWebDescription: string;
|
|
182
|
+
builtinAutoReviewTitle: string;
|
|
183
|
+
builtinAutoReviewDescription: string;
|
|
184
|
+
statusProblem: string;
|
|
185
|
+
statusBeta: string;
|
|
186
|
+
reasonLabel: string;
|
|
187
|
+
versionTag: string;
|
|
188
|
+
noDescription: string;
|
|
189
|
+
partsLabel: string;
|
|
190
|
+
partsEmpty: string;
|
|
191
|
+
partsCountTotal: string;
|
|
192
|
+
partsCountRunning: string;
|
|
193
|
+
partsCountOff: string;
|
|
194
|
+
partOff: string;
|
|
195
|
+
partsCountFailed: string;
|
|
196
|
+
partsFilter: string;
|
|
197
|
+
partsFilterEmpty: string;
|
|
198
|
+
partToggle: string;
|
|
199
|
+
rowPhasePending: string;
|
|
200
|
+
rowPhaseLoading: string;
|
|
201
|
+
rowPhaseActive: string;
|
|
202
|
+
rowPhaseFailed: string;
|
|
203
|
+
rowPhaseUnloading: string;
|
|
204
|
+
enableToggle: string;
|
|
205
|
+
openDetail: string;
|
|
206
|
+
backToList: string;
|
|
207
|
+
crumbRoot: string;
|
|
208
|
+
backToPackage: string;
|
|
209
|
+
configureRow: string;
|
|
210
|
+
rowStateIdle: string;
|
|
211
|
+
uninstall: string;
|
|
212
|
+
uninstallLabel: string;
|
|
213
|
+
installTitle: string;
|
|
214
|
+
installDescription: string;
|
|
215
|
+
installSpecLabel: string;
|
|
216
|
+
installSpecPlaceholder: string;
|
|
217
|
+
installGuideToggle: string;
|
|
218
|
+
installGuideHide: string;
|
|
219
|
+
installGuideIntro: string;
|
|
220
|
+
installGuideIdNote: string;
|
|
221
|
+
installGuideIdTitle: string;
|
|
222
|
+
installGuideIdExample: string;
|
|
223
|
+
installGuideIdHint: string;
|
|
224
|
+
installGuideGitTitle: string;
|
|
225
|
+
installGuideGitExample: string;
|
|
226
|
+
installGuideGitHint: string;
|
|
227
|
+
installGuidePathTitle: string;
|
|
228
|
+
installGuidePathExample: string;
|
|
229
|
+
installGuidePathHint: string;
|
|
230
|
+
installGuideExampleLabel: string;
|
|
231
|
+
installGuideFill: string;
|
|
232
|
+
installGuideFillAria: string;
|
|
233
|
+
installGuideSafety: string;
|
|
234
|
+
installRun: string;
|
|
235
|
+
installChecking: string;
|
|
236
|
+
installProblemInvalid: string;
|
|
237
|
+
installProblemInstalled: string;
|
|
238
|
+
installProblemNotFound: string;
|
|
239
|
+
installProblemNotPackage: string;
|
|
240
|
+
installProblemNotBundle: string;
|
|
241
|
+
installProblemNetwork: string;
|
|
242
|
+
installProblemUnknown: string;
|
|
243
|
+
installingTitle: string;
|
|
244
|
+
installedTitle: string;
|
|
245
|
+
installFailedTitle: string;
|
|
246
|
+
installEdit: string;
|
|
247
|
+
installEditAria: string;
|
|
248
|
+
installCancel: string;
|
|
249
|
+
installCloseCancels: string;
|
|
250
|
+
installStarting: string;
|
|
251
|
+
installCancelling: string;
|
|
252
|
+
installApplying: string;
|
|
253
|
+
installCancelledShort: string;
|
|
254
|
+
installCancelled: string;
|
|
255
|
+
installCancelUnconfirmed: string;
|
|
256
|
+
installEnableNow: string;
|
|
257
|
+
installDetailsShow: string;
|
|
258
|
+
installDetailsHide: string;
|
|
259
|
+
installVersion: string;
|
|
260
|
+
installSubjectPath: string;
|
|
261
|
+
installSubjectGit: string;
|
|
262
|
+
installSubjectTarball: string;
|
|
263
|
+
installLocation: string;
|
|
264
|
+
installRetry: string;
|
|
265
|
+
installFailureNetwork: string;
|
|
266
|
+
installFailureNotFound: string;
|
|
267
|
+
installFailureNoMatchingVersion: string;
|
|
268
|
+
installFailureDiskFull: string;
|
|
269
|
+
installFailurePermission: string;
|
|
270
|
+
installFailureBuildBlocked: string;
|
|
271
|
+
installFailureBuildBlockedManual: string;
|
|
272
|
+
installFailureIntegrity: string;
|
|
273
|
+
installFailureTimeout: string;
|
|
274
|
+
installFailurePnpmMissing: string;
|
|
275
|
+
installFailureGeneric: string;
|
|
276
|
+
terminalRunning: string;
|
|
277
|
+
terminalFailed: string;
|
|
278
|
+
terminalDone: string;
|
|
279
|
+
terminalCopy: string;
|
|
280
|
+
terminalCopied: string;
|
|
281
|
+
terminalNoOutput: string;
|
|
282
|
+
terminalCollapseAria: string;
|
|
283
|
+
terminalCollapse: string;
|
|
284
|
+
terminalExpandAria: string;
|
|
285
|
+
terminalExpand: string;
|
|
286
|
+
terminalExitCode: string;
|
|
287
|
+
terminalSignal: string;
|
|
288
|
+
terminalNoExitCode: string;
|
|
289
|
+
installDoneNothing: string;
|
|
290
|
+
installDoneRestart: string;
|
|
291
|
+
installDoneApproved: string;
|
|
292
|
+
installApprovalTitle: string;
|
|
293
|
+
installApprovalDescription: string;
|
|
294
|
+
installApprovalConsequence: string;
|
|
295
|
+
installApprovalCaution: string;
|
|
296
|
+
installApproveAndRetry: string;
|
|
297
|
+
installClose: string;
|
|
298
|
+
close: string;
|
|
299
|
+
cancel: string;
|
|
300
|
+
confirmUninstallTitle: string;
|
|
301
|
+
confirmUninstallDescription: string;
|
|
302
|
+
confirmUninstall: string;
|
|
303
|
+
failedEnable: string;
|
|
304
|
+
failedDisable: string;
|
|
305
|
+
failedUninstall: string;
|
|
306
|
+
failedRowEnable: string;
|
|
307
|
+
failedRowDisable: string;
|
|
308
|
+
reasonManagementRequired: string;
|
|
309
|
+
reasonUnaddressable: string;
|
|
310
|
+
reasonUnknownPlugin: string;
|
|
311
|
+
reasonInvalidSpec: string;
|
|
312
|
+
reasonAmbiguousInstall: string;
|
|
313
|
+
reasonNotBundle: string;
|
|
314
|
+
reasonNotRemovable: string;
|
|
315
|
+
reasonStopProfile: string;
|
|
316
|
+
reasonBundleInUse: string;
|
|
317
|
+
reasonStaleApproval: string;
|
|
318
|
+
reasonOperationError: string;
|
|
319
|
+
};
|
|
320
|
+
//# sourceMappingURL=locales.d.ts.map
|