lamp-core-lst 2025.11.1-4.1 → 2025.11.17

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.
@@ -0,0 +1,192 @@
1
+ # Testing LAMP.dispatchEvent in Browser Console
2
+
3
+ ## Overview
4
+ `LAMP.dispatchEvent` is an event system that allows components to communicate via custom events. You can test it directly from the browser console when the LAMP-dashboard is running.
5
+
6
+ ## Basic Usage
7
+
8
+ ### 1. Add an Event Listener
9
+ ```javascript
10
+ // Listen for a custom event
11
+ LAMP.addEventListener("MY_TEST_EVENT", (event) => {
12
+ console.log("Event received:", event.detail);
13
+ });
14
+
15
+ // Listen for LOGIN events (already used by LAMP)
16
+ LAMP.addEventListener("LOGIN", (event) => {
17
+ console.log("Login event:", event.detail);
18
+ console.log("Identity:", event.detail.identityObject);
19
+ console.log("Server:", event.detail.serverAddress);
20
+ });
21
+
22
+ // Listen for LOGOUT events
23
+ LAMP.addEventListener("LOGOUT", (event) => {
24
+ console.log("Logout event:", event.detail);
25
+ });
26
+ ```
27
+
28
+ ### 2. Dispatch a Test Event
29
+ ```javascript
30
+ // Dispatch a simple test event
31
+ LAMP.dispatchEvent("MY_TEST_EVENT", { message: "Hello from console!" });
32
+
33
+ // Dispatch with more complex data
34
+ LAMP.dispatchEvent("MY_TEST_EVENT", {
35
+ timestamp: Date.now(),
36
+ data: { key: "value" },
37
+ user: "test-user"
38
+ });
39
+ ```
40
+
41
+ ### 3. Remove an Event Listener
42
+ ```javascript
43
+ // Create a named function for the listener
44
+ const myHandler = (event) => {
45
+ console.log("Event:", event.detail);
46
+ };
47
+
48
+ // Add listener
49
+ LAMP.addEventListener("MY_TEST_EVENT", myHandler);
50
+
51
+ // Remove listener
52
+ LAMP.removeEventListener("MY_TEST_EVENT", myHandler);
53
+ ```
54
+
55
+ ## Testing Existing Events
56
+
57
+ ### Test LOGIN Event
58
+ ```javascript
59
+ // Add listener first
60
+ LAMP.addEventListener("LOGIN", (event) => {
61
+ console.log("LOGIN Event Details:", event.detail);
62
+ });
63
+
64
+ // Trigger login (this will also dispatch LOGIN event automatically)
65
+ // But you can also manually test it:
66
+ LAMP.dispatchEvent("LOGIN", {
67
+ authorizationToken: "test:token",
68
+ identityObject: { id: "test-user", name: "Test User" },
69
+ serverAddress: "https://api.lamp.digital",
70
+ accessToken: "access-token",
71
+ refreshToken: "refresh-token"
72
+ });
73
+ ```
74
+
75
+ ### Test LOGOUT Event
76
+ ```javascript
77
+ // Add listener
78
+ LAMP.addEventListener("LOGOUT", (event) => {
79
+ console.log("LOGOUT Event:", event.detail);
80
+ });
81
+
82
+ // Dispatch logout
83
+ LAMP.dispatchEvent("LOGOUT", {
84
+ deleteCache: true
85
+ });
86
+ ```
87
+
88
+ ## Complete Testing Example
89
+
90
+ ```javascript
91
+ // Step 1: Set up listeners for all events you want to test
92
+ const eventLog = [];
93
+
94
+ // Generic event logger
95
+ const logEvent = (eventName) => (event) => {
96
+ const logEntry = {
97
+ event: eventName,
98
+ timestamp: new Date().toISOString(),
99
+ detail: event.detail
100
+ };
101
+ eventLog.push(logEntry);
102
+ console.log(`[${eventName}]`, logEntry);
103
+ };
104
+
105
+ // Add listeners
106
+ LAMP.addEventListener("LOGIN", logEvent("LOGIN"));
107
+ LAMP.addEventListener("LOGOUT", logEvent("LOGOUT"));
108
+ LAMP.addEventListener("MY_TEST_EVENT", logEvent("MY_TEST_EVENT"));
109
+
110
+ // Step 2: Dispatch test events
111
+ LAMP.dispatchEvent("MY_TEST_EVENT", { test: "data" });
112
+ LAMP.dispatchEvent("LOGIN", {
113
+ identityObject: { id: "test" },
114
+ serverAddress: "https://test.com"
115
+ });
116
+
117
+ // Step 3: View all logged events
118
+ console.log("All Events:", eventLog);
119
+
120
+ // Step 4: Check if LAMP object is available
121
+ console.log("LAMP object:", LAMP);
122
+ console.log("LAMP.dispatchEvent:", LAMP.dispatchEvent);
123
+ console.log("LAMP.addEventListener:", LAMP.addEventListener);
124
+ ```
125
+
126
+ ## Debugging Tips
127
+
128
+ ### Check if LAMP is loaded
129
+ ```javascript
130
+ // In browser console
131
+ typeof LAMP !== 'undefined' && LAMP.dispatchEvent
132
+ // Should return: function dispatchEvent() { ... }
133
+ ```
134
+
135
+ ### Monitor all dispatched events
136
+ ```javascript
137
+ // Override dispatchEvent temporarily to log all events
138
+ const originalDispatch = LAMP.dispatchEvent;
139
+ LAMP.dispatchEvent = function(event, detail) {
140
+ console.log("Dispatching:", event, detail);
141
+ return originalDispatch.call(this, event, detail);
142
+ };
143
+
144
+ // Now all events will be logged
145
+ LAMP.dispatchEvent("TEST", { data: "test" });
146
+
147
+ // Restore original
148
+ LAMP.dispatchEvent = originalDispatch;
149
+ ```
150
+
151
+ ### Check event bus
152
+ ```javascript
153
+ // The internal event bus is a DOM element
154
+ // You can inspect it (though it's private)
155
+ // Events are dispatched using CustomEvent API
156
+ ```
157
+
158
+ ## Common Use Cases
159
+
160
+ ### 1. Test Activity Completion Events
161
+ ```javascript
162
+ LAMP.addEventListener("ACTIVITY_COMPLETE", (event) => {
163
+ console.log("Activity completed:", event.detail);
164
+ });
165
+
166
+ LAMP.dispatchEvent("ACTIVITY_COMPLETE", {
167
+ activityId: "test-activity-123",
168
+ participantId: "test-participant",
169
+ timestamp: Date.now()
170
+ });
171
+ ```
172
+
173
+ ### 2. Test Data Sync Events
174
+ ```javascript
175
+ LAMP.addEventListener("DATA_SYNC", (event) => {
176
+ console.log("Data synced:", event.detail);
177
+ });
178
+
179
+ LAMP.dispatchEvent("DATA_SYNC", {
180
+ type: "activities",
181
+ count: 10,
182
+ timestamp: Date.now()
183
+ });
184
+ ```
185
+
186
+ ## Notes
187
+ - Events use the browser's native CustomEvent API
188
+ - The event bus is an internal HTMLElement (`_bus`)
189
+ - Events are synchronous - listeners are called immediately
190
+ - Multiple listeners can be attached to the same event
191
+ - Event details are passed in the `detail` property of the event object
192
+
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lamp-core-lst",
3
- "version": "2025.11.1-4.1",
3
+ "version": "2025.11.17",
4
4
  "author": "BIDMC Division of Digital Psychiatry <team@digitalpsych.org>",
5
5
  "description": "The JavaScript and TypeScript API client for the LAMP Platform.",
6
6
  "homepage": "https://docs.lamp.digital/",