ExportService gets removed and instead a global class registry is added.
The `init.js` file is split into `init_sync.js` and `init_async.js`
so that synchronous code that isn't dependent on imports is guarenteed
to run before initgui.js. The globalThis scope and service-script API
now expose `def`, a function for registering class definitions, and
`use`, a function for obtaining registered classes.
In the first pass I add a `register` method and update `defineComponent`
so it calls `register` as well. This made it possible to create a
proof-of-concept for registered classes. Additionally ExportService was
added to expose registered classes to service scripts. This first pass
works, but it would be better if all types of classes (components or
otherwise) were registered via the same method.
Almost entirely clarifying use of window fields
/puter/src/initgui.js
82:28 error 'api_origin' is not defined no-undef
118:34 error 'url_query_params' is not defined no-undef
120:17 error 'app_query_params' is not defined no-undef
136:8 error 'url_query_params' is not defined no-undef
136:51 error 'url_query_params' is not defined no-undef
136:105 error 'url_query_params' is not defined no-undef
138:14 error 'url_query_params' is not defined no-undef
138:57 error 'url_query_params' is not defined no-undef
138:110 error 'url_query_params' is not defined no-undef
154:8 error 'url_query_params' is not defined no-undef
154:54 error 'url_query_params' is not defined no-undef
154:110 error 'url_query_params' is not defined no-undef
164:17 error 'openerOrigin' is not defined no-undef
171:30 error 'openerOrigin' is not defined no-undef
173:37 error 'is_auth' is not defined no-undef
184:23 error 'getUserAppToken' is not defined no-undef
184:39 error 'openerOrigin' is not defined no-undef
186:41 error 'is_auth' is not defined no-undef
195:23 error 'getUserAppToken' is not defined no-undef
195:39 error 'openerOrigin' is not defined no-undef
205:8 error 'url_query_params' is not defined no-undef
206:32 error 'url_query_params' is not defined no-undef
218:23 error 'url_query_params' is not defined no-undef
219:22 error 'openerOrigin' is not defined no-undef
219:38 error 'url_query_params' is not defined no-undef
220:26 error 'url_query_params' is not defined no-undef
228:29 error 'embedded_in_popup' is not defined no-undef
238:20 error 'url_query_params' is not defined no-undef
239:21 error 'url_query_params' is not defined no-undef
270:36 error 'openerOrigin' is not defined no-undef
271:30 error 'checkUserSiteRelationship' is not defined no-undef
271:56 error 'openerOrigin' is not defined no-undef
274:44 error 'logged_in_users' is not defined no-undef
274:76 error 'userAppToken' is not defined no-undef
274:92 error 'url_query_params' is not defined no-undef
284:17 error 'userAppToken' is not defined no-undef
288:25 error 'is_auth' is not defined no-undef
302:13 error 'url_query_params' is not defined no-undef
303:38 error 'url_query_params' is not defined no-undef
309:17 error 'logout' is not defined no-undef
331:13 error 'update_auth_data' is not defined no-undef
363:8 error 'is_auth' is not defined no-undef
388:13 error 'update_auth_data' is not defined no-undef
394:23 error 'get_auto_arrange_data' is not defined no-undef
395:31 error 'desktop_path' is not defined no-undef
403:30 error 'url_query_params' is not defined no-undef
405:38 error 'getUserAppToken' is not defined no-undef
405:62 error 'openerOrigin' is not defined no-undef
415:35 error 'user' is not defined no-undef
417:24 error 'openerOrigin' is not defined no-undef
430:24 error 'openerOrigin' is not defined no-undef
438:20 error 'openerOrigin' is not defined no-undef
439:37 error 'getAppUIDFromOrigin' is not defined no-undef
439:57 error 'openerOrigin' is not defined no-undef
444:35 error 'url_query_params' is not defined no-undef
508:46 error 'url_query_params' is not defined no-undef
630:54 error 'busy_indicator_hide_delay' is not defined no-undef
636:49 error 'busy_indicator_hide_delay' is not defined no-undef
647:13 error 'update_sites_cache' is not defined no-undef
656:9 error 'refresh_desktop_background' is not defined no-undef
661:9 error 'is_auth' is not defined no-undef
661:23 error 'first_visit_ever' is not defined no-undef
662:12 error 'logged_in_users' is not defined no-undef
679:14 error 'is_auth' is not defined no-undef
679:27 error 'first_visit_ever' is not defined no-undef
693:12 error 'url_query_params' is not defined no-undef
696:47 error 'url_query_params' is not defined no-undef
704:18 error 'gui_origin' is not defined no-undef
715:17 error 'update_auth_data' is not defined no-undef
728:8 error 'feature_flags' is not defined no-undef
746:19 error 'get_auto_arrange_data' is not defined no-undef
747:27 error 'desktop_path' is not defined no-undef
755:26 error 'url_query_params' is not defined no-undef
758:34 error 'getUserAppToken' is not defined no-undef
758:58 error 'openerOrigin' is not defined no-undef
768:31 error 'user' is not defined no-undef
770:20 error 'openerOrigin' is not defined no-undef
783:20 error 'openerOrigin' is not defined no-undef
792:16 error 'openerOrigin' is not defined no-undef
793:33 error 'getAppUIDFromOrigin' is not defined no-undef
793:53 error 'openerOrigin' is not defined no-undef
801:31 error 'url_query_params' is not defined no-undef
864:42 error 'url_query_params' is not defined no-undef
987:50 error 'busy_indicator_hide_delay' is not defined no-undef
993:45 error 'busy_indicator_hide_delay' is not defined no-undef
1021:13 error 'update_explorer_footer_selected_items_count' is not defined no-undef
1057:13 error 'active_item_container' is not defined no-undef
1061:17 error 'active_item_container' is not defined no-undef
1065:21 error 'active_item_container' is not defined no-undef
1071:9 error 'active_element' is not defined no-undef
1179:21 error 'select_ctxmenu_item' is not defined no-undef
1185:21 error 'select_ctxmenu_item' is not defined no-undef
1198:21 error 'select_ctxmenu_item' is not defined no-undef
1211:21 error 'select_ctxmenu_item' is not defined no-undef
1222:25 error 'select_ctxmenu_item' is not defined no-undef
1255:22 error 'active_item_container' is not defined no-undef
1256:39 error 'active_item_container' is not defined no-undef
1257:21 error 'active_element' is not defined no-undef
1258:23 error 'active_item_container' is not defined no-undef
1263:27 error 'active_item_container' is not defined no-undef
1264:39 error 'active_item_container' is not defined no-undef
1267:27 error 'active_item_container' is not defined no-undef
1268:39 error 'active_element' is not defined no-undef
1268:74 error 'active_element' is not defined no-undef
1268:93 error 'active_element' is not defined no-undef
1271:27 error 'active_item_container' is not defined no-undef
1272:39 error 'active_item_container' is not defined no-undef
1275:39 error 'active_element' is not defined no-undef
1275:74 error 'active_element' is not defined no-undef
1275:93 error 'active_element' is not defined no-undef
1323:114 error 'active_item_container' is not defined no-undef
1331:21 error 'active_element' is not defined no-undef
1334:27 error 'active_item_container' is not defined no-undef
1390:37 error 'active_element' is not defined no-undef
1407:31 error 'delete_item' is not defined no-undef
1419:37 error 'active_element' is not defined no-undef
1419:115 error 'trash_path' is not defined no-undef
1436:31 error 'delete_item' is not defined no-undef
1438:55 error 'trash_path' is not defined no-undef
1445:59 error 'trash_path' is not defined no-undef
1446:61 error 'trash_path' is not defined no-undef
1452:37 error 'active_element' is not defined no-undef
1456:25 error 'move_items' is not defined no-undef
1456:53 error 'trash_path' is not defined no-undef
1467:16 error 'keypress_item_seach_term' is not defined no-undef
1468:30 error 'keypress_item_seach_buffer_timeout' is not defined no-undef
1470:13 error 'keypress_item_seach_buffer_timeout' is not defined no-undef
1471:17 error 'keypress_item_seach_term' is not defined no-undef
1474:13 error 'keypress_item_seach_term' is not defined no-undef
1477:38 error 'active_item_container' is not defined no-undef
1480:108 error 'keypress_item_seach_term' is not defined no-undef
1485:30 error 'active_item_container' is not defined no-undef
1487:78 error 'keypress_item_seach_term' is not defined no-undef
1505:19 error 'active_item_container' is not defined no-undef
1509:17 error 'update_explorer_footer_selected_items_count' is not defined no-undef
1509:63 error 'active_element' is not defined no-undef
1518:16 error 'keypress_item_seach_term' is not defined no-undef
1519:30 error 'keypress_item_seach_buffer_timeout' is not defined no-undef
1521:13 error 'keypress_item_seach_buffer_timeout' is not defined no-undef
1522:17 error 'keypress_item_seach_term' is not defined no-undef
1525:13 error 'keypress_item_seach_term' is not defined no-undef
1531:97 error 'keypress_item_seach_term' is not defined no-undef
1538:67 error 'keypress_item_seach_term' is not defined no-undef
1581:39 error 'active_element' is not defined no-undef
1583:39 error 'active_element' is not defined no-undef
1590:17 error 'update_explorer_footer_selected_items_count' is not defined no-undef
1600:36 error 'active_element' is not defined no-undef
1602:36 error 'active_element' is not defined no-undef
1615:15 error 'mouseover_window' is not defined no-undef
1616:15 error 'mouseover_window' is not defined no-undef
1616:55 error 'trash_path' is not defined no-undef
1621:38 error 'active_element' is not defined no-undef
1623:38 error 'active_element' is not defined no-undef
1628:21 error 'clipboard' is not defined no-undef
1629:21 error 'clipboard_op' is not defined no-undef
1632:58 error 'trash_path' is not defined no-undef
1636:25 error 'clipboard' is not defined no-undef
1648:38 error 'active_element' is not defined no-undef
1650:38 error 'active_element' is not defined no-undef
1655:21 error 'clipboard' is not defined no-undef
1656:21 error 'clipboard_op' is not defined no-undef
1658:25 error 'clipboard' is not defined no-undef
1668:107 error 'last_enter_pressed_to_rename_ts' is not defined no-undef
1682:21 error 'launch_app' is not defined no-undef
1705:21 error 'select_ctxmenu_item' is not defined no-undef
1713:21 error 'active_item_container' is not defined no-undef
1714:37 error 'active_item_container' is not defined no-undef
1717:25 error 'open_item' is not defined no-undef
1736:16 error 'clipboard' is not defined no-undef
1745:37 error 'trash_path' is not defined no-undef
1745:74 error 'trash_path' is not defined no-undef
1745:96 error 'clipboard_op' is not defined no-undef
1748:20 error 'clipboard_op' is not defined no-undef
1749:21 error 'copy_clipboard_items' is not defined no-undef
1750:25 error 'clipboard_op' is not defined no-undef
1751:21 error 'move_clipboard_items' is not defined no-undef
1760:13 error 'undo_last_action' is not defined no-undef
1767:9 error 'mouseX' is not defined no-undef
1768:9 error 'mouseY' is not defined no-undef
1771:13 error 'mouseX' is not defined no-undef
1771:29 error 'mouseY' is not defined no-undef
1771:38 error 'toolbar_height' is not defined no-undef
1771:63 error 'mouseX' is not defined no-undef
1771:78 error 'mouseY' is not defined no-undef
1772:13 error 'current_active_snap_zone' is not defined no-undef
1774:17 error 'mouseX' is not defined no-undef
1774:32 error 'mouseY' is not defined no-undef
1774:49 error 'mouseY' is not defined no-undef
1774:58 error 'desktop_height' is not defined no-undef
1775:13 error 'current_active_snap_zone' is not defined no-undef
1777:17 error 'mouseX' is not defined no-undef
1777:32 error 'mouseY' is not defined no-undef
1777:41 error 'desktop_height' is not defined no-undef
1778:13 error 'current_active_snap_zone' is not defined no-undef
1780:17 error 'mouseX' is not defined no-undef
1780:26 error 'desktop_width' is not defined no-undef
1780:48 error 'mouseY' is not defined no-undef
1780:65 error 'mouseY' is not defined no-undef
1780:74 error 'desktop_height' is not defined no-undef
1781:13 error 'current_active_snap_zone' is not defined no-undef
1783:18 error 'mouseX' is not defined no-undef
1783:27 error 'desktop_width' is not defined no-undef
1783:50 error 'mouseY' is not defined no-undef
1783:59 error 'toolbar_height' is not defined no-undef
1783:84 error 'mouseX' is not defined no-undef
1783:93 error 'desktop_width' is not defined no-undef
1783:115 error 'mouseY' is not defined no-undef
1784:13 error 'current_active_snap_zone' is not defined no-undef
1786:17 error 'mouseX' is not defined no-undef
1786:26 error 'desktop_width' is not defined no-undef
1786:48 error 'mouseY' is not defined no-undef
1786:58 error 'desktop_height' is not defined no-undef
1787:13 error 'current_active_snap_zone' is not defined no-undef
1789:17 error 'mouseY' is not defined no-undef
1789:26 error 'toolbar_height' is not defined no-undef
1789:49 error 'mouseX' is not defined no-undef
1789:66 error 'mouseX' is not defined no-undef
1789:75 error 'desktop_width' is not defined no-undef
1790:13 error 'current_active_snap_zone' is not defined no-undef
1793:13 error 'current_active_snap_zone' is not defined no-undef
1802:21 error 'mouseX' is not defined no-undef
1802:41 error 'mouseX' is not defined no-undef
1802:75 error 'mouseY' is not defined no-undef
1802:95 error 'mouseY' is not defined no-undef
1819:21 error 'mouseX' is not defined no-undef
1819:41 error 'mouseX' is not defined no-undef
1819:75 error 'mouseY' is not defined no-undef
1819:95 error 'mouseY' is not defined no-undef
1840:12 error 'mouseover_window' is not defined no-undef
1841:15 error 'mouseover_window' is not defined no-undef
1876:17 error 'upload_items' is not defined no-undef
1934:21 error 'logout' is not defined no-undef
1936:17 error 'logout' is not defined no-undef
1946:22 error 'gui_origin' is not defined no-undef
1951:50 error 'auth_token' is not defined no-undef
1958:18 error Empty block statement no-empty
A broadcast is a message sent to every running app that uses Puter.js.
Broadcasts have a name and a data payload, and are sent as a 'broadcast'
message.
Send a broadcast using:
`globalThis.services.get('broadcast').sendBroadcast(...)`
When doing so, you have the option to keep the broadcast message around,
so that it can be sent to any newly-launched apps. Sending another
broadcast with the same name will overwrite the previous one, so you
don't have to worry about flooding a new app with duplicates.