@symbiosis-lab/moss-api 0.7.8 → 0.7.10

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/dist/index.d.mts CHANGED
@@ -395,6 +395,12 @@ declare function openSystemBrowser(url: string): Promise<void>;
395
395
  /**
396
396
  * Open the plugin browser with dynamic HTML content
397
397
  *
398
+ * Automatically injects a bridge script that exposes `window.mossApi` with:
399
+ * - `submit(data)` - emits `moss:browser-form-submit` event
400
+ * - `cancel()` - emits `moss:browser-form-cancel` event
401
+ * - `close()` - closes the browser panel
402
+ * - `emit(name, payload)` - escape hatch for custom events
403
+ *
398
404
  * Uses a custom protocol (moss-plugin://) to serve HTML content
399
405
  * without requiring the `webview-data-url` Cargo feature.
400
406
  *
@@ -404,14 +410,72 @@ declare function openSystemBrowser(url: string): Promise<void>;
404
410
  * await openBrowserWithHtml(`
405
411
  * <!DOCTYPE html>
406
412
  * <html>
413
+ * <head><title>My Form</title></head>
407
414
  * <body>
408
- * <h1>Hello from plugin!</h1>
415
+ * <form onsubmit="event.preventDefault(); window.mossApi.submit({ name: 'Alice' })">
416
+ * <input name="name" />
417
+ * <button type="submit">Submit</button>
418
+ * <button type="button" onclick="window.mossApi.cancel()">Cancel</button>
419
+ * </form>
409
420
  * </body>
410
421
  * </html>
411
422
  * `);
412
423
  * ```
413
424
  */
414
425
  declare function openBrowserWithHtml(html: string): Promise<void>;
426
+ /**
427
+ * Show an HTML form in the browser panel and wait for the user to submit or cancel.
428
+ *
429
+ * The HTML should use `window.mossApi.submit(data)` to submit form data
430
+ * and `window.mossApi.cancel()` to cancel. The bridge script is automatically
431
+ * injected by `openBrowserWithHtml`.
432
+ *
433
+ * Returns the submitted data, or `null` if the user cancelled or the timeout expired.
434
+ * The browser is automatically closed in all cases.
435
+ *
436
+ * @param html - Raw HTML content with a form
437
+ * @param options - Optional configuration
438
+ * @param options.timeoutMs - Maximum time to wait (default: 300000ms / 5 minutes)
439
+ * @returns The submitted form data, or null on cancel/timeout
440
+ *
441
+ * @example
442
+ * ```typescript
443
+ * interface LoginData { username: string; password: string }
444
+ *
445
+ * const result = await showBrowserForm<LoginData>(`
446
+ * <!DOCTYPE html>
447
+ * <html>
448
+ * <head><title>Login</title></head>
449
+ * <body>
450
+ * <form id="login">
451
+ * <input id="user" placeholder="Username" />
452
+ * <input id="pass" type="password" placeholder="Password" />
453
+ * <button type="submit">Login</button>
454
+ * <button type="button" onclick="window.mossApi.cancel()">Cancel</button>
455
+ * </form>
456
+ * <script>
457
+ * document.getElementById('login').addEventListener('submit', (e) => {
458
+ * e.preventDefault();
459
+ * window.mossApi.submit({
460
+ * username: document.getElementById('user').value,
461
+ * password: document.getElementById('pass').value,
462
+ * });
463
+ * });
464
+ * </script>
465
+ * </body>
466
+ * </html>
467
+ * `);
468
+ *
469
+ * if (result) {
470
+ * console.log("User submitted:", result.username);
471
+ * } else {
472
+ * console.log("User cancelled or timed out");
473
+ * }
474
+ * ```
475
+ */
476
+ declare function showBrowserForm<T>(html: string, options?: {
477
+ timeoutMs?: number;
478
+ }): Promise<T | null>;
415
479
  //#endregion
416
480
  //#region src/utils/filesystem.d.ts
417
481
  /**
@@ -705,6 +769,39 @@ interface PostOptions {
705
769
  * ```
706
770
  */
707
771
  declare function httpPost(url: string, body: Record<string, unknown>, options?: PostOptions): Promise<FetchResult>;
