asyar-sdk 4.1.0 → 4.3.0

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.
Files changed (121) hide show
  1. package/README.md +1 -1
  2. package/dist/ExtensionContext.d.ts.map +1 -1
  3. package/dist/ExtensionContext.js +5 -8
  4. package/dist/ExtensionContext.js.map +1 -1
  5. package/dist/cli/commands/build.d.ts +3 -0
  6. package/dist/cli/commands/build.d.ts.map +1 -1
  7. package/dist/cli/commands/build.js +6 -2
  8. package/dist/cli/commands/build.js.map +1 -1
  9. package/dist/cli/commands/dev.d.ts.map +1 -1
  10. package/dist/cli/commands/dev.js +3 -2
  11. package/dist/cli/commands/dev.js.map +1 -1
  12. package/dist/cli/commands/link.d.ts.map +1 -1
  13. package/dist/cli/commands/link.js +4 -3
  14. package/dist/cli/commands/link.js.map +1 -1
  15. package/dist/cli/commands/publish.js +1 -1
  16. package/dist/cli/commands/publish.js.map +1 -1
  17. package/dist/cli/lib/auth.d.ts +1 -0
  18. package/dist/cli/lib/auth.d.ts.map +1 -1
  19. package/dist/cli/lib/auth.js +50 -9
  20. package/dist/cli/lib/auth.js.map +1 -1
  21. package/dist/cli/lib/manifest.d.ts +10 -1
  22. package/dist/cli/lib/manifest.d.ts.map +1 -1
  23. package/dist/cli/lib/manifest.js +16 -3
  24. package/dist/cli/lib/manifest.js.map +1 -1
  25. package/dist/cli/lib/platform.d.ts +3 -3
  26. package/dist/cli/lib/platform.d.ts.map +1 -1
  27. package/dist/cli/lib/platform.js +9 -8
  28. package/dist/cli/lib/platform.js.map +1 -1
  29. package/dist/contracts.d.ts +1 -2
  30. package/dist/contracts.d.ts.map +1 -1
  31. package/dist/contracts.js.map +1 -1
  32. package/dist/icons/iconData.d.ts.map +1 -1
  33. package/dist/icons/iconData.js +22 -0
  34. package/dist/icons/iconData.js.map +1 -1
  35. package/dist/ipc/namespaces.d.ts +1 -1
  36. package/dist/ipc/namespaces.d.ts.map +1 -1
  37. package/dist/ipc/namespaces.js +1 -3
  38. package/dist/ipc/namespaces.js.map +1 -1
  39. package/dist/ipc/namespaces.test.js +4 -3
  40. package/dist/ipc/namespaces.test.js.map +1 -1
  41. package/dist/services/FeedbackServiceProxy.d.ts +6 -4
  42. package/dist/services/FeedbackServiceProxy.d.ts.map +1 -1
  43. package/dist/services/FeedbackServiceProxy.js +35 -8
  44. package/dist/services/FeedbackServiceProxy.js.map +1 -1
  45. package/dist/services/FeedbackServiceProxy.test.js +43 -18
  46. package/dist/services/FeedbackServiceProxy.test.js.map +1 -1
  47. package/dist/services/IFeedbackService.d.ts +52 -42
  48. package/dist/services/IFeedbackService.d.ts.map +1 -1
  49. package/dist/services/IScreenService.d.ts +28 -0
  50. package/dist/services/IScreenService.d.ts.map +1 -0
  51. package/dist/services/IScreenService.js +2 -0
  52. package/dist/services/IScreenService.js.map +1 -0
  53. package/dist/services/IStatusBarService.d.ts +7 -1
  54. package/dist/services/IStatusBarService.d.ts.map +1 -1
  55. package/dist/services/OAuthServiceProxy.d.ts +1 -1
  56. package/dist/services/OAuthServiceProxy.js +1 -1
  57. package/dist/services/ScreenServiceProxy.d.ts +9 -0
  58. package/dist/services/ScreenServiceProxy.d.ts.map +1 -0
  59. package/dist/services/ScreenServiceProxy.js +21 -0
  60. package/dist/services/ScreenServiceProxy.js.map +1 -0
  61. package/dist/services/ScreenServiceProxy.test.d.ts +2 -0
  62. package/dist/services/ScreenServiceProxy.test.d.ts.map +1 -0
  63. package/dist/services/ScreenServiceProxy.test.js +43 -0
  64. package/dist/services/ScreenServiceProxy.test.js.map +1 -0
  65. package/dist/services/index.d.ts +3 -5
  66. package/dist/services/index.d.ts.map +1 -1
  67. package/dist/services/index.js +1 -4
  68. package/dist/services/index.js.map +1 -1
  69. package/dist/types/ExtensionType.d.ts +7 -0
  70. package/dist/types/ExtensionType.d.ts.map +1 -1
  71. package/dist/view.test.js +1 -3
  72. package/dist/view.test.js.map +1 -1
  73. package/dist/worker.bundle-size.test.js +0 -1
  74. package/dist/worker.bundle-size.test.js.map +1 -1
  75. package/dist/worker.d.ts +1 -1
  76. package/dist/worker.d.ts.map +1 -1
  77. package/dist/worker.js +7 -9
  78. package/dist/worker.js.map +1 -1
  79. package/dist/worker.test.js +3 -4
  80. package/dist/worker.test.js.map +1 -1
  81. package/package.json +1 -1
  82. package/dist/contracts/diagnostics.d.ts +0 -18
  83. package/dist/contracts/diagnostics.d.ts.map +0 -1
  84. package/dist/contracts/diagnostics.js +0 -2
  85. package/dist/contracts/diagnostics.js.map +0 -1
  86. package/dist/contracts/diagnostics.test.d.ts +0 -2
  87. package/dist/contracts/diagnostics.test.d.ts.map +0 -1
  88. package/dist/contracts/diagnostics.test.js +0 -38
  89. package/dist/contracts/diagnostics.test.js.map +0 -1
  90. package/dist/services/AIServiceProxy.d.ts +0 -6
  91. package/dist/services/AIServiceProxy.d.ts.map +0 -1
  92. package/dist/services/AIServiceProxy.js +0 -95
  93. package/dist/services/AIServiceProxy.js.map +0 -1
  94. package/dist/services/AIServiceProxy.test.d.ts +0 -2
  95. package/dist/services/AIServiceProxy.test.d.ts.map +0 -1
  96. package/dist/services/AIServiceProxy.test.js +0 -202
  97. package/dist/services/AIServiceProxy.test.js.map +0 -1
  98. package/dist/services/DiagnosticsServiceProxy.d.ts +0 -19
  99. package/dist/services/DiagnosticsServiceProxy.d.ts.map +0 -1
  100. package/dist/services/DiagnosticsServiceProxy.js +0 -20
  101. package/dist/services/DiagnosticsServiceProxy.js.map +0 -1
  102. package/dist/services/DiagnosticsServiceProxy.test.d.ts +0 -2
  103. package/dist/services/DiagnosticsServiceProxy.test.d.ts.map +0 -1
  104. package/dist/services/DiagnosticsServiceProxy.test.js +0 -44
  105. package/dist/services/DiagnosticsServiceProxy.test.js.map +0 -1
  106. package/dist/services/IAIService.d.ts +0 -66
  107. package/dist/services/IAIService.d.ts.map +0 -1
  108. package/dist/services/IAIService.js +0 -2
  109. package/dist/services/IAIService.js.map +0 -1
  110. package/dist/services/INotificationService.d.ts +0 -21
  111. package/dist/services/INotificationService.d.ts.map +0 -1
  112. package/dist/services/INotificationService.js +0 -2
  113. package/dist/services/INotificationService.js.map +0 -1
  114. package/dist/services/NotificationServiceProxy.d.ts +0 -10
  115. package/dist/services/NotificationServiceProxy.d.ts.map +0 -1
  116. package/dist/services/NotificationServiceProxy.js +0 -48
  117. package/dist/services/NotificationServiceProxy.js.map +0 -1
  118. package/dist/services/NotificationServiceProxy.test.d.ts +0 -2
  119. package/dist/services/NotificationServiceProxy.test.d.ts.map +0 -1
  120. package/dist/services/NotificationServiceProxy.test.js +0 -106
  121. package/dist/services/NotificationServiceProxy.test.js.map +0 -1
