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 Humaimidi
4cb143cc0a
Encode event codes containing illegal chars
2023-11-13 15:18:24 -08:00
Zaid Humaimidi
c3954c277f
Refactor db and local-cache code
...
Separated cwmp and ui code into distinct files to enhance clarity and
maintainability with varied internal data representations.
2023-09-29 14:55:44 -07:00
Zaid Humaimidi
35b193f058
Fix bug in handling of 9005 faults
2023-08-28 18:21:19 -07:00
Zaid Abdulla
25ea0c8b64
Update dependencies
2022-08-22 09:44:25 -07:00
Zaid Abdulla
eb5caa6b5a
Skip root GPN workaround
2022-08-01 11:32:05 -07:00
Zaid Abdulla
3c55306e22
Fix false warning message
2021-11-15 15:42:33 -08:00
Zaid Abdulla
9706026ea5
Update Prettier
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
088e25cbb0
New config option cwmp.downloadSuccessOnTimeout
...
Workaround for CPEs that neglect to send TransferComplete message after
a successful download.
2021-08-11 12:27:51 -07:00
Zaid Abdulla
1d02893692
Fix repeating downloads if timestamp > now
2021-08-05 01:15:27 -07:00
Zaid Abdulla
cfe279b511
Tolerate responses with invalid/missing params
2021-07-24 23:18:51 -07:00
Zaid Abdulla
8b27794cc7
Fix crash when passing invalid attrs to declare
2021-07-13 17:00:59 -07:00
Zaid Abdulla
12197f3b2a
Fault when GPVR doesn't contain expected params
2021-02-05 17:15:21 -08:00
Zaid Abdulla
bdad2f9a32
Implicit fetch of 'writable' attribute
...
The writable attribute may not already be present when attempting to
modify parameters included in the inform message. For other parameters
the writable attrbiute is guarenteed to have already been fetched
during discovery.
2021-02-04 22:54:30 -08:00
Zaid Abdulla
dfab724515
Add new config cwmp.skipWritableCheck
...
Some CPEs incorrectly report writable parameters as non-writable. This
config option lets us bypass the check and attempt to modify the
parameter even if it reported as read-only.
2020-10-20 13:35:34 -07:00
Zaid Abdulla
0b60406b43
Add lint rule for unhandled promise rejections
2020-09-08 17:33:48 -07:00
Zaid Abdulla
2411db6b36
Better handling of invalid CPE messages
2020-08-28 00:49:05 -07:00
Zaid Abdulla
c9eb5d1327
Types refactoring
2020-08-25 01:02:11 -07:00
Zaid Abdulla
19c5bb03ea
Fix exception when passing null as PARAM arg
2020-08-19 20:04:36 -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
c2c24f5c24
Respect SPV related config in alias declarations
2020-06-30 11:09:58 -07:00
Zaid Abdulla
603f5c79ac
Support Forwarded header
2019-12-29 14:50:08 -08:00
Zaid Abdulla
e80109de93
Process inform message before authentication
...
This allows the authentication expression to read events and other
parameters.
2019-12-24 10:47:37 -08:00
Zaid Abdulla
add4c84132
Expose all device params to config expressions
2019-11-27 17:00:03 -08:00
Zaid Abdulla
f786be7493
Fix deferred declarations in vparams
2019-11-24 12:59:12 -08:00
Zaid Abdulla
612563f171
Fix regression in timeoutOperations
2019-11-19 13:13:25 -08:00
Zaid Abdulla
df5e4cf454
Check against invalid args in default provisions
2019-10-28 18:07:33 -07:00
Zaid Abdulla
f57bcae70c
Fix regression in GPN heuristic
2019-09-12 11:16:42 -07:00
Zaid Abdulla
b5efe6c578
Fix session.serialize bug
2019-09-05 17:16:21 -07:00
Zaid Abdulla
58b3e13ecd
Update dependencies
2019-07-29 23:59: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
2b9033db19
Fix download RPC regression
2019-06-05 00:17:36 -07:00
Zaid Abdulla
c5553d95c5
Get rid of partial param loading mechanism
...
Simplify device loading for better performance in most case, and the
potential for further optimizations to follow.
2019-06-05 00:17:36 -07:00
Zaid Abdulla
c3501debd5
Async/await let's go!
2019-06-05 00:17:36 -07:00
Shweelan Samson
ae3779c484
Add support for CPE authentication
2019-06-05 00:17:36 -07:00
Zaid Abdulla
c6db1edc5f
Merge branch 'v1.2'
2019-04-04 13:02:01 -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