@api-client/ui 0.0.3 → 0.0.5

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 (595) hide show
  1. package/demo/amf/api-annotation.html +1 -0
  2. package/demo/amf/api-channel.html +1 -0
  3. package/demo/amf/api-console.html +1 -0
  4. package/demo/amf/api-documentation-document.html +1 -0
  5. package/demo/amf/api-documentation.html +1 -0
  6. package/demo/amf/api-editor.html +1 -0
  7. package/demo/amf/api-navigation.html +1 -0
  8. package/demo/amf/api-operation.html +1 -0
  9. package/demo/amf/api-payload.html +1 -0
  10. package/demo/amf/api-request.html +1 -0
  11. package/demo/amf/api-resource.html +1 -0
  12. package/demo/amf/api-schema-documentation.html +1 -0
  13. package/demo/amf/api-security-documentation.html +1 -0
  14. package/demo/amf/api-server-picker.html +1 -0
  15. package/demo/amf/api-summary.html +1 -0
  16. package/demo/amf/bare-components.html +2 -0
  17. package/demo/amf/index.html +2 -0
  18. package/demo/amf/oauth-authorize.html +2 -0
  19. package/demo/amf/request-editor.html +1 -0
  20. package/demo/elements/authorization/api-key.html +1 -0
  21. package/demo/elements/authorization/basic.html +1 -0
  22. package/demo/elements/authorization/bearer.html +1 -0
  23. package/demo/elements/authorization/cc.html +1 -0
  24. package/demo/elements/authorization/index.html +2 -0
  25. package/demo/elements/authorization/ntlm.html +1 -0
  26. package/demo/elements/authorization/oauth-error.html +2 -0
  27. package/demo/elements/authorization/oauth-popup.html +2 -0
  28. package/demo/elements/authorization/oauth2.html +1 -0
  29. package/demo/elements/authorization/oidc.html +1 -0
  30. package/demo/elements/authorization/redirect.html +3 -1
  31. package/demo/elements/context-menu/basic.html +2 -1
  32. package/demo/elements/context-menu/custom-data.html +2 -1
  33. package/demo/elements/context-menu/enabled-state.html +2 -1
  34. package/demo/elements/context-menu/icons.html +2 -1
  35. package/demo/elements/context-menu/index.html +2 -0
  36. package/demo/elements/context-menu/nested.html +2 -1
  37. package/demo/elements/context-menu/no-execute.html +2 -1
  38. package/demo/elements/context-menu/radio-menu.html +2 -1
  39. package/demo/elements/context-menu/separators.html +2 -1
  40. package/demo/elements/environment/environment-editor.html +1 -0
  41. package/demo/elements/environment/index.html +1 -0
  42. package/demo/elements/environment/server-editor.html +1 -1
  43. package/demo/elements/environment/variables-editor.html +1 -1
  44. package/demo/elements/har/har-viewer.html +1 -0
  45. package/demo/elements/highlight/index.html +1 -0
  46. package/demo/elements/highlight/marked-highlight.html +1 -0
  47. package/demo/elements/highlight/prism-highlight.html +1 -0
  48. package/demo/elements/http/body-editor.html +1 -0
  49. package/demo/elements/http/headers.html +1 -0
  50. package/demo/elements/http/http-assertions.html +1 -0
  51. package/demo/elements/http/request-editor.html +1 -0
  52. package/demo/elements/http/request-log.html +1 -0
  53. package/demo/elements/http/url-editing.html +1 -0
  54. package/demo/elements/icons/index.html +1 -0
  55. package/demo/elements/project/project-run-report.html +1 -0
  56. package/demo/elements/project/request-editor.html +1 -0
  57. package/demo/elements/ui/buttons/api-button.html +2 -1
  58. package/demo/elements/ui/buttons/api-icon-button.html +2 -1
  59. package/demo/elements/ui/buttons/segmented-buttons.html +2 -1
  60. package/demo/elements/ui/chip/api-chip.html +2 -1
  61. package/demo/elements/ui/collapse/ui-collapse.html +2 -1
  62. package/demo/elements/ui/dialog/ui-dialog.html +2 -1
  63. package/demo/elements/ui/inputs/api-checkbox.html +2 -1
  64. package/demo/elements/ui/inputs/api-input.html +2 -1
  65. package/demo/elements/ui/inputs/api-radio.html +2 -1
  66. package/demo/elements/ui/inputs/api-switch.html +2 -1
  67. package/demo/elements/ui/list/dropdown-list.html +2 -1
  68. package/demo/elements/ui/list/list.html +2 -1
  69. package/demo/elements/ui/notification/snack.html +2 -1
  70. package/demo/elements/ui/progress/ui-progress.html +2 -1
  71. package/demo/elements/ui/tabs/tabs.html +2 -1
  72. package/dist/amf/lib/AmfParameters.js +0 -4
  73. package/dist/amf/lib/AmfParameters.js.map +1 -1
  74. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  75. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  76. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  77. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  78. package/dist/amf/store/AmfGraphStore.js +0 -2
  79. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  80. package/dist/amf/store/AmfStore.js +0 -7
  81. package/dist/amf/store/AmfStore.js.map +1 -1
  82. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  83. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  84. package/dist/bindings/base/PlatformBindings.js +6 -10
  85. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  86. package/dist/bindings/base/ProxyBindings.js +9 -6
  87. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  88. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  89. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  90. package/dist/bindings/base/StoreBindings.js +162 -170
  91. package/dist/bindings/base/StoreBindings.js.map +1 -1
  92. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  93. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  94. package/dist/bindings/web/WebFileBindings.js +7 -4
  95. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  96. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  97. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  98. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  99. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  100. package/dist/bindings/web/WebProxyBindings.js +5 -6
  101. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  102. package/dist/bindings/web/WebStoreBindings.js +39 -44
  103. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  104. package/dist/contextual-menu/ContextualMenu.js +10 -19
  105. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  106. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  107. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  108. package/dist/contextual-menu/MenuItem.js +0 -12
  109. package/dist/contextual-menu/MenuItem.js.map +1 -1
  110. package/dist/define/amf/api-annotation-document.js +1 -1
  111. package/dist/define/amf/api-annotation-document.js.map +1 -1
  112. package/dist/define/amf/api-authorization-editor.js +1 -1
  113. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  114. package/dist/define/amf/api-channel-document.js +1 -1
  115. package/dist/define/amf/api-channel-document.js.map +1 -1
  116. package/dist/define/amf/api-documentation-document.js +1 -1
  117. package/dist/define/amf/api-documentation-document.js.map +1 -1
  118. package/dist/define/amf/api-documentation.js +1 -1
  119. package/dist/define/amf/api-documentation.js.map +1 -1
  120. package/dist/define/amf/api-navigation.js +1 -1
  121. package/dist/define/amf/api-navigation.js.map +1 -1
  122. package/dist/define/amf/api-operation-document.js +1 -1
  123. package/dist/define/amf/api-operation-document.js.map +1 -1
  124. package/dist/define/amf/api-parameter-document.js +1 -1
  125. package/dist/define/amf/api-parameter-document.js.map +1 -1
  126. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  127. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  128. package/dist/define/amf/api-payload-document.js +1 -1
  129. package/dist/define/amf/api-payload-document.js.map +1 -1
  130. package/dist/define/amf/api-request-document.js +1 -1
  131. package/dist/define/amf/api-request-document.js.map +1 -1
  132. package/dist/define/amf/api-request-editor.js +1 -1
  133. package/dist/define/amf/api-request-editor.js.map +1 -1
  134. package/dist/define/amf/api-request.js +1 -1
  135. package/dist/define/amf/api-request.js.map +1 -1
  136. package/dist/define/amf/api-resource-document.js +1 -1
  137. package/dist/define/amf/api-resource-document.js.map +1 -1
  138. package/dist/define/amf/api-response-document.js +1 -1
  139. package/dist/define/amf/api-response-document.js.map +1 -1
  140. package/dist/define/amf/api-schema-document.js +1 -1
  141. package/dist/define/amf/api-schema-document.js.map +1 -1
  142. package/dist/define/amf/api-security-document.js +1 -1
  143. package/dist/define/amf/api-security-document.js.map +1 -1
  144. package/dist/define/amf/api-security-requirement-document.js +1 -1
  145. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  146. package/dist/define/amf/api-server-picker.js +1 -1
  147. package/dist/define/amf/api-server-picker.js.map +1 -1
  148. package/dist/define/amf/api-summary.js +1 -1
  149. package/dist/define/amf/api-summary.js.map +1 -1
  150. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  151. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  152. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  153. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  154. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  155. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  156. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  157. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  158. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  159. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  160. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  161. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  162. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  163. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  164. package/dist/define/authorization/apikey-authorization.js +1 -1
  165. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  166. package/dist/define/authorization/basic-authorization.js +1 -1
  167. package/dist/define/authorization/basic-authorization.js.map +1 -1
  168. package/dist/define/authorization/bearer-authorization.js +1 -1
  169. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  170. package/dist/define/authorization/cc-authorization.js +1 -1
  171. package/dist/define/authorization/cc-authorization.js.map +1 -1
  172. package/dist/define/authorization/ntlm-authorization.js +1 -1
  173. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  174. package/dist/define/authorization/oauth2-authorization.js +1 -1
  175. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  176. package/dist/define/authorization/oidc-authorization.js +1 -1
  177. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  178. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  179. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  180. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  181. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  182. package/dist/define/dialog/rename-dialog.js +1 -1
  183. package/dist/define/dialog/rename-dialog.js.map +1 -1
  184. package/dist/define/files/share-file.js +1 -1
  185. package/dist/define/files/share-file.js.map +1 -1
  186. package/dist/define/har/har-viewer.js +1 -1
  187. package/dist/define/har/har-viewer.js.map +1 -1
  188. package/dist/define/highlight/marked-highlight.js +1 -1
  189. package/dist/define/highlight/marked-highlight.js.map +1 -1
  190. package/dist/define/highlight/prism-highlight.js +1 -1
  191. package/dist/define/highlight/prism-highlight.js.map +1 -1
  192. package/dist/define/http/http-assertions.js +1 -1
  193. package/dist/define/http/http-assertions.js.map +1 -1
  194. package/dist/define/http/http-body-editor.js +1 -1
  195. package/dist/define/http/http-body-editor.js.map +1 -1
  196. package/dist/define/http/http-body-multipart-editor.js +1 -1
  197. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  198. package/dist/define/http/http-body-text-editor.js +1 -1
  199. package/dist/define/http/http-body-text-editor.js.map +1 -1
  200. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  201. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  202. package/dist/define/http/http-headers-form.js +1 -1
  203. package/dist/define/http/http-headers-form.js.map +1 -1
  204. package/dist/define/http/http-log-body.js +1 -1
  205. package/dist/define/http/http-log-body.js.map +1 -1
  206. package/dist/define/http/http-log-headers.js +1 -1
  207. package/dist/define/http/http-log-headers.js.map +1 -1
  208. package/dist/define/http/http-log-timings.js +1 -1
  209. package/dist/define/http/http-log-timings.js.map +1 -1
  210. package/dist/define/http/http-request-config.js +1 -1
  211. package/dist/define/http/http-request-config.js.map +1 -1
  212. package/dist/define/http/http-request-editor.js +1 -1
  213. package/dist/define/http/http-request-editor.js.map +1 -1
  214. package/dist/define/http/http-request-log.js +1 -1
  215. package/dist/define/http/http-request-log.js.map +1 -1
  216. package/dist/define/http/http-snippets.js +1 -1
  217. package/dist/define/http/http-snippets.js.map +1 -1
  218. package/dist/define/http/http-url-input.js +1 -1
  219. package/dist/define/http/http-url-input.js.map +1 -1
  220. package/dist/define/http/http-url-params-form.js +1 -1
  221. package/dist/define/http/http-url-params-form.js.map +1 -1
  222. package/dist/define/http-project/http-project-request-history.js +1 -1
  223. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  224. package/dist/define/http-project/http-project-request.js +2 -2
  225. package/dist/define/http-project/http-project-request.js.map +1 -1
  226. package/dist/define/http-project/project-navigation.js +1 -1
  227. package/dist/define/http-project/project-navigation.js.map +1 -1
  228. package/dist/define/http-project/project-run-report.js +1 -1
  229. package/dist/define/http-project/project-run-report.js.map +1 -1
  230. package/dist/define/http-project/project-runner.js +2 -2
  231. package/dist/define/http-project/project-runner.js.map +1 -1
  232. package/dist/define/layout/split-view.js +1 -1
  233. package/dist/define/layout/split-view.js.map +1 -1
  234. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  235. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  236. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  237. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  238. package/dist/define/ui/ui-button.js +1 -1
  239. package/dist/define/ui/ui-button.js.map +1 -1
  240. package/dist/define/ui/ui-chip.js +1 -1
  241. package/dist/define/ui/ui-chip.js.map +1 -1
  242. package/dist/define/ui/ui-collapse.js +1 -1
  243. package/dist/define/ui/ui-collapse.js.map +1 -1
  244. package/dist/define/ui/ui-dialog.js +1 -1
  245. package/dist/define/ui/ui-dialog.js.map +1 -1
  246. package/dist/define/ui/ui-dropdown-list.js +1 -1
  247. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  248. package/dist/define/ui/ui-icon-button.js +1 -1
  249. package/dist/define/ui/ui-icon-button.js.map +1 -1
  250. package/dist/define/ui/ui-icon.js +1 -1
  251. package/dist/define/ui/ui-icon.js.map +1 -1
  252. package/dist/define/ui/ui-list-item.js +1 -1
  253. package/dist/define/ui/ui-list-item.js.map +1 -1
  254. package/dist/define/ui/ui-list.js +1 -1
  255. package/dist/define/ui/ui-list.js.map +1 -1
  256. package/dist/define/ui/ui-listbox.js +1 -1
  257. package/dist/define/ui/ui-listbox.js.map +1 -1
  258. package/dist/define/ui/ui-progress.js +1 -1
  259. package/dist/define/ui/ui-progress.js.map +1 -1
  260. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  261. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  262. package/dist/define/ui/ui-segmented-button.js +1 -1
  263. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  264. package/dist/define/ui/ui-snackbar.js +1 -1
  265. package/dist/define/ui/ui-snackbar.js.map +1 -1
  266. package/dist/define/ui/ui-tab.js +1 -1
  267. package/dist/define/ui/ui-tab.js.map +1 -1
  268. package/dist/define/ui/ui-tabs.js +1 -1
  269. package/dist/define/ui/ui-tabs.js.map +1 -1
  270. package/dist/directives/data-attr.js +0 -1
  271. package/dist/directives/data-attr.js.map +1 -1
  272. package/dist/elements/ApiElement.js +0 -7
  273. package/dist/elements/ApiElement.js.map +1 -1
  274. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  275. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  276. package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
  277. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  278. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  279. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  280. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  281. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  282. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  283. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  284. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  285. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  286. package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
  287. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  288. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  289. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  290. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  291. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  292. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  293. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  294. package/dist/elements/amf/ApiRequest.element.js +0 -78
  295. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  296. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  297. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  298. package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
  299. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  300. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  301. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  302. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  303. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  304. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  305. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  306. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  307. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  308. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  309. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  310. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  311. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  312. package/dist/elements/amf/ApiSummary.element.js +0 -26
  313. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  314. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  315. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  316. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  317. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  318. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  319. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  320. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  321. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  322. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  323. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  324. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  325. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  326. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  327. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  328. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  329. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  330. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  331. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  332. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  333. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  334. package/dist/elements/authorization/ui/Authorization.js +18 -32
  335. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  336. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  337. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  338. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  339. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  340. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  341. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  342. package/dist/elements/code/HttpSnippets.js +9 -8
  343. package/dist/elements/code/HttpSnippets.js.map +1 -1
  344. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  345. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  346. package/dist/elements/dialog/Rename.js +0 -6
  347. package/dist/elements/dialog/Rename.js.map +1 -1
  348. package/dist/elements/environment/EnvironmentEditor.js +8 -11
  349. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  350. package/dist/elements/environment/ServerEditor.js +7 -45
  351. package/dist/elements/environment/ServerEditor.js.map +1 -1
  352. package/dist/elements/environment/VariablesEditor.js +7 -12
  353. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  354. package/dist/elements/files/ShareFile.js +19 -57
  355. package/dist/elements/files/ShareFile.js.map +1 -1
  356. package/dist/elements/har/HarViewer.js +6 -7
  357. package/dist/elements/har/HarViewer.js.map +1 -1
  358. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  359. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  360. package/dist/elements/highlight/PrismHighlight.js +9 -18
  361. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  362. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  363. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  364. package/dist/elements/http/BodyEditor.js +21 -33
  365. package/dist/elements/http/BodyEditor.js.map +1 -1
  366. package/dist/elements/http/BodyMultipartEditor.js +17 -18
  367. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  368. package/dist/elements/http/BodyTextEditor.js +2 -15
  369. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  370. package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
  371. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  372. package/dist/elements/http/HeadersForm.js +16 -17
  373. package/dist/elements/http/HeadersForm.js.map +1 -1
  374. package/dist/elements/http/HttpAssertions.js +8 -6
  375. package/dist/elements/http/HttpAssertions.js.map +1 -1
  376. package/dist/elements/http/LogBody.js +10 -21
  377. package/dist/elements/http/LogBody.js.map +1 -1
  378. package/dist/elements/http/LogHeaders.js +4 -23
  379. package/dist/elements/http/LogHeaders.js.map +1 -1
  380. package/dist/elements/http/LogTimings.js +11 -13
  381. package/dist/elements/http/LogTimings.js.map +1 -1
  382. package/dist/elements/http/RequestConfigElement.js +7 -4
  383. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  384. package/dist/elements/http/RequestEditor.js +54 -88
  385. package/dist/elements/http/RequestEditor.js.map +1 -1
  386. package/dist/elements/http/RequestLog.js +9 -14
  387. package/dist/elements/http/RequestLog.js.map +1 -1
  388. package/dist/elements/http/UrlInput.js +15 -25
  389. package/dist/elements/http/UrlInput.js.map +1 -1
  390. package/dist/elements/http/UrlParamsForm.js +16 -13
  391. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  392. package/dist/elements/layout/LayoutManager.js +16 -24
  393. package/dist/elements/layout/LayoutManager.js.map +1 -1
  394. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  395. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  396. package/dist/elements/layout/SplitItem.js +4 -12
  397. package/dist/elements/layout/SplitItem.js.map +1 -1
  398. package/dist/elements/layout/SplitLayout.js +18 -24
  399. package/dist/elements/layout/SplitLayout.js.map +1 -1
  400. package/dist/elements/layout/SplitPanel.js +10 -16
  401. package/dist/elements/layout/SplitPanel.js.map +1 -1
  402. package/dist/elements/layout/SplitView.js +17 -26
  403. package/dist/elements/layout/SplitView.js.map +1 -1
  404. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  405. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  406. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  407. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  408. package/dist/elements/project/HttpProjectRequest.js +0 -38
  409. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  410. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  411. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  412. package/dist/elements/project/ProjectNavigation.js +0 -4
  413. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  414. package/dist/elements/project/ProjectRunReport.js +4 -15
  415. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  416. package/dist/elements/project/ProjectRunner.js +2 -47
  417. package/dist/elements/project/ProjectRunner.js.map +1 -1
  418. package/dist/elements/schema-design/AssociationFormElement.js +0 -13
  419. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  420. package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
  421. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  422. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  423. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  424. package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
  425. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  426. package/dist/elements/schema-design/EntityFormElement.js +0 -18
  427. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  428. package/dist/elements/schema-design/PropertyFormElement.js +0 -12
  429. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  430. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  431. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  432. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  433. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  434. package/dist/elements/user/UserAvatarElement.js +0 -9
  435. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  436. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  437. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  438. package/dist/http-client/idb/Base.js +5 -10
  439. package/dist/http-client/idb/Base.js.map +1 -1
  440. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  441. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  442. package/dist/http-client/idb/MockedStore.js +3 -1
  443. package/dist/http-client/idb/MockedStore.js.map +1 -1
  444. package/dist/http-client/store/DataImportProcessor.js +0 -3
  445. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  446. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  447. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  448. package/dist/http-client/store/IdbThread.js +23 -20
  449. package/dist/http-client/store/IdbThread.js.map +1 -1
  450. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  451. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  452. package/dist/http-client/store/idb/IdbStore.js +0 -2
  453. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  454. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  455. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  456. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  457. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  458. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  459. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  460. package/dist/mixins/FileDropMixin.js +0 -1
  461. package/dist/mixins/FileDropMixin.js.map +1 -1
  462. package/dist/mixins/RenderableMixin.js +11 -15
  463. package/dist/mixins/RenderableMixin.js.map +1 -1
  464. package/dist/pages/ApplicationScreen.js +34 -55
  465. package/dist/pages/ApplicationScreen.js.map +1 -1
  466. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  467. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  468. package/dist/pages/api-client/Authenticate.screen.js +4 -6
  469. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  470. package/dist/pages/api-client/StoreConfig.screen.js +21 -37
  471. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  472. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  473. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  474. package/dist/pages/api-client/pages/Files.page.js +6 -27
  475. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  476. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  477. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  478. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  479. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  480. package/dist/pages/demo/DemoPage.d.ts.map +1 -1
  481. package/dist/pages/demo/DemoPage.js +25 -24
  482. package/dist/pages/demo/DemoPage.js.map +1 -1
  483. package/dist/pages/http-project/HttpProject.screen.js +25 -35
  484. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  485. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  486. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  487. package/dist/store/HttpStore.js +0 -3
  488. package/dist/store/HttpStore.js.map +1 -1
  489. package/dist/store/UserCache.js +5 -5
  490. package/dist/store/UserCache.js.map +1 -1
  491. package/dist/ui/UiElement.js +4 -5
  492. package/dist/ui/UiElement.js.map +1 -1
  493. package/dist/ui/button/SegmentedButton.js +9 -11
  494. package/dist/ui/button/SegmentedButton.js.map +1 -1
  495. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  496. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  497. package/dist/ui/button/UiButton.js +17 -39
  498. package/dist/ui/button/UiButton.js.map +1 -1
  499. package/dist/ui/button/UiIconButton.js +9 -35
  500. package/dist/ui/button/UiIconButton.js.map +1 -1
  501. package/dist/ui/chip/UiChip.js +9 -49
  502. package/dist/ui/chip/UiChip.js.map +1 -1
  503. package/dist/ui/collapse/UiCollapse.js +15 -20
  504. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  505. package/dist/ui/controllers/ActionController.js +143 -144
  506. package/dist/ui/controllers/ActionController.js.map +1 -1
  507. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  508. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  509. package/dist/ui/date/DateTime.js +3 -3
  510. package/dist/ui/date/DateTime.js.map +1 -1
  511. package/dist/ui/dialog/UiDialog.d.ts +1 -1
  512. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  513. package/dist/ui/dialog/UiDialog.js +19 -41
  514. package/dist/ui/dialog/UiDialog.js.map +1 -1
  515. package/dist/ui/effects/ripple.js +20 -18
  516. package/dist/ui/effects/ripple.js.map +1 -1
  517. package/dist/ui/effects/rippleDirective.js +6 -7
  518. package/dist/ui/effects/rippleDirective.js.map +1 -1
  519. package/dist/ui/icons/UiIcon.js +4 -3
  520. package/dist/ui/icons/UiIcon.js.map +1 -1
  521. package/dist/ui/input/CheckboxElement.js +12 -10
  522. package/dist/ui/input/CheckboxElement.js.map +1 -1
  523. package/dist/ui/input/CheckedElement.js +2 -13
  524. package/dist/ui/input/CheckedElement.js.map +1 -1
  525. package/dist/ui/input/Input.js +169 -234
  526. package/dist/ui/input/Input.js.map +1 -1
  527. package/dist/ui/input/RadioElement.js +13 -11
  528. package/dist/ui/input/RadioElement.js.map +1 -1
  529. package/dist/ui/input/SwitchElement.js +0 -18
  530. package/dist/ui/input/SwitchElement.js.map +1 -1
  531. package/dist/ui/input/TextAreaElement.js +0 -15
  532. package/dist/ui/input/TextAreaElement.js.map +1 -1
  533. package/dist/ui/list/DividerElement.js +5 -10
  534. package/dist/ui/list/DividerElement.js.map +1 -1
  535. package/dist/ui/list/UiDropdownList.js +7 -48
  536. package/dist/ui/list/UiDropdownList.js.map +1 -1
  537. package/dist/ui/list/UiList.js +3 -15
  538. package/dist/ui/list/UiList.js.map +1 -1
  539. package/dist/ui/list/UiListItem.js +4 -17
  540. package/dist/ui/list/UiListItem.js.map +1 -1
  541. package/dist/ui/list/UiListbox.js +0 -1
  542. package/dist/ui/list/UiListbox.js.map +1 -1
  543. package/dist/ui/notification/SnackNotifications.js +1 -2
  544. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  545. package/dist/ui/notification/Snackbar.js +27 -51
  546. package/dist/ui/notification/Snackbar.js.map +1 -1
  547. package/dist/ui/progress/Range.js +24 -23
  548. package/dist/ui/progress/Range.js.map +1 -1
  549. package/dist/ui/progress/UiProgress.js +0 -11
  550. package/dist/ui/progress/UiProgress.js.map +1 -1
  551. package/dist/ui/table/DataTable.js +7 -12
  552. package/dist/ui/table/DataTable.js.map +1 -1
  553. package/dist/ui/tabs/UiTab.js +24 -25
  554. package/dist/ui/tabs/UiTab.js.map +1 -1
  555. package/dist/ui/tabs/UiTabs.js +21 -35
  556. package/dist/ui/tabs/UiTabs.js.map +1 -1
  557. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  558. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  559. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  560. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  561. package/dist/visualization/lib/Point.js +0 -2
  562. package/dist/visualization/lib/Point.js.map +1 -1
  563. package/dist/visualization/lib/SelectionManager.js +10 -11
  564. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  565. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  566. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  567. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  568. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  569. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  570. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  571. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  572. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  573. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  574. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  575. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  576. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  577. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  578. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  579. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  580. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  581. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  582. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  583. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  584. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  585. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  586. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  587. package/package.json +3 -2
  588. package/src/pages/demo/DemoPage.ts +12 -11
  589. package/src/ui/dialog/UiDialog.ts +6 -4
  590. package/test/ui/dialog/UiDialog.test.ts +236 -0
  591. package/tsconfig.json +2 -2
  592. package/demo/themes/default.css +0 -0
  593. package/demo/themes/m3/theme.dark.css +0 -40
  594. package/demo/themes/m3/theme.light.css +0 -40
  595. package/demo/themes/m3/tokens.css +0 -291
