1
0
silverbullet/plug-api/app_event.ts
Ian Shehadeh 7d3303251d
WIP: Plug API document change event (#488)
* add support for basic on doc change event

* move change API core into plug-api/lib; add docs

* add overlap utility

* Maintain modal focus

* Federated URL backend handling

* Fix small typo in Query.md (#483)

* Federation progress

* Cleanup and federation prep

* Robustness and federation sync

* Federation: rewrite page references in federated content

* Don't sync service worker and index.json to client on silverbullet.md

* Federation listing timeouts

* Switching onboarding over to federation links

* Reduce amount of sync related log messages a bit

* Attribute indexing and code completion

* Shift-Enter in the page navigator now takes the input literally

* Updated changelog

* Completion for handlebar template variables

* Make 'pos' a number in tasks

* Updated install instructions to include edge builds

* WIP: CLI running of plugs

* Upgrade deno in Docker to 1.36.0

* Implement CLI store using Deno store

* Rerun directives

* Fixes #485

* 0.3.8

* 0.3.9

* Changelog

* Instantly sync updated pages when ticking off a task in a directive

* Sync current open page every 5s

* Optimize requests

* Make attribute extensible

* Debugging sync getting stuck

* Misaligning sync cycles (to avoid no-op cycles)

* Fixes #500: New apply page template command

* Changelog

* More sync debugging statements

* More sync debugging

* Even more debug

* Dial down excessive debug logging

* Fixes #115: By introducing MQ workers

* Use MQ for updating directives in entire space

* Work on plug:run

* touch up docs

* Fix htmlLanguage dependency

---------

Co-authored-by: Zef Hemel <zef@zef.me>
Co-authored-by: johnl <johnlunney@users.noreply.github.com>
2023-08-16 15:15:19 +02:00

67 lines
1.2 KiB
TypeScript

import type { ParseTree } from "$sb/lib/tree.ts";
import { ParsedQuery } from "$sb/lib/query.ts";
import { TextChange } from "$sb/lib/change.ts";
export type AppEvent =
| "page:click"
| "editor:complete"
| "minieditor:complete"
| "page:load"
| "editor:init"
| "editor:pageLoaded" // args: pageName, previousPage, isSynced
| "editor:pageReloaded"
| "editor:pageSaved"
| "editor:modeswitch"
| "plugs:loaded"
| "editor:pageModified";
export type QueryProviderEvent = {
query: ParsedQuery;
pageName: string;
};
export type ClickEvent = {
page: string;
pos: number;
metaKey: boolean;
ctrlKey: boolean;
altKey: boolean;
};
export type IndexEvent = {
name: string;
text: string;
};
export type IndexTreeEvent = {
name: string;
tree: ParseTree;
};
export type PublishEvent = {
uri: string;
// Page name
name: string;
};
export type CompleteEvent = {
pageName: string;
linePrefix: string;
pos: number;
parentNodes: string[];
};
export type WidgetContent = {
html?: string;
script?: string;
url?: string;
height?: number;
width?: number;
};
/** PageModifiedEvent payload for "editor:pageModified". Fired when the document text changes
*/
export type PageModifiedEvent = {
changes: TextChange[];
};