Skip to content

Commit 1de77fc

Browse files
committed
fix: move UIDeviceTriggerPreview to remove cross-boundary access
1 parent aac4853 commit 1de77fc

File tree

4 files changed

+16
-15
lines changed

4 files changed

+16
-15
lines changed

meteor/client/ui/Settings/components/triggeredActions/triggerEditors/DeviceEditor.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import React, { useMemo } from 'react'
55
import { MeteorPubSub } from '../../../../../../lib/api/pubsub'
66
import { Studios } from '../../../../../collections'
77
import { getCurrentTime } from '../../../../../../lib/lib'
8-
import { UIDeviceTriggerPreview } from '../../../../../../server/publications/deviceTriggersPreview'
8+
import { UIDeviceTriggerPreview } from '../../../../../../lib/api/triggers/MountedTriggers'
99
import { useSubscription, useTracker } from '../../../../../lib/ReactMeteorData/ReactMeteorData'
1010
import { DeviceTriggersPreviews } from '../../../../Collections'
1111
import { DeviceTrigger } from './DeviceTrigger'

meteor/lib/api/pubsub.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import { DBUser } from '../collections/Users'
2323
import { UIBucketContentStatus, UIPieceContentStatus, UISegmentPartNote } from './rundownNotifications'
2424
import { UIShowStyleBase } from './showStyles'
2525
import { UIStudio } from './studios'
26-
import { UIDeviceTriggerPreview } from '../../server/publications/deviceTriggersPreview'
26+
import { UIDeviceTriggerPreview } from './triggers/MountedTriggers'
2727
import { logger } from '../logging'
2828
import { UIBlueprintUpgradeStatus } from './upgradeStatus'
2929
import {

meteor/lib/api/triggers/MountedTriggers.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { ISourceLayer, ITranslatableMessage } from '@sofie-automation/blueprints-integration'
22
import {
33
AdLibActionId,
4+
PeripheralDeviceId,
45
PieceId,
56
RundownBaselineAdLibActionId,
67
TriggeredActionId,
@@ -70,3 +71,14 @@ export interface MountedAdLibTrigger extends MountedTriggerCommon {
7071
}
7172

7273
export type MountedAdLibTriggerId = ProtectedString<'mountedAdLibTriggerId'>
74+
75+
export type DeviceTriggerPreviewId = ProtectedString<'deviceTriggerPreviewId'>
76+
77+
export interface UIDeviceTriggerPreview {
78+
_id: DeviceTriggerPreviewId
79+
peripheralDeviceId: PeripheralDeviceId
80+
triggerDeviceId: string
81+
triggerId: string
82+
timestamp: number
83+
values?: DeviceTriggerArguments
84+
}

meteor/server/publications/deviceTriggersPreview.ts

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,21 @@
11
import { PeripheralDeviceId, StudioId } from '@sofie-automation/corelib/dist/dataModel/Ids'
22
import { getRandomId } from '@sofie-automation/corelib/dist/lib'
3-
import { ProtectedString, unprotectString } from '@sofie-automation/corelib/dist/protectedString'
3+
import { unprotectString } from '@sofie-automation/corelib/dist/protectedString'
44
import { check } from 'meteor/check'
55
import { Meteor } from 'meteor/meteor'
66
import { ReadonlyDeep } from 'type-fest'
77
import { CustomCollectionName, MeteorPubSub } from '../../lib/api/pubsub'
8-
import { DeviceTriggerArguments } from '../../lib/api/triggers/MountedTriggers'
8+
import { DeviceTriggerArguments, UIDeviceTriggerPreview } from '../../lib/api/triggers/MountedTriggers'
99
import { getCurrentTime } from '../../lib/lib'
1010
import { setUpOptimizedObserverArray, TriggerUpdate } from '../lib/customPublication'
1111
import { CustomPublish, meteorCustomPublish } from '../lib/customPublication/publish'
1212
import { StudioReadAccess } from '../security/studio'
1313
import { PeripheralDevices } from '../collections'
1414

15-
type DeviceTriggerPreviewId = ProtectedString<'deviceTriggerPreviewId'>
16-
1715
/** IDEA: This could potentially be a Capped Collection, thus enabling scaling Core horizontally:
1816
* https://www.mongodb.com/docs/manual/core/capped-collections/ */
1917
const lastTriggers: Record<string, { triggers: UIDeviceTriggerPreview[]; updated?: (() => void) | undefined }> = {}
2018

21-
export interface UIDeviceTriggerPreview {
22-
_id: DeviceTriggerPreviewId
23-
peripheralDeviceId: PeripheralDeviceId
24-
triggerDeviceId: string
25-
triggerId: string
26-
timestamp: number
27-
values?: DeviceTriggerArguments
28-
}
29-
3019
meteorCustomPublish(
3120
MeteorPubSub.deviceTriggersPreview,
3221
CustomCollectionName.UIDeviceTriggerPreviews,

0 commit comments

Comments
 (0)