@@ -3,7 +3,10 @@ import { EventTypes } from "../../events/EventTypes.js";
3
3
  import { StoreBroadcast } from "../../http-client/store/StoreBroadcast.js";
4
4
  import { PlatformBindings } from "./PlatformBindings.js";
5
5
  export class HttpClientStoreBindings extends PlatformBindings {
6
- urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);
6
+ constructor() {
7
+ super(...arguments);
8
+ this.urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);
9
+ }
7
10
  async initialize() {
8
11
  const target = document.body;
9
12
  target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientStoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/HttpClientStoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { \n BroadcastCreatedEvent,\n BroadcastEvent,\n ContextDeleteEvent, \n ContextQueryEvent, ContextReadBulkEvent, \n ContextReadEvent, ContextUpdateEvent, \n IRequestUiMeta, \n IUrl\n} from \"@api-client/core/build/browser.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { PlatformBindings } from \"./PlatformBindings.js\";\nimport { ProjectUi } from \"../../http-client/store/stores/ProjectUi.js\";\nimport { UrlHistory } from \"../../http-client/store/stores/UrlHistory.js\";\nimport { WsHistory } from \"../../http-client/store/stores/WsHistory.js\";\nimport { IRequestUiInsertDetail } from \"../../events/HttpClientEvents.js\";\n\nexport abstract class HttpClientStoreBindings extends PlatformBindings {\n urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);\n \n abstract initializeStore(): Promise<void>;\n \n abstract wsHistory: WsHistory;\n \n abstract urlHistory: UrlHistory;\n\n abstract projectUi: ProjectUi;\n \n async initialize(): Promise<void> {\n const target = document.body;\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.query, this.queryUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.delete, this.deleteUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.clear, this.clearUrlHistoryHandler.bind(this));\n\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.add, this.addWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.query, this.queryWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.delete, this.deleteWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.clear, this.clearWsHistoryHandler.bind(this));\n\n // Request UI\n window.addEventListener(EventTypes.HttpProject.Ui.delete, this.deleteProjectUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.set, this.setHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.get, this.getHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.getBulk, this.getBulkHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.delete, this.deleteHttpRequestUiHandler.bind(this) as EventListener);\n\n this.urlHistoryChannel.addEventListener('message', this.handleUrlHistoryBroadcast.bind(this));\n }\n\n protected handleUrlHistoryBroadcast(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleUrlHistoryCreated((event as BroadcastCreatedEvent).data as IUrl); break;\n case 'deleted': this.handleUrlHistoryDeleted(event.key); break;\n case 'cleared': this.handleUrlHistoryCleared(); break;\n default:\n }\n }\n\n protected handleUrlHistoryCreated(entity: IUrl): void {\n Events.HttpClient.Model.UrlHistory.State.add(entity);\n }\n\n protected handleUrlHistoryDeleted(url: string): void {\n Events.HttpClient.Model.UrlHistory.State.delete(url);\n }\n\n protected handleUrlHistoryCleared(): void {\n Events.HttpClient.Model.UrlHistory.State.clear();\n }\n\n protected addUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.add(e.detail.url);\n }\n\n protected queryUrlHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.urlHistory.query(e.detail.term);\n }\n\n protected deleteUrlHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.delete(e.detail.key);\n }\n\n protected clearUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.clear();\n }\n\n protected addWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.add(e.detail.url);\n }\n\n protected queryWsHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.wsHistory.query(e.detail.term);\n }\n\n protected deleteWsHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.delete(e.detail.key);\n }\n\n protected clearWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.clear();\n }\n\n protected deleteProjectUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key } = e.detail;\n e.detail.result = this.projectUi.clear(key);\n }\n\n protected setHttpRequestUiHandler(e: ContextUpdateEvent<IRequestUiInsertDetail, IRequestUiMeta>): void {\n e.preventDefault();\n const { item } = e.detail;\n e.detail.result = this.projectUi.set(item.pid, item.id, item.meta);\n }\n\n protected getHttpRequestUiHandler(e: ContextReadEvent<IRequestUiMeta>): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.get(parent as string, key);\n }\n\n protected getBulkHttpRequestUiHandler(e: ContextReadBulkEvent<IRequestUiMeta | undefined>): void {\n e.preventDefault();\n const { keys, parent } = e.detail;\n e.detail.result = this.projectUi.getBulk(parent as string, keys);\n }\n\n protected deleteHttpRequestUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.delete(parent as string, key);\n }\n}\n"]}