772
+ /**
773
+ * Options for HTTP GET requests
774
+ */
775
+ interface GetOptions {
776
+ /** Timeout in milliseconds (default: 30000) */
777
+ timeoutMs?: number;
778
+ /** Additional headers */
779
+ headers?: Record<string, string>;
780
+ }
781
+ /**
782
+ * Perform an HTTP GET request
783
+ *
784
+ * Uses Rust's HTTP client to bypass browser CORS restrictions.
785
+ * This is useful for API interactions that require custom headers.
786
+ *
787
+ * @param url - URL to GET
788
+ * @param options - Optional configuration including timeout and headers
789
+ * @returns Fetch result with status, body, and helpers
790
+ * @throws Error if network request fails
791
+ *
792
+ * @example
793
+ * ```typescript
794
+ * // Buttondown API newsletter info request
795
+ * const result = await httpGet(
796
+ * "https://api.buttondown.com/v1/newsletters",
797
+ * { headers: { Authorization: "Token xxx" } }
798
+ * );
799
+ * if (result.ok) {
800
+ * const data = JSON.parse(result.text());
801
+ * }
802
+ * ```
803
+ */
804
+ declare function httpGet(url: string, options?: GetOptions): Promise<FetchResult>;
708
805
  /**
709
806
  * Download a URL and save directly to disk
710
807
  *
@@ -1112,94 +1209,6 @@ declare function getPluginCookie(): Promise<Cookie[] | null>;
1112
1209
  */
1113
1210
  declare function setPluginCookie(cookies: Cookie[]): Promise<void>;
1114
1211
  //#endregion
1115
- //#region src/utils/window.d.ts
1116
- /**
1117
- * Window utilities for plugins
1118
- * Enables plugins to show custom dialogs and UI elements
1119
- */
1120
- /**
1121
- * Result from a dialog interaction
1122
- */
1123
- interface DialogResult {
1124
- type: "submitted" | "cancelled";
1125
- value?: unknown;
1126
- }
1127
- /**
1128
- * Options for showing a plugin dialog
1129
- */
1130
- interface ShowDialogOptions {
1131
- /** URL to load in the dialog (can be data: URL with embedded HTML) */
1132
- url: string;
1133
- /** Dialog window title */
1134
- title: string;
1135
- /** Dialog width in pixels */
1136
- width?: number;
1137
- /** Dialog height in pixels */
1138
- height?: number;
1139
- /** Maximum time to wait for user response in milliseconds */
1140
- timeoutMs?: number;
1141
- }
1142
- /**
1143
- * Show a plugin dialog and wait for user response
1144
- *
1145
- * The dialog can be an embedded HTML page (via data: URL) that communicates
1146
- * back to the plugin via the submitDialogResult function.
1147
- *
1148
- * @param options - Dialog configuration
1149
- * @returns Dialog result with submitted value or cancellation
1150
- *
1151
- * @example
1152
- * ```typescript
1153
- * const result = await showPluginDialog({
1154
- * url: createMyDialogUrl(),
1155
- * title: "Create Repository",
1156
- * width: 400,
1157
- * height: 300,
1158
- * });
1159
- *
1160
- * if (result.type === "submitted") {
1161
- * console.log("User submitted:", result.value);
1162
- * } else {
1163
- * console.log("User cancelled");
1164
- * }
1165
- * ```
1166
- */
1167
- declare function showPluginDialog(options: ShowDialogOptions): Promise<DialogResult>;
1168
- /**
1169
- * Submit a result from within a plugin dialog
1170
- *
1171
- * This is called from inside the dialog HTML to send data back to the plugin.
1172
- * The dialog will be closed automatically after submission.
1173
- *
1174
- * @param dialogId - The dialog ID (provided in the dialog's query string)
1175
- * @param value - The value to submit
1176
- * @returns Whether the submission was successful
1177
- *
1178
- * @example
1179
- * ```typescript
1180
- * // Inside dialog HTML:
1181
- * const dialogId = new URLSearchParams(location.search).get('dialogId');
1182
- * await submitDialogResult(dialogId, { repoName: 'my-repo' });
1183
- * ```
1184
- */
1185
- declare function submitDialogResult(dialogId: string, value: unknown): Promise<boolean>;
1186
- /**
1187
- * Cancel a plugin dialog
1188
- *
1189
- * This is called from inside the dialog HTML to cancel without submitting.
1190
- * The dialog will be closed automatically.
1191
- *
1192
- * @param dialogId - The dialog ID (provided in the dialog's query string)
1193
- *
1194
- * @example
1195
- * ```typescript
1196
- * // Inside dialog HTML:
1197
- * const dialogId = new URLSearchParams(location.search).get('dialogId');
1198
- * await cancelDialog(dialogId);
1199
- * ```
1200
- */
1201
- declare function cancelDialog(dialogId: string): Promise<boolean>;
1202
- //#endregion
1203
1212
  //#region src/utils/events.d.ts
