{"id":48450,"library":"mavsdk-ts","title":"MAVSDK TypeScript Angular Client","description":"Angular client services for MAVSDK gRPC-Web, version 2.0.0 (stable). This library provides Angular-injectable services to interact with MAVSDK over gRPC-Web, enabling drone telemetry and control in Angular 21+ applications. It is tied to the mavsdk-types schema and requires grpc-web and google-protobuf runtime dependencies. Differentiator: native Angular service pattern (Observables) vs lower-level JS SDKs. Release cadence: major versions align with Angular major releases. Note that v2.0.0 drops Angular 15/16 support.","status":"active","version":"2.0.0","language":"javascript","source_language":"en","source_url":null,"tags":["javascript","typescript"],"install":[{"cmd":"npm install mavsdk-ts","lang":"bash","label":"npm"},{"cmd":"yarn add mavsdk-ts","lang":"bash","label":"yarn"},{"cmd":"pnpm add mavsdk-ts","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Provides type definitions for MAVSDK messages (peer dep)","package":"mavsdk-types","optional":false},{"reason":"Required for gRPC-Web communication","package":"grpc-web","optional":false},{"reason":"Required for protobuf serialization","package":"google-protobuf","optional":false},{"reason":"Angular common module peer dependency","package":"@angular/common","optional":false},{"reason":"Angular core module peer dependency","package":"@angular/core","optional":false}],"imports":[{"note":"ESM-only package; CommonJS require() not supported.","wrong":"const { ClientService } = require('mavsdk-ts')","symbol":"ClientService","correct":"import { ClientService } from 'mavsdk-ts'"},{"note":"All services are exported from the main package, no deep imports.","wrong":"import { AttitudeEulerService } from 'mavsdk-ts/attitude'","symbol":"AttitudeEulerService","correct":"import { AttitudeEulerService } from 'mavsdk-ts'"},{"note":"Use top-level import; avoid barrel import paths.","wrong":"import { TelemetryService } from 'mavsdk-ts/public-api'","symbol":"TelemetryService","correct":"import { TelemetryService } from 'mavsdk-ts'"}],"quickstart":{"code":"import { ClientService } from 'mavsdk-ts';\n\nconst client = new ClientService('http://localhost:8080');\nconst telemetry$ = client.telemetry();\ntelemetry$.subscribe((message) => {\n  console.log('Telemetry:', message);\n});","lang":"typescript","description":"Creates a ClientService connected to a local gRPC-Web server and subscribes to telemetry stream."},"warnings":[{"fix":"Upgrade Angular project to v21 or stay on mavsdk-ts v1.x.","message":"Angular 21 required (dropped Angular 15/16 support).","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"npm install mavsdk-ts@latest","message":"v1.x is no longer maintained; upgrade to v2.x.","severity":"deprecated","affected_versions":"<2.0.0"},{"fix":"Use Angular's providedIn: 'root' or manage subscriptions with takeUntil.","message":"Direct instantiation of services (e.g., new AttitudeEulerService(...)) bypasses Angular's DI and may cause memory leaks if not unsubscribed.","severity":"gotcha","affected_versions":">=0.0.0"}],"env_vars":null,"search_vec":"'15/16':86 '2.0.0':14 '21':38 'align':76 'angular':3,5,20,37,62,78,85 'angular-inject':19 'applic':39 'cadenc':73 'client':4,6 'control':35 'depend':59 'differenti':60 'drone':32 'drop':84 'enabl':31 'googl':56 'google-protobuf':55 'grpc':11,29,52 'grpc-web':10,28,51 'inject':21 'interact':24 'javascript':88 'js':70 'level':69 'librari':17 'lower':68 'lower-level':67 'major':74,79 'mavsdk':1,9,26,46 'mavsdk-typ':45 'nativ':61 'note':81 'observ':65 'pattern':64 'protobuf':57 'provid':18 'releas':72,80 'requir':50 'runtim':58 'schema':48 'sdks':71 'servic':7,22,63 'stabl':15 'support':87 'telemetri':33 'tie':42 'type':47 'typescript':2,89 'v2.0.0':83 'version':13,75 'vs':66 'web':12,30,53","created_at":"2026-06-07T16:56:43.026682+00:00","updated_at":"2026-06-07T16:56:43.026682+00:00","problems":[{"fix":"Run: npm install mavsdk-ts mavsdk-types grpc-web google-protobuf","cause":"Missing required dependencies or incorrect import path.","error":"Cannot find module 'mavsdk-ts' or its corresponding type declarations."},{"fix":"Import TelemetryService from 'mavsdk-ts' and call its stream() method.","cause":"API changed between v1 and v2 (does not apply to current v2).","error":"Property 'telemetry' does not exist on type 'ClientService'. Did you mean 'telemetryStream'?"},{"fix":"npm install --dev @types/google-protobuf","cause":"Missing @types/google-protobuf declaration files.","error":"ERROR in node_modules/mavsdk-ts/lib/mavsdk.d.ts:5:41 - error TS2307: Cannot find module 'google-protobuf'."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":null,"github":null,"docs":null,"changelog":null,"pypi":null,"npm":"mavsdk-ts","openapi_spec":null,"status_page":null,"smithery":null,"categories":["devops"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-07","next_check":"2026-09-05","install_tag":null}}