1
+ {"version":3,"file":"HttpClientStoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/HttpClientStoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\nimport { \n BroadcastCreatedEvent,\n BroadcastEvent,\n ContextDeleteEvent, \n ContextQueryEvent, ContextReadBulkEvent, \n ContextReadEvent, ContextUpdateEvent, \n IRequestUiMeta, \n IUrl\n} from \"@api-client/core/build/browser.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { PlatformBindings } from \"./PlatformBindings.js\";\nimport { ProjectUi } from \"../../http-client/store/stores/ProjectUi.js\";\nimport { UrlHistory } from \"../../http-client/store/stores/UrlHistory.js\";\nimport { WsHistory } from \"../../http-client/store/stores/WsHistory.js\";\nimport { IRequestUiInsertDetail } from \"../../events/HttpClientEvents.js\";\n\nexport abstract class HttpClientStoreBindings extends PlatformBindings {\n urlHistoryChannel = new BroadcastChannel(StoreBroadcast.urlHistory);\n \n abstract initializeStore(): Promise<void>;\n \n abstract wsHistory: WsHistory;\n \n abstract urlHistory: UrlHistory;\n\n abstract projectUi: ProjectUi;\n \n async initialize(): Promise<void> {\n const target = document.body;\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.add, this.addUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.query, this.queryUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.delete, this.deleteUrlHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.UrlHistory.clear, this.clearUrlHistoryHandler.bind(this));\n\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.add, this.addWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.query, this.queryWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.delete, this.deleteWsHistoryHandler.bind(this));\n target.addEventListener(EventTypes.HttpClient.Model.WsHistory.clear, this.clearWsHistoryHandler.bind(this));\n\n // Request UI\n window.addEventListener(EventTypes.HttpProject.Ui.delete, this.deleteProjectUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.set, this.setHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.get, this.getHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.getBulk, this.getBulkHttpRequestUiHandler.bind(this) as EventListener);\n window.addEventListener(EventTypes.HttpProject.Ui.HttpRequest.delete, this.deleteHttpRequestUiHandler.bind(this) as EventListener);\n\n this.urlHistoryChannel.addEventListener('message', this.handleUrlHistoryBroadcast.bind(this));\n }\n\n protected handleUrlHistoryBroadcast(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleUrlHistoryCreated((event as BroadcastCreatedEvent).data as IUrl); break;\n case 'deleted': this.handleUrlHistoryDeleted(event.key); break;\n case 'cleared': this.handleUrlHistoryCleared(); break;\n default:\n }\n }\n\n protected handleUrlHistoryCreated(entity: IUrl): void {\n Events.HttpClient.Model.UrlHistory.State.add(entity);\n }\n\n protected handleUrlHistoryDeleted(url: string): void {\n Events.HttpClient.Model.UrlHistory.State.delete(url);\n }\n\n protected handleUrlHistoryCleared(): void {\n Events.HttpClient.Model.UrlHistory.State.clear();\n }\n\n protected addUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.add(e.detail.url);\n }\n\n protected queryUrlHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.urlHistory.query(e.detail.term);\n }\n\n protected deleteUrlHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.delete(e.detail.key);\n }\n\n protected clearUrlHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.urlHistory.clear();\n }\n\n protected addWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.add(e.detail.url);\n }\n\n protected queryWsHistoryHandler(event: Event): void {\n const e = event as ContextQueryEvent<IUrl>;\n e.preventDefault();\n e.detail.result = this.wsHistory.query(e.detail.term);\n }\n\n protected deleteWsHistoryHandler(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.delete(e.detail.key);\n }\n\n protected clearWsHistoryHandler(event: Event): void {\n const e = event as CustomEvent;\n e.preventDefault();\n e.detail.result = this.wsHistory.clear();\n }\n\n protected deleteProjectUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key } = e.detail;\n e.detail.result = this.projectUi.clear(key);\n }\n\n protected setHttpRequestUiHandler(e: ContextUpdateEvent<IRequestUiInsertDetail, IRequestUiMeta>): void {\n e.preventDefault();\n const { item } = e.detail;\n e.detail.result = this.projectUi.set(item.pid, item.id, item.meta);\n }\n\n protected getHttpRequestUiHandler(e: ContextReadEvent<IRequestUiMeta>): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.get(parent as string, key);\n }\n\n protected getBulkHttpRequestUiHandler(e: ContextReadBulkEvent<IRequestUiMeta | undefined>): void {\n e.preventDefault();\n const { keys, parent } = e.detail;\n e.detail.result = this.projectUi.getBulk(parent as string, keys);\n }\n\n protected deleteHttpRequestUiHandler(e: ContextDeleteEvent): void {\n e.preventDefault();\n const { key, parent } = e.detail;\n e.detail.result = this.projectUi.delete(parent as string, key);\n }\n}\n"]}
@@ -35,17 +35,13 @@ import { Events } from '../../events/Events.js';
35
35
  * The IO thread extends the `IoThread` class which has the defined the communication logic.
