@synchronized-console/shared 2.25.7 → 2.31.14

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 (675) hide show
  1. package/dist/commonjs/acc/helpers/types.d.ts +46 -0
  2. package/dist/commonjs/acc/helpers/types.d.ts.map +1 -0
  3. package/dist/commonjs/acc/helpers/types.js +3 -0
  4. package/dist/commonjs/acc/helpers/types.js.map +1 -0
  5. package/dist/commonjs/acc/index.d.ts +2 -0
  6. package/dist/commonjs/acc/index.d.ts.map +1 -0
  7. package/dist/commonjs/acc/index.js +18 -0
  8. package/dist/commonjs/acc/index.js.map +1 -0
  9. package/dist/commonjs/authz/checks/dashboards.d.ts +5 -0
  10. package/dist/commonjs/authz/checks/dashboards.d.ts.map +1 -0
  11. package/dist/commonjs/authz/checks/dashboards.js +11 -0
  12. package/dist/commonjs/authz/checks/dashboards.js.map +1 -0
  13. package/dist/commonjs/authz/domain/authErrors.d.ts +98 -3
  14. package/dist/commonjs/authz/domain/authErrors.d.ts.map +1 -1
  15. package/dist/commonjs/authz/domain/authErrors.js +66 -3
  16. package/dist/commonjs/authz/domain/authErrors.js.map +1 -1
  17. package/dist/commonjs/authz/domain/automate/operations.d.ts +5 -0
  18. package/dist/commonjs/authz/domain/automate/operations.d.ts.map +1 -0
  19. package/dist/commonjs/authz/domain/automate/operations.js +3 -0
  20. package/dist/commonjs/authz/domain/automate/operations.js.map +1 -0
  21. package/dist/commonjs/authz/domain/automate/types.d.ts +10 -0
  22. package/dist/commonjs/authz/domain/automate/types.d.ts.map +1 -0
  23. package/dist/commonjs/authz/domain/automate/types.js +3 -0
  24. package/dist/commonjs/authz/domain/automate/types.js.map +1 -0
  25. package/dist/commonjs/authz/domain/context.d.ts +12 -0
  26. package/dist/commonjs/authz/domain/context.d.ts.map +1 -1
  27. package/dist/commonjs/authz/domain/dashboards/operations.d.ts +5 -0
  28. package/dist/commonjs/authz/domain/dashboards/operations.d.ts.map +1 -0
  29. package/dist/commonjs/authz/domain/dashboards/operations.js +3 -0
  30. package/dist/commonjs/authz/domain/dashboards/operations.js.map +1 -0
  31. package/dist/commonjs/authz/domain/dashboards/types.d.ts +7 -0
  32. package/dist/commonjs/authz/domain/dashboards/types.d.ts.map +1 -0
  33. package/dist/commonjs/authz/domain/dashboards/types.js +3 -0
  34. package/dist/commonjs/authz/domain/dashboards/types.js.map +1 -0
  35. package/dist/commonjs/authz/domain/loaders.d.ts +63 -45
  36. package/dist/commonjs/authz/domain/loaders.d.ts.map +1 -1
  37. package/dist/commonjs/authz/domain/loaders.js +27 -21
  38. package/dist/commonjs/authz/domain/loaders.js.map +1 -1
  39. package/dist/commonjs/authz/domain/savedViews/operations.d.ts +10 -0
  40. package/dist/commonjs/authz/domain/savedViews/operations.d.ts.map +1 -0
  41. package/dist/commonjs/authz/domain/savedViews/operations.js +3 -0
  42. package/dist/commonjs/authz/domain/savedViews/operations.js.map +1 -0
  43. package/dist/commonjs/authz/domain/savedViews/types.d.ts +26 -0
  44. package/dist/commonjs/authz/domain/savedViews/types.d.ts.map +1 -0
  45. package/dist/commonjs/authz/domain/savedViews/types.js +6 -0
  46. package/dist/commonjs/authz/domain/savedViews/types.js.map +1 -0
  47. package/dist/commonjs/authz/domain/workspaces/operations.d.ts +2 -1
  48. package/dist/commonjs/authz/domain/workspaces/operations.d.ts.map +1 -1
  49. package/dist/commonjs/authz/domain/workspaces/types.d.ts +3 -0
  50. package/dist/commonjs/authz/domain/workspaces/types.d.ts.map +1 -1
  51. package/dist/commonjs/authz/fragments/automate.d.ts +7 -0
  52. package/dist/commonjs/authz/fragments/automate.d.ts.map +1 -0
  53. package/dist/commonjs/authz/fragments/automate.js +22 -0
  54. package/dist/commonjs/authz/fragments/automate.js.map +1 -0
  55. package/dist/commonjs/authz/fragments/dashboards.d.ts +8 -0
  56. package/dist/commonjs/authz/fragments/dashboards.d.ts.map +1 -0
  57. package/dist/commonjs/authz/fragments/dashboards.js +48 -0
  58. package/dist/commonjs/authz/fragments/dashboards.js.map +1 -0
  59. package/dist/commonjs/authz/fragments/projects.d.ts +13 -1
  60. package/dist/commonjs/authz/fragments/projects.d.ts.map +1 -1
  61. package/dist/commonjs/authz/fragments/projects.js +25 -1
  62. package/dist/commonjs/authz/fragments/projects.js.map +1 -1
  63. package/dist/commonjs/authz/fragments/savedViews.d.ts +30 -0
  64. package/dist/commonjs/authz/fragments/savedViews.d.ts.map +1 -0
  65. package/dist/commonjs/authz/fragments/savedViews.js +122 -0
  66. package/dist/commonjs/authz/fragments/savedViews.js.map +1 -0
  67. package/dist/commonjs/authz/fragments/workspaces.d.ts +9 -1
  68. package/dist/commonjs/authz/fragments/workspaces.d.ts.map +1 -1
  69. package/dist/commonjs/authz/fragments/workspaces.js +47 -1
  70. package/dist/commonjs/authz/fragments/workspaces.js.map +1 -1
  71. package/dist/commonjs/authz/helpers/graphql.d.ts +1 -1
  72. package/dist/commonjs/authz/helpers/graphql.d.ts.map +1 -1
  73. package/dist/commonjs/authz/helpers/graphql.js +1 -1
  74. package/dist/commonjs/authz/helpers/graphql.js.map +1 -1
  75. package/dist/commonjs/authz/index.d.ts +1 -0
  76. package/dist/commonjs/authz/index.d.ts.map +1 -1
  77. package/dist/commonjs/authz/index.js +1 -0
  78. package/dist/commonjs/authz/index.js.map +1 -1
  79. package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts +10 -0
  80. package/dist/commonjs/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
  81. package/dist/commonjs/authz/policies/automate/function/canEditFunction.js +19 -0
  82. package/dist/commonjs/authz/policies/automate/function/canEditFunction.js.map +1 -0
  83. package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts +10 -0
  84. package/dist/commonjs/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
  85. package/dist/commonjs/authz/policies/dashboard/canCreateToken.js +45 -0
  86. package/dist/commonjs/authz/policies/dashboard/canCreateToken.js.map +1 -0
  87. package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts +10 -0
  88. package/dist/commonjs/authz/policies/dashboard/canDelete.d.ts.map +1 -0
  89. package/dist/commonjs/authz/policies/dashboard/canDelete.js +45 -0
  90. package/dist/commonjs/authz/policies/dashboard/canDelete.js.map +1 -0
  91. package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts +10 -0
  92. package/dist/commonjs/authz/policies/dashboard/canEdit.d.ts.map +1 -0
  93. package/dist/commonjs/authz/policies/dashboard/canEdit.js +43 -0
  94. package/dist/commonjs/authz/policies/dashboard/canEdit.js.map +1 -0
  95. package/dist/commonjs/authz/policies/dashboard/canRead.d.ts +10 -0
  96. package/dist/commonjs/authz/policies/dashboard/canRead.d.ts.map +1 -0
  97. package/dist/commonjs/authz/policies/dashboard/canRead.js +42 -0
  98. package/dist/commonjs/authz/policies/dashboard/canRead.js.map +1 -0
  99. package/dist/commonjs/authz/policies/index.d.ts +62 -1
  100. package/dist/commonjs/authz/policies/index.d.ts.map +1 -1
  101. package/dist/commonjs/authz/policies/index.js +52 -4
  102. package/dist/commonjs/authz/policies/index.js.map +1 -1
  103. package/dist/commonjs/authz/policies/project/canLoad.d.ts.map +1 -1
  104. package/dist/commonjs/authz/policies/project/canLoad.js +6 -0
  105. package/dist/commonjs/authz/policies/project/canLoad.js.map +1 -1
  106. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
  107. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
  108. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js +35 -0
  109. package/dist/commonjs/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
  110. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
  111. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
  112. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js +52 -0
  113. package/dist/commonjs/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
  114. package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts +6 -0
  115. package/dist/commonjs/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
  116. package/dist/commonjs/authz/policies/project/savedViews/canCreate.js +31 -0
  117. package/dist/commonjs/authz/policies/project/savedViews/canCreate.js.map +1 -0
  118. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
  119. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
  120. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +61 -0
  121. package/dist/commonjs/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
  122. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
  123. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
  124. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js +14 -0
  125. package/dist/commonjs/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
  126. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
  127. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
  128. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js +14 -0
  129. package/dist/commonjs/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
  130. package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts +6 -0
  131. package/dist/commonjs/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
  132. package/dist/commonjs/authz/policies/project/savedViews/canMove.js +14 -0
  133. package/dist/commonjs/authz/policies/project/savedViews/canMove.js.map +1 -0
  134. package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts +11 -0
  135. package/dist/commonjs/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
  136. package/dist/commonjs/authz/policies/project/savedViews/canRead.js +15 -0
  137. package/dist/commonjs/authz/policies/project/savedViews/canRead.js.map +1 -0
  138. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
  139. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
  140. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js +45 -0
  141. package/dist/commonjs/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
  142. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
  143. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
  144. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js +14 -0
  145. package/dist/commonjs/authz/policies/project/savedViews/canUpdate.js.map +1 -0
  146. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
  147. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
  148. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js +14 -0
  149. package/dist/commonjs/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
  150. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
  151. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
  152. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js +39 -0
  153. package/dist/commonjs/authz/policies/workspace/canCreateDashboards.js.map +1 -0
  154. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
  155. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
  156. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js +51 -0
  157. package/dist/commonjs/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
  158. package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts +10 -0
  159. package/dist/commonjs/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
  160. package/dist/commonjs/authz/policies/workspace/canListDashboards.js +26 -0
  161. package/dist/commonjs/authz/policies/workspace/canListDashboards.js.map +1 -0
  162. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
  163. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
  164. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js +1 -20
  165. package/dist/commonjs/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
  166. package/dist/commonjs/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
  167. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
  168. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js +27 -0
  169. package/dist/commonjs/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
  170. package/dist/commonjs/automate/helpers/types.d.ts +313 -51
  171. package/dist/commonjs/automate/helpers/types.d.ts.map +1 -1
  172. package/dist/commonjs/automate/helpers/types.js +12 -2
  173. package/dist/commonjs/automate/helpers/types.js.map +1 -1
  174. package/dist/commonjs/blobs/index.d.ts +17 -0
  175. package/dist/commonjs/blobs/index.d.ts.map +1 -0
  176. package/dist/commonjs/blobs/index.js +114 -0
  177. package/dist/commonjs/blobs/index.js.map +1 -0
  178. package/dist/commonjs/core/constants.d.ts +4 -2
  179. package/dist/commonjs/core/constants.d.ts.map +1 -1
  180. package/dist/commonjs/core/constants.js +24 -4
  181. package/dist/commonjs/core/constants.js.map +1 -1
  182. package/dist/commonjs/core/helpers/encoding.d.ts +2 -0
  183. package/dist/commonjs/core/helpers/encoding.d.ts.map +1 -0
  184. package/dist/commonjs/core/helpers/encoding.js +15 -0
  185. package/dist/commonjs/core/helpers/encoding.js.map +1 -0
  186. package/dist/commonjs/core/helpers/error.d.ts +11 -0
  187. package/dist/commonjs/core/helpers/error.d.ts.map +1 -1
  188. package/dist/commonjs/core/helpers/error.js +60 -2
  189. package/dist/commonjs/core/helpers/error.js.map +1 -1
  190. package/dist/commonjs/core/helpers/url.d.ts +24 -0
  191. package/dist/commonjs/core/helpers/url.d.ts.map +1 -1
  192. package/dist/commonjs/core/helpers/url.js +30 -0
  193. package/dist/commonjs/core/helpers/url.js.map +1 -1
  194. package/dist/commonjs/core/helpers/utility.d.ts +16 -0
  195. package/dist/commonjs/core/helpers/utility.d.ts.map +1 -1
  196. package/dist/commonjs/core/helpers/utility.js +22 -1
  197. package/dist/commonjs/core/helpers/utility.js.map +1 -1
  198. package/dist/commonjs/core/index.d.ts +2 -0
  199. package/dist/commonjs/core/index.d.ts.map +1 -1
  200. package/dist/commonjs/core/index.js +2 -0
  201. package/dist/commonjs/core/index.js.map +1 -1
  202. package/dist/commonjs/core/utils/base64.d.ts +3 -0
  203. package/dist/commonjs/core/utils/base64.d.ts.map +1 -0
  204. package/dist/commonjs/core/utils/base64.js +25 -0
  205. package/dist/commonjs/core/utils/base64.js.map +1 -0
  206. package/dist/commonjs/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
  207. package/dist/commonjs/environment/db.d.ts.map +1 -0
  208. package/dist/commonjs/environment/{multiRegionConfig.js → db.js} +45 -10
  209. package/dist/commonjs/environment/db.js.map +1 -0
  210. package/dist/commonjs/environment/featureFlags.d.ts +25 -0
  211. package/dist/commonjs/environment/featureFlags.d.ts.map +1 -0
  212. package/dist/commonjs/environment/featureFlags.js +6 -0
  213. package/dist/commonjs/environment/featureFlags.js.map +1 -0
  214. package/dist/commonjs/environment/index.d.ts +2 -15
  215. package/dist/commonjs/environment/index.d.ts.map +1 -1
  216. package/dist/commonjs/environment/index.js +44 -7
  217. package/dist/commonjs/environment/index.js.map +1 -1
  218. package/dist/commonjs/environment/node.d.ts +5 -0
  219. package/dist/commonjs/environment/node.d.ts.map +1 -0
  220. package/dist/commonjs/environment/node.js +15 -0
  221. package/dist/commonjs/environment/node.js.map +1 -0
  222. package/dist/commonjs/images/base64.d.ts +2 -0
  223. package/dist/commonjs/images/base64.d.ts.map +1 -0
  224. package/dist/commonjs/images/base64.js +19 -0
  225. package/dist/commonjs/images/base64.js.map +1 -0
  226. package/dist/commonjs/index.d.ts +1 -0
  227. package/dist/commonjs/index.d.ts.map +1 -1
  228. package/dist/commonjs/index.js +1 -0
  229. package/dist/commonjs/index.js.map +1 -1
  230. package/dist/commonjs/observability/index.d.ts.map +1 -1
  231. package/dist/commonjs/observability/index.js +19 -2
  232. package/dist/commonjs/observability/index.js.map +1 -1
  233. package/dist/commonjs/queue/config.d.ts +3 -0
  234. package/dist/commonjs/queue/config.d.ts.map +1 -1
  235. package/dist/commonjs/queue/config.js +14 -5
  236. package/dist/commonjs/queue/config.js.map +1 -1
  237. package/dist/commonjs/rich-text-editor/helpers/index.d.ts +13 -1
  238. package/dist/commonjs/rich-text-editor/helpers/index.d.ts.map +1 -1
  239. package/dist/commonjs/rich-text-editor/helpers/index.js +1 -0
  240. package/dist/commonjs/rich-text-editor/helpers/index.js.map +1 -1
  241. package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts +23 -0
  242. package/dist/commonjs/saved-views/helpers/defaultGroup.d.ts.map +1 -0
  243. package/dist/commonjs/saved-views/helpers/defaultGroup.js +58 -0
  244. package/dist/commonjs/saved-views/helpers/defaultGroup.js.map +1 -0
  245. package/dist/commonjs/saved-views/index.d.ts +2 -0
  246. package/dist/commonjs/saved-views/index.d.ts.map +1 -0
  247. package/dist/commonjs/saved-views/index.js +18 -0
  248. package/dist/commonjs/saved-views/index.js.map +1 -0
  249. package/dist/commonjs/viewer/helpers/route.d.ts +42 -7
  250. package/dist/commonjs/viewer/helpers/route.d.ts.map +1 -1
  251. package/dist/commonjs/viewer/helpers/route.js +149 -38
  252. package/dist/commonjs/viewer/helpers/route.js.map +1 -1
  253. package/dist/commonjs/viewer/helpers/state.d.ts +59 -6
  254. package/dist/commonjs/viewer/helpers/state.d.ts.map +1 -1
  255. package/dist/commonjs/viewer/helpers/state.js +100 -23
  256. package/dist/commonjs/viewer/helpers/state.js.map +1 -1
  257. package/dist/commonjs/workers/fileimport/job.d.ts +85 -9
  258. package/dist/commonjs/workers/fileimport/job.d.ts.map +1 -1
  259. package/dist/commonjs/workers/fileimport/job.js +21 -10
  260. package/dist/commonjs/workers/fileimport/job.js.map +1 -1
  261. package/dist/commonjs/workers/previews/job.d.ts +37 -20
  262. package/dist/commonjs/workers/previews/job.d.ts.map +1 -1
  263. package/dist/commonjs/workers/previews/job.js +23 -2
  264. package/dist/commonjs/workers/previews/job.js.map +1 -1
  265. package/dist/commonjs/workspaces/helpers/features.d.ts +55 -5
  266. package/dist/commonjs/workspaces/helpers/features.d.ts.map +1 -1
  267. package/dist/commonjs/workspaces/helpers/features.js +180 -114
  268. package/dist/commonjs/workspaces/helpers/features.js.map +1 -1
  269. package/dist/commonjs/workspaces/helpers/plans.d.ts +1 -0
  270. package/dist/commonjs/workspaces/helpers/plans.d.ts.map +1 -1
  271. package/dist/commonjs/workspaces/helpers/plans.js.map +1 -1
  272. package/dist/esm/acc/helpers/types.d.ts +46 -0
  273. package/dist/esm/acc/helpers/types.d.ts.map +1 -0
  274. package/dist/esm/acc/helpers/types.js +2 -0
  275. package/dist/esm/acc/helpers/types.js.map +1 -0
  276. package/dist/esm/acc/index.d.ts +2 -0
  277. package/dist/esm/acc/index.d.ts.map +1 -0
  278. package/dist/esm/acc/index.js +2 -0
  279. package/dist/esm/acc/index.js.map +1 -0
  280. package/dist/esm/authz/checks/dashboards.d.ts +5 -0
  281. package/dist/esm/authz/checks/dashboards.d.ts.map +1 -0
  282. package/dist/esm/authz/checks/dashboards.js +7 -0
  283. package/dist/esm/authz/checks/dashboards.js.map +1 -0
  284. package/dist/esm/authz/domain/authErrors.d.ts +98 -3
  285. package/dist/esm/authz/domain/authErrors.d.ts.map +1 -1
  286. package/dist/esm/authz/domain/authErrors.js +65 -2
  287. package/dist/esm/authz/domain/authErrors.js.map +1 -1
  288. package/dist/esm/authz/domain/automate/operations.d.ts +5 -0
  289. package/dist/esm/authz/domain/automate/operations.d.ts.map +1 -0
  290. package/dist/esm/authz/domain/automate/operations.js +2 -0
  291. package/dist/esm/authz/domain/automate/operations.js.map +1 -0
  292. package/dist/esm/authz/domain/automate/types.d.ts +10 -0
  293. package/dist/esm/authz/domain/automate/types.d.ts.map +1 -0
  294. package/dist/esm/authz/domain/automate/types.js +2 -0
  295. package/dist/esm/authz/domain/automate/types.js.map +1 -0
  296. package/dist/esm/authz/domain/context.d.ts +12 -0
  297. package/dist/esm/authz/domain/context.d.ts.map +1 -1
  298. package/dist/esm/authz/domain/dashboards/operations.d.ts +5 -0
  299. package/dist/esm/authz/domain/dashboards/operations.d.ts.map +1 -0
  300. package/dist/esm/authz/domain/dashboards/operations.js +2 -0
  301. package/dist/esm/authz/domain/dashboards/operations.js.map +1 -0
  302. package/dist/esm/authz/domain/dashboards/types.d.ts +7 -0
  303. package/dist/esm/authz/domain/dashboards/types.d.ts.map +1 -0
  304. package/dist/esm/authz/domain/dashboards/types.js +2 -0
  305. package/dist/esm/authz/domain/dashboards/types.js.map +1 -0
  306. package/dist/esm/authz/domain/loaders.d.ts +63 -45
  307. package/dist/esm/authz/domain/loaders.d.ts.map +1 -1
  308. package/dist/esm/authz/domain/loaders.js +27 -21
  309. package/dist/esm/authz/domain/loaders.js.map +1 -1
  310. package/dist/esm/authz/domain/savedViews/operations.d.ts +10 -0
  311. package/dist/esm/authz/domain/savedViews/operations.d.ts.map +1 -0
  312. package/dist/esm/authz/domain/savedViews/operations.js +2 -0
  313. package/dist/esm/authz/domain/savedViews/operations.js.map +1 -0
  314. package/dist/esm/authz/domain/savedViews/types.d.ts +26 -0
  315. package/dist/esm/authz/domain/savedViews/types.d.ts.map +1 -0
  316. package/dist/esm/authz/domain/savedViews/types.js +3 -0
  317. package/dist/esm/authz/domain/savedViews/types.js.map +1 -0
  318. package/dist/esm/authz/domain/workspaces/operations.d.ts +2 -1
  319. package/dist/esm/authz/domain/workspaces/operations.d.ts.map +1 -1
  320. package/dist/esm/authz/domain/workspaces/types.d.ts +3 -0
  321. package/dist/esm/authz/domain/workspaces/types.d.ts.map +1 -1
  322. package/dist/esm/authz/fragments/automate.d.ts +7 -0
  323. package/dist/esm/authz/fragments/automate.d.ts.map +1 -0
  324. package/dist/esm/authz/fragments/automate.js +17 -0
  325. package/dist/esm/authz/fragments/automate.js.map +1 -0
  326. package/dist/esm/authz/fragments/dashboards.d.ts +8 -0
  327. package/dist/esm/authz/fragments/dashboards.d.ts.map +1 -0
  328. package/dist/esm/authz/fragments/dashboards.js +42 -0
  329. package/dist/esm/authz/fragments/dashboards.js.map +1 -0
  330. package/dist/esm/authz/fragments/projects.d.ts +13 -1
  331. package/dist/esm/authz/fragments/projects.d.ts.map +1 -1
  332. package/dist/esm/authz/fragments/projects.js +24 -1
  333. package/dist/esm/authz/fragments/projects.js.map +1 -1
  334. package/dist/esm/authz/fragments/savedViews.d.ts +30 -0
  335. package/dist/esm/authz/fragments/savedViews.d.ts.map +1 -0
  336. package/dist/esm/authz/fragments/savedViews.js +117 -0
  337. package/dist/esm/authz/fragments/savedViews.js.map +1 -0
  338. package/dist/esm/authz/fragments/workspaces.d.ts +9 -1
  339. package/dist/esm/authz/fragments/workspaces.d.ts.map +1 -1
  340. package/dist/esm/authz/fragments/workspaces.js +45 -1
  341. package/dist/esm/authz/fragments/workspaces.js.map +1 -1
  342. package/dist/esm/authz/helpers/graphql.d.ts +1 -1
  343. package/dist/esm/authz/helpers/graphql.d.ts.map +1 -1
  344. package/dist/esm/authz/helpers/graphql.js +1 -1
  345. package/dist/esm/authz/helpers/graphql.js.map +1 -1
  346. package/dist/esm/authz/index.d.ts +1 -0
  347. package/dist/esm/authz/index.d.ts.map +1 -1
  348. package/dist/esm/authz/index.js +1 -0
  349. package/dist/esm/authz/index.js.map +1 -1
  350. package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts +10 -0
  351. package/dist/esm/authz/policies/automate/function/canEditFunction.d.ts.map +1 -0
  352. package/dist/esm/authz/policies/automate/function/canEditFunction.js +15 -0
  353. package/dist/esm/authz/policies/automate/function/canEditFunction.js.map +1 -0
  354. package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts +10 -0
  355. package/dist/esm/authz/policies/dashboard/canCreateToken.d.ts.map +1 -0
  356. package/dist/esm/authz/policies/dashboard/canCreateToken.js +41 -0
  357. package/dist/esm/authz/policies/dashboard/canCreateToken.js.map +1 -0
  358. package/dist/esm/authz/policies/dashboard/canDelete.d.ts +10 -0
  359. package/dist/esm/authz/policies/dashboard/canDelete.d.ts.map +1 -0
  360. package/dist/esm/authz/policies/dashboard/canDelete.js +41 -0
  361. package/dist/esm/authz/policies/dashboard/canDelete.js.map +1 -0
  362. package/dist/esm/authz/policies/dashboard/canEdit.d.ts +10 -0
  363. package/dist/esm/authz/policies/dashboard/canEdit.d.ts.map +1 -0
  364. package/dist/esm/authz/policies/dashboard/canEdit.js +39 -0
  365. package/dist/esm/authz/policies/dashboard/canEdit.js.map +1 -0
  366. package/dist/esm/authz/policies/dashboard/canRead.d.ts +10 -0
  367. package/dist/esm/authz/policies/dashboard/canRead.d.ts.map +1 -0
  368. package/dist/esm/authz/policies/dashboard/canRead.js +38 -0
  369. package/dist/esm/authz/policies/dashboard/canRead.js.map +1 -0
  370. package/dist/esm/authz/policies/index.d.ts +62 -1
  371. package/dist/esm/authz/policies/index.d.ts.map +1 -1
  372. package/dist/esm/authz/policies/index.js +52 -4
  373. package/dist/esm/authz/policies/index.js.map +1 -1
  374. package/dist/esm/authz/policies/project/canLoad.d.ts.map +1 -1
  375. package/dist/esm/authz/policies/project/canLoad.js +6 -0
  376. package/dist/esm/authz/policies/project/canLoad.js.map +1 -1
  377. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts +10 -0
  378. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.d.ts.map +1 -0
  379. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js +31 -0
  380. package/dist/esm/authz/policies/project/canReadAccIntegrationSettings.js.map +1 -0
  381. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts +10 -0
  382. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.d.ts.map +1 -0
  383. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js +48 -0
  384. package/dist/esm/authz/policies/project/canUpdateEmbedTokens.js.map +1 -0
  385. package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts +6 -0
  386. package/dist/esm/authz/policies/project/savedViews/canCreate.d.ts.map +1 -0
  387. package/dist/esm/authz/policies/project/savedViews/canCreate.js +27 -0
  388. package/dist/esm/authz/policies/project/savedViews/canCreate.js.map +1 -0
  389. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts +6 -0
  390. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.d.ts.map +1 -0
  391. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js +57 -0
  392. package/dist/esm/authz/policies/project/savedViews/canCreateSavedViewGroupToken.js.map +1 -0
  393. package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts +6 -0
  394. package/dist/esm/authz/policies/project/savedViews/canEditDescription.d.ts.map +1 -0
  395. package/dist/esm/authz/policies/project/savedViews/canEditDescription.js +10 -0
  396. package/dist/esm/authz/policies/project/savedViews/canEditDescription.js.map +1 -0
  397. package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts +6 -0
  398. package/dist/esm/authz/policies/project/savedViews/canEditTitle.d.ts.map +1 -0
  399. package/dist/esm/authz/policies/project/savedViews/canEditTitle.js +10 -0
  400. package/dist/esm/authz/policies/project/savedViews/canEditTitle.js.map +1 -0
  401. package/dist/esm/authz/policies/project/savedViews/canMove.d.ts +6 -0
  402. package/dist/esm/authz/policies/project/savedViews/canMove.d.ts.map +1 -0
  403. package/dist/esm/authz/policies/project/savedViews/canMove.js +10 -0
  404. package/dist/esm/authz/policies/project/savedViews/canMove.js.map +1 -0
  405. package/dist/esm/authz/policies/project/savedViews/canRead.d.ts +11 -0
  406. package/dist/esm/authz/policies/project/savedViews/canRead.d.ts.map +1 -0
  407. package/dist/esm/authz/policies/project/savedViews/canRead.js +11 -0
  408. package/dist/esm/authz/policies/project/savedViews/canRead.js.map +1 -0
  409. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts +6 -0
  410. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.d.ts.map +1 -0
  411. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js +41 -0
  412. package/dist/esm/authz/policies/project/savedViews/canSetAsHomeView.js.map +1 -0
  413. package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts +6 -0
  414. package/dist/esm/authz/policies/project/savedViews/canUpdate.d.ts.map +1 -0
  415. package/dist/esm/authz/policies/project/savedViews/canUpdate.js +10 -0
  416. package/dist/esm/authz/policies/project/savedViews/canUpdate.js.map +1 -0
  417. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts +6 -0
  418. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.d.ts.map +1 -0
  419. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js +10 -0
  420. package/dist/esm/authz/policies/project/savedViews/canUpdateGroup.js.map +1 -0
  421. package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts +10 -0
  422. package/dist/esm/authz/policies/workspace/canCreateDashboards.d.ts.map +1 -0
  423. package/dist/esm/authz/policies/workspace/canCreateDashboards.js +35 -0
  424. package/dist/esm/authz/policies/workspace/canCreateDashboards.js.map +1 -0
  425. package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts +10 -0
  426. package/dist/esm/authz/policies/workspace/canCreateWorkspace.d.ts.map +1 -0
  427. package/dist/esm/authz/policies/workspace/canCreateWorkspace.js +47 -0
  428. package/dist/esm/authz/policies/workspace/canCreateWorkspace.js.map +1 -0
  429. package/dist/esm/authz/policies/workspace/canListDashboards.d.ts +10 -0
  430. package/dist/esm/authz/policies/workspace/canListDashboards.d.ts.map +1 -0
  431. package/dist/esm/authz/policies/workspace/canListDashboards.js +22 -0
  432. package/dist/esm/authz/policies/workspace/canListDashboards.js.map +1 -0
  433. package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts +1 -1
  434. package/dist/esm/authz/policies/workspace/canReadMemberEmail.d.ts.map +1 -1
  435. package/dist/esm/authz/policies/workspace/canReadMemberEmail.js +2 -21
  436. package/dist/esm/authz/policies/workspace/canReadMemberEmail.js.map +1 -1
  437. package/dist/esm/authz/policies/workspace/{canUpdateEmbedOptions.d.ts → canUseWorkspacePlanFeature.d.ts} +13 -5
  438. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.d.ts.map +1 -0
  439. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js +23 -0
  440. package/dist/esm/authz/policies/workspace/canUseWorkspacePlanFeature.js.map +1 -0
  441. package/dist/esm/automate/helpers/types.d.ts +313 -51
  442. package/dist/esm/automate/helpers/types.d.ts.map +1 -1
  443. package/dist/esm/automate/helpers/types.js +11 -1
  444. package/dist/esm/automate/helpers/types.js.map +1 -1
  445. package/dist/esm/blobs/index.d.ts +17 -0
  446. package/dist/esm/blobs/index.d.ts.map +1 -0
  447. package/dist/esm/blobs/index.js +111 -0
  448. package/dist/esm/blobs/index.js.map +1 -0
  449. package/dist/esm/core/constants.d.ts +4 -2
  450. package/dist/esm/core/constants.d.ts.map +1 -1
  451. package/dist/esm/core/constants.js +24 -4
  452. package/dist/esm/core/constants.js.map +1 -1
  453. package/dist/esm/core/helpers/encoding.d.ts +2 -0
  454. package/dist/esm/core/helpers/encoding.d.ts.map +1 -0
  455. package/dist/esm/core/helpers/encoding.js +11 -0
  456. package/dist/esm/core/helpers/encoding.js.map +1 -0
  457. package/dist/esm/core/helpers/error.d.ts +11 -0
  458. package/dist/esm/core/helpers/error.d.ts.map +1 -1
  459. package/dist/esm/core/helpers/error.js +56 -1
  460. package/dist/esm/core/helpers/error.js.map +1 -1
  461. package/dist/esm/core/helpers/url.d.ts +24 -0
  462. package/dist/esm/core/helpers/url.d.ts.map +1 -1
  463. package/dist/esm/core/helpers/url.js +30 -0
  464. package/dist/esm/core/helpers/url.js.map +1 -1
  465. package/dist/esm/core/helpers/utility.d.ts +16 -0
  466. package/dist/esm/core/helpers/utility.d.ts.map +1 -1
  467. package/dist/esm/core/helpers/utility.js +19 -0
  468. package/dist/esm/core/helpers/utility.js.map +1 -1
  469. package/dist/esm/core/index.d.ts +2 -0
  470. package/dist/esm/core/index.d.ts.map +1 -1
  471. package/dist/esm/core/index.js +2 -0
  472. package/dist/esm/core/index.js.map +1 -1
  473. package/dist/esm/core/utils/base64.d.ts +3 -0
  474. package/dist/esm/core/utils/base64.d.ts.map +1 -0
  475. package/dist/esm/core/utils/base64.js +21 -0
  476. package/dist/esm/core/utils/base64.js.map +1 -0
  477. package/dist/esm/environment/{multiRegionConfig.d.ts → db.d.ts} +54 -5
  478. package/dist/esm/environment/db.d.ts.map +1 -0
  479. package/dist/esm/environment/{multiRegionConfig.js → db.js} +40 -7
  480. package/dist/esm/environment/db.js.map +1 -0
  481. package/dist/esm/environment/featureFlags.d.ts +25 -0
  482. package/dist/esm/environment/featureFlags.d.ts.map +1 -0
  483. package/dist/esm/environment/featureFlags.js +5 -0
  484. package/dist/esm/environment/featureFlags.js.map +1 -0
  485. package/dist/esm/environment/index.d.ts +2 -15
  486. package/dist/esm/environment/index.d.ts.map +1 -1
  487. package/dist/esm/environment/index.js +44 -7
  488. package/dist/esm/environment/index.js.map +1 -1
  489. package/dist/esm/environment/node.d.ts +5 -0
  490. package/dist/esm/environment/node.d.ts.map +1 -0
  491. package/dist/esm/environment/node.js +11 -0
  492. package/dist/esm/environment/node.js.map +1 -0
  493. package/dist/esm/images/base64.d.ts +2 -0
  494. package/dist/esm/images/base64.d.ts.map +1 -0
  495. package/dist/esm/images/base64.js +15 -0
  496. package/dist/esm/images/base64.js.map +1 -0
  497. package/dist/esm/index.d.ts +1 -0
  498. package/dist/esm/index.d.ts.map +1 -1
  499. package/dist/esm/index.js +1 -0
  500. package/dist/esm/index.js.map +1 -1
  501. package/dist/esm/observability/index.d.ts.map +1 -1
  502. package/dist/esm/observability/index.js +19 -2
  503. package/dist/esm/observability/index.js.map +1 -1
  504. package/dist/esm/queue/config.d.ts +3 -0
  505. package/dist/esm/queue/config.d.ts.map +1 -1
  506. package/dist/esm/queue/config.js +12 -4
  507. package/dist/esm/queue/config.js.map +1 -1
  508. package/dist/esm/rich-text-editor/helpers/index.d.ts +13 -1
  509. package/dist/esm/rich-text-editor/helpers/index.d.ts.map +1 -1
  510. package/dist/esm/rich-text-editor/helpers/index.js +1 -0
  511. package/dist/esm/rich-text-editor/helpers/index.js.map +1 -1
  512. package/dist/esm/saved-views/helpers/defaultGroup.d.ts +23 -0
  513. package/dist/esm/saved-views/helpers/defaultGroup.d.ts.map +1 -0
  514. package/dist/esm/saved-views/helpers/defaultGroup.js +51 -0
  515. package/dist/esm/saved-views/helpers/defaultGroup.js.map +1 -0
  516. package/dist/esm/saved-views/index.d.ts +2 -0
  517. package/dist/esm/saved-views/index.d.ts.map +1 -0
  518. package/dist/esm/saved-views/index.js +2 -0
  519. package/dist/esm/saved-views/index.js.map +1 -0
  520. package/dist/esm/viewer/helpers/route.d.ts +42 -7
  521. package/dist/esm/viewer/helpers/route.d.ts.map +1 -1
  522. package/dist/esm/viewer/helpers/route.js +140 -30
  523. package/dist/esm/viewer/helpers/route.js.map +1 -1
  524. package/dist/esm/viewer/helpers/state.d.ts +59 -6
  525. package/dist/esm/viewer/helpers/state.d.ts.map +1 -1
  526. package/dist/esm/viewer/helpers/state.js +97 -22
  527. package/dist/esm/viewer/helpers/state.js.map +1 -1
  528. package/dist/esm/workers/fileimport/job.d.ts +85 -9
  529. package/dist/esm/workers/fileimport/job.d.ts.map +1 -1
  530. package/dist/esm/workers/fileimport/job.js +20 -9
  531. package/dist/esm/workers/fileimport/job.js.map +1 -1
  532. package/dist/esm/workers/previews/job.d.ts +37 -20
  533. package/dist/esm/workers/previews/job.d.ts.map +1 -1
  534. package/dist/esm/workers/previews/job.js +20 -1
  535. package/dist/esm/workers/previews/job.js.map +1 -1
  536. package/dist/esm/workspaces/helpers/features.d.ts +55 -5
  537. package/dist/esm/workspaces/helpers/features.d.ts.map +1 -1
  538. package/dist/esm/workspaces/helpers/features.js +173 -113
  539. package/dist/esm/workspaces/helpers/features.js.map +1 -1
  540. package/dist/esm/workspaces/helpers/plans.d.ts +1 -0
  541. package/dist/esm/workspaces/helpers/plans.d.ts.map +1 -1
  542. package/dist/esm/workspaces/helpers/plans.js.map +1 -1
  543. package/package.json +110 -8
  544. package/src/acc/helpers/types.ts +42 -0
  545. package/src/acc/index.ts +1 -0
  546. package/src/authz/checks/dashboards.spec.ts +46 -0
  547. package/src/authz/checks/dashboards.ts +14 -0
  548. package/src/authz/domain/authErrors.ts +87 -2
  549. package/src/authz/domain/automate/operations.ts +5 -0
  550. package/src/authz/domain/automate/types.ts +9 -0
  551. package/src/authz/domain/context.ts +8 -0
  552. package/src/authz/domain/dashboards/operations.ts +3 -0
  553. package/src/authz/domain/dashboards/types.ts +6 -0
  554. package/src/authz/domain/loaders.ts +40 -24
  555. package/src/authz/domain/savedViews/operations.ts +11 -0
  556. package/src/authz/domain/savedViews/types.ts +25 -0
  557. package/src/authz/domain/workspaces/operations.ts +3 -1
  558. package/src/authz/domain/workspaces/types.ts +4 -0
  559. package/src/authz/fragments/automate.spec.ts +120 -0
  560. package/src/authz/fragments/automate.ts +36 -0
  561. package/src/authz/fragments/dashboards.ts +90 -0
  562. package/src/authz/fragments/projects.spec.ts +135 -10
  563. package/src/authz/fragments/projects.ts +53 -1
  564. package/src/authz/fragments/savedViews.spec.ts +551 -0
  565. package/src/authz/fragments/savedViews.ts +245 -0
  566. package/src/authz/fragments/workspaces.spec.ts +234 -7
  567. package/src/authz/fragments/workspaces.ts +84 -0
  568. package/src/authz/helpers/graphql.ts +2 -2
  569. package/src/authz/index.ts +1 -0
  570. package/src/authz/policies/automate/function/canEditFunction.spec.ts +87 -0
  571. package/src/authz/policies/automate/function/canEditFunction.ts +46 -0
  572. package/src/authz/policies/dashboard/canCreateToken.ts +89 -0
  573. package/src/authz/policies/dashboard/canDelete.ts +84 -0
  574. package/src/authz/policies/dashboard/canEdit.ts +79 -0
  575. package/src/authz/policies/dashboard/canRead.ts +83 -0
  576. package/src/authz/policies/index.spec.ts +13 -0
  577. package/src/authz/policies/index.ts +52 -4
  578. package/src/authz/policies/project/automation/canCreate.spec.ts +2 -1
  579. package/src/authz/policies/project/automation/canDelete.spec.ts +2 -1
  580. package/src/authz/policies/project/automation/canUpdate.spec.ts +2 -1
  581. package/src/authz/policies/project/canBroadcastActivity.spec.ts +2 -2
  582. package/src/authz/policies/project/canDelete.spec.ts +2 -2
  583. package/src/authz/policies/project/canLeave.spec.ts +2 -2
  584. package/src/authz/policies/project/canLoad.spec.ts +17 -1
  585. package/src/authz/policies/project/canLoad.ts +7 -0
  586. package/src/authz/policies/project/canMoveToWorkspace.spec.ts +6 -10
  587. package/src/authz/policies/project/canPublish.spec.ts +2 -1
  588. package/src/authz/policies/project/canRead.spec.ts +2 -3
  589. package/src/authz/policies/project/canReadAccIntegrationSettings.spec.ts +133 -0
  590. package/src/authz/policies/project/canReadAccIntegrationSettings.ts +87 -0
  591. package/src/authz/policies/project/canReadSettings.spec.ts +2 -2
  592. package/src/authz/policies/project/canReadWebhooks.spec.ts +2 -2
  593. package/src/authz/policies/project/canUpdate.spec.ts +2 -5
  594. package/src/authz/policies/project/canUpdateEmbedTokens.spec.ts +132 -0
  595. package/src/authz/policies/project/canUpdateEmbedTokens.ts +101 -0
  596. package/src/authz/policies/project/comment/canArchive.spec.ts +6 -5
  597. package/src/authz/policies/project/comment/canCreate.spec.ts +2 -2
  598. package/src/authz/policies/project/comment/canEdit.spec.ts +6 -5
  599. package/src/authz/policies/project/model/canDelete.spec.ts +6 -2
  600. package/src/authz/policies/project/model/canUpdate.spec.ts +2 -5
  601. package/src/authz/policies/project/savedViews/canCreate.spec.ts +186 -0
  602. package/src/authz/policies/project/savedViews/canCreate.ts +81 -0
  603. package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.spec.ts +250 -0
  604. package/src/authz/policies/project/savedViews/canCreateSavedViewGroupToken.ts +117 -0
  605. package/src/authz/policies/project/savedViews/canEditDescription.spec.ts +206 -0
  606. package/src/authz/policies/project/savedViews/canEditDescription.ts +67 -0
  607. package/src/authz/policies/project/savedViews/canEditTitle.spec.ts +204 -0
  608. package/src/authz/policies/project/savedViews/canEditTitle.ts +67 -0
  609. package/src/authz/policies/project/savedViews/canMove.spec.ts +204 -0
  610. package/src/authz/policies/project/savedViews/canMove.ts +67 -0
  611. package/src/authz/policies/project/savedViews/canRead.ts +72 -0
  612. package/src/authz/policies/project/savedViews/canSetAsHomeView.spec.ts +248 -0
  613. package/src/authz/policies/project/savedViews/canSetAsHomeView.ts +108 -0
  614. package/src/authz/policies/project/savedViews/canUpdate.spec.ts +191 -0
  615. package/src/authz/policies/project/savedViews/canUpdate.ts +67 -0
  616. package/src/authz/policies/project/savedViews/canUpdateGroup.spec.ts +227 -0
  617. package/src/authz/policies/project/savedViews/canUpdateGroup.ts +63 -0
  618. package/src/authz/policies/project/version/canUpdate.spec.ts +6 -5
  619. package/src/authz/policies/workspace/canCreateDashboards.ts +71 -0
  620. package/src/authz/policies/workspace/canCreateWorkspace.spec.ts +380 -0
  621. package/src/authz/policies/workspace/canCreateWorkspace.ts +77 -0
  622. package/src/authz/policies/workspace/canListDashboards.ts +53 -0
  623. package/src/authz/policies/workspace/canReadMemberEmail.spec.ts +25 -36
  624. package/src/authz/policies/workspace/canReadMemberEmail.ts +11 -34
  625. package/src/authz/policies/workspace/canReceiveProjectsUpdatedMessage.spec.ts +2 -5
  626. package/src/authz/policies/workspace/{canUpdateEmbedOptions.spec.ts → canUseWorkspacePlanFeature.spec.ts} +40 -38
  627. package/src/authz/policies/workspace/canUseWorkspacePlanFeature.ts +69 -0
  628. package/src/automate/helpers/types.ts +17 -3
  629. package/src/blobs/index.ts +121 -0
  630. package/src/core/constants.ts +25 -4
  631. package/src/core/helpers/encoding.ts +12 -0
  632. package/src/core/helpers/error.spec.ts +215 -0
  633. package/src/core/helpers/error.ts +58 -1
  634. package/src/core/helpers/url.ts +33 -0
  635. package/src/core/helpers/utility.spec.ts +19 -1
  636. package/src/core/helpers/utility.ts +31 -0
  637. package/src/core/index.ts +2 -0
  638. package/src/core/utils/base64.spec.ts +31 -0
  639. package/src/core/utils/base64.ts +19 -0
  640. package/src/environment/db.spec.ts +48 -0
  641. package/src/environment/{multiRegionConfig.ts → db.ts} +62 -8
  642. package/src/environment/featureFlags.ts +25 -0
  643. package/src/environment/index.spec.ts +126 -0
  644. package/src/environment/index.ts +51 -24
  645. package/src/environment/node.ts +11 -0
  646. package/src/images/base64.spec.ts +42 -0
  647. package/src/images/base64.ts +15 -0
  648. package/src/index.ts +1 -0
  649. package/src/observability/index.ts +22 -2
  650. package/src/queue/config.ts +18 -6
  651. package/src/rich-text-editor/helpers/index.ts +15 -1
  652. package/src/saved-views/helpers/defaultGroup.spec.ts +12 -0
  653. package/src/saved-views/helpers/defaultGroup.ts +70 -0
  654. package/src/saved-views/index.ts +1 -0
  655. package/src/tests/fakes.ts +55 -4
  656. package/src/viewer/helpers/route.spec.ts +353 -0
  657. package/src/viewer/helpers/route.ts +180 -25
  658. package/src/viewer/helpers/state.spec.ts +252 -0
  659. package/src/viewer/helpers/state.ts +158 -27
  660. package/src/workers/fileimport/job.ts +40 -21
  661. package/src/workers/previews/job.ts +23 -1
  662. package/src/workspaces/helpers/features.spec.ts +99 -0
  663. package/src/workspaces/helpers/features.ts +215 -119
  664. package/src/workspaces/helpers/plans.ts +1 -0
  665. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
  666. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js +0 -44
  667. package/dist/commonjs/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
  668. package/dist/commonjs/environment/multiRegionConfig.d.ts.map +0 -1
  669. package/dist/commonjs/environment/multiRegionConfig.js.map +0 -1
  670. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.d.ts.map +0 -1
  671. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js +0 -40
  672. package/dist/esm/authz/policies/workspace/canUpdateEmbedOptions.js.map +0 -1
  673. package/dist/esm/environment/multiRegionConfig.d.ts.map +0 -1
  674. package/dist/esm/environment/multiRegionConfig.js.map +0 -1
  675. package/src/authz/policies/workspace/canUpdateEmbedOptions.ts +0 -89
