@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
|
@@ -181,7 +181,7 @@ export const pluginHostModuleRegistry = {
|
|
|
181
181
|
"public": true,
|
|
182
182
|
"source": "package-json-export",
|
|
183
183
|
"specifier": "@lapis-notes/api",
|
|
184
|
-
"version": "0.1.
|
|
184
|
+
"version": "0.1.4"
|
|
185
185
|
},
|
|
186
186
|
"@lapis-notes/api/agent-skills": {
|
|
187
187
|
"entry": "@lapis-notes/api/agent-skills",
|
|
@@ -194,7 +194,7 @@ export const pluginHostModuleRegistry = {
|
|
|
194
194
|
"public": true,
|
|
195
195
|
"source": "package-json-export",
|
|
196
196
|
"specifier": "@lapis-notes/api/agent-skills",
|
|
197
|
-
"version": "0.1.
|
|
197
|
+
"version": "0.1.4"
|
|
198
198
|
},
|
|
199
199
|
"@lapis-notes/api/agent-tools": {
|
|
200
200
|
"entry": "@lapis-notes/api/agent-tools",
|
|
@@ -207,7 +207,7 @@ export const pluginHostModuleRegistry = {
|
|
|
207
207
|
"public": true,
|
|
208
208
|
"source": "package-json-export",
|
|
209
209
|
"specifier": "@lapis-notes/api/agent-tools",
|
|
210
|
-
"version": "0.1.
|
|
210
|
+
"version": "0.1.4"
|
|
211
211
|
},
|
|
212
212
|
"@lapis-notes/api/app-database": {
|
|
213
213
|
"entry": "@lapis-notes/api/app-database",
|
|
@@ -220,7 +220,7 @@ export const pluginHostModuleRegistry = {
|
|
|
220
220
|
"public": true,
|
|
221
221
|
"source": "package-json-export",
|
|
222
222
|
"specifier": "@lapis-notes/api/app-database",
|
|
223
|
-
"version": "0.1.
|
|
223
|
+
"version": "0.1.4"
|
|
224
224
|
},
|
|
225
225
|
"@lapis-notes/api/build/vite": {
|
|
226
226
|
"entry": "@lapis-notes/api/build/vite",
|
|
@@ -230,7 +230,7 @@ export const pluginHostModuleRegistry = {
|
|
|
230
230
|
"public": true,
|
|
231
231
|
"source": "package-json-export",
|
|
232
232
|
"specifier": "@lapis-notes/api/build/vite",
|
|
233
|
-
"version": "0.1.
|
|
233
|
+
"version": "0.1.4"
|
|
234
234
|
},
|
|
235
235
|
"@lapis-notes/api/cache": {
|
|
236
236
|
"entry": "@lapis-notes/api/cache",
|
|
@@ -243,7 +243,7 @@ export const pluginHostModuleRegistry = {
|
|
|
243
243
|
"public": true,
|
|
244
244
|
"source": "package-json-export",
|
|
245
245
|
"specifier": "@lapis-notes/api/cache",
|
|
246
|
-
"version": "0.1.
|
|
246
|
+
"version": "0.1.4"
|
|
247
247
|
},
|
|
248
248
|
"@lapis-notes/api/copy-button": {
|
|
249
249
|
"entry": "@lapis-notes/api/copy-button",
|
|
@@ -256,7 +256,7 @@ export const pluginHostModuleRegistry = {
|
|
|
256
256
|
"public": true,
|
|
257
257
|
"source": "package-json-export",
|
|
258
258
|
"specifier": "@lapis-notes/api/copy-button",
|
|
259
|
-
"version": "0.1.
|
|
259
|
+
"version": "0.1.4"
|
|
260
260
|
},
|
|
261
261
|
"@lapis-notes/api/desktop-native": {
|
|
262
262
|
"entry": "@lapis-notes/api/desktop-native",
|
|
@@ -269,7 +269,7 @@ export const pluginHostModuleRegistry = {
|
|
|
269
269
|
"public": true,
|
|
270
270
|
"source": "package-json-export",
|
|
271
271
|
"specifier": "@lapis-notes/api/desktop-native",
|
|
272
|
-
"version": "0.1.
|
|
272
|
+
"version": "0.1.4"
|
|
273
273
|
},
|
|
274
274
|
"@lapis-notes/api/editor": {
|
|
275
275
|
"defaultExport": true,
|
|
@@ -283,7 +283,7 @@ export const pluginHostModuleRegistry = {
|
|
|
283
283
|
"public": true,
|
|
284
284
|
"source": "package-json-export",
|
|
285
285
|
"specifier": "@lapis-notes/api/editor",
|
|
286
|
-
"version": "0.1.
|
|
286
|
+
"version": "0.1.4"
|
|
287
287
|
},
|
|
288
288
|
"@lapis-notes/api/editor/core": {
|
|
289
289
|
"entry": "@lapis-notes/api/editor/core",
|
|
@@ -296,7 +296,7 @@ export const pluginHostModuleRegistry = {
|
|
|
296
296
|
"public": true,
|
|
297
297
|
"source": "package-json-export",
|
|
298
298
|
"specifier": "@lapis-notes/api/editor/core",
|
|
299
|
-
"version": "0.1.
|
|
299
|
+
"version": "0.1.4"
|
|
300
300
|
},
|
|
301
301
|
"@lapis-notes/api/editor/extensions/autocomplete": {
|
|
302
302
|
"entry": "@lapis-notes/api/editor/extensions/autocomplete",
|
|
@@ -309,7 +309,7 @@ export const pluginHostModuleRegistry = {
|
|
|
309
309
|
"public": true,
|
|
310
310
|
"source": "package-json-export",
|
|
311
311
|
"specifier": "@lapis-notes/api/editor/extensions/autocomplete",
|
|
312
|
-
"version": "0.1.
|
|
312
|
+
"version": "0.1.4"
|
|
313
313
|
},
|
|
314
314
|
"@lapis-notes/api/editor/extensions/class-highlighter": {
|
|
315
315
|
"entry": "@lapis-notes/api/editor/extensions/class-highlighter",
|
|
@@ -322,7 +322,7 @@ export const pluginHostModuleRegistry = {
|
|
|
322
322
|
"public": true,
|
|
323
323
|
"source": "package-json-export",
|
|
324
324
|
"specifier": "@lapis-notes/api/editor/extensions/class-highlighter",
|
|
325
|
-
"version": "0.1.
|
|
325
|
+
"version": "0.1.4"
|
|
326
326
|
},
|
|
327
327
|
"@lapis-notes/api/editor/extensions/fold-gutter": {
|
|
328
328
|
"entry": "@lapis-notes/api/editor/extensions/fold-gutter",
|
|
@@ -335,7 +335,7 @@ export const pluginHostModuleRegistry = {
|
|
|
335
335
|
"public": true,
|
|
336
336
|
"source": "package-json-export",
|
|
337
337
|
"specifier": "@lapis-notes/api/editor/extensions/fold-gutter",
|
|
338
|
-
"version": "0.1.
|
|
338
|
+
"version": "0.1.4"
|
|
339
339
|
},
|
|
340
340
|
"@lapis-notes/api/editor/extensions/gutter-line-style-sync": {
|
|
341
341
|
"entry": "@lapis-notes/api/editor/extensions/gutter-line-style-sync",
|
|
@@ -348,7 +348,7 @@ export const pluginHostModuleRegistry = {
|
|
|
348
348
|
"public": true,
|
|
349
349
|
"source": "package-json-export",
|
|
350
350
|
"specifier": "@lapis-notes/api/editor/extensions/gutter-line-style-sync",
|
|
351
|
-
"version": "0.1.
|
|
351
|
+
"version": "0.1.4"
|
|
352
352
|
},
|
|
353
353
|
"@lapis-notes/api/editor/extensions/lint": {
|
|
354
354
|
"entry": "@lapis-notes/api/editor/extensions/lint",
|
|
@@ -361,7 +361,7 @@ export const pluginHostModuleRegistry = {
|
|
|
361
361
|
"public": true,
|
|
362
362
|
"source": "package-json-export",
|
|
363
363
|
"specifier": "@lapis-notes/api/editor/extensions/lint",
|
|
364
|
-
"version": "0.1.
|
|
364
|
+
"version": "0.1.4"
|
|
365
365
|
},
|
|
366
366
|
"@lapis-notes/api/editor/extensions/search": {
|
|
367
367
|
"entry": "@lapis-notes/api/editor/extensions/search",
|
|
@@ -374,7 +374,7 @@ export const pluginHostModuleRegistry = {
|
|
|
374
374
|
"public": true,
|
|
375
375
|
"source": "package-json-export",
|
|
376
376
|
"specifier": "@lapis-notes/api/editor/extensions/search",
|
|
377
|
-
"version": "0.1.
|
|
377
|
+
"version": "0.1.4"
|
|
378
378
|
},
|
|
379
379
|
"@lapis-notes/api/editor/language-service": {
|
|
380
380
|
"entry": "@lapis-notes/api/editor/language-service",
|
|
@@ -387,7 +387,7 @@ export const pluginHostModuleRegistry = {
|
|
|
387
387
|
"public": true,
|
|
388
388
|
"source": "package-json-export",
|
|
389
389
|
"specifier": "@lapis-notes/api/editor/language-service",
|
|
390
|
-
"version": "0.1.
|
|
390
|
+
"version": "0.1.4"
|
|
391
391
|
},
|
|
392
392
|
"@lapis-notes/api/empty-view": {
|
|
393
393
|
"entry": "@lapis-notes/api/empty-view",
|
|
@@ -400,7 +400,7 @@ export const pluginHostModuleRegistry = {
|
|
|
400
400
|
"public": true,
|
|
401
401
|
"source": "package-json-export",
|
|
402
402
|
"specifier": "@lapis-notes/api/empty-view",
|
|
403
|
-
"version": "0.1.
|
|
403
|
+
"version": "0.1.4"
|
|
404
404
|
},
|
|
405
405
|
"@lapis-notes/api/icon": {
|
|
406
406
|
"entry": "@lapis-notes/api/icon",
|
|
@@ -413,7 +413,7 @@ export const pluginHostModuleRegistry = {
|
|
|
413
413
|
"public": true,
|
|
414
414
|
"source": "package-json-export",
|
|
415
415
|
"specifier": "@lapis-notes/api/icon",
|
|
416
|
-
"version": "0.1.
|
|
416
|
+
"version": "0.1.4"
|
|
417
417
|
},
|
|
418
418
|
"@lapis-notes/api/language-service": {
|
|
419
419
|
"entry": "@lapis-notes/api/language-service",
|
|
@@ -426,7 +426,7 @@ export const pluginHostModuleRegistry = {
|
|
|
426
426
|
"public": true,
|
|
427
427
|
"source": "package-json-export",
|
|
428
428
|
"specifier": "@lapis-notes/api/language-service",
|
|
429
|
-
"version": "0.1.
|
|
429
|
+
"version": "0.1.4"
|
|
430
430
|
},
|
|
431
431
|
"@lapis-notes/api/language-service/worker": {
|
|
432
432
|
"entry": "@lapis-notes/api/language-service/worker",
|
|
@@ -439,7 +439,7 @@ export const pluginHostModuleRegistry = {
|
|
|
439
439
|
"public": true,
|
|
440
440
|
"source": "package-json-export",
|
|
441
441
|
"specifier": "@lapis-notes/api/language-service/worker",
|
|
442
|
-
"version": "0.1.
|
|
442
|
+
"version": "0.1.4"
|
|
443
443
|
},
|
|
444
444
|
"@lapis-notes/api/menu": {
|
|
445
445
|
"defaultExport": true,
|
|
@@ -453,7 +453,17 @@ export const pluginHostModuleRegistry = {
|
|
|
453
453
|
"public": true,
|
|
454
454
|
"source": "package-json-export",
|
|
455
455
|
"specifier": "@lapis-notes/api/menu",
|
|
456
|
-
"version": "0.1.
|
|
456
|
+
"version": "0.1.4"
|
|
457
|
+
},
|
|
458
|
+
"@lapis-notes/api/metadata-store": {
|
|
459
|
+
"entry": "@lapis-notes/api/metadata-store",
|
|
460
|
+
"moduleId": "lapis-notes-api-metadata-store",
|
|
461
|
+
"packageName": "@lapis-notes/api",
|
|
462
|
+
"platforms": [],
|
|
463
|
+
"public": true,
|
|
464
|
+
"source": "package-json-export",
|
|
465
|
+
"specifier": "@lapis-notes/api/metadata-store",
|
|
466
|
+
"version": "0.1.4"
|
|
457
467
|
},
|
|
458
468
|
"@lapis-notes/api/metadata-value": {
|
|
459
469
|
"entry": "@lapis-notes/api/metadata-value",
|
|
@@ -466,7 +476,7 @@ export const pluginHostModuleRegistry = {
|
|
|
466
476
|
"public": true,
|
|
467
477
|
"source": "package-json-export",
|
|
468
478
|
"specifier": "@lapis-notes/api/metadata-value",
|
|
469
|
-
"version": "0.1.
|
|
479
|
+
"version": "0.1.4"
|
|
470
480
|
},
|
|
471
481
|
"@lapis-notes/api/path": {
|
|
472
482
|
"entry": "@lapis-notes/api/path",
|
|
@@ -479,7 +489,7 @@ export const pluginHostModuleRegistry = {
|
|
|
479
489
|
"public": true,
|
|
480
490
|
"source": "package-json-export",
|
|
481
491
|
"specifier": "@lapis-notes/api/path",
|
|
482
|
-
"version": "0.1.
|
|
492
|
+
"version": "0.1.4"
|
|
483
493
|
},
|
|
484
494
|
"@lapis-notes/api/plugin-assets": {
|
|
485
495
|
"entry": "@lapis-notes/api/plugin-assets",
|
|
@@ -492,7 +502,7 @@ export const pluginHostModuleRegistry = {
|
|
|
492
502
|
"public": true,
|
|
493
503
|
"source": "package-json-export",
|
|
494
504
|
"specifier": "@lapis-notes/api/plugin-assets",
|
|
495
|
-
"version": "0.1.
|
|
505
|
+
"version": "0.1.4"
|
|
496
506
|
},
|
|
497
507
|
"@lapis-notes/api/plugin-distribution-host": {
|
|
498
508
|
"entry": "@lapis-notes/api/plugin-distribution-host",
|
|
@@ -505,7 +515,7 @@ export const pluginHostModuleRegistry = {
|
|
|
505
515
|
"public": true,
|
|
506
516
|
"source": "package-json-export",
|
|
507
517
|
"specifier": "@lapis-notes/api/plugin-distribution-host",
|
|
508
|
-
"version": "0.1.
|
|
518
|
+
"version": "0.1.4"
|
|
509
519
|
},
|
|
510
520
|
"@lapis-notes/api/plugin-host-modules": {
|
|
511
521
|
"entry": "@lapis-notes/api/plugin-host-modules",
|
|
@@ -518,7 +528,7 @@ export const pluginHostModuleRegistry = {
|
|
|
518
528
|
"public": true,
|
|
519
529
|
"source": "package-json-export",
|
|
520
530
|
"specifier": "@lapis-notes/api/plugin-host-modules",
|
|
521
|
-
"version": "0.1.
|
|
531
|
+
"version": "0.1.4"
|
|
522
532
|
},
|
|
523
533
|
"@lapis-notes/api/registry/schema": {
|
|
524
534
|
"entry": "@lapis-notes/api/registry/schema",
|
|
@@ -531,7 +541,7 @@ export const pluginHostModuleRegistry = {
|
|
|
531
541
|
"public": true,
|
|
532
542
|
"source": "package-json-export",
|
|
533
543
|
"specifier": "@lapis-notes/api/registry/schema",
|
|
534
|
-
"version": "0.1.
|
|
544
|
+
"version": "0.1.4"
|
|
535
545
|
},
|
|
536
546
|
"@lapis-notes/api/search-embedding-worker": {
|
|
537
547
|
"entry": "@lapis-notes/api/search-embedding-worker",
|
|
@@ -544,7 +554,7 @@ export const pluginHostModuleRegistry = {
|
|
|
544
554
|
"public": true,
|
|
545
555
|
"source": "package-json-export",
|
|
546
556
|
"specifier": "@lapis-notes/api/search-embedding-worker",
|
|
547
|
-
"version": "0.1.
|
|
557
|
+
"version": "0.1.4"
|
|
548
558
|
},
|
|
549
559
|
"@lapis-notes/api/select": {
|
|
550
560
|
"entry": "@lapis-notes/api/select",
|
|
@@ -557,7 +567,7 @@ export const pluginHostModuleRegistry = {
|
|
|
557
567
|
"public": true,
|
|
558
568
|
"source": "package-json-export",
|
|
559
569
|
"specifier": "@lapis-notes/api/select",
|
|
560
|
-
"version": "0.1.
|
|
570
|
+
"version": "0.1.4"
|
|
561
571
|
},
|
|
562
572
|
"@lapis-notes/api/server-host": {
|
|
563
573
|
"entry": "@lapis-notes/api/server-host",
|
|
@@ -570,7 +580,30 @@ export const pluginHostModuleRegistry = {
|
|
|
570
580
|
"public": true,
|
|
571
581
|
"source": "package-json-export",
|
|
572
582
|
"specifier": "@lapis-notes/api/server-host",
|
|
573
|
-
"version": "0.1.
|
|
583
|
+
"version": "0.1.4"
|
|
584
|
+
},
|
|
585
|
+
"@lapis-notes/api/sync-repository": {
|
|
586
|
+
"entry": "@lapis-notes/api/sync-repository",
|
|
587
|
+
"moduleId": "lapis-notes-api-sync-repository",
|
|
588
|
+
"packageName": "@lapis-notes/api",
|
|
589
|
+
"platforms": [
|
|
590
|
+
"web",
|
|
591
|
+
"electron-renderer"
|
|
592
|
+
],
|
|
593
|
+
"public": true,
|
|
594
|
+
"source": "package-json-export",
|
|
595
|
+
"specifier": "@lapis-notes/api/sync-repository",
|
|
596
|
+
"version": "0.1.4"
|
|
597
|
+
},
|
|
598
|
+
"@lapis-notes/api/sync-security-host": {
|
|
599
|
+
"entry": "@lapis-notes/api/sync-security-host",
|
|
600
|
+
"moduleId": "lapis-notes-api-sync-security-host",
|
|
601
|
+
"packageName": "@lapis-notes/api",
|
|
602
|
+
"platforms": [],
|
|
603
|
+
"public": true,
|
|
604
|
+
"source": "package-json-export",
|
|
605
|
+
"specifier": "@lapis-notes/api/sync-security-host",
|
|
606
|
+
"version": "0.1.4"
|
|
574
607
|
},
|
|
575
608
|
"@lapis-notes/api/telemetry": {
|
|
576
609
|
"entry": "@lapis-notes/api/telemetry",
|
|
@@ -583,7 +616,7 @@ export const pluginHostModuleRegistry = {
|
|
|
583
616
|
"public": true,
|
|
584
617
|
"source": "package-json-export",
|
|
585
618
|
"specifier": "@lapis-notes/api/telemetry",
|
|
586
|
-
"version": "0.1.
|
|
619
|
+
"version": "0.1.4"
|
|
587
620
|
},
|
|
588
621
|
"@lapis-notes/api/vault": {
|
|
589
622
|
"entry": "@lapis-notes/api/vault",
|
|
@@ -596,7 +629,7 @@ export const pluginHostModuleRegistry = {
|
|
|
596
629
|
"public": true,
|
|
597
630
|
"source": "package-json-export",
|
|
598
631
|
"specifier": "@lapis-notes/api/vault",
|
|
599
|
-
"version": "0.1.
|
|
632
|
+
"version": "0.1.4"
|
|
600
633
|
},
|
|
601
634
|
"@lapis-notes/api/workspace-host": {
|
|
602
635
|
"entry": "@lapis-notes/api/workspace-host",
|
|
@@ -609,7 +642,7 @@ export const pluginHostModuleRegistry = {
|
|
|
609
642
|
"public": true,
|
|
610
643
|
"source": "package-json-export",
|
|
611
644
|
"specifier": "@lapis-notes/api/workspace-host",
|
|
612
|
-
"version": "0.1.
|
|
645
|
+
"version": "0.1.4"
|
|
613
646
|
},
|
|
614
647
|
"@lapis-notes/markdown": {
|
|
615
648
|
"entry": "@lapis-notes/markdown",
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/** Host persistence only; implementations retain authorization and lifecycle ownership. */
|
|
2
|
+
export interface HostMetadataStore {
|
|
3
|
+
getMeta<T = unknown>(key: string): Promise<T | undefined>;
|
|
4
|
+
setMeta(key: string, value: unknown): Promise<void>;
|
|
5
|
+
transactMeta(transaction: AppDatabaseMetaTransaction): Promise<AppDatabaseMetaTransactionResult>;
|
|
6
|
+
}
|
|
7
|
+
export interface AppDatabaseMetaCheck {
|
|
8
|
+
key: string;
|
|
9
|
+
exists?: boolean;
|
|
10
|
+
value?: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface AppDatabaseMetaMutation {
|
|
13
|
+
key: string;
|
|
14
|
+
value?: unknown;
|
|
15
|
+
delete?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface AppDatabaseMetaTransaction {
|
|
18
|
+
checks?: AppDatabaseMetaCheck[];
|
|
19
|
+
mutations: AppDatabaseMetaMutation[];
|
|
20
|
+
}
|
|
21
|
+
export interface AppDatabaseMetaTransactionResult {
|
|
22
|
+
applied: boolean;
|
|
23
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/plugin-manager.d.ts
CHANGED
|
@@ -43,7 +43,7 @@ export interface PluginManagerOptions {
|
|
|
43
43
|
createCommunityPluginDependencyResolver?: PluginDependencyResolverFactory;
|
|
44
44
|
pluginAssetServer?: PluginAssetServer;
|
|
45
45
|
createSyncHostCapabilities?: (pluginId: string, grants: readonly HostedPluginCapability[]) => SyncHostCapabilities;
|
|
46
|
-
revokeSyncHostCapabilities?: (pluginId: string) => void
|
|
46
|
+
revokeSyncHostCapabilities?: (pluginId: string) => void | Promise<void>;
|
|
47
47
|
}
|
|
48
48
|
export interface PluginDataAliasMigration {
|
|
49
49
|
fromPluginId: string;
|
package/dist/plugin.d.ts
CHANGED
|
@@ -171,7 +171,7 @@ export interface PluginRuntimeOptions {
|
|
|
171
171
|
requestedCapabilities?: HostedPluginCapability[];
|
|
172
172
|
grantedCapabilities?: HostedPluginCapability[];
|
|
173
173
|
createSyncHostCapabilities?: () => SyncHostCapabilities;
|
|
174
|
-
revokeSyncHostCapabilities?: () => void
|
|
174
|
+
revokeSyncHostCapabilities?: () => void | Promise<void>;
|
|
175
175
|
}
|
|
176
176
|
/**
|
|
177
177
|
* Base class for Lapis plugins.
|
package/dist/plugin.js
CHANGED
|
@@ -236,17 +236,29 @@ export class Plugin extends Component {
|
|
|
236
236
|
}
|
|
237
237
|
async disable() {
|
|
238
238
|
if (!this.loaded) {
|
|
239
|
-
|
|
240
|
-
|
|
239
|
+
try {
|
|
240
|
+
await this.#revokeSyncHostCapabilities?.();
|
|
241
|
+
}
|
|
242
|
+
finally {
|
|
243
|
+
this.#syncHostCapabilities = null;
|
|
244
|
+
}
|
|
241
245
|
this.#runtimeState = "disabled";
|
|
242
246
|
this.#failureMessage = null;
|
|
243
247
|
return;
|
|
244
248
|
}
|
|
245
249
|
this.#runtimeState = "disabling";
|
|
246
250
|
try {
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
251
|
+
try {
|
|
252
|
+
await this.unloadAsync();
|
|
253
|
+
}
|
|
254
|
+
finally {
|
|
255
|
+
try {
|
|
256
|
+
await this.#revokeSyncHostCapabilities?.();
|
|
257
|
+
}
|
|
258
|
+
finally {
|
|
259
|
+
this.#syncHostCapabilities = null;
|
|
260
|
+
}
|
|
261
|
+
}
|
|
250
262
|
this.#runtimeState = "disabled";
|
|
251
263
|
this.#failureMessage = null;
|
|
252
264
|
this.emit("disable");
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import type { HostMetadataStore, AppDatabaseMetaTransaction, AppDatabaseMetaTransactionResult } from "../metadata-store";
|
|
2
|
+
export type { HostMetadataStore, AppDatabaseMetaCheck, AppDatabaseMetaMutation, AppDatabaseMetaTransaction, AppDatabaseMetaTransactionResult, } from "../metadata-store";
|
|
1
3
|
import { type SearchEmbeddingRuntimeStatus, type SearchEmbeddingProvider, type SearchEmbeddingProviderConfig } from "./search-embedding-provider";
|
|
2
4
|
import { type SearchQueryEvaluationOptions, type SearchQueryTextRangeOptions } from "./search-query-evaluator";
|
|
3
5
|
import { type IndexProjectionDefinitionRecord, type IndexProjectionEdgeRecord, type IndexQuery, type IndexQueryResult, type IndexRelatedQuery, type IndexProjectionRowRecord, type IndexProjectionSourceRecord, type IndexProjectionValueRecord, type MarkProjectionSourceErrorInput, type ReplaceProjectionSourceInput } from "./index-projection";
|
|
@@ -278,23 +280,6 @@ export interface AppDatabaseMetaScanPage<T = unknown> {
|
|
|
278
280
|
entries: AppDatabaseMetaEntry<T>[];
|
|
279
281
|
nextCursor?: string;
|
|
280
282
|
}
|
|
281
|
-
export interface AppDatabaseMetaCheck {
|
|
282
|
-
key: string;
|
|
283
|
-
exists?: boolean;
|
|
284
|
-
value?: unknown;
|
|
285
|
-
}
|
|
286
|
-
export interface AppDatabaseMetaMutation {
|
|
287
|
-
key: string;
|
|
288
|
-
value?: unknown;
|
|
289
|
-
delete?: boolean;
|
|
290
|
-
}
|
|
291
|
-
export interface AppDatabaseMetaTransaction {
|
|
292
|
-
checks?: AppDatabaseMetaCheck[];
|
|
293
|
-
mutations: AppDatabaseMetaMutation[];
|
|
294
|
-
}
|
|
295
|
-
export interface AppDatabaseMetaTransactionResult {
|
|
296
|
-
applied: boolean;
|
|
297
|
-
}
|
|
298
283
|
export type AppDatabaseChangeListener = (change: AppDatabaseChangeSet) => void;
|
|
299
284
|
export interface SearchDocumentRecord {
|
|
300
285
|
path: string;
|
|
@@ -607,7 +592,7 @@ export interface AppDatabaseMemoryJobUpdateInput {
|
|
|
607
592
|
now: number;
|
|
608
593
|
patch: Pick<AppDatabaseMemoryJobRecord, "status"> & Partial<Pick<AppDatabaseMemoryJobRecord, "cursor" | "leaseUntil" | "finishedAt" | "errorCode">>;
|
|
609
594
|
}
|
|
610
|
-
export interface AppDatabase {
|
|
595
|
+
export interface AppDatabase extends HostMetadataStore {
|
|
611
596
|
readonly kind: AppDatabaseKind;
|
|
612
597
|
readonly vaultId: string;
|
|
613
598
|
readonly descriptor: AppDatabaseDescriptor;
|
|
@@ -620,10 +605,7 @@ export interface AppDatabase {
|
|
|
620
605
|
getSearchEmbeddingProvider(): Promise<SearchEmbeddingProviderConfig | null>;
|
|
621
606
|
getSearchEmbeddingRuntimeStatus(): Promise<SearchEmbeddingRuntimeStatus | null>;
|
|
622
607
|
getSearchIndexStats(): Promise<AppDatabaseSearchIndexStats>;
|
|
623
|
-
getMeta<T = unknown>(key: string): Promise<T | undefined>;
|
|
624
|
-
setMeta(key: string, value: unknown): Promise<void>;
|
|
625
608
|
scanMeta<T = unknown>(query: AppDatabaseMetaScanQuery): Promise<AppDatabaseMetaScanPage<T>>;
|
|
626
|
-
transactMeta(transaction: AppDatabaseMetaTransaction): Promise<AppDatabaseMetaTransactionResult>;
|
|
627
609
|
getNotebookState(sourcePath: string): Promise<AppDatabaseNotebookState | undefined>;
|
|
628
610
|
setNotebookState(sourcePath: string, state: AppDatabaseNotebookState): Promise<void>;
|
|
629
611
|
deleteNotebookState(sourcePath: string): Promise<void>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Workspace } from "./workspace.svelte";
|
|
2
|
+
/** Capture every workspace-owned editor, including inactive, docked and floating panes. */
|
|
3
|
+
export declare function flushWorkspaceEditors(workspace: Pick<Workspace, "iterateAllLeaves">, path?: string): Promise<{
|
|
4
|
+
flushed: boolean;
|
|
5
|
+
path?: string;
|
|
6
|
+
}>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** Capture every workspace-owned editor, including inactive, docked and floating panes. */
|
|
2
|
+
export async function flushWorkspaceEditors(workspace, path) {
|
|
3
|
+
const editors = new Map();
|
|
4
|
+
workspace.iterateAllLeaves((leaf) => {
|
|
5
|
+
const view = leaf.view;
|
|
6
|
+
if (view.editor && view.file && (!path || view.file.path === path))
|
|
7
|
+
editors.set(view.editor, view.file.path);
|
|
8
|
+
});
|
|
9
|
+
const results = await Promise.allSettled([...editors].map(async ([editor, capturedPath]) => {
|
|
10
|
+
await editor.flushChanges();
|
|
11
|
+
if (editor.file?.path !== capturedPath)
|
|
12
|
+
throw new Error("Editor document changed while flushing for Sync");
|
|
13
|
+
}));
|
|
14
|
+
for (const result of results)
|
|
15
|
+
if (result.status === "rejected")
|
|
16
|
+
throw result.reason;
|
|
17
|
+
const only = editors.size === 1 ? editors.values().next().value : undefined;
|
|
18
|
+
return {
|
|
19
|
+
flushed: editors.size > 0,
|
|
20
|
+
...((path ?? only) ? { path: path ?? only } : {}),
|
|
21
|
+
};
|
|
22
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { HostedPluginCapability } from "./plugin-capability-facade";
|
|
2
|
+
import type { SyncHostLocalProvider, SyncLocalApplyGuard, SyncLocalHostCapabilities } from "./sync-repository";
|
|
3
|
+
/** Grant-checked lifetime boundary; providers retain all platform-specific authority. */
|
|
4
|
+
export declare class ScopedSyncLocalRuntime {
|
|
5
|
+
#private;
|
|
6
|
+
private readonly options;
|
|
7
|
+
constructor(options: {
|
|
8
|
+
runtimeId: string;
|
|
9
|
+
selectProvider(): SyncHostLocalProvider | undefined;
|
|
10
|
+
assertGranted(capability: HostedPluginCapability): void;
|
|
11
|
+
guardApply?: SyncLocalApplyGuard;
|
|
12
|
+
});
|
|
13
|
+
readonly capabilities: SyncLocalHostCapabilities;
|
|
14
|
+
revoke(): Promise<void>;
|
|
15
|
+
}
|