36
36
  */
37
37
  export class PlatformBindings {
38
- /**
39
- * Used with the queue as the identifier of the request.
40
- * USe the `getId()` to read a unique request id.
41
- */
42
- id = 0;
43
- queue = [];
44
- /**
45
- * The application id that initialized this binding.
46
- */
47
- app;
48
38
  constructor(app) {
39
+ /**
40
+ * Used with the queue as the identifier of the request.
41
+ * USe the `getId()` to read a unique request id.
42
+ */
43
+ this.id = 0;
44
+ this.queue = [];
49
45
  this.app = app;
50
46
  }
51
47
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/PlatformBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { ApiError, IApiError, IApplication } from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * A command sent from the client to a IO thread.\n */\nexport interface IoCommand {\n kind: 'IO#Command',\n id: number;\n fn: string;\n args: any[];\n}\n\n/**\n * An event dispatched from the IO thread to the clients.\n */\nexport interface IoEvent {\n kind: 'IO#Event',\n id: number;\n type: 'error' | 'result'; \n message?: string; \n result?: any;\n}\n\n/**\n * A special kind of an event from the IO thread to the clients that asks to notify the client\n * using the events system.\n */\nexport interface IoNotification {\n kind: 'IO#Notification',\n path: string;\n args: any[];\n}\n\n/**\n * Events queue on the client side.\n * This is used when communication with the IO thread via Promises is impossible and event based.\n * The client wraps the execution into a promise and pushes this schema into the queue.\n * When the event is dispatched by the IO thread it resolves/rejects cached promise.\n */\nexport interface QueueItem {\n id: number;\n resolve: (value: any) => void;\n reject: (reason?: Error) => void;\n // helpful for debugging\n fn: string;\n args: unknown[];\n}\n\n/**\n * A base class for all platform bindings.\n * \n * Platform bindings is the way how the application runs a platform specific logic.\n * \n * For example, it implements how the application stores the state or implements file picker / file saver.\n * Depending on the platform (Electron, web, Chrome, more?) it uses different set of bindings\n * defined in the target application. This creates a framework for the bindings to exist.\n * \n * The IO thread can be any process that is separated from the browser tab context.\n * Can be a WebWorker, ServiceWorker, of an API call to a server.\n * When communication with the binding is not possible via the Promise API\n * this system should be used to communicate with the background page.\n * \n * ```typescript \n * class MyBinding extends ParentBaseBinding {\n * channel: BroadcastChannel;\n * constructor() {\n * super();\n * this.channel = new BroadcastChannel('my-channel');\n * }\n * \n * doStuff(arg: any): Promise<any> {\n * return this.invoke('doStuff', 'own argument', arg);\n * }\n * }\n * ```\n * \n * This assumes that the IO thread has the `doStuff` function implemented.\n * The IO thread extends the `IoThread` class which has the defined the communication logic.\n */\nexport abstract class PlatformBindings {\n /**\n * Used with the queue as the identifier of the request.\n * USe the `getId()` to read a unique request id.\n */\n private id = 0;\n\n protected queue: QueueItem[] = [];\n\n /**\n * The application id that initialized this binding.\n */\n app: IApplication;\n\n constructor(app: IApplication) {\n this.app = app;\n }\n\n /**\n * Initializes the bindings.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * @returns A unique for the current session id.\n */\n protected getId(): number {\n this.id += 1;\n return this.id;\n }\n\n /**\n * This method to be implemented by child classes that uses the events system to communicate with the \n * IO thread. The argument is the prepared command message ready to be sent to the IO thread.\n * Specific implementation of the communication channel is left to the child class.\n * \n * @param cmd The command to send to the IO thread.\n */\n protected sendIoCommand(cmd: IoCommand): void {\n // \n }\n\n /**\n * Invokes a function in the IO thread.\n * \n * @param fn The function name to invoke (or an identifier understood by the IO thread)\n * @param args The function arguments to pass.\n * @returns A promise that should be returned to the client's application logic. \n * The promise is resolved when the IO thread sends an event with the same identifier generated with this call.\n */\n protected invoke(fn: string, ...args: any[]): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = this.getId();\n const item = {\n resolve, reject, id, fn, args,\n };\n this.queue.push(item);\n const cmd: IoCommand = {\n id,\n fn,\n args,\n kind: 'IO#Command',\n };\n this.sendIoCommand(cmd);\n });\n }\n\n /**\n * To be called by the child class when the IO thread send an event.\n * It recognizes the type of the message sent by the IO thread an performs the requested operation.\n * \n * @param message The message sent by the IO thread.\n */\n protected handleIoMessage(message: IoCommand | IoEvent | IoNotification): void {\n if (!message.kind) {\n // eslint-disable-next-line no-console\n console.warn('Invalid message received on the app-config-channel.', message);\n return;\n }\n if (message.kind === 'IO#Command') {\n // message sent by self.\n return;\n }\n if (message.kind === 'IO#Notification') {\n this.notify(message);\n } else if (message.kind === 'IO#Event') {\n this.resolve(message);\n }\n }\n\n /**\n * Resolves a pending promise stored in the `queue`.\n * \n * @param event The IO thread event\n */\n protected resolve(event: IoEvent): void {\n const { id, type, message, result } = event;\n if (typeof id !== 'number') {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread. Id is not a number.`, event);\n return;\n }\n const index = this.queue.findIndex(i => i.id === id);\n if (index < 0) {\n // this might be used by another tab.\n return;\n }\n const info = this.queue[index];\n this.queue.splice(index, 1);\n\n if (type === 'result') {\n info.resolve(result);\n } else if (type === 'error') {\n const apiErr = result as IApiError | undefined;\n if (apiErr && apiErr.code) {\n info.reject(new ApiError(apiErr));\n } else {\n info.reject(new Error(message));\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread`, event);\n }\n }\n\n /**\n * Notifies this tab about something using the `Events` definition.\n * \n * This expects that the event has the path to the event function, for example `Events.Config.Environment.State.created`.\n * \n * @param event The IO thread event\n */\n protected notify(event: IoNotification): void {\n const { path, args } = event;\n const parts = path.split('.');\n let current = Events as unknown;\n if (parts[0] === 'Events') {\n parts.shift();\n }\n for (const part of parts) {\n // @ts-ignore\n if (!current[part]) {\n // eslint-disable-next-line no-console\n console.warn(`Invalid notification path`, path);\n return\n }\n // @ts-ignore\n current = current[part];\n }\n (current as Function)(...args);\n }\n}\n"]}
1
+ {"version":3,"file":"PlatformBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/PlatformBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-types */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { ApiError, IApiError, IApplication } from '@api-client/core/build/browser.js';\nimport { Events } from '../../events/Events.js';\n\n/* eslint-disable @typescript-eslint/no-unused-vars */\n/**\n * A command sent from the client to a IO thread.\n */\nexport interface IoCommand {\n kind: 'IO#Command',\n id: number;\n fn: string;\n args: any[];\n}\n\n/**\n * An event dispatched from the IO thread to the clients.\n */\nexport interface IoEvent {\n kind: 'IO#Event',\n id: number;\n type: 'error' | 'result'; \n message?: string; \n result?: any;\n}\n\n/**\n * A special kind of an event from the IO thread to the clients that asks to notify the client\n * using the events system.\n */\nexport interface IoNotification {\n kind: 'IO#Notification',\n path: string;\n args: any[];\n}\n\n/**\n * Events queue on the client side.\n * This is used when communication with the IO thread via Promises is impossible and event based.\n * The client wraps the execution into a promise and pushes this schema into the queue.\n * When the event is dispatched by the IO thread it resolves/rejects cached promise.\n */\nexport interface QueueItem {\n id: number;\n resolve: (value: any) => void;\n reject: (reason?: Error) => void;\n // helpful for debugging\n fn: string;\n args: unknown[];\n}\n\n/**\n * A base class for all platform bindings.\n * \n * Platform bindings is the way how the application runs a platform specific logic.\n * \n * For example, it implements how the application stores the state or implements file picker / file saver.\n * Depending on the platform (Electron, web, Chrome, more?) it uses different set of bindings\n * defined in the target application. This creates a framework for the bindings to exist.\n * \n * The IO thread can be any process that is separated from the browser tab context.\n * Can be a WebWorker, ServiceWorker, of an API call to a server.\n * When communication with the binding is not possible via the Promise API\n * this system should be used to communicate with the background page.\n * \n * ```typescript \n * class MyBinding extends ParentBaseBinding {\n * channel: BroadcastChannel;\n * constructor() {\n * super();\n * this.channel = new BroadcastChannel('my-channel');\n * }\n * \n * doStuff(arg: any): Promise<any> {\n * return this.invoke('doStuff', 'own argument', arg);\n * }\n * }\n * ```\n * \n * This assumes that the IO thread has the `doStuff` function implemented.\n * The IO thread extends the `IoThread` class which has the defined the communication logic.\n */\nexport abstract class PlatformBindings {\n /**\n * Used with the queue as the identifier of the request.\n * USe the `getId()` to read a unique request id.\n */\n private id = 0;\n\n protected queue: QueueItem[] = [];\n\n /**\n * The application id that initialized this binding.\n */\n app: IApplication;\n\n constructor(app: IApplication) {\n this.app = app;\n }\n\n /**\n * Initializes the bindings.\n */\n abstract initialize(): Promise<void>;\n\n /**\n * @returns A unique for the current session id.\n */\n protected getId(): number {\n this.id += 1;\n return this.id;\n }\n\n /**\n * This method to be implemented by child classes that uses the events system to communicate with the \n * IO thread. The argument is the prepared command message ready to be sent to the IO thread.\n * Specific implementation of the communication channel is left to the child class.\n * \n * @param cmd The command to send to the IO thread.\n */\n protected sendIoCommand(cmd: IoCommand): void {\n // \n }\n\n /**\n * Invokes a function in the IO thread.\n * \n * @param fn The function name to invoke (or an identifier understood by the IO thread)\n * @param args The function arguments to pass.\n * @returns A promise that should be returned to the client's application logic. \n * The promise is resolved when the IO thread sends an event with the same identifier generated with this call.\n */\n protected invoke(fn: string, ...args: any[]): Promise<any> {\n return new Promise((resolve, reject) => {\n const id = this.getId();\n const item = {\n resolve, reject, id, fn, args,\n };\n this.queue.push(item);\n const cmd: IoCommand = {\n id,\n fn,\n args,\n kind: 'IO#Command',\n };\n this.sendIoCommand(cmd);\n });\n }\n\n /**\n * To be called by the child class when the IO thread send an event.\n * It recognizes the type of the message sent by the IO thread an performs the requested operation.\n * \n * @param message The message sent by the IO thread.\n */\n protected handleIoMessage(message: IoCommand | IoEvent | IoNotification): void {\n if (!message.kind) {\n // eslint-disable-next-line no-console\n console.warn('Invalid message received on the app-config-channel.', message);\n return;\n }\n if (message.kind === 'IO#Command') {\n // message sent by self.\n return;\n }\n if (message.kind === 'IO#Notification') {\n this.notify(message);\n } else if (message.kind === 'IO#Event') {\n this.resolve(message);\n }\n }\n\n /**\n * Resolves a pending promise stored in the `queue`.\n * \n * @param event The IO thread event\n */\n protected resolve(event: IoEvent): void {\n const { id, type, message, result } = event;\n if (typeof id !== 'number') {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread. Id is not a number.`, event);\n return;\n }\n const index = this.queue.findIndex(i => i.id === id);\n if (index < 0) {\n // this might be used by another tab.\n return;\n }\n const info = this.queue[index];\n this.queue.splice(index, 1);\n\n if (type === 'result') {\n info.resolve(result);\n } else if (type === 'error') {\n const apiErr = result as IApiError | undefined;\n if (apiErr && apiErr.code) {\n info.reject(new ApiError(apiErr));\n } else {\n info.reject(new Error(message));\n }\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Unknown event from the IO thread`, event);\n }\n }\n\n /**\n * Notifies this tab about something using the `Events` definition.\n * \n * This expects that the event has the path to the event function, for example `Events.Config.Environment.State.created`.\n * \n * @param event The IO thread event\n */\n protected notify(event: IoNotification): void {\n const { path, args } = event;\n const parts = path.split('.');\n let current = Events as unknown;\n if (parts[0] === 'Events') {\n parts.shift();\n }\n for (const part of parts) {\n // @ts-ignore\n if (!current[part]) {\n // eslint-disable-next-line no-console\n console.warn(`Invalid notification path`, path);\n return\n }\n // @ts-ignore\n current = current[part];\n }\n (current as Function)(...args);\n }\n}\n"]}
@@ -6,12 +6,15 @@ import { PlatformBindings } from './PlatformBindings.js';
6
6
  * to run entire projects or folders.
7
7
  */
8
8
  export class ProxyBindings extends PlatformBindings {
9
- /**
10
- * This is used by the client side (main thread or the renderer process)
11
- * to define the current space the app is using.
12
- * This space is used in some APIs instead of adding the space to the events system.
13
- */
14
- space = '';
9
+ constructor() {
10
+ super(...arguments);
11
+ /**
12
+ * This is used by the client side (main thread or the renderer process)
13
+ * to define the current space the app is using.
14
+ * This space is used in some APIs instead of adding the space to the events system.
15
+ */
16
+ this.space = '';
17
+ }
15
18
  async initialize() {
16
19
  window.addEventListener(CoreEventTypes.Transport.Core.request, this.handleCoreRequest.bind(this));
17
20
  window.addEventListener(CoreEventTypes.Transport.Core.httpProject, this.handleHttpProject.bind(this));
@@ -1 +1 @@
1
- {"version":3,"file":"ProxyBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/ProxyBindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAyK,MAAM,mCAAmC,CAAC;AACxP,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,OAAgB,aAAc,SAAQ,gBAAgB;IAC1D;;;;OAIG;IACH,KAAK,GAAG,EAAE,CAAC;IAEX,KAAK,CAAC,UAAU;QACd,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;QACnH,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;QACvH,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;IAChH,CAAC;IAES,iBAAiB,CAAC,CAA6D;QACvF,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAES,iBAAiB,CAAC,CAAuG;QACjI,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,EAAgC,CAAC;QAC3D,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;QACD,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAES,eAAe,CAAC,CAA6C;QACrE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;CA2BF","sourcesContent":["import { EventTypes as CoreEventTypes, ContextEvent, IRequestLog, IHttpRequest, IHttpRequestDetail, IProjectExecutionLog, IRequestProxyInit, IProxyResult, IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '@api-client/core/build/browser.js';\nimport { PlatformBindings } from './PlatformBindings.js';\n\n/**\n * The bindings for making HTTP request in the application.\n * The purpose is to run API requests using the `CoreEngine` class or\n * to run entire projects or folders.\n */\nexport abstract class ProxyBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n async initialize(): Promise<void> {\n window.addEventListener(CoreEventTypes.Transport.Core.request, this.handleCoreRequest.bind(this) as EventListener);\n window.addEventListener(CoreEventTypes.Transport.Core.httpProject, this.handleHttpProject.bind(this) as EventListener);\n window.addEventListener(CoreEventTypes.Transport.Http.send, this.handlerHttpSend.bind(this) as EventListener);\n }\n\n protected handleCoreRequest(e: ContextEvent<IRequestProxyInit, IProxyResult<IRequestLog>>): void {\n e.detail.result = this.coreRequest(e.detail);\n }\n\n protected handleHttpProject(e: ContextEvent<IHttpProjectProxyInit | IHttpProjectStoreProxyInit, IProxyResult<IProjectExecutionLog>>): void {\n const copy = { ...e.detail } as IHttpProjectStoreProxyInit;\n if (this.space && !copy.space) {\n copy.space = this.space;\n }\n e.detail.result = this.coreHttpProject(copy);\n }\n\n protected handlerHttpSend(e: ContextEvent<IHttpRequestDetail, Response>): void {\n const { request, init } = e.detail;\n e.detail.result = this.httpSend(request, init);\n }\n\n /**\n * Sends a single request without a context of a project.\n * \n * @param init The request execution configuration\n * @returns The execution log with the variables evaluated during the run or `undefined` when the event was not handled.\n */\n abstract coreRequest(init: IRequestProxyInit): Promise<IProxyResult<IRequestLog>>;\n\n /**\n * For both a request or a folder (since it's all single configuration.)\n * \n * @param init The project execution configuration\n * @returns The project execution log.\n */\n abstract coreHttpProject(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog>>;\n\n /**\n * Sends the request outside the Core engine, most probably using Fetch API.\n * Note, CORS may apply to the request.\n * \n * @param request The base request definition.\n * @param init Optional request init options compatible with the Fetch API.\n * @returns Compatible with the Fetch API Response object.\n */\n abstract httpSend(request: IHttpRequest, init?: RequestInit): Promise<Response>;\n}\n"]}
1
+ {"version":3,"file":"ProxyBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/ProxyBindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,cAAc,EAAyK,MAAM,mCAAmC,CAAC;AACxP,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,OAAgB,aAAc,SAAQ,gBAAgB;IAA5D;;QACE;;;;WAIG;QACH,UAAK,GAAG,EAAE,CAAC;IAkDb,CAAC;IAhDC,KAAK,CAAC,UAAU;QACd,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;QACnH,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;QACvH,MAAM,CAAC,gBAAgB,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;IAChH,CAAC;IAES,iBAAiB,CAAC,CAA6D;QACvF,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IAES,iBAAiB,CAAC,CAAuG;QACjI,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,MAAM,EAAgC,CAAC;QAC3D,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;SACzB;QACD,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;IAES,eAAe,CAAC,CAA6C;QACrE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QACnC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACjD,CAAC;CA2BF","sourcesContent":["import { EventTypes as CoreEventTypes, ContextEvent, IRequestLog, IHttpRequest, IHttpRequestDetail, IProjectExecutionLog, IRequestProxyInit, IProxyResult, IHttpProjectProxyInit, IHttpProjectStoreProxyInit } from '@api-client/core/build/browser.js';\nimport { PlatformBindings } from './PlatformBindings.js';\n\n/**\n * The bindings for making HTTP request in the application.\n * The purpose is to run API requests using the `CoreEngine` class or\n * to run entire projects or folders.\n */\nexport abstract class ProxyBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n async initialize(): Promise<void> {\n window.addEventListener(CoreEventTypes.Transport.Core.request, this.handleCoreRequest.bind(this) as EventListener);\n window.addEventListener(CoreEventTypes.Transport.Core.httpProject, this.handleHttpProject.bind(this) as EventListener);\n window.addEventListener(CoreEventTypes.Transport.Http.send, this.handlerHttpSend.bind(this) as EventListener);\n }\n\n protected handleCoreRequest(e: ContextEvent<IRequestProxyInit, IProxyResult<IRequestLog>>): void {\n e.detail.result = this.coreRequest(e.detail);\n }\n\n protected handleHttpProject(e: ContextEvent<IHttpProjectProxyInit | IHttpProjectStoreProxyInit, IProxyResult<IProjectExecutionLog>>): void {\n const copy = { ...e.detail } as IHttpProjectStoreProxyInit;\n if (this.space && !copy.space) {\n copy.space = this.space;\n }\n e.detail.result = this.coreHttpProject(copy);\n }\n\n protected handlerHttpSend(e: ContextEvent<IHttpRequestDetail, Response>): void {\n const { request, init } = e.detail;\n e.detail.result = this.httpSend(request, init);\n }\n\n /**\n * Sends a single request without a context of a project.\n * \n * @param init The request execution configuration\n * @returns The execution log with the variables evaluated during the run or `undefined` when the event was not handled.\n */\n abstract coreRequest(init: IRequestProxyInit): Promise<IProxyResult<IRequestLog>>;\n\n /**\n * For both a request or a folder (since it's all single configuration.)\n * \n * @param init The project execution configuration\n * @returns The project execution log.\n */\n abstract coreHttpProject(init: IHttpProjectProxyInit | IHttpProjectStoreProxyInit): Promise<IProxyResult<IProjectExecutionLog>>;\n\n /**\n * Sends the request outside the Core engine, most probably using Fetch API.\n * Note, CORS may apply to the request.\n * \n * @param request The base request definition.\n * @param init Optional request init options compatible with the Fetch API.\n * @returns Compatible with the Fetch API Response object.\n */\n abstract httpSend(request: IHttpRequest, init?: RequestInit): Promise<Response>;\n}\n"]}
@@ -5,7 +5,10 @@ import { IoThread } from "./IoThread.js";
5
5
  * Base class for ShareWorker threads.
6
6
  */
7
7
  export class SharedWorkerThread extends IoThread {
8
- ports = [];
8
+ constructor() {
9
+ super(...arguments);
10
+ this.ports = [];
11
+ }
9
12
  async initialize() {
10
13
  globalThis.addEventListener('connect', this.connectHandler.bind(this));
11
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"SharedWorkerThread.js","sourceRoot":"","sources":["../../../src/bindings/base/SharedWorkerThread.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAC9C,KAAK,GAAkB,EAAE,CAAC;IAE1B,KAAK,CAAC,UAAU;QACd,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;IAC1F,CAAC;IAED,cAAc,CAAC,CAAe;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,OAAiC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,cAAc,CAAC,CAAe;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,OAAO;SACR;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAA2B,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { IoThread } from \"./IoThread.js\";\nimport { IoCommand, IoEvent, IoNotification } from \"./PlatformBindings.js\";\n\n/**\n * Base class for ShareWorker threads.\n */\nexport class SharedWorkerThread extends IoThread {\n ports: MessagePort[] = [];\n\n async initialize(): Promise<void> {\n globalThis.addEventListener('connect', this.connectHandler.bind(this) as EventListener);\n }\n\n connectHandler(e: MessageEvent): void {\n const port = e.ports[0];\n this.ports.push(port);\n port.addEventListener('message', this.messageHandler.bind(this));\n port.start();\n port.postMessage('ready');\n }\n\n postMessage(message: IoNotification | IoEvent): void {\n this.ports.forEach(p => p.postMessage(message));\n }\n\n protected messageHandler(e: MessageEvent): void {\n if (e.data === 'init') {\n e.ports.forEach(p => p.postMessage('ready'));\n return;\n }\n const event = e.data as IoCommand | IoEvent;\n this.handleMessage(event);\n }\n}\n"]}
1
+ {"version":3,"file":"SharedWorkerThread.js","sourceRoot":"","sources":["../../../src/bindings/base/SharedWorkerThread.ts"],"names":[],"mappings":"AAAA,uDAAuD;AACvD,sDAAsD;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC;;GAEG;AACH,MAAM,OAAO,kBAAmB,SAAQ,QAAQ;IAAhD;;QACE,UAAK,GAAkB,EAAE,CAAC;IA0B5B,CAAC;IAxBC,KAAK,CAAC,UAAU;QACd,UAAU,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;IAC1F,CAAC;IAED,cAAc,CAAC,CAAe;QAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,WAAW,CAAC,OAAiC;QAC3C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,CAAC;IAES,cAAc,CAAC,CAAe;QACtC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE;YACrB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;YAC7C,OAAO;SACR;QACD,MAAM,KAAK,GAAG,CAAC,CAAC,IAA2B,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;CACF","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\nimport { IoThread } from \"./IoThread.js\";\nimport { IoCommand, IoEvent, IoNotification } from \"./PlatformBindings.js\";\n\n/**\n * Base class for ShareWorker threads.\n */\nexport class SharedWorkerThread extends IoThread {\n ports: MessagePort[] = [];\n\n async initialize(): Promise<void> {\n globalThis.addEventListener('connect', this.connectHandler.bind(this) as EventListener);\n }\n\n connectHandler(e: MessageEvent): void {\n const port = e.ports[0];\n this.ports.push(port);\n port.addEventListener('message', this.messageHandler.bind(this));\n port.start();\n port.postMessage('ready');\n }\n\n postMessage(message: IoNotification | IoEvent): void {\n this.ports.forEach(p => p.postMessage(message));\n }\n\n protected messageHandler(e: MessageEvent): void {\n if (e.data === 'init') {\n e.ports.forEach(p => p.postMessage('ready'));\n return;\n }\n const event = e.data as IoCommand | IoEvent;\n this.handleMessage(event);\n }\n}\n"]}
@@ -11,29 +11,168 @@ import { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';
11
11
  * The base class for API store bindings.
12
12
  */
13
13
  export class StoreBindings extends PlatformBindings {
14
- /**
15
- * This is used by the client side (main thread or the renderer process)
16
- * to define the current space the app is using.
17
- * This space is used in some APIs instead of adding the space to the events system.
18
- */
19
- space = '';
20
- /**
21
- * The currently used environment for all store calls.
22
- * This can be changed via the `Events.Global.setEnv()`
23
- */
24
- globalEnvironment;
25
- /**
26
- * Initialized with the `globalEnvironment`.
27
- * The store with initialized SDK for the global environment
28
- */
29
- store;
30
- filesChannel = new BroadcastChannel(StoreBroadcast.files);
31
- mediaChannel = new BroadcastChannel(StoreBroadcast.media);
32
- spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);
33
- trashChannel = new BroadcastChannel(StoreBroadcast.trash);
34
- historyChannel = new BroadcastChannel(StoreBroadcast.history);
35
- projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);
36
- certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);
14
+ constructor() {
15
+ super(...arguments);
16
+ /**
17
+ * This is used by the client side (main thread or the renderer process)
18
+ * to define the current space the app is using.
19
+ * This space is used in some APIs instead of adding the space to the events system.
20
+ */
21
+ this.space = '';
22
+ this.filesChannel = new BroadcastChannel(StoreBroadcast.files);
23
+ this.mediaChannel = new BroadcastChannel(StoreBroadcast.media);
24
+ this.spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);
25
+ this.trashChannel = new BroadcastChannel(StoreBroadcast.trash);
26
+ this.historyChannel = new BroadcastChannel(StoreBroadcast.history);
27
+ this.projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);
28
+ this.certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);
29
+ this.auth = {
30
+ isAuthenticated: async (env) => {
31
+ let { store } = this;
32
+ if (env) {
33
+ store = new HttpStore(env);
34
+ }
35
+ if (!store) {
36
+ throw new Error(`Environment is not set.`);
37
+ }
38
+ return store.isAuthenticated(env);
39
+ },
40
+ authenticate: async (options = {}) => {
41
+ const { env, force, updateEnvironment } = options;
42
+ let { store } = this;
43
+ if (env) {
44
+ store = new HttpStore(env);
45
+ }
46
+ if (!store) {
47
+ throw new Error(`Environment is not set.`);
48
+ }
49
+ const result = await store.getStoreSessionToken(undefined, force);
50
+ if (updateEnvironment && result.new) {
51
+ await Events.Config.Environment.update(env || this.globalEnvironment);
52
+ }
53
+ return result;
54
+ },
55
+ /**
56
+ * @returns The current store token or undefined if no store is set.
57
+ */
58
+ getToken: async () => {
59
+ const { store } = this;
60
+ return store && store.sdk && store.sdk.token || undefined;
61
+ },
62
+ };
63
+ this.global = {
64
+ /**
65
+ * Sets the store environment to be used globally by the application.
66
+ * This initializes the store with the configuration.
67
+ *
68
+ * Note, this won't initialize the session with the store.
69
+ *
70
+ * @param env The environment to set. Note, it must have the `location` set.
71
+ */
72
+ set: async (env) => {
73
+ if (!env.location) {
74
+ throw new Error(`The location is required for store environment configuration.`);
75
+ }
76
+ this.globalEnvironment = env;
77
+ const store = new HttpStore(env);
78
+ this.store = store;
79
+ },
80
+ get: async () => {
81
+ const { globalEnvironment } = this;
82
+ if (!globalEnvironment) {
83
+ throw new Error(`The current environment is not set.`);
84
+ }
85
+ return globalEnvironment;
86
+ },
87
+ };
88
+ this.spaces = {
89
+ list: (options) => this.getStore().sdk.spaces.list(options),
90
+ add: (nameOrObject) => {
91
+ let space;
92
+ if (typeof nameOrObject === 'string') {
93
+ space = Space.fromName(nameOrObject).toJSON();
94
+ }
95
+ else {
96
+ space = nameOrObject;
97
+ }
98
+ return this.getStore().sdk.spaces.add(space);
99
+ },
100
+ read: (key) => this.getStore().sdk.spaces.read(key),
101
+ delete: async (key) => {
102
+ await this.getStore().sdk.spaces.delete(key);
103
+ return {
104
+ key,
105
+ kind: SpaceKind,
106
+ };
107
+ },
108
+ addUser: (space, otherUserKey, role, expires) => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),
109
+ removeUser: (space, otherUserKey) => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),
110
+ patchUsers: (space, value) => this.getStore().sdk.spaces.patchUsers(this.space || space, value),
111
+ };
112
+ this.certificates = {
113
+ add: (value, space) => this.getStore().sdk.certificates.add(value, this.space || space),
114
+ addBulk: (values, space) => this.getStore().sdk.certificates.addBulk(values, this.space || space),
115
+ read: (key) => this.getStore().sdk.certificates.read(key),
116
+ list: (options) => {
117
+ const cp = { ...options };
118
+ if (!cp.space) {
119
+ cp.space = this.space;
120
+ }
121
+ return this.getStore().sdk.certificates.list(cp);
122
+ },
123
+ delete: async (key) => {
124
+ await this.getStore().sdk.certificates.delete(key);
125
+ return {
126
+ key,
127
+ };
128
+ },
129
+ deleteBulk: (keys) => this.getStore().sdk.certificates.deleteBulk(keys),
130
+ empty: (space) => this.getStore().sdk.certificates.empty(this.space || space),
131
+ };
132
+ this.trash = {
133
+ add: (entry, space) => this.getStore().sdk.trash.add(entry, this.space || space),
134
+ list: (options) => {
135
+ const cp = { ...options };
136
+ if (!cp.space) {
137
+ cp.space = this.space;
138
+ }
139
+ return this.getStore().sdk.trash.list(cp);
140
+ },
141
+ delete: async (key) => {
142
+ await this.getStore().sdk.trash.delete(key);
143
+ return { key };
144
+ },
145
+ batchDelete: (keys) => this.getStore().sdk.trash.batchDelete(keys),
146
+ restore: (key) => this.getStore().sdk.trash.restore(key),
147
+ batchRestore: (keys) => this.getStore().sdk.trash.batchDelete(keys),
148
+ empty: (space) => this.getStore().sdk.trash.empty(this.space || space),
149
+ };
150
+ this.revisions = {
151
+ list: (key, options) => this.getStore().sdk.revisions.list(key, options),
152
+ };
153
+ this.media = {
154
+ add: (key, contents, mime) => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),
155
+ read: (key) => this.getStore().sdk.file.read(this.space, key, true),
156
+ patch: (key, info) => this.getStore().sdk.file.patch(this.space, key, info, true),
157
+ };
158
+ this.files = {
159
+ list: (options, kinds) => this.getStore().sdk.file.list(this.space, kinds, options),
160
+ add: (input, opts) => this.getStore().sdk.file.createMeta(input, this.space, opts),
161
+ read: (key) => this.getStore().sdk.file.read(this.space, key, false),
162
+ readBulk: (keys) => this.getStore().sdk.file.readBulk(this.space, keys),
163
+ delete: (key) => this.getStore().sdk.file.delete(this.space, key),
164
+ patch: (key, info) => this.getStore().sdk.file.patch(this.space, key, info, false),
165
+ breadcrumbs: (key) => this.getStore().sdk.file.breadcrumbs(this.space, key),
166
+ };
167
+ this.shared = {
168
+ list: (options, kinds) => this.getStore().sdk.shared.list(this.space, kinds, options),
169
+ };
170
+ this.users = {
171
+ list: (options) => this.getStore().sdk.user.list(options),
172
+ me: () => this.getStore().sdk.user.me(),
173
+ read: (key) => this.getStore().sdk.user.read(key),
174
+ };
175
+ }
37
176
  async initializeStore() {
38
177
  // ...
39
178
  }
