@weave-apps/sdk 0.1.20 → 0.2.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.
package/dist/WeaveBaseApp.d.ts
CHANGED
|
@@ -219,6 +219,23 @@ export declare abstract class WeaveBaseApp<TSettings = Record<string, any>, TSta
|
|
|
219
219
|
* @param url - The new URL
|
|
220
220
|
*/
|
|
221
221
|
protected onUrlChange?(url: string): void;
|
|
222
|
+
/**
|
|
223
|
+
* Server event handler - optional override in subclass
|
|
224
|
+
* Called when the server sends an event to this app via WebSocket
|
|
225
|
+
* Works whether the app is in background or foreground mode
|
|
226
|
+
*
|
|
227
|
+
* @param event - The event name (e.g., 'form_completed')
|
|
228
|
+
* @param data - Optional event data from the server
|
|
229
|
+
*
|
|
230
|
+
* @example
|
|
231
|
+
* protected onServerEvent(event: string, data?: Record<string, any>): void {
|
|
232
|
+
* if (event === 'form_completed') {
|
|
233
|
+
* console.log('Form completed:', data);
|
|
234
|
+
* this.refreshData();
|
|
235
|
+
* }
|
|
236
|
+
* }
|
|
237
|
+
*/
|
|
238
|
+
protected onServerEvent?(event: string, data?: Record<string, any>): void;
|
|
222
239
|
/**
|
|
223
240
|
* Render method - must be implemented by subclass
|
|
224
241
|
* Should return HTML string or directly manipulate shadowRoot
|
|
@@ -238,6 +255,11 @@ export declare abstract class WeaveBaseApp<TSettings = Record<string, any>, TSta
|
|
|
238
255
|
* Called by BackgroundAppManager when URL changes
|
|
239
256
|
*/
|
|
240
257
|
handleUrlChange(url: string): void;
|
|
258
|
+
/**
|
|
259
|
+
* Handle server event
|
|
260
|
+
* Called by BackgroundAppManager when a WebSocket event is received for this app
|
|
261
|
+
*/
|
|
262
|
+
handleServerEvent(event: string, data?: Record<string, any>): void;
|
|
241
263
|
/**
|
|
242
264
|
* Lifecycle: Called when element is added to DOM
|
|
243
265
|
* This happens when user opens the app in the drawer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeaveBaseApp.d.ts","sourceRoot":"","sources":["../src/WeaveBaseApp.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WeaveBaseApp.d.ts","sourceRoot":"","sources":["../src/WeaveBaseApp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AAKH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,GAAG,CAAC;IACV,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,EAAE,EAAE,MAAM,CAAC;IACX,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAMhB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAsBD;;;;GAIG;AACH,8BAAsB,YAAY,CAChC,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC/B,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAC5B,SAAQ,WAAW;IACnB,mBAAmB;IACnB,SAAS,CAAC,OAAO,EAAE,YAAY,CAAC;IAEhC,2CAA2C;IAC3C,SAAS,CAAC,WAAW,CAAC,EAAE,SAAS,CAAC;IAElC,gDAAgD;IAChD,SAAS,CAAC,KAAK,EAAE,MAAM,CAAgB;IAEvC,sCAAsC;IACtC,OAAO,CAAC,WAAW,CAAa;IAEhC,mEAAmE;IACnE,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;IAExB,2CAA2C;IAC3C,OAAO,CAAC,cAAc,CAAa;IAEnC,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAa;IAE7B,mDAAmD;IACnD,OAAO,CAAC,aAAa,CAAa;IAElC,iCAAiC;IACjC,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,+CAA+C;IAC/C,OAAO,CAAC,cAAc,CAAkB;IAExC,6BAA6B;IAC7B,OAAO,CAAC,QAAQ,CAAuB;IAEvC,oDAAoD;IACpD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAQ;IAE5C,0BAA0B;IAC1B,SAAS,CAAC,WAAW,EAAE,GAAG,CAAQ;IAElC,6BAA6B;IAC7B,SAAS,CAAC,cAAc,EAAE,GAAG,CAAQ;IAErC;;;OAGG;gBACS,OAAO,EAAE,YAAY;IAyEjC;;;OAGG;IACH,SAAS,KAAK,UAAU,IAAI,GAAG,CAE9B;IAED;;OAEG;IACH,SAAS,KAAK,IAAI,IAAI,GAAG,CAExB;IAED;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,SAAS,KAAK,SAAS,IAAI,GAAG,CAE7B;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;cACa,OAAO,CACrB,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,EACpC,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAYzB;;OAEG;cACa,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;OAEG;cACa,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;IAKpD;;OAEG;IACH,IAAI,UAAU,IAAI,UAAU,CAE3B;IAED;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,IAAI,IAAI;IAEtC;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAEzC;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAEzE;;;OAGG;IACH,SAAS,CAAC,MAAM,IAAI,IAAI;IAIxB;;OAEG;IACH,SAAS,CAAC,mBAAmB,IAAI,IAAI;IAIrC;;;OAGG;IACI,2BAA2B,IAAI,IAAI;IAO1C;;;OAGG;IACI,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAMzC;;;OAGG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAMzE;;;OAGG;IACH,iBAAiB,IAAI,IAAI;IAoBzB;;OAEG;IACH,oBAAoB,IAAI,IAAI;IAI5B;;;OAGG;IACH,SAAS,CAAC,OAAO,IAAI,IAAI;IAIzB;;OAEG;IACI,UAAU,IAAI,YAAY;IAIjC;;OAEG;IACI,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAOzC;;;OAGG;IAEI,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAIvD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI;IASlD;;;OAGG;YACW,aAAa;IAU3B;;;OAGG;IACU,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAyB7C;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxC;;OAEG;IACH,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IAIxE;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC;CAGjF"}
|
package/dist/WeaveBaseApp.js
CHANGED
|
@@ -290,6 +290,15 @@ export class WeaveBaseApp extends HTMLElement {
|
|
|
290
290
|
this.onUrlChange(url);
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
|
+
/**
|
|
294
|
+
* Handle server event
|
|
295
|
+
* Called by BackgroundAppManager when a WebSocket event is received for this app
|
|
296
|
+
*/
|
|
297
|
+
handleServerEvent(event, data) {
|
|
298
|
+
if (this.onServerEvent) {
|
|
299
|
+
this.onServerEvent(event, data);
|
|
300
|
+
}
|
|
301
|
+
}
|
|
293
302
|
/**
|
|
294
303
|
* Lifecycle: Called when element is added to DOM
|
|
295
304
|
* This happens when user opens the app in the drawer
|
package/dist/WeaveDOMAPI.d.ts
CHANGED
|
@@ -90,6 +90,7 @@ export interface WorkflowActionPayload {
|
|
|
90
90
|
text?: string;
|
|
91
91
|
attributes?: Record<string, string>;
|
|
92
92
|
};
|
|
93
|
+
pauseAfterInSeconds?: number;
|
|
93
94
|
}
|
|
94
95
|
/**
|
|
95
96
|
* Workflow saved event callback
|
|
@@ -113,6 +114,7 @@ export interface TriggerDataMapping {
|
|
|
113
114
|
export type TriggerSavedCallback = (trigger: {
|
|
114
115
|
name: string;
|
|
115
116
|
url: string;
|
|
117
|
+
urlPattern: string;
|
|
116
118
|
events: any[];
|
|
117
119
|
dataCapture: any;
|
|
118
120
|
linkedWorkflowId?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WeaveDOMAPI.d.ts","sourceRoot":"","sources":["../src/WeaveDOMAPI.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA0DH;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAErF;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CACrE;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,IAAI,EAAE;IACrC,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH,KAAK,IAAI,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACrC,CAAC;
|
|
1
|
+
{"version":3,"file":"WeaveDOMAPI.d.ts","sourceRoot":"","sources":["../src/WeaveDOMAPI.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/templates/WEAVE_SPEC.md
CHANGED
|
@@ -847,6 +847,135 @@ class SmartNavigationHelper extends WeaveBaseApp {
|
|
|
847
847
|
customElements.define('smart-nav-helper', SmartNavigationHelper);
|
|
848
848
|
```
|
|
849
849
|
|
|
850
|
+
### Server Event Handler (WebSocket)
|
|
851
|
+
|
|
852
|
+
#### `onServerEvent(event: string, data?: Record<string, any>): void` (Optional)
|
|
853
|
+
|
|
854
|
+
Called when the server sends an event to this app via WebSocket. This enables **real-time server→app communication** for:
|
|
855
|
+
- 📬 **Push notifications** - Server notifies app of completed operations
|
|
856
|
+
- 🔄 **Data sync** - Server pushes updates when data changes
|
|
857
|
+
- ✅ **Form completion** - Server notifies when background processing finishes
|
|
858
|
+
- 🔔 **Alerts** - Server sends urgent notifications to specific apps
|
|
859
|
+
|
|
860
|
+
**Works in both background and foreground modes** - the app receives events regardless of whether it's currently visible in the drawer.
|
|
861
|
+
|
|
862
|
+
```typescript
|
|
863
|
+
class FormProcessorApp extends WeaveBaseApp {
|
|
864
|
+
constructor() {
|
|
865
|
+
super({
|
|
866
|
+
id: 'form-processor',
|
|
867
|
+
name: 'Form Processor',
|
|
868
|
+
version: '1.0.0',
|
|
869
|
+
category: 'automation',
|
|
870
|
+
description: 'Processes forms and receives server notifications',
|
|
871
|
+
tags: ['forms', 'automation']
|
|
872
|
+
});
|
|
873
|
+
|
|
874
|
+
this.state = {
|
|
875
|
+
lastEvent: null,
|
|
876
|
+
processedForms: []
|
|
877
|
+
};
|
|
878
|
+
}
|
|
879
|
+
|
|
880
|
+
// 📬 Called when server sends an event to this app
|
|
881
|
+
protected onServerEvent(event: string, data?: Record<string, any>): void {
|
|
882
|
+
console.log('📬 Server event received:', event, data);
|
|
883
|
+
|
|
884
|
+
this.state.lastEvent = { event, data, timestamp: Date.now() };
|
|
885
|
+
|
|
886
|
+
if (event === 'form_completed') {
|
|
887
|
+
// Handle form completion notification from server
|
|
888
|
+
this.state.processedForms.push({
|
|
889
|
+
formId: data?.formId,
|
|
890
|
+
status: data?.status,
|
|
891
|
+
completedAt: Date.now()
|
|
892
|
+
});
|
|
893
|
+
|
|
894
|
+
console.log('✅ Form processed:', data?.formId);
|
|
895
|
+
|
|
896
|
+
// Show notification or update UI
|
|
897
|
+
if (data?.status === 'success') {
|
|
898
|
+
this.showSuccessNotification(data);
|
|
899
|
+
} else {
|
|
900
|
+
this.showErrorNotification(data);
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
if (event === 'data_updated') {
|
|
905
|
+
// Refresh data when server notifies of changes
|
|
906
|
+
this.refreshData();
|
|
907
|
+
}
|
|
908
|
+
|
|
909
|
+
// Update UI if app is open
|
|
910
|
+
if (this.isConnected) {
|
|
911
|
+
this.render();
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
showSuccessNotification(data: any) {
|
|
916
|
+
// Inject a toast notification on the page
|
|
917
|
+
window.weaveDOM.injectElement(
|
|
918
|
+
'body',
|
|
919
|
+
'beforeend',
|
|
920
|
+
`<div style="position: fixed; top: 20px; right: 20px; background: #10b981; color: white; padding: 15px 20px; border-radius: 8px; z-index: 9999;">
|
|
921
|
+
✅ Form ${data.formId} processed successfully!
|
|
922
|
+
</div>`,
|
|
923
|
+
{}
|
|
924
|
+
);
|
|
925
|
+
}
|
|
926
|
+
|
|
927
|
+
async refreshData() {
|
|
928
|
+
// Reload data from API
|
|
929
|
+
const response = await this.weaveAPI.appData.getAll();
|
|
930
|
+
this.state.data = response.data;
|
|
931
|
+
}
|
|
932
|
+
|
|
933
|
+
render() {
|
|
934
|
+
this.renderHTML(`
|
|
935
|
+
<div class="p-4">
|
|
936
|
+
<h2>Form Processor</h2>
|
|
937
|
+
<p>Last event: ${this.state.lastEvent?.event || 'None'}</p>
|
|
938
|
+
<p>Processed forms: ${this.state.processedForms.length}</p>
|
|
939
|
+
<ul>
|
|
940
|
+
${this.state.processedForms.map(f => `
|
|
941
|
+
<li>${f.formId} - ${f.status}</li>
|
|
942
|
+
`).join('')}
|
|
943
|
+
</ul>
|
|
944
|
+
</div>
|
|
945
|
+
`);
|
|
946
|
+
}
|
|
947
|
+
}
|
|
948
|
+
|
|
949
|
+
customElements.define('form-processor', FormProcessorApp);
|
|
950
|
+
```
|
|
951
|
+
|
|
952
|
+
**Server-Side Usage:**
|
|
953
|
+
|
|
954
|
+
The server can send events to specific apps using the WebSocket handler:
|
|
955
|
+
|
|
956
|
+
```typescript
|
|
957
|
+
// Server-side: Send event to a specific app for a user
|
|
958
|
+
WebSocketHandler.emitToUser(userId, 'app_message', {
|
|
959
|
+
appId: 'target-app-uuid', // The app's UUID
|
|
960
|
+
event: 'form_completed', // Event name
|
|
961
|
+
data: { // Event data
|
|
962
|
+
formId: '123',
|
|
963
|
+
status: 'success',
|
|
964
|
+
message: 'Form processed successfully'
|
|
965
|
+
}
|
|
966
|
+
});
|
|
967
|
+
```
|
|
968
|
+
|
|
969
|
+
**Event Payload Structure:**
|
|
970
|
+
|
|
971
|
+
```typescript
|
|
972
|
+
interface AppMessageFromServerPayload {
|
|
973
|
+
appId: string; // Target app's UUID
|
|
974
|
+
event: string; // Event name (e.g., 'form_completed')
|
|
975
|
+
data?: Record<string, any>; // Optional event data
|
|
976
|
+
}
|
|
977
|
+
```
|
|
978
|
+
|
|
850
979
|
### Shared State Between Background and Foreground
|
|
851
980
|
|
|
852
981
|
The same app instance serves both background and foreground, so `this.state` is shared:
|
|
@@ -1088,10 +1217,11 @@ customElements.define('smart-form-assistant', SmartFormAssistant);
|
|
|
1088
1217
|
4. **Multi-Page Flows**: Use `this.background?.setPendingOperation()` for cross-page operations
|
|
1089
1218
|
5. **Background Service**: `onBackgroundService()` runs immediately, before DOM attachment
|
|
1090
1219
|
6. **URL Monitoring**: `onUrlChange()` detects SPA navigation automatically
|
|
1091
|
-
7. **
|
|
1092
|
-
8. **
|
|
1093
|
-
9. **
|
|
1094
|
-
10. **
|
|
1220
|
+
7. **Server Events**: `onServerEvent()` receives real-time WebSocket events from the server
|
|
1221
|
+
8. **Scheduled Tasks**: Use `this.cronTab()` to register cron jobs with standard cron syntax
|
|
1222
|
+
9. **Shared Context**: Background and foreground share the same instance and state
|
|
1223
|
+
10. **DOM Check**: Use `this.isConnected` to check if app is attached to DOM
|
|
1224
|
+
11. **No User Interaction Required**: Apps can run and inject UI automatically
|
|
1095
1225
|
|
|
1096
1226
|
### Helper Methods (Available in `this`)
|
|
1097
1227
|
|
|
@@ -1133,6 +1263,28 @@ await this.cronUnregister(jobName: string): Promise<boolean>
|
|
|
1133
1263
|
await this.cronUnregisterAll(): Promise<number>
|
|
1134
1264
|
```
|
|
1135
1265
|
|
|
1266
|
+
### Lifecycle Methods (Override in Subclass)
|
|
1267
|
+
|
|
1268
|
+
```typescript
|
|
1269
|
+
// Background service - runs immediately after instantiation
|
|
1270
|
+
protected onBackgroundService?(): void
|
|
1271
|
+
|
|
1272
|
+
// URL change handler - called on SPA navigation
|
|
1273
|
+
protected onUrlChange?(url: string): void
|
|
1274
|
+
|
|
1275
|
+
// Server event handler - receives WebSocket events from server
|
|
1276
|
+
protected onServerEvent?(event: string, data?: Record<string, any>): void
|
|
1277
|
+
|
|
1278
|
+
// Render method - called when app is attached to DOM
|
|
1279
|
+
protected render(): void
|
|
1280
|
+
|
|
1281
|
+
// Setup event listeners - called after render
|
|
1282
|
+
protected setupEventListeners(): void
|
|
1283
|
+
|
|
1284
|
+
// Cleanup - called when app is removed from DOM
|
|
1285
|
+
protected cleanup(): void
|
|
1286
|
+
```
|
|
1287
|
+
|
|
1136
1288
|
## State Persistence (Survive Page Reloads)
|
|
1137
1289
|
|
|
1138
1290
|
### Overview
|