@camstack/server 0.1.6 → 0.1.8
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.
- package/package.json +3 -3
- package/src/__tests__/addon-upload.spec.ts +58 -0
- package/src/__tests__/bulk-update-coordinator.spec.ts +286 -0
- package/src/__tests__/cap-ownership-authority.spec.ts +400 -0
- package/src/__tests__/cap-providers/cap-providers-location-import.spec.ts +186 -0
- package/src/__tests__/cap-providers/integrations-delete-cascade.spec.ts +243 -0
- package/src/__tests__/cap-providers-bulk-update.spec.ts +388 -0
- package/src/__tests__/cap-route-adapter.spec.ts +289 -0
- package/src/__tests__/cap-routers/broker-routing.router.spec.ts +169 -0
- package/src/__tests__/cap-routers/cap-route-error-formatter.spec.ts +123 -0
- package/src/__tests__/cap-routers/capabilities-node.spec.ts +55 -0
- package/src/__tests__/cap-routers/device-link-overlay.spec.ts +132 -0
- package/src/__tests__/dev-bootstrap-shm-ring.spec.ts +30 -0
- package/src/__tests__/device-settings-contribution-dispatch.spec.ts +249 -0
- package/src/__tests__/framework-installer-defer-restart.spec.ts +165 -0
- package/src/__tests__/moleculer/uds-readiness.spec.ts +143 -0
- package/src/__tests__/moleculer/uds-topology.spec.ts +390 -0
- package/src/__tests__/moleculer/uds-unowned-call.spec.ts +329 -0
- package/src/__tests__/moleculer-register-node-idempotency.spec.ts +39 -4
- package/src/__tests__/native-cap-route.spec.ts +404 -0
- package/src/__tests__/oauth2-account-linking.spec.ts +85 -0
- package/src/__tests__/uds-addon-call-wiring.spec.ts +237 -0
- package/src/__tests__/uds-log-ingest.spec.ts +183 -0
- package/src/api/addon-upload.ts +27 -1
- package/src/api/capabilities.router.ts +1 -1
- package/src/api/core/__tests__/integration-markers.spec.ts +10 -0
- package/src/api/core/bulk-update-coordinator.ts +302 -0
- package/src/api/core/cap-providers.ts +211 -9
- package/src/api/core/capabilities.router.ts +26 -3
- package/src/api/core/logs.router.ts +4 -0
- package/src/api/oauth2/oauth2-routes.ts +5 -1
- package/src/api/trpc/__tests__/client-ip.spec.ts +146 -0
- package/src/api/trpc/__tests__/webrtc-session-ua-enrich.spec.ts +128 -0
- package/src/api/trpc/cap-mount-helpers.ts +12 -1
- package/src/api/trpc/cap-route-error-formatter.ts +163 -0
- package/src/api/trpc/client-ip.ts +147 -0
- package/src/api/trpc/generated-cap-mounts.ts +299 -8
- package/src/api/trpc/generated-cap-routers.ts +2384 -302
- package/src/api/trpc/trpc.middleware.ts +5 -1
- package/src/api/trpc/trpc.router.ts +84 -3
- package/src/boot/__tests__/integration-id-backfill.spec.ts +116 -0
- package/src/boot/integration-id-backfill.ts +109 -0
- package/src/core/addon/__tests__/addon-row-manifest.spec.ts +62 -0
- package/src/core/addon/addon-call-gateway.ts +157 -0
- package/src/core/addon/addon-package.service.ts +9 -0
- package/src/core/addon/addon-registry.service.ts +453 -107
- package/src/core/addon/addon-row-manifest.ts +29 -0
- package/src/core/addon/addon-settings-provider.ts +40 -116
- package/src/core/capability/capability.service.ts +9 -0
- package/src/core/logging/logging.service.ts +7 -2
- package/src/core/moleculer/cap-call-fn.spec.ts +166 -0
- package/src/core/moleculer/cap-call-fn.ts +103 -0
- package/src/core/moleculer/cap-route-authority.ts +182 -0
- package/src/core/moleculer/moleculer.service.ts +408 -36
- package/src/core/network/network-quality.service.spec.ts +2 -1
- package/src/main.ts +137 -12
- package/src/core/storage/settings-store.spec.ts +0 -213
- package/src/core/storage/settings-store.ts +0 -2
- package/src/core/storage/sql-schema.spec.ts +0 -140
- package/src/core/storage/sql-schema.ts +0 -3
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// AUTO-GENERATED by scripts/generate-cap-mounts.ts — DO NOT EDIT
|
|
2
2
|
// Re-run: npx tsx scripts/generate-cap-mounts.ts
|
|
3
3
|
//
|
|
4
|
-
// Mounted:
|
|
4
|
+
// Mounted: 123 Skipped (legacy): 6
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Single auto-mount entrypoint for every codegen'd cap router.
|
|
@@ -39,18 +39,35 @@ import {
|
|
|
39
39
|
addonsCapability,
|
|
40
40
|
adminUiCapability,
|
|
41
41
|
advancedNotifierCapability,
|
|
42
|
+
airQualitySensorCapability,
|
|
43
|
+
alarmPanelCapability,
|
|
42
44
|
alertsCapability,
|
|
45
|
+
ambientLightSensorCapability,
|
|
43
46
|
audioAnalysisCapability,
|
|
44
47
|
audioAnalyzerCapability,
|
|
45
48
|
audioCodecCapability,
|
|
46
49
|
audioMetricsCapability,
|
|
50
|
+
automationControlCapability,
|
|
47
51
|
backupCapability,
|
|
48
52
|
batteryCapability,
|
|
53
|
+
binaryCapability,
|
|
49
54
|
brightnessCapability,
|
|
55
|
+
brokerCapability,
|
|
56
|
+
buttonCapability,
|
|
50
57
|
cameraCredentialsCapability,
|
|
58
|
+
cameraPipelineConfigCapability,
|
|
51
59
|
cameraStreamsCapability,
|
|
60
|
+
carbonMonoxideCapability,
|
|
61
|
+
climateControlCapability,
|
|
62
|
+
colorCapability,
|
|
63
|
+
connectivityCapability,
|
|
64
|
+
consumablesCapability,
|
|
65
|
+
contactCapability,
|
|
66
|
+
controlCapability,
|
|
67
|
+
coverCapability,
|
|
52
68
|
decoderCapability,
|
|
53
69
|
detectionPipelineCapability,
|
|
70
|
+
deviceAdoptionCapability,
|
|
54
71
|
deviceDiscoveryCapability,
|
|
55
72
|
deviceExportCapability,
|
|
56
73
|
deviceManagerCapability,
|
|
@@ -60,11 +77,22 @@ import {
|
|
|
60
77
|
deviceStatusCapability,
|
|
61
78
|
doorbellCapability,
|
|
62
79
|
embeddingEncoderCapability,
|
|
80
|
+
enumSensorCapability,
|
|
81
|
+
eventEmitterCapability,
|
|
63
82
|
eventsCapability,
|
|
83
|
+
fanControlCapability,
|
|
64
84
|
featureProbeCapability,
|
|
85
|
+
floodCapability,
|
|
86
|
+
gasCapability,
|
|
87
|
+
humidifierCapability,
|
|
88
|
+
humiditySensorCapability,
|
|
89
|
+
imageCapability,
|
|
65
90
|
integrationsCapability,
|
|
66
91
|
intercomCapability,
|
|
92
|
+
lawnMowerControlCapability,
|
|
67
93
|
localNetworkCapability,
|
|
94
|
+
lockControlCapability,
|
|
95
|
+
mediaPlayerCapability,
|
|
68
96
|
meshNetworkCapability,
|
|
69
97
|
metricsProviderCapability,
|
|
70
98
|
motionCapability,
|
|
@@ -77,6 +105,8 @@ import {
|
|
|
77
105
|
networkQualityCapability,
|
|
78
106
|
nodesCapability,
|
|
79
107
|
notificationOutputCapability,
|
|
108
|
+
notifierCapability,
|
|
109
|
+
numericSensorCapability,
|
|
80
110
|
oauthIntegrationCapability,
|
|
81
111
|
osdCapability,
|
|
82
112
|
pipelineAnalyticsCapability,
|
|
@@ -84,26 +114,41 @@ import {
|
|
|
84
114
|
pipelineOrchestratorCapability,
|
|
85
115
|
pipelineRunnerCapability,
|
|
86
116
|
platformProbeCapability,
|
|
117
|
+
powerMeterCapability,
|
|
118
|
+
presenceCapability,
|
|
119
|
+
pressureSensorCapability,
|
|
120
|
+
privacyMaskCapability,
|
|
87
121
|
ptzAutotrackCapability,
|
|
88
122
|
ptzCapability,
|
|
89
123
|
rebootCapability,
|
|
90
124
|
recordingCapability,
|
|
91
|
-
|
|
125
|
+
scriptRunnerCapability,
|
|
92
126
|
settingsStoreCapability,
|
|
127
|
+
smokeCapability,
|
|
93
128
|
smtpProviderCapability,
|
|
94
129
|
snapshotCapability,
|
|
95
130
|
snapshotProviderCapability,
|
|
96
131
|
ssoBridgeCapability,
|
|
97
132
|
storageCapability,
|
|
133
|
+
storageEvictableCapability,
|
|
98
134
|
storageProviderCapability,
|
|
99
135
|
streamBrokerCapability,
|
|
136
|
+
streamCatalogCapability,
|
|
100
137
|
streamParamsCapability,
|
|
101
138
|
switchCapability,
|
|
102
139
|
systemCapability,
|
|
140
|
+
tamperCapability,
|
|
141
|
+
temperatureSensorCapability,
|
|
103
142
|
toastCapability,
|
|
104
143
|
turnProviderCapability,
|
|
144
|
+
updateCapability,
|
|
105
145
|
userManagementCapability,
|
|
106
146
|
userPasskeysCapability,
|
|
147
|
+
vacuumControlCapability,
|
|
148
|
+
valveCapability,
|
|
149
|
+
vibrationCapability,
|
|
150
|
+
waterHeaterCapability,
|
|
151
|
+
weatherCapability,
|
|
107
152
|
webrtcSessionCapability,
|
|
108
153
|
zoneAnalyticsCapability,
|
|
109
154
|
zoneRulesCapability,
|
|
@@ -121,18 +166,35 @@ import {
|
|
|
121
166
|
createCapRouter_addons,
|
|
122
167
|
createCapRouter_adminUi,
|
|
123
168
|
createCapRouter_advancedNotifier,
|
|
169
|
+
createCapRouter_airQualitySensor,
|
|
170
|
+
createCapRouter_alarmPanel,
|
|
124
171
|
createCapRouter_alerts,
|
|
172
|
+
createCapRouter_ambientLightSensor,
|
|
125
173
|
createCapRouter_audioAnalysis,
|
|
126
174
|
createCapRouter_audioAnalyzer,
|
|
127
175
|
createCapRouter_audioCodec,
|
|
128
176
|
createCapRouter_audioMetrics,
|
|
177
|
+
createCapRouter_automationControl,
|
|
129
178
|
createCapRouter_backup,
|
|
130
179
|
createCapRouter_battery,
|
|
180
|
+
createCapRouter_binary,
|
|
131
181
|
createCapRouter_brightness,
|
|
182
|
+
createCapRouter_broker,
|
|
183
|
+
createCapRouter_button,
|
|
132
184
|
createCapRouter_cameraCredentials,
|
|
185
|
+
createCapRouter_cameraPipelineConfig,
|
|
133
186
|
createCapRouter_cameraStreams,
|
|
187
|
+
createCapRouter_carbonMonoxide,
|
|
188
|
+
createCapRouter_climateControl,
|
|
189
|
+
createCapRouter_color,
|
|
190
|
+
createCapRouter_connectivity,
|
|
191
|
+
createCapRouter_consumables,
|
|
192
|
+
createCapRouter_contact,
|
|
193
|
+
createCapRouter_control,
|
|
194
|
+
createCapRouter_cover,
|
|
134
195
|
createCapRouter_decoder,
|
|
135
196
|
createCapRouter_detectionPipeline,
|
|
197
|
+
createCapRouter_deviceAdoption,
|
|
136
198
|
createCapRouter_deviceDiscovery,
|
|
137
199
|
createCapRouter_deviceExport,
|
|
138
200
|
createCapRouter_deviceManager,
|
|
@@ -142,11 +204,22 @@ import {
|
|
|
142
204
|
createCapRouter_deviceStatus,
|
|
143
205
|
createCapRouter_doorbell,
|
|
144
206
|
createCapRouter_embeddingEncoder,
|
|
207
|
+
createCapRouter_enumSensor,
|
|
208
|
+
createCapRouter_eventEmitter,
|
|
145
209
|
createCapRouter_events,
|
|
210
|
+
createCapRouter_fanControl,
|
|
146
211
|
createCapRouter_featureProbe,
|
|
212
|
+
createCapRouter_flood,
|
|
213
|
+
createCapRouter_gas,
|
|
214
|
+
createCapRouter_humidifier,
|
|
215
|
+
createCapRouter_humiditySensor,
|
|
216
|
+
createCapRouter_image,
|
|
147
217
|
createCapRouter_integrations,
|
|
148
218
|
createCapRouter_intercom,
|
|
219
|
+
createCapRouter_lawnMowerControl,
|
|
149
220
|
createCapRouter_localNetwork,
|
|
221
|
+
createCapRouter_lockControl,
|
|
222
|
+
createCapRouter_mediaPlayer,
|
|
150
223
|
createCapRouter_meshNetwork,
|
|
151
224
|
createCapRouter_metricsProvider,
|
|
152
225
|
createCapRouter_motion,
|
|
@@ -159,6 +232,8 @@ import {
|
|
|
159
232
|
createCapRouter_networkQuality,
|
|
160
233
|
createCapRouter_nodes,
|
|
161
234
|
createCapRouter_notificationOutput,
|
|
235
|
+
createCapRouter_notifier,
|
|
236
|
+
createCapRouter_numericSensor,
|
|
162
237
|
createCapRouter_oauthIntegration,
|
|
163
238
|
createCapRouter_osd,
|
|
164
239
|
createCapRouter_pipelineAnalytics,
|
|
@@ -166,26 +241,41 @@ import {
|
|
|
166
241
|
createCapRouter_pipelineOrchestrator,
|
|
167
242
|
createCapRouter_pipelineRunner,
|
|
168
243
|
createCapRouter_platformProbe,
|
|
244
|
+
createCapRouter_powerMeter,
|
|
245
|
+
createCapRouter_presence,
|
|
246
|
+
createCapRouter_pressureSensor,
|
|
247
|
+
createCapRouter_privacyMask,
|
|
169
248
|
createCapRouter_ptz,
|
|
170
249
|
createCapRouter_ptzAutotrack,
|
|
171
250
|
createCapRouter_reboot,
|
|
172
251
|
createCapRouter_recording,
|
|
173
|
-
|
|
252
|
+
createCapRouter_scriptRunner,
|
|
174
253
|
createCapRouter_settingsStore,
|
|
254
|
+
createCapRouter_smoke,
|
|
175
255
|
createCapRouter_smtpProvider,
|
|
176
256
|
createCapRouter_snapshot,
|
|
177
257
|
createCapRouter_snapshotProvider,
|
|
178
258
|
createCapRouter_ssoBridge,
|
|
179
259
|
createCapRouter_storage,
|
|
260
|
+
createCapRouter_storageEvictable,
|
|
180
261
|
createCapRouter_storageProvider,
|
|
181
262
|
createCapRouter_streamBroker,
|
|
263
|
+
createCapRouter_streamCatalog,
|
|
182
264
|
createCapRouter_streamParams,
|
|
183
265
|
createCapRouter_switch,
|
|
184
266
|
createCapRouter_system,
|
|
267
|
+
createCapRouter_tamper,
|
|
268
|
+
createCapRouter_temperatureSensor,
|
|
185
269
|
createCapRouter_toast,
|
|
186
270
|
createCapRouter_turnProvider,
|
|
271
|
+
createCapRouter_update,
|
|
187
272
|
createCapRouter_userManagement,
|
|
188
273
|
createCapRouter_userPasskeys,
|
|
274
|
+
createCapRouter_vacuumControl,
|
|
275
|
+
createCapRouter_valve,
|
|
276
|
+
createCapRouter_vibration,
|
|
277
|
+
createCapRouter_waterHeater,
|
|
278
|
+
createCapRouter_weather,
|
|
189
279
|
createCapRouter_webrtcSession,
|
|
190
280
|
createCapRouter_zoneAnalytics,
|
|
191
281
|
createCapRouter_zoneRules,
|
|
@@ -292,10 +382,22 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
292
382
|
(_ctx) => reg?.getSingleton<InferProvider<typeof advancedNotifierCapability>>('advanced-notifier') ?? null,
|
|
293
383
|
remoteCapProxy,
|
|
294
384
|
),
|
|
385
|
+
airQualitySensor: createCapRouter_airQualitySensor(
|
|
386
|
+
(_ctx) => requireDeviceScoped(reg, 'air-quality-sensor') as InferProvider<typeof airQualitySensorCapability> | null,
|
|
387
|
+
remoteCapProxy,
|
|
388
|
+
),
|
|
389
|
+
alarmPanel: createCapRouter_alarmPanel(
|
|
390
|
+
(_ctx) => requireDeviceScoped(reg, 'alarm-panel') as InferProvider<typeof alarmPanelCapability> | null,
|
|
391
|
+
remoteCapProxy,
|
|
392
|
+
),
|
|
295
393
|
alerts: createCapRouter_alerts(
|
|
296
394
|
(_ctx) => reg?.getSingleton<InferProvider<typeof alertsCapability>>('alerts') ?? null,
|
|
297
395
|
remoteCapProxy,
|
|
298
396
|
),
|
|
397
|
+
ambientLightSensor: createCapRouter_ambientLightSensor(
|
|
398
|
+
(_ctx) => requireDeviceScoped(reg, 'ambient-light-sensor') as InferProvider<typeof ambientLightSensorCapability> | null,
|
|
399
|
+
remoteCapProxy,
|
|
400
|
+
),
|
|
299
401
|
audioAnalysis: createCapRouter_audioAnalysis(
|
|
300
402
|
(_ctx) => reg?.getSingleton<InferProvider<typeof audioAnalysisCapability>>('audio-analysis') ?? null,
|
|
301
403
|
remoteCapProxy,
|
|
@@ -312,6 +414,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
312
414
|
(_ctx) => reg?.getSingleton<InferProvider<typeof audioMetricsCapability>>('audio-metrics') ?? null,
|
|
313
415
|
remoteCapProxy,
|
|
314
416
|
),
|
|
417
|
+
automationControl: createCapRouter_automationControl(
|
|
418
|
+
(_ctx) => requireDeviceScoped(reg, 'automation-control') as InferProvider<typeof automationControlCapability> | null,
|
|
419
|
+
remoteCapProxy,
|
|
420
|
+
),
|
|
315
421
|
backup: createCapRouter_backup(
|
|
316
422
|
(_ctx) => reg?.getSingleton<InferProvider<typeof backupCapability>>('backup') ?? null,
|
|
317
423
|
remoteCapProxy,
|
|
@@ -320,18 +426,80 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
320
426
|
(_ctx) => requireDeviceScoped(reg, 'battery') as InferProvider<typeof batteryCapability> | null,
|
|
321
427
|
remoteCapProxy,
|
|
322
428
|
),
|
|
429
|
+
binary: createCapRouter_binary(
|
|
430
|
+
(_ctx) => requireDeviceScoped(reg, 'binary') as InferProvider<typeof binaryCapability> | null,
|
|
431
|
+
remoteCapProxy,
|
|
432
|
+
),
|
|
323
433
|
brightness: createCapRouter_brightness(
|
|
324
434
|
(_ctx) => requireDeviceScoped(reg, 'brightness') as InferProvider<typeof brightnessCapability> | null,
|
|
325
435
|
remoteCapProxy,
|
|
326
436
|
),
|
|
437
|
+
broker: createCapRouter_broker(
|
|
438
|
+
(_ctx, addonId) => {
|
|
439
|
+
if (!reg) return null
|
|
440
|
+
if (addonId !== undefined) {
|
|
441
|
+
return reg.getProviderByAddonId<InferProvider<typeof brokerCapability>>('broker', addonId)
|
|
442
|
+
}
|
|
443
|
+
const entries = reg.getCollectionEntries<InferProvider<typeof brokerCapability>>('broker')
|
|
444
|
+
if (entries.length === 0) return null
|
|
445
|
+
const providers = entries.map(([, p]) => p)
|
|
446
|
+
const first = providers[0]!
|
|
447
|
+
return {
|
|
448
|
+
...first,
|
|
449
|
+
list: concatCollection(providers, 'list') as InferProvider<typeof brokerCapability>['list'],
|
|
450
|
+
listProviders: concatCollection(providers, 'listProviders') as InferProvider<typeof brokerCapability>['listProviders'],
|
|
451
|
+
}
|
|
452
|
+
},
|
|
453
|
+
remoteCapProxy,
|
|
454
|
+
),
|
|
455
|
+
button: createCapRouter_button(
|
|
456
|
+
(_ctx) => requireDeviceScoped(reg, 'button') as InferProvider<typeof buttonCapability> | null,
|
|
457
|
+
remoteCapProxy,
|
|
458
|
+
),
|
|
327
459
|
cameraCredentials: createCapRouter_cameraCredentials(
|
|
328
460
|
(_ctx) => requireDeviceScoped(reg, 'camera-credentials') as InferProvider<typeof cameraCredentialsCapability> | null,
|
|
329
461
|
remoteCapProxy,
|
|
330
462
|
),
|
|
463
|
+
cameraPipelineConfig: createCapRouter_cameraPipelineConfig(
|
|
464
|
+
(_ctx) => reg?.getSingleton<InferProvider<typeof cameraPipelineConfigCapability>>('camera-pipeline-config') ?? null,
|
|
465
|
+
remoteCapProxy,
|
|
466
|
+
),
|
|
331
467
|
cameraStreams: createCapRouter_cameraStreams(
|
|
332
468
|
(_ctx) => reg?.getSingleton<InferProvider<typeof cameraStreamsCapability>>('camera-streams') ?? null,
|
|
333
469
|
remoteCapProxy,
|
|
334
470
|
),
|
|
471
|
+
carbonMonoxide: createCapRouter_carbonMonoxide(
|
|
472
|
+
(_ctx) => requireDeviceScoped(reg, 'carbon-monoxide') as InferProvider<typeof carbonMonoxideCapability> | null,
|
|
473
|
+
remoteCapProxy,
|
|
474
|
+
),
|
|
475
|
+
climateControl: createCapRouter_climateControl(
|
|
476
|
+
(_ctx) => requireDeviceScoped(reg, 'climate-control') as InferProvider<typeof climateControlCapability> | null,
|
|
477
|
+
remoteCapProxy,
|
|
478
|
+
),
|
|
479
|
+
color: createCapRouter_color(
|
|
480
|
+
(_ctx) => requireDeviceScoped(reg, 'color') as InferProvider<typeof colorCapability> | null,
|
|
481
|
+
remoteCapProxy,
|
|
482
|
+
),
|
|
483
|
+
connectivity: createCapRouter_connectivity(
|
|
484
|
+
(_ctx) => requireDeviceScoped(reg, 'connectivity') as InferProvider<typeof connectivityCapability> | null,
|
|
485
|
+
remoteCapProxy,
|
|
486
|
+
),
|
|
487
|
+
consumables: createCapRouter_consumables(
|
|
488
|
+
(_ctx) => requireDeviceScoped(reg, 'consumables') as InferProvider<typeof consumablesCapability> | null,
|
|
489
|
+
remoteCapProxy,
|
|
490
|
+
),
|
|
491
|
+
contact: createCapRouter_contact(
|
|
492
|
+
(_ctx) => requireDeviceScoped(reg, 'contact') as InferProvider<typeof contactCapability> | null,
|
|
493
|
+
remoteCapProxy,
|
|
494
|
+
),
|
|
495
|
+
control: createCapRouter_control(
|
|
496
|
+
(_ctx) => requireDeviceScoped(reg, 'control') as InferProvider<typeof controlCapability> | null,
|
|
497
|
+
remoteCapProxy,
|
|
498
|
+
),
|
|
499
|
+
cover: createCapRouter_cover(
|
|
500
|
+
(_ctx) => requireDeviceScoped(reg, 'cover') as InferProvider<typeof coverCapability> | null,
|
|
501
|
+
remoteCapProxy,
|
|
502
|
+
),
|
|
335
503
|
decoder: createCapRouter_decoder(
|
|
336
504
|
(_ctx) => reg?.getSingleton<InferProvider<typeof decoderCapability>>('decoder') ?? null,
|
|
337
505
|
remoteCapProxy,
|
|
@@ -340,6 +508,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
340
508
|
(_ctx) => reg?.getSingleton<InferProvider<typeof detectionPipelineCapability>>('detection-pipeline') ?? null,
|
|
341
509
|
remoteCapProxy,
|
|
342
510
|
),
|
|
511
|
+
deviceAdoption: createCapRouter_deviceAdoption(
|
|
512
|
+
(_ctx) => reg?.getSingleton<InferProvider<typeof deviceAdoptionCapability>>('device-adoption') ?? null,
|
|
513
|
+
remoteCapProxy,
|
|
514
|
+
),
|
|
343
515
|
deviceDiscovery: createCapRouter_deviceDiscovery(
|
|
344
516
|
(_ctx) => requireDeviceScoped(reg, 'device-discovery') as InferProvider<typeof deviceDiscoveryCapability> | null,
|
|
345
517
|
remoteCapProxy,
|
|
@@ -367,7 +539,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
367
539
|
remoteCapProxy,
|
|
368
540
|
),
|
|
369
541
|
deviceOps: createCapRouter_deviceOps(
|
|
370
|
-
(_ctx) => reg
|
|
542
|
+
(_ctx) => requireDeviceScoped(reg, 'device-ops') as InferProvider<typeof deviceOpsCapability> | null,
|
|
371
543
|
remoteCapProxy,
|
|
372
544
|
),
|
|
373
545
|
deviceProvider: createCapRouter_deviceProvider(
|
|
@@ -411,14 +583,46 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
411
583
|
},
|
|
412
584
|
remoteCapProxy,
|
|
413
585
|
),
|
|
586
|
+
enumSensor: createCapRouter_enumSensor(
|
|
587
|
+
(_ctx) => requireDeviceScoped(reg, 'enum-sensor') as InferProvider<typeof enumSensorCapability> | null,
|
|
588
|
+
remoteCapProxy,
|
|
589
|
+
),
|
|
590
|
+
eventEmitter: createCapRouter_eventEmitter(
|
|
591
|
+
(_ctx) => requireDeviceScoped(reg, 'event-emitter') as InferProvider<typeof eventEmitterCapability> | null,
|
|
592
|
+
remoteCapProxy,
|
|
593
|
+
),
|
|
414
594
|
events: createCapRouter_events(
|
|
415
595
|
(_ctx) => reg?.getSingleton<InferProvider<typeof eventsCapability>>('events') ?? null,
|
|
416
596
|
remoteCapProxy,
|
|
417
597
|
),
|
|
598
|
+
fanControl: createCapRouter_fanControl(
|
|
599
|
+
(_ctx) => requireDeviceScoped(reg, 'fan-control') as InferProvider<typeof fanControlCapability> | null,
|
|
600
|
+
remoteCapProxy,
|
|
601
|
+
),
|
|
418
602
|
featureProbe: createCapRouter_featureProbe(
|
|
419
603
|
(_ctx) => requireDeviceScoped(reg, 'feature-probe') as InferProvider<typeof featureProbeCapability> | null,
|
|
420
604
|
remoteCapProxy,
|
|
421
605
|
),
|
|
606
|
+
flood: createCapRouter_flood(
|
|
607
|
+
(_ctx) => requireDeviceScoped(reg, 'flood') as InferProvider<typeof floodCapability> | null,
|
|
608
|
+
remoteCapProxy,
|
|
609
|
+
),
|
|
610
|
+
gas: createCapRouter_gas(
|
|
611
|
+
(_ctx) => requireDeviceScoped(reg, 'gas') as InferProvider<typeof gasCapability> | null,
|
|
612
|
+
remoteCapProxy,
|
|
613
|
+
),
|
|
614
|
+
humidifier: createCapRouter_humidifier(
|
|
615
|
+
(_ctx) => requireDeviceScoped(reg, 'humidifier') as InferProvider<typeof humidifierCapability> | null,
|
|
616
|
+
remoteCapProxy,
|
|
617
|
+
),
|
|
618
|
+
humiditySensor: createCapRouter_humiditySensor(
|
|
619
|
+
(_ctx) => requireDeviceScoped(reg, 'humidity-sensor') as InferProvider<typeof humiditySensorCapability> | null,
|
|
620
|
+
remoteCapProxy,
|
|
621
|
+
),
|
|
622
|
+
image: createCapRouter_image(
|
|
623
|
+
(_ctx) => requireDeviceScoped(reg, 'image') as InferProvider<typeof imageCapability> | null,
|
|
624
|
+
remoteCapProxy,
|
|
625
|
+
),
|
|
422
626
|
integrations: createCapRouter_integrations(
|
|
423
627
|
(_ctx) => reg?.getSingleton<InferProvider<typeof integrationsCapability>>('integrations') ?? null,
|
|
424
628
|
remoteCapProxy,
|
|
@@ -427,10 +631,22 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
427
631
|
(_ctx) => requireDeviceScoped(reg, 'intercom') as InferProvider<typeof intercomCapability> | null,
|
|
428
632
|
remoteCapProxy,
|
|
429
633
|
),
|
|
634
|
+
lawnMowerControl: createCapRouter_lawnMowerControl(
|
|
635
|
+
(_ctx) => requireDeviceScoped(reg, 'lawn-mower-control') as InferProvider<typeof lawnMowerControlCapability> | null,
|
|
636
|
+
remoteCapProxy,
|
|
637
|
+
),
|
|
430
638
|
localNetwork: createCapRouter_localNetwork(
|
|
431
639
|
(_ctx) => reg?.getSingleton<InferProvider<typeof localNetworkCapability>>('local-network') ?? null,
|
|
432
640
|
remoteCapProxy,
|
|
433
641
|
),
|
|
642
|
+
lockControl: createCapRouter_lockControl(
|
|
643
|
+
(_ctx) => requireDeviceScoped(reg, 'lock-control') as InferProvider<typeof lockControlCapability> | null,
|
|
644
|
+
remoteCapProxy,
|
|
645
|
+
),
|
|
646
|
+
mediaPlayer: createCapRouter_mediaPlayer(
|
|
647
|
+
(_ctx) => requireDeviceScoped(reg, 'media-player') as InferProvider<typeof mediaPlayerCapability> | null,
|
|
648
|
+
remoteCapProxy,
|
|
649
|
+
),
|
|
434
650
|
meshNetwork: createCapRouter_meshNetwork(
|
|
435
651
|
(_ctx, addonId) => {
|
|
436
652
|
if (!reg) return null
|
|
@@ -480,7 +696,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
480
696
|
remoteCapProxy,
|
|
481
697
|
),
|
|
482
698
|
nativeObjectDetection: createCapRouter_nativeObjectDetection(
|
|
483
|
-
(_ctx) => reg
|
|
699
|
+
(_ctx) => requireDeviceScoped(reg, 'native-object-detection') as InferProvider<typeof nativeObjectDetectionCapability> | null,
|
|
484
700
|
remoteCapProxy,
|
|
485
701
|
),
|
|
486
702
|
networkAccess: createCapRouter_networkAccess(
|
|
@@ -519,6 +735,14 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
519
735
|
},
|
|
520
736
|
remoteCapProxy,
|
|
521
737
|
),
|
|
738
|
+
notifier: createCapRouter_notifier(
|
|
739
|
+
(_ctx) => requireDeviceScoped(reg, 'notifier') as InferProvider<typeof notifierCapability> | null,
|
|
740
|
+
remoteCapProxy,
|
|
741
|
+
),
|
|
742
|
+
numericSensor: createCapRouter_numericSensor(
|
|
743
|
+
(_ctx) => requireDeviceScoped(reg, 'numeric-sensor') as InferProvider<typeof numericSensorCapability> | null,
|
|
744
|
+
remoteCapProxy,
|
|
745
|
+
),
|
|
522
746
|
oauthIntegration: createCapRouter_oauthIntegration(
|
|
523
747
|
(_ctx, addonId) => {
|
|
524
748
|
if (!reg) return null
|
|
@@ -554,6 +778,22 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
554
778
|
(_ctx) => reg?.getSingleton<InferProvider<typeof platformProbeCapability>>('platform-probe') ?? null,
|
|
555
779
|
remoteCapProxy,
|
|
556
780
|
),
|
|
781
|
+
powerMeter: createCapRouter_powerMeter(
|
|
782
|
+
(_ctx) => requireDeviceScoped(reg, 'power-meter') as InferProvider<typeof powerMeterCapability> | null,
|
|
783
|
+
remoteCapProxy,
|
|
784
|
+
),
|
|
785
|
+
presence: createCapRouter_presence(
|
|
786
|
+
(_ctx) => requireDeviceScoped(reg, 'presence') as InferProvider<typeof presenceCapability> | null,
|
|
787
|
+
remoteCapProxy,
|
|
788
|
+
),
|
|
789
|
+
pressureSensor: createCapRouter_pressureSensor(
|
|
790
|
+
(_ctx) => requireDeviceScoped(reg, 'pressure-sensor') as InferProvider<typeof pressureSensorCapability> | null,
|
|
791
|
+
remoteCapProxy,
|
|
792
|
+
),
|
|
793
|
+
privacyMask: createCapRouter_privacyMask(
|
|
794
|
+
(_ctx) => requireDeviceScoped(reg, 'privacy-mask') as InferProvider<typeof privacyMaskCapability> | null,
|
|
795
|
+
remoteCapProxy,
|
|
796
|
+
),
|
|
557
797
|
ptz: createCapRouter_ptz(
|
|
558
798
|
(_ctx) => requireDeviceScoped(reg, 'ptz') as InferProvider<typeof ptzCapability> | null,
|
|
559
799
|
remoteCapProxy,
|
|
@@ -570,14 +810,18 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
570
810
|
(_ctx) => reg?.getSingleton<InferProvider<typeof recordingCapability>>('recording') ?? null,
|
|
571
811
|
remoteCapProxy,
|
|
572
812
|
),
|
|
573
|
-
|
|
574
|
-
(_ctx) => reg
|
|
813
|
+
scriptRunner: createCapRouter_scriptRunner(
|
|
814
|
+
(_ctx) => requireDeviceScoped(reg, 'script-runner') as InferProvider<typeof scriptRunnerCapability> | null,
|
|
575
815
|
remoteCapProxy,
|
|
576
816
|
),
|
|
577
817
|
settingsStore: createCapRouter_settingsStore(
|
|
578
818
|
(_ctx) => reg?.getSingleton<InferProvider<typeof settingsStoreCapability>>('settings-store') ?? null,
|
|
579
819
|
remoteCapProxy,
|
|
580
820
|
),
|
|
821
|
+
smoke: createCapRouter_smoke(
|
|
822
|
+
(_ctx) => requireDeviceScoped(reg, 'smoke') as InferProvider<typeof smokeCapability> | null,
|
|
823
|
+
remoteCapProxy,
|
|
824
|
+
),
|
|
581
825
|
smtpProvider: createCapRouter_smtpProvider(
|
|
582
826
|
(_ctx, addonId) => {
|
|
583
827
|
if (!reg) return null
|
|
@@ -590,7 +834,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
590
834
|
remoteCapProxy,
|
|
591
835
|
),
|
|
592
836
|
snapshot: createCapRouter_snapshot(
|
|
593
|
-
(_ctx) => reg
|
|
837
|
+
(_ctx) => requireDeviceScoped(reg, 'snapshot') as InferProvider<typeof snapshotCapability> | null,
|
|
594
838
|
remoteCapProxy,
|
|
595
839
|
),
|
|
596
840
|
snapshotProvider: createCapRouter_snapshotProvider(
|
|
@@ -612,6 +856,17 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
612
856
|
(_ctx) => reg?.getSingleton<InferProvider<typeof storageCapability>>('storage') ?? null,
|
|
613
857
|
remoteCapProxy,
|
|
614
858
|
),
|
|
859
|
+
storageEvictable: createCapRouter_storageEvictable(
|
|
860
|
+
(_ctx, addonId) => {
|
|
861
|
+
if (!reg) return null
|
|
862
|
+
if (addonId !== undefined) {
|
|
863
|
+
return reg.getProviderByAddonId<InferProvider<typeof storageEvictableCapability>>('storage-evictable', addonId)
|
|
864
|
+
}
|
|
865
|
+
const entries = reg.getCollectionEntries<InferProvider<typeof storageEvictableCapability>>('storage-evictable')
|
|
866
|
+
return entries[0]?.[1] ?? null
|
|
867
|
+
},
|
|
868
|
+
remoteCapProxy,
|
|
869
|
+
),
|
|
615
870
|
storageProvider: createCapRouter_storageProvider(
|
|
616
871
|
(_ctx, addonId) => {
|
|
617
872
|
if (!reg) return null
|
|
@@ -633,6 +888,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
633
888
|
(_ctx) => reg?.getSingleton<InferProvider<typeof streamBrokerCapability>>('stream-broker') ?? null,
|
|
634
889
|
remoteCapProxy,
|
|
635
890
|
),
|
|
891
|
+
streamCatalog: createCapRouter_streamCatalog(
|
|
892
|
+
(_ctx) => requireDeviceScoped(reg, 'stream-catalog') as InferProvider<typeof streamCatalogCapability> | null,
|
|
893
|
+
remoteCapProxy,
|
|
894
|
+
),
|
|
636
895
|
streamParams: createCapRouter_streamParams(
|
|
637
896
|
(_ctx) => requireDeviceScoped(reg, 'stream-params') as InferProvider<typeof streamParamsCapability> | null,
|
|
638
897
|
remoteCapProxy,
|
|
@@ -645,6 +904,14 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
645
904
|
(_ctx) => reg?.getSingleton<InferProvider<typeof systemCapability>>('system') ?? null,
|
|
646
905
|
remoteCapProxy,
|
|
647
906
|
),
|
|
907
|
+
tamper: createCapRouter_tamper(
|
|
908
|
+
(_ctx) => requireDeviceScoped(reg, 'tamper') as InferProvider<typeof tamperCapability> | null,
|
|
909
|
+
remoteCapProxy,
|
|
910
|
+
),
|
|
911
|
+
temperatureSensor: createCapRouter_temperatureSensor(
|
|
912
|
+
(_ctx) => requireDeviceScoped(reg, 'temperature-sensor') as InferProvider<typeof temperatureSensorCapability> | null,
|
|
913
|
+
remoteCapProxy,
|
|
914
|
+
),
|
|
648
915
|
toast: createCapRouter_toast(
|
|
649
916
|
(_ctx) => reg?.getSingleton<InferProvider<typeof toastCapability>>('toast') ?? null,
|
|
650
917
|
remoteCapProxy,
|
|
@@ -666,6 +933,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
666
933
|
},
|
|
667
934
|
remoteCapProxy,
|
|
668
935
|
),
|
|
936
|
+
update: createCapRouter_update(
|
|
937
|
+
(_ctx) => requireDeviceScoped(reg, 'update') as InferProvider<typeof updateCapability> | null,
|
|
938
|
+
remoteCapProxy,
|
|
939
|
+
),
|
|
669
940
|
userManagement: createCapRouter_userManagement(
|
|
670
941
|
(_ctx) => reg?.getSingleton<InferProvider<typeof userManagementCapability>>('user-management') ?? null,
|
|
671
942
|
remoteCapProxy,
|
|
@@ -687,6 +958,26 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
687
958
|
},
|
|
688
959
|
remoteCapProxy,
|
|
689
960
|
),
|
|
961
|
+
vacuumControl: createCapRouter_vacuumControl(
|
|
962
|
+
(_ctx) => requireDeviceScoped(reg, 'vacuum-control') as InferProvider<typeof vacuumControlCapability> | null,
|
|
963
|
+
remoteCapProxy,
|
|
964
|
+
),
|
|
965
|
+
valve: createCapRouter_valve(
|
|
966
|
+
(_ctx) => requireDeviceScoped(reg, 'valve') as InferProvider<typeof valveCapability> | null,
|
|
967
|
+
remoteCapProxy,
|
|
968
|
+
),
|
|
969
|
+
vibration: createCapRouter_vibration(
|
|
970
|
+
(_ctx) => requireDeviceScoped(reg, 'vibration') as InferProvider<typeof vibrationCapability> | null,
|
|
971
|
+
remoteCapProxy,
|
|
972
|
+
),
|
|
973
|
+
waterHeater: createCapRouter_waterHeater(
|
|
974
|
+
(_ctx) => requireDeviceScoped(reg, 'water-heater') as InferProvider<typeof waterHeaterCapability> | null,
|
|
975
|
+
remoteCapProxy,
|
|
976
|
+
),
|
|
977
|
+
weather: createCapRouter_weather(
|
|
978
|
+
(_ctx) => requireDeviceScoped(reg, 'weather') as InferProvider<typeof weatherCapability> | null,
|
|
979
|
+
remoteCapProxy,
|
|
980
|
+
),
|
|
690
981
|
webrtcSession: createCapRouter_webrtcSession(
|
|
691
982
|
(_ctx) => reg?.getSingleton<InferProvider<typeof webrtcSessionCapability>>('webrtc-session') ?? null,
|
|
692
983
|
remoteCapProxy,
|