@openfairygui/backend 0.2.0-alpha.2 → 0.2.0-alpha.21
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/README.md +48 -2
- package/dist/index.cjs +146 -1
- package/dist/index.d.cts +33 -2
- package/dist/index.d.mts +33 -2
- package/dist/index.mjs +146 -2
- package/dist/node.cjs +1 -1
- package/dist/node.d.cts +1 -1
- package/dist/node.d.mts +1 -1
- package/dist/node.mjs +1 -1
- package/dist/{runtime-OO1sHuCl.d.mts → runtime-B4SwHTRC.d.mts} +89 -10
- package/dist/{runtime-qcSlD_9-.d.cts → runtime-BB_3Ws5y.d.cts} +90 -11
- package/dist/{runtime-BPWzx-Tv.mjs → runtime-CqGK_D9A.mjs} +483 -87
- package/dist/{runtime-BL9Pkfc7.cjs → runtime-D3bShb1X.cjs} +482 -86
- package/package.json +5 -4
- package/src/contracts.ts +8 -0
- package/src/index.ts +25 -12
- package/src/runtime/capabilities.ts +126 -0
- package/src/runtime/contracts.ts +512 -0
- package/src/runtime.ts +67 -540
- package/src/services/authoring-service.ts +520 -80
- package/src/services/context.ts +12 -8
- package/src/services/runtime-service.ts +108 -12
- package/src/services/session-project-writer.ts +64 -0
- package/src/services/session-utils.ts +5 -1
- package/src/storage.ts +194 -0
|
@@ -18,6 +18,14 @@ interface BackendDiagnostic {
|
|
|
18
18
|
code: string;
|
|
19
19
|
message: string;
|
|
20
20
|
severity: 'info' | 'warning' | 'error';
|
|
21
|
+
path?: string;
|
|
22
|
+
nodeKind?: string;
|
|
23
|
+
resourceKind?: string;
|
|
24
|
+
gearKind?: string;
|
|
25
|
+
field?: string;
|
|
26
|
+
operationKind?: string;
|
|
27
|
+
opIndex?: number;
|
|
28
|
+
opId?: string;
|
|
21
29
|
}
|
|
22
30
|
interface BackendResponseMeta {
|
|
23
31
|
requestId: string;
|
|
@@ -40,7 +48,7 @@ interface PathPolicyViolationError {
|
|
|
40
48
|
allowedPath: string;
|
|
41
49
|
}
|
|
42
50
|
//#endregion
|
|
43
|
-
//#region src/runtime.d.ts
|
|
51
|
+
//#region src/runtime/contracts.d.ts
|
|
44
52
|
interface BackendFileHandle {
|
|
45
53
|
writeFile(content: string): Promise<void>;
|
|
46
54
|
close(): Promise<void>;
|
|
@@ -87,7 +95,13 @@ interface BackendCapabilityManifest {
|
|
|
87
95
|
adapters: {
|
|
88
96
|
fileSystem: {
|
|
89
97
|
injected: true;
|
|
90
|
-
requiredFor: readonly ['openSession', 'saveSession'];
|
|
98
|
+
requiredFor: readonly ['openSession', 'saveSession', 'materializeSession'];
|
|
99
|
+
};
|
|
100
|
+
projectStorage: {
|
|
101
|
+
injected: true;
|
|
102
|
+
browserSafe: true;
|
|
103
|
+
requiredFor: readonly ['openProjectSession.writeback', 'saveSession', 'materializeSession'];
|
|
104
|
+
adapterFactory: 'createBackendStorageFileSystem';
|
|
91
105
|
};
|
|
92
106
|
host: {
|
|
93
107
|
injected: true;
|
|
@@ -111,7 +125,7 @@ interface BackendCapabilities {
|
|
|
111
125
|
transactionKernelOwner: '@openfairygui/core';
|
|
112
126
|
appSeamOwner: '@openfairygui/functions';
|
|
113
127
|
runtimeOwner: '@openfairygui/backend';
|
|
114
|
-
methods: readonly ['getCapabilities', 'openSession', 'openProjectSession', 'getSession', 'applyTransaction', 'saveSession', 'closeSession', 'getEvents', 'getJob', 'listJobs', 'cancelJob', 'getCacheSnapshot', 'refreshCache'];
|
|
128
|
+
methods: readonly ['getCapabilities', 'openSession', 'openProjectSession', 'getSession', 'applyTransaction', 'saveSession', 'materializeSession', 'closeSession', 'getEvents', 'getJob', 'listJobs', 'cancelJob', 'getCacheSnapshot', 'refreshCache'];
|
|
115
129
|
read: {
|
|
116
130
|
capabilitySnapshot: true;
|
|
117
131
|
sessionSnapshot: true;
|
|
@@ -122,6 +136,11 @@ interface BackendCapabilities {
|
|
|
122
136
|
resourceKinds: readonly string[];
|
|
123
137
|
nodeKinds: readonly string[];
|
|
124
138
|
gearKinds: readonly string[];
|
|
139
|
+
transactionScope: {
|
|
140
|
+
resourceKinds: readonly string[];
|
|
141
|
+
nodeKinds: readonly string[];
|
|
142
|
+
gearKinds: readonly string[];
|
|
143
|
+
};
|
|
125
144
|
unsupported: readonly ['artifact.publish', 'artifact.restore'];
|
|
126
145
|
};
|
|
127
146
|
artifact: {
|
|
@@ -174,9 +193,19 @@ interface BackendSessionSnapshot {
|
|
|
174
193
|
revision: number;
|
|
175
194
|
lastSavedRevision: number;
|
|
176
195
|
dirty: boolean;
|
|
196
|
+
uamFidelity: 'full' | 'unsupported';
|
|
177
197
|
lockHeld: boolean;
|
|
178
198
|
capabilities: BackendCapabilities;
|
|
179
199
|
}
|
|
200
|
+
interface MaterializeSessionSnapshot extends BackendSessionSnapshot {
|
|
201
|
+
mode: 'fullProject';
|
|
202
|
+
reason?: string;
|
|
203
|
+
materializeRevision: number;
|
|
204
|
+
saveRevision: number;
|
|
205
|
+
writtenPaths: string[];
|
|
206
|
+
skippedPaths: string[];
|
|
207
|
+
diagnostics: BackendDiagnostic[];
|
|
208
|
+
}
|
|
180
209
|
interface BackendSuccess<T> {
|
|
181
210
|
ok: true;
|
|
182
211
|
meta: BackendResponseMeta;
|
|
@@ -229,6 +258,33 @@ interface SavePartialFailureError {
|
|
|
229
258
|
failedPaths: string[];
|
|
230
259
|
diskMayBePartiallyUpdated: true;
|
|
231
260
|
}
|
|
261
|
+
interface UamFidelityUnsupportedError {
|
|
262
|
+
code: 'uam_fidelity_unsupported';
|
|
263
|
+
message: string;
|
|
264
|
+
sessionId: string;
|
|
265
|
+
canonicalPathKey: string;
|
|
266
|
+
}
|
|
267
|
+
interface MaterializeValidationFailedError {
|
|
268
|
+
code: 'materialize_validation_failed';
|
|
269
|
+
message: string;
|
|
270
|
+
sessionId: string;
|
|
271
|
+
canonicalPathKey: string;
|
|
272
|
+
issueCount: number;
|
|
273
|
+
diagnostics: BackendDiagnostic[];
|
|
274
|
+
}
|
|
275
|
+
interface MaterializeWriteFailedError {
|
|
276
|
+
code: 'write_failed';
|
|
277
|
+
message: string;
|
|
278
|
+
sessionId: string;
|
|
279
|
+
canonicalPathKey: string;
|
|
280
|
+
attemptedRevision: number;
|
|
281
|
+
lastSavedRevision: number;
|
|
282
|
+
writtenPaths: string[];
|
|
283
|
+
failedPaths: string[];
|
|
284
|
+
skippedPaths: string[];
|
|
285
|
+
diagnostics: BackendDiagnostic[];
|
|
286
|
+
diskMayBePartiallyUpdated: true;
|
|
287
|
+
}
|
|
232
288
|
type BackendEventKind = 'session.opened' | 'transaction.applied' | 'transaction.rejected' | 'save.started' | 'save.completed' | 'save.failed' | 'session.closeRequested' | 'session.closed' | 'cache.invalidated' | 'cache.updated' | 'job.created' | 'job.started' | 'job.progress' | 'job.cancelRequested' | 'job.cancelled' | 'job.completed' | 'job.failed';
|
|
233
289
|
interface BackendEvent {
|
|
234
290
|
sequence: number;
|
|
@@ -360,7 +416,7 @@ interface RefreshCacheInput {
|
|
|
360
416
|
sessionId: string;
|
|
361
417
|
reason?: 'manual' | 'session_open' | 'after_save';
|
|
362
418
|
}
|
|
363
|
-
type BackendError = SessionNotFoundError | SessionStaleWriteError | InProcessLockConflictError | AdvisoryLockConflictError | SavePartialFailureError | PathPolicyViolationError | EventCursorInvalidError | BackendJobNotFoundError | BackendJobNotCancellableError | BackendJobCancelledError | CacheRefreshFailedError | BackendCapabilityUnavailableError | ApplyUamTransactionAppError;
|
|
419
|
+
type BackendError = SessionNotFoundError | SessionStaleWriteError | InProcessLockConflictError | AdvisoryLockConflictError | SavePartialFailureError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | EventCursorInvalidError | BackendJobNotFoundError | BackendJobNotCancellableError | BackendJobCancelledError | CacheRefreshFailedError | BackendCapabilityUnavailableError | ApplyUamTransactionAppError;
|
|
364
420
|
interface ApplySessionTransactionInput {
|
|
365
421
|
sessionId: string;
|
|
366
422
|
expectedRevision: number;
|
|
@@ -371,11 +427,37 @@ interface OpenProjectSessionInput {
|
|
|
371
427
|
sessionId?: string;
|
|
372
428
|
canonicalProjectPath?: string;
|
|
373
429
|
canonicalPathKey?: string;
|
|
430
|
+
storage?: BackendProjectSessionStorage;
|
|
431
|
+
}
|
|
432
|
+
interface BackendProjectSessionStorage {
|
|
433
|
+
fileSystem: BackendFileSystem;
|
|
434
|
+
fairyPath: string;
|
|
435
|
+
canonicalProjectPath?: string;
|
|
436
|
+
canonicalPathKey?: string;
|
|
437
|
+
}
|
|
438
|
+
interface SaveSessionInput {
|
|
439
|
+
sessionId: string;
|
|
440
|
+
expectedRevision?: number;
|
|
441
|
+
targetPath?: string;
|
|
442
|
+
fileSystem?: BackendFileSystem;
|
|
443
|
+
force?: boolean;
|
|
444
|
+
mode?: 'materializeCleanSession';
|
|
445
|
+
}
|
|
446
|
+
interface MaterializeSessionInput {
|
|
447
|
+
sessionId: string;
|
|
448
|
+
expectedRevision?: number;
|
|
449
|
+
storage?: BackendProjectSessionStorage;
|
|
450
|
+
targetPath?: string;
|
|
451
|
+
fileSystem?: BackendFileSystem;
|
|
452
|
+
mode?: 'fullProject';
|
|
453
|
+
reason?: string;
|
|
374
454
|
}
|
|
375
455
|
interface BackendRuntimeOptions {
|
|
376
456
|
fileSystem?: BackendFileSystem;
|
|
377
457
|
host?: BackendHostAdapter;
|
|
378
458
|
}
|
|
459
|
+
//#endregion
|
|
460
|
+
//#region src/runtime.d.ts
|
|
379
461
|
declare class BackendRuntime {
|
|
380
462
|
private readonly fileSystem?;
|
|
381
463
|
private readonly capabilities;
|
|
@@ -402,11 +484,8 @@ declare class BackendRuntime {
|
|
|
402
484
|
sessionId: string;
|
|
403
485
|
}): BackendResult<BackendSessionSnapshot, SessionNotFoundError>;
|
|
404
486
|
applyTransaction(input: ApplySessionTransactionInput): Promise<BackendResult<BackendSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | ApplyUamTransactionAppError>>;
|
|
405
|
-
saveSession(input:
|
|
406
|
-
|
|
407
|
-
expectedRevision?: number;
|
|
408
|
-
targetPath?: string;
|
|
409
|
-
}): Promise<BackendResult<BackendSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | SavePartialFailureError | PathPolicyViolationError | BackendCapabilityUnavailableError>>;
|
|
487
|
+
saveSession(input: SaveSessionInput): Promise<BackendResult<BackendSessionSnapshot | MaterializeSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | SavePartialFailureError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | InProcessLockConflictError | BackendCapabilityUnavailableError>>;
|
|
488
|
+
materializeSession(input: MaterializeSessionInput): Promise<BackendResult<MaterializeSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | InProcessLockConflictError | BackendCapabilityUnavailableError>>;
|
|
410
489
|
closeSession(input: {
|
|
411
490
|
sessionId: string;
|
|
412
491
|
}): Promise<BackendResult<{
|
|
@@ -421,4 +500,4 @@ declare class BackendRuntime {
|
|
|
421
500
|
refreshCache(input: RefreshCacheInput): BackendResult<BackendJobSnapshot, SessionNotFoundError>;
|
|
422
501
|
}
|
|
423
502
|
//#endregion
|
|
424
|
-
export {
|
|
503
|
+
export { BACKEND_COMPATIBILITY_POLICY as $, BackendSessionSnapshot as A, ListJobsInput as B, BackendJobNotFoundError as C, BackendProjectSessionStorage as D, BackendJobStatus as E, GetCacheSnapshotInput as F, OpenProjectSessionInput as G, MaterializeSessionSnapshot as H, GetEventsInput as I, SaveSessionInput as J, RefreshCacheInput as K, GetEventsSnapshot as L, CacheRefreshFailedError as M, CancelJobInput as N, BackendResult as O, EventCursorInvalidError as P, BACKEND_CAPABILITY_SCHEMA_VERSION as Q, GetJobInput as R, BackendJobNotCancellableError as S, BackendJobSnapshot as T, MaterializeValidationFailedError as U, MaterializeSessionInput as V, MaterializeWriteFailedError as W, SessionStaleWriteError as X, SessionNotFoundError as Y, UamFidelityUnsupportedError as Z, BackendHostAdapter as _, BackendCacheEntry as a, BackendJobListSnapshot as b, BackendCapabilityManifest as c, BackendEvent as d, BACKEND_CONTRACT_VERSION as et, BackendEventKind as f, BackendFileSystem as g, BackendFileStat as h, BackendArtifactBridgeCapability as i, BackendStage as it, BackendSuccess as j, BackendRuntimeOptions as k, BackendCapabilityUnavailableError as l, BackendFileHandle as m, AdvisoryLockConflictError as n, BackendMessage as nt, BackendCacheSnapshot as o, BackendFailure as p, SavePartialFailureError as q, ApplySessionTransactionInput as r, BackendResponseMeta as rt, BackendCapabilities as s, BackendRuntime as t, BackendDiagnostic as tt, BackendError as u, BackendJobErrors as v, BackendJobProgress as w, BackendJobListStatusFilter as x, BackendJobKind as y, InProcessLockConflictError as z };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UamProject, UamTransactionOperation } from "@openfairygui/core/uam";
|
|
2
1
|
import { ApplyUamTransactionAppError } from "@openfairygui/functions/uam";
|
|
2
|
+
import { UamProject, UamTransactionOperation } from "@openfairygui/core/uam";
|
|
3
3
|
|
|
4
4
|
//#region src/contracts.d.ts
|
|
5
5
|
declare const BACKEND_CONTRACT_VERSION: "1.1.0-p2";
|
|
@@ -18,6 +18,14 @@ interface BackendDiagnostic {
|
|
|
18
18
|
code: string;
|
|
19
19
|
message: string;
|
|
20
20
|
severity: 'info' | 'warning' | 'error';
|
|
21
|
+
path?: string;
|
|
22
|
+
nodeKind?: string;
|
|
23
|
+
resourceKind?: string;
|
|
24
|
+
gearKind?: string;
|
|
25
|
+
field?: string;
|
|
26
|
+
operationKind?: string;
|
|
27
|
+
opIndex?: number;
|
|
28
|
+
opId?: string;
|
|
21
29
|
}
|
|
22
30
|
interface BackendResponseMeta {
|
|
23
31
|
requestId: string;
|
|
@@ -40,7 +48,7 @@ interface PathPolicyViolationError {
|
|
|
40
48
|
allowedPath: string;
|
|
41
49
|
}
|
|
42
50
|
//#endregion
|
|
43
|
-
//#region src/runtime.d.ts
|
|
51
|
+
//#region src/runtime/contracts.d.ts
|
|
44
52
|
interface BackendFileHandle {
|
|
45
53
|
writeFile(content: string): Promise<void>;
|
|
46
54
|
close(): Promise<void>;
|
|
@@ -87,7 +95,13 @@ interface BackendCapabilityManifest {
|
|
|
87
95
|
adapters: {
|
|
88
96
|
fileSystem: {
|
|
89
97
|
injected: true;
|
|
90
|
-
requiredFor: readonly ['openSession', 'saveSession'];
|
|
98
|
+
requiredFor: readonly ['openSession', 'saveSession', 'materializeSession'];
|
|
99
|
+
};
|
|
100
|
+
projectStorage: {
|
|
101
|
+
injected: true;
|
|
102
|
+
browserSafe: true;
|
|
103
|
+
requiredFor: readonly ['openProjectSession.writeback', 'saveSession', 'materializeSession'];
|
|
104
|
+
adapterFactory: 'createBackendStorageFileSystem';
|
|
91
105
|
};
|
|
92
106
|
host: {
|
|
93
107
|
injected: true;
|
|
@@ -111,7 +125,7 @@ interface BackendCapabilities {
|
|
|
111
125
|
transactionKernelOwner: '@openfairygui/core';
|
|
112
126
|
appSeamOwner: '@openfairygui/functions';
|
|
113
127
|
runtimeOwner: '@openfairygui/backend';
|
|
114
|
-
methods: readonly ['getCapabilities', 'openSession', 'openProjectSession', 'getSession', 'applyTransaction', 'saveSession', 'closeSession', 'getEvents', 'getJob', 'listJobs', 'cancelJob', 'getCacheSnapshot', 'refreshCache'];
|
|
128
|
+
methods: readonly ['getCapabilities', 'openSession', 'openProjectSession', 'getSession', 'applyTransaction', 'saveSession', 'materializeSession', 'closeSession', 'getEvents', 'getJob', 'listJobs', 'cancelJob', 'getCacheSnapshot', 'refreshCache'];
|
|
115
129
|
read: {
|
|
116
130
|
capabilitySnapshot: true;
|
|
117
131
|
sessionSnapshot: true;
|
|
@@ -122,6 +136,11 @@ interface BackendCapabilities {
|
|
|
122
136
|
resourceKinds: readonly string[];
|
|
123
137
|
nodeKinds: readonly string[];
|
|
124
138
|
gearKinds: readonly string[];
|
|
139
|
+
transactionScope: {
|
|
140
|
+
resourceKinds: readonly string[];
|
|
141
|
+
nodeKinds: readonly string[];
|
|
142
|
+
gearKinds: readonly string[];
|
|
143
|
+
};
|
|
125
144
|
unsupported: readonly ['artifact.publish', 'artifact.restore'];
|
|
126
145
|
};
|
|
127
146
|
artifact: {
|
|
@@ -174,9 +193,19 @@ interface BackendSessionSnapshot {
|
|
|
174
193
|
revision: number;
|
|
175
194
|
lastSavedRevision: number;
|
|
176
195
|
dirty: boolean;
|
|
196
|
+
uamFidelity: 'full' | 'unsupported';
|
|
177
197
|
lockHeld: boolean;
|
|
178
198
|
capabilities: BackendCapabilities;
|
|
179
199
|
}
|
|
200
|
+
interface MaterializeSessionSnapshot extends BackendSessionSnapshot {
|
|
201
|
+
mode: 'fullProject';
|
|
202
|
+
reason?: string;
|
|
203
|
+
materializeRevision: number;
|
|
204
|
+
saveRevision: number;
|
|
205
|
+
writtenPaths: string[];
|
|
206
|
+
skippedPaths: string[];
|
|
207
|
+
diagnostics: BackendDiagnostic[];
|
|
208
|
+
}
|
|
180
209
|
interface BackendSuccess<T> {
|
|
181
210
|
ok: true;
|
|
182
211
|
meta: BackendResponseMeta;
|
|
@@ -229,6 +258,33 @@ interface SavePartialFailureError {
|
|
|
229
258
|
failedPaths: string[];
|
|
230
259
|
diskMayBePartiallyUpdated: true;
|
|
231
260
|
}
|
|
261
|
+
interface UamFidelityUnsupportedError {
|
|
262
|
+
code: 'uam_fidelity_unsupported';
|
|
263
|
+
message: string;
|
|
264
|
+
sessionId: string;
|
|
265
|
+
canonicalPathKey: string;
|
|
266
|
+
}
|
|
267
|
+
interface MaterializeValidationFailedError {
|
|
268
|
+
code: 'materialize_validation_failed';
|
|
269
|
+
message: string;
|
|
270
|
+
sessionId: string;
|
|
271
|
+
canonicalPathKey: string;
|
|
272
|
+
issueCount: number;
|
|
273
|
+
diagnostics: BackendDiagnostic[];
|
|
274
|
+
}
|
|
275
|
+
interface MaterializeWriteFailedError {
|
|
276
|
+
code: 'write_failed';
|
|
277
|
+
message: string;
|
|
278
|
+
sessionId: string;
|
|
279
|
+
canonicalPathKey: string;
|
|
280
|
+
attemptedRevision: number;
|
|
281
|
+
lastSavedRevision: number;
|
|
282
|
+
writtenPaths: string[];
|
|
283
|
+
failedPaths: string[];
|
|
284
|
+
skippedPaths: string[];
|
|
285
|
+
diagnostics: BackendDiagnostic[];
|
|
286
|
+
diskMayBePartiallyUpdated: true;
|
|
287
|
+
}
|
|
232
288
|
type BackendEventKind = 'session.opened' | 'transaction.applied' | 'transaction.rejected' | 'save.started' | 'save.completed' | 'save.failed' | 'session.closeRequested' | 'session.closed' | 'cache.invalidated' | 'cache.updated' | 'job.created' | 'job.started' | 'job.progress' | 'job.cancelRequested' | 'job.cancelled' | 'job.completed' | 'job.failed';
|
|
233
289
|
interface BackendEvent {
|
|
234
290
|
sequence: number;
|
|
@@ -360,7 +416,7 @@ interface RefreshCacheInput {
|
|
|
360
416
|
sessionId: string;
|
|
361
417
|
reason?: 'manual' | 'session_open' | 'after_save';
|
|
362
418
|
}
|
|
363
|
-
type BackendError = SessionNotFoundError | SessionStaleWriteError | InProcessLockConflictError | AdvisoryLockConflictError | SavePartialFailureError | PathPolicyViolationError | EventCursorInvalidError | BackendJobNotFoundError | BackendJobNotCancellableError | BackendJobCancelledError | CacheRefreshFailedError | BackendCapabilityUnavailableError | ApplyUamTransactionAppError;
|
|
419
|
+
type BackendError = SessionNotFoundError | SessionStaleWriteError | InProcessLockConflictError | AdvisoryLockConflictError | SavePartialFailureError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | EventCursorInvalidError | BackendJobNotFoundError | BackendJobNotCancellableError | BackendJobCancelledError | CacheRefreshFailedError | BackendCapabilityUnavailableError | ApplyUamTransactionAppError;
|
|
364
420
|
interface ApplySessionTransactionInput {
|
|
365
421
|
sessionId: string;
|
|
366
422
|
expectedRevision: number;
|
|
@@ -371,11 +427,37 @@ interface OpenProjectSessionInput {
|
|
|
371
427
|
sessionId?: string;
|
|
372
428
|
canonicalProjectPath?: string;
|
|
373
429
|
canonicalPathKey?: string;
|
|
430
|
+
storage?: BackendProjectSessionStorage;
|
|
431
|
+
}
|
|
432
|
+
interface BackendProjectSessionStorage {
|
|
433
|
+
fileSystem: BackendFileSystem;
|
|
434
|
+
fairyPath: string;
|
|
435
|
+
canonicalProjectPath?: string;
|
|
436
|
+
canonicalPathKey?: string;
|
|
437
|
+
}
|
|
438
|
+
interface SaveSessionInput {
|
|
439
|
+
sessionId: string;
|
|
440
|
+
expectedRevision?: number;
|
|
441
|
+
targetPath?: string;
|
|
442
|
+
fileSystem?: BackendFileSystem;
|
|
443
|
+
force?: boolean;
|
|
444
|
+
mode?: 'materializeCleanSession';
|
|
445
|
+
}
|
|
446
|
+
interface MaterializeSessionInput {
|
|
447
|
+
sessionId: string;
|
|
448
|
+
expectedRevision?: number;
|
|
449
|
+
storage?: BackendProjectSessionStorage;
|
|
450
|
+
targetPath?: string;
|
|
451
|
+
fileSystem?: BackendFileSystem;
|
|
452
|
+
mode?: 'fullProject';
|
|
453
|
+
reason?: string;
|
|
374
454
|
}
|
|
375
455
|
interface BackendRuntimeOptions {
|
|
376
456
|
fileSystem?: BackendFileSystem;
|
|
377
457
|
host?: BackendHostAdapter;
|
|
378
458
|
}
|
|
459
|
+
//#endregion
|
|
460
|
+
//#region src/runtime.d.ts
|
|
379
461
|
declare class BackendRuntime {
|
|
380
462
|
private readonly fileSystem?;
|
|
381
463
|
private readonly capabilities;
|
|
@@ -402,11 +484,8 @@ declare class BackendRuntime {
|
|
|
402
484
|
sessionId: string;
|
|
403
485
|
}): BackendResult<BackendSessionSnapshot, SessionNotFoundError>;
|
|
404
486
|
applyTransaction(input: ApplySessionTransactionInput): Promise<BackendResult<BackendSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | ApplyUamTransactionAppError>>;
|
|
405
|
-
saveSession(input:
|
|
406
|
-
|
|
407
|
-
expectedRevision?: number;
|
|
408
|
-
targetPath?: string;
|
|
409
|
-
}): Promise<BackendResult<BackendSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | SavePartialFailureError | PathPolicyViolationError | BackendCapabilityUnavailableError>>;
|
|
487
|
+
saveSession(input: SaveSessionInput): Promise<BackendResult<BackendSessionSnapshot | MaterializeSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | SavePartialFailureError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | InProcessLockConflictError | BackendCapabilityUnavailableError>>;
|
|
488
|
+
materializeSession(input: MaterializeSessionInput): Promise<BackendResult<MaterializeSessionSnapshot, SessionNotFoundError | SessionStaleWriteError | UamFidelityUnsupportedError | MaterializeValidationFailedError | MaterializeWriteFailedError | PathPolicyViolationError | InProcessLockConflictError | BackendCapabilityUnavailableError>>;
|
|
410
489
|
closeSession(input: {
|
|
411
490
|
sessionId: string;
|
|
412
491
|
}): Promise<BackendResult<{
|
|
@@ -421,4 +500,4 @@ declare class BackendRuntime {
|
|
|
421
500
|
refreshCache(input: RefreshCacheInput): BackendResult<BackendJobSnapshot, SessionNotFoundError>;
|
|
422
501
|
}
|
|
423
502
|
//#endregion
|
|
424
|
-
export {
|
|
503
|
+
export { BACKEND_COMPATIBILITY_POLICY as $, BackendSessionSnapshot as A, ListJobsInput as B, BackendJobNotFoundError as C, BackendProjectSessionStorage as D, BackendJobStatus as E, GetCacheSnapshotInput as F, OpenProjectSessionInput as G, MaterializeSessionSnapshot as H, GetEventsInput as I, SaveSessionInput as J, RefreshCacheInput as K, GetEventsSnapshot as L, CacheRefreshFailedError as M, CancelJobInput as N, BackendResult as O, EventCursorInvalidError as P, BACKEND_CAPABILITY_SCHEMA_VERSION as Q, GetJobInput as R, BackendJobNotCancellableError as S, BackendJobSnapshot as T, MaterializeValidationFailedError as U, MaterializeSessionInput as V, MaterializeWriteFailedError as W, SessionStaleWriteError as X, SessionNotFoundError as Y, UamFidelityUnsupportedError as Z, BackendHostAdapter as _, BackendCacheEntry as a, BackendJobListSnapshot as b, BackendCapabilityManifest as c, BackendEvent as d, BACKEND_CONTRACT_VERSION as et, BackendEventKind as f, BackendFileSystem as g, BackendFileStat as h, BackendArtifactBridgeCapability as i, BackendStage as it, BackendSuccess as j, BackendRuntimeOptions as k, BackendCapabilityUnavailableError as l, BackendFileHandle as m, AdvisoryLockConflictError as n, BackendMessage as nt, BackendCacheSnapshot as o, BackendFailure as p, SavePartialFailureError as q, ApplySessionTransactionInput as r, BackendResponseMeta as rt, BackendCapabilities as s, BackendRuntime as t, BackendDiagnostic as tt, BackendError as u, BackendJobErrors as v, BackendJobProgress as w, BackendJobListStatusFilter as x, BackendJobKind as y, InProcessLockConflictError as z };
|