12 Commits
Author SHA1 Message Date
Zaid Humaimidi 6f3ce6f7c8 refactor: replace array-based expressions with typed class hierarchy
Replace the old Lisp-like array expression representation
(["AND", ["PARAM", ...], ...]) with a class hierarchy rooted in
an abstract Expression class (Literal, Parameter, Binary, Unary,
FunctionCall, Conditional). This gives compile-time type safety
to expression construction, evaluation, and pattern matching.

Key changes:
- New lib/common/expression.ts defines the class hierarchy with
  map/evaluate/toString methods
- Rewrite parser as hand-rolled recursive descent, removing the
  parsimmon dependency
- Extend Path with a colon separator to unify parameter identity
  and attributes into a single address space (e.g.
  "Device.WiFi.SSID.1.Name:writable"). The colon field tracks
  how many trailing segments are attribute qualifiers. PathSet
  rewritten with separate param/attr segment indexes
- Flatten device attribute representation in the UI to
  colon-delimited keys mirroring the new path syntax
2026-03-12 14:58:20 -07:00
Zaid Humaimidi 0dee9a5f00 Remove license headers and update imports 2023-12-18 19:13:59 -08:00
Zaid Humaimidi 0c9c027a77 Update linting 2023-12-16 19:08:13 -08:00
Zaid Abdulla ec770b4e1b Fix redundant SPV triggered for unknown types
Fix issue where declarations against parameters with non-standard value
type trigger an SPV call when the value being declared is a boolean or
a number.
2021-09-16 13:27:37 -07:00
Zaid Abdulla c3c7ab72b2 Utilize ?. operator and set TypeScript target 2021-09-16 13:27:37 -07:00
Zaid Abdulla bf9517c652 Implement support for Get/SetParameterAttributes 2020-08-17 19:21:13 -07:00
Zaid Abdulla ac980116bd Update ESLint and Prettier 2020-07-27 20:30:13 -07:00
Zaid Abdulla 4aa525754f Allow setting params having non-standard type 2019-07-27 20:27:41 -07:00
Zaid Abdulla 3f3fbd81d0 Fix regression in device.unpack 2019-07-27 01:03:19 -07:00
Zaid Abdulla 9d95e57d89 Update copyright notice headers 2019-06-05 00:17:36 -07:00
Zaid Abdulla f878d828eb Refactor code to use Path class 2019-02-26 01:38:23 -08:00
Zaid Abdulla 5d3c81cb23 TypeScript! 2019-02-20 03:36:52 -08:00