1204
1213
  /**
1205
1214
  * Event utilities for plugin communication
@@ -1420,5 +1429,5 @@ declare function updateToast(id: string, options: Partial<Omit<ToastOptions, "id
1420
1429
  */
1421
1430
  declare function dismissToast(id: string): Promise<void>;
1422
1431
  //#endregion
1423
- export { AfterDeployContext, ArchType, ArchiveFormat, ArticleInfo, BaseContext, BeforeBuildContext, BinaryConfig, BinaryResolution, BinaryResolutionError, BinarySource, BrowserCloseReason, BrowserHandle, CompleteMessage, Cookie, DeploymentInfo, DialogResult, DnsRecord, DnsTarget, DownloadOptions, DownloadResult, ErrorMessage, ExecuteOptions, ExecuteResult, ExtractOptions, ExtractResult, FetchOptions, FetchResult, GitHubSource, HookResult, LogMessage, OSType, OnBuildContext, OnDeployContext, PageNode, PlatformInfo, PlatformKey, PluginCategory, PluginManifest, PluginMessage, PostOptions, ProgressMessage, ProjectInfo, ResolveBinaryOptions, ShowDialogOptions, SourceFiles, TOAST_DISMISS_EVENT, TOAST_EVENT, TOAST_UPDATE_EVENT, TauriCore, ToastAction, ToastOptions, ToastType, ToastVariant, cancelDialog, clearPlatformCache, closeBrowser, createSymlink, dismissToast, downloadAsset, emitEvent, error, executeBinary, extractArchive, fetchUrl, fileExists, getMessageContext, getPlatformInfo, getPluginCookie, getTauriCore, httpPost, isEventApiAvailable, isTauriAvailable, listFiles, listPluginFiles, log, makeExecutable, onEvent, openBrowser, openBrowserWithHtml, openSystemBrowser, pluginFileExists, readFile, readPluginFile, reportComplete, reportError, reportProgress, resolveBinary, sendMessage, setMessageContext, setPluginCookie, showPluginDialog, showToast, submitDialogResult, updateToast, waitForEvent, warn, writeFile, writePluginFile };
1432
+ export { AfterDeployContext, ArchType, ArchiveFormat, ArticleInfo, BaseContext, BeforeBuildContext, BinaryConfig, BinaryResolution, BinaryResolutionError, BinarySource, BrowserCloseReason, BrowserHandle, CompleteMessage, Cookie, DeploymentInfo, DnsRecord, DnsTarget, DownloadOptions, DownloadResult, ErrorMessage, ExecuteOptions, ExecuteResult, ExtractOptions, ExtractResult, FetchOptions, FetchResult, GetOptions, GitHubSource, HookResult, LogMessage, OSType, OnBuildContext, OnDeployContext, PageNode, PlatformInfo, PlatformKey, PluginCategory, PluginManifest, PluginMessage, PostOptions, ProgressMessage, ProjectInfo, ResolveBinaryOptions, SourceFiles, TOAST_DISMISS_EVENT, TOAST_EVENT, TOAST_UPDATE_EVENT, TauriCore, ToastAction, ToastOptions, ToastType, ToastVariant, clearPlatformCache, closeBrowser, createSymlink, dismissToast, downloadAsset, emitEvent, error, executeBinary, extractArchive, fetchUrl, fileExists, getMessageContext, getPlatformInfo, getPluginCookie, getTauriCore, httpGet, httpPost, isEventApiAvailable, isTauriAvailable, listFiles, listPluginFiles, log, makeExecutable, onEvent, openBrowser, openBrowserWithHtml, openSystemBrowser, pluginFileExists, readFile, readPluginFile, reportComplete, reportError, reportProgress, resolveBinary, sendMessage, setMessageContext, setPluginCookie, showBrowserForm, showToast, updateToast, waitForEvent, warn, writeFile, writePluginFile };
1424
1433
  //# sourceMappingURL=index.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/context.ts","../src/types/hooks.ts","../src/types/messages.ts","../src/utils/tauri.ts","../src/utils/messaging.ts","../src/utils/logger.ts","../src/utils/browser.ts","../src/utils/filesystem.ts","../src/utils/plugin-storage.ts","../src/utils/http.ts","../src/utils/binary.ts","../src/utils/platform.ts","../src/utils/archive.ts","../src/utils/binary-resolver.ts","../src/utils/cookies.ts","../src/utils/window.ts","../src/utils/events.ts","../src/utils/toast.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/types/plugin.ts","../src/types/context.ts","../src/types/hooks.ts","../src/types/messages.ts","../src/utils/tauri.ts","../src/utils/messaging.ts","../src/utils/logger.ts","../src/utils/browser.ts","../src/utils/filesystem.ts","../src/utils/plugin-storage.ts","../src/utils/http.ts","../src/utils/binary.ts","../src/utils/platform.ts","../src/utils/archive.ts","../src/utils/binary-resolver.ts","../src/utils/cookies.ts","../src/utils/events.ts","../src/utils/toast.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -28,7 +28,7 @@ function isTauriAvailable() {