@@ -0,0 +1,252 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
+ import { describe, it, expect } from 'vitest'
4
+ import {
5
+ formatSerializedViewerState,
6
+ inputToVersionedState,
7
+ isSerializedViewerState,
8
+ isVersionedSerializedViewerState,
9
+ SERIALIZED_VIEWER_STATE_VERSION,
10
+ SerializedViewerState,
11
+ VersionedSerializedViewerState
12
+ } from './state.js'
13
+ import { UnformattableSerializedViewerStateError } from '../errors/index.js'
14
+
15
+ describe('Viewer State helpers', () => {
16
+ describe('isSerializedViewerState', () => {
17
+ it('returns true for valid SerializedViewerState', () => {
18
+ const valid: SerializedViewerState = {
19
+ projectId: 'pid',
20
+ sessionId: 'sid',
21
+ viewer: { metadata: { filteringState: null } },
22
+ resources: {
23
+ request: {
24
+ resourceIdString: 'rid',
25
+ threadFilters: {}
26
+ }
27
+ },
28
+ ui: {
29
+ threads: {
30
+ openThread: { threadId: null, isTyping: false, newThreadEditor: false }
31
+ },
32
+ diff: { command: null, time: 0, mode: 1 },
33
+ spotlightUserSessionId: null,
34
+ filters: {
35
+ isolatedObjectIds: [],
36
+ hiddenObjectIds: [],
37
+ selectedObjectApplicationIds: {},
38
+ propertyFilters: [],
39
+ activeColorFilterId: null,
40
+ filterLogic: 'all'
41
+ },
42
+ camera: {
43
+ position: [0, 0, 0],
44
+ target: [0, 0, 0],
45
+ isOrthoProjection: false,
46
+ zoom: 1
47
+ },
48
+ viewMode: {
49
+ mode: 0,
50
+ edgesColor: 0,
51
+ edgesEnabled: true,
52
+ outlineOpacity: 0,
53
+ edgesWeight: 0
54
+ },
55
+ sectionBox: null,
56
+ lightConfig: {},
57
+ explodeFactor: 0,
58
+ selection: null,
59
+ measurement: { enabled: false, options: null, measurements: [] }
60
+ }
61
+ }
62
+ expect(isSerializedViewerState(valid)).toBe(true)
63
+ })
64
+
65
+ it('returns false for missing keys', () => {
66
+ expect(isSerializedViewerState({})).toBe(false)
67
+ expect(isSerializedViewerState(null)).toBe(false)
68
+ expect(isSerializedViewerState(undefined)).toBe(false)
69
+ expect(isSerializedViewerState({ projectId: 'pid' })).toBe(false)
70
+ })
71
+
72
+ it('returns false for non-object values', () => {
73
+ expect(isSerializedViewerState(123)).toBe(false)
74
+ expect(isSerializedViewerState('string')).toBe(false)
75
+ expect(isSerializedViewerState([])).toBe(false)
76
+ })
77
+ })
78
+
79
+ describe('formatSerializedViewerState', () => {
80
+ it('fills missing optional fields with defaults', () => {
81
+ const partial = {
82
+ projectId: 'pid',
83
+ viewer: { metadata: {} },
84
+ resources: { request: { resourceIdString: 'rid' } },
85
+ ui: {
86
+ camera: { position: [1, 2, 3], target: [4, 5, 6] }
87
+ }
88
+ }
89
+ const formatted = formatSerializedViewerState(partial as any)
90
+ expect(formatted.projectId).toBe('pid')
91
+ expect(formatted.sessionId).toMatch(/nullSessionId-/)
92
+ expect(formatted.ui.camera.position).toEqual([1, 2, 3])
93
+ expect(formatted.ui.camera.target).toEqual([4, 5, 6])
94
+ expect(formatted.ui.measurement.options?.units).toBe('m')
95
+ expect(formatted.ui.filters.selectedObjectApplicationIds).toEqual({})
96
+ })
97
+
98
+ it('throws UnformattableSerializedViewerStateError for missing required fields', () => {
99
+ expect(() => formatSerializedViewerState({} as any)).toThrow(
100
+ UnformattableSerializedViewerStateError
101
+ )
102
+ expect(() =>
103
+ formatSerializedViewerState({
104
+ projectId: 'pid',
105
+ viewer: { metadata: {} },
106
+ resources: { request: { resourceIdString: 'rid' } },
107
+ ui: { camera: { target: [1, 2, 3] } }
108
+ } as any)
109
+ ).toThrow(UnformattableSerializedViewerStateError)
110
+ })
111
+
112
+ it('handles legacy selectedObjectIds', () => {
113
+ const partial = {
114
+ projectId: 'pid',
115
+ viewer: { metadata: {} },
116
+ resources: { request: { resourceIdString: 'rid' } },
117
+ ui: {
118
+ camera: { position: [1, 2, 3], target: [4, 5, 6] },
119
+ filters: { selectedObjectIds: ['a', 'b'] }
120
+ }
121
+ }
122
+ const formatted = formatSerializedViewerState(partial as any)
123
+ expect(formatted.ui.filters.selectedObjectApplicationIds).toEqual({
124
+ a: null,
125
+ b: null
126
+ })
127
+ })
128
+ })
129
+
130
+ describe('inputToVersionedState', () => {
131
+ it('returns versioned state for valid input', () => {
132
+ const valid: SerializedViewerState = {
133
+ projectId: 'pid',
134
+ sessionId: 'sid',
135
+ viewer: { metadata: { filteringState: null } },
136
+ resources: {
137
+ request: {
138
+ resourceIdString: 'rid',
139
+ threadFilters: {}
140
+ }
141
+ },
142
+ ui: {
143
+ threads: {
144
+ openThread: { threadId: null, isTyping: false, newThreadEditor: false }
145
+ },
146
+ diff: { command: null, time: 0, mode: 1 },
147
+ spotlightUserSessionId: null,
148
+ filters: {
149
+ isolatedObjectIds: [],
150
+ hiddenObjectIds: [],
151
+ selectedObjectApplicationIds: {},
152
+ propertyFilters: [],
153
+ activeColorFilterId: null,
154
+ filterLogic: 'all'
155
+ },
156
+ camera: {
157
+ position: [0, 0, 0],
158
+ target: [0, 0, 0],
159
+ isOrthoProjection: false,
160
+ zoom: 1
161
+ },
162
+ viewMode: {
163
+ mode: 0,
164
+ edgesColor: 0,
165
+ edgesEnabled: true,
166
+ outlineOpacity: 0,
167
+ edgesWeight: 0
168
+ },
169
+ sectionBox: null,
170
+ lightConfig: {},
171
+ explodeFactor: 0,
172
+ selection: null,
173
+ measurement: { enabled: false, options: null, measurements: [] }
174
+ }
175
+ }
176
+ const result = inputToVersionedState(valid)
177
+ expect(result).not.toBeNull()
178
+ expect(result?.version).toBe(SERIALIZED_VIEWER_STATE_VERSION)
179
+ expect(result?.state.projectId).toBe('pid')
180
+ })
181
+
182
+ it('returns null for invalid input', () => {
183
+ expect(inputToVersionedState(null)).toBeNull()
184
+ expect(inputToVersionedState({})).toBeNull()
185
+ expect(inputToVersionedState(123)).toBeNull()
186
+ })
187
+ })
188
+
189
+ describe('isVersionedSerializedViewerState', () => {
190
+ it('returns true for valid VersionedSerializedViewerState', () => {
191
+ const valid: VersionedSerializedViewerState = {
192
+ version: SERIALIZED_VIEWER_STATE_VERSION,
193
+ state: {
194
+ projectId: 'pid',
195
+ sessionId: 'sid',
196
+ viewer: { metadata: { filteringState: null } },
197
+ resources: {
198
+ request: {
199
+ resourceIdString: 'rid',
200
+ threadFilters: {}
201
+ }
202
+ },
203
+ ui: {
204
+ threads: {
205
+ openThread: { threadId: null, isTyping: false, newThreadEditor: false }
206
+ },
207
+ diff: { command: null, time: 0, mode: 1 },
208
+ spotlightUserSessionId: null,
209
+ filters: {
210
+ isolatedObjectIds: [],
211
+ hiddenObjectIds: [],
212
+ selectedObjectApplicationIds: {},
213
+ propertyFilters: [],
214
+ activeColorFilterId: null,
215
+ filterLogic: 'all'
216
+ },
217
+ camera: {
218
+ position: [0, 0, 0],
219
+ target: [0, 0, 0],
220
+ isOrthoProjection: false,
221
+ zoom: 1
222
+ },
223
+ viewMode: {
224
+ mode: 0,
225
+ edgesColor: 0,
226
+ edgesEnabled: true,
227
+ outlineOpacity: 0,
228
+ edgesWeight: 0
229
+ },
230
+ sectionBox: null,
231
+ lightConfig: {},
232
+ explodeFactor: 0,
233
+ selection: null,
234
+ measurement: { enabled: false, options: null, measurements: [] }
235
+ }
236
+ }
237
+ }
238
+ expect(isVersionedSerializedViewerState(valid)).toBe(true)
239
+ })
240
+
241
+ it('returns false for missing version or state', () => {
242
+ expect(isVersionedSerializedViewerState({})).toBe(false)
243
+ expect(isVersionedSerializedViewerState({ version: 1 })).toBe(false)
244
+ expect(isVersionedSerializedViewerState({ state: {} })).toBe(false)
245
+ expect(isVersionedSerializedViewerState(null)).toBe(false)
246
+ })
247
+
248
+ it('returns false for invalid state', () => {
249
+ expect(isVersionedSerializedViewerState({ version: 1, state: {} })).toBe(false)
250
+ })
251
+ })
252
+ })
@@ -1,18 +1,20 @@
1
- import { intersection, isObjectLike } from '#lodash'
1
+ import { has, intersection, isNumber, isObjectLike } from '#lodash'
2
2
  import type { MaybeNullOrUndefined, Nullable } from '../../core/helpers/utilityTypes.js'
