@intuitionrobotics/thunderstorm 0.47.59 → 1.0.1
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/LICENSE +3 -0
- package/dist/app-backend/api/v1/utils/version/_assert.d.ts +4 -0
- package/dist/app-backend/api/v1/utils/version/_assert.d.ts.map +1 -0
- package/dist/app-backend/api/v1/utils/version/_assert.js +23 -0
- package/dist/app-backend/api/v1/utils/version/_assert.js.map +1 -0
- package/dist/app-backend/api/v1/utils/version/assert.d.ts +10 -0
- package/dist/app-backend/api/v1/utils/version/assert.d.ts.map +1 -0
- package/dist/app-backend/api/v1/utils/version/assert.js +36 -0
- package/dist/app-backend/api/v1/utils/version/assert.js.map +1 -0
- package/{app-backend → dist/app-backend}/core/BaseStorm.d.ts +1 -0
- package/dist/app-backend/core/BaseStorm.d.ts.map +1 -0
- package/dist/app-backend/core/BaseStorm.js +12 -0
- package/dist/app-backend/core/BaseStorm.js.map +1 -0
- package/{app-backend → dist/app-backend}/core/Storm.d.ts +5 -4
- package/dist/app-backend/core/Storm.d.ts.map +1 -0
- package/dist/app-backend/core/Storm.js +92 -0
- package/dist/app-backend/core/Storm.js.map +1 -0
- package/{app-backend → dist/app-backend}/exceptions.d.ts +2 -1
- package/dist/app-backend/exceptions.d.ts.map +1 -0
- package/dist/app-backend/exceptions.js +24 -0
- package/dist/app-backend/exceptions.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/CleanupScheduler.d.ts +1 -0
- package/dist/app-backend/modules/CleanupScheduler.d.ts.map +1 -0
- package/dist/app-backend/modules/CleanupScheduler.js +28 -0
- package/dist/app-backend/modules/CleanupScheduler.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/FirestoreBackupScheduler.d.ts +3 -2
- package/dist/app-backend/modules/FirestoreBackupScheduler.d.ts.map +1 -0
- package/dist/app-backend/modules/FirestoreBackupScheduler.js +54 -0
- package/dist/app-backend/modules/FirestoreBackupScheduler.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/ForceUpgrade.d.ts +5 -4
- package/dist/app-backend/modules/ForceUpgrade.d.ts.map +1 -0
- package/dist/app-backend/modules/ForceUpgrade.js +84 -0
- package/dist/app-backend/modules/ForceUpgrade.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/SlackModule.d.ts +3 -2
- package/dist/app-backend/modules/SlackModule.d.ts.map +1 -0
- package/dist/app-backend/modules/SlackModule.js +58 -0
- package/dist/app-backend/modules/SlackModule.js.map +1 -0
- package/dist/app-backend/modules/_imports.d.ts +11 -0
- package/dist/app-backend/modules/_imports.d.ts.map +1 -0
- package/dist/app-backend/modules/_imports.js +31 -0
- package/dist/app-backend/modules/_imports.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/http/AxiosHttpModule.d.ts +5 -4
- package/dist/app-backend/modules/http/AxiosHttpModule.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/modules/http/AxiosHttpModule.js +47 -55
- package/dist/app-backend/modules/http/AxiosHttpModule.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/http/types.d.ts +2 -1
- package/dist/app-backend/modules/http/types.d.ts.map +1 -0
- package/dist/app-backend/modules/http/types.js +2 -0
- package/{app-backend → dist/app-backend}/modules/http/types.js.map +1 -1
- package/{app-backend → dist/app-backend}/modules/proxy/RemoteProxy.d.ts +6 -5
- package/dist/app-backend/modules/proxy/RemoteProxy.d.ts.map +1 -0
- package/dist/app-backend/modules/proxy/RemoteProxy.js +88 -0
- package/dist/app-backend/modules/proxy/RemoteProxy.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/proxy/RemoteProxyCaller.d.ts +3 -2
- package/dist/app-backend/modules/proxy/RemoteProxyCaller.d.ts.map +1 -0
- package/dist/app-backend/modules/proxy/RemoteProxyCaller.js +109 -0
- package/dist/app-backend/modules/proxy/RemoteProxyCaller.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/server/HttpServer.d.ts +12 -9
- package/dist/app-backend/modules/server/HttpServer.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/modules/server/HttpServer.js +47 -67
- package/dist/app-backend/modules/server/HttpServer.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/server/server-api.d.ts +8 -7
- package/dist/app-backend/modules/server/server-api.d.ts.map +1 -0
- package/dist/app-backend/modules/server/server-api.js +346 -0
- package/dist/app-backend/modules/server/server-api.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/server/server-errors.d.ts +4 -3
- package/dist/app-backend/modules/server/server-errors.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/modules/server/server-errors.js +15 -24
- package/dist/app-backend/modules/server/server-errors.js.map +1 -0
- package/{app-backend → dist/app-backend}/utils/LogClient_File.d.ts +1 -0
- package/dist/app-backend/utils/LogClient_File.d.ts.map +1 -0
- package/{app-backend → dist/app-backend}/utils/LogClient_File.js +6 -7
- package/dist/app-backend/utils/LogClient_File.js.map +1 -0
- package/{app-backend → dist/app-backend}/utils/file.d.ts +1 -0
- package/dist/app-backend/utils/file.d.ts.map +1 -0
- package/{app-backend/utils/types.js → dist/app-backend/utils/file.js} +10 -6
- package/dist/app-backend/utils/file.js.map +1 -0
- package/dist/app-backend/utils/promisify-request.d.ts +3 -0
- package/dist/app-backend/utils/promisify-request.d.ts.map +1 -0
- package/dist/app-backend/utils/promisify-request.js +25 -0
- package/dist/app-backend/utils/promisify-request.js.map +1 -0
- package/{app-backend → dist/app-backend}/utils/to-be-removed.d.ts +1 -0
- package/dist/app-backend/utils/to-be-removed.d.ts.map +1 -0
- package/dist/app-backend/utils/to-be-removed.js +24 -0
- package/dist/app-backend/utils/to-be-removed.js.map +1 -0
- package/{app-backend → dist/app-backend}/utils/types.d.ts +1 -0
- package/dist/app-backend/utils/types.d.ts.map +1 -0
- package/dist/app-backend/utils/types.js +24 -0
- package/dist/app-backend/utils/types.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/ActionButton.d.ts +1 -0
- package/dist/app-frontend/components/ActionButton.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/ActionButton.js +2 -6
- package/dist/app-frontend/components/ActionButton.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/FilterInput.d.ts +3 -2
- package/dist/app-frontend/components/FilterInput.d.ts.map +1 -0
- package/dist/app-frontend/components/FilterInput.js +62 -0
- package/dist/app-frontend/components/FilterInput.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/GenericSelect.d.ts +2 -1
- package/dist/app-frontend/components/GenericSelect.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/GenericSelect.js +8 -9
- package/dist/app-frontend/components/GenericSelect.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/GenericTabs.d.ts +1 -0
- package/dist/app-frontend/components/GenericTabs.d.ts.map +1 -0
- package/dist/app-frontend/components/GenericTabs.js +7 -0
- package/dist/app-frontend/components/GenericTabs.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/Overlay.d.ts +1 -0
- package/dist/app-frontend/components/Overlay.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/Overlay.js +6 -9
- package/dist/app-frontend/components/Overlay.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_Input.d.ts +2 -1
- package/dist/app-frontend/components/TS_Input.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_Input.js +37 -36
- package/dist/app-frontend/components/TS_Input.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_Table.d.ts +4 -3
- package/dist/app-frontend/components/TS_Table.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_Table.js +18 -23
- package/dist/app-frontend/components/TS_Table.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_TextArea.d.ts +3 -2
- package/dist/app-frontend/components/TS_TextArea.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/TS_TextArea.js +16 -19
- package/dist/app-frontend/components/TS_TextArea.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/Tabs.d.ts +2 -1
- package/dist/app-frontend/components/Tabs.d.ts.map +1 -0
- package/dist/app-frontend/components/Tabs.js +30 -0
- package/dist/app-frontend/components/Tabs.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/adapter/Adapter.d.ts +9 -8
- package/dist/app-frontend/components/adapter/Adapter.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/adapter/Adapter.js +36 -39
- package/dist/app-frontend/components/adapter/Adapter.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/adapter/BaseRenderer.d.ts +2 -1
- package/dist/app-frontend/components/adapter/BaseRenderer.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/adapter/BaseRenderer.js +4 -8
- package/dist/app-frontend/components/adapter/BaseRenderer.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/checkbox/TS_Checkbox.d.ts +2 -1
- package/dist/app-frontend/components/checkbox/TS_Checkbox.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/checkbox/TS_Checkbox.js +4 -10
- package/dist/app-frontend/components/checkbox/TS_Checkbox.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/checkbox/TS_CheckboxField.d.ts +2 -1
- package/dist/app-frontend/components/checkbox/TS_CheckboxField.d.ts.map +1 -0
- package/dist/app-frontend/components/checkbox/TS_CheckboxField.js +19 -0
- package/dist/app-frontend/components/checkbox/TS_CheckboxField.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/form/Form.d.ts +3 -2
- package/dist/app-frontend/components/form/Form.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/form/Form.js +12 -16
- package/dist/app-frontend/components/form/Form.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/form/types.d.ts +3 -2
- package/dist/app-frontend/components/form/types.d.ts.map +1 -0
- package/{app-frontend/components → dist/app-frontend/components/form}/types.js +2 -2
- package/{app-frontend → dist/app-frontend}/components/form/types.js.map +1 -1
- package/{app-frontend → dist/app-frontend}/components/playground/Playground.d.ts +1 -0
- package/dist/app-frontend/components/playground/Playground.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/playground/Playground.js +9 -13
- package/dist/app-frontend/components/playground/Playground.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/MenuComponent.d.ts +4 -3
- package/dist/app-frontend/components/tree/MenuComponent.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/MenuComponent.js +9 -11
- package/dist/app-frontend/components/tree/MenuComponent.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/MultiTypeAdaptor.d.ts +3 -2
- package/dist/app-frontend/components/tree/MultiTypeAdaptor.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/MultiTypeAdaptor.js +7 -13
- package/dist/app-frontend/components/tree/MultiTypeAdaptor.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/SimpleTreeNodeRenderer.d.ts +3 -2
- package/dist/app-frontend/components/tree/SimpleTreeNodeRenderer.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/SimpleTreeNodeRenderer.js +6 -11
- package/dist/app-frontend/components/tree/SimpleTreeNodeRenderer.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/Tree.d.ts +4 -3
- package/dist/app-frontend/components/tree/Tree.d.ts.map +1 -0
- package/dist/app-frontend/components/tree/Tree.js +287 -0
- package/dist/app-frontend/components/tree/Tree.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/tree/types.d.ts +2 -1
- package/dist/app-frontend/components/tree/types.d.ts.map +1 -0
- package/dist/app-frontend/components/tree/types.js +23 -0
- package/{app-frontend → dist/app-frontend}/components/tree/types.js.map +1 -1
- package/{app-frontend → dist/app-frontend}/components/treeicons.d.ts +1 -0
- package/dist/app-frontend/components/treeicons.d.ts.map +1 -0
- package/dist/app-frontend/components/treeicons.js +6 -0
- package/dist/app-frontend/components/treeicons.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/components/types.d.ts +1 -0
- package/dist/app-frontend/components/types.d.ts.map +1 -0
- package/{app-frontend/components/form → dist/app-frontend/components}/types.js +1 -2
- package/{app-frontend → dist/app-frontend}/components/types.js.map +1 -1
- package/{app-frontend → dist/app-frontend}/core/AbstractThunder.d.ts +3 -2
- package/dist/app-frontend/core/AbstractThunder.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/AbstractThunder.js +14 -17
- package/dist/app-frontend/core/AbstractThunder.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/AppPage.d.ts +3 -2
- package/dist/app-frontend/core/AppPage.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/AppPage.js +8 -11
- package/dist/app-frontend/core/AppPage.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/AppWrapper.d.ts +2 -1
- package/dist/app-frontend/core/AppWrapper.d.ts.map +1 -0
- package/dist/app-frontend/core/AppWrapper.js +22 -0
- package/dist/app-frontend/core/AppWrapper.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/BaseComponent.d.ts +3 -2
- package/dist/app-frontend/core/BaseComponent.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/BaseComponent.js +33 -33
- package/dist/app-frontend/core/BaseComponent.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/SimpleScriptInjector.d.ts +1 -0
- package/dist/app-frontend/core/SimpleScriptInjector.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/SimpleScriptInjector.js +5 -9
- package/dist/app-frontend/core/SimpleScriptInjector.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/Thunder.d.ts +4 -3
- package/dist/app-frontend/core/Thunder.d.ts.map +1 -0
- package/dist/app-frontend/core/Thunder.js +88 -0
- package/dist/app-frontend/core/Thunder.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/core/thunder-dispatcher.d.ts +2 -1
- package/dist/app-frontend/core/thunder-dispatcher.d.ts.map +1 -0
- package/dist/app-frontend/core/thunder-dispatcher.js +19 -0
- package/dist/app-frontend/core/thunder-dispatcher.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/ConnectivityModule.d.ts +1 -0
- package/dist/app-frontend/modules/ConnectivityModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/ConnectivityModule.js +23 -0
- package/dist/app-frontend/modules/ConnectivityModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/ForceUpgrade.d.ts +2 -1
- package/dist/app-frontend/modules/ForceUpgrade.d.ts.map +1 -0
- package/dist/app-frontend/modules/ForceUpgrade.js +46 -0
- package/dist/app-frontend/modules/ForceUpgrade.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/HistoryModule.d.ts +3 -2
- package/dist/app-frontend/modules/HistoryModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/HistoryModule.js +34 -36
- package/dist/app-frontend/modules/HistoryModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/ResourcesModule.d.ts +1 -0
- package/dist/app-frontend/modules/ResourcesModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/ResourcesModule.js +17 -0
- package/dist/app-frontend/modules/ResourcesModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/StorageModule.d.ts +2 -1
- package/dist/app-frontend/modules/StorageModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/StorageModule.js +24 -27
- package/dist/app-frontend/modules/StorageModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/ThunderstormModule.d.ts +1 -0
- package/dist/app-frontend/modules/ThunderstormModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/ThunderstormModule.js +3 -6
- package/dist/app-frontend/modules/ThunderstormModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/component-loader/ReactEntryComponentInjector.d.ts +3 -2
- package/dist/app-frontend/modules/component-loader/ReactEntryComponentInjector.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/component-loader/ReactEntryComponentInjector.js +18 -21
- package/dist/app-frontend/modules/component-loader/ReactEntryComponentInjector.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/component-loader/entry-component-loading-module.d.ts +1 -0
- package/dist/app-frontend/modules/component-loader/entry-component-loading-module.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/component-loader/entry-component-loading-module.js +10 -14
- package/dist/app-frontend/modules/component-loader/entry-component-loading-module.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/dialog/Dialog.d.ts +4 -3
- package/dist/app-frontend/modules/dialog/Dialog.d.ts.map +1 -0
- package/dist/app-frontend/modules/dialog/Dialog.js +154 -0
- package/dist/app-frontend/modules/dialog/Dialog.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/dialog/DialogModule.d.ts +3 -2
- package/dist/app-frontend/modules/dialog/DialogModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/dialog/DialogModule.js +28 -27
- package/dist/app-frontend/modules/dialog/DialogModule.js.map +1 -0
- package/dist/app-frontend/modules/http/HttpClient.d.ts +2 -0
- package/dist/app-frontend/modules/http/HttpClient.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/http/HttpClient.js +3 -3
- package/{app-frontend → dist/app-frontend}/modules/http/HttpClient.js.map +1 -1
- package/{app-frontend → dist/app-frontend}/modules/http/XhrHttpModule.d.ts +4 -3
- package/dist/app-frontend/modules/http/XhrHttpModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/http/XhrHttpModule.js +30 -32
- package/dist/app-frontend/modules/http/XhrHttpModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/locale/LocaleModule.d.ts +2 -1
- package/dist/app-frontend/modules/locale/LocaleModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/locale/LocaleModule.js +42 -0
- package/dist/app-frontend/modules/locale/LocaleModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/locale/types.d.ts +1 -0
- package/dist/app-frontend/modules/locale/types.d.ts.map +1 -0
- package/dist/app-frontend/modules/locale/types.js +2 -0
- package/{app-frontend → dist/app-frontend}/modules/menu/MenuAndButton.d.ts +6 -5
- package/dist/app-frontend/modules/menu/MenuAndButton.d.ts.map +1 -0
- package/dist/app-frontend/modules/menu/MenuAndButton.js +38 -0
- package/dist/app-frontend/modules/menu/MenuAndButton.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/menu/MenuModule.d.ts +7 -6
- package/dist/app-frontend/modules/menu/MenuModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/menu/MenuModule.js +60 -0
- package/dist/app-frontend/modules/menu/MenuModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/menu/PopupMenu.d.ts +4 -3
- package/dist/app-frontend/modules/menu/PopupMenu.d.ts.map +1 -0
- package/dist/app-frontend/modules/menu/PopupMenu.js +91 -0
- package/dist/app-frontend/modules/menu/PopupMenu.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/routing/RoutingModule.d.ts +2 -1
- package/dist/app-frontend/modules/routing/RoutingModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/routing/RoutingModule.js +24 -24
- package/dist/app-frontend/modules/routing/RoutingModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/routing/route.d.ts +1 -0
- package/dist/app-frontend/modules/routing/route.d.ts.map +1 -0
- package/dist/app-frontend/modules/routing/route.js +68 -0
- package/dist/app-frontend/modules/routing/route.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/toaster/BaseToaster.d.ts +3 -2
- package/dist/app-frontend/modules/toaster/BaseToaster.d.ts.map +1 -0
- package/dist/app-frontend/modules/toaster/BaseToaster.js +52 -0
- package/dist/app-frontend/modules/toaster/BaseToaster.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/toaster/Toaster.d.ts +3 -2
- package/dist/app-frontend/modules/toaster/Toaster.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/toaster/Toaster.js +6 -8
- package/dist/app-frontend/modules/toaster/Toaster.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/toaster/ToasterModule.d.ts +4 -3
- package/dist/app-frontend/modules/toaster/ToasterModule.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/toaster/ToasterModule.js +50 -56
- package/dist/app-frontend/modules/toaster/ToasterModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/tooltip/Tooltip.d.ts +4 -3
- package/dist/app-frontend/modules/tooltip/Tooltip.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/tooltip/Tooltip.js +21 -23
- package/dist/app-frontend/modules/tooltip/Tooltip.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/tooltip/TooltipModule.d.ts +2 -1
- package/dist/app-frontend/modules/tooltip/TooltipModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/tooltip/TooltipModule.js +71 -0
- package/dist/app-frontend/modules/tooltip/TooltipModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/tools/KeyboardListener.d.ts +1 -0
- package/dist/app-frontend/tools/KeyboardListener.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/tools/KeyboardListener.js +16 -22
- package/dist/app-frontend/tools/KeyboardListener.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/tools/Stylable.d.ts +2 -1
- package/dist/app-frontend/tools/Stylable.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/tools/Stylable.js +5 -6
- package/dist/app-frontend/tools/Stylable.js.map +1 -0
- package/dist/app-frontend/types/renderer-map.d.ts +2 -0
- package/dist/app-frontend/types/renderer-map.d.ts.map +1 -0
- package/{app-frontend → dist/app-frontend}/types/renderer-map.js +1 -1
- package/{app-frontend → dist/app-frontend}/types/renderer-map.js.map +1 -1
- package/{app-frontend → dist/app-frontend}/utils/tools.d.ts +2 -1
- package/dist/app-frontend/utils/tools.d.ts.map +1 -0
- package/dist/app-frontend/utils/tools.js +28 -0
- package/dist/app-frontend/utils/tools.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/widgets/FieldEditor.d.ts +3 -2
- package/dist/app-frontend/widgets/FieldEditor.d.ts.map +1 -0
- package/dist/app-frontend/widgets/FieldEditor.js +22 -0
- package/dist/app-frontend/widgets/FieldEditor.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/widgets/FieldEditorClick.d.ts +4 -3
- package/dist/app-frontend/widgets/FieldEditorClick.d.ts.map +1 -0
- package/dist/app-frontend/widgets/FieldEditorClick.js +44 -0
- package/dist/app-frontend/widgets/FieldEditorClick.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/widgets/FieldEditorWithButtons.d.ts +4 -3
- package/dist/app-frontend/widgets/FieldEditorWithButtons.d.ts.map +1 -0
- package/dist/app-frontend/widgets/FieldEditorWithButtons.js +51 -0
- package/dist/app-frontend/widgets/FieldEditorWithButtons.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/widgets/click-to-drag/ClickToDrag.d.ts +2 -1
- package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.d.ts.map +1 -0
- package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.js +35 -0
- package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/widgets/click-to-drag/OverlayWithDocumentListener.d.ts +2 -1
- package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.d.ts.map +1 -0
- package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js +30 -0
- package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js.map +1 -0
- package/dist/backend-test.d.ts +2 -0
- package/dist/backend-test.d.ts.map +1 -0
- package/{app-frontend/components/tree/types.js → dist/backend-test.js} +2 -3
- package/dist/backend-test.js.map +1 -0
- package/dist/backend.d.ts +18 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +38 -0
- package/dist/backend.js.map +1 -0
- package/dist/frontend.d.ts +53 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +71 -0
- package/dist/frontend.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/{app-backend/api/v1/utils/version/_assert.js → dist/index.js} +7 -5
- package/dist/index.js.map +1 -0
- package/{shared → dist/shared}/BaseHttpModule.d.ts +4 -3
- package/dist/shared/BaseHttpModule.d.ts.map +1 -0
- package/dist/shared/BaseHttpModule.js +89 -0
- package/dist/shared/BaseHttpModule.js.map +1 -0
- package/{shared → dist/shared}/BaseHttpRequest.d.ts +3 -2
- package/dist/shared/BaseHttpRequest.d.ts.map +1 -0
- package/{shared → dist/shared}/BaseHttpRequest.js +82 -85
- package/dist/shared/BaseHttpRequest.js.map +1 -0
- package/{shared → dist/shared}/consts.d.ts +1 -0
- package/dist/shared/consts.d.ts.map +1 -0
- package/dist/shared/consts.js +25 -0
- package/dist/shared/consts.js.map +1 -0
- package/{shared → dist/shared}/force-upgrade.d.ts +2 -1
- package/dist/shared/force-upgrade.d.ts.map +1 -0
- package/dist/shared/force-upgrade.js +24 -0
- package/dist/shared/force-upgrade.js.map +1 -0
- package/{shared → dist/shared}/request-types.d.ts +3 -2
- package/dist/shared/request-types.d.ts.map +1 -0
- package/{shared → dist/shared}/request-types.js +4 -6
- package/dist/shared/request-types.js.map +1 -0
- package/{shared → dist/shared}/types.d.ts +1 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/{shared → dist/shared}/types.js +2 -5
- package/dist/shared/types.js.map +1 -0
- package/{test-backend → dist/test-backend}/StormTester.d.ts +2 -1
- package/dist/test-backend/StormTester.d.ts.map +1 -0
- package/dist/test-backend/StormTester.js +78 -0
- package/dist/test-backend/StormTester.js.map +1 -0
- package/dist/test-frontend/ThunderTester.d.ts +2 -0
- package/dist/test-frontend/ThunderTester.d.ts.map +1 -0
- package/{test-frontend → dist/test-frontend}/ThunderTester.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +72 -14
- package/app-backend/api/v1/utils/version/_assert.d.ts +0 -1
- package/app-backend/api/v1/utils/version/_assert.js.map +0 -1
- package/app-backend/api/v1/utils/version/assert.d.ts +0 -1
- package/app-backend/api/v1/utils/version/assert.js +0 -48
- package/app-backend/api/v1/utils/version/assert.js.map +0 -1
- package/app-backend/core/BaseStorm.js +0 -19
- package/app-backend/core/BaseStorm.js.map +0 -1
- package/app-backend/core/Storm.js +0 -89
- package/app-backend/core/Storm.js.map +0 -1
- package/app-backend/exceptions.js +0 -26
- package/app-backend/exceptions.js.map +0 -1
- package/app-backend/modules/CleanupScheduler.js +0 -41
- package/app-backend/modules/CleanupScheduler.js.map +0 -1
- package/app-backend/modules/FirestoreBackupScheduler.js +0 -64
- package/app-backend/modules/FirestoreBackupScheduler.js.map +0 -1
- package/app-backend/modules/ForceUpgrade.js +0 -98
- package/app-backend/modules/ForceUpgrade.js.map +0 -1
- package/app-backend/modules/SlackModule.js +0 -74
- package/app-backend/modules/SlackModule.js.map +0 -1
- package/app-backend/modules/_imports.d.ts +0 -10
- package/app-backend/modules/_imports.js +0 -47
- package/app-backend/modules/_imports.js.map +0 -1
- package/app-backend/modules/http/AxiosHttpModule.js.map +0 -1
- package/app-backend/modules/http/types.js +0 -3
- package/app-backend/modules/proxy/RemoteProxy.js +0 -101
- package/app-backend/modules/proxy/RemoteProxy.js.map +0 -1
- package/app-backend/modules/proxy/RemoteProxyCaller.js +0 -110
- package/app-backend/modules/proxy/RemoteProxyCaller.js.map +0 -1
- package/app-backend/modules/server/HttpServer.js.map +0 -1
- package/app-backend/modules/server/server-api.js +0 -351
- package/app-backend/modules/server/server-api.js.map +0 -1
- package/app-backend/modules/server/server-errors.js.map +0 -1
- package/app-backend/utils/LogClient_File.js.map +0 -1
- package/app-backend/utils/file.js +0 -47
- package/app-backend/utils/file.js.map +0 -1
- package/app-backend/utils/promisify-request.d.ts +0 -2
- package/app-backend/utils/promisify-request.js +0 -39
- package/app-backend/utils/promisify-request.js.map +0 -1
- package/app-backend/utils/to-be-removed.js +0 -28
- package/app-backend/utils/to-be-removed.js.map +0 -1
- package/app-backend/utils/types.js.map +0 -1
- package/app-frontend/components/ActionButton.js.map +0 -1
- package/app-frontend/components/FilterInput.js +0 -63
- package/app-frontend/components/FilterInput.js.map +0 -1
- package/app-frontend/components/GenericSelect.js.map +0 -1
- package/app-frontend/components/GenericTabs.js +0 -11
- package/app-frontend/components/GenericTabs.js.map +0 -1
- package/app-frontend/components/Overlay.js.map +0 -1
- package/app-frontend/components/TS_Input.js.map +0 -1
- package/app-frontend/components/TS_Table.js.map +0 -1
- package/app-frontend/components/TS_TextArea.js.map +0 -1
- package/app-frontend/components/Tabs.js +0 -32
- package/app-frontend/components/Tabs.js.map +0 -1
- package/app-frontend/components/adapter/Adapter.js.map +0 -1
- package/app-frontend/components/adapter/BaseRenderer.js.map +0 -1
- package/app-frontend/components/checkbox/TS_Checkbox.js.map +0 -1
- package/app-frontend/components/checkbox/TS_CheckboxField.js +0 -26
- package/app-frontend/components/checkbox/TS_CheckboxField.js.map +0 -1
- package/app-frontend/components/form/Form.js.map +0 -1
- package/app-frontend/components/playground/Playground.js.map +0 -1
- package/app-frontend/components/tree/MenuComponent.js.map +0 -1
- package/app-frontend/components/tree/MultiTypeAdaptor.js.map +0 -1
- package/app-frontend/components/tree/SimpleTreeNodeRenderer.js.map +0 -1
- package/app-frontend/components/tree/Tree.js +0 -274
- package/app-frontend/components/tree/Tree.js.map +0 -1
- package/app-frontend/components/treeicons.js +0 -11
- package/app-frontend/components/treeicons.js.map +0 -1
- package/app-frontend/core/AbstractThunder.js.map +0 -1
- package/app-frontend/core/AppPage.js.map +0 -1
- package/app-frontend/core/AppWrapper.js +0 -27
- package/app-frontend/core/AppWrapper.js.map +0 -1
- package/app-frontend/core/BaseComponent.js.map +0 -1
- package/app-frontend/core/SimpleScriptInjector.js.map +0 -1
- package/app-frontend/core/Thunder.js +0 -92
- package/app-frontend/core/Thunder.js.map +0 -1
- package/app-frontend/core/thunder-dispatcher.js +0 -32
- package/app-frontend/core/thunder-dispatcher.js.map +0 -1
- package/app-frontend/modules/ConnectivityModule.js +0 -25
- package/app-frontend/modules/ConnectivityModule.js.map +0 -1
- package/app-frontend/modules/ForceUpgrade.js +0 -49
- package/app-frontend/modules/ForceUpgrade.js.map +0 -1
- package/app-frontend/modules/HistoryModule.js.map +0 -1
- package/app-frontend/modules/ResourcesModule.js +0 -19
- package/app-frontend/modules/ResourcesModule.js.map +0 -1
- package/app-frontend/modules/StorageModule.js.map +0 -1
- package/app-frontend/modules/ThunderstormModule.js.map +0 -1
- package/app-frontend/modules/component-loader/ReactEntryComponentInjector.js.map +0 -1
- package/app-frontend/modules/component-loader/entry-component-loading-module.js.map +0 -1
- package/app-frontend/modules/dialog/Dialog.js +0 -163
- package/app-frontend/modules/dialog/Dialog.js.map +0 -1
- package/app-frontend/modules/dialog/DialogModule.js.map +0 -1
- package/app-frontend/modules/http/HttpClient.d.ts +0 -0
- package/app-frontend/modules/http/XhrHttpModule.js.map +0 -1
- package/app-frontend/modules/locale/LocaleModule.js +0 -43
- package/app-frontend/modules/locale/LocaleModule.js.map +0 -1
- package/app-frontend/modules/locale/types.js +0 -3
- package/app-frontend/modules/menu/MenuAndButton.js +0 -40
- package/app-frontend/modules/menu/MenuAndButton.js.map +0 -1
- package/app-frontend/modules/menu/MenuModule.js +0 -57
- package/app-frontend/modules/menu/MenuModule.js.map +0 -1
- package/app-frontend/modules/menu/PopupMenu.js +0 -94
- package/app-frontend/modules/menu/PopupMenu.js.map +0 -1
- package/app-frontend/modules/routing/RoutingModule.js.map +0 -1
- package/app-frontend/modules/routing/route.js +0 -69
- package/app-frontend/modules/routing/route.js.map +0 -1
- package/app-frontend/modules/toaster/BaseToaster.js +0 -56
- package/app-frontend/modules/toaster/BaseToaster.js.map +0 -1
- package/app-frontend/modules/toaster/Toaster.js.map +0 -1
- package/app-frontend/modules/toaster/ToasterModule.js.map +0 -1
- package/app-frontend/modules/tooltip/Tooltip.js.map +0 -1
- package/app-frontend/modules/tooltip/TooltipModule.js +0 -74
- package/app-frontend/modules/tooltip/TooltipModule.js.map +0 -1
- package/app-frontend/tools/KeyboardListener.js.map +0 -1
- package/app-frontend/tools/Stylable.js.map +0 -1
- package/app-frontend/types/renderer-map.d.ts +0 -0
- package/app-frontend/utils/tools.js +0 -32
- package/app-frontend/utils/tools.js.map +0 -1
- package/app-frontend/widgets/FieldEditor.js +0 -25
- package/app-frontend/widgets/FieldEditor.js.map +0 -1
- package/app-frontend/widgets/FieldEditorClick.js +0 -48
- package/app-frontend/widgets/FieldEditorClick.js.map +0 -1
- package/app-frontend/widgets/FieldEditorWithButtons.js +0 -55
- package/app-frontend/widgets/FieldEditorWithButtons.js.map +0 -1
- package/app-frontend/widgets/click-to-drag/ClickToDrag.js +0 -39
- package/app-frontend/widgets/click-to-drag/ClickToDrag.js.map +0 -1
- package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js +0 -34
- package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js.map +0 -1
- package/backend-test.d.ts +0 -1
- package/backend-test.js +0 -38
- package/backend-test.js.map +0 -1
- package/backend.d.ts +0 -17
- package/backend.js +0 -54
- package/backend.js.map +0 -1
- package/frontend.d.ts +0 -53
- package/frontend.js +0 -90
- package/frontend.js.map +0 -1
- package/index.d.ts +0 -6
- package/index.js +0 -43
- package/index.js.map +0 -1
- package/shared/BaseHttpModule.js +0 -66
- package/shared/BaseHttpModule.js.map +0 -1
- package/shared/BaseHttpRequest.js.map +0 -1
- package/shared/consts.js +0 -28
- package/shared/consts.js.map +0 -1
- package/shared/force-upgrade.js +0 -26
- package/shared/force-upgrade.js.map +0 -1
- package/shared/request-types.js.map +0 -1
- package/shared/types.js.map +0 -1
- package/test-backend/StormTester.js +0 -90
- package/test-backend/StormTester.js.map +0 -1
- package/test-frontend/ThunderTester.d.ts +0 -0
- /package/{app-frontend → dist/app-frontend}/modules/locale/types.js.map +0 -0
- /package/{test-frontend → dist/test-frontend}/ThunderTester.js.map +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_assert.d.ts","sourceRoot":"","sources":["../../../../../../src/main/app-backend/api/v1/utils/version/_assert.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;;AAEvE,wBAAkD"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
import { RouteResolver } from "../../../../modules/server/HttpServer.js";
|
|
22
|
+
export default new RouteResolver(import.meta.url);
|
|
23
|
+
//# sourceMappingURL=_assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_assert.js","sourceRoot":"","sources":["../../../../../../src/main/app-backend/api/v1/utils/version/_assert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AAEvE,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ApiBinder_AssertAppVersion } from "../../../../../shared/force-upgrade.js";
|
|
2
|
+
import { ApiResponse, ServerApi } from "../../../../modules/server/server-api.js";
|
|
3
|
+
import { type ExpressRequest } from "../../../../utils/types.js";
|
|
4
|
+
declare class ServerApi_AssertAppVersion extends ServerApi<ApiBinder_AssertAppVersion> {
|
|
5
|
+
constructor();
|
|
6
|
+
protected process(request: ExpressRequest, _response: ApiResponse, _queryParams: {}, _body: void): Promise<import("../../../../../shared/force-upgrade.js").UpgradeRequired>;
|
|
7
|
+
}
|
|
8
|
+
declare const _default: ServerApi_AssertAppVersion;
|
|
9
|
+
export default _default;
|
|
10
|
+
//# sourceMappingURL=assert.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.d.ts","sourceRoot":"","sources":["../../../../../../src/main/app-backend/api/v1/utils/version/assert.ts"],"names":[],"mappings":"AAsBA,OAAO,EACN,KAAK,0BAA0B,EAG/B,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,WAAW,EACX,SAAS,EACT,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,4BAA4B,CAAC;AAG/D,cAAM,0BACL,SAAQ,SAAS,CAAC,0BAA0B,CAAC;;cAO7B,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI;CAGtG;;AAED,wBAAgD"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
import { HeaderKey_PlatformName, HeaderKey_PlatformVersion } from "../../../../../shared/force-upgrade.js";
|
|
22
|
+
import { ApiResponse, ServerApi } from "../../../../modules/server/server-api.js";
|
|
23
|
+
import { HttpMethod } from "../../../../../shared/types.js";
|
|
24
|
+
import { ForceUpgrade, } from "../../../../modules/ForceUpgrade.js";
|
|
25
|
+
import {} from "../../../../utils/types.js";
|
|
26
|
+
class ServerApi_AssertAppVersion extends ServerApi {
|
|
27
|
+
constructor() {
|
|
28
|
+
super(HttpMethod.GET, "assert");
|
|
29
|
+
this.addHeaderToLog(HeaderKey_PlatformVersion, HeaderKey_PlatformName);
|
|
30
|
+
}
|
|
31
|
+
async process(request, _response, _queryParams, _body) {
|
|
32
|
+
return ForceUpgrade.compareVersion(request);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export default new ServerApi_AssertAppVersion();
|
|
36
|
+
//# sourceMappingURL=assert.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assert.js","sourceRoot":"","sources":["../../../../../../src/main/app-backend/api/v1/utils/version/assert.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,EAEN,sBAAsB,EACtB,yBAAyB,EACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACN,WAAW,EACX,SAAS,EACT,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAAC,UAAU,EAAC,MAAM,gCAAgC,CAAC;AAC1D,OAAO,EAAC,YAAY,GAAE,MAAM,qCAAqC,CAAC;AAClE,OAAO,EAAqB,MAAM,4BAA4B,CAAC;AAG/D,MAAM,0BACL,SAAQ,SAAqC;IAE7C;QACC,KAAK,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAChC,IAAI,CAAC,cAAc,CAAC,yBAAyB,EAAE,sBAAsB,CAAC,CAAC;IACxE,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,SAAsB,EAAE,YAAgB,EAAE,KAAW;QACrG,OAAO,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACD;AAED,eAAe,IAAI,0BAA0B,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseStorm.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/core/BaseStorm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,8BAAsB,SAClB,SAAQ,aAAa;IACrB,OAAO,CAAC,MAAM,CAAiB;IAC/B,cAAc,CAAC,MAAM,EAAE,MAAM;IAK7B,cAAc;CAGjB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ModuleManager } from "@intuitionrobotics/ts-common";
|
|
2
|
+
export class BaseStorm extends ModuleManager {
|
|
3
|
+
envKey = "dev";
|
|
4
|
+
setEnvironment(envKey) {
|
|
5
|
+
this.envKey = envKey;
|
|
6
|
+
return this;
|
|
7
|
+
}
|
|
8
|
+
getEnvironment() {
|
|
9
|
+
return this.envKey;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=BaseStorm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseStorm.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/BaseStorm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,8BAA8B,CAAC;AAE3D,MAAM,OAAgB,SAClB,SAAQ,aAAa;IACb,MAAM,GAAW,KAAK,CAAC;IAC/B,cAAc,CAAC,MAAc;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,cAAc;QACV,OAAO,IAAI,CAAC,MAAM,CAAC;IACvB,CAAC;CACJ"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { LogClient } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { HttpErrorHandler, RouteResolver } from "../modules/server/HttpServer";
|
|
3
|
-
import { ServerApi } from "../modules/server/server-api";
|
|
4
|
-
import { BaseStorm } from "./BaseStorm";
|
|
5
|
-
import { Express } from "express";
|
|
2
|
+
import { type HttpErrorHandler, RouteResolver } from "../modules/server/HttpServer.js";
|
|
3
|
+
import { ServerApi } from "../modules/server/server-api.js";
|
|
4
|
+
import { BaseStorm } from "./BaseStorm.js";
|
|
5
|
+
import { type Express } from "express";
|
|
6
6
|
export declare class Storm extends BaseStorm {
|
|
7
7
|
private routeResolver?;
|
|
8
8
|
private initialPath;
|
|
@@ -27,3 +27,4 @@ export declare class Storm extends BaseStorm {
|
|
|
27
27
|
setInitialRoutePath(initialPath: string): this;
|
|
28
28
|
build(onStarted?: () => Promise<void>): any;
|
|
29
29
|
}
|
|
30
|
+
//# sourceMappingURL=Storm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storm.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/core/Storm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,SAAS,EAAiD,MAAM,8BAA8B,CAAC;AAEjH,OAAO,EAAC,KAAK,gBAAgB,EAAoB,aAAa,EAAC,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,OAAO,EAAC,KAAK,OAAO,EAAC,MAAM,SAAS,CAAC;AAIrC,qBAAa,KACT,SAAQ,SAAS;IACjB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,WAAW,CAAU;IAC7B,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,IAAI,CAAwB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,OAAO,CAAC,CAAsB;IAEtC,oBAAoB,EAAE,gBAAgB,CAAoC;;IAOnE,uBAAuB,CAAC,oBAAoB,EAAE,gBAAgB;IAK9D,MAAM,CAAC,GAAG,EAAE,OAAO;IAKnB,YAAY,CAAC,SAAS,EAAE,SAAS;IAKjC,YAAY;IAIZ,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAK5C,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;IAK/C,MAAM,CAAC,WAAW,IAAI,KAAK;IAI3B,IAAI;IASJ,YAAY,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC,EAAE;IAKtC,uBAAuB,CAAC,aAAa,EAAE,aAAa;IAKpD,mBAAmB,CAAC,WAAW,EAAE,MAAM;IAKvC,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;CA4BxC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { BeLogged, LogClient, LogClient_Function, LogClient_Terminal, Module } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { Firebase_ExpressFunction, FirebaseFunction } from '@intuitionrobotics/firebase/backend-functions';
|
|
3
|
+
import { HttpServer_Class, RouteResolver } from "../modules/server/HttpServer.js";
|
|
4
|
+
import { ServerApi } from "../modules/server/server-api.js";
|
|
5
|
+
import { BaseStorm } from "./BaseStorm.js";
|
|
6
|
+
import express from "express";
|
|
7
|
+
import {} from "express";
|
|
8
|
+
import { DefaultApiErrorMessageComposer } from "../modules/server/server-errors.js";
|
|
9
|
+
import { FirebaseModule } from "@intuitionrobotics/firebase/backend";
|
|
10
|
+
export class Storm extends BaseStorm {
|
|
11
|
+
routeResolver;
|
|
12
|
+
initialPath;
|
|
13
|
+
functions = [];
|
|
14
|
+
apis = [];
|
|
15
|
+
express;
|
|
16
|
+
logClient = LogClient_Function;
|
|
17
|
+
onDestroy;
|
|
18
|
+
onStart;
|
|
19
|
+
errorMessageComposer = DefaultApiErrorMessageComposer();
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
this.addModules(FirebaseModule);
|
|
23
|
+
}
|
|
24
|
+
setErrorMessageComposer(errorMessageComposer) {
|
|
25
|
+
this.errorMessageComposer = errorMessageComposer;
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
setApp(app) {
|
|
29
|
+
this.express = app;
|
|
30
|
+
return this;
|
|
31
|
+
}
|
|
32
|
+
setLogClient(logClient) {
|
|
33
|
+
this.logClient = logClient;
|
|
34
|
+
return this;
|
|
35
|
+
}
|
|
36
|
+
getLogClient() {
|
|
37
|
+
return this.logClient;
|
|
38
|
+
}
|
|
39
|
+
setOnDestroy(onDestroy) {
|
|
40
|
+
this.onDestroy = onDestroy;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
setOnStart(onStart) {
|
|
44
|
+
this.onStart = onStart;
|
|
45
|
+
return this;
|
|
46
|
+
}
|
|
47
|
+
static getInstance() {
|
|
48
|
+
return Storm.instance;
|
|
49
|
+
}
|
|
50
|
+
init() {
|
|
51
|
+
BeLogged.addClient(process.env.GCLOUD_PROJECT && process.env.FUNCTIONS_EMULATOR ? LogClient_Terminal : this.logClient);
|
|
52
|
+
ServerApi.isDebug = !!this.config?.isDebug;
|
|
53
|
+
super.init();
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
registerApis(...apis) {
|
|
57
|
+
this.apis = apis;
|
|
58
|
+
return this;
|
|
59
|
+
}
|
|
60
|
+
setInitialRouteResolver(routeResolver) {
|
|
61
|
+
this.routeResolver = routeResolver;
|
|
62
|
+
return this;
|
|
63
|
+
}
|
|
64
|
+
setInitialRoutePath(initialPath) {
|
|
65
|
+
this.initialPath = initialPath;
|
|
66
|
+
return this;
|
|
67
|
+
}
|
|
68
|
+
build(onStarted) {
|
|
69
|
+
const app = this.express || express();
|
|
70
|
+
const httpServer = new HttpServer_Class(app, this.config?.["HttpServer"]);
|
|
71
|
+
const modulesAsFunction = this.modules.filter((module) => module instanceof FirebaseFunction);
|
|
72
|
+
this.functions = [new Firebase_ExpressFunction(app), ...modulesAsFunction];
|
|
73
|
+
if (this.onStart)
|
|
74
|
+
this.functions.forEach(func => func.addOnStart(this.onStart));
|
|
75
|
+
if (this.onDestroy)
|
|
76
|
+
this.functions.forEach(func => func.addOnDestroy(this.onDestroy));
|
|
77
|
+
this.init();
|
|
78
|
+
httpServer.init();
|
|
79
|
+
const urlPrefix = !process.env.GCLOUD_PROJECT ? this.initialPath : "";
|
|
80
|
+
if (this.routeResolver) {
|
|
81
|
+
httpServer.resolveApi(this.routeResolver, urlPrefix, this.apis);
|
|
82
|
+
httpServer.printRoutes(process.env.GCLOUD_PROJECT ? this.initialPath : "");
|
|
83
|
+
}
|
|
84
|
+
if (onStarted)
|
|
85
|
+
onStarted().catch(e => this.logError(e));
|
|
86
|
+
return this.functions.reduce((toRet, _function) => {
|
|
87
|
+
toRet[_function.getName()] = _function.getFunction();
|
|
88
|
+
return toRet;
|
|
89
|
+
}, {});
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
//# sourceMappingURL=Storm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Storm.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/Storm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,EAAC,MAAM,8BAA8B,CAAC;AACjH,OAAO,EAAC,wBAAwB,EAAE,gBAAgB,EAAC,MAAM,+CAA+C,CAAC;AACzG,OAAO,EAAwB,gBAAgB,EAAE,aAAa,EAAC,MAAM,iCAAiC,CAAC;AACvG,OAAO,EAAC,SAAS,EAAC,MAAM,iCAAiC,CAAC;AAC1D,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AACzC,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAc,MAAM,SAAS,CAAC;AACrC,OAAO,EAAC,8BAA8B,EAAC,MAAM,oCAAoC,CAAC;AAClF,OAAO,EAAC,cAAc,EAAC,MAAM,qCAAqC,CAAC;AAEnE,MAAM,OAAO,KACT,SAAQ,SAAS;IACT,aAAa,CAAiB;IAC9B,WAAW,CAAU;IACrB,SAAS,GAAU,EAAE,CAAC;IACtB,IAAI,GAAqB,EAAE,CAAC;IAC5B,OAAO,CAAW;IAClB,SAAS,GAAc,kBAAkB,CAAC;IAC1C,SAAS,CAAuB;IAChC,OAAO,CAAuB;IAEtC,oBAAoB,GAAqB,8BAA8B,EAAE,CAAC;IAE1E;QACI,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAEM,uBAAuB,CAAC,oBAAsC;QACjE,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,GAAY;QACtB,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY,CAAC,SAAoB;QACpC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IAC1B,CAAC;IAEM,YAAY,CAAC,SAA+B;QAC/C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,OAAO,IAAI,CAAC;IAChB,CAAC;IAEM,UAAU,CAAC,OAA6B;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,WAAW;QACd,OAAO,KAAK,CAAC,QAAiB,CAAA;IAClC,CAAC;IAED,IAAI;QACA,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvH,SAAS,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;QAE3C,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,GAAG,IAAsB;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,uBAAuB,CAAC,aAA4B;QAChD,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,mBAAmB,CAAC,WAAmB;QACnC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,IAAI,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,SAA+B;QACjC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;QAE1E,MAAM,iBAAiB,GAAuB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAc,EAA8B,EAAE,CAAC,MAAM,YAAY,gBAAgB,CAAC,CAAC;QAEtJ,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,wBAAwB,CAAC,GAAU,CAAC,EAAE,GAAG,iBAAiB,CAAC,CAAC;QAElF,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;QAEhF,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;QAEtF,IAAI,CAAC,IAAI,EAAE,CAAC;QAEZ,UAAU,CAAC,IAAI,EAAE,CAAC;QAClB,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAChE,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,SAAS;YAAE,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAExD,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;YAC9C,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;YACrD,OAAO,KAAK,CAAC;QACjB,CAAC,EAAE,EAAE,CAAC,CAAC;IACX,CAAC;CACJ"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CustomException } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { ErrorBody, ErrorResponse } from "../index";
|
|
2
|
+
import { type ErrorBody, type ErrorResponse } from "../index.js";
|
|
3
3
|
export declare class ApiException<E extends object | void = void> extends CustomException {
|
|
4
4
|
readonly responseBody: ErrorResponse<E>;
|
|
5
5
|
readonly responseCode: number;
|
|
@@ -9,3 +9,4 @@ export declare class ApiException<E extends object | void = void> extends Custom
|
|
|
9
9
|
getDispatchError(): boolean;
|
|
10
10
|
constructor(responseCode: number, debugMessage?: string, cause?: any);
|
|
11
11
|
}
|
|
12
|
+
//# sourceMappingURL=exceptions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../../src/main/app-backend/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EACN,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,MAAM,aAAa,CAAC;AAErB,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,GAAG,IAAI,GAAG,IAAI,CACvD,SAAQ,eAAe;IAEvB,SAAgB,YAAY,EAAE,aAAa,CAAC,CAAC,CAAC,CAAM;IACpD,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,OAAO,CAAC,aAAa,CAAiB;IAEtC,SAAgB,YAAY,GAAI,WAAW,SAAS,CAAC,CAAC,CAAC,UAGrD;IAEK,gBAAgB,CAAC,aAAa,EAAE,OAAO;IAKvC,gBAAgB;gBAIX,YAAY,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG;CAOpE"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { CustomException } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import {} from "../index.js";
|
|
3
|
+
export class ApiException extends CustomException {
|
|
4
|
+
responseBody = {};
|
|
5
|
+
responseCode;
|
|
6
|
+
dispatchError = true;
|
|
7
|
+
setErrorBody = (errorBody) => {
|
|
8
|
+
this.responseBody.error = errorBody;
|
|
9
|
+
return this;
|
|
10
|
+
};
|
|
11
|
+
setDispatchError(dispatchError) {
|
|
12
|
+
this.dispatchError = dispatchError;
|
|
13
|
+
return this;
|
|
14
|
+
}
|
|
15
|
+
getDispatchError() {
|
|
16
|
+
return this.dispatchError;
|
|
17
|
+
}
|
|
18
|
+
constructor(responseCode, debugMessage, cause) {
|
|
19
|
+
super(ApiException, `${responseCode}-${JSON.stringify(debugMessage)}`, cause);
|
|
20
|
+
this.responseCode = responseCode;
|
|
21
|
+
this.responseBody.debugMessage = JSON.stringify(debugMessage);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=exceptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../../src/main/app-backend/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAGN,MAAM,aAAa,CAAC;AAErB,MAAM,OAAO,YACZ,SAAQ,eAAe;IAEP,YAAY,GAAqB,EAAE,CAAC;IACpC,YAAY,CAAS;IAC7B,aAAa,GAAY,IAAI,CAAC;IAEtB,YAAY,GAAG,CAAC,SAAuB,EAAE,EAAE;QAC1D,IAAI,CAAC,YAAY,CAAC,KAAK,GAAG,SAAS,CAAC;QACpC,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;IAEK,gBAAgB,CAAC,aAAsB;QAC7C,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IAEM,gBAAgB;QACtB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,YAAY,YAAoB,EAAE,YAAqB,EAAE,KAAW;QACnE,KAAK,CAAC,YAAY,EAAE,GAAG,YAAY,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;QAE9E,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAC/D,CAAC;CAED"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CleanupScheduler.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/CleanupScheduler.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,yBAAyB,EAAC,MAAM,qEAAqE,CAAC;AAG9G,MAAM,MAAM,aAAa,GAAG;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC5B,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,WAAW,qBAAqB;IACrC,uBAAuB,EAAE,MAAM,cAAc,CAAA;CAC7C;AAID,qBAAa,sBACZ,SAAQ,yBAAyB;;IAOjC,gBAAgB,QAAa,OAAO,CAAC,GAAG,CAAC,CAevC;CACF;AAED,eAAO,MAAM,gBAAgB,wBAA+B,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { currentTimeMillies, Dispatcher } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { FirebaseScheduledFunction } from "@intuitionrobotics/firebase/app-backend/functions/firebase-function";
|
|
3
|
+
import { FirebaseModule } from "@intuitionrobotics/firebase/app-backend/FirebaseModule";
|
|
4
|
+
const dispatch_onCleanupSchedulerAct = new Dispatcher("__onCleanupSchedulerAct");
|
|
5
|
+
export class CleanupScheduler_Class extends FirebaseScheduledFunction {
|
|
6
|
+
constructor() {
|
|
7
|
+
super("CleanupScheduler");
|
|
8
|
+
this.setSchedule('every 1 hours');
|
|
9
|
+
}
|
|
10
|
+
onScheduledEvent = async () => {
|
|
11
|
+
const cleanupStatusCollection = FirebaseModule.createAdminSession().getFirestore().getCollection('cleanup-status', ["moduleKey"]);
|
|
12
|
+
const cleanups = dispatch_onCleanupSchedulerAct.dispatchModule();
|
|
13
|
+
await Promise.all(cleanups.map(async (cleanupItem) => {
|
|
14
|
+
const doc = await cleanupStatusCollection.queryUnique({ where: { moduleKey: cleanupItem.moduleKey } });
|
|
15
|
+
if (doc && doc.timestamp + cleanupItem.interval > currentTimeMillies())
|
|
16
|
+
return;
|
|
17
|
+
try {
|
|
18
|
+
await cleanupItem.cleanup();
|
|
19
|
+
await cleanupStatusCollection.upsert({ timestamp: currentTimeMillies(), moduleKey: cleanupItem.moduleKey });
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
this.logWarning(`cleanup of ${cleanupItem.moduleKey} has failed with error '${e}'`);
|
|
23
|
+
}
|
|
24
|
+
}));
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export const CleanupScheduler = new CleanupScheduler_Class();
|
|
28
|
+
//# sourceMappingURL=CleanupScheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CleanupScheduler.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/CleanupScheduler.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,kBAAkB,EAClB,UAAU,EACV,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAC,yBAAyB,EAAC,MAAM,qEAAqE,CAAC;AAC9G,OAAO,EAAC,cAAc,EAAC,MAAM,wDAAwD,CAAC;AAiBtF,MAAM,8BAA8B,GAAG,IAAI,UAAU,CAAmD,yBAAyB,CAAC,CAAC;AAEnI,MAAM,OAAO,sBACZ,SAAQ,yBAAyB;IAEjC;QACC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB,GAAG,KAAK,IAAkB,EAAE;QAC3C,MAAM,uBAAuB,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC,YAAY,EAAE,CAAC,aAAa,CAAgB,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QACjJ,MAAM,QAAQ,GAAG,8BAA8B,CAAC,cAAc,EAAE,CAAC;QACjE,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,EAAC,WAAW,EAAC,EAAE;YAClD,MAAM,GAAG,GAAG,MAAM,uBAAuB,CAAC,WAAW,CAAC,EAAC,KAAK,EAAE,EAAC,SAAS,EAAE,WAAW,CAAC,SAAS,EAAC,EAAC,CAAC,CAAC;YACnG,IAAI,GAAG,IAAI,GAAG,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,GAAG,kBAAkB,EAAE;gBACrE,OAAO;YAER,IAAI,CAAC;gBACJ,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;gBAC5B,MAAM,uBAAuB,CAAC,MAAM,CAAC,EAAC,SAAS,EAAE,kBAAkB,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,SAAS,EAAC,CAAC,CAAC;YAC3G,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACZ,IAAI,CAAC,UAAU,CAAC,cAAc,WAAW,CAAC,SAAS,2BAA2B,CAAC,GAAG,CAAC,CAAC;YACrF,CAAC;QACF,CAAC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FirebaseScheduledFunction } from "@intuitionrobotics/firebase/app-backend/functions/firebase-function";
|
|
2
|
-
import { ActDetailsDoc } from "./CleanupScheduler";
|
|
2
|
+
import { type ActDetailsDoc } from "./CleanupScheduler.js";
|
|
3
3
|
import { FirestoreCollection } from "@intuitionrobotics/firebase/app-backend/firestore/FirestoreCollection";
|
|
4
|
-
import { FirestoreQuery } from "@intuitionrobotics/firebase";
|
|
4
|
+
import { type FirestoreQuery } from "@intuitionrobotics/firebase";
|
|
5
5
|
export type BackupDoc = ActDetailsDoc & {
|
|
6
6
|
backupPath: string;
|
|
7
7
|
};
|
|
@@ -20,3 +20,4 @@ export declare class FirestoreBackupScheduler_Class extends FirebaseScheduledFun
|
|
|
20
20
|
onScheduledEvent: () => Promise<any>;
|
|
21
21
|
}
|
|
22
22
|
export declare const FirestoreBackupScheduler: FirestoreBackupScheduler_Class;
|
|
23
|
+
//# sourceMappingURL=FirestoreBackupScheduler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirestoreBackupScheduler.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/FirestoreBackupScheduler.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,yBAAyB,EAAC,MAAM,qEAAqE,CAAC;AAE9G,OAAO,EAAC,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAC,mBAAmB,EAAC,MAAM,uEAAuE,CAAC;AAC1G,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAEhE,MAAM,MAAM,SAAS,GAAG,aAAa,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;CACnB,CAAA;AAED,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,MAAM,IAAI;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;IACnC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC,CAAA;CAC9B,CAAA;AAED,MAAM,WAAW,6BAA6B;IAC7C,+BAA+B,EAAE,MAAM,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAA;CACpE;AAKD,qBAAa,8BACZ,SAAQ,yBAAyB;;IAOjC,gBAAgB,QAAa,OAAO,CAAC,GAAG,CAAC,CA6CvC;CACF;AAED,eAAO,MAAM,wBAAwB,gCAAuC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { currentTimeMillies, Dispatcher, dispatch_onServerError, filterInstances, ServerErrorSeverity, _logger_logException, __stringify } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { FirebaseScheduledFunction } from "@intuitionrobotics/firebase/app-backend/functions/firebase-function";
|
|
3
|
+
import { FirebaseModule } from "@intuitionrobotics/firebase/app-backend/FirebaseModule";
|
|
4
|
+
import {} from "./CleanupScheduler.js";
|
|
5
|
+
import { FirestoreCollection } from "@intuitionrobotics/firebase/app-backend/firestore/FirestoreCollection";
|
|
6
|
+
import {} from "@intuitionrobotics/firebase";
|
|
7
|
+
const dispatch_onFirestoreBackupSchedulerAct = new Dispatcher("__onFirestoreBackupSchedulerAct");
|
|
8
|
+
export class FirestoreBackupScheduler_Class extends FirebaseScheduledFunction {
|
|
9
|
+
constructor() {
|
|
10
|
+
super("FirestoreBackupScheduler");
|
|
11
|
+
this.setSchedule('every 24 hours');
|
|
12
|
+
}
|
|
13
|
+
onScheduledEvent = async () => {
|
|
14
|
+
const backupStatusCollection = FirebaseModule.createAdminSession().getFirestore().getCollection('firestore-backup-status', ["moduleKey", "timestamp"]);
|
|
15
|
+
const backups = [];
|
|
16
|
+
filterInstances(dispatch_onFirestoreBackupSchedulerAct.dispatchModule()).forEach(backupArray => {
|
|
17
|
+
backups.push(...backupArray);
|
|
18
|
+
});
|
|
19
|
+
const bucket = await FirebaseModule.createAdminSession().getStorage().getOrCreateBucket();
|
|
20
|
+
await Promise.all(backups.map(async (backupItem) => {
|
|
21
|
+
const query = {
|
|
22
|
+
where: { moduleKey: backupItem.moduleKey },
|
|
23
|
+
orderBy: [{ key: "timestamp", order: "asc" }],
|
|
24
|
+
limit: 1
|
|
25
|
+
};
|
|
26
|
+
const docs = await backupStatusCollection.query(query);
|
|
27
|
+
const latestDoc = docs[0];
|
|
28
|
+
if (latestDoc && latestDoc.timestamp + backupItem.interval > currentTimeMillies())
|
|
29
|
+
return;
|
|
30
|
+
const backupPath = `backup/firestore/${backupItem.moduleKey}/${currentTimeMillies()}.json`;
|
|
31
|
+
try {
|
|
32
|
+
const toBackupData = await backupItem.collection.query(backupItem.backupQuery);
|
|
33
|
+
await (await bucket.getFile(backupPath)).write(toBackupData);
|
|
34
|
+
await backupStatusCollection.upsert({ timestamp: currentTimeMillies(), moduleKey: backupItem.moduleKey, backupPath });
|
|
35
|
+
const keepInterval = backupItem.keepInterval;
|
|
36
|
+
if (keepInterval) {
|
|
37
|
+
const queryOld = { where: { moduleKey: backupItem.moduleKey, timestamp: { $lt: currentTimeMillies() - keepInterval } } };
|
|
38
|
+
const oldDocs = await backupStatusCollection.query(queryOld);
|
|
39
|
+
await Promise.all(oldDocs.map(async (oldDoc) => {
|
|
40
|
+
await (await bucket.getFile(oldDoc.backupPath)).delete();
|
|
41
|
+
}));
|
|
42
|
+
await backupStatusCollection.delete(queryOld);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (e) {
|
|
46
|
+
this.logWarning(`backup of ${backupItem.moduleKey} has failed with error`, e);
|
|
47
|
+
const errorMessage = `Error backing up firestore collection config:\n ${__stringify(backupItem, true)}\nError: ${_logger_logException(e)}`;
|
|
48
|
+
await dispatch_onServerError.dispatchModuleAsync(ServerErrorSeverity.Critical, errorMessage);
|
|
49
|
+
}
|
|
50
|
+
}));
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
export const FirestoreBackupScheduler = new FirestoreBackupScheduler_Class();
|
|
54
|
+
//# sourceMappingURL=FirestoreBackupScheduler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FirestoreBackupScheduler.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/FirestoreBackupScheduler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Module } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { ServerApi_Middleware } from "./server/HttpServer";
|
|
3
|
-
import { UpgradeRequired } from "../../shared/force-upgrade";
|
|
4
|
-
import { PlatformName } from "../../shared/consts";
|
|
5
|
-
import { ExpressRequest } from "../utils/types";
|
|
2
|
+
import { type ServerApi_Middleware } from "./server/HttpServer.js";
|
|
3
|
+
import { type UpgradeRequired } from "../../shared/force-upgrade.js";
|
|
4
|
+
import { type PlatformName } from "../../shared/consts.js";
|
|
5
|
+
import { type ExpressRequest } from "../utils/types.js";
|
|
6
6
|
type VersionConfig = {
|
|
7
7
|
[K in PlatformName]: {
|
|
8
8
|
regexp: string;
|
|
@@ -17,3 +17,4 @@ declare class ForceUpgrade_Class extends Module<VersionConfig> {
|
|
|
17
17
|
}
|
|
18
18
|
export declare const ForceUpgrade: ForceUpgrade_Class;
|
|
19
19
|
export {};
|
|
20
|
+
//# sourceMappingURL=ForceUpgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForceUpgrade.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ForceUpgrade.ts"],"names":[],"mappings":"AAqBA,OAAO,EAGN,MAAM,EACN,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAEN,KAAK,oBAAoB,EACzB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAGN,KAAK,eAAe,EACpB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEtD,KAAK,aAAa,GAAG;KACnB,CAAC,IAAI,YAAY,GAAG;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAC5B;CACD,CAAC;AASF,cAAM,kBACL,SAAQ,MAAM,CAAC,aAAa,CAAC;;IAM7B,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,oBAAoB,CAA0E;IAE1H,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe;IA2DlD,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAK3D;AAED,eAAO,MAAM,YAAY,oBAA2B,CAAC"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Thunderstorm is a full web app framework!
|
|
3
|
+
*
|
|
4
|
+
* Typescript & Express backend infrastructure that natively runs on firebase function
|
|
5
|
+
* Typescript & React frontend infrastructure
|
|
6
|
+
*
|
|
7
|
+
* Copyright (C) 2020 Intuition Robotics
|
|
8
|
+
*
|
|
9
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
10
|
+
* you may not use this file except in compliance with the License.
|
|
11
|
+
* You may obtain a copy of the License at
|
|
12
|
+
*
|
|
13
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
14
|
+
*
|
|
15
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
16
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
17
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
18
|
+
* See the License for the specific language governing permissions and
|
|
19
|
+
* limitations under the License.
|
|
20
|
+
*/
|
|
21
|
+
import { __stringify, BadImplementationException, Module } from "@intuitionrobotics/ts-common";
|
|
22
|
+
import { HeaderKey } from "./server/HttpServer.js";
|
|
23
|
+
import { ApiException } from "../exceptions.js";
|
|
24
|
+
import { HeaderKey_PlatformName, HeaderKey_PlatformVersion } from "../../shared/force-upgrade.js";
|
|
25
|
+
import {} from "../../shared/consts.js";
|
|
26
|
+
import {} from "../utils/types.js";
|
|
27
|
+
const Header_PlatformVersion = new HeaderKey(HeaderKey_PlatformVersion);
|
|
28
|
+
const Header_PlatformName = new HeaderKey(HeaderKey_PlatformName);
|
|
29
|
+
// const DefaultRegexps: { [k in PlatformName]: string } = {
|
|
30
|
+
// chrome: "Chrome/([0-9\.]+)"
|
|
31
|
+
// };
|
|
32
|
+
class ForceUpgrade_Class extends Module {
|
|
33
|
+
constructor() {
|
|
34
|
+
super("ForceUpgrade");
|
|
35
|
+
}
|
|
36
|
+
static Middleware = async (request) => ForceUpgrade.assertVersion(request);
|
|
37
|
+
compareVersion(request) {
|
|
38
|
+
const platformVersion = Header_PlatformVersion.get(request);
|
|
39
|
+
const platformName = Header_PlatformName.get(request);
|
|
40
|
+
if (!platformName)
|
|
41
|
+
throw new ApiException(500, `Platform name was not specified`);
|
|
42
|
+
if (!platformVersion)
|
|
43
|
+
throw new ApiException(500, `Platform version was not specified`);
|
|
44
|
+
const platformNameConfig = this.config[platformName];
|
|
45
|
+
if (!platformNameConfig || !platformNameConfig.regexp)
|
|
46
|
+
return {}; // no info about this platformName
|
|
47
|
+
const regex = new RegExp(platformNameConfig.regexp);
|
|
48
|
+
const match = platformVersion.match(regex);
|
|
49
|
+
if (!match)
|
|
50
|
+
throw new BadImplementationException(`Error extracting version.. \nVersion: '${platformVersion}'\n config: '${__stringify(this.config)}'`);
|
|
51
|
+
const minimumValidVersion = platformNameConfig.minimumValidVersion;
|
|
52
|
+
if (!minimumValidVersion)
|
|
53
|
+
return {
|
|
54
|
+
upgradeRequired: false
|
|
55
|
+
};
|
|
56
|
+
const matchGroups = match.groups;
|
|
57
|
+
if (!matchGroups)
|
|
58
|
+
throw new BadImplementationException(`If minimumValidVersion is provided ${platformNameConfig.minimumValidVersion}, then groups in regex have to be defined ${__stringify(match)}. i.e. "(?<first>[0-9]+).(?<second>[0-9]+).(?<third>[0-9]+)"`);
|
|
59
|
+
const minimumVersionMatch = minimumValidVersion.match(regex);
|
|
60
|
+
if (!minimumVersionMatch)
|
|
61
|
+
throw new BadImplementationException(`Error extracting minimum valid version. \nVersion: '${minimumValidVersion}'\n config: '${__stringify(this.config)}'`);
|
|
62
|
+
const versionsGroups = minimumVersionMatch.groups;
|
|
63
|
+
if (!versionsGroups)
|
|
64
|
+
throw new BadImplementationException(`If minimumValidVersion is provided ${platformNameConfig.minimumValidVersion}, then groups in regex have to be defined ${__stringify(minimumVersionMatch)}. i.e. "(?<first>[0-9]+).(?<second>[0-9]+).(?<third>[0-9]+)"`);
|
|
65
|
+
const versions = Object.values(matchGroups);
|
|
66
|
+
const minimumVersions = Object.values(versionsGroups);
|
|
67
|
+
for (let i = 0; i < versions.length; i++) {
|
|
68
|
+
const v = versions[i];
|
|
69
|
+
const minV = minimumVersions[i];
|
|
70
|
+
if (+v < +minV)
|
|
71
|
+
return { upgradeRequired: true };
|
|
72
|
+
if (+v > +minV)
|
|
73
|
+
return { upgradeRequired: false };
|
|
74
|
+
}
|
|
75
|
+
return { upgradeRequired: false };
|
|
76
|
+
}
|
|
77
|
+
async assertVersion(request) {
|
|
78
|
+
const upgradeRequired = this.compareVersion(request);
|
|
79
|
+
if (upgradeRequired.upgradeRequired)
|
|
80
|
+
throw new ApiException(426, "require upgrade..").setErrorBody({ type: "upgrade-required", body: upgradeRequired });
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
export const ForceUpgrade = new ForceUpgrade_Class();
|
|
84
|
+
//# sourceMappingURL=ForceUpgrade.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ForceUpgrade.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ForceUpgrade.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,EACN,WAAW,EACX,0BAA0B,EAC1B,MAAM,EACN,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,SAAS,EAET,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EACN,sBAAsB,EACtB,yBAAyB,EAEzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAmB,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAqB,MAAM,mBAAmB,CAAC;AAStD,MAAM,sBAAsB,GAAG,IAAI,SAAS,CAAC,yBAAyB,CAAC,CAAC;AACxE,MAAM,mBAAmB,GAAG,IAAI,SAAS,CAAC,sBAAsB,CAAC,CAAC;AAElE,4DAA4D;AAC5D,+BAA+B;AAC/B,KAAK;AAEL,MAAM,kBACL,SAAQ,MAAqB;IAE7B;QACC,KAAK,CAAC,cAAc,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,CAAU,UAAU,GAAyB,KAAK,EAAE,OAAuB,EAAE,EAAE,CAAC,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAE1H,cAAc,CAAC,OAAuB;QACrC,MAAM,eAAe,GAAG,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAiB,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC,YAAY;YAChB,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,iCAAiC,CAAC,CAAC;QAEhE,IAAI,CAAC,eAAe;YACnB,MAAM,IAAI,YAAY,CAAC,GAAG,EAAE,oCAAoC,CAAC,CAAC;QAEnE,MAAM,kBAAkB,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACrD,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,MAAM;YACpD,OAAO,EAAE,CAAC,CAAC,kCAAkC;QAE9C,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAA;QACnD,MAAM,KAAK,GAA4B,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpE,IAAI,CAAC,KAAK;YACT,MAAM,IAAI,0BAA0B,CAAC,0CAA0C,eAAe,gBAAgB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAE5I,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,mBAAmB,CAAC;QACnE,IAAI,CAAC,mBAAmB;YACvB,OAAO;gBACN,eAAe,EAAE,KAAK;aACtB,CAAC;QAEH,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,WAAW;YACf,MAAM,IAAI,0BAA0B,CACnC,sCAAsC,kBAAkB,CAAC,mBAAmB,6CAA6C,WAAW,CACnI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAEzE,MAAM,mBAAmB,GAA4B,mBAAmB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtF,IAAI,CAAC,mBAAmB;YACvB,MAAM,IAAI,0BAA0B,CACnC,uDAAuD,mBAAmB,gBAAgB,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAEzH,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,CAAC;QAClD,IAAI,CAAC,cAAc;YAClB,MAAM,IAAI,0BAA0B,CACnC,sCAAsC,kBAAkB,CAAC,mBAAmB,6CAA6C,WAAW,CACnI,mBAAmB,CAAC,8DAA8D,CAAC,CAAC;QAEvF,MAAM,QAAQ,GAAa,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtD,MAAM,eAAe,GAAa,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAEhE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;YAEhC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;gBACb,OAAO,EAAC,eAAe,EAAE,IAAI,EAAC,CAAC;YAEhC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI;gBACb,OAAO,EAAC,eAAe,EAAE,KAAK,EAAC,CAAC;QAClC,CAAC;QAED,OAAO,EAAC,eAAe,EAAE,KAAK,EAAC,CAAA;IAChC,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,OAAuB;QAC1C,MAAM,eAAe,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACrD,IAAI,eAAe,CAAC,eAAe;YAClC,MAAM,IAAI,YAAY,CAAkB,GAAG,EAAE,mBAAmB,CAAC,CAAC,YAAY,CAAC,EAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,eAAe,EAAC,CAAC,CAAA;IACnI,CAAC;;AAGF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Module, OnApplicationError, ServerErrorSeverity } from "@intuitionrobotics/ts-common";
|
|
2
|
-
import { WebClientOptions } from "@slack/web-api";
|
|
1
|
+
import { Module, type OnApplicationError, ServerErrorSeverity } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { type WebClientOptions } from "@slack/web-api";
|
|
3
3
|
type ConfigType = {
|
|
4
4
|
token: string;
|
|
5
5
|
defaultChannel: string;
|
|
@@ -31,3 +31,4 @@ export declare class Slack_ServerApiError_Class extends Module<ApiErrorConfig> i
|
|
|
31
31
|
}
|
|
32
32
|
export declare const Slack_ServerApiError: Slack_ServerApiError_Class;
|
|
33
33
|
export {};
|
|
34
|
+
//# sourceMappingURL=SlackModule.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlackModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/SlackModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,MAAM,EACN,KAAK,kBAAkB,EACvB,mBAAmB,EAEtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAmC,KAAK,gBAAgB,EAAC,MAAM,gBAAgB,CAAC;AAWvF,KAAK,UAAU,GAAG;IACd,KAAK,EAAE,MAAM,CAAA;IACb,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC1C,CAAC;AAEF,KAAK,aAAa,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,aAAa,CAAA;AAMjD,qBAAa,iBACT,SAAQ,MAAM,CAAC,UAAU,CAAC;IAC1B,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,UAAU,CAAkB;;IAMpC,SAAS,CAAC,IAAI,IAAI,IAAI;IAaT,WAAW,CAAC,YAAY,EAAE,YAAY;YAiBrC,eAAe;CAQhC;AAED,eAAO,MAAM,WAAW,mBAA0B,CAAC;AAEnD,KAAK,cAAc,GAAG;IAClB,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,EAAE,mBAAmB,CAAA;CAChC,CAAA;AAED,qBAAa,0BACT,SAAQ,MAAM,CAAC,cAAc,CAC7B,YAAW,kBAAkB;;IAM7B,SAAS,CAAC,IAAI,IAAI,IAAI;IAGhB,yBAAyB,CAAC,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM;CAWnF;AAED,eAAO,MAAM,oBAAoB,4BAAmC,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { currentTimeMillies, Minute, Module, ServerErrorSeverity, ServerErrorSeverity_Ordinal } from "@intuitionrobotics/ts-common";
|
|
2
|
+
import { WebClient } from "@slack/web-api";
|
|
3
|
+
export class SlackModule_Class extends Module {
|
|
4
|
+
web;
|
|
5
|
+
messageMap = {};
|
|
6
|
+
constructor() {
|
|
7
|
+
super("SlackModule");
|
|
8
|
+
}
|
|
9
|
+
init() {
|
|
10
|
+
if (!this.config.token)
|
|
11
|
+
return;
|
|
12
|
+
// throw new ImplementationMissingException('Missing config token for SlackModule. Please add it');
|
|
13
|
+
this.web = new WebClient(this.config.token, {
|
|
14
|
+
rejectRateLimitedCalls: true,
|
|
15
|
+
...this.config.slackConfig
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
async postMessage(slackMessage) {
|
|
19
|
+
const parameters = typeof slackMessage === 'string' ? {
|
|
20
|
+
text: slackMessage,
|
|
21
|
+
channel: this.config.defaultChannel
|
|
22
|
+
} : slackMessage;
|
|
23
|
+
const time = this.messageMap[parameters.text];
|
|
24
|
+
if (time && currentTimeMillies() - time < (this.config.throttlingTime || Minute))
|
|
25
|
+
return;
|
|
26
|
+
try {
|
|
27
|
+
return await this.postMessageImpl(parameters);
|
|
28
|
+
}
|
|
29
|
+
catch (e) {
|
|
30
|
+
this.logError(`Error while sending a message to channel: ${parameters.channel}`, e);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
async postMessageImpl(message) {
|
|
34
|
+
const res = await this.web.chat.postMessage(message);
|
|
35
|
+
this.messageMap[message.text] = currentTimeMillies();
|
|
36
|
+
this.logDebug(`A message was posted to channel: ${message.channel} with message id ${res.ts} which contains the message ${message.text}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export const SlackModule = new SlackModule_Class();
|
|
40
|
+
export class Slack_ServerApiError_Class extends Module {
|
|
41
|
+
constructor() {
|
|
42
|
+
super("Slack_ServerApiError");
|
|
43
|
+
this.setDefaultConfig({ exclude: [], minLevel: ServerErrorSeverity.Info });
|
|
44
|
+
}
|
|
45
|
+
init() {
|
|
46
|
+
}
|
|
47
|
+
async __processApplicationError(errorLevel, message) {
|
|
48
|
+
if (ServerErrorSeverity_Ordinal.indexOf(errorLevel) < ServerErrorSeverity_Ordinal.indexOf(this.config.minLevel))
|
|
49
|
+
return;
|
|
50
|
+
for (const key of this.config.exclude || []) {
|
|
51
|
+
if (message.includes(key))
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
await SlackModule.postMessage(`\`\`\`${message}\`\`\``);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export const Slack_ServerApiError = new Slack_ServerApiError_Class();
|
|
58
|
+
//# sourceMappingURL=SlackModule.js.map
|