Refactor filename naming system and apply convention-based renames

Standardize settings file naming and relocate documentation files
Fix code quality violations from rsx:check
Reorganize user_management directory into logical subdirectories
Move Quill Bundle to core and align with Tom Select pattern
Simplify Site Settings page to focus on core site information
Complete Phase 5: Multi-tenant authentication with login flow and site selection
Add route query parameter rule and synchronize filename validation logic
Fix critical bug in UpdateNpmCommand causing missing JavaScript stubs
Implement filename convention rule and resolve VS Code auto-rename conflict
Implement js-sanitizer RPC server to eliminate 900+ Node.js process spawns
Implement RPC server architecture for JavaScript parsing
WIP: Add RPC server infrastructure for JS parsing (partial implementation)
Update jqhtml terminology from destroy to stop, fix datagrid DOM preservation
Add JQHTML-CLASS-01 rule and fix redundant class names
Improve code quality rules and resolve violations
Remove legacy fatal error format in favor of unified 'fatal' error type
Filter internal keys from window.rsxapp output
Update button styling and comprehensive form/modal documentation
Add conditional fly-in animation for modals
Fix non-deterministic bundle compilation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
root
2025-11-13 19:10:02 +00:00
parent fc494c1e08
commit 77b4d10af8
28155 changed files with 2191860 additions and 12967 deletions

5
node_modules/terser/CHANGELOG.md generated vendored Executable file → Normal file
View File

