@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.
Files changed (542) hide show
  1. package/LICENSE +3 -0
  2. package/dist/app-backend/api/v1/utils/version/_assert.d.ts +4 -0
  3. package/dist/app-backend/api/v1/utils/version/_assert.d.ts.map +1 -0
  4. package/dist/app-backend/api/v1/utils/version/_assert.js +23 -0
  5. package/dist/app-backend/api/v1/utils/version/_assert.js.map +1 -0
  6. package/dist/app-backend/api/v1/utils/version/assert.d.ts +10 -0
  7. package/dist/app-backend/api/v1/utils/version/assert.d.ts.map +1 -0
  8. package/dist/app-backend/api/v1/utils/version/assert.js +36 -0
  9. package/dist/app-backend/api/v1/utils/version/assert.js.map +1 -0
  10. package/{app-backend → dist/app-backend}/core/BaseStorm.d.ts +1 -0
  11. package/dist/app-backend/core/BaseStorm.d.ts.map +1 -0
  12. package/dist/app-backend/core/BaseStorm.js +12 -0
  13. package/dist/app-backend/core/BaseStorm.js.map +1 -0
  14. package/{app-backend → dist/app-backend}/core/Storm.d.ts +5 -4
  15. package/dist/app-backend/core/Storm.d.ts.map +1 -0
  16. package/dist/app-backend/core/Storm.js +92 -0
  17. package/dist/app-backend/core/Storm.js.map +1 -0
  18. package/{app-backend → dist/app-backend}/exceptions.d.ts +2 -1
  19. package/dist/app-backend/exceptions.d.ts.map +1 -0
  20. package/dist/app-backend/exceptions.js +24 -0
  21. package/dist/app-backend/exceptions.js.map +1 -0
  22. package/{app-backend → dist/app-backend}/modules/CleanupScheduler.d.ts +1 -0
  23. package/dist/app-backend/modules/CleanupScheduler.d.ts.map +1 -0
  24. package/dist/app-backend/modules/CleanupScheduler.js +28 -0
  25. package/dist/app-backend/modules/CleanupScheduler.js.map +1 -0
  26. package/{app-backend → dist/app-backend}/modules/FirestoreBackupScheduler.d.ts +3 -2
  27. package/dist/app-backend/modules/FirestoreBackupScheduler.d.ts.map +1 -0
  28. package/dist/app-backend/modules/FirestoreBackupScheduler.js +54 -0
  29. package/dist/app-backend/modules/FirestoreBackupScheduler.js.map +1 -0
  30. package/{app-backend → dist/app-backend}/modules/ForceUpgrade.d.ts +5 -4
  31. package/dist/app-backend/modules/ForceUpgrade.d.ts.map +1 -0
  32. package/dist/app-backend/modules/ForceUpgrade.js +84 -0
  33. package/dist/app-backend/modules/ForceUpgrade.js.map +1 -0
  34. package/{app-backend → dist/app-backend}/modules/SlackModule.d.ts +3 -2
  35. package/dist/app-backend/modules/SlackModule.d.ts.map +1 -0
  36. package/dist/app-backend/modules/SlackModule.js +58 -0
  37. package/dist/app-backend/modules/SlackModule.js.map +1 -0
  38. package/dist/app-backend/modules/_imports.d.ts +11 -0
  39. package/dist/app-backend/modules/_imports.d.ts.map +1 -0
  40. package/dist/app-backend/modules/_imports.js +31 -0
  41. package/dist/app-backend/modules/_imports.js.map +1 -0
  42. package/{app-backend → dist/app-backend}/modules/http/AxiosHttpModule.d.ts +5 -4
  43. package/dist/app-backend/modules/http/AxiosHttpModule.d.ts.map +1 -0
  44. package/{app-backend → dist/app-backend}/modules/http/AxiosHttpModule.js +47 -55
  45. package/dist/app-backend/modules/http/AxiosHttpModule.js.map +1 -0
  46. package/{app-backend → dist/app-backend}/modules/http/types.d.ts +2 -1
  47. package/dist/app-backend/modules/http/types.d.ts.map +1 -0
  48. package/dist/app-backend/modules/http/types.js +2 -0
  49. package/{app-backend → dist/app-backend}/modules/http/types.js.map +1 -1
  50. package/{app-backend → dist/app-backend}/modules/proxy/RemoteProxy.d.ts +6 -5
  51. package/dist/app-backend/modules/proxy/RemoteProxy.d.ts.map +1 -0
  52. package/dist/app-backend/modules/proxy/RemoteProxy.js +88 -0
  53. package/dist/app-backend/modules/proxy/RemoteProxy.js.map +1 -0
  54. package/{app-backend → dist/app-backend}/modules/proxy/RemoteProxyCaller.d.ts +3 -2
  55. package/dist/app-backend/modules/proxy/RemoteProxyCaller.d.ts.map +1 -0
  56. package/dist/app-backend/modules/proxy/RemoteProxyCaller.js +109 -0
  57. package/dist/app-backend/modules/proxy/RemoteProxyCaller.js.map +1 -0
  58. package/{app-backend → dist/app-backend}/modules/server/HttpServer.d.ts +12 -9
  59. package/dist/app-backend/modules/server/HttpServer.d.ts.map +1 -0
  60. package/{app-backend → dist/app-backend}/modules/server/HttpServer.js +47 -67
  61. package/dist/app-backend/modules/server/HttpServer.js.map +1 -0
  62. package/{app-backend → dist/app-backend}/modules/server/server-api.d.ts +8 -7
  63. package/dist/app-backend/modules/server/server-api.d.ts.map +1 -0
  64. package/dist/app-backend/modules/server/server-api.js +346 -0
  65. package/dist/app-backend/modules/server/server-api.js.map +1 -0
  66. package/{app-backend → dist/app-backend}/modules/server/server-errors.d.ts +4 -3
  67. package/dist/app-backend/modules/server/server-errors.d.ts.map +1 -0
  68. package/{app-backend → dist/app-backend}/modules/server/server-errors.js +15 -24
  69. package/dist/app-backend/modules/server/server-errors.js.map +1 -0
  70. package/{app-backend → dist/app-backend}/utils/LogClient_File.d.ts +1 -0
  71. package/dist/app-backend/utils/LogClient_File.d.ts.map +1 -0
  72. package/{app-backend → dist/app-backend}/utils/LogClient_File.js +6 -7
  73. package/dist/app-backend/utils/LogClient_File.js.map +1 -0
  74. package/{app-backend → dist/app-backend}/utils/file.d.ts +1 -0
  75. package/dist/app-backend/utils/file.d.ts.map +1 -0
  76. package/{app-backend/utils/types.js → dist/app-backend/utils/file.js} +10 -6
  77. package/dist/app-backend/utils/file.js.map +1 -0
  78. package/dist/app-backend/utils/promisify-request.d.ts +3 -0
  79. package/dist/app-backend/utils/promisify-request.d.ts.map +1 -0
  80. package/dist/app-backend/utils/promisify-request.js +25 -0
  81. package/dist/app-backend/utils/promisify-request.js.map +1 -0
  82. package/{app-backend → dist/app-backend}/utils/to-be-removed.d.ts +1 -0
  83. package/dist/app-backend/utils/to-be-removed.d.ts.map +1 -0
  84. package/dist/app-backend/utils/to-be-removed.js +24 -0
  85. package/dist/app-backend/utils/to-be-removed.js.map +1 -0
  86. package/{app-backend → dist/app-backend}/utils/types.d.ts +1 -0
  87. package/dist/app-backend/utils/types.d.ts.map +1 -0
  88. package/dist/app-backend/utils/types.js +24 -0
  89. package/dist/app-backend/utils/types.js.map +1 -0
  90. package/{app-frontend → dist/app-frontend}/components/ActionButton.d.ts +1 -0
  91. package/dist/app-frontend/components/ActionButton.d.ts.map +1 -0
  92. package/{app-frontend → dist/app-frontend}/components/ActionButton.js +2 -6
  93. package/dist/app-frontend/components/ActionButton.js.map +1 -0
  94. package/{app-frontend → dist/app-frontend}/components/FilterInput.d.ts +3 -2
  95. package/dist/app-frontend/components/FilterInput.d.ts.map +1 -0
  96. package/dist/app-frontend/components/FilterInput.js +62 -0
  97. package/dist/app-frontend/components/FilterInput.js.map +1 -0
  98. package/{app-frontend → dist/app-frontend}/components/GenericSelect.d.ts +2 -1
  99. package/dist/app-frontend/components/GenericSelect.d.ts.map +1 -0
  100. package/{app-frontend → dist/app-frontend}/components/GenericSelect.js +8 -9
  101. package/dist/app-frontend/components/GenericSelect.js.map +1 -0
  102. package/{app-frontend → dist/app-frontend}/components/GenericTabs.d.ts +1 -0
  103. package/dist/app-frontend/components/GenericTabs.d.ts.map +1 -0
  104. package/dist/app-frontend/components/GenericTabs.js +7 -0
  105. package/dist/app-frontend/components/GenericTabs.js.map +1 -0
  106. package/{app-frontend → dist/app-frontend}/components/Overlay.d.ts +1 -0
  107. package/dist/app-frontend/components/Overlay.d.ts.map +1 -0
  108. package/{app-frontend → dist/app-frontend}/components/Overlay.js +6 -9
  109. package/dist/app-frontend/components/Overlay.js.map +1 -0
  110. package/{app-frontend → dist/app-frontend}/components/TS_Input.d.ts +2 -1
  111. package/dist/app-frontend/components/TS_Input.d.ts.map +1 -0
  112. package/{app-frontend → dist/app-frontend}/components/TS_Input.js +37 -36
  113. package/dist/app-frontend/components/TS_Input.js.map +1 -0
  114. package/{app-frontend → dist/app-frontend}/components/TS_Table.d.ts +4 -3
  115. package/dist/app-frontend/components/TS_Table.d.ts.map +1 -0
  116. package/{app-frontend → dist/app-frontend}/components/TS_Table.js +18 -23
  117. package/dist/app-frontend/components/TS_Table.js.map +1 -0
  118. package/{app-frontend → dist/app-frontend}/components/TS_TextArea.d.ts +3 -2
  119. package/dist/app-frontend/components/TS_TextArea.d.ts.map +1 -0
  120. package/{app-frontend → dist/app-frontend}/components/TS_TextArea.js +16 -19
  121. package/dist/app-frontend/components/TS_TextArea.js.map +1 -0
  122. package/{app-frontend → dist/app-frontend}/components/Tabs.d.ts +2 -1
  123. package/dist/app-frontend/components/Tabs.d.ts.map +1 -0
  124. package/dist/app-frontend/components/Tabs.js +30 -0
  125. package/dist/app-frontend/components/Tabs.js.map +1 -0
  126. package/{app-frontend → dist/app-frontend}/components/adapter/Adapter.d.ts +9 -8
  127. package/dist/app-frontend/components/adapter/Adapter.d.ts.map +1 -0
  128. package/{app-frontend → dist/app-frontend}/components/adapter/Adapter.js +36 -39
  129. package/dist/app-frontend/components/adapter/Adapter.js.map +1 -0
  130. package/{app-frontend → dist/app-frontend}/components/adapter/BaseRenderer.d.ts +2 -1
  131. package/dist/app-frontend/components/adapter/BaseRenderer.d.ts.map +1 -0
  132. package/{app-frontend → dist/app-frontend}/components/adapter/BaseRenderer.js +4 -8
  133. package/dist/app-frontend/components/adapter/BaseRenderer.js.map +1 -0
  134. package/{app-frontend → dist/app-frontend}/components/checkbox/TS_Checkbox.d.ts +2 -1
  135. package/dist/app-frontend/components/checkbox/TS_Checkbox.d.ts.map +1 -0
  136. package/{app-frontend → dist/app-frontend}/components/checkbox/TS_Checkbox.js +4 -10
  137. package/dist/app-frontend/components/checkbox/TS_Checkbox.js.map +1 -0
  138. package/{app-frontend → dist/app-frontend}/components/checkbox/TS_CheckboxField.d.ts +2 -1
  139. package/dist/app-frontend/components/checkbox/TS_CheckboxField.d.ts.map +1 -0
  140. package/dist/app-frontend/components/checkbox/TS_CheckboxField.js +19 -0
  141. package/dist/app-frontend/components/checkbox/TS_CheckboxField.js.map +1 -0
  142. package/{app-frontend → dist/app-frontend}/components/form/Form.d.ts +3 -2
  143. package/dist/app-frontend/components/form/Form.d.ts.map +1 -0
  144. package/{app-frontend → dist/app-frontend}/components/form/Form.js +12 -16
  145. package/dist/app-frontend/components/form/Form.js.map +1 -0
  146. package/{app-frontend → dist/app-frontend}/components/form/types.d.ts +3 -2
  147. package/dist/app-frontend/components/form/types.d.ts.map +1 -0
  148. package/{app-frontend/components → dist/app-frontend/components/form}/types.js +2 -2
  149. package/{app-frontend → dist/app-frontend}/components/form/types.js.map +1 -1
  150. package/{app-frontend → dist/app-frontend}/components/playground/Playground.d.ts +1 -0
  151. package/dist/app-frontend/components/playground/Playground.d.ts.map +1 -0
  152. package/{app-frontend → dist/app-frontend}/components/playground/Playground.js +9 -13
  153. package/dist/app-frontend/components/playground/Playground.js.map +1 -0
  154. package/{app-frontend → dist/app-frontend}/components/tree/MenuComponent.d.ts +4 -3
  155. package/dist/app-frontend/components/tree/MenuComponent.d.ts.map +1 -0
  156. package/{app-frontend → dist/app-frontend}/components/tree/MenuComponent.js +9 -11
  157. package/dist/app-frontend/components/tree/MenuComponent.js.map +1 -0
  158. package/{app-frontend → dist/app-frontend}/components/tree/MultiTypeAdaptor.d.ts +3 -2
  159. package/dist/app-frontend/components/tree/MultiTypeAdaptor.d.ts.map +1 -0
  160. package/{app-frontend → dist/app-frontend}/components/tree/MultiTypeAdaptor.js +7 -13
  161. package/dist/app-frontend/components/tree/MultiTypeAdaptor.js.map +1 -0
  162. package/{app-frontend → dist/app-frontend}/components/tree/SimpleTreeNodeRenderer.d.ts +3 -2
  163. package/dist/app-frontend/components/tree/SimpleTreeNodeRenderer.d.ts.map +1 -0
  164. package/{app-frontend → dist/app-frontend}/components/tree/SimpleTreeNodeRenderer.js +6 -11
  165. package/dist/app-frontend/components/tree/SimpleTreeNodeRenderer.js.map +1 -0
  166. package/{app-frontend → dist/app-frontend}/components/tree/Tree.d.ts +4 -3
  167. package/dist/app-frontend/components/tree/Tree.d.ts.map +1 -0
  168. package/dist/app-frontend/components/tree/Tree.js +287 -0
  169. package/dist/app-frontend/components/tree/Tree.js.map +1 -0
  170. package/{app-frontend → dist/app-frontend}/components/tree/types.d.ts +2 -1
  171. package/dist/app-frontend/components/tree/types.d.ts.map +1 -0
  172. package/dist/app-frontend/components/tree/types.js +23 -0
  173. package/{app-frontend → dist/app-frontend}/components/tree/types.js.map +1 -1
  174. package/{app-frontend → dist/app-frontend}/components/treeicons.d.ts +1 -0
  175. package/dist/app-frontend/components/treeicons.d.ts.map +1 -0
  176. package/dist/app-frontend/components/treeicons.js +6 -0
  177. package/dist/app-frontend/components/treeicons.js.map +1 -0
  178. package/{app-frontend → dist/app-frontend}/components/types.d.ts +1 -0
  179. package/dist/app-frontend/components/types.d.ts.map +1 -0
  180. package/{app-frontend/components/form → dist/app-frontend/components}/types.js +1 -2
  181. package/{app-frontend → dist/app-frontend}/components/types.js.map +1 -1
  182. package/{app-frontend → dist/app-frontend}/core/AbstractThunder.d.ts +3 -2
  183. package/dist/app-frontend/core/AbstractThunder.d.ts.map +1 -0
  184. package/{app-frontend → dist/app-frontend}/core/AbstractThunder.js +14 -17
  185. package/dist/app-frontend/core/AbstractThunder.js.map +1 -0
  186. package/{app-frontend → dist/app-frontend}/core/AppPage.d.ts +3 -2
  187. package/dist/app-frontend/core/AppPage.d.ts.map +1 -0
  188. package/{app-frontend → dist/app-frontend}/core/AppPage.js +8 -11
  189. package/dist/app-frontend/core/AppPage.js.map +1 -0
  190. package/{app-frontend → dist/app-frontend}/core/AppWrapper.d.ts +2 -1
  191. package/dist/app-frontend/core/AppWrapper.d.ts.map +1 -0
  192. package/dist/app-frontend/core/AppWrapper.js +22 -0
  193. package/dist/app-frontend/core/AppWrapper.js.map +1 -0
  194. package/{app-frontend → dist/app-frontend}/core/BaseComponent.d.ts +3 -2
  195. package/dist/app-frontend/core/BaseComponent.d.ts.map +1 -0
  196. package/{app-frontend → dist/app-frontend}/core/BaseComponent.js +33 -33
  197. package/dist/app-frontend/core/BaseComponent.js.map +1 -0
  198. package/{app-frontend → dist/app-frontend}/core/SimpleScriptInjector.d.ts +1 -0
  199. package/dist/app-frontend/core/SimpleScriptInjector.d.ts.map +1 -0
  200. package/{app-frontend → dist/app-frontend}/core/SimpleScriptInjector.js +5 -9
  201. package/dist/app-frontend/core/SimpleScriptInjector.js.map +1 -0
  202. package/{app-frontend → dist/app-frontend}/core/Thunder.d.ts +4 -3
  203. package/dist/app-frontend/core/Thunder.d.ts.map +1 -0
  204. package/dist/app-frontend/core/Thunder.js +88 -0
  205. package/dist/app-frontend/core/Thunder.js.map +1 -0
  206. package/{app-frontend → dist/app-frontend}/core/thunder-dispatcher.d.ts +2 -1
  207. package/dist/app-frontend/core/thunder-dispatcher.d.ts.map +1 -0
  208. package/dist/app-frontend/core/thunder-dispatcher.js +19 -0
  209. package/dist/app-frontend/core/thunder-dispatcher.js.map +1 -0
  210. package/{app-frontend → dist/app-frontend}/modules/ConnectivityModule.d.ts +1 -0
  211. package/dist/app-frontend/modules/ConnectivityModule.d.ts.map +1 -0
  212. package/dist/app-frontend/modules/ConnectivityModule.js +23 -0
  213. package/dist/app-frontend/modules/ConnectivityModule.js.map +1 -0
  214. package/{app-frontend → dist/app-frontend}/modules/ForceUpgrade.d.ts +2 -1
  215. package/dist/app-frontend/modules/ForceUpgrade.d.ts.map +1 -0
  216. package/dist/app-frontend/modules/ForceUpgrade.js +46 -0
  217. package/dist/app-frontend/modules/ForceUpgrade.js.map +1 -0
  218. package/{app-frontend → dist/app-frontend}/modules/HistoryModule.d.ts +3 -2
  219. package/dist/app-frontend/modules/HistoryModule.d.ts.map +1 -0
  220. package/{app-frontend → dist/app-frontend}/modules/HistoryModule.js +34 -36
  221. package/dist/app-frontend/modules/HistoryModule.js.map +1 -0
  222. package/{app-frontend → dist/app-frontend}/modules/ResourcesModule.d.ts +1 -0
  223. package/dist/app-frontend/modules/ResourcesModule.d.ts.map +1 -0
  224. package/dist/app-frontend/modules/ResourcesModule.js +17 -0
  225. package/dist/app-frontend/modules/ResourcesModule.js.map +1 -0
  226. package/{app-frontend → dist/app-frontend}/modules/StorageModule.d.ts +2 -1
  227. package/dist/app-frontend/modules/StorageModule.d.ts.map +1 -0
  228. package/{app-frontend → dist/app-frontend}/modules/StorageModule.js +24 -27
  229. package/dist/app-frontend/modules/StorageModule.js.map +1 -0
  230. package/{app-frontend → dist/app-frontend}/modules/ThunderstormModule.d.ts +1 -0
  231. package/dist/app-frontend/modules/ThunderstormModule.d.ts.map +1 -0
  232. package/{app-frontend → dist/app-frontend}/modules/ThunderstormModule.js +3 -6
  233. package/dist/app-frontend/modules/ThunderstormModule.js.map +1 -0
  234. package/{app-frontend → dist/app-frontend}/modules/component-loader/ReactEntryComponentInjector.d.ts +3 -2
  235. package/dist/app-frontend/modules/component-loader/ReactEntryComponentInjector.d.ts.map +1 -0
  236. package/{app-frontend → dist/app-frontend}/modules/component-loader/ReactEntryComponentInjector.js +18 -21
  237. package/dist/app-frontend/modules/component-loader/ReactEntryComponentInjector.js.map +1 -0
  238. package/{app-frontend → dist/app-frontend}/modules/component-loader/entry-component-loading-module.d.ts +1 -0
  239. package/dist/app-frontend/modules/component-loader/entry-component-loading-module.d.ts.map +1 -0
  240. package/{app-frontend → dist/app-frontend}/modules/component-loader/entry-component-loading-module.js +10 -14
  241. package/dist/app-frontend/modules/component-loader/entry-component-loading-module.js.map +1 -0
  242. package/{app-frontend → dist/app-frontend}/modules/dialog/Dialog.d.ts +4 -3
  243. package/dist/app-frontend/modules/dialog/Dialog.d.ts.map +1 -0
  244. package/dist/app-frontend/modules/dialog/Dialog.js +154 -0
  245. package/dist/app-frontend/modules/dialog/Dialog.js.map +1 -0
  246. package/{app-frontend → dist/app-frontend}/modules/dialog/DialogModule.d.ts +3 -2
  247. package/dist/app-frontend/modules/dialog/DialogModule.d.ts.map +1 -0
  248. package/{app-frontend → dist/app-frontend}/modules/dialog/DialogModule.js +28 -27
  249. package/dist/app-frontend/modules/dialog/DialogModule.js.map +1 -0
  250. package/dist/app-frontend/modules/http/HttpClient.d.ts +2 -0
  251. package/dist/app-frontend/modules/http/HttpClient.d.ts.map +1 -0
  252. package/{app-frontend → dist/app-frontend}/modules/http/HttpClient.js +3 -3
  253. package/{app-frontend → dist/app-frontend}/modules/http/HttpClient.js.map +1 -1
  254. package/{app-frontend → dist/app-frontend}/modules/http/XhrHttpModule.d.ts +4 -3
  255. package/dist/app-frontend/modules/http/XhrHttpModule.d.ts.map +1 -0
  256. package/{app-frontend → dist/app-frontend}/modules/http/XhrHttpModule.js +30 -32
  257. package/dist/app-frontend/modules/http/XhrHttpModule.js.map +1 -0
  258. package/{app-frontend → dist/app-frontend}/modules/locale/LocaleModule.d.ts +2 -1
  259. package/dist/app-frontend/modules/locale/LocaleModule.d.ts.map +1 -0
  260. package/dist/app-frontend/modules/locale/LocaleModule.js +42 -0
  261. package/dist/app-frontend/modules/locale/LocaleModule.js.map +1 -0
  262. package/{app-frontend → dist/app-frontend}/modules/locale/types.d.ts +1 -0
  263. package/dist/app-frontend/modules/locale/types.d.ts.map +1 -0
  264. package/dist/app-frontend/modules/locale/types.js +2 -0
  265. package/{app-frontend → dist/app-frontend}/modules/menu/MenuAndButton.d.ts +6 -5
  266. package/dist/app-frontend/modules/menu/MenuAndButton.d.ts.map +1 -0
  267. package/dist/app-frontend/modules/menu/MenuAndButton.js +38 -0
  268. package/dist/app-frontend/modules/menu/MenuAndButton.js.map +1 -0
  269. package/{app-frontend → dist/app-frontend}/modules/menu/MenuModule.d.ts +7 -6
  270. package/dist/app-frontend/modules/menu/MenuModule.d.ts.map +1 -0
  271. package/dist/app-frontend/modules/menu/MenuModule.js +60 -0
  272. package/dist/app-frontend/modules/menu/MenuModule.js.map +1 -0
  273. package/{app-frontend → dist/app-frontend}/modules/menu/PopupMenu.d.ts +4 -3
  274. package/dist/app-frontend/modules/menu/PopupMenu.d.ts.map +1 -0
  275. package/dist/app-frontend/modules/menu/PopupMenu.js +91 -0
  276. package/dist/app-frontend/modules/menu/PopupMenu.js.map +1 -0
  277. package/{app-frontend → dist/app-frontend}/modules/routing/RoutingModule.d.ts +2 -1
  278. package/dist/app-frontend/modules/routing/RoutingModule.d.ts.map +1 -0
  279. package/{app-frontend → dist/app-frontend}/modules/routing/RoutingModule.js +24 -24
  280. package/dist/app-frontend/modules/routing/RoutingModule.js.map +1 -0
  281. package/{app-frontend → dist/app-frontend}/modules/routing/route.d.ts +1 -0
  282. package/dist/app-frontend/modules/routing/route.d.ts.map +1 -0
  283. package/dist/app-frontend/modules/routing/route.js +68 -0
  284. package/dist/app-frontend/modules/routing/route.js.map +1 -0
  285. package/{app-frontend → dist/app-frontend}/modules/toaster/BaseToaster.d.ts +3 -2
  286. package/dist/app-frontend/modules/toaster/BaseToaster.d.ts.map +1 -0
  287. package/dist/app-frontend/modules/toaster/BaseToaster.js +52 -0
  288. package/dist/app-frontend/modules/toaster/BaseToaster.js.map +1 -0
  289. package/{app-frontend → dist/app-frontend}/modules/toaster/Toaster.d.ts +3 -2
  290. package/dist/app-frontend/modules/toaster/Toaster.d.ts.map +1 -0
  291. package/{app-frontend → dist/app-frontend}/modules/toaster/Toaster.js +6 -8
  292. package/dist/app-frontend/modules/toaster/Toaster.js.map +1 -0
  293. package/{app-frontend → dist/app-frontend}/modules/toaster/ToasterModule.d.ts +4 -3
  294. package/dist/app-frontend/modules/toaster/ToasterModule.d.ts.map +1 -0
  295. package/{app-frontend → dist/app-frontend}/modules/toaster/ToasterModule.js +50 -56
  296. package/dist/app-frontend/modules/toaster/ToasterModule.js.map +1 -0
  297. package/{app-frontend → dist/app-frontend}/modules/tooltip/Tooltip.d.ts +4 -3
  298. package/dist/app-frontend/modules/tooltip/Tooltip.d.ts.map +1 -0
  299. package/{app-frontend → dist/app-frontend}/modules/tooltip/Tooltip.js +21 -23
  300. package/dist/app-frontend/modules/tooltip/Tooltip.js.map +1 -0
  301. package/{app-frontend → dist/app-frontend}/modules/tooltip/TooltipModule.d.ts +2 -1
  302. package/dist/app-frontend/modules/tooltip/TooltipModule.d.ts.map +1 -0
  303. package/dist/app-frontend/modules/tooltip/TooltipModule.js +71 -0
  304. package/dist/app-frontend/modules/tooltip/TooltipModule.js.map +1 -0
  305. package/{app-frontend → dist/app-frontend}/tools/KeyboardListener.d.ts +1 -0
  306. package/dist/app-frontend/tools/KeyboardListener.d.ts.map +1 -0
  307. package/{app-frontend → dist/app-frontend}/tools/KeyboardListener.js +16 -22
  308. package/dist/app-frontend/tools/KeyboardListener.js.map +1 -0
  309. package/{app-frontend → dist/app-frontend}/tools/Stylable.d.ts +2 -1
  310. package/dist/app-frontend/tools/Stylable.d.ts.map +1 -0
  311. package/{app-frontend → dist/app-frontend}/tools/Stylable.js +5 -6
  312. package/dist/app-frontend/tools/Stylable.js.map +1 -0
  313. package/dist/app-frontend/types/renderer-map.d.ts +2 -0
  314. package/dist/app-frontend/types/renderer-map.d.ts.map +1 -0
  315. package/{app-frontend → dist/app-frontend}/types/renderer-map.js +1 -1
  316. package/{app-frontend → dist/app-frontend}/types/renderer-map.js.map +1 -1
  317. package/{app-frontend → dist/app-frontend}/utils/tools.d.ts +2 -1
  318. package/dist/app-frontend/utils/tools.d.ts.map +1 -0
  319. package/dist/app-frontend/utils/tools.js +28 -0
  320. package/dist/app-frontend/utils/tools.js.map +1 -0
  321. package/{app-frontend → dist/app-frontend}/widgets/FieldEditor.d.ts +3 -2
  322. package/dist/app-frontend/widgets/FieldEditor.d.ts.map +1 -0
  323. package/dist/app-frontend/widgets/FieldEditor.js +22 -0
  324. package/dist/app-frontend/widgets/FieldEditor.js.map +1 -0
  325. package/{app-frontend → dist/app-frontend}/widgets/FieldEditorClick.d.ts +4 -3
  326. package/dist/app-frontend/widgets/FieldEditorClick.d.ts.map +1 -0
  327. package/dist/app-frontend/widgets/FieldEditorClick.js +44 -0
  328. package/dist/app-frontend/widgets/FieldEditorClick.js.map +1 -0
  329. package/{app-frontend → dist/app-frontend}/widgets/FieldEditorWithButtons.d.ts +4 -3
  330. package/dist/app-frontend/widgets/FieldEditorWithButtons.d.ts.map +1 -0
  331. package/dist/app-frontend/widgets/FieldEditorWithButtons.js +51 -0
  332. package/dist/app-frontend/widgets/FieldEditorWithButtons.js.map +1 -0
  333. package/{app-frontend → dist/app-frontend}/widgets/click-to-drag/ClickToDrag.d.ts +2 -1
  334. package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.d.ts.map +1 -0
  335. package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.js +35 -0
  336. package/dist/app-frontend/widgets/click-to-drag/ClickToDrag.js.map +1 -0
  337. package/{app-frontend → dist/app-frontend}/widgets/click-to-drag/OverlayWithDocumentListener.d.ts +2 -1
  338. package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.d.ts.map +1 -0
  339. package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js +30 -0
  340. package/dist/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js.map +1 -0
  341. package/dist/backend-test.d.ts +2 -0
  342. package/dist/backend-test.d.ts.map +1 -0
  343. package/{app-frontend/components/tree/types.js → dist/backend-test.js} +2 -3
  344. package/dist/backend-test.js.map +1 -0
  345. package/dist/backend.d.ts +18 -0
  346. package/dist/backend.d.ts.map +1 -0
  347. package/dist/backend.js +38 -0
  348. package/dist/backend.js.map +1 -0
  349. package/dist/frontend.d.ts +53 -0
  350. package/dist/frontend.d.ts.map +1 -0
  351. package/dist/frontend.js +71 -0
  352. package/dist/frontend.js.map +1 -0
  353. package/dist/index.d.ts +7 -0
  354. package/dist/index.d.ts.map +1 -0
  355. package/{app-backend/api/v1/utils/version/_assert.js → dist/index.js} +7 -5
  356. package/dist/index.js.map +1 -0
  357. package/{shared → dist/shared}/BaseHttpModule.d.ts +4 -3
  358. package/dist/shared/BaseHttpModule.d.ts.map +1 -0
  359. package/dist/shared/BaseHttpModule.js +89 -0
  360. package/dist/shared/BaseHttpModule.js.map +1 -0
  361. package/{shared → dist/shared}/BaseHttpRequest.d.ts +3 -2
  362. package/dist/shared/BaseHttpRequest.d.ts.map +1 -0
  363. package/{shared → dist/shared}/BaseHttpRequest.js +82 -85
  364. package/dist/shared/BaseHttpRequest.js.map +1 -0
  365. package/{shared → dist/shared}/consts.d.ts +1 -0
  366. package/dist/shared/consts.d.ts.map +1 -0
  367. package/dist/shared/consts.js +25 -0
  368. package/dist/shared/consts.js.map +1 -0
  369. package/{shared → dist/shared}/force-upgrade.d.ts +2 -1
  370. package/dist/shared/force-upgrade.d.ts.map +1 -0
  371. package/dist/shared/force-upgrade.js +24 -0
  372. package/dist/shared/force-upgrade.js.map +1 -0
  373. package/{shared → dist/shared}/request-types.d.ts +3 -2
  374. package/dist/shared/request-types.d.ts.map +1 -0
  375. package/{shared → dist/shared}/request-types.js +4 -6
  376. package/dist/shared/request-types.js.map +1 -0
  377. package/{shared → dist/shared}/types.d.ts +1 -0
  378. package/dist/shared/types.d.ts.map +1 -0
  379. package/{shared → dist/shared}/types.js +2 -5
  380. package/dist/shared/types.js.map +1 -0
  381. package/{test-backend → dist/test-backend}/StormTester.d.ts +2 -1
  382. package/dist/test-backend/StormTester.d.ts.map +1 -0
  383. package/dist/test-backend/StormTester.js +78 -0
  384. package/dist/test-backend/StormTester.js.map +1 -0
  385. package/dist/test-frontend/ThunderTester.d.ts +2 -0
  386. package/dist/test-frontend/ThunderTester.d.ts.map +1 -0
  387. package/{test-frontend → dist/test-frontend}/ThunderTester.js +1 -1
  388. package/dist/tsconfig.tsbuildinfo +1 -0
  389. package/package.json +72 -14
  390. package/app-backend/api/v1/utils/version/_assert.d.ts +0 -1
  391. package/app-backend/api/v1/utils/version/_assert.js.map +0 -1
  392. package/app-backend/api/v1/utils/version/assert.d.ts +0 -1
  393. package/app-backend/api/v1/utils/version/assert.js +0 -48
  394. package/app-backend/api/v1/utils/version/assert.js.map +0 -1
  395. package/app-backend/core/BaseStorm.js +0 -19
  396. package/app-backend/core/BaseStorm.js.map +0 -1
  397. package/app-backend/core/Storm.js +0 -89
  398. package/app-backend/core/Storm.js.map +0 -1
  399. package/app-backend/exceptions.js +0 -26
  400. package/app-backend/exceptions.js.map +0 -1
  401. package/app-backend/modules/CleanupScheduler.js +0 -41
  402. package/app-backend/modules/CleanupScheduler.js.map +0 -1
  403. package/app-backend/modules/FirestoreBackupScheduler.js +0 -64
  404. package/app-backend/modules/FirestoreBackupScheduler.js.map +0 -1
  405. package/app-backend/modules/ForceUpgrade.js +0 -98
  406. package/app-backend/modules/ForceUpgrade.js.map +0 -1
  407. package/app-backend/modules/SlackModule.js +0 -74
  408. package/app-backend/modules/SlackModule.js.map +0 -1
  409. package/app-backend/modules/_imports.d.ts +0 -10
  410. package/app-backend/modules/_imports.js +0 -47
  411. package/app-backend/modules/_imports.js.map +0 -1
  412. package/app-backend/modules/http/AxiosHttpModule.js.map +0 -1
  413. package/app-backend/modules/http/types.js +0 -3
  414. package/app-backend/modules/proxy/RemoteProxy.js +0 -101
  415. package/app-backend/modules/proxy/RemoteProxy.js.map +0 -1
  416. package/app-backend/modules/proxy/RemoteProxyCaller.js +0 -110
  417. package/app-backend/modules/proxy/RemoteProxyCaller.js.map +0 -1
  418. package/app-backend/modules/server/HttpServer.js.map +0 -1
  419. package/app-backend/modules/server/server-api.js +0 -351
  420. package/app-backend/modules/server/server-api.js.map +0 -1
  421. package/app-backend/modules/server/server-errors.js.map +0 -1
  422. package/app-backend/utils/LogClient_File.js.map +0 -1
  423. package/app-backend/utils/file.js +0 -47
  424. package/app-backend/utils/file.js.map +0 -1
  425. package/app-backend/utils/promisify-request.d.ts +0 -2
  426. package/app-backend/utils/promisify-request.js +0 -39
  427. package/app-backend/utils/promisify-request.js.map +0 -1
  428. package/app-backend/utils/to-be-removed.js +0 -28
  429. package/app-backend/utils/to-be-removed.js.map +0 -1
  430. package/app-backend/utils/types.js.map +0 -1
  431. package/app-frontend/components/ActionButton.js.map +0 -1
  432. package/app-frontend/components/FilterInput.js +0 -63
  433. package/app-frontend/components/FilterInput.js.map +0 -1
  434. package/app-frontend/components/GenericSelect.js.map +0 -1
  435. package/app-frontend/components/GenericTabs.js +0 -11
  436. package/app-frontend/components/GenericTabs.js.map +0 -1
  437. package/app-frontend/components/Overlay.js.map +0 -1
  438. package/app-frontend/components/TS_Input.js.map +0 -1
  439. package/app-frontend/components/TS_Table.js.map +0 -1
  440. package/app-frontend/components/TS_TextArea.js.map +0 -1
  441. package/app-frontend/components/Tabs.js +0 -32
  442. package/app-frontend/components/Tabs.js.map +0 -1
  443. package/app-frontend/components/adapter/Adapter.js.map +0 -1
  444. package/app-frontend/components/adapter/BaseRenderer.js.map +0 -1
  445. package/app-frontend/components/checkbox/TS_Checkbox.js.map +0 -1
  446. package/app-frontend/components/checkbox/TS_CheckboxField.js +0 -26
  447. package/app-frontend/components/checkbox/TS_CheckboxField.js.map +0 -1
  448. package/app-frontend/components/form/Form.js.map +0 -1
  449. package/app-frontend/components/playground/Playground.js.map +0 -1
  450. package/app-frontend/components/tree/MenuComponent.js.map +0 -1
  451. package/app-frontend/components/tree/MultiTypeAdaptor.js.map +0 -1
  452. package/app-frontend/components/tree/SimpleTreeNodeRenderer.js.map +0 -1
  453. package/app-frontend/components/tree/Tree.js +0 -274
  454. package/app-frontend/components/tree/Tree.js.map +0 -1
  455. package/app-frontend/components/treeicons.js +0 -11
  456. package/app-frontend/components/treeicons.js.map +0 -1
  457. package/app-frontend/core/AbstractThunder.js.map +0 -1
  458. package/app-frontend/core/AppPage.js.map +0 -1
  459. package/app-frontend/core/AppWrapper.js +0 -27
  460. package/app-frontend/core/AppWrapper.js.map +0 -1
  461. package/app-frontend/core/BaseComponent.js.map +0 -1
  462. package/app-frontend/core/SimpleScriptInjector.js.map +0 -1
  463. package/app-frontend/core/Thunder.js +0 -92
  464. package/app-frontend/core/Thunder.js.map +0 -1
  465. package/app-frontend/core/thunder-dispatcher.js +0 -32
  466. package/app-frontend/core/thunder-dispatcher.js.map +0 -1
  467. package/app-frontend/modules/ConnectivityModule.js +0 -25
  468. package/app-frontend/modules/ConnectivityModule.js.map +0 -1
  469. package/app-frontend/modules/ForceUpgrade.js +0 -49
  470. package/app-frontend/modules/ForceUpgrade.js.map +0 -1
  471. package/app-frontend/modules/HistoryModule.js.map +0 -1
  472. package/app-frontend/modules/ResourcesModule.js +0 -19
  473. package/app-frontend/modules/ResourcesModule.js.map +0 -1
  474. package/app-frontend/modules/StorageModule.js.map +0 -1
  475. package/app-frontend/modules/ThunderstormModule.js.map +0 -1
  476. package/app-frontend/modules/component-loader/ReactEntryComponentInjector.js.map +0 -1
  477. package/app-frontend/modules/component-loader/entry-component-loading-module.js.map +0 -1
  478. package/app-frontend/modules/dialog/Dialog.js +0 -163
  479. package/app-frontend/modules/dialog/Dialog.js.map +0 -1
  480. package/app-frontend/modules/dialog/DialogModule.js.map +0 -1
  481. package/app-frontend/modules/http/HttpClient.d.ts +0 -0
  482. package/app-frontend/modules/http/XhrHttpModule.js.map +0 -1
  483. package/app-frontend/modules/locale/LocaleModule.js +0 -43
  484. package/app-frontend/modules/locale/LocaleModule.js.map +0 -1
  485. package/app-frontend/modules/locale/types.js +0 -3
  486. package/app-frontend/modules/menu/MenuAndButton.js +0 -40
  487. package/app-frontend/modules/menu/MenuAndButton.js.map +0 -1
  488. package/app-frontend/modules/menu/MenuModule.js +0 -57
  489. package/app-frontend/modules/menu/MenuModule.js.map +0 -1
  490. package/app-frontend/modules/menu/PopupMenu.js +0 -94
  491. package/app-frontend/modules/menu/PopupMenu.js.map +0 -1
  492. package/app-frontend/modules/routing/RoutingModule.js.map +0 -1
  493. package/app-frontend/modules/routing/route.js +0 -69
  494. package/app-frontend/modules/routing/route.js.map +0 -1
  495. package/app-frontend/modules/toaster/BaseToaster.js +0 -56
  496. package/app-frontend/modules/toaster/BaseToaster.js.map +0 -1
  497. package/app-frontend/modules/toaster/Toaster.js.map +0 -1
  498. package/app-frontend/modules/toaster/ToasterModule.js.map +0 -1
  499. package/app-frontend/modules/tooltip/Tooltip.js.map +0 -1
  500. package/app-frontend/modules/tooltip/TooltipModule.js +0 -74
  501. package/app-frontend/modules/tooltip/TooltipModule.js.map +0 -1
  502. package/app-frontend/tools/KeyboardListener.js.map +0 -1
  503. package/app-frontend/tools/Stylable.js.map +0 -1
  504. package/app-frontend/types/renderer-map.d.ts +0 -0
  505. package/app-frontend/utils/tools.js +0 -32
  506. package/app-frontend/utils/tools.js.map +0 -1
  507. package/app-frontend/widgets/FieldEditor.js +0 -25
  508. package/app-frontend/widgets/FieldEditor.js.map +0 -1
  509. package/app-frontend/widgets/FieldEditorClick.js +0 -48
  510. package/app-frontend/widgets/FieldEditorClick.js.map +0 -1
  511. package/app-frontend/widgets/FieldEditorWithButtons.js +0 -55
  512. package/app-frontend/widgets/FieldEditorWithButtons.js.map +0 -1
  513. package/app-frontend/widgets/click-to-drag/ClickToDrag.js +0 -39
  514. package/app-frontend/widgets/click-to-drag/ClickToDrag.js.map +0 -1
  515. package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js +0 -34
  516. package/app-frontend/widgets/click-to-drag/OverlayWithDocumentListener.js.map +0 -1
  517. package/backend-test.d.ts +0 -1
  518. package/backend-test.js +0 -38
  519. package/backend-test.js.map +0 -1
  520. package/backend.d.ts +0 -17
  521. package/backend.js +0 -54
  522. package/backend.js.map +0 -1
  523. package/frontend.d.ts +0 -53
  524. package/frontend.js +0 -90
  525. package/frontend.js.map +0 -1
  526. package/index.d.ts +0 -6
  527. package/index.js +0 -43
  528. package/index.js.map +0 -1
  529. package/shared/BaseHttpModule.js +0 -66
  530. package/shared/BaseHttpModule.js.map +0 -1
  531. package/shared/BaseHttpRequest.js.map +0 -1
  532. package/shared/consts.js +0 -28
  533. package/shared/consts.js.map +0 -1
  534. package/shared/force-upgrade.js +0 -26
  535. package/shared/force-upgrade.js.map +0 -1
  536. package/shared/request-types.js.map +0 -1
  537. package/shared/types.js.map +0 -1
  538. package/test-backend/StormTester.js +0 -90
  539. package/test-backend/StormTester.js.map +0 -1
  540. package/test-frontend/ThunderTester.d.ts +0 -0
  541. /package/{app-frontend → dist/app-frontend}/modules/locale/types.js.map +0 -0
  542. /package/{test-frontend → dist/test-frontend}/ThunderTester.js.map +0 -0
package/LICENSE ADDED
@@ -0,0 +1,3 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ Full license here: http://www.apache.org/licenses/LICENSE-2.0
@@ -0,0 +1,4 @@
1
+ import { RouteResolver } from "../../../../modules/server/HttpServer.js";
2
+ declare const _default: RouteResolver;
3
+ export default _default;
4
+ //# 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":"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"}
@@ -4,3 +4,4 @@ export declare abstract class BaseStorm extends ModuleManager {
4
4
  setEnvironment(envKey: string): this;
5
5
  getEnvironment(): string;
6
6
  }
7
+ //# sourceMappingURL=BaseStorm.d.ts.map
@@ -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":"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"}
@@ -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"}
@@ -16,3 +16,4 @@ export declare class CleanupScheduler_Class extends FirebaseScheduledFunction {
16
16
  onScheduledEvent: () => Promise<any>;
17
17
  }
18
18
  export declare const CleanupScheduler: CleanupScheduler_Class;
19
+ //# sourceMappingURL=CleanupScheduler.d.ts.map
@@ -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":"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"}
@@ -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