@lapis-notes/api 0.1.3 → 0.1.4
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/CHANGELOG.md +112 -14
- package/dist/components/editor/editor.svelte +3 -2
- package/dist/context.svelte.d.ts +2 -0
- package/dist/context.svelte.js +6 -11
- package/dist/editor-save-context.d.ts +24 -0
- package/dist/editor-save-context.js +101 -0
- package/dist/editor.svelte.d.ts +19 -1
- package/dist/editor.svelte.js +416 -34
- package/dist/file-editing-sessions.d.ts +28 -0
- package/dist/file-editing-sessions.js +197 -0
- package/dist/file-manager.d.ts +1 -0
- package/dist/file-manager.js +8 -0
- package/dist/generated/plugin-host-modules.schema.generated.d.ts +64 -34
- package/dist/generated/plugin-host-modules.schema.generated.js +67 -34
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/metadata-store.d.ts +23 -0
- package/dist/metadata-store.js +1 -0
- package/dist/plugin-manager.d.ts +1 -1
- package/dist/plugin.d.ts +1 -1
- package/dist/plugin.js +17 -5
- package/dist/storage/app-database.d.ts +3 -21
- package/dist/sync-editor-flush.d.ts +6 -0
- package/dist/sync-editor-flush.js +22 -0
- package/dist/sync-host-local.d.ts +15 -0
- package/dist/sync-host-local.js +228 -0
- package/dist/sync-host-security.d.ts +24 -9
- package/dist/sync-host-security.js +47 -14
- package/dist/sync-host.d.ts +23 -3
- package/dist/sync-host.js +155 -9
- package/dist/sync-repository.d.ts +106 -0
- package/dist/sync-repository.js +18 -0
- package/dist/view.svelte.js +28 -19
- package/package.json +17 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
function filePath(path) {
|
|
2
|
+
if (typeof path !== "string" || /[\\\0]/u.test(path))
|
|
3
|
+
throw new Error("Editing sessions require a vault-relative file path");
|
|
4
|
+
const parts = path
|
|
5
|
+
.replace(/^\/+/, "")
|
|
6
|
+
.split("/")
|
|
7
|
+
.filter((part) => part !== "." && part !== "");
|
|
8
|
+
if (!parts.length || parts.some((part) => part === ".."))
|
|
9
|
+
throw new Error("Editing sessions require a vault-relative file path");
|
|
10
|
+
return parts.join("/");
|
|
11
|
+
}
|
|
12
|
+
function throwFailures(errors) {
|
|
13
|
+
if (errors.length === 1)
|
|
14
|
+
throw errors[0];
|
|
15
|
+
if (errors.length)
|
|
16
|
+
throw new AggregateError(errors, "File editing-session cleanup failed");
|
|
17
|
+
}
|
|
18
|
+
function failures(results) {
|
|
19
|
+
return results.flatMap((result) => result.status === "rejected" ? [result.reason] : []);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* An App-owned persistence and protection boundary for independent file writers.
|
|
23
|
+
* Hosts must register every writer before selecting this as an apply guard.
|
|
24
|
+
*/
|
|
25
|
+
export class FileEditingSessionRegistry {
|
|
26
|
+
#sessions = new Map();
|
|
27
|
+
#barriers = new Map();
|
|
28
|
+
#releases = new Set();
|
|
29
|
+
#held = new Set();
|
|
30
|
+
#tail = Promise.resolve();
|
|
31
|
+
#closing = false;
|
|
32
|
+
#closed = false;
|
|
33
|
+
#disposal;
|
|
34
|
+
register(path, session) {
|
|
35
|
+
this.#assertOpen();
|
|
36
|
+
const capturedPath = filePath(path);
|
|
37
|
+
if ([...this.#barriers.values()].some((scope) => scope === undefined || scope === capturedPath))
|
|
38
|
+
throw new Error(`File editing is protected: ${capturedPath}`);
|
|
39
|
+
if (!session ||
|
|
40
|
+
typeof session.flush !== "function" ||
|
|
41
|
+
typeof session.protect !== "function" ||
|
|
42
|
+
typeof session.dirty !== "boolean")
|
|
43
|
+
throw new Error("Invalid file editing session");
|
|
44
|
+
let entry = this.#sessions.get(session);
|
|
45
|
+
if (entry && entry.path !== capturedPath)
|
|
46
|
+
throw new Error("An editing session cannot change its registered file");
|
|
47
|
+
if (!entry) {
|
|
48
|
+
entry = { path: capturedPath, session, references: 0 };
|
|
49
|
+
this.#sessions.set(session, entry);
|
|
50
|
+
}
|
|
51
|
+
entry.references++;
|
|
52
|
+
let registered = true;
|
|
53
|
+
return () => {
|
|
54
|
+
if (!registered)
|
|
55
|
+
return;
|
|
56
|
+
registered = false;
|
|
57
|
+
entry.references--;
|
|
58
|
+
this.#prune(entry);
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/** Flush the captured sessions; protection is required for mutation admission. */
|
|
62
|
+
async flush(path) {
|
|
63
|
+
this.#assertOpen();
|
|
64
|
+
const scope = path === undefined ? undefined : filePath(path);
|
|
65
|
+
return this.#enqueue(async () => {
|
|
66
|
+
const entries = this.#matching(scope);
|
|
67
|
+
const results = await Promise.allSettled(entries.map(async (entry) => {
|
|
68
|
+
await entry.session.flush();
|
|
69
|
+
if (entry.session.dirty)
|
|
70
|
+
throw new Error(`File editing session remains dirty: ${entry.path}`);
|
|
71
|
+
this.#prune(entry);
|
|
72
|
+
}));
|
|
73
|
+
throwFailures(failures(results));
|
|
74
|
+
return {
|
|
75
|
+
flushed: entries.length > 0,
|
|
76
|
+
...(scope === undefined ? {} : { path: scope }),
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Serialize mutations, holding matching sessions protected throughout the callback.
|
|
82
|
+
* Callbacks and session methods must not re-enter queued registry operations.
|
|
83
|
+
*/
|
|
84
|
+
guard(path, operation) {
|
|
85
|
+
try {
|
|
86
|
+
this.#assertOpen();
|
|
87
|
+
const scope = path === undefined ? undefined : filePath(path);
|
|
88
|
+
return this.#enqueue(() => this.#guard(scope, operation));
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
return Promise.reject(error);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/** Stop admission immediately, drain callbacks and retry failed persistence/cleanup. */
|
|
95
|
+
dispose() {
|
|
96
|
+
if (this.#disposal)
|
|
97
|
+
return this.#disposal;
|
|
98
|
+
this.#closing = true;
|
|
99
|
+
this.#disposal = (async () => {
|
|
100
|
+
await this.#tail;
|
|
101
|
+
if (this.#closed)
|
|
102
|
+
return;
|
|
103
|
+
await this.#guard(undefined, async () => undefined, true);
|
|
104
|
+
this.#sessions.clear();
|
|
105
|
+
this.#closed = true;
|
|
106
|
+
})();
|
|
107
|
+
// Keep closure permanent, but allow explicitly requested cleanup retries.
|
|
108
|
+
void this.#disposal.catch(() => {
|
|
109
|
+
this.#disposal = undefined;
|
|
110
|
+
});
|
|
111
|
+
return this.#disposal;
|
|
112
|
+
}
|
|
113
|
+
#assertOpen() {
|
|
114
|
+
if (this.#closing)
|
|
115
|
+
throw new Error("File editing-session registry is closed");
|
|
116
|
+
}
|
|
117
|
+
#enqueue(operation) {
|
|
118
|
+
const run = this.#tail.then(() => {
|
|
119
|
+
this.#assertOpen();
|
|
120
|
+
return operation();
|
|
121
|
+
});
|
|
122
|
+
this.#tail = run.then(() => undefined, () => undefined);
|
|
123
|
+
return run;
|
|
124
|
+
}
|
|
125
|
+
#matching(path) {
|
|
126
|
+
return [...this.#sessions.values()].filter((entry) => path === undefined || entry.path === path);
|
|
127
|
+
}
|
|
128
|
+
#prune(entry) {
|
|
129
|
+
// A detached writer's failed or in-flight persistence remains a barrier.
|
|
130
|
+
if (entry.references ||
|
|
131
|
+
this.#held.has(entry) ||
|
|
132
|
+
this.#sessions.get(entry.session) !== entry)
|
|
133
|
+
return;
|
|
134
|
+
try {
|
|
135
|
+
if (!entry.session.dirty)
|
|
136
|
+
this.#sessions.delete(entry.session);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// A failing dirty-state getter must not silently remove a writer.
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async #release(pending) {
|
|
143
|
+
const results = await Promise.allSettled(pending.map(async (lease) => {
|
|
144
|
+
await lease.release();
|
|
145
|
+
this.#releases.delete(lease);
|
|
146
|
+
this.#held.delete(lease.entry);
|
|
147
|
+
this.#prune(lease.entry);
|
|
148
|
+
}));
|
|
149
|
+
for (const barrier of this.#barriers.keys())
|
|
150
|
+
if (![...this.#releases].some((lease) => lease.barrier === barrier))
|
|
151
|
+
this.#barriers.delete(barrier);
|
|
152
|
+
return failures(results);
|
|
153
|
+
}
|
|
154
|
+
async #guard(path, operation, shutdown = false) {
|
|
155
|
+
// A previous release failure must be repaired before another mutation starts.
|
|
156
|
+
throwFailures(await this.#release([...this.#releases]));
|
|
157
|
+
const barrier = {};
|
|
158
|
+
this.#barriers.set(barrier, path);
|
|
159
|
+
const entries = this.#matching(path);
|
|
160
|
+
for (const entry of entries)
|
|
161
|
+
this.#held.add(entry);
|
|
162
|
+
let result;
|
|
163
|
+
const errors = [];
|
|
164
|
+
try {
|
|
165
|
+
const protectedEntries = [];
|
|
166
|
+
const admission = await Promise.allSettled(entries.map(async (entry) => {
|
|
167
|
+
const release = await entry.session.protect();
|
|
168
|
+
if (typeof release !== "function")
|
|
169
|
+
throw new Error("Invalid editing-session protection release");
|
|
170
|
+
this.#releases.add({ barrier, entry, release });
|
|
171
|
+
protectedEntries.push(entry);
|
|
172
|
+
}));
|
|
173
|
+
const saved = await Promise.allSettled(protectedEntries.map(async (entry) => {
|
|
174
|
+
await entry.session.flush();
|
|
175
|
+
if (entry.session.dirty)
|
|
176
|
+
throw new Error(`File editing session remains dirty: ${entry.path}`);
|
|
177
|
+
this.#prune(entry);
|
|
178
|
+
}));
|
|
179
|
+
throwFailures([...failures(admission), ...failures(saved)]);
|
|
180
|
+
if (!shutdown)
|
|
181
|
+
this.#assertOpen();
|
|
182
|
+
result = await operation();
|
|
183
|
+
}
|
|
184
|
+
catch (error) {
|
|
185
|
+
errors.push(error);
|
|
186
|
+
}
|
|
187
|
+
errors.push(...(await this.#release([...this.#releases].filter((lease) => lease.barrier === barrier))));
|
|
188
|
+
for (const entry of entries) {
|
|
189
|
+
if (![...this.#releases].some((lease) => lease.entry === entry)) {
|
|
190
|
+
this.#held.delete(entry);
|
|
191
|
+
this.#prune(entry);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
throwFailures(errors);
|
|
195
|
+
return result;
|
|
196
|
+
}
|
|
197
|
+
}
|
package/dist/file-manager.d.ts
CHANGED
|
@@ -41,6 +41,7 @@ export declare class FileManager {
|
|
|
41
41
|
* @public
|
|
42
42
|
*/
|
|
43
43
|
renameFile(file: TAbstractFile, newPath: string): Promise<void>;
|
|
44
|
+
private renameProtectedFile;
|
|
44
45
|
/**
|
|
45
46
|
* Remove a file or a folder from the vault according the user's preferred
|
|
46
47
|
* 'trash' options (either moving the file to .trash/ or the OS trash bin).
|
package/dist/file-manager.js
CHANGED
|
@@ -173,6 +173,14 @@ export class FileManager {
|
|
|
173
173
|
* @public
|
|
174
174
|
*/
|
|
175
175
|
async renameFile(file, newPath) {
|
|
176
|
+
const capturedPath = file.path;
|
|
177
|
+
await this.app.fileEditingSessions.guard(undefined, async () => {
|
|
178
|
+
if (file.path !== capturedPath)
|
|
179
|
+
throw new Error("Rename target changed during editor admission");
|
|
180
|
+
await this.renameProtectedFile(file, newPath);
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
async renameProtectedFile(file, newPath) {
|
|
176
184
|
if (!(file instanceof TFile)) {
|
|
177
185
|
return this.app.vault.rename(file, newPath);
|
|
178
186
|
}
|
|
@@ -137,7 +137,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
137
137
|
readonly public: true;
|
|
138
138
|
readonly source: "package-json-export";
|
|
139
139
|
readonly specifier: "@lapis-notes/api";
|
|
140
|
-
readonly version: "0.1.
|
|
140
|
+
readonly version: "0.1.4";
|
|
141
141
|
};
|
|
142
142
|
readonly "@lapis-notes/api/agent-skills": {
|
|
143
143
|
readonly entry: "@lapis-notes/api/agent-skills";
|
|
@@ -147,7 +147,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
147
147
|
readonly public: true;
|
|
148
148
|
readonly source: "package-json-export";
|
|
149
149
|
readonly specifier: "@lapis-notes/api/agent-skills";
|
|
150
|
-
readonly version: "0.1.
|
|
150
|
+
readonly version: "0.1.4";
|
|
151
151
|
};
|
|
152
152
|
readonly "@lapis-notes/api/agent-tools": {
|
|
153
153
|
readonly entry: "@lapis-notes/api/agent-tools";
|
|
@@ -157,7 +157,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
157
157
|
readonly public: true;
|
|
158
158
|
readonly source: "package-json-export";
|
|
159
159
|
readonly specifier: "@lapis-notes/api/agent-tools";
|
|
160
|
-
readonly version: "0.1.
|
|
160
|
+
readonly version: "0.1.4";
|
|
161
161
|
};
|
|
162
162
|
readonly "@lapis-notes/api/app-database": {
|
|
163
163
|
readonly entry: "@lapis-notes/api/app-database";
|
|
@@ -167,7 +167,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
167
167
|
readonly public: true;
|
|
168
168
|
readonly source: "package-json-export";
|
|
169
169
|
readonly specifier: "@lapis-notes/api/app-database";
|
|
170
|
-
readonly version: "0.1.
|
|
170
|
+
readonly version: "0.1.4";
|
|
171
171
|
};
|
|
172
172
|
readonly "@lapis-notes/api/build/vite": {
|
|
173
173
|
readonly entry: "@lapis-notes/api/build/vite";
|
|
@@ -177,7 +177,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
177
177
|
readonly public: true;
|
|
178
178
|
readonly source: "package-json-export";
|
|
179
179
|
readonly specifier: "@lapis-notes/api/build/vite";
|
|
180
|
-
readonly version: "0.1.
|
|
180
|
+
readonly version: "0.1.4";
|
|
181
181
|
};
|
|
182
182
|
readonly "@lapis-notes/api/cache": {
|
|
183
183
|
readonly entry: "@lapis-notes/api/cache";
|
|
@@ -187,7 +187,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
187
187
|
readonly public: true;
|
|
188
188
|
readonly source: "package-json-export";
|
|
189
189
|
readonly specifier: "@lapis-notes/api/cache";
|
|
190
|
-
readonly version: "0.1.
|
|
190
|
+
readonly version: "0.1.4";
|
|
191
191
|
};
|
|
192
192
|
readonly "@lapis-notes/api/copy-button": {
|
|
193
193
|
readonly entry: "@lapis-notes/api/copy-button";
|
|
@@ -197,7 +197,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
197
197
|
readonly public: true;
|
|
198
198
|
readonly source: "package-json-export";
|
|
199
199
|
readonly specifier: "@lapis-notes/api/copy-button";
|
|
200
|
-
readonly version: "0.1.
|
|
200
|
+
readonly version: "0.1.4";
|
|
201
201
|
};
|
|
202
202
|
readonly "@lapis-notes/api/desktop-native": {
|
|
203
203
|
readonly entry: "@lapis-notes/api/desktop-native";
|
|
@@ -207,7 +207,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
207
207
|
readonly public: true;
|
|
208
208
|
readonly source: "package-json-export";
|
|
209
209
|
readonly specifier: "@lapis-notes/api/desktop-native";
|
|
210
|
-
readonly version: "0.1.
|
|
210
|
+
readonly version: "0.1.4";
|
|
211
211
|
};
|
|
212
212
|
readonly "@lapis-notes/api/editor": {
|
|
213
213
|
readonly defaultExport: true;
|
|
@@ -218,7 +218,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
218
218
|
readonly public: true;
|
|
219
219
|
readonly source: "package-json-export";
|
|
220
220
|
readonly specifier: "@lapis-notes/api/editor";
|
|
221
|
-
readonly version: "0.1.
|
|
221
|
+
readonly version: "0.1.4";
|
|
222
222
|
};
|
|
223
223
|
readonly "@lapis-notes/api/editor/core": {
|
|
224
224
|
readonly entry: "@lapis-notes/api/editor/core";
|
|
@@ -228,7 +228,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
228
228
|
readonly public: true;
|
|
229
229
|
readonly source: "package-json-export";
|
|
230
230
|
readonly specifier: "@lapis-notes/api/editor/core";
|
|
231
|
-
readonly version: "0.1.
|
|
231
|
+
readonly version: "0.1.4";
|
|
232
232
|
};
|
|
233
233
|
readonly "@lapis-notes/api/editor/extensions/autocomplete": {
|
|
234
234
|
readonly entry: "@lapis-notes/api/editor/extensions/autocomplete";
|
|
@@ -238,7 +238,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
238
238
|
readonly public: true;
|
|
239
239
|
readonly source: "package-json-export";
|
|
240
240
|
readonly specifier: "@lapis-notes/api/editor/extensions/autocomplete";
|
|
241
|
-
readonly version: "0.1.
|
|
241
|
+
readonly version: "0.1.4";
|
|
242
242
|
};
|
|
243
243
|
readonly "@lapis-notes/api/editor/extensions/class-highlighter": {
|
|
244
244
|
readonly entry: "@lapis-notes/api/editor/extensions/class-highlighter";
|
|
@@ -248,7 +248,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
248
248
|
readonly public: true;
|
|
249
249
|
readonly source: "package-json-export";
|
|
250
250
|
readonly specifier: "@lapis-notes/api/editor/extensions/class-highlighter";
|
|
251
|
-
readonly version: "0.1.
|
|
251
|
+
readonly version: "0.1.4";
|
|
252
252
|
};
|
|
253
253
|
readonly "@lapis-notes/api/editor/extensions/fold-gutter": {
|
|
254
254
|
readonly entry: "@lapis-notes/api/editor/extensions/fold-gutter";
|
|
@@ -258,7 +258,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
258
258
|
readonly public: true;
|
|
259
259
|
readonly source: "package-json-export";
|
|
260
260
|
readonly specifier: "@lapis-notes/api/editor/extensions/fold-gutter";
|
|
261
|
-
readonly version: "0.1.
|
|
261
|
+
readonly version: "0.1.4";
|
|
262
262
|
};
|
|
263
263
|
readonly "@lapis-notes/api/editor/extensions/gutter-line-style-sync": {
|
|
264
264
|
readonly entry: "@lapis-notes/api/editor/extensions/gutter-line-style-sync";
|
|
@@ -268,7 +268,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
268
268
|
readonly public: true;
|
|
269
269
|
readonly source: "package-json-export";
|
|
270
270
|
readonly specifier: "@lapis-notes/api/editor/extensions/gutter-line-style-sync";
|
|
271
|
-
readonly version: "0.1.
|
|
271
|
+
readonly version: "0.1.4";
|
|
272
272
|
};
|
|
273
273
|
readonly "@lapis-notes/api/editor/extensions/lint": {
|
|
274
274
|
readonly entry: "@lapis-notes/api/editor/extensions/lint";
|
|
@@ -278,7 +278,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
278
278
|
readonly public: true;
|
|
279
279
|
readonly source: "package-json-export";
|
|
280
280
|
readonly specifier: "@lapis-notes/api/editor/extensions/lint";
|
|
281
|
-
readonly version: "0.1.
|
|
281
|
+
readonly version: "0.1.4";
|
|
282
282
|
};
|
|
283
283
|
readonly "@lapis-notes/api/editor/extensions/search": {
|
|
284
284
|
readonly entry: "@lapis-notes/api/editor/extensions/search";
|
|
@@ -288,7 +288,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
288
288
|
readonly public: true;
|
|
289
289
|
readonly source: "package-json-export";
|
|
290
290
|
readonly specifier: "@lapis-notes/api/editor/extensions/search";
|
|
291
|
-
readonly version: "0.1.
|
|
291
|
+
readonly version: "0.1.4";
|
|
292
292
|
};
|
|
293
293
|
readonly "@lapis-notes/api/editor/language-service": {
|
|
294
294
|
readonly entry: "@lapis-notes/api/editor/language-service";
|
|
@@ -298,7 +298,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
298
298
|
readonly public: true;
|
|
299
299
|
readonly source: "package-json-export";
|
|
300
300
|
readonly specifier: "@lapis-notes/api/editor/language-service";
|
|
301
|
-
readonly version: "0.1.
|
|
301
|
+
readonly version: "0.1.4";
|
|
302
302
|
};
|
|
303
303
|
readonly "@lapis-notes/api/empty-view": {
|
|
304
304
|
readonly entry: "@lapis-notes/api/empty-view";
|
|
@@ -308,7 +308,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
308
308
|
readonly public: true;
|
|
309
309
|
readonly source: "package-json-export";
|
|
310
310
|
readonly specifier: "@lapis-notes/api/empty-view";
|
|
311
|
-
readonly version: "0.1.
|
|
311
|
+
readonly version: "0.1.4";
|
|
312
312
|
};
|
|
313
313
|
readonly "@lapis-notes/api/icon": {
|
|
314
314
|
readonly entry: "@lapis-notes/api/icon";
|
|
@@ -318,7 +318,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
318
318
|
readonly public: true;
|
|
319
319
|
readonly source: "package-json-export";
|
|
320
320
|
readonly specifier: "@lapis-notes/api/icon";
|
|
321
|
-
readonly version: "0.1.
|
|
321
|
+
readonly version: "0.1.4";
|
|
322
322
|
};
|
|
323
323
|
readonly "@lapis-notes/api/language-service": {
|
|
324
324
|
readonly entry: "@lapis-notes/api/language-service";
|
|
@@ -328,7 +328,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
328
328
|
readonly public: true;
|
|
329
329
|
readonly source: "package-json-export";
|
|
330
330
|
readonly specifier: "@lapis-notes/api/language-service";
|
|
331
|
-
readonly version: "0.1.
|
|
331
|
+
readonly version: "0.1.4";
|
|
332
332
|
};
|
|
333
333
|
readonly "@lapis-notes/api/language-service/worker": {
|
|
334
334
|
readonly entry: "@lapis-notes/api/language-service/worker";
|
|
@@ -338,7 +338,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
338
338
|
readonly public: true;
|
|
339
339
|
readonly source: "package-json-export";
|
|
340
340
|
readonly specifier: "@lapis-notes/api/language-service/worker";
|
|
341
|
-
readonly version: "0.1.
|
|
341
|
+
readonly version: "0.1.4";
|
|
342
342
|
};
|
|
343
343
|
readonly "@lapis-notes/api/menu": {
|
|
344
344
|
readonly defaultExport: true;
|
|
@@ -349,7 +349,17 @@ export declare const pluginHostModuleRegistry: {
|
|
|
349
349
|
readonly public: true;
|
|
350
350
|
readonly source: "package-json-export";
|
|
351
351
|
readonly specifier: "@lapis-notes/api/menu";
|
|
352
|
-
readonly version: "0.1.
|
|
352
|
+
readonly version: "0.1.4";
|
|
353
|
+
};
|
|
354
|
+
readonly "@lapis-notes/api/metadata-store": {
|
|
355
|
+
readonly entry: "@lapis-notes/api/metadata-store";
|
|
356
|
+
readonly moduleId: "lapis-notes-api-metadata-store";
|
|
357
|
+
readonly packageName: "@lapis-notes/api";
|
|
358
|
+
readonly platforms: readonly [];
|
|
359
|
+
readonly public: true;
|
|
360
|
+
readonly source: "package-json-export";
|
|
361
|
+
readonly specifier: "@lapis-notes/api/metadata-store";
|
|
362
|
+
readonly version: "0.1.4";
|
|
353
363
|
};
|
|
354
364
|
readonly "@lapis-notes/api/metadata-value": {
|
|
355
365
|
readonly entry: "@lapis-notes/api/metadata-value";
|
|
@@ -359,7 +369,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
359
369
|
readonly public: true;
|
|
360
370
|
readonly source: "package-json-export";
|
|
361
371
|
readonly specifier: "@lapis-notes/api/metadata-value";
|
|
362
|
-
readonly version: "0.1.
|
|
372
|
+
readonly version: "0.1.4";
|
|
363
373
|
};
|
|
364
374
|
readonly "@lapis-notes/api/path": {
|
|
365
375
|
readonly entry: "@lapis-notes/api/path";
|
|
@@ -369,7 +379,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
369
379
|
readonly public: true;
|
|
370
380
|
readonly source: "package-json-export";
|
|
371
381
|
readonly specifier: "@lapis-notes/api/path";
|
|
372
|
-
readonly version: "0.1.
|
|
382
|
+
readonly version: "0.1.4";
|
|
373
383
|
};
|
|
374
384
|
readonly "@lapis-notes/api/plugin-assets": {
|
|
375
385
|
readonly entry: "@lapis-notes/api/plugin-assets";
|
|
@@ -379,7 +389,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
379
389
|
readonly public: true;
|
|
380
390
|
readonly source: "package-json-export";
|
|
381
391
|
readonly specifier: "@lapis-notes/api/plugin-assets";
|
|
382
|
-
readonly version: "0.1.
|
|
392
|
+
readonly version: "0.1.4";
|
|
383
393
|
};
|
|
384
394
|
readonly "@lapis-notes/api/plugin-distribution-host": {
|
|
385
395
|
readonly entry: "@lapis-notes/api/plugin-distribution-host";
|
|
@@ -389,7 +399,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
389
399
|
readonly public: true;
|
|
390
400
|
readonly source: "package-json-export";
|
|
391
401
|
readonly specifier: "@lapis-notes/api/plugin-distribution-host";
|
|
392
|
-
readonly version: "0.1.
|
|
402
|
+
readonly version: "0.1.4";
|
|
393
403
|
};
|
|
394
404
|
readonly "@lapis-notes/api/plugin-host-modules": {
|
|
395
405
|
readonly entry: "@lapis-notes/api/plugin-host-modules";
|
|
@@ -399,7 +409,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
399
409
|
readonly public: true;
|
|
400
410
|
readonly source: "package-json-export";
|
|
401
411
|
readonly specifier: "@lapis-notes/api/plugin-host-modules";
|
|
402
|
-
readonly version: "0.1.
|
|
412
|
+
readonly version: "0.1.4";
|
|
403
413
|
};
|
|
404
414
|
readonly "@lapis-notes/api/registry/schema": {
|
|
405
415
|
readonly entry: "@lapis-notes/api/registry/schema";
|
|
@@ -409,7 +419,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
409
419
|
readonly public: true;
|
|
410
420
|
readonly source: "package-json-export";
|
|
411
421
|
readonly specifier: "@lapis-notes/api/registry/schema";
|
|
412
|
-
readonly version: "0.1.
|
|
422
|
+
readonly version: "0.1.4";
|
|
413
423
|
};
|
|
414
424
|
readonly "@lapis-notes/api/search-embedding-worker": {
|
|
415
425
|
readonly entry: "@lapis-notes/api/search-embedding-worker";
|
|
@@ -419,7 +429,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
419
429
|
readonly public: true;
|
|
420
430
|
readonly source: "package-json-export";
|
|
421
431
|
readonly specifier: "@lapis-notes/api/search-embedding-worker";
|
|
422
|
-
readonly version: "0.1.
|
|
432
|
+
readonly version: "0.1.4";
|
|
423
433
|
};
|
|
424
434
|
readonly "@lapis-notes/api/select": {
|
|
425
435
|
readonly entry: "@lapis-notes/api/select";
|
|
@@ -429,7 +439,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
429
439
|
readonly public: true;
|
|
430
440
|
readonly source: "package-json-export";
|
|
431
441
|
readonly specifier: "@lapis-notes/api/select";
|
|
432
|
-
readonly version: "0.1.
|
|
442
|
+
readonly version: "0.1.4";
|
|
433
443
|
};
|
|
434
444
|
readonly "@lapis-notes/api/server-host": {
|
|
435
445
|
readonly entry: "@lapis-notes/api/server-host";
|
|
@@ -439,7 +449,27 @@ export declare const pluginHostModuleRegistry: {
|
|
|
439
449
|
readonly public: true;
|
|
440
450
|
readonly source: "package-json-export";
|
|
441
451
|
readonly specifier: "@lapis-notes/api/server-host";
|
|
442
|
-
readonly version: "0.1.
|
|
452
|
+
readonly version: "0.1.4";
|
|
453
|
+
};
|
|
454
|
+
readonly "@lapis-notes/api/sync-repository": {
|
|
455
|
+
readonly entry: "@lapis-notes/api/sync-repository";
|
|
456
|
+
readonly moduleId: "lapis-notes-api-sync-repository";
|
|
457
|
+
readonly packageName: "@lapis-notes/api";
|
|
458
|
+
readonly platforms: readonly ["web", "electron-renderer"];
|
|
459
|
+
readonly public: true;
|
|
460
|
+
readonly source: "package-json-export";
|
|
461
|
+
readonly specifier: "@lapis-notes/api/sync-repository";
|
|
462
|
+
readonly version: "0.1.4";
|
|
463
|
+
};
|
|
464
|
+
readonly "@lapis-notes/api/sync-security-host": {
|
|
465
|
+
readonly entry: "@lapis-notes/api/sync-security-host";
|
|
466
|
+
readonly moduleId: "lapis-notes-api-sync-security-host";
|
|
467
|
+
readonly packageName: "@lapis-notes/api";
|
|
468
|
+
readonly platforms: readonly [];
|
|
469
|
+
readonly public: true;
|
|
470
|
+
readonly source: "package-json-export";
|
|
471
|
+
readonly specifier: "@lapis-notes/api/sync-security-host";
|
|
472
|
+
readonly version: "0.1.4";
|
|
443
473
|
};
|
|
444
474
|
readonly "@lapis-notes/api/telemetry": {
|
|
445
475
|
readonly entry: "@lapis-notes/api/telemetry";
|
|
@@ -449,7 +479,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
449
479
|
readonly public: true;
|
|
450
480
|
readonly source: "package-json-export";
|
|
451
481
|
readonly specifier: "@lapis-notes/api/telemetry";
|
|
452
|
-
readonly version: "0.1.
|
|
482
|
+
readonly version: "0.1.4";
|
|
453
483
|
};
|
|
454
484
|
readonly "@lapis-notes/api/vault": {
|
|
455
485
|
readonly entry: "@lapis-notes/api/vault";
|
|
@@ -459,7 +489,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
459
489
|
readonly public: true;
|
|
460
490
|
readonly source: "package-json-export";
|
|
461
491
|
readonly specifier: "@lapis-notes/api/vault";
|
|
462
|
-
readonly version: "0.1.
|
|
492
|
+
readonly version: "0.1.4";
|
|
463
493
|
};
|
|
464
494
|
readonly "@lapis-notes/api/workspace-host": {
|
|
465
495
|
readonly entry: "@lapis-notes/api/workspace-host";
|
|
@@ -469,7 +499,7 @@ export declare const pluginHostModuleRegistry: {
|
|
|
469
499
|
readonly public: true;
|
|
470
500
|
readonly source: "package-json-export";
|
|
471
501
|
readonly specifier: "@lapis-notes/api/workspace-host";
|
|
472
|
-
readonly version: "0.1.
|
|
502
|
+
readonly version: "0.1.4";
|
|
473
503
|
};
|
|
474
504
|
readonly "@lapis-notes/markdown": {
|
|
475
505
|
readonly entry: "@lapis-notes/markdown";
|