* feat(backgroundjobs): add new background jobs module for file imports
queueing
* fix(fileuploads): a merge gone wrong
* feat(backgroundjobs): rename rhino queue env var
* test(backgroundjob): use deep equal claude
* fix(fileuploads): sync PR review
* feat(backgroundjobs): add origin server url to the background jobs table
* test(backgroundjobs): make tests pass
* feat(shared): rename user workspaces loader
* feat(gatekeeper): intoduce the enterprise plan
* chore(server): remove more "magic strings"
* refactor(shared): extract user is workspace admin to an auth fragment
* feat(shared): add can createWorkspacePolicy
* feat(workspaces): WIP block workspace creation
* feat(server): add can create workspace checks
* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation
* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace
* test(shared): use test fake properly
* fix(server): eligble workspace typing fixes
* test(shared): fix more workspace fakes
* fix(workspacesCore): add missing loader
* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening
* feat(shared): introduce workspacePlanHasAccessToFeature function with tests
* chore(workspaces): fix more PR comments
* fix(workspaces): naming
* fix(workspaces): some more
* feat(shared): generalize workspace feature access policy
* feat(workspaces): allow toggling the isExclusive option for workspace
update
* feat(shared): rename user workspaces loader
* feat(gatekeeper): intoduce the enterprise plan
* chore(server): remove more "magic strings"
* refactor(shared): extract user is workspace admin to an auth fragment
* feat(shared): add can createWorkspacePolicy
* feat(workspaces): WIP block workspace creation
* feat(server): add can create workspace checks
* feat(workspaces): enforce canCreateWorkspace policy on the workspace
creation mutation
* feat(shared): allow workspace admins and guests to create workspaces
even if they are part of an exclusive workspace
* test(shared): use test fake properly
* fix(server): eligble workspace typing fixes
* test(shared): fix more workspace fakes
* fix(workspacesCore): add missing loader
* fix(shared): use proper exhaustive switch cases, they stop bugs from
happening
* feat(shared): introduce workspacePlanHasAccessToFeature function with tests
* chore(workspaces): fix more PR comments
* fix(workspaces): naming
* fix(workspaces): some more
* feat(viewer): include selected object application ids in viewer state
* fix(viewer): selected object application ids as map
* fix(viewer): drop legacy key
* feat(gatekeeper): intoduce the enterprise plan
* chore(server): remove more "magic strings"
* test(shared): fix plan tests with enterprise case
* Small change to format plan name
---------
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* feat(workspaces): allow reading emails of invited users
* feat(workspaces): expose workspace member email in workspace team query
to ws admins
* feat(workspaces): add email to join requests view for admins
* chore(workspaces): fix join request type
* feat(viewer-lib): WIP on area measurement
* feat(viewer-lib): WIP on area measurement. Basics are working. Needs more bling
* feat(viewer-lib): Implemented polygon triangulation for measured area
* chore(shared): Updated MeasurementType
* Add Area control to measure panel
* feat(viewer-lib): Real time updates of the fill polygon and area value
* feat(viewer-lib): Added pole of innacessibility as area label anchor using the polylabel libraryh
* feat(viewer-lib): Fixed fill polygon material
* feat(viewer-lib): Changed the surface normal indicator from the faulty disc to a outlined rectangle. Looks and works much better now
* fix(viewer-lib): Measurements get clipped by sections planes
* faet(viewer-lib): Measurements can now optionally define their own snapping method. Area measurement snaps to first point in screen space. Generic vertex snap still applies if enabled
* fix(viewer-lib): Forgot to project the measured point
* feat(viewer-lib): Double click auto-finishes the area measurmenet by instantly joining with the first point. Right clikc removes current area measurement point so you can 'undo'
* fix(viewer-lib: Fixed a stupid bug relatedto text because somebody thought that making it 'async' would be sooooo cool...
* fix(frontend): Prevent zoom on double click when using area measurement
* chore(viewer-lib): Refined and fomralized a bit now that the general idea of a measurement has got more complex
* chore(viewer-lib): Moved state switching a bit
* chore(viewer-lib): Replaced the old disc normal indicator with the new one and made it standard. Added an option to the gizmo's style that determines the pixels size of the normal indicator
* chore(viewer-lib): Documented the area measurement tool
* chore(viewer-lib): Some updates:
- Implemented proper bounds getter for area measurement
- Got rid of the static vector buffers in Measurement and replaced them with consts where needed
- Reduced the min click timing from 250ms to 150ms
- Other small adjustments
* feat(viewer-lib): Added the option to chain measurements
* chore(frontend-2): Added toggle for measurement chaining
* chore(viewer-lib): Perpendicular measurement chaining now align on the same line as requested
* feat(viewer-lib): Implemented point (coordinate) measurement:
- Added support for billboard offseting in NDC in the shader via vec2 offset uniform. Not a dream come true, but required mostly because of how troika works
- SpeckleText background now follows text anchoring
- Implemented new POINT measurement type
* chore(viewer-lib): Separated label position calculation. We now update only the label transform each frame, instead of updating the entire label redunantly
* chore(viewer-lib): Offsets are now constants. Removed redundant vector and matrix creation
* chore(frontend-2): Placeholder radio button for point measurement type. Fixed compile errors
* fix(viewer-lib): Fixes WEB-3105. Export all measurement types
* updated icons
* Update description
---------
Co-authored-by: andrewwallacespeckle <andrew@speckle.systems>
Co-authored-by: Mike Tasset <mike.tasset@gmail.com>
* feat(fileimport-service): add next gen file importer
* feat(fileimports): integrate server and fileimporter
* chore(dui3): remove leftover artifacts
* fix(server): test typing fixes
* fix(fileimports): test and pr comment fixes
* feat(fileimports: moare test fixes
* fix(fileimports): tests and yarn dedupe
* feat(full-stack): handle v2 automation result schema in the app
* fix(automate): lost length in merge
---------
Co-authored-by: Charles Driesler <chuck@speckle.systems>
* feat(viewer): embedded viewer option to hide speckle branding
* chore(viewer): can edit embed options policy
* chore(embeds): tests for new policy and gql
* feat(viewer-lib): WIP on the new OrientedSectionTool
* feat(viewer-lib): Added proper face pulling for the oriented section box
* feat(viewer-lib): Several updates on the oriented sectioning tool
- Implemented section planes calculation and propagation
- Unified obb computation from all gizmos
- Implemented proper setBox function
- Updated the viewer-core to work with OBB instead of AABB for it's clipping volume
- Updated the intersections to work with OBB for their intersting bounds
- Added extension methods to Box3 and OBB
* feat(viewer-lib): Better way of handling gizmo input events overlapping
* fix(viewer-lib): Updated clippingVolume occurences to OBB
* feat(viewer-lib): Section outlines now work with oriented section tool!
* feat(viewer-lib): Integrated new section tool with the frontend and API
- Defined an archtype for SectionTool which all section tools can derive from
- The old section tool is renamed to AxisAlignedSectionTool
- Replaced the old section tool with the oriented one in the frontend
* fix(viewer-lib): Fixed compile errors
* feat(viewer-lib): Some updates:
- Section tool outline, the visible box, is now rendered as before however it's correctly being RTE'd. And we can also make it thinner/thicker now
- Fixed the issue where the scale controls had 'exponential' growth. It's now linear like the translate one
* feat(viewer-lib): Implemented highlghting the box face when clicking on it to extend/retract it
* fix(viewer-lib): A bunch of fixes for the oriented section tool
* feat(viewer-lib): Some updates:
- Documented new OrientedSectionTool code
- Fixed som issues related to section box reseting
- Hid the translation and rotation gizmos that we aren't using
- Tidied up a bit
* feat(viewer-lib): Set the translate and rotate gizmos in local space so the rotation will affect them as wll
* chore(viewer-lib): Purged the old section tool
* chore(viewer-lib): Updated section box data type. Updated LegacyViewer section box data handling. Updated frontend to use new data type. Still not working doe
* fix(viewer-lib): Fixed an issue where comments with section boxes did not enable section outlines at startup
* chore(frontend): Fixed ci compiler error
* fix(viewer-lib): Fixes WEB-1593
* WIP new visi
* test fixes
* visibility seems to work
* authz policies & authorizeResolver updated
* various test fixes
* users tests
* frontend changes
* minor adjustments
* shared test fix
* test fixes
* force rerun CI
* fix(server): remove redundant code from bad merge
* wrong router
* WIP: http api for receiving file import results
* Lints
* fix
* WIP: tests
* test fix
* auth middleware has implicit requirement for param named streamId
* complete tests and fixes
* can run the old way alongside the existing, no conflicts
* tidying
* correct error thrown
* incorporate review comments
* first batch of changes
* tests fix
* FE fixed
* renaming constants
* test fixes
* moar test fixes
* another test fix
* reenable app rover check
---------
Co-authored-by: Gergő Jedlicska <gergo@jedlicska.com>