@camstack/server 0.1.7 → 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__/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-routers/broker-routing.router.spec.ts +169 -0
- package/src/__tests__/cap-routers/device-link-overlay.spec.ts +132 -0
- package/src/__tests__/moleculer/uds-unowned-call.spec.ts +209 -3
- package/src/api/core/__tests__/integration-markers.spec.ts +10 -0
- package/src/api/core/cap-providers.ts +152 -3
- package/src/api/core/logs.router.ts +4 -0
- package/src/api/trpc/__tests__/client-ip.spec.ts +27 -1
- 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/client-ip.ts +17 -0
- package/src/api/trpc/generated-cap-mounts.ts +281 -8
- package/src/api/trpc/generated-cap-routers.ts +2087 -184
- package/src/api/trpc/trpc.router.ts +43 -7
- 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-registry.service.ts +89 -2
- package/src/core/addon/addon-row-manifest.ts +29 -0
- package/src/core/logging/logging.service.ts +7 -2
- package/src/core/moleculer/moleculer.service.ts +28 -0
- package/src/core/network/network-quality.service.spec.ts +2 -1
- package/src/main.ts +92 -0
- 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,19 +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,
|
|
51
58
|
cameraPipelineConfigCapability,
|
|
52
59
|
cameraStreamsCapability,
|
|
60
|
+
carbonMonoxideCapability,
|
|
61
|
+
climateControlCapability,
|
|
62
|
+
colorCapability,
|
|
63
|
+
connectivityCapability,
|
|
64
|
+
consumablesCapability,
|
|
65
|
+
contactCapability,
|
|
66
|
+
controlCapability,
|
|
67
|
+
coverCapability,
|
|
53
68
|
decoderCapability,
|
|
54
69
|
detectionPipelineCapability,
|
|
70
|
+
deviceAdoptionCapability,
|
|
55
71
|
deviceDiscoveryCapability,
|
|
56
72
|
deviceExportCapability,
|
|
57
73
|
deviceManagerCapability,
|
|
@@ -61,11 +77,22 @@ import {
|
|
|
61
77
|
deviceStatusCapability,
|
|
62
78
|
doorbellCapability,
|
|
63
79
|
embeddingEncoderCapability,
|
|
80
|
+
enumSensorCapability,
|
|
81
|
+
eventEmitterCapability,
|
|
64
82
|
eventsCapability,
|
|
83
|
+
fanControlCapability,
|
|
65
84
|
featureProbeCapability,
|
|
85
|
+
floodCapability,
|
|
86
|
+
gasCapability,
|
|
87
|
+
humidifierCapability,
|
|
88
|
+
humiditySensorCapability,
|
|
89
|
+
imageCapability,
|
|
66
90
|
integrationsCapability,
|
|
67
91
|
intercomCapability,
|
|
92
|
+
lawnMowerControlCapability,
|
|
68
93
|
localNetworkCapability,
|
|
94
|
+
lockControlCapability,
|
|
95
|
+
mediaPlayerCapability,
|
|
69
96
|
meshNetworkCapability,
|
|
70
97
|
metricsProviderCapability,
|
|
71
98
|
motionCapability,
|
|
@@ -78,6 +105,8 @@ import {
|
|
|
78
105
|
networkQualityCapability,
|
|
79
106
|
nodesCapability,
|
|
80
107
|
notificationOutputCapability,
|
|
108
|
+
notifierCapability,
|
|
109
|
+
numericSensorCapability,
|
|
81
110
|
oauthIntegrationCapability,
|
|
82
111
|
osdCapability,
|
|
83
112
|
pipelineAnalyticsCapability,
|
|
@@ -85,28 +114,41 @@ import {
|
|
|
85
114
|
pipelineOrchestratorCapability,
|
|
86
115
|
pipelineRunnerCapability,
|
|
87
116
|
platformProbeCapability,
|
|
117
|
+
powerMeterCapability,
|
|
118
|
+
presenceCapability,
|
|
119
|
+
pressureSensorCapability,
|
|
88
120
|
privacyMaskCapability,
|
|
89
121
|
ptzAutotrackCapability,
|
|
90
122
|
ptzCapability,
|
|
91
123
|
rebootCapability,
|
|
92
124
|
recordingCapability,
|
|
93
|
-
|
|
125
|
+
scriptRunnerCapability,
|
|
94
126
|
settingsStoreCapability,
|
|
127
|
+
smokeCapability,
|
|
95
128
|
smtpProviderCapability,
|
|
96
129
|
snapshotCapability,
|
|
97
130
|
snapshotProviderCapability,
|
|
98
131
|
ssoBridgeCapability,
|
|
99
132
|
storageCapability,
|
|
133
|
+
storageEvictableCapability,
|
|
100
134
|
storageProviderCapability,
|
|
101
135
|
streamBrokerCapability,
|
|
102
136
|
streamCatalogCapability,
|
|
103
137
|
streamParamsCapability,
|
|
104
138
|
switchCapability,
|
|
105
139
|
systemCapability,
|
|
140
|
+
tamperCapability,
|
|
141
|
+
temperatureSensorCapability,
|
|
106
142
|
toastCapability,
|
|
107
143
|
turnProviderCapability,
|
|
144
|
+
updateCapability,
|
|
108
145
|
userManagementCapability,
|
|
109
146
|
userPasskeysCapability,
|
|
147
|
+
vacuumControlCapability,
|
|
148
|
+
valveCapability,
|
|
149
|
+
vibrationCapability,
|
|
150
|
+
waterHeaterCapability,
|
|
151
|
+
weatherCapability,
|
|
110
152
|
webrtcSessionCapability,
|
|
111
153
|
zoneAnalyticsCapability,
|
|
112
154
|
zoneRulesCapability,
|
|
@@ -124,19 +166,35 @@ import {
|
|
|
124
166
|
createCapRouter_addons,
|
|
125
167
|
createCapRouter_adminUi,
|
|
126
168
|
createCapRouter_advancedNotifier,
|
|
169
|
+
createCapRouter_airQualitySensor,
|
|
170
|
+
createCapRouter_alarmPanel,
|
|
127
171
|
createCapRouter_alerts,
|
|
172
|
+
createCapRouter_ambientLightSensor,
|
|
128
173
|
createCapRouter_audioAnalysis,
|
|
129
174
|
createCapRouter_audioAnalyzer,
|
|
130
175
|
createCapRouter_audioCodec,
|
|
131
176
|
createCapRouter_audioMetrics,
|
|
177
|
+
createCapRouter_automationControl,
|
|
132
178
|
createCapRouter_backup,
|
|
133
179
|
createCapRouter_battery,
|
|
180
|
+
createCapRouter_binary,
|
|
134
181
|
createCapRouter_brightness,
|
|
182
|
+
createCapRouter_broker,
|
|
183
|
+
createCapRouter_button,
|
|
135
184
|
createCapRouter_cameraCredentials,
|
|
136
185
|
createCapRouter_cameraPipelineConfig,
|
|
137
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,
|
|
138
195
|
createCapRouter_decoder,
|
|
139
196
|
createCapRouter_detectionPipeline,
|
|
197
|
+
createCapRouter_deviceAdoption,
|
|
140
198
|
createCapRouter_deviceDiscovery,
|
|
141
199
|
createCapRouter_deviceExport,
|
|
142
200
|
createCapRouter_deviceManager,
|
|
@@ -146,11 +204,22 @@ import {
|
|
|
146
204
|
createCapRouter_deviceStatus,
|
|
147
205
|
createCapRouter_doorbell,
|
|
148
206
|
createCapRouter_embeddingEncoder,
|
|
207
|
+
createCapRouter_enumSensor,
|
|
208
|
+
createCapRouter_eventEmitter,
|
|
149
209
|
createCapRouter_events,
|
|
210
|
+
createCapRouter_fanControl,
|
|
150
211
|
createCapRouter_featureProbe,
|
|
212
|
+
createCapRouter_flood,
|
|
213
|
+
createCapRouter_gas,
|
|
214
|
+
createCapRouter_humidifier,
|
|
215
|
+
createCapRouter_humiditySensor,
|
|
216
|
+
createCapRouter_image,
|
|
151
217
|
createCapRouter_integrations,
|
|
152
218
|
createCapRouter_intercom,
|
|
219
|
+
createCapRouter_lawnMowerControl,
|
|
153
220
|
createCapRouter_localNetwork,
|
|
221
|
+
createCapRouter_lockControl,
|
|
222
|
+
createCapRouter_mediaPlayer,
|
|
154
223
|
createCapRouter_meshNetwork,
|
|
155
224
|
createCapRouter_metricsProvider,
|
|
156
225
|
createCapRouter_motion,
|
|
@@ -163,6 +232,8 @@ import {
|
|
|
163
232
|
createCapRouter_networkQuality,
|
|
164
233
|
createCapRouter_nodes,
|
|
165
234
|
createCapRouter_notificationOutput,
|
|
235
|
+
createCapRouter_notifier,
|
|
236
|
+
createCapRouter_numericSensor,
|
|
166
237
|
createCapRouter_oauthIntegration,
|
|
167
238
|
createCapRouter_osd,
|
|
168
239
|
createCapRouter_pipelineAnalytics,
|
|
@@ -170,28 +241,41 @@ import {
|
|
|
170
241
|
createCapRouter_pipelineOrchestrator,
|
|
171
242
|
createCapRouter_pipelineRunner,
|
|
172
243
|
createCapRouter_platformProbe,
|
|
244
|
+
createCapRouter_powerMeter,
|
|
245
|
+
createCapRouter_presence,
|
|
246
|
+
createCapRouter_pressureSensor,
|
|
173
247
|
createCapRouter_privacyMask,
|
|
174
248
|
createCapRouter_ptz,
|
|
175
249
|
createCapRouter_ptzAutotrack,
|
|
176
250
|
createCapRouter_reboot,
|
|
177
251
|
createCapRouter_recording,
|
|
178
|
-
|
|
252
|
+
createCapRouter_scriptRunner,
|
|
179
253
|
createCapRouter_settingsStore,
|
|
254
|
+
createCapRouter_smoke,
|
|
180
255
|
createCapRouter_smtpProvider,
|
|
181
256
|
createCapRouter_snapshot,
|
|
182
257
|
createCapRouter_snapshotProvider,
|
|
183
258
|
createCapRouter_ssoBridge,
|
|
184
259
|
createCapRouter_storage,
|
|
260
|
+
createCapRouter_storageEvictable,
|
|
185
261
|
createCapRouter_storageProvider,
|
|
186
262
|
createCapRouter_streamBroker,
|
|
187
263
|
createCapRouter_streamCatalog,
|
|
188
264
|
createCapRouter_streamParams,
|
|
189
265
|
createCapRouter_switch,
|
|
190
266
|
createCapRouter_system,
|
|
267
|
+
createCapRouter_tamper,
|
|
268
|
+
createCapRouter_temperatureSensor,
|
|
191
269
|
createCapRouter_toast,
|
|
192
270
|
createCapRouter_turnProvider,
|
|
271
|
+
createCapRouter_update,
|
|
193
272
|
createCapRouter_userManagement,
|
|
194
273
|
createCapRouter_userPasskeys,
|
|
274
|
+
createCapRouter_vacuumControl,
|
|
275
|
+
createCapRouter_valve,
|
|
276
|
+
createCapRouter_vibration,
|
|
277
|
+
createCapRouter_waterHeater,
|
|
278
|
+
createCapRouter_weather,
|
|
195
279
|
createCapRouter_webrtcSession,
|
|
196
280
|
createCapRouter_zoneAnalytics,
|
|
197
281
|
createCapRouter_zoneRules,
|
|
@@ -298,10 +382,22 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
298
382
|
(_ctx) => reg?.getSingleton<InferProvider<typeof advancedNotifierCapability>>('advanced-notifier') ?? null,
|
|
299
383
|
remoteCapProxy,
|
|
300
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
|
+
),
|
|
301
393
|
alerts: createCapRouter_alerts(
|
|
302
394
|
(_ctx) => reg?.getSingleton<InferProvider<typeof alertsCapability>>('alerts') ?? null,
|
|
303
395
|
remoteCapProxy,
|
|
304
396
|
),
|
|
397
|
+
ambientLightSensor: createCapRouter_ambientLightSensor(
|
|
398
|
+
(_ctx) => requireDeviceScoped(reg, 'ambient-light-sensor') as InferProvider<typeof ambientLightSensorCapability> | null,
|
|
399
|
+
remoteCapProxy,
|
|
400
|
+
),
|
|
305
401
|
audioAnalysis: createCapRouter_audioAnalysis(
|
|
306
402
|
(_ctx) => reg?.getSingleton<InferProvider<typeof audioAnalysisCapability>>('audio-analysis') ?? null,
|
|
307
403
|
remoteCapProxy,
|
|
@@ -318,6 +414,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
318
414
|
(_ctx) => reg?.getSingleton<InferProvider<typeof audioMetricsCapability>>('audio-metrics') ?? null,
|
|
319
415
|
remoteCapProxy,
|
|
320
416
|
),
|
|
417
|
+
automationControl: createCapRouter_automationControl(
|
|
418
|
+
(_ctx) => requireDeviceScoped(reg, 'automation-control') as InferProvider<typeof automationControlCapability> | null,
|
|
419
|
+
remoteCapProxy,
|
|
420
|
+
),
|
|
321
421
|
backup: createCapRouter_backup(
|
|
322
422
|
(_ctx) => reg?.getSingleton<InferProvider<typeof backupCapability>>('backup') ?? null,
|
|
323
423
|
remoteCapProxy,
|
|
@@ -326,10 +426,36 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
326
426
|
(_ctx) => requireDeviceScoped(reg, 'battery') as InferProvider<typeof batteryCapability> | null,
|
|
327
427
|
remoteCapProxy,
|
|
328
428
|
),
|
|
429
|
+
binary: createCapRouter_binary(
|
|
430
|
+
(_ctx) => requireDeviceScoped(reg, 'binary') as InferProvider<typeof binaryCapability> | null,
|
|
431
|
+
remoteCapProxy,
|
|
432
|
+
),
|
|
329
433
|
brightness: createCapRouter_brightness(
|
|
330
434
|
(_ctx) => requireDeviceScoped(reg, 'brightness') as InferProvider<typeof brightnessCapability> | null,
|
|
331
435
|
remoteCapProxy,
|
|
332
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
|
+
),
|
|
333
459
|
cameraCredentials: createCapRouter_cameraCredentials(
|
|
334
460
|
(_ctx) => requireDeviceScoped(reg, 'camera-credentials') as InferProvider<typeof cameraCredentialsCapability> | null,
|
|
335
461
|
remoteCapProxy,
|
|
@@ -342,6 +468,38 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
342
468
|
(_ctx) => reg?.getSingleton<InferProvider<typeof cameraStreamsCapability>>('camera-streams') ?? null,
|
|
343
469
|
remoteCapProxy,
|
|
344
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
|
+
),
|
|
345
503
|
decoder: createCapRouter_decoder(
|
|
346
504
|
(_ctx) => reg?.getSingleton<InferProvider<typeof decoderCapability>>('decoder') ?? null,
|
|
347
505
|
remoteCapProxy,
|
|
@@ -350,6 +508,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
350
508
|
(_ctx) => reg?.getSingleton<InferProvider<typeof detectionPipelineCapability>>('detection-pipeline') ?? null,
|
|
351
509
|
remoteCapProxy,
|
|
352
510
|
),
|
|
511
|
+
deviceAdoption: createCapRouter_deviceAdoption(
|
|
512
|
+
(_ctx) => reg?.getSingleton<InferProvider<typeof deviceAdoptionCapability>>('device-adoption') ?? null,
|
|
513
|
+
remoteCapProxy,
|
|
514
|
+
),
|
|
353
515
|
deviceDiscovery: createCapRouter_deviceDiscovery(
|
|
354
516
|
(_ctx) => requireDeviceScoped(reg, 'device-discovery') as InferProvider<typeof deviceDiscoveryCapability> | null,
|
|
355
517
|
remoteCapProxy,
|
|
@@ -377,7 +539,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
377
539
|
remoteCapProxy,
|
|
378
540
|
),
|
|
379
541
|
deviceOps: createCapRouter_deviceOps(
|
|
380
|
-
(_ctx) => reg
|
|
542
|
+
(_ctx) => requireDeviceScoped(reg, 'device-ops') as InferProvider<typeof deviceOpsCapability> | null,
|
|
381
543
|
remoteCapProxy,
|
|
382
544
|
),
|
|
383
545
|
deviceProvider: createCapRouter_deviceProvider(
|
|
@@ -421,14 +583,46 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
421
583
|
},
|
|
422
584
|
remoteCapProxy,
|
|
423
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
|
+
),
|
|
424
594
|
events: createCapRouter_events(
|
|
425
595
|
(_ctx) => reg?.getSingleton<InferProvider<typeof eventsCapability>>('events') ?? null,
|
|
426
596
|
remoteCapProxy,
|
|
427
597
|
),
|
|
598
|
+
fanControl: createCapRouter_fanControl(
|
|
599
|
+
(_ctx) => requireDeviceScoped(reg, 'fan-control') as InferProvider<typeof fanControlCapability> | null,
|
|
600
|
+
remoteCapProxy,
|
|
601
|
+
),
|
|
428
602
|
featureProbe: createCapRouter_featureProbe(
|
|
429
603
|
(_ctx) => requireDeviceScoped(reg, 'feature-probe') as InferProvider<typeof featureProbeCapability> | null,
|
|
430
604
|
remoteCapProxy,
|
|
431
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
|
+
),
|
|
432
626
|
integrations: createCapRouter_integrations(
|
|
433
627
|
(_ctx) => reg?.getSingleton<InferProvider<typeof integrationsCapability>>('integrations') ?? null,
|
|
434
628
|
remoteCapProxy,
|
|
@@ -437,10 +631,22 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
437
631
|
(_ctx) => requireDeviceScoped(reg, 'intercom') as InferProvider<typeof intercomCapability> | null,
|
|
438
632
|
remoteCapProxy,
|
|
439
633
|
),
|
|
634
|
+
lawnMowerControl: createCapRouter_lawnMowerControl(
|
|
635
|
+
(_ctx) => requireDeviceScoped(reg, 'lawn-mower-control') as InferProvider<typeof lawnMowerControlCapability> | null,
|
|
636
|
+
remoteCapProxy,
|
|
637
|
+
),
|
|
440
638
|
localNetwork: createCapRouter_localNetwork(
|
|
441
639
|
(_ctx) => reg?.getSingleton<InferProvider<typeof localNetworkCapability>>('local-network') ?? null,
|
|
442
640
|
remoteCapProxy,
|
|
443
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
|
+
),
|
|
444
650
|
meshNetwork: createCapRouter_meshNetwork(
|
|
445
651
|
(_ctx, addonId) => {
|
|
446
652
|
if (!reg) return null
|
|
@@ -490,7 +696,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
490
696
|
remoteCapProxy,
|
|
491
697
|
),
|
|
492
698
|
nativeObjectDetection: createCapRouter_nativeObjectDetection(
|
|
493
|
-
(_ctx) => reg
|
|
699
|
+
(_ctx) => requireDeviceScoped(reg, 'native-object-detection') as InferProvider<typeof nativeObjectDetectionCapability> | null,
|
|
494
700
|
remoteCapProxy,
|
|
495
701
|
),
|
|
496
702
|
networkAccess: createCapRouter_networkAccess(
|
|
@@ -529,6 +735,14 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
529
735
|
},
|
|
530
736
|
remoteCapProxy,
|
|
531
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
|
+
),
|
|
532
746
|
oauthIntegration: createCapRouter_oauthIntegration(
|
|
533
747
|
(_ctx, addonId) => {
|
|
534
748
|
if (!reg) return null
|
|
@@ -564,6 +778,18 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
564
778
|
(_ctx) => reg?.getSingleton<InferProvider<typeof platformProbeCapability>>('platform-probe') ?? null,
|
|
565
779
|
remoteCapProxy,
|
|
566
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
|
+
),
|
|
567
793
|
privacyMask: createCapRouter_privacyMask(
|
|
568
794
|
(_ctx) => requireDeviceScoped(reg, 'privacy-mask') as InferProvider<typeof privacyMaskCapability> | null,
|
|
569
795
|
remoteCapProxy,
|
|
@@ -584,14 +810,18 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
584
810
|
(_ctx) => reg?.getSingleton<InferProvider<typeof recordingCapability>>('recording') ?? null,
|
|
585
811
|
remoteCapProxy,
|
|
586
812
|
),
|
|
587
|
-
|
|
588
|
-
(_ctx) => reg
|
|
813
|
+
scriptRunner: createCapRouter_scriptRunner(
|
|
814
|
+
(_ctx) => requireDeviceScoped(reg, 'script-runner') as InferProvider<typeof scriptRunnerCapability> | null,
|
|
589
815
|
remoteCapProxy,
|
|
590
816
|
),
|
|
591
817
|
settingsStore: createCapRouter_settingsStore(
|
|
592
818
|
(_ctx) => reg?.getSingleton<InferProvider<typeof settingsStoreCapability>>('settings-store') ?? null,
|
|
593
819
|
remoteCapProxy,
|
|
594
820
|
),
|
|
821
|
+
smoke: createCapRouter_smoke(
|
|
822
|
+
(_ctx) => requireDeviceScoped(reg, 'smoke') as InferProvider<typeof smokeCapability> | null,
|
|
823
|
+
remoteCapProxy,
|
|
824
|
+
),
|
|
595
825
|
smtpProvider: createCapRouter_smtpProvider(
|
|
596
826
|
(_ctx, addonId) => {
|
|
597
827
|
if (!reg) return null
|
|
@@ -604,7 +834,7 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
604
834
|
remoteCapProxy,
|
|
605
835
|
),
|
|
606
836
|
snapshot: createCapRouter_snapshot(
|
|
607
|
-
(_ctx) => reg
|
|
837
|
+
(_ctx) => requireDeviceScoped(reg, 'snapshot') as InferProvider<typeof snapshotCapability> | null,
|
|
608
838
|
remoteCapProxy,
|
|
609
839
|
),
|
|
610
840
|
snapshotProvider: createCapRouter_snapshotProvider(
|
|
@@ -626,6 +856,17 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
626
856
|
(_ctx) => reg?.getSingleton<InferProvider<typeof storageCapability>>('storage') ?? null,
|
|
627
857
|
remoteCapProxy,
|
|
628
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
|
+
),
|
|
629
870
|
storageProvider: createCapRouter_storageProvider(
|
|
630
871
|
(_ctx, addonId) => {
|
|
631
872
|
if (!reg) return null
|
|
@@ -663,6 +904,14 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
663
904
|
(_ctx) => reg?.getSingleton<InferProvider<typeof systemCapability>>('system') ?? null,
|
|
664
905
|
remoteCapProxy,
|
|
665
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
|
+
),
|
|
666
915
|
toast: createCapRouter_toast(
|
|
667
916
|
(_ctx) => reg?.getSingleton<InferProvider<typeof toastCapability>>('toast') ?? null,
|
|
668
917
|
remoteCapProxy,
|
|
@@ -684,6 +933,10 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
684
933
|
},
|
|
685
934
|
remoteCapProxy,
|
|
686
935
|
),
|
|
936
|
+
update: createCapRouter_update(
|
|
937
|
+
(_ctx) => requireDeviceScoped(reg, 'update') as InferProvider<typeof updateCapability> | null,
|
|
938
|
+
remoteCapProxy,
|
|
939
|
+
),
|
|
687
940
|
userManagement: createCapRouter_userManagement(
|
|
688
941
|
(_ctx) => reg?.getSingleton<InferProvider<typeof userManagementCapability>>('user-management') ?? null,
|
|
689
942
|
remoteCapProxy,
|
|
@@ -705,6 +958,26 @@ export function mountAllCaps(services: MountAllCapsServices) {
|
|
|
705
958
|
},
|
|
706
959
|
remoteCapProxy,
|
|
707
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
|
+
),
|
|
708
981
|
webrtcSession: createCapRouter_webrtcSession(
|
|
709
982
|
(_ctx) => reg?.getSingleton<InferProvider<typeof webrtcSessionCapability>>('webrtc-session') ?? null,
|
|
710
983
|
remoteCapProxy,
|