@@ -1,66 +0,0 @@
1
- export type AIRole = 'system' | 'user' | 'assistant';
2
- export interface AIMessage {
3
- role: AIRole;
4
- content: string;
5
- }
6
- export interface AIStreamParams {
7
- /**
8
- * Full messages array. Include system messages here — the user's global
9
- * AI system prompt is NOT auto-injected into extension calls.
10
- */
11
- messages: AIMessage[];
12
- /**
13
- * Sampling temperature (0..2). Defaults to the user's configured value.
14
- */
15
- temperature?: number;
16
- /**
17
- * Max completion tokens. Clamped to the user's configured ceiling.
18
- */
19
- maxTokens?: number;
20
- }
21
- export type AIErrorCode = 'ai_not_configured' | 'ai_disabled_by_user' | 'provider_error' | 'invalid_request' | 'internal_error' | 'aborted';
22
- export interface AIError {
23
- code: AIErrorCode;
24
- message: string;
25
- }
26
- export interface AIStreamHandlers {
27
- onToken: (token: string) => void;
28
- onDone: () => void;
29
- onError: (error: AIError) => void;
30
- }
31
- export interface AIStreamHandle {
32
- /** Abort the in-flight stream. No-op if already completed. */
33
- abort(): void;
34
- }
35
- /**
36
- * Stream text completions from the user's configured AI provider.
37
- *
38
- * Requires `"ai:use"` in the extension's manifest `permissions` array.
39
- *
40
- * The user's own API key is used. The extension never sees the key.
41
- * Calls count against the user's own provider limits.
42
- *
43
- * @example
44
- * ```ts
45
- * const handle = ctx.proxies.ai.stream(
46
- * {
47
- * messages: [
48
- * { role: 'system', content: 'Translate to French. Reply only with the translation.' },
49
- * { role: 'user', content: selectedText },
50
- * ],
51
- * temperature: 0.1,
52
- * },
53
- * {
54
- * onToken: (t) => (output += t),
55
- * onDone: () => ctx.proxies.feedback.showHUD({ title: 'Done' }),
56
- * onError: (e) => ctx.proxies.diagnostics.report({ kind: 'manual', severity: 'error', retryable: false, context: { message: e.message } }),
57
- * },
58
- * );
59
- * // Abort if needed:
60
- * handle.abort();
61
- * ```
62
- */
63
- export interface IAIService {
64
- stream(params: AIStreamParams, handlers: AIStreamHandlers): AIStreamHandle;
65
- }
66
- //# sourceMappingURL=IAIService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IAIService.d.ts","sourceRoot":"","sources":["../../src/services/IAIService.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;AAErD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,WAAW,GACnB,mBAAmB,GACnB,qBAAqB,GACrB,gBAAgB,GAChB,iBAAiB,GACjB,gBAAgB,GAChB,SAAS,CAAC;AAEd,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,8DAA8D;IAC9D,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,WAAW,UAAU;IACzB,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,gBAAgB,GAAG,cAAc,CAAC;CAC5E"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=IAIService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IAIService.js","sourceRoot":"","sources":["../../src/services/IAIService.ts"],"names":[],"mappings":""}
@@ -1,21 +0,0 @@
1
- import type { NotificationOptions } from '../types/NotificationType';
2
- /**
3
- * Desktop notification service.
4
- *
5
- * Per-notification `actions` carry a `commandId`/`args` pair — when the
6
- * user clicks an action button the host dispatches the extension's
7
- * declared command directly, with no additional listener wiring needed
8
- * on the extension side.
9
- */
10
- export interface INotificationService {
11
- checkPermission(): Promise<boolean>;
12
- requestPermission(): Promise<boolean>;
13
- /**
14
- * Shows a desktop notification. Resolves with the notification id, which
15
- * callers can pass to `dismiss()` if the notification is no longer relevant.
16
- */
17
- send(options: NotificationOptions): Promise<string>;
18
- /** Dismiss a previously-shown notification and drop any pending actions. */
19
- dismiss(notificationId: string): Promise<void>;
20
- }
21
- //# sourceMappingURL=INotificationService.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"INotificationService.d.ts","sourceRoot":"","sources":["../../src/services/INotificationService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,WAAW,oBAAoB;IACnC,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC;;;OAGG;IACH,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,4EAA4E;IAC5E,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAChD"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=INotificationService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"INotificationService.js","sourceRoot":"","sources":["../../src/services/INotificationService.ts"],"names":[],"mappings":""}
@@ -1,10 +0,0 @@
1
- import type { INotificationService } from './INotificationService';
2
- import type { NotificationOptions } from '../types/NotificationType';
3
- import { BaseServiceProxy } from './BaseServiceProxy';
4
- export declare class NotificationServiceProxy extends BaseServiceProxy implements INotificationService {
5
- checkPermission(): Promise<boolean>;
6
- requestPermission(): Promise<boolean>;
7
- send(options: NotificationOptions): Promise<string>;
8
- dismiss(notificationId: string): Promise<void>;
9
- }
10
- //# sourceMappingURL=NotificationServiceProxy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationServiceProxy.d.ts","sourceRoot":"","sources":["../../src/services/NotificationServiceProxy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EAAsB,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACzF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,qBAAa,wBAAyB,SAAQ,gBAAiB,YAAW,oBAAoB;IAC5F,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAInC,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,IAAI,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOzD,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -1,48 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { BaseServiceProxy } from './BaseServiceProxy';
11
- export class NotificationServiceProxy extends BaseServiceProxy {
12
- checkPermission() {
13
- return this.broker.invoke('notifications:checkPermission');
14
- }
15
- requestPermission() {
16
- return this.broker.invoke('notifications:requestPermission');
17
- }
18
- send(options) {
19
- return __awaiter(this, void 0, void 0, function* () {
20
- if (options.actions) {
21
- for (const a of options.actions)
22
- validateAction(a);
23
- }
24
- return this.broker.invoke('notifications:send', { options });
25
- });
26
- }
27
- dismiss(notificationId) {
28
- return this.broker.invoke('notifications:dismiss', { notificationId });
29
- }
30
- }
31
- function validateAction(a) {
32
- if (!a.id)
33
- throw new Error(`NotificationAction requires a non-empty id`);
34
- if (!a.title)
35
- throw new Error(`NotificationAction "${a.id}" requires a non-empty title`);
36
- if (!a.commandId) {
37
- throw new Error(`NotificationAction "${a.id}" requires a non-empty commandId`);
38
- }
39
- if (a.args !== undefined) {
40
- try {
41
- JSON.stringify(a.args);
42
- }
43
- catch (_a) {
44
- throw new Error(`NotificationAction "${a.id}" args are not JSON-serialisable`);
45
- }
46
- }
47
- }
48
- //# sourceMappingURL=NotificationServiceProxy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationServiceProxy.js","sourceRoot":"","sources":["../../src/services/NotificationServiceProxy.ts"],"names":[],"mappings":";;;;;;;;;AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAC5D,eAAe;QACb,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,+BAA+B,CAAC,CAAC;IACtE,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,iCAAiC,CAAC,CAAC;IACxE,CAAC;IAEK,IAAI,CAAC,OAA4B;;YACrC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO;oBAAE,cAAc,CAAC,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAS,oBAAoB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QACvE,CAAC;KAAA;IAED,OAAO,CAAC,cAAsB;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAO,uBAAuB,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC/E,CAAC;CACF;AAED,SAAS,cAAc,CAAC,CAAqB;IAC3C,IAAI,CAAC,CAAC,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;IACzE,IAAI,CAAC,CAAC,CAAC,KAAK;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACzF,IAAI,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;IACjF,CAAC;IACD,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,WAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=NotificationServiceProxy.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationServiceProxy.test.d.ts","sourceRoot":"","sources":["../../src/services/NotificationServiceProxy.test.ts"],"names":[],"mappings":""}
@@ -1,106 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { describe, it, expect, vi, beforeEach } from 'vitest';
11
- import { NotificationServiceProxy } from './NotificationServiceProxy';
12
- import { messageBroker } from '../ipc/MessageBroker';
13
- vi.mock('../ipc/MessageBroker', () => ({
14
- messageBroker: { invoke: vi.fn(), on: vi.fn(), off: vi.fn() },
15
- }));
16
- function makeProxy(resolved = undefined) {
17
- const mockInvoke = vi.fn().mockResolvedValue(resolved);
18
- Object.assign(messageBroker, {
19
- invoke: mockInvoke,
20
- on: vi.fn(),
21
- off: vi.fn(),
22
- });
23
- const proxy = new NotificationServiceProxy();
24
- proxy.setExtensionId('ext.test');
25
- return { proxy, mockInvoke };
26
- }
27
- describe('NotificationServiceProxy', () => {
28
- beforeEach(() => vi.clearAllMocks());
29
- describe('send', () => {
30
- it('sends notifications:send with the full options payload and returns the id', () => __awaiter(void 0, void 0, void 0, function* () {
31
- const { proxy, mockInvoke } = makeProxy('notif-123');
32
- const id = yield proxy.send({ title: 'T', body: 'B' });
33
- expect(mockInvoke.mock.calls[0][0]).toBe('notifications:send');
34
- expect(mockInvoke.mock.calls[0][1]).toEqual({ options: { title: 'T', body: 'B' } });
35
- expect(id).toBe('notif-123');
36
- }));
37
- it('forwards actions array on the options payload', () => __awaiter(void 0, void 0, void 0, function* () {
38
- const { proxy, mockInvoke } = makeProxy('notif-xyz');
39
- yield proxy.send({
40
- title: 'Coffee ending',
41
- actions: [
42
- { id: 'extend', title: 'Extend 30m', commandId: 'coffee.extend', args: { minutes: 30 } },
43
- { id: 'stop', title: 'Stop now', commandId: 'coffee.stop' },
44
- ],
45
- });
46
- const payload = mockInvoke.mock.calls[0][1];
47
- expect(payload.options.actions).toHaveLength(2);
48
- expect(payload.options.actions[0]).toEqual({
49
- id: 'extend',
50
- title: 'Extend 30m',
51
- commandId: 'coffee.extend',
52
- args: { minutes: 30 },
53
- });
54
- expect(payload.options.actions[1]).toEqual({
55
- id: 'stop',
56
- title: 'Stop now',
57
- commandId: 'coffee.stop',
58
- });
59
- }));
60
- it('rejects actions without a commandId before reaching IPC', () => __awaiter(void 0, void 0, void 0, function* () {
61
- const { proxy, mockInvoke } = makeProxy();
62
- yield expect(proxy.send({
63
- title: 'x',
64
- actions: [{ id: 'a', title: 'A', commandId: '' }],
65
- })).rejects.toThrow(/commandId/i);
66
- expect(mockInvoke).not.toHaveBeenCalled();
67
- }));
68
- it('rejects actions with missing id or title', () => __awaiter(void 0, void 0, void 0, function* () {
69
- const { proxy, mockInvoke } = makeProxy();
70
- yield expect(proxy.send({ title: 'x', actions: [{ id: '', title: 'A', commandId: 'cmd.a' }] })).rejects.toThrow(/id/i);
71
- yield expect(proxy.send({ title: 'x', actions: [{ id: 'a', title: '', commandId: 'cmd.a' }] })).rejects.toThrow(/title/i);
72
- expect(mockInvoke).not.toHaveBeenCalled();
73
- }));
74
- it('rejects actions whose args are not JSON-serialisable', () => __awaiter(void 0, void 0, void 0, function* () {
75
- const { proxy, mockInvoke } = makeProxy();
76
- const cyclic = {};
77
- cyclic.self = cyclic;
78
- yield expect(proxy.send({
79
- title: 'x',
80
- actions: [{ id: 'a', title: 'A', commandId: 'cmd.a', args: cyclic }],
81
- })).rejects.toThrow(/serial/i);
82
- expect(mockInvoke).not.toHaveBeenCalled();
83
- }));
84
- });
85
- describe('dismiss', () => {
86
- it('sends notifications:dismiss with the notification id', () => __awaiter(void 0, void 0, void 0, function* () {
87
- const { proxy, mockInvoke } = makeProxy();
88
- yield proxy.dismiss('notif-abc');
89
- expect(mockInvoke.mock.calls[0][0]).toBe('notifications:dismiss');
90
- expect(mockInvoke.mock.calls[0][1]).toEqual({ notificationId: 'notif-abc' });
91
- }));
92
- });
93
- describe('permissions', () => {
94
- it('checkPermission maps to notifications:checkPermission', () => __awaiter(void 0, void 0, void 0, function* () {
95
- const { proxy, mockInvoke } = makeProxy(true);
96
- yield proxy.checkPermission();
97
- expect(mockInvoke.mock.calls[0][0]).toBe('notifications:checkPermission');
98
- }));
99
- it('requestPermission maps to notifications:requestPermission', () => __awaiter(void 0, void 0, void 0, function* () {
100
- const { proxy, mockInvoke } = makeProxy(true);
101
- yield proxy.requestPermission();
102
- expect(mockInvoke.mock.calls[0][0]).toBe('notifications:requestPermission');
103
- }));
104
- });
105
- });
106
- //# sourceMappingURL=NotificationServiceProxy.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotificationServiceProxy.test.js","sourceRoot":"","sources":["../../src/services/NotificationServiceProxy.test.ts"],"names":[],"mappings":"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"}