28
28
  * Get Tauri event API
29
29
  * @internal
30
30
  */
31
- function getTauriEvent() {
31
+ function getTauriEvent$1() {
32
32
  const w = window;
33
33
  if (!w.__TAURI__?.event) throw new Error("Tauri event API not available");
34
34
  return w.__TAURI__.event;
@@ -55,7 +55,7 @@ function isEventApiAvailable() {
55
55
  * ```
56
56
  */
57
57
  async function emitEvent(event, payload) {
58
- await getTauriEvent().emit(event, payload);
58
+ await getTauriEvent$1().emit(event, payload);
59
59
  }
60
60
  /**
61
61
  * Listen for events from other parts of the application
@@ -78,7 +78,7 @@ async function emitEvent(event, payload) {
78
78
  * ```
79
79
  */
80
80
  async function onEvent(event, handler) {
81
- return await getTauriEvent().listen(event, (e) => {
81
+ return await getTauriEvent$1().listen(event, (e) => {
82
82
  handler(e.payload);
83
83
  });
84
84
  }
@@ -277,13 +277,39 @@ async function error(message) {
277
277
  * Abstracts Tauri browser commands to decouple plugins from internal APIs
278
278
  */
279
279
  /**
280
- * Get Tauri event API for listening to events
280
+ * Get Tauri event API for listening to and emitting events
281
281
  * @internal
282
282
  */
283
- function getTauriEventListen() {
283
+ function getTauriEvent() {
284
284
  const w = window;
285
285
  if (!w.__TAURI__?.event?.listen) throw new Error("Tauri event API not available");
286
- return w.__TAURI__.event.listen;
286
+ return w.__TAURI__.event;
287
+ }
288
+ /**
289
+ * Bridge script that exposes `window.mossApi` in browser panel HTML.
290
+ * This decouples plugin HTML from Tauri internals.
291
+ * @internal
292
+ */
293
+ const BROWSER_BRIDGE_SCRIPT = `<script>
294
+ (function() {
295
+ const { event, core } = window.__TAURI__;
296
+ window.mossApi = {
297
+ submit: (data) => event.emit('moss:browser-form-submit', data),
298
+ cancel: () => event.emit('moss:browser-form-cancel', {}),
299
+ close: () => core.invoke('close_plugin_browser'),
300
+ emit: (name, payload) => event.emit(name, payload),
301
+ };
302
+ })();
303
+ <\/script>`;
304
+ /**
305
+ * Inject the bridge script into HTML content.
306
+ * If HTML contains </head>, inject before it. Otherwise, prepend.
307
+ * @internal
308
+ */
309
+ function injectBridgeScript(html) {
310
+ const headCloseIdx = html.indexOf("</head>");
311
+ if (headCloseIdx !== -1) return html.slice(0, headCloseIdx) + BROWSER_BRIDGE_SCRIPT + html.slice(headCloseIdx);
312
+ return BROWSER_BRIDGE_SCRIPT + html;
287
313
  }
288
314
  /**
289
315
  * Open a URL in the plugin browser window
@@ -311,7 +337,8 @@ function getTauriEventListen() {
311
337
  async function openBrowser(url) {
312
338
  await getTauriCore().invoke("open_plugin_browser", { url });
313
339
  const closed = new Promise((resolve) => {
314
- getTauriEventListen()("browser-closed", (event) => {
340
+ const { listen } = getTauriEvent();
341
+ listen("browser-closed", (event) => {
315
342
  const payload = event.payload;
316
343
  resolve(payload.reason);
317
344
  }).then((unlisten) => {
@@ -345,6 +372,12 @@ async function openSystemBrowser(url) {
345
372
  /**
346
373
  * Open the plugin browser with dynamic HTML content
347
374
  *
375
+ * Automatically injects a bridge script that exposes `window.mossApi` with:
376
+ * - `submit(data)` - emits `moss:browser-form-submit` event
377
+ * - `cancel()` - emits `moss:browser-form-cancel` event
378
+ * - `close()` - closes the browser panel
379
+ * - `emit(name, payload)` - escape hatch for custom events
380
+ *
348
381
  * Uses a custom protocol (moss-plugin://) to serve HTML content
349
382
  * without requiring the `webview-data-url` Cargo feature.
350
383
  *
@@ -354,15 +387,94 @@ async function openSystemBrowser(url) {
354
387
  * await openBrowserWithHtml(`
355
388
  * <!DOCTYPE html>
356
389
  * <html>
390
+ * <head><title>My Form</title></head>
357
391
  * <body>
358
- * <h1>Hello from plugin!</h1>
392
+ * <form onsubmit="event.preventDefault(); window.mossApi.submit({ name: 'Alice' })">
393
+ * <input name="name" />
394
+ * <button type="submit">Submit</button>
395
+ * <button type="button" onclick="window.mossApi.cancel()">Cancel</button>
396
+ * </form>
359
397
  * </body>
360
398
  * </html>
361
399
  * `);
362
400
  * ```
363
401
  */
364
402
  async function openBrowserWithHtml(html) {
365
- await getTauriCore().invoke("set_plugin_browser_html", { html });
403
+ const injectedHtml = injectBridgeScript(html);
404
+ await getTauriCore().invoke("set_plugin_browser_html", { html: injectedHtml });
405
+ }
406
+ /**
407
+ * Show an HTML form in the browser panel and wait for the user to submit or cancel.
408
+ *
409
+ * The HTML should use `window.mossApi.submit(data)` to submit form data
410
+ * and `window.mossApi.cancel()` to cancel. The bridge script is automatically
411
+ * injected by `openBrowserWithHtml`.
412
+ *
413
+ * Returns the submitted data, or `null` if the user cancelled or the timeout expired.
414
+ * The browser is automatically closed in all cases.
415
+ *
416
+ * @param html - Raw HTML content with a form
417
+ * @param options - Optional configuration
418
+ * @param options.timeoutMs - Maximum time to wait (default: 300000ms / 5 minutes)
419
+ * @returns The submitted form data, or null on cancel/timeout
420
+ *
421
+ * @example
422
+ * ```typescript
423
+ * interface LoginData { username: string; password: string }
424
+ *
425
+ * const result = await showBrowserForm<LoginData>(`
426
+ * <!DOCTYPE html>
427
+ * <html>
428
+ * <head><title>Login</title></head>
429
+ * <body>
430
+ * <form id="login">
431
+ * <input id="user" placeholder="Username" />
432
+ * <input id="pass" type="password" placeholder="Password" />
433
+ * <button type="submit">Login</button>
434
+ * <button type="button" onclick="window.mossApi.cancel()">Cancel</button>
435
+ * </form>
436
+ * <script>
437
+ * document.getElementById('login').addEventListener('submit', (e) => {
438
+ * e.preventDefault();
439
+ * window.mossApi.submit({
440
+ * username: document.getElementById('user').value,
441
+ * password: document.getElementById('pass').value,
442
+ * });
443
+ * });
444
+ * <\/script>
445
+ * </body>
446
+ * </html>
447
+ * `);
448
+ *
449
+ * if (result) {
450
+ * console.log("User submitted:", result.username);
451
+ * } else {
452
+ * console.log("User cancelled or timed out");
453
+ * }
454
+ * ```
455
+ */
456
+ async function showBrowserForm(html, options) {
457
+ const timeoutMs = options?.timeoutMs ?? 3e5;
458
+ await openBrowserWithHtml(html);
459
+ const tauriEvent = getTauriEvent();
460
+ let settled = false;
461
+ let resolveResult;
462
+ const resultPromise = new Promise((r) => {
463
+ resolveResult = r;
464
+ });
465
+ const timer = setTimeout(() => settle(null), timeoutMs);
466
+ const unlistenSubmit = await tauriEvent.listen("moss:browser-form-submit", (e) => settle(e.payload));
467
+ const unlistenCancel = await tauriEvent.listen("moss:browser-form-cancel", () => settle(null));
468
+ function settle(value) {
469
+ if (settled) return;
470
+ settled = true;
471
+ clearTimeout(timer);
472
+ unlistenSubmit();
473
+ unlistenCancel();
474
+ closeBrowser();
475
+ resolveResult(value);
476
+ }
477
+ return resultPromise;
366
478
  }
367
479
 
368
480
  //#endregion
@@ -732,6 +844,48 @@ async function httpPost(url, body, options = {}) {
732
844
  };
733
845
  }
734
846
  /**
847
+ * Perform an HTTP GET request
848
+ *
849
+ * Uses Rust's HTTP client to bypass browser CORS restrictions.
850
+ * This is useful for API interactions that require custom headers.
851
+ *
852
+ * @param url - URL to GET
853
+ * @param options - Optional configuration including timeout and headers
854
+ * @returns Fetch result with status, body, and helpers
855
+ * @throws Error if network request fails
856
+ *
857
+ * @example
858
+ * ```typescript
859
+ * // Buttondown API newsletter info request
860
+ * const result = await httpGet(
861
+ * "https://api.buttondown.com/v1/newsletters",
862
+ * { headers: { Authorization: "Token xxx" } }
863
+ * );
864
+ * if (result.ok) {
865
+ * const data = JSON.parse(result.text());
866
+ * }
867
+ * ```
868
+ */
869
+ async function httpGet(url, options = {}) {
870
+ const { timeoutMs = 3e4, headers = {} } = options;
871
+ const result = await getTauriCore().invoke("http_get", {
872
+ url,
873
+ headers,
874
+ timeoutMs
875
+ });
876
+ const binaryString = atob(result.body_base64);
877
+ const bytes = Uint8Array.from(binaryString, (char) => char.charCodeAt(0));
878
+ return {
879
+ status: result.status,
880
+ ok: result.ok,
881
+ contentType: result.content_type,
882
+ body: bytes,
883
+ text() {
884
+ return new TextDecoder().decode(bytes);
885
+ }
886
+ };
887
+ }
888
+ /**
735
889
  * Download a URL and save directly to disk
736
890
  *
737
891
  * Downloads the file and writes it directly to disk without passing
@@ -1481,94 +1635,6 @@ async function setPluginCookie(cookies) {
1481
1635
  });
1482
1636
  }
1483
1637
 
1484
- //#endregion
1485
- //#region src/utils/window.ts
1486
- /**
1487
- * Window utilities for plugins
1488
- * Enables plugins to show custom dialogs and UI elements
1489
- */
1490
- /**
1491
- * Show a plugin dialog and wait for user response
1492
- *
1493
- * The dialog can be an embedded HTML page (via data: URL) that communicates
1494
- * back to the plugin via the submitDialogResult function.
1495
- *
1496
- * @param options - Dialog configuration
1497
- * @returns Dialog result with submitted value or cancellation
1498
- *
1499
- * @example
1500
- * ```typescript
1501
- * const result = await showPluginDialog({
1502
- * url: createMyDialogUrl(),
1503
- * title: "Create Repository",
1504
- * width: 400,
1505
- * height: 300,
1506
- * });
1507
- *
1508
- * if (result.type === "submitted") {
1509
- * console.log("User submitted:", result.value);
1510
- * } else {
1511
- * console.log("User cancelled");
1512
- * }
1513
- * ```
1514
- */
1515
- async function showPluginDialog(options) {
1516
- return await getTauriCore().invoke("show_plugin_dialog", {
1517
- url: options.url,
1518
- title: options.title,
1519
- width: options.width ?? 500,
1520
- height: options.height ?? 400,
1521
- timeoutMs: options.timeoutMs ?? 3e5
1522
- });
1523
- }
1524
- /**
1525
- * Submit a result from within a plugin dialog
1526
- *
1527
- * This is called from inside the dialog HTML to send data back to the plugin.
1528
- * The dialog will be closed automatically after submission.
1529
- *
1530
- * @param dialogId - The dialog ID (provided in the dialog's query string)
1531
- * @param value - The value to submit
1532
- * @returns Whether the submission was successful
1533
- *
1534
- * @example
1535
- * ```typescript
1536
- * // Inside dialog HTML:
1537
- * const dialogId = new URLSearchParams(location.search).get('dialogId');
1538
- * await submitDialogResult(dialogId, { repoName: 'my-repo' });
1539
- * ```
1540
- */
1541
- async function submitDialogResult(dialogId, value) {
1542
- return getTauriCore().invoke("submit_dialog_result", {
1543
- dialogId,
1544
- result: {
1545
- type: "submitted",
1546
- value
1547
- }
1548
- });
1549
- }
1550
- /**
1551
- * Cancel a plugin dialog
1552
- *
1553
- * This is called from inside the dialog HTML to cancel without submitting.
1554
- * The dialog will be closed automatically.
1555
- *
1556
- * @param dialogId - The dialog ID (provided in the dialog's query string)
1557
- *
1558
- * @example
1559
- * ```typescript
1560
- * // Inside dialog HTML:
1561
- * const dialogId = new URLSearchParams(location.search).get('dialogId');
1562
- * await cancelDialog(dialogId);
1563
- * ```
1564
- */
1565
- async function cancelDialog(dialogId) {
1566
- return getTauriCore().invoke("submit_dialog_result", {
1567
- dialogId,
1568
- result: { type: "cancelled" }
1569
- });
1570
- }
1571
-
1572
1638
  //#endregion
1573
1639
  //#region src/utils/toast.ts
1574
1640
  /**
@@ -1671,5 +1737,5 @@ async function dismissToast(id) {
1671
1737
  }
1672
1738
 
1673
1739
  //#endregion
1674
- export { BinaryResolutionError, TOAST_DISMISS_EVENT, TOAST_EVENT, TOAST_UPDATE_EVENT, cancelDialog, clearPlatformCache, closeBrowser, createSymlink, dismissToast, downloadAsset, emitEvent, error, executeBinary, extractArchive, fetchUrl, fileExists, getMessageContext, getPlatformInfo, getPluginCookie, getTauriCore, httpPost, isEventApiAvailable, isTauriAvailable, listFiles, listPluginFiles, log, makeExecutable, onEvent, openBrowser, openBrowserWithHtml, openSystemBrowser, pluginFileExists, readFile, readPluginFile, reportComplete, reportError, reportProgress, resolveBinary, sendMessage, setMessageContext, setPluginCookie, showPluginDialog, showToast, submitDialogResult, updateToast, waitForEvent, warn, writeFile, writePluginFile };
1740
+ export { BinaryResolutionError, TOAST_DISMISS_EVENT, TOAST_EVENT, TOAST_UPDATE_EVENT, clearPlatformCache, closeBrowser, createSymlink, dismissToast, downloadAsset, emitEvent, error, executeBinary, extractArchive, fetchUrl, fileExists, getMessageContext, getPlatformInfo, getPluginCookie, getTauriCore, httpGet, httpPost, isEventApiAvailable, isTauriAvailable, listFiles, listPluginFiles, log, makeExecutable, onEvent, openBrowser, openBrowserWithHtml, openSystemBrowser, pluginFileExists, readFile, readPluginFile, reportComplete, reportError, reportProgress, resolveBinary, sendMessage, setMessageContext, setPluginCookie, showBrowserForm, showToast, updateToast, waitForEvent, warn, writeFile, writePluginFile };
1675
1741
  //# sourceMappingURL=index.mjs.map