@@ -86,65 +225,6 @@ export class StoreBindings extends PlatformBindings {
86
225
  target.addEventListener(EventTypes.HttpClient.Model.Certificate.delete, this.handleCertificateDelete.bind(this));
87
226
  target.addEventListener(EventTypes.HttpClient.Model.Certificate.insert, this.handleCertificateInsert.bind(this));
88
227
  }
89
- auth = {
90
- isAuthenticated: async (env) => {
91
- let { store } = this;
92
- if (env) {
93
- store = new HttpStore(env);
94
- }
95
- if (!store) {
96
- throw new Error(`Environment is not set.`);
97
- }
98
- return store.isAuthenticated(env);
99
- },
100
- authenticate: async (options = {}) => {
101
- const { env, force, updateEnvironment } = options;
102
- let { store } = this;
103
- if (env) {
104
- store = new HttpStore(env);
105
- }
106
- if (!store) {
107
- throw new Error(`Environment is not set.`);
108
- }
109
- const result = await store.getStoreSessionToken(undefined, force);
110
- if (updateEnvironment && result.new) {
111
- await Events.Config.Environment.update(env || this.globalEnvironment);
112
- }
113
- return result;
114
- },
115
- /**
116
- * @returns The current store token or undefined if no store is set.
117
- */
118
- getToken: async () => {
119
- const { store } = this;
120
- return store && store.sdk && store.sdk.token || undefined;
121
- },
122
- };
123
- global = {
124
- /**
125
- * Sets the store environment to be used globally by the application.
126
- * This initializes the store with the configuration.
127
- *
128
- * Note, this won't initialize the session with the store.
129
- *
130
- * @param env The environment to set. Note, it must have the `location` set.
131
- */
132
- set: async (env) => {
133
- if (!env.location) {
134
- throw new Error(`The location is required for store environment configuration.`);
135
- }
136
- this.globalEnvironment = env;
137
- const store = new HttpStore(env);
138
- this.store = store;
139
- },
140
- get: async () => {
141
- const { globalEnvironment } = this;
142
- if (!globalEnvironment) {
143
- throw new Error(`The current environment is not set.`);
144
- }
145
- return globalEnvironment;
146
- },
147
- };
148
228
  handleInitializeEnvironment(input) {
149
229
  const e = input;
150
230
  e.preventDefault();
@@ -435,93 +515,6 @@ export class StoreBindings extends PlatformBindings {
435
515
  }
436
516
  return store;
437
517
  }
