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
4a191afdec
feat(ui): redesign UI with Tailwind CSS, CodeMirror 6, and new layout
...
- Replace all hand-written CSS with Tailwind utility classes
- Upgrade CodeMirror 5 to CodeMirror 6 (scoped @codemirror/* packages)
- Redesign layout with responsive sidebar navigation using JSX/Mithril
- Flatten admin routes (e.g. /admin/presets -> /presets)
- Add "remember me" login option with 2-week persistent cookie
- Add delete confirmation dialogs across admin pages
- Upgrade esbuild from 0.21 to 0.27 and update browser targets
- Add Inter and Roboto Mono variable fonts with subset script
2026-03-12 14:55:10 -07:00
Zaid Humaimidi
4be39ed742
Replace deprecated koa middleware
2024-10-04 11:28:04 -07:00
Zaid Humaimidi
8ddb692370
Prevent UI crash when malformed URL is sent
2024-10-04 11:05:07 -07:00
Zaid Humaimidi
227a005400
Fix exception when URL has two trailing slashes
2024-03-07 13:27:06 -08: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
4f2dfb4f48
Drop Rollup in favor of esbuild
2023-12-12 22:27:58 -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
7b8a49a7ba
Refactor request listeners to use async functions
2023-08-09 19:51:40 -07:00
Zaid Abdulla
c06538f9cc
Fix browser quirks mode warning
2022-04-08 13:14:27 -07:00
Zaid Abdulla
94756e463f
Pass BROTLI_OPERATION_FLUSH to koa-compress
2021-11-29 23:11:20 -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
6ce91df127
Display progress bar when uploading file
2021-07-27 14:18:35 -07:00
Zaid Abdulla
44748e5769
Remove webpack
...
We no longer need webpack to polyfill dynamic imports because the vast
majority of browser now support ES modules and dynamic imports.
2021-01-25 13:16:56 -08:00
Zaid Abdulla
03c3c456eb
Specify compression level for Brotli compression
...
Otherwise the default max quality will be used which is extremely slow.
2021-01-13 14:21:07 -08:00
Zaid Abdulla
a43bba2405
Fix deprecations
2020-10-25 23:34:05 -07:00
Zaid Abdulla
9286bd6aa0
Fix unhandled promise rejections
2020-09-17 17:00:41 -07:00
Zaid Abdulla
04b19eb05f
Update Koa and related dependencies
2020-09-01 02:43:06 -07:00
Zaid Abdulla
ac980116bd
Update ESLint and Prettier
2020-07-27 20:30:13 -07:00
Zaid Abdulla
37d8222479
Memoize authorizer object
2019-12-03 14:11:07 -08:00
Zaid Abdulla
8533ee7f2e
UI authentication improvements
2019-10-24 17:43:24 -07:00
Shweelan Samson
2d853607e3
Show warning if JavaScript is disabled
2019-07-24 01:23:30 -07:00
Shweelan Samson
e35254cb6f
Server availability and version notification
2019-07-17 15:20:52 -07:00
Zaid Abdulla
6cb0d0449b
Database initialization wizard
2019-07-11 17:47:36 -07:00
Shweelan Samson
fada96bf47
Fix users' roles bug
...
Changed users roles did not take effect as long as the user is logged
in.
2019-07-05 14:38:27 -07:00
Zaid Abdulla
9d95e57d89
Update copyright notice headers
2019-06-05 00:17:36 -07:00
Zaid Abdulla
faa12537e4
Make config file optional
2019-06-05 00:17:36 -07:00
Zaid Abdulla
e7821f655b
Mitigate CSRF using samesite for session cookie
2019-06-05 00:17:36 -07:00
Shweelan Samson
83dba52e96
Show reload notification on config update
2019-06-05 00:17:36 -07:00
Shweelan Samson
d5b194b9e8
Salt and hash passwords
2019-03-27 02:17:48 -07:00
Shweelan Samson
3b3369a236
Add Permissions and Users pages
2019-03-04 16:12:29 -08:00
Zaid Abdulla
5d3c81cb23
TypeScript!
2019-02-20 03:36:52 -08:00