@wendoo/bridge-app 0.2.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/README.md +44 -0
- package/dist/app-bridge.d.ts +77 -0
- package/dist/app-bridge.d.ts.map +1 -0
- package/dist/app-bridge.js +205 -0
- package/dist/app-environment-host.d.ts +524 -0
- package/dist/app-environment-host.d.ts.map +1 -0
- package/dist/app-environment-host.js +1560 -0
- package/dist/brain-diagnostics.d.ts +47 -0
- package/dist/brain-diagnostics.d.ts.map +1 -0
- package/dist/brain-diagnostics.js +100 -0
- package/dist/bridge-project.d.ts +32 -0
- package/dist/bridge-project.d.ts.map +1 -0
- package/dist/bridge-project.js +69 -0
- package/dist/compilation.d.ts +145 -0
- package/dist/compilation.d.ts.map +1 -0
- package/dist/compilation.js +404 -0
- package/dist/core-extension.d.ts +10 -0
- package/dist/core-extension.d.ts.map +1 -0
- package/dist/core-extension.js +9 -0
- package/dist/embedded-extension-id-gate.d.ts +38 -0
- package/dist/embedded-extension-id-gate.d.ts.map +1 -0
- package/dist/embedded-extension-id-gate.js +55 -0
- package/dist/embedded-extension-loader.d.ts +33 -0
- package/dist/embedded-extension-loader.d.ts.map +1 -0
- package/dist/embedded-extension-loader.js +90 -0
- package/dist/embedded-extension-vite-plugin.d.ts +34 -0
- package/dist/embedded-extension-vite-plugin.d.ts.map +1 -0
- package/dist/embedded-extension-vite-plugin.js +39 -0
- package/dist/embedded-extensions.d.ts +293 -0
- package/dist/embedded-extensions.d.ts.map +1 -0
- package/dist/embedded-extensions.js +526 -0
- package/dist/extension-catalog.d.ts +243 -0
- package/dist/extension-catalog.d.ts.map +1 -0
- package/dist/extension-catalog.js +408 -0
- package/dist/extension-install-log.d.ts +54 -0
- package/dist/extension-install-log.d.ts.map +1 -0
- package/dist/extension-install-log.js +22 -0
- package/dist/extension-install.d.ts +162 -0
- package/dist/extension-install.d.ts.map +1 -0
- package/dist/extension-install.js +412 -0
- package/dist/extension-report-presenter.d.ts +40 -0
- package/dist/extension-report-presenter.d.ts.map +1 -0
- package/dist/extension-report-presenter.js +36 -0
- package/dist/fetched-extension-snapshots.d.ts +66 -0
- package/dist/fetched-extension-snapshots.d.ts.map +1 -0
- package/dist/fetched-extension-snapshots.js +137 -0
- package/dist/folder-host-session.d.ts +85 -0
- package/dist/folder-host-session.d.ts.map +1 -0
- package/dist/folder-host-session.js +210 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/library-offer.d.ts +60 -0
- package/dist/library-offer.d.ts.map +1 -0
- package/dist/library-offer.js +47 -0
- package/dist/library-uninstall-guard.d.ts +66 -0
- package/dist/library-uninstall-guard.d.ts.map +1 -0
- package/dist/library-uninstall-guard.js +103 -0
- package/dist/manifest-files.d.ts +53 -0
- package/dist/manifest-files.d.ts.map +1 -0
- package/dist/manifest-files.js +242 -0
- package/dist/node.d.ts +4 -0
- package/dist/node.d.ts.map +1 -0
- package/dist/node.js +2 -0
- package/dist/project-file-bridge.d.ts +10 -0
- package/dist/project-file-bridge.d.ts.map +1 -0
- package/dist/project-file-bridge.js +87 -0
- package/dist/user-tile-registration.d.ts +89 -0
- package/dist/user-tile-registration.d.ts.map +1 -0
- package/dist/user-tile-registration.js +100 -0
- package/dist/vfs-asset-url-provider.d.ts +22 -0
- package/dist/vfs-asset-url-provider.d.ts.map +1 -0
- package/dist/vfs-asset-url-provider.js +52 -0
- package/dist/workspace-folder-project-store.d.ts +125 -0
- package/dist/workspace-folder-project-store.d.ts.map +1 -0
- package/dist/workspace-folder-project-store.js +400 -0
- package/package.json +103 -0
|
@@ -0,0 +1,524 @@
|
|
|
1
|
+
import type { ApprovedCatalogEntryLookup, ExtensionAddInputResolution, ExtensionCatalogMoves, ExtensionFetchTransport, ExtensionUpdateApplication, ExtensionUpdateCheck, ProjectCollectionProjectCommitResult, ProjectCollectionUnlockResult, ProjectFileSystem, ProjectManifest, UnstableDependency } from "@wendoo/app-host";
|
|
2
|
+
import { AppHostError, type FileContent, type ProjectManager } from "@wendoo/app-host";
|
|
3
|
+
import type { FolderInstalledExtensionMetadata } from "@wendoo/bridge-protocol";
|
|
4
|
+
import type { IBrainDef, WendooEnvironment, WendooModule } from "@wendoo/core/app";
|
|
5
|
+
import type { PersistedBrainJson } from "@wendoo/core/brain/model";
|
|
6
|
+
import type { Localizer } from "@wendoo/core/localization";
|
|
7
|
+
import type { ActionKey, IRngServices, ProfileNumerics } from "@wendoo/core/runtime";
|
|
8
|
+
import type { Mount, WorkspaceCompileResult, WorkspaceDiagnosticEntry } from "@wendoo/ts-compiler";
|
|
9
|
+
import type { AppBridgeState, ProjectFileChange } from "./app-bridge.js";
|
|
10
|
+
import type { EmbeddedExtension, ExtensionResolutionWarning, FetchedExtensionContentMap } from "./embedded-extensions.js";
|
|
11
|
+
import type { ExtensionCatalogEntry, ExtensionFetchFailures } from "./extension-catalog.js";
|
|
12
|
+
import type { ExtensionInstallReport } from "./extension-install.js";
|
|
13
|
+
import type { TileCompileDiagnostics, UserTileApplyResult, UserTileMetadata } from "./user-tile-registration.js";
|
|
14
|
+
/** The outcome of one load's catalog-move application. */
|
|
15
|
+
export interface CatalogMovesOutcome {
|
|
16
|
+
/** Reports of the per-move install transactions this load ran, in application order. */
|
|
17
|
+
readonly reports: readonly ExtensionInstallReport[];
|
|
18
|
+
/** Stable-coded findings for moves that could not be applied this load. */
|
|
19
|
+
readonly warnings: readonly ExtensionResolutionWarning[];
|
|
20
|
+
}
|
|
21
|
+
/** One diagnostic of the latest workspace compile, located at its workspace path. */
|
|
22
|
+
export type WorkspaceCompileDiagnostic = WorkspaceDiagnosticEntry & {
|
|
23
|
+
/** Workspace path of the file the diagnostic is located in. */
|
|
24
|
+
readonly path: string;
|
|
25
|
+
};
|
|
26
|
+
/** Options for {@link AppEnvironmentHost}. */
|
|
27
|
+
export interface AppEnvironmentHostOptions {
|
|
28
|
+
projectManager: ProjectManager;
|
|
29
|
+
/** Wendoo modules to register with the environment. */
|
|
30
|
+
modules: readonly WendooModule[];
|
|
31
|
+
/** Read-only content mounts supplied to the project compiler and remote VFS. */
|
|
32
|
+
mounts: readonly Mount[];
|
|
33
|
+
/**
|
|
34
|
+
* Extensions bundled with the host application. A project's `embedded:<repo>`
|
|
35
|
+
* dependency resolves against this record by the origin's repository segment,
|
|
36
|
+
* delivering the extension's content to the compiler as a mounted dependency
|
|
37
|
+
* keyed by its `<owner>/<repo>` coordinate. Empty when the app bundles none.
|
|
38
|
+
*/
|
|
39
|
+
embeddedExtensions?: readonly EmbeddedExtension[];
|
|
40
|
+
/**
|
|
41
|
+
* Transport used to fetch remote (`gh:`) extension content at install time.
|
|
42
|
+
* When omitted, an install transaction needing a fetch refuses as
|
|
43
|
+
* unreachable; already-installed fetched extensions still load from their
|
|
44
|
+
* stored snapshots.
|
|
45
|
+
*/
|
|
46
|
+
extensionFetchTransport?: ExtensionFetchTransport;
|
|
47
|
+
/**
|
|
48
|
+
* Curated catalog moves from the host's catalog, keyed by source coordinate.
|
|
49
|
+
* On project load a top-level manifest entry a move entry captures is
|
|
50
|
+
* rewritten to the entry's destination through an install transaction, and a
|
|
51
|
+
* transitive dependency reference an entry captures resolves through the
|
|
52
|
+
* destination. Empty when the host declares none.
|
|
53
|
+
*/
|
|
54
|
+
catalogMoves?: ExtensionCatalogMoves;
|
|
55
|
+
/**
|
|
56
|
+
* Resolves a coordinate to the approved pin the host's catalog entry offers.
|
|
57
|
+
* An update check for a listed coordinate offers that pin and does not read
|
|
58
|
+
* the source. When omitted, every update check reads the source.
|
|
59
|
+
*/
|
|
60
|
+
approvedCatalogEntry?: ApprovedCatalogEntryLookup;
|
|
61
|
+
/**
|
|
62
|
+
* Host-supplied RNG. The bridge app forwards this to
|
|
63
|
+
* {@link createWendooEnvironment} so brains pull randomness from the host
|
|
64
|
+
* (e.g. the simulator's seeded RNG). When omitted, the environment falls back
|
|
65
|
+
* to a default-seeded one, which draws the same sequence every run.
|
|
66
|
+
*/
|
|
67
|
+
rng?: IRngServices;
|
|
68
|
+
/**
|
|
69
|
+
* Brain-observable numeric semantics for the host's device profile,
|
|
70
|
+
* forwarded to {@link createWendooEnvironment}. When omitted, the
|
|
71
|
+
* environment falls back to the f64 (native double-precision) default.
|
|
72
|
+
*/
|
|
73
|
+
numerics?: ProfileNumerics;
|
|
74
|
+
/**
|
|
75
|
+
* Host-supplied display-time translation service, forwarded to
|
|
76
|
+
* {@link createWendooEnvironment}. When omitted, the environment falls
|
|
77
|
+
* back to the default localizer, which renders every source string as
|
|
78
|
+
* authored.
|
|
79
|
+
*/
|
|
80
|
+
localizer?: Localizer;
|
|
81
|
+
/** When set, enables the optional bridge connection to a remote peer. */
|
|
82
|
+
bridgeUrl?: string;
|
|
83
|
+
/** Loads a previously persisted bridge binding token. */
|
|
84
|
+
loadBindingToken?: () => string | undefined;
|
|
85
|
+
/** Persists an updated bridge binding token. */
|
|
86
|
+
saveBindingToken?: (token: string) => void;
|
|
87
|
+
/** Invoked after every successful project compile. */
|
|
88
|
+
onDidCompile?: (result: WorkspaceCompileResult, tileResult: UserTileApplyResult | undefined) => void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Glue layer that wires a {@link ProjectManager}, a {@link WendooEnvironment},
|
|
92
|
+
* the project compiler, user-tile registration, and (optionally) the bridge
|
|
93
|
+
* into a single host an app UI can drive.
|
|
94
|
+
*/
|
|
95
|
+
export declare class AppEnvironmentHost {
|
|
96
|
+
readonly env: WendooEnvironment;
|
|
97
|
+
readonly projectManager: ProjectManager;
|
|
98
|
+
private readonly mounts;
|
|
99
|
+
private readonly embeddedExtensions;
|
|
100
|
+
private readonly extensionFetchTransport;
|
|
101
|
+
private readonly catalogMoves;
|
|
102
|
+
private readonly approvedCatalogEntry;
|
|
103
|
+
private readonly onDidCompileCallback?;
|
|
104
|
+
private _installedSnapshots;
|
|
105
|
+
private _installedContent;
|
|
106
|
+
private _lastResolution;
|
|
107
|
+
private readonly _resolutionWarningsListeners;
|
|
108
|
+
private _fetchFailures;
|
|
109
|
+
private _lastCompileResult;
|
|
110
|
+
private _tileCompileDiagnostics;
|
|
111
|
+
private readonly _brainCache;
|
|
112
|
+
private readonly _defaultBrainCache;
|
|
113
|
+
private _projectRecordFailure;
|
|
114
|
+
private _pendingBrainRebuild;
|
|
115
|
+
private _docRevision;
|
|
116
|
+
private _vfsRevision;
|
|
117
|
+
private readonly _docRevisionListeners;
|
|
118
|
+
private readonly _vfsRevisionListeners;
|
|
119
|
+
private _brainDiagnosticsRevision;
|
|
120
|
+
private readonly _brainDiagnosticsListeners;
|
|
121
|
+
private _compileDiagnostics;
|
|
122
|
+
private readonly _compileDiagnosticsListeners;
|
|
123
|
+
private readonly _projectUnloadingListeners;
|
|
124
|
+
private readonly _projectLoadedListeners;
|
|
125
|
+
private _bridge;
|
|
126
|
+
private _bridgeUrl;
|
|
127
|
+
private _bridgeStatus;
|
|
128
|
+
private _bridgeJoinCode;
|
|
129
|
+
private readonly _bridgeStatusListeners;
|
|
130
|
+
private readonly _bridgeJoinCodeListeners;
|
|
131
|
+
private _bridgeStateUnsub;
|
|
132
|
+
private _remoteChangeUnsub;
|
|
133
|
+
private readonly _loadBindingToken;
|
|
134
|
+
private readonly _saveBindingToken;
|
|
135
|
+
private _lastUserTileMetadata;
|
|
136
|
+
private _compiler;
|
|
137
|
+
private _servedFileSystem;
|
|
138
|
+
private readonly _compilerControlledFilesListeners;
|
|
139
|
+
constructor(options: AppEnvironmentHostOptions);
|
|
140
|
+
get projectFileSystem(): ProjectFileSystem;
|
|
141
|
+
/**
|
|
142
|
+
* The file system whose exported snapshot carries both the raw project files
|
|
143
|
+
* and the compiler-controlled files (ambient declarations, `tsconfig.json`,
|
|
144
|
+
* and the installed-extensions tree), including extension-owned assets such
|
|
145
|
+
* as tile icons. Each `exportSnapshot()` reads the live compiler, so
|
|
146
|
+
* installing or uninstalling an extension is reflected without a rebuild.
|
|
147
|
+
* Falls back to the raw project file system until the compiler is wired.
|
|
148
|
+
*/
|
|
149
|
+
get servedProjectFileSystem(): ProjectFileSystem;
|
|
150
|
+
get activeProjectManifest(): ProjectManifest | undefined;
|
|
151
|
+
/** Release bridge and project-manager resources owned by this host. */
|
|
152
|
+
dispose(): void;
|
|
153
|
+
initialize(defaultProjectName: string): Promise<void>;
|
|
154
|
+
/**
|
|
155
|
+
* Resolve the active project's extension dependency graph against the host's
|
|
156
|
+
* embed record and the project's stored fetched snapshots. Logs any conflict
|
|
157
|
+
* warnings. On this load path a dependency cycle is logged and resolution
|
|
158
|
+
* falls back to no extension dependencies, so the project still loads and
|
|
159
|
+
* unresolved imports surface as ordinary compiler diagnostics; an install
|
|
160
|
+
* transaction refuses on a cycle instead.
|
|
161
|
+
*/
|
|
162
|
+
private resolveExtensions;
|
|
163
|
+
/** Replace the project's installed snapshot records, in memory and in the project store. */
|
|
164
|
+
private persistInstalledSnapshots;
|
|
165
|
+
/**
|
|
166
|
+
* Read the active project's stored extension records: the installed
|
|
167
|
+
* snapshots and the install log. Both are empty when the project has stored
|
|
168
|
+
* neither. Returns undefined when the store could not serve them, recording
|
|
169
|
+
* the failure on {@link AppEnvironmentHost.projectRecordFailure}. On
|
|
170
|
+
* undefined the caller must leave the stored records untouched.
|
|
171
|
+
*/
|
|
172
|
+
private readStoredExtensionRecordsForLoad;
|
|
173
|
+
private initCompiler;
|
|
174
|
+
/**
|
|
175
|
+
* Persist source files whose user-action declaration had a stable `id` minted
|
|
176
|
+
* during compilation. Writes the updated text to the project file system and
|
|
177
|
+
* to the compiler's in-memory view.
|
|
178
|
+
*/
|
|
179
|
+
private persistMintedActionIds;
|
|
180
|
+
saveBrainForKey(key: string, brainDef: IBrainDef): Promise<void>;
|
|
181
|
+
/**
|
|
182
|
+
* Serialize a brain into its persisted form: identifiers qualified by the
|
|
183
|
+
* active project's namespace are stored with the namespace absent.
|
|
184
|
+
*/
|
|
185
|
+
serializeBrainForStorage(brainDef: IBrainDef): PersistedBrainJson;
|
|
186
|
+
removeBrain(key: string): Promise<void>;
|
|
187
|
+
loadBrainFromProject(key: string): Promise<IBrainDef | undefined>;
|
|
188
|
+
/**
|
|
189
|
+
* Returns the active project's in-memory brain for `key`, or undefined when none is cached. The
|
|
190
|
+
* cache is loaded on project load and updated by `saveBrainForKey` and `removeBrain`.
|
|
191
|
+
*/
|
|
192
|
+
getCachedBrain(key: string): IBrainDef | undefined;
|
|
193
|
+
/** Returns the keys of the active project's cached brains, in cache order. */
|
|
194
|
+
getCachedBrainKeys(): readonly string[];
|
|
195
|
+
setDefaultBrain(key: string, brainDef: IBrainDef): void;
|
|
196
|
+
getDefaultBrain(key: string): IBrainDef | undefined;
|
|
197
|
+
private saveAllBrains;
|
|
198
|
+
/**
|
|
199
|
+
* Read the active project's stored brain record together with the raw stored
|
|
200
|
+
* text it was parsed from. Both are empty -- `raw` undefined, `record` `{}` --
|
|
201
|
+
* when the project has never stored a record. Throws {@link AppHostError} with
|
|
202
|
+
* code `BRAIN_RECORD_UNREADABLE` -- and no other error -- when a stored record
|
|
203
|
+
* exists but cannot be read or parsed.
|
|
204
|
+
*/
|
|
205
|
+
private readStoredBrains;
|
|
206
|
+
/**
|
|
207
|
+
* Read the active project's stored brain record. Returns an empty record when
|
|
208
|
+
* the project has never stored one. Throws {@link AppHostError} with code
|
|
209
|
+
* `BRAIN_RECORD_UNREADABLE` -- and no other error -- when a stored record
|
|
210
|
+
* exists but cannot be read or parsed.
|
|
211
|
+
*/
|
|
212
|
+
private loadBrainRecord;
|
|
213
|
+
/**
|
|
214
|
+
* Read the stored brains on a project-load path. Returns the record and the
|
|
215
|
+
* raw stored text, or undefined when they could not be read, recording the
|
|
216
|
+
* failure on {@link AppEnvironmentHost.projectRecordFailure}. On undefined the
|
|
217
|
+
* caller must leave the stored brains untouched.
|
|
218
|
+
*/
|
|
219
|
+
private readStoredBrainsForLoad;
|
|
220
|
+
/**
|
|
221
|
+
* The first failure that stopped one of the active project's stored records
|
|
222
|
+
* from loading, or undefined when they all loaded. Its `code` names the
|
|
223
|
+
* record: `BRAIN_RECORD_UNREADABLE` for the saved brains,
|
|
224
|
+
* `EXTENSION_RECORD_UNREADABLE` for the installed-library snapshots and the
|
|
225
|
+
* install log. While it is set the brain cache is empty because a record
|
|
226
|
+
* could not be read, not because the project has no brains, every brain
|
|
227
|
+
* write refuses, and no write replaces a record that could not be read.
|
|
228
|
+
* Cleared when the project unloads.
|
|
229
|
+
*/
|
|
230
|
+
get projectRecordFailure(): AppHostError | undefined;
|
|
231
|
+
/** True while the active project's stored extension records could not be read. */
|
|
232
|
+
private get extensionRecordUnreadable();
|
|
233
|
+
/**
|
|
234
|
+
* Deserialize the project's stored brains into the cache. Call after the
|
|
235
|
+
* load's catalog moves have applied: deserialization resolves saved tile
|
|
236
|
+
* references against the current action bundle. Caches nothing when the load
|
|
237
|
+
* already recorded a stored-record failure: the extension closure is then
|
|
238
|
+
* unknown, so no saved tile reference resolves.
|
|
239
|
+
*/
|
|
240
|
+
private loadBrainsFromProject;
|
|
241
|
+
/**
|
|
242
|
+
* Reconcile the in-memory brain cache against the project store's current
|
|
243
|
+
* brain record: cached brains absent from the record are dropped, and
|
|
244
|
+
* record entries whose stored form differs from the cached brain are
|
|
245
|
+
* deserialized into the cache. Returns the changed and removed brain keys.
|
|
246
|
+
*/
|
|
247
|
+
reconcileBrainsFromStore(): Promise<{
|
|
248
|
+
changed: readonly string[];
|
|
249
|
+
removed: readonly string[];
|
|
250
|
+
}>;
|
|
251
|
+
private deserializeBrainForKey;
|
|
252
|
+
/**
|
|
253
|
+
* Re-resolve every cached brain's tile references against the current
|
|
254
|
+
* catalogs by round-tripping it through its persisted form -- the same
|
|
255
|
+
* resolution a project load performs, so a tile whose library left the
|
|
256
|
+
* closure becomes a placeholder and a placeholder whose library returned
|
|
257
|
+
* becomes the real tile again. A brain whose round-trip fails keeps its
|
|
258
|
+
* current definition.
|
|
259
|
+
*/
|
|
260
|
+
private refreshBrainCache;
|
|
261
|
+
updateProjectMetadata(updates: Partial<Pick<ProjectManifest, "name" | "description">>): Promise<void>;
|
|
262
|
+
/** The installed fetched-extension content available to the active project, keyed by reference. */
|
|
263
|
+
get installedExtensionContent(): FetchedExtensionContentMap;
|
|
264
|
+
/**
|
|
265
|
+
* The compiler-controlled file set of the active project's workspace: the
|
|
266
|
+
* generated `tsconfig.json`, ambient declarations, and the materialized
|
|
267
|
+
* installed-extensions tree. Undefined until the compiler is wired.
|
|
268
|
+
*/
|
|
269
|
+
getCompilerControlledFiles(): ReadonlyMap<string, FileContent> | undefined;
|
|
270
|
+
/**
|
|
271
|
+
* Subscribe to compiler-controlled file set changes. The listener receives
|
|
272
|
+
* the full new set after each compile that changed it. Returns an
|
|
273
|
+
* unsubscribe function.
|
|
274
|
+
*/
|
|
275
|
+
onCompilerControlledFilesChanged(listener: (files: ReadonlyMap<string, FileContent>) => void): () => void;
|
|
276
|
+
/** Install provenance of every installed fetched dependency, keyed by `<owner>/<repo>` origin. */
|
|
277
|
+
getInstalledExtensionMetadata(): Record<string, FolderInstalledExtensionMetadata>;
|
|
278
|
+
/**
|
|
279
|
+
* The installed libraries of the active project's resolved extension
|
|
280
|
+
* closure: one record per resolved origin, carrying the coordinate a
|
|
281
|
+
* compiled tile's identity namespace names and the display name the
|
|
282
|
+
* library's own `wendoo.json` declares. Empty until the compiler is
|
|
283
|
+
* wired.
|
|
284
|
+
*/
|
|
285
|
+
get installedLibraries(): readonly Pick<ExtensionCatalogEntry, "coordinate" | "name">[];
|
|
286
|
+
/** The last recorded fetch failure per reference, keyed by the reference string as written. */
|
|
287
|
+
get extensionFetchFailures(): ExtensionFetchFailures;
|
|
288
|
+
/**
|
|
289
|
+
* Non-fatal warnings of the active project's latest extension resolution,
|
|
290
|
+
* including the stable-coded catalog-move findings the load's move
|
|
291
|
+
* application recorded. Empty until the compiler is wired.
|
|
292
|
+
*/
|
|
293
|
+
get resolutionWarnings(): readonly ExtensionResolutionWarning[];
|
|
294
|
+
/**
|
|
295
|
+
* Subscribe to resolution-warning changes for `useSyncExternalStore`. The
|
|
296
|
+
* listener fires whenever the active project's latest resolution is
|
|
297
|
+
* replaced: on project load and switch, and after each install transaction.
|
|
298
|
+
* Returns an unsubscribe function.
|
|
299
|
+
*/
|
|
300
|
+
subscribeToResolutionWarnings: (listener: () => void) => (() => void);
|
|
301
|
+
/** Snapshot of {@link resolutionWarnings} for `useSyncExternalStore`. */
|
|
302
|
+
getResolutionWarningsSnapshot: () => readonly ExtensionResolutionWarning[];
|
|
303
|
+
/** Record the latest resolution and notify resolution-warning subscribers. */
|
|
304
|
+
private setLastResolution;
|
|
305
|
+
/** Merge a load's catalog-move findings into the latest resolution's warnings, skipping duplicates. */
|
|
306
|
+
private absorbCatalogMovesOutcome;
|
|
307
|
+
/** Fetch one `gh:` reference's snapshot through the host's transport. */
|
|
308
|
+
private fetchSnapshot;
|
|
309
|
+
/** Materialize a resolution: dependencies, `wendoo.json`, and a recompile of the whole workspace. */
|
|
310
|
+
private applyResolution;
|
|
311
|
+
/** Rewrite `wendoo.json` from the store manifest, restoring the file after a refused transaction. */
|
|
312
|
+
private resyncManifestFile;
|
|
313
|
+
/**
|
|
314
|
+
* The active project's diagnostic state: the latest workspace compile's
|
|
315
|
+
* per-file diagnostics plus a fresh typecheck of every cached brain.
|
|
316
|
+
*/
|
|
317
|
+
private captureProjectDiagnostics;
|
|
318
|
+
/**
|
|
319
|
+
* Append the transaction's events to the project's install log. Appends
|
|
320
|
+
* nothing while the stored extension records are unreadable: the log's
|
|
321
|
+
* existing entries are unknown, so a write would replace them with these
|
|
322
|
+
* events alone.
|
|
323
|
+
*/
|
|
324
|
+
private appendInstallLogEvents;
|
|
325
|
+
/**
|
|
326
|
+
* The install and remove events between two resolved closures, plus the new
|
|
327
|
+
* resolution's warnings. An origin present in both closures records an
|
|
328
|
+
* install event when its winning reference or installed specifier changed
|
|
329
|
+
* (an update).
|
|
330
|
+
*/
|
|
331
|
+
private installLogEventsForChange;
|
|
332
|
+
/**
|
|
333
|
+
* Apply an extensions-map change to the active project as one transaction:
|
|
334
|
+
* fetch content for every newly reachable `gh:` reference, resolve the
|
|
335
|
+
* transitive dependency graph, then commit -- persist the manifest entries
|
|
336
|
+
* and the fetched snapshots, re-materialize the installed-extensions tree,
|
|
337
|
+
* recompile the workspace, and re-typecheck the project's brains -- and
|
|
338
|
+
* report the diagnostic difference against the pre-change baseline.
|
|
339
|
+
*
|
|
340
|
+
* Improved, unchanged, and worsened outcomes all commit. The transaction
|
|
341
|
+
* refuses outright only on mechanics failures -- an unreachable source, a
|
|
342
|
+
* missing or unparseable manifest, a missing listed file, a dependency
|
|
343
|
+
* cycle, or stored extension records the store could not serve -- leaving
|
|
344
|
+
* the project unchanged. Every commit appends its install, remove, and
|
|
345
|
+
* resolution-warning events to the project's install log.
|
|
346
|
+
*
|
|
347
|
+
* @param extensions - The active project's next extensions map, keyed by coordinate.
|
|
348
|
+
* @param options.refetchReferences - References fetched fresh even when a stored snapshot matches.
|
|
349
|
+
*/
|
|
350
|
+
updateProjectExtensions(extensions: Readonly<Record<string, string>>, options?: {
|
|
351
|
+
refetchReferences?: ReadonlySet<string>;
|
|
352
|
+
}): Promise<ExtensionInstallReport>;
|
|
353
|
+
/** Version lookup over the embed record and the project's persisted snapshot content. */
|
|
354
|
+
private moveVersionLookup;
|
|
355
|
+
/**
|
|
356
|
+
* Resolve a floating catalog-move destination for a coordinate to a pinned
|
|
357
|
+
* `gh:` reference: the coordinate's persisted snapshot pin when one exists,
|
|
358
|
+
* otherwise the highest stable published version listed by the host's
|
|
359
|
+
* transport. Returns undefined when no pin can be produced.
|
|
360
|
+
*/
|
|
361
|
+
private resolveFloatingMoveReference;
|
|
362
|
+
/**
|
|
363
|
+
* Apply the host's curated catalog moves to the active project. Each
|
|
364
|
+
* captured top-level manifest entry is one move-application unit: its
|
|
365
|
+
* manifest rewrite, its saved-brain namespace rewrite (when the entry's
|
|
366
|
+
* final coordinate differs), and the fetches its chain requires run as one
|
|
367
|
+
* install transaction, rolled back together when the transaction refuses. A
|
|
368
|
+
* failed unit writes nothing, surfaces a stable-coded warning, and is
|
|
369
|
+
* retried on the next load, while other units proceed independently.
|
|
370
|
+
*
|
|
371
|
+
* Application interleaves apply, fetch, and re-apply: after each committed
|
|
372
|
+
* transaction the entries are re-applied with the versions the new content
|
|
373
|
+
* determines, and a transitive moved dependency whose content the project
|
|
374
|
+
* never persisted is healed by a fetch transaction, until nothing changes.
|
|
375
|
+
* A floating destination is resolved to a pin before its transaction runs;
|
|
376
|
+
* the pin is what the manifest receives. Returns undefined when the host
|
|
377
|
+
* declares no moves or the project is a true no-op; otherwise the
|
|
378
|
+
* transactions' reports and the load's stable-coded move warnings. Returns
|
|
379
|
+
* undefined without applying anything while the stored extension records are
|
|
380
|
+
* unreadable, so no move writes over a record the store could not serve.
|
|
381
|
+
*/
|
|
382
|
+
applyCatalogMoves(): Promise<CatalogMovesOutcome | undefined>;
|
|
383
|
+
/**
|
|
384
|
+
* Rewrite every saved brain's foreign-namespace references from each rename's
|
|
385
|
+
* source coordinate to its target, persisting the rewritten brains record and
|
|
386
|
+
* re-deserializing the changed brains into the cache. Returns true when at
|
|
387
|
+
* least one brain changed.
|
|
388
|
+
*
|
|
389
|
+
* @param record - The stored brain record to rewrite, read by the caller; mutated in place.
|
|
390
|
+
* @param renames - The coordinate renames to apply, each a source and its target.
|
|
391
|
+
*/
|
|
392
|
+
private renameBrainNamespaces;
|
|
393
|
+
/** Restore the brains record and cache to a pre-rewrite snapshot after a refused migration. */
|
|
394
|
+
private restoreBrains;
|
|
395
|
+
/**
|
|
396
|
+
* Normalize add-by-reference input to an installable extension reference: a
|
|
397
|
+
* complete reference, an `<owner>/<repo>` coordinate, or a GitHub repository
|
|
398
|
+
* URL. Input naming a repository without a version resolves to the
|
|
399
|
+
* repository's latest published version through the host's transport. Fails
|
|
400
|
+
* with a stable code when the input is unrecognized, no version can be
|
|
401
|
+
* resolved, or the host has no transport to resolve one through.
|
|
402
|
+
*
|
|
403
|
+
* @param input - The pasted add-field text.
|
|
404
|
+
*/
|
|
405
|
+
resolveExtensionInstallInput(input: string): Promise<ExtensionAddInputResolution>;
|
|
406
|
+
/**
|
|
407
|
+
* Check one installed fetched dependency of the active project for newer
|
|
408
|
+
* content: a `@<pin>` reference against the host catalog's approved pin when
|
|
409
|
+
* the catalog lists the coordinate and against the source's published
|
|
410
|
+
* versions when it does not, a `#<branch>` reference against the branch's
|
|
411
|
+
* head commit. The check runs on request, reaches the source through the
|
|
412
|
+
* host's transport, and changes nothing.
|
|
413
|
+
*
|
|
414
|
+
* @param coordinate - The dependency's `<owner>/<repo>` coordinate in the project's extensions map.
|
|
415
|
+
*/
|
|
416
|
+
checkExtensionUpdate(coordinate: string): Promise<ExtensionUpdateCheck>;
|
|
417
|
+
/**
|
|
418
|
+
* Apply one or more dependency updates to the active project as a single
|
|
419
|
+
* install transaction with one outcome: each update's coordinate takes its
|
|
420
|
+
* new reference in the extensions map, and each updated reference is fetched
|
|
421
|
+
* fresh, never satisfied from its stored snapshot. The report and the
|
|
422
|
+
* install log are those of {@link updateProjectExtensions}.
|
|
423
|
+
*
|
|
424
|
+
* @param updates - The updates to apply, as returned by update checks.
|
|
425
|
+
*/
|
|
426
|
+
applyExtensionUpdates(updates: readonly ExtensionUpdateApplication[]): Promise<ExtensionInstallReport>;
|
|
427
|
+
/**
|
|
428
|
+
* Collect the active project's dependencies that are not stable for
|
|
429
|
+
* consumers: branch references, and pinned references whose content the
|
|
430
|
+
* project has no installed snapshot for. Exporting or publishing such a
|
|
431
|
+
* project should ask for confirmation first.
|
|
432
|
+
*/
|
|
433
|
+
collectUnstableProjectDependencies(): Promise<readonly UnstableDependency[]>;
|
|
434
|
+
onProjectUnloading(listener: () => void): () => void;
|
|
435
|
+
onProjectLoaded(listener: () => void): () => void;
|
|
436
|
+
createProject(name: string): Promise<ProjectManifest>;
|
|
437
|
+
switchProject(id: string): Promise<void>;
|
|
438
|
+
switchProjectCollectionAndOpenProject(projectCollectionId: string, projectId: string): Promise<ProjectCollectionProjectCommitResult>;
|
|
439
|
+
switchProjectCollectionAndCreateProject(projectCollectionId: string, name: string): Promise<ProjectCollectionProjectCommitResult>;
|
|
440
|
+
/**
|
|
441
|
+
* Unlock a project collection and initialize the project environment when
|
|
442
|
+
* unlocking restores the active project.
|
|
443
|
+
*
|
|
444
|
+
* @param projectCollectionId - Project collection to unlock.
|
|
445
|
+
* @param pin - User-entered PIN or phrase.
|
|
446
|
+
* @returns The unlocked project collection and its ready access status.
|
|
447
|
+
*/
|
|
448
|
+
unlockProjectCollection(projectCollectionId: string, pin: string): Promise<ProjectCollectionUnlockResult>;
|
|
449
|
+
/**
|
|
450
|
+
* Lock a project collection after flushing app-owned project state.
|
|
451
|
+
*
|
|
452
|
+
* @param projectCollectionId - Project collection to lock.
|
|
453
|
+
*/
|
|
454
|
+
lockProjectCollection(projectCollectionId: string): Promise<void>;
|
|
455
|
+
private prepareProjectTransition;
|
|
456
|
+
private notifyProjectUnloading;
|
|
457
|
+
private completeProjectUnload;
|
|
458
|
+
private completeProjectTransition;
|
|
459
|
+
flushPendingBrainRebuilds(): void;
|
|
460
|
+
get lastUserTileMetadata(): readonly UserTileMetadata[] | undefined;
|
|
461
|
+
/**
|
|
462
|
+
* Error compile diagnostics of the user tile registered under `key` together
|
|
463
|
+
* with the defining source file's path, from the latest workspace compile.
|
|
464
|
+
* Undefined when the tile compiled cleanly, produced only warnings or infos,
|
|
465
|
+
* or is absent from the latest compile. Each stored diagnostic is the
|
|
466
|
+
* compiler's verbatim object, exposing `message`, `severity`, and
|
|
467
|
+
* `line`/`column`.
|
|
468
|
+
*/
|
|
469
|
+
getTileCompileDiagnostics(key: ActionKey): TileCompileDiagnostics | undefined;
|
|
470
|
+
get docRevision(): number;
|
|
471
|
+
bumpDocRevision(): void;
|
|
472
|
+
bumpVfsRevision(): void;
|
|
473
|
+
subscribeToDocRevision: (listener: () => void) => (() => void);
|
|
474
|
+
/**
|
|
475
|
+
* Subscribe to brain-diagnostics revision changes for
|
|
476
|
+
* `useSyncExternalStore`. The revision bumps whenever the diagnostics a brain
|
|
477
|
+
* surfaces may have changed: after each extension transaction, after each brain
|
|
478
|
+
* save, and after each workspace compile (which can change a used tile's
|
|
479
|
+
* broken/clean status). Returns an unsubscribe function.
|
|
480
|
+
*/
|
|
481
|
+
subscribeToBrainDiagnostics: (listener: () => void) => (() => void);
|
|
482
|
+
/** Snapshot of the current brain-diagnostics revision for `useSyncExternalStore`. */
|
|
483
|
+
getBrainDiagnosticsRevision: () => number;
|
|
484
|
+
private bumpBrainDiagnosticsRevision;
|
|
485
|
+
/**
|
|
486
|
+
* Subscribe to workspace-compile diagnostic changes for
|
|
487
|
+
* `useSyncExternalStore`. The listener fires after every workspace compile
|
|
488
|
+
* and on project unload. Returns an unsubscribe function.
|
|
489
|
+
*/
|
|
490
|
+
subscribeToCompileDiagnostics: (listener: () => void) => (() => void);
|
|
491
|
+
/** Snapshot of the latest workspace compile's diagnostics for `useSyncExternalStore`; empty when clean. */
|
|
492
|
+
getCompileDiagnosticsSnapshot: () => readonly WorkspaceCompileDiagnostic[];
|
|
493
|
+
/** Record a compile's per-file diagnostics as one flat located list and notify subscribers. */
|
|
494
|
+
private setCompileDiagnostics;
|
|
495
|
+
getDocRevisionSnapshot: () => number;
|
|
496
|
+
subscribeToVfsRevision: (listener: () => void) => (() => void);
|
|
497
|
+
getVfsRevisionSnapshot: () => number;
|
|
498
|
+
initBridge(): void;
|
|
499
|
+
connectBridge(): void;
|
|
500
|
+
disconnectBridge(): void;
|
|
501
|
+
private teardownBridge;
|
|
502
|
+
updateBridgeUrl(bridgeUrl: string): void;
|
|
503
|
+
subscribeToBridgeStatus: (listener: () => void) => (() => void);
|
|
504
|
+
getBridgeStatusSnapshot: () => AppBridgeState;
|
|
505
|
+
subscribeToBridgeJoinCode: (listener: () => void) => (() => void);
|
|
506
|
+
getBridgeJoinCodeSnapshot: () => string | undefined;
|
|
507
|
+
/**
|
|
508
|
+
* Apply a project file change observed outside the app (a folder-session
|
|
509
|
+
* external edit): applies it to the project file system and the workspace
|
|
510
|
+
* compiler, recompiles, and absorbs any `wendoo.json` manifest change.
|
|
511
|
+
*/
|
|
512
|
+
applyExternalProjectFileChange(change: ProjectFileChange): void;
|
|
513
|
+
/**
|
|
514
|
+
* Absorb a project file change made by a remote peer: bumps the VFS
|
|
515
|
+
* revision, and a `wendoo.json` write is diffed against the active
|
|
516
|
+
* manifest -- an extensions change runs through the install transaction and
|
|
517
|
+
* the remaining synced fields patch the manifest. The change itself must
|
|
518
|
+
* already be applied to the project file system.
|
|
519
|
+
*/
|
|
520
|
+
handleRemoteProjectFileChange(change: ProjectFileChange): void;
|
|
521
|
+
private wireBridgeState;
|
|
522
|
+
private applyBridgeSnapshot;
|
|
523
|
+
}
|
|
524
|
+
//# sourceMappingURL=app-environment-host.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app-environment-host.d.ts","sourceRoot":"","sources":["../src/app-environment-host.ts"],"names":[],"mappings":"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"}
|