3
3
  import type { PartialDeep } from 'type-fest'
4
4
  import { UnformattableSerializedViewerStateError } from '../errors/index.js'
5
5
  import { coerceUndefinedValuesToNull } from '../../core/index.js'
6
6
 
7
+ export const defaultViewModeEdgeColorValue = 'DEFAULT_EDGE_COLOR'
8
+
7
9
  /** Redefining these is unfortunate. Especially since they are not part of viewer-core */
8
- enum MeasurementType {
10
+ export enum MeasurementType {
9
11
  PERPENDICULAR = 0,
10
12
  POINTTOPOINT = 1,
11
13
  AREA = 2,
12
14
  POINT = 3
13
15
  }
14
16
 
15
- interface MeasurementOptions {
17
+ export interface MeasurementOptions {
16
18
  visible: boolean
17
19
  type?: MeasurementType
18
20
  vertexSnap?: boolean
@@ -21,6 +23,27 @@ interface MeasurementOptions {
21
23
  chain?: boolean
22
24
  }
23
25
 
26
+ export interface MeasurementData {
27
+ type: MeasurementType
28
+ startPoint: readonly [number, number, number] // vec3
29
+ endPoint: readonly [number, number, number] // vec3
30
+ startNormal: readonly [number, number, number] // vec3
31
+ endNormal: readonly [number, number, number] // vec3
32
+ value: number
33
+ innerPoints?: (readonly [number, number, number])[] // array of vec3
34
+ units?: string
35
+ precision?: number
36
+ uuid: string
37
+ }
38
+
39
+ export const defaultMeasurementOptions: Readonly<MeasurementOptions> = Object.freeze({
40
+ visible: true,
41
+ type: MeasurementType.POINTTOPOINT,
42
+ vertexSnap: false,
43
+ units: 'm',
44
+ precision: 2
45
+ })
46
+
24
47
  export interface SectionBoxData {
25
48
  min: number[]
26
49
  max: number[]
@@ -35,8 +58,21 @@ export interface SectionBoxData {
35
58
  * - ui.diff added
36
59
  * v1.2 -> v1.3
37
60
  * - ui.filters.selectedObjectIds removed in favor of ui.filters.selectedObjectApplicationIds
61
+ * v1.3 -> 1.4
62
+ * - ui.viewMode -> ui.viewMode.mode
63
+ * - ui.viewMode has new keys: edgesEnabled, edgesWeight, outlineOpacity, edgesColor
64
+ * v1.4 -> 1.5
65
+ * - ui.measurement.measurements added
66
+ * v1.5 -> 1.6
67
+ * - ui.filters.propertyFilter -> propertyFilters
68
+ * - activeColorFilterId added
69
+ * v1.6 -> 1.7
70
+ * - ui.filters.filterLogic added
71
+ * - ui.filters.propertyFilters.condition updated
72
+ * v1.7 -> 1.8
73
+ * - ui.filters.propertyFilters.numericRange added
38
74
  */
39
- export const SERIALIZED_VIEWER_STATE_VERSION = 1.3
75
+ export const SERIALIZED_VIEWER_STATE_VERSION = 1.8
40
76
 
41
77
  export type SerializedViewerState = {
42
78
  projectId: string
@@ -77,10 +113,16 @@ export type SerializedViewerState = {
77
113
  hiddenObjectIds: string[]
78
114
  /** Map of object id => application id or null, if no application id */
79
115
  selectedObjectApplicationIds: Record<string, string | null>
80
- propertyFilter: {
116
+ propertyFilters: Array<{
81
117
  key: Nullable<string>
82
118
  isApplied: boolean
83
- }
119
+ selectedValues: string[]
120
+ id: string
121
+ condition: string
122
+ numericRange?: { min: number; max: number }
123
+ }>
124
+ activeColorFilterId: Nullable<string>
125
+ filterLogic: string
84
126
  }
85
127
  camera: {
86
128
  position: number[]
@@ -88,7 +130,13 @@ export type SerializedViewerState = {
88
130
  isOrthoProjection: boolean
89
131
  zoom: number
90
132
  }
91
- viewMode: number
133
+ viewMode: {
134
+ mode: number
135
+ edgesEnabled: boolean
136
+ edgesWeight: number
137
+ outlineOpacity: number
138
+ edgesColor: typeof defaultViewModeEdgeColorValue | number
139
+ }
92
140
  sectionBox: Nullable<SectionBoxData>
93
141
  lightConfig: {
94
142
  intensity?: number
@@ -101,16 +149,27 @@ export type SerializedViewerState = {
101
149
  measurement: {
102
150
  enabled: boolean
103
151
  options: Nullable<MeasurementOptions>
152
+ measurements: Array<MeasurementData>
104
153
  }
105
154
  }
106
155
  }
107
156
 
157
+ export type VersionedSerializedViewerState = {
158
+ version: number
159
+ state: SerializedViewerState
160
+ }
161
+
108
162
  type UnformattedState = PartialDeep<
109
163
  SerializedViewerState & {
110
164
  // Properties removed from earlier viewer state versions
111
165
  ui: {
112
166
  filters: {
113
167
  selectedObjectIds: string[]
168
+ // Legacy single propertyFilter for migration
169
+ propertyFilter: {
170
+ key: Nullable<string>
171
+ isApplied: boolean
172
+ }
114
173
  }
115
174
  }
116
175
  }
@@ -144,14 +203,6 @@ const initializeMissingData = (state: UnformattedState): SerializedViewerState =
144
203
  )
145
204
  }
146
205
 
147
- const defaultMeasurementOptions: MeasurementOptions = {
148
- visible: false,
149
- type: MeasurementType.POINTTOPOINT,
150
- vertexSnap: false,
151
- units: 'm',
152
- precision: 2
153
- }
154
-
155
206
  const measurementOptions = {
156
207
  ...defaultMeasurementOptions,
157
208
  ...state.ui?.measurement?.options
@@ -169,6 +220,12 @@ const initializeMissingData = (state: UnformattedState): SerializedViewerState =
169
220
  )
170
221
  }
171
222
 
223
+ const viewModeType = isNumber(state.ui?.viewMode)
224
+ ? state.ui.viewMode
225
+ : state.ui?.viewMode?.mode
226
+
227
+ const viewModeSettings = isNumber(state.ui?.viewMode) ? {} : state.ui?.viewMode
228
+
172
229
  return {
173
230
  projectId: state.projectId || throwInvalidError('projectId'),
174
231
  sessionId: state.sessionId || `nullSessionId-${Math.random() * 1000}`,
@@ -213,17 +270,61 @@ const initializeMissingData = (state: UnformattedState): SerializedViewerState =
213
270
  mode: state.ui?.diff?.mode || 1
214
271
  },
215
272
  spotlightUserSessionId: state.ui?.spotlightUserSessionId || null,
216
- filters: {
217
- ...(state.ui?.filters || {}),
218
- isolatedObjectIds: state.ui?.filters?.isolatedObjectIds || [],
219
- hiddenObjectIds: state.ui?.filters?.hiddenObjectIds || [],
220
- selectedObjectApplicationIds,
221
- propertyFilter: {
222
- ...(state.ui?.filters?.propertyFilter || {}),
223
- key: state.ui?.filters?.propertyFilter?.key || null,
224
- isApplied: state.ui?.filters?.propertyFilter?.isApplied || false
273
+ filters: (() => {
274
+ const baseFilters = {
275
+ ...(state.ui?.filters || {}),
276
+ isolatedObjectIds: state.ui?.filters?.isolatedObjectIds || [],
277
+ hiddenObjectIds: state.ui?.filters?.hiddenObjectIds || [],
278
+ selectedObjectApplicationIds,
279
+ activeColorFilterId: state.ui?.filters?.activeColorFilterId || null
225
280
  }
226
- },
281
+
282
+ // Migration logic: handle legacy propertyFilter and new propertyFilters
283
+ let propertyFilters: Array<{
284
+ key: Nullable<string>
285
+ isApplied: boolean
286
+ selectedValues: string[]
287
+ id: string
288
+ condition: string
289
+ numericRange?: { min: number; max: number }
290
+ }> = []
291
+
292
+ // If new propertyFilters exist and are not empty, use them
293
+ if (
294
+ state.ui?.filters?.propertyFilters &&
295
+ Array.isArray(state.ui.filters.propertyFilters) &&
296
+ state.ui.filters.propertyFilters.length > 0
297
+ ) {
298
+ // Map legacy condition values to new format
299
+ propertyFilters = state.ui.filters.propertyFilters.map((filter) => ({
300
+ ...filter,
301
+ condition:
302
+ filter.condition === 'AND'
303
+ ? 'is'
304
+ : filter.condition === 'OR'
305
+ ? 'is'
306
+ : filter.condition
307
+ }))
308
+ }
309
+ // If legacy propertyFilter exists but no propertyFilters (or empty propertyFilters), migrate it
310
+ else if (state.ui?.filters?.propertyFilter?.key) {
311
+ propertyFilters = [
312
+ {
313
+ key: state.ui.filters.propertyFilter.key,
314
+ isApplied: state.ui.filters.propertyFilter.isApplied || false,
315
+ selectedValues: [], // Legacy didn't have selectedValues
316
+ id: 'legacy-filter', // Generate a consistent ID for legacy filter
317
+ condition: 'is'
318
+ }
319
+ ]
320
+ }
321
+
322
+ return {
323
+ ...baseFilters,
324
+ propertyFilters,
325
+ filterLogic: state.ui?.filters?.filterLogic || 'all'
326
+ }
327
+ })(),
227
328
  camera: {
228
329
  ...(state.ui?.camera || {}),
229
330
  position: state.ui?.camera?.position || throwInvalidError('ui.camera.position'),
@@ -231,7 +332,13 @@ const initializeMissingData = (state: UnformattedState): SerializedViewerState =
231
332
  isOrthoProjection: state.ui?.camera?.isOrthoProjection || false,
232
333
  zoom: state.ui?.camera?.zoom || 1
233
334
  },
234
- viewMode: state.ui?.viewMode || 0,
335
+ viewMode: {
336
+ mode: viewModeType ?? 0,
337
+ edgesEnabled: viewModeSettings?.edgesEnabled ?? true,
338
+ edgesWeight: viewModeSettings?.edgesWeight ?? 1,
339
+ outlineOpacity: viewModeSettings?.outlineOpacity ?? 0.75,
340
+ edgesColor: viewModeSettings?.edgesColor ?? defaultViewModeEdgeColorValue
341
+ },
235
342
  sectionBox:
236
343
  state.ui?.sectionBox?.min?.length && state.ui?.sectionBox.max?.length
237
344
  ? // Complains otherwise
@@ -248,7 +355,8 @@ const initializeMissingData = (state: UnformattedState): SerializedViewerState =
248
355
  selection: state.ui?.selection || null,
249
356
  measurement: {
250
357
  enabled: state.ui?.measurement?.enabled ?? false,
251
- options: measurementOptions
358
+ options: measurementOptions,
359
+ measurements: state.ui?.measurement?.measurements || []
252
360
  }
253
361
  }
254
362
  }
@@ -264,3 +372,26 @@ export const formatSerializedViewerState = (
264
372
  const finalState = initializeMissingData(state)
265
373
  return finalState
266
374
  }
375
+
376
+ export const inputToVersionedState = (
377
+ inputSerializedViewerState: unknown
378
+ ): Nullable<VersionedSerializedViewerState> => {
379
+ const state = isSerializedViewerState(inputSerializedViewerState)
380
+ ? formatSerializedViewerState(inputSerializedViewerState)
381
+ : null
382
+ if (!state) return null
383
+
384
+ return {
385
+ version: SERIALIZED_VIEWER_STATE_VERSION,
386
+ state
387
+ }
388
+ }
389
+
390
+ export const isVersionedSerializedViewerState = (
391
+ data: unknown
392
+ ): data is VersionedSerializedViewerState => {
393
+ if (!data || !isObjectLike(data)) return false
394
+ if (!has(data, 'version')) return false
395
+ const stateRaw = (data as Record<string, unknown>).state
396
+ return isSerializedViewerState(stateRaw)
397
+ }
@@ -1,35 +1,49 @@
1
1
  import z from 'zod'
2
2
  import { TIME } from '../../core/index.js'
3
3
 
4
- const job = z.object({
5
- jobId: z.string()
4
+ export const jobPayloadV1 = z.object({
5
+ serverUrl: z.string().url().describe('The url of the server'),
6
+ projectId: z.string(),
7
+ modelId: z.string(),
8
+ token: z.string(),
9
+ blobId: z.string(),
10
+ fileType: z.string(),
11
+ fileName: z.string(),
12
+ timeOutSeconds: z
13
+ .number()
14
+ .int()
15
+ .default(30 * TIME.minute)
16
+ .describe('The timeout for a single attempt of the job, in seconds.')
6
17
  })
7
18
 
8
- export const jobPayload = job.merge(
9
- z.object({
10
- serverUrl: z.string().url().describe('The url of the server'),
11
- projectId: z.string(),
12
- modelId: z.string(),
13
- token: z.string(),
14
- blobId: z.string(),
15
- fileType: z.string(),
16
- fileName: z.string(),
17
- timeOutSeconds: z
18
- .number()
19
- .int()
20
- .default(20 * TIME.minute)
21
- })
22
- )
23
- export type JobPayload = z.infer<typeof jobPayload>
19
+ export type JobPayloadV1 = z.infer<typeof jobPayloadV1>
24
20
 
25
21
  const baseFileImportResult = z.object({
26
- durationSeconds: z.number().describe('Duration to import the file, in seconds')
22
+ durationSeconds: z
23
+ .number()
24
+ .describe('Total duration to download & import the file, in seconds'),
25
+ downloadDurationSeconds: z
26
+ .number()
27
+ .describe(
28
+ 'Duration to download the file, in seconds. This is a sub-component of the total duration.'
29
+ ),
30
+ parseDurationSeconds: z
31
+ .number()
32
+ .describe(
33
+ 'Duration to parse the file, in seconds. This is a sub-component of the total duration.'
34
+ ),
35
+ parser: z.string().describe('The parser used for the import')
27
36
  })
28
37
 
38
+ export const JobResultStatus = {
39
+ Error: 'error',
40
+ Success: 'success'
41
+ } as const
42
+
29
43
  export type FileImportResult = z.infer<typeof baseFileImportResult>
30
44
 
31
45
  const fileImportSuccessPayload = z.object({
32
- status: z.literal('success'),
46
+ status: z.literal(JobResultStatus.Success),
33
47
  warnings: z.array(z.string()), //ok to be empty
34
48
  result: baseFileImportResult.merge(z.object({ versionId: z.string() }))
35
49
  })
@@ -37,7 +51,7 @@ const fileImportSuccessPayload = z.object({
37
51
  export type FileImportSuccessPayload = z.infer<typeof fileImportSuccessPayload>
38
52
 
39
53
  const fileImportErrorPayload = z.object({
40
- status: z.literal('error'),
54
+ status: z.literal(JobResultStatus.Error),
41
55
  reason: z.string(),
42
56
  result: baseFileImportResult
43
57
  })
@@ -50,3 +64,8 @@ export const fileImportResultPayload = z.discriminatedUnion('status', [
50
64
  ])
51
65
 
52
66
  export type FileImportResultPayload = z.infer<typeof fileImportResultPayload>
67
+
68
+ export type FileImportJobPayloadV1 = JobPayloadV1 & {
69
+ jobType: 'fileImport'
70
+ payloadVersion: 1
71
+ }
@@ -1,7 +1,29 @@
1
1
  import z from 'zod'
2
2
 
3
+ const JobIdSeparator = '.'
4
+
5
+ export const jobIdSchema = z
6
+ .string()
7
+ .refine((data) => data.split(JobIdSeparator).length === 2, {
8
+ message: 'jobId must be in the format "projectId.objectId"'
9
+ })
10
+
11
+ export const toJobId = (params: { projectId: string; objectId: string }): string => {
12
+ return `${params.projectId}${JobIdSeparator}${params.objectId}`
13
+ }
14
+ export const fromJobId = (jobId: string): { projectId: string; objectId: string } => {
15
+ return jobIdSchema
16
+ .transform((data) => {
17
+ return {
18
+ projectId: data.split(JobIdSeparator)[0],
19
+ objectId: data.split(JobIdSeparator)[1]
20
+ }
21
+ })
22
+ .parse(jobId)
23
+ }
24
+
3
25
  const job = z.object({
4
- jobId: z.string()
26
+ jobId: jobIdSchema
5
27
  })
6
28
 
7
29
  export const jobPayload = job.merge(