438
- spaces = {
439
- list: (options) => this.getStore().sdk.spaces.list(options),
440
- add: (nameOrObject) => {
441
- let space;
442
- if (typeof nameOrObject === 'string') {
443
- space = Space.fromName(nameOrObject).toJSON();
444
- }
445
- else {
446
- space = nameOrObject;
447
- }
448
- return this.getStore().sdk.spaces.add(space);
449
- },
450
- read: (key) => this.getStore().sdk.spaces.read(key),
451
- delete: async (key) => {
452
- await this.getStore().sdk.spaces.delete(key);
453
- return {
454
- key,
455
- kind: SpaceKind,
456
- };
457
- },
458
- addUser: (space, otherUserKey, role, expires) => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),
459
- removeUser: (space, otherUserKey) => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),
460
- patchUsers: (space, value) => this.getStore().sdk.spaces.patchUsers(this.space || space, value),
461
- };
462
- certificates = {
463
- add: (value, space) => this.getStore().sdk.certificates.add(value, this.space || space),
464
- addBulk: (values, space) => this.getStore().sdk.certificates.addBulk(values, this.space || space),
465
- read: (key) => this.getStore().sdk.certificates.read(key),
466
- list: (options) => {
467
- const cp = { ...options };
468
- if (!cp.space) {
469
- cp.space = this.space;
470
- }
471
- return this.getStore().sdk.certificates.list(cp);
472
- },
473
- delete: async (key) => {
474
- await this.getStore().sdk.certificates.delete(key);
475
- return {
476
- key,
477
- };
478
- },
479
- deleteBulk: (keys) => this.getStore().sdk.certificates.deleteBulk(keys),
480
- empty: (space) => this.getStore().sdk.certificates.empty(this.space || space),
481
- };
482
- trash = {
483
- add: (entry, space) => this.getStore().sdk.trash.add(entry, this.space || space),
484
- list: (options) => {
485
- const cp = { ...options };
486
- if (!cp.space) {
487
- cp.space = this.space;
488
- }
489
- return this.getStore().sdk.trash.list(cp);
490
- },
491
- delete: async (key) => {
492
- await this.getStore().sdk.trash.delete(key);
493
- return { key };
494
- },
495
- batchDelete: (keys) => this.getStore().sdk.trash.batchDelete(keys),
496
- restore: (key) => this.getStore().sdk.trash.restore(key),
497
- batchRestore: (keys) => this.getStore().sdk.trash.batchDelete(keys),
498
- empty: (space) => this.getStore().sdk.trash.empty(this.space || space),
499
- };
500
- revisions = {
501
- list: (key, options) => this.getStore().sdk.revisions.list(key, options),
502
- };
503
- media = {
504
- add: (key, contents, mime) => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),
505
- read: (key) => this.getStore().sdk.file.read(this.space, key, true),
506
- patch: (key, info) => this.getStore().sdk.file.patch(this.space, key, info, true),
507
- };
508
- files = {
509
- list: (options, kinds) => this.getStore().sdk.file.list(this.space, kinds, options),
510
- add: (input, opts) => this.getStore().sdk.file.createMeta(input, this.space, opts),
511
- read: (key) => this.getStore().sdk.file.read(this.space, key, false),
512
- readBulk: (keys) => this.getStore().sdk.file.readBulk(this.space, keys),
513
- delete: (key) => this.getStore().sdk.file.delete(this.space, key),
514
- patch: (key, info) => this.getStore().sdk.file.patch(this.space, key, info, false),
515
- breadcrumbs: (key) => this.getStore().sdk.file.breadcrumbs(this.space, key),
516
- };
517
- shared = {
518
- list: (options, kinds) => this.getStore().sdk.shared.list(this.space, kinds, options),
519
- };
520
- users = {
521
- list: (options) => this.getStore().sdk.user.list(options),
522
- me: () => this.getStore().sdk.user.me(),
523
- read: (key) => this.getStore().sdk.user.read(key),
524
- };
525
518
  handleCertificateList(event) {
526
519
  const e = event;
527
520
  e.preventDefault();
@@ -615,7 +608,6 @@ export class StoreBindings extends PlatformBindings {
615
608
  };
616
609
  await this.sendSocket(socket, cmd);
617
610
  }
618
- eventsSocket;
619
611
  async getEventsSocket() {
620
612
  if (!this.eventsSocket) {
621
613
  const store = this.getStore();