@@ -1,5 +1,10 @@
# Changelog
## v5.44.1
- fix bitwise optimization changing the result of `&&`, `||`
- switches: make sure `var` is extracted from a deleted default case
## v5.44.0
- Support `using` and `await using` declarations (#1635)

0
node_modules/terser/LICENSE generated vendored Executable file → Normal file
View File

0
node_modules/terser/PATRONS.md generated vendored Executable file → Normal file
View File

0
node_modules/terser/README.md generated vendored Executable file → Normal file
View File

0
node_modules/terser/bin/package.json generated vendored Executable file → Normal file
View File

0
node_modules/terser/dist/.gitkeep generated vendored Executable file → Normal file
View File

46
node_modules/terser/dist/bundle.min.js generated vendored Executable file → Normal file
View File

@@ -17186,8 +17186,8 @@ function remove_initializers(var_statement) {
return decls.length ? make_node(AST_Var, var_statement, { definitions: decls }) : null;
}
/** Called on code which we know is unreachable, to keep elements that affect outside of it. */
function trim_unreachable_code(compressor, stat, target) {
/** Called on code which won't be executed but has an effect outside of itself: `var`, `function` statements, `export`, `import`. */
function extract_from_unreachable_code(compressor, stat, target) {
walk(stat, node => {
if (node instanceof AST_Var) {
const no_initializers = remove_initializers(node);
@@ -17212,7 +17212,8 @@ function trim_unreachable_code(compressor, stat, target) {
target.push(node);
return true;
}
if (node instanceof AST_Scope) {
if (node instanceof AST_Scope || node instanceof AST_Class) {
// Do not go into nested scopes
return true;
}
});
@@ -18236,7 +18237,7 @@ function tighten_body(statements, compressor) {
CHANGED = n != len;
if (has_quit)
has_quit.forEach(function (stat) {
trim_unreachable_code(compressor, stat, statements);
extract_from_unreachable_code(compressor, stat, statements);
});
}
@@ -19417,6 +19418,11 @@ class Compressor extends TreeWalker {
}
}
/** True if compressor.self()'s result will be turned into a 32-bit integer.
* ex:
* ~{expr}
* (1, 2, {expr}) | 0
**/
in_32_bit_context(other_operand_must_be_number) {
if (!this.option("evaluate")) return false;
var self = this.self();
@@ -19434,9 +19440,10 @@ class Compressor extends TreeWalker {
if (
p instanceof AST_Binary
&& (
p.operator == "&&"
|| p.operator == "||"
|| p.operator == "??"
// Don't talk about p.left. Can change branch taken
p.operator == "&&" && p.right === self
|| p.operator == "||" && p.right === self
|| p.operator == "??" && p.right === self
)
|| p instanceof AST_Conditional && p.condition !== self
|| p.tail_node() === self
@@ -20039,7 +20046,7 @@ function if_break_in_loop(self, compressor) {
body: self.condition
}));
}
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
return make_node(AST_BlockStatement, self, {
body: body
});
@@ -20110,7 +20117,7 @@ def_optimize(AST_For, function(self, compressor) {
if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);
if (!cond) {
var body = [];
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
if (self.init instanceof AST_Statement) {
body.push(self.init);
} else if (self.init) {
@@ -20146,7 +20153,7 @@ def_optimize(AST_If, function(self, compressor) {
if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);
if (!cond) {
var body = [];
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
body.push(make_node(AST_SimpleStatement, self.condition, {
body: self.condition
}));
@@ -20159,7 +20166,7 @@ def_optimize(AST_If, function(self, compressor) {
}));
body.push(self.body);
if (self.alternative) {
trim_unreachable_code(compressor, self.alternative, body);
extract_from_unreachable_code(compressor, self.alternative, body);
}
return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);
}
@@ -20287,6 +20294,9 @@ def_optimize(AST_Switch, function(self, compressor) {
var body = [];
var default_branch;
var exact_match;
// - compress self.body into `body`
// - find and deduplicate default branch
// - find the exact match (`case 1234` inside `switch(1234)`)
for (var i = 0, len = self.body.length; i < len && !exact_match; i++) {
branch = self.body[i];
if (branch instanceof AST_Default) {
@@ -20316,6 +20326,7 @@ def_optimize(AST_Switch, function(self, compressor) {
}
body.push(branch);
}
// i < len if we found an exact_match. eliminate the rest
while (i < len) eliminate_branch(self.body[i++], body[body.length - 1]);
self.body = body;
@@ -20387,7 +20398,7 @@ def_optimize(AST_Switch, function(self, compressor) {
let i = body.length - 1;
for (; i >= 0; i--) {
let bbody = body[i].body;
if (is_break(bbody[bbody.length - 1], compressor)) bbody.pop();
while (is_break(bbody[bbody.length - 1], compressor)) bbody.pop();
if (!is_inert_body(body[i])) break;
}
// i now points to the index of a branch that contains a body. By incrementing, it's
@@ -20403,9 +20414,9 @@ def_optimize(AST_Switch, function(self, compressor) {
let branch = body[j];
if (branch === default_or_exact) {
default_or_exact = null;
body.pop();
eliminate_branch(body.pop());
} else if (!branch.expression.has_side_effects(compressor)) {
body.pop();
eliminate_branch(body.pop());
} else {
break;
}
@@ -20519,15 +20530,16 @@ def_optimize(AST_Switch, function(self, compressor) {
// and there's a side-effect somewhere. Just let the below paths take care of it.
}
// Reintegrate `decl` (var statements)
if (body.length > 0) {
body[0].body = decl.concat(body[0].body);
}
if (body.length == 0) {
return make_node(AST_BlockStatement, self, {
body: decl.concat(statement(self.expression))
}).optimize(compressor);
}
if (body.length == 1 && !has_nested_break(self)) {
// This is the last case body, and we've already pruned any breaks, so it's
// safe to hoist.
@@ -20607,7 +20619,7 @@ def_optimize(AST_Switch, function(self, compressor) {
if (prev && !aborts(prev)) {
prev.body = prev.body.concat(branch.body);
} else {
trim_unreachable_code(compressor, branch, decl);
extract_from_unreachable_code(compressor, branch, decl);
}
}
function branches_equivalent(branch, prev, insertBreak) {
@@ -20661,7 +20673,7 @@ def_optimize(AST_Try, function(self, compressor) {
if (compressor.option("dead_code") && self.body.body.every(is_empty)) {
var body = [];
if (self.bcatch) {
trim_unreachable_code(compressor, self.bcatch, body);
extract_from_unreachable_code(compressor, self.bcatch, body);
}
if (self.bfinally) body.push(...self.bfinally.body);
return make_node(AST_BlockStatement, self, {

0
node_modules/terser/dist/package.json generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/ast.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/cli.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/common.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/compressor-flags.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/drop-side-effect-free.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/drop-unused.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/evaluate.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/global-defs.js generated vendored Executable file → Normal file
View File

39
node_modules/terser/lib/compress/index.js generated vendored Executable file → Normal file
View File

@@ -211,7 +211,7 @@ import {
as_statement_array,
is_func_expr,
} from "./common.js";
import { tighten_body, trim_unreachable_code } from "./tighten-body.js";
import { tighten_body, extract_from_unreachable_code } from "./tighten-body.js";
import { inline_into_symbolref, inline_into_call } from "./inline.js";
import "./global-defs.js";
@@ -378,6 +378,11 @@ class Compressor extends TreeWalker {
}
}
/** True if compressor.self()'s result will be turned into a 32-bit integer.
* ex:
* ~{expr}
* (1, 2, {expr}) | 0
**/
in_32_bit_context(other_operand_must_be_number) {
if (!this.option("evaluate")) return false;
var self = this.self();
@@ -395,9 +400,10 @@ class Compressor extends TreeWalker {
if (
p instanceof AST_Binary
&& (
p.operator == "&&"
|| p.operator == "||"
|| p.operator == "??"
// Don't talk about p.left. Can change branch taken
p.operator == "&&" && p.right === self
|| p.operator == "||" && p.right === self
|| p.operator == "??" && p.right === self
)
|| p instanceof AST_Conditional && p.condition !== self
|| p.tail_node() === self
@@ -1000,7 +1006,7 @@ function if_break_in_loop(self, compressor) {
body: self.condition
}));
}
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
return make_node(AST_BlockStatement, self, {
body: body
});
@@ -1071,7 +1077,7 @@ def_optimize(AST_For, function(self, compressor) {
if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);
if (!cond) {
var body = [];
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
if (self.init instanceof AST_Statement) {
body.push(self.init);
} else if (self.init) {
@@ -1107,7 +1113,7 @@ def_optimize(AST_If, function(self, compressor) {
if (cond instanceof AST_Node) cond = self.condition.tail_node().evaluate(compressor);
if (!cond) {
var body = [];
trim_unreachable_code(compressor, self.body, body);
extract_from_unreachable_code(compressor, self.body, body);
body.push(make_node(AST_SimpleStatement, self.condition, {
body: self.condition
}));
@@ -1120,7 +1126,7 @@ def_optimize(AST_If, function(self, compressor) {
}));
body.push(self.body);
if (self.alternative) {
trim_unreachable_code(compressor, self.alternative, body);
extract_from_unreachable_code(compressor, self.alternative, body);
}
return make_node(AST_BlockStatement, self, { body: body }).optimize(compressor);
}
@@ -1248,6 +1254,9 @@ def_optimize(AST_Switch, function(self, compressor) {
var body = [];
var default_branch;
var exact_match;
// - compress self.body into `body`
// - find and deduplicate default branch
// - find the exact match (`case 1234` inside `switch(1234)`)
for (var i = 0, len = self.body.length; i < len && !exact_match; i++) {
branch = self.body[i];
if (branch instanceof AST_Default) {
@@ -1277,6 +1286,7 @@ def_optimize(AST_Switch, function(self, compressor) {
}
body.push(branch);
}
// i < len if we found an exact_match. eliminate the rest
while (i < len) eliminate_branch(self.body[i++], body[body.length - 1]);
self.body = body;
@@ -1348,7 +1358,7 @@ def_optimize(AST_Switch, function(self, compressor) {
let i = body.length - 1;
for (; i >= 0; i--) {
let bbody = body[i].body;
if (is_break(bbody[bbody.length - 1], compressor)) bbody.pop();
while (is_break(bbody[bbody.length - 1], compressor)) bbody.pop();
if (!is_inert_body(body[i])) break;
}
// i now points to the index of a branch that contains a body. By incrementing, it's
@@ -1364,9 +1374,9 @@ def_optimize(AST_Switch, function(self, compressor) {
let branch = body[j];
if (branch === default_or_exact) {
default_or_exact = null;
body.pop();
eliminate_branch(body.pop());
} else if (!branch.expression.has_side_effects(compressor)) {
body.pop();
eliminate_branch(body.pop());
} else {
break;
}
@@ -1480,15 +1490,16 @@ def_optimize(AST_Switch, function(self, compressor) {
// and there's a side-effect somewhere. Just let the below paths take care of it.
}
// Reintegrate `decl` (var statements)
if (body.length > 0) {
body[0].body = decl.concat(body[0].body);
}
if (body.length == 0) {
return make_node(AST_BlockStatement, self, {
body: decl.concat(statement(self.expression))
}).optimize(compressor);
}
if (body.length == 1 && !has_nested_break(self)) {
// This is the last case body, and we've already pruned any breaks, so it's
// safe to hoist.
@@ -1568,7 +1579,7 @@ def_optimize(AST_Switch, function(self, compressor) {
if (prev && !aborts(prev)) {
prev.body = prev.body.concat(branch.body);
} else {
trim_unreachable_code(compressor, branch, decl);
extract_from_unreachable_code(compressor, branch, decl);
}
}
function branches_equivalent(branch, prev, insertBreak) {
@@ -1622,7 +1633,7 @@ def_optimize(AST_Try, function(self, compressor) {
if (compressor.option("dead_code") && self.body.body.every(is_empty)) {
var body = [];
if (self.bcatch) {
trim_unreachable_code(compressor, self.bcatch, body);
extract_from_unreachable_code(compressor, self.bcatch, body);
}
if (self.bfinally) body.push(...self.bfinally.body);
return make_node(AST_BlockStatement, self, {

0
node_modules/terser/lib/compress/inference.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/inline.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/native-objects.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/compress/reduce-vars.js generated vendored Executable file → Normal file
View File

9
node_modules/terser/lib/compress/tighten-body.js generated vendored Executable file → Normal file
View File

@@ -191,8 +191,8 @@ function remove_initializers(var_statement) {
return decls.length ? make_node(AST_Var, var_statement, { definitions: decls }) : null;
}
/** Called on code which we know is unreachable, to keep elements that affect outside of it. */
export function trim_unreachable_code(compressor, stat, target) {
/** Called on code which won't be executed but has an effect outside of itself: `var`, `function` statements, `export`, `import`. */
export function extract_from_unreachable_code(compressor, stat, target) {
walk(stat, node => {
if (node instanceof AST_Var) {
const no_initializers = remove_initializers(node);
@@ -217,7 +217,8 @@ export function trim_unreachable_code(compressor, stat, target) {
target.push(node);
return true;
}
if (node instanceof AST_Scope) {
if (node instanceof AST_Scope || node instanceof AST_Class) {
// Do not go into nested scopes
return true;
}
});
@@ -1241,7 +1242,7 @@ export function tighten_body(statements, compressor) {
CHANGED = n != len;
if (has_quit)
has_quit.forEach(function (stat) {
trim_unreachable_code(compressor, stat, statements);
extract_from_unreachable_code(compressor, stat, statements);
});
}

0
node_modules/terser/lib/equivalent-to.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/minify.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/mozilla-ast.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/output.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/parse.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/propmangle.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/scope.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/size.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/sourcemap.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/transform.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/utils/first_in_statement.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/lib/utils/index.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/main.js generated vendored Executable file → Normal file
View File

2
node_modules/terser/package.json generated vendored Executable file → Normal file
View File

@@ -4,7 +4,7 @@
"homepage": "https://terser.org",
"author": "Mihai Bazon <mihai.bazon@gmail.com> (http://lisperator.net/)",
"license": "BSD-2-Clause",
"version": "5.44.0",
"version": "5.44.1",
"engines": {
"node": ">=10"
},

0
node_modules/terser/tools/domprops.js generated vendored Executable file → Normal file
View File

0
node_modules/terser/tools/exit.cjs generated vendored Executable file → Normal file
View File

0
node_modules/terser/tools/props.html generated vendored Executable file → Normal file
View File

0
node_modules/terser/tools/terser.d.ts generated vendored Executable file → Normal file
View File