src.nth.io/

summaryrefslogtreecommitdiff
path: root/scrypted
diff options
context:
space:
mode:
authorLuke Hoersten <[email protected]>2026-06-14 19:19:06 -0500
committerLuke Hoersten <[email protected]>2026-06-14 19:19:06 -0500
commit56cbea1c5dcb068057ea2d32245eaed8a7100d39 (patch)
tree10ddc7064f22903bb8b21e6ea9b921f456f8382e /scrypted
parent30459a0d37d6ec390b36c8309fac7b12cb50de8c (diff)
scrypted: revert to declare-const for SDK names — diagnostic confirmed they're injected
The probe in scrypted/diagnostic.ts confirmed @scrypted/core 0.3.147 injects every name we need (ScryptedDeviceBase, ScryptedDeviceType, ScryptedInterface, systemManager, deviceManager, mediaManager, endpointManager, log, device, require, exports) as top-level scope variables. Notably sdk.ScryptedDeviceBase IS undefined — the classes are separate injections, not properties on the sdk object. So the correct pattern is `declare const X: any` for each (declarations erase at compile time → free identifiers at runtime → bound to the scryptedEval-injected values), not `const X = sdk.X` (which was undefined and tripped "Class extends value undefined").
Diffstat (limited to 'scrypted')
-rw-r--r--scrypted/scrypted-viewport.ts23
1 files changed, 10 insertions, 13 deletions
diff --git a/scrypted/scrypted-viewport.ts b/scrypted/scrypted-viewport.ts
index 0ce81a5..37879af 100644
--- a/scrypted/scrypted-viewport.ts
+++ b/scrypted/scrypted-viewport.ts
@@ -42,19 +42,16 @@
// declarations erase at compile time and the values come from the
// runtime scope.
declare const sdk: any;
-declare const require: any;
-
-// Everything the script touches at runtime comes off the `sdk` global —
-// older @scrypted/core versions don't inject `ScryptedDeviceBase` etc
-// as separate identifiers, only `sdk` itself. Accessing `sdk.X` is the
-// stable interface.
-const ScryptedDeviceBase = sdk.ScryptedDeviceBase;
-const ScryptedDeviceType = sdk.ScryptedDeviceType;
-const ScryptedInterface = sdk.ScryptedInterface;
-const systemManager = sdk.systemManager;
-const endpointManager = sdk.endpointManager;
-const mediaManager = sdk.mediaManager;
-const deviceManager = sdk.deviceManager;
+declare const ScryptedDeviceBase: any;
+declare const ScryptedDeviceType: any;
+declare const ScryptedInterface: any;
+declare const systemManager: any;
+declare const endpointManager: any;
+declare const mediaManager: any;
+declare const deviceManager: any;
+declare const log: any;
+declare const device: any;
+declare const require: any;
const dns = require("dns").promises;