From 3218c61fc269ff16d9ca185de5465682a4b6a699 Mon Sep 17 00:00:00 2001 From: Annastacia McCarty <39739917+amvertex@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:53:09 -0500 Subject: [PATCH] [PLAT-4743] Include scene comparison information in stream attributes (#629) * Include scene comparison information * Update protos * Scene compare * Scene compare * Bump protos * Update github actions * Update github actions --- .github/workflows/branch.yml | 30 ++++++++-------- .github/workflows/master.yml | 34 +++++++++---------- .github/workflows/testing.yml | 16 ++++----- packages/stream-api/package.json | 2 +- packages/viewer/package.json | 2 +- packages/viewer/src/interfaces.d.ts | 1 + .../__tests__/streamAttributes.spec.ts | 15 ++++++++ .../src/lib/mappers/streamAttributes.ts | 10 ++++-- yarn.lock | 8 ++--- 9 files changed, 69 insertions(+), 49 deletions(-) diff --git a/.github/workflows/branch.yml b/.github/workflows/branch.yml index f5a2415cc..112cbb921 100644 --- a/.github/workflows/branch.yml +++ b/.github/workflows/branch.yml @@ -11,16 +11,16 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set Node Version id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -31,7 +31,7 @@ jobs: - name: "Build" run: "yarn build" - name: "Upload build artifacts" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: build-artifact path: | @@ -41,16 +41,16 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set Node Version id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -65,9 +65,9 @@ jobs: needs: [build] steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -75,11 +75,11 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -94,9 +94,9 @@ jobs: needs: [build] steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -104,11 +104,11 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml index 813301d71..53f633d19 100644 --- a/.github/workflows/master.yml +++ b/.github/workflows/master.yml @@ -10,16 +10,16 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set Node Version id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -32,7 +32,7 @@ jobs: - name: "Test" run: "yarn test:ci" - name: "Upload build artifacts" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: build-artifact path: | @@ -45,7 +45,7 @@ jobs: publish: ${{ steps.detect-publish.outputs.publish }} steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Detect publish" id: "detect-publish" run: | @@ -58,9 +58,9 @@ jobs: needs: [build] steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -68,13 +68,13 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" registry-url: https://registry.npmjs.org scope: "@vertexvis" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -98,9 +98,9 @@ jobs: if: needs.detect-publish-release.outputs.publish == 1 steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -108,13 +108,13 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" registry-url: https://registry.npmjs.org scope: "@vertexvis" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -134,9 +134,9 @@ jobs: needs: [publish-release] steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -144,13 +144,13 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" registry-url: https://registry.npmjs.org scope: "@vertexvis" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index ff6bd204f..8dfb97f2e 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -10,16 +10,16 @@ jobs: runs-on: ubuntu-latest steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: Set Node Version id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules @@ -30,7 +30,7 @@ jobs: - name: "Build" run: "yarn build" - name: "Upload build artifacts" - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: build-artifact path: | @@ -41,9 +41,9 @@ jobs: needs: [build] steps: - name: "Checkout changes" - uses: actions/checkout@v2 + uses: actions/checkout@v4 - name: "Download build artifacts" - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4 with: name: build-artifact path: packages @@ -51,13 +51,13 @@ jobs: id: nvm run: echo ::set-output name=NVMRC::$(cat .nvmrc) - name: Setup NodeJS - uses: actions/setup-node@v1 + uses: actions/setup-node@v4 with: node-version: "${{ steps.nvm.outputs.NVMRC }}" registry-url: https://registry.npmjs.org scope: "@vertexvis" - name: Cache dependencies - uses: actions/cache@v2 + uses: actions/cache@v4 with: path: | node_modules diff --git a/packages/stream-api/package.json b/packages/stream-api/package.json index 3a6b56d13..3b1489906 100644 --- a/packages/stream-api/package.json +++ b/packages/stream-api/package.json @@ -36,7 +36,7 @@ "test:coverage": "yarn test --coverage" }, "dependencies": { - "@vertexvis/frame-streaming-protos": "^0.13.11" + "@vertexvis/frame-streaming-protos": "^0.13.13" }, "devDependencies": { "@types/jest": "^27.5.1", diff --git a/packages/viewer/package.json b/packages/viewer/package.json index dcdbedf76..1bb7397c8 100644 --- a/packages/viewer/package.json +++ b/packages/viewer/package.json @@ -49,7 +49,7 @@ "@improbable-eng/grpc-web": "^0.15.0", "@stencil/core": "^2.16.1", "@types/classnames": "^2.3.1", - "@vertexvis/frame-streaming-protos": "^0.13.11", + "@vertexvis/frame-streaming-protos": "^0.13.13", "@vertexvis/geometry": "0.22.0", "@vertexvis/html-templates": "0.22.0", "@vertexvis/scene-tree-protos": "^0.1.21", diff --git a/packages/viewer/src/interfaces.d.ts b/packages/viewer/src/interfaces.d.ts index 1faec4f38..6ab538435 100644 --- a/packages/viewer/src/interfaces.d.ts +++ b/packages/viewer/src/interfaces.d.ts @@ -32,6 +32,7 @@ export interface FrameOptions { export interface SceneComparisonOptions { sceneIdToCompare?: UUID.UUID; + streamKeyToCompare?: string; } export interface HTMLDomRendererPositionableElement { diff --git a/packages/viewer/src/lib/mappers/__tests__/streamAttributes.spec.ts b/packages/viewer/src/lib/mappers/__tests__/streamAttributes.spec.ts index bbad93a6b..bd8f3b0e7 100644 --- a/packages/viewer/src/lib/mappers/__tests__/streamAttributes.spec.ts +++ b/packages/viewer/src/lib/mappers/__tests__/streamAttributes.spec.ts @@ -155,6 +155,21 @@ describe(toPbStreamAttributes, () => { describe('scene comparison', () => { it('enables comparing scenes if set', () => { + const streamKey = 'test'; + + const res = toPbStreamAttributes({ + sceneComparison: { + streamKeyToCompare: streamKey, + }, + }); + expect(res).toMatchObject({ + sceneComparison: { + streamKeyToCompare: { value: streamKey }, + }, + }); + }); + + it('enables comparing scenes with scene id', () => { const sceneId = random.guid(); const sceneId2l = UUID.toMsbLsb(sceneId); diff --git a/packages/viewer/src/lib/mappers/streamAttributes.ts b/packages/viewer/src/lib/mappers/streamAttributes.ts index 3e238518d..e621ed1bb 100644 --- a/packages/viewer/src/lib/mappers/streamAttributes.ts +++ b/packages/viewer/src/lib/mappers/streamAttributes.ts @@ -14,7 +14,7 @@ import { } from '../../interfaces'; import { toPbJsUuid2l } from './corePbJs'; import { toPbRGBi } from './material'; -import { toPbFloatValue } from './scalar'; +import { toPbFloatValue, toPbStringValue } from './scalar'; const toPbFrameType: M.Func< FrameType, @@ -121,9 +121,13 @@ const toPbSceneComparison: M.Func< SceneComparisonOptions | undefined, vertexvis.protobuf.stream.ISceneComparisonAttributes > = M.defineMapper( - M.read(M.ifDefined(M.mapProp('sceneIdToCompare', M.ifDefined(toPbJsUuid2l)))), - ([sceneIdToCompare]) => ({ + M.read( + M.ifDefined(M.mapProp('sceneIdToCompare', M.ifDefined(toPbJsUuid2l))), + M.ifDefined(M.mapProp('streamKeyToCompare', M.ifDefined(toPbStringValue))) + ), + ([sceneIdToCompare, streamKeyToCompare]) => ({ sceneIdToCompare, + streamKeyToCompare, }) ); diff --git a/yarn.lock b/yarn.lock index f276beb9d..91dead8ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2210,10 +2210,10 @@ eslint-plugin-simple-import-sort "^7.0.0" prettier "^2.5.1" -"@vertexvis/frame-streaming-protos@^0.13.11": - version "0.13.11" - resolved "https://registry.yarnpkg.com/@vertexvis/frame-streaming-protos/-/frame-streaming-protos-0.13.11.tgz#a18b01e7f9fc3ec5b933fb73a58ebf032a7f9197" - integrity sha512-y2L3+N4Zm7RxeV+hYB8h1ktISMg0aJi7VzJNIFwWkljnGs+MSHIeykWErRw6el/UGqauZnwo8Sm6cOlgrcetcg== +"@vertexvis/frame-streaming-protos@^0.13.13": + version "0.13.13" + resolved "https://registry.yarnpkg.com/@vertexvis/frame-streaming-protos/-/frame-streaming-protos-0.13.13.tgz#82ce87c936fa3bb1a097475c0f543c5cb0c080a2" + integrity sha512-MzWNZen/gCd0mAyQ2J+pRmn4vnsOexdfcfNXGjOIzhowRJ9Js2P2qdJMIwPUVCk37heZVkFIGHRUZSSL0tKvNw== "@vertexvis/jest-config-vertexvis@^0.5.4": version "0.5.4"