Fix code quality violations and enhance ROUTE-EXISTS-01 rule
Implement JQHTML function cache ID system and fix bundle compilation Implement underscore prefix for system tables Fix JS syntax linter to support decorators and grant exception to Task system SPA: Update planning docs and wishlists with remaining features SPA: Document Navigation API abandonment and future enhancements Implement SPA browser integration with History API (Phase 1) Convert contacts view page to SPA action Convert clients pages to SPA actions and document conversion procedure SPA: Merge GET parameters and update documentation Implement SPA route URL generation in JavaScript and PHP Implement SPA bootstrap controller architecture Add SPA routing manual page (rsx:man spa) Add SPA routing documentation to CLAUDE.md Phase 4 Complete: Client-side SPA routing implementation Update get_routes() consumers for unified route structure Complete SPA Phase 3: PHP-side route type detection and is_spa flag Restore unified routes structure and Manifest_Query class Refactor route indexing and add SPA infrastructure Phase 3 Complete: SPA route registration in manifest Implement SPA Phase 2: Extract router code and test decorators Rename Jqhtml_Component to Component and complete SPA foundation setup 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
50
node_modules/rollup/dist/es/shared/node-entry.js
generated
vendored
50
node_modules/rollup/dist/es/shared/node-entry.js
generated
vendored
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
@license
|
||||
Rollup.js v4.53.2
|
||||
Mon, 10 Nov 2025 08:56:08 GMT - commit d8b0150971681d9efa4f173de5edd2c79a6e03d9
|
||||
Rollup.js v4.53.3
|
||||
Wed, 19 Nov 2025 06:31:27 GMT - commit 998b5950a6ea7cea1a7b994e8dab45472c3cbe7e
|
||||
|
||||
https://github.com/rollup/rollup
|
||||
|
||||
@@ -27,7 +27,7 @@ function _mergeNamespaces(n, m) {
|
||||
return Object.defineProperty(n, Symbol.toStringTag, { value: 'Module' });
|
||||
}
|
||||
|
||||
var version = "4.53.2";
|
||||
var version = "4.53.3";
|
||||
|
||||
// src/vlq.ts
|
||||
var comma = ",".charCodeAt(0);
|
||||
@@ -2584,6 +2584,7 @@ class ExternalModule {
|
||||
this.reexported = false;
|
||||
this.used = false;
|
||||
this.declarations = new Map();
|
||||
this.importersByExportedName = new Map();
|
||||
this.mostCommonSuggestion = 0;
|
||||
this.nameSuggestions = new Map();
|
||||
this.suggestedVariableName = makeLegal(id.split(/[/\\]/).pop());
|
||||
@@ -2620,8 +2621,11 @@ class ExternalModule {
|
||||
cacheInfoGetters() {
|
||||
cacheObjectGetters(this.info, ['dynamicImporters', 'importers']);
|
||||
}
|
||||
getVariableForExportName(name) {
|
||||
getVariableForExportName(name, { importChain }) {
|
||||
const declaration = this.declarations.get(name);
|
||||
for (const module of importChain) {
|
||||
getOrCreate(this.importersByExportedName, name, getNewSet).add(module);
|
||||
}
|
||||
if (declaration)
|
||||
return [declaration];
|
||||
const externalVariable = new ExternalVariable(this, name);
|
||||
@@ -2645,7 +2649,10 @@ class ExternalModule {
|
||||
return;
|
||||
const importersSet = new Set();
|
||||
for (const name of unused) {
|
||||
for (const importer of this.declarations.get(name).module.importers) {
|
||||
const importersOfName = this.importersByExportedName.get(name);
|
||||
for (const importer of this.importers) {
|
||||
if (!importersOfName?.has(importer))
|
||||
continue;
|
||||
importersSet.add(importer);
|
||||
}
|
||||
}
|
||||
@@ -5110,6 +5117,7 @@ class LocalVariable extends Variable {
|
||||
return true;
|
||||
if (path.length === 0)
|
||||
return false;
|
||||
// if (this.isReassigned || this.init.included) return true;
|
||||
if (this.isReassigned)
|
||||
return true;
|
||||
return (!context.assigned.trackEntityAtPathAndGetIfTracked(path, this) &&
|
||||
@@ -11626,7 +11634,8 @@ class AssignmentExpression extends NodeBase {
|
||||
this.left.hasEffectsWhenDestructuring?.(context, EMPTY_PATH, right));
|
||||
}
|
||||
hasEffectsOnInteractionAtPath(path, interaction, context) {
|
||||
return this.right.hasEffectsOnInteractionAtPath(path, interaction, context);
|
||||
return ((interaction.type === INTERACTION_ASSIGNED && this.left.included) ||
|
||||
this.right.hasEffectsOnInteractionAtPath(path, interaction, context));
|
||||
}
|
||||
include(context, includeChildrenRecursively) {
|
||||
const { deoptimized, isConstReassignment, left, right, operator } = this;
|
||||
@@ -16750,7 +16759,7 @@ const MISSING_EXPORT_SHIM_DESCRIPTION = {
|
||||
identifier: null,
|
||||
localName: MISSING_EXPORT_SHIM_VARIABLE
|
||||
};
|
||||
function getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = new Map()) {
|
||||
function getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = new Map(), importChain) {
|
||||
const searchedModules = searchedNamesAndModules.get(name);
|
||||
if (searchedModules) {
|
||||
if (searchedModules.has(target)) {
|
||||
@@ -16762,6 +16771,7 @@ function getVariableForExportNameRecursive(target, name, importerForSideEffects,
|
||||
searchedNamesAndModules.set(name, new Set([target]));
|
||||
}
|
||||
return target.getVariableForExportName(name, {
|
||||
importChain,
|
||||
importerForSideEffects,
|
||||
isExportAllSearch,
|
||||
searchedNamesAndModules
|
||||
@@ -17092,7 +17102,7 @@ class Module {
|
||||
}
|
||||
return this.syntheticNamespace;
|
||||
}
|
||||
getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, onlyExplicit, searchedNamesAndModules } = EMPTY_OBJECT) {
|
||||
getVariableForExportName(name, { importerForSideEffects, importChain = [], isExportAllSearch, onlyExplicit, searchedNamesAndModules } = EMPTY_OBJECT) {
|
||||
if (name[0] === '*') {
|
||||
if (name.length === 1) {
|
||||
// export * from './other'
|
||||
@@ -17100,12 +17110,14 @@ class Module {
|
||||
}
|
||||
// export * from 'external'
|
||||
const module = this.graph.modulesById.get(name.slice(1));
|
||||
return module.getVariableForExportName('*');
|
||||
return module.getVariableForExportName('*', {
|
||||
importChain: [...importChain, this.id]
|
||||
});
|
||||
}
|
||||
// export { foo } from './other'
|
||||
const reexportDeclaration = this.reexportDescriptions.get(name);
|
||||
if (reexportDeclaration) {
|
||||
const [variable, options] = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules);
|
||||
const [variable, options] = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules, [...importChain, this.id]);
|
||||
if (!variable) {
|
||||
return this.error(logMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id, !!options?.missingButExportExists), reexportDeclaration.start);
|
||||
}
|
||||
@@ -17141,7 +17153,7 @@ class Module {
|
||||
}
|
||||
if (name !== 'default') {
|
||||
const foundNamespaceReexport = this.namespaceReexportsByName.get(name) ??
|
||||
this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules);
|
||||
this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules, [...importChain, this.id]);
|
||||
this.namespaceReexportsByName.set(name, foundNamespaceReexport);
|
||||
if (foundNamespaceReexport[0]) {
|
||||
return foundNamespaceReexport;
|
||||
@@ -17395,7 +17407,7 @@ class Module {
|
||||
if (otherModule instanceof Module && importDescription.name === '*') {
|
||||
return otherModule.namespace;
|
||||
}
|
||||
const [declaration, options] = getVariableForExportNameRecursive(otherModule, importDescription.name, importerForSideEffects || this, isExportAllSearch, searchedNamesAndModules);
|
||||
const [declaration, options] = getVariableForExportNameRecursive(otherModule, importDescription.name, importerForSideEffects || this, isExportAllSearch, searchedNamesAndModules, [this.id]);
|
||||
if (!declaration) {
|
||||
return this.error(logMissingExport(importDescription.name, this.id, otherModule.id, !!options?.missingButExportExists), importDescription.start);
|
||||
}
|
||||
@@ -17600,13 +17612,13 @@ class Module {
|
||||
getImportedJsxFactoryVariable(baseName, nodeStart, importSource) {
|
||||
const { id } = this.resolvedIds[importSource];
|
||||
const module = this.graph.modulesById.get(id);
|
||||
const [variable] = module.getVariableForExportName(baseName);
|
||||
const [variable] = module.getVariableForExportName(baseName, { importChain: [this.id] });
|
||||
if (!variable) {
|
||||
return this.error(logMissingJsxExport(baseName, id, this.id), nodeStart);
|
||||
}
|
||||
return variable;
|
||||
}
|
||||
getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules) {
|
||||
getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules, importChain) {
|
||||
let foundSyntheticDeclaration = null;
|
||||
const foundInternalDeclarations = new Map();
|
||||
const foundExternalDeclarations = new Set();
|
||||
@@ -17618,7 +17630,7 @@ class Module {
|
||||
const [variable, options] = getVariableForExportNameRecursive(module, name, importerForSideEffects, true,
|
||||
// We are creating a copy to handle the case where the same binding is
|
||||
// imported through different namespace reexports gracefully
|
||||
copyNameToModulesMap(searchedNamesAndModules));
|
||||
copyNameToModulesMap(searchedNamesAndModules), importChain);
|
||||
if (module instanceof ExternalModule || options?.indirectExternal) {
|
||||
foundExternalDeclarations.add(variable);
|
||||
}
|
||||
@@ -17659,7 +17671,9 @@ class Module {
|
||||
const syntheticNamespaces = new Set();
|
||||
for (const module of [this, ...this.exportAllModules]) {
|
||||
if (module instanceof ExternalModule) {
|
||||
const [externalVariable] = module.getVariableForExportName('*');
|
||||
const [externalVariable] = module.getVariableForExportName('*', {
|
||||
importChain: [this.id]
|
||||
});
|
||||
externalVariable.includePath(UNKNOWN_PATH, createInclusionContext());
|
||||
this.includedImports.add(externalVariable);
|
||||
externalNamespaces.add(externalVariable);
|
||||
@@ -21818,7 +21832,7 @@ class FileEmitter {
|
||||
}
|
||||
else {
|
||||
const sourceHash = getHash(consumedFile.source);
|
||||
getOrCreate(consumedAssetsByHash, sourceHash, () => []).push(consumedFile);
|
||||
getOrCreate(consumedAssetsByHash, sourceHash, getNewArray).push(consumedFile);
|
||||
}
|
||||
}
|
||||
else if (consumedFile.type === 'prebuilt-chunk') {
|
||||
@@ -22737,7 +22751,7 @@ class Graph {
|
||||
for (const module of this.modules) {
|
||||
for (const importDescription of module.importDescriptions.values()) {
|
||||
if (importDescription.name !== '*') {
|
||||
const [variable, options] = importDescription.module.getVariableForExportName(importDescription.name);
|
||||
const [variable, options] = importDescription.module.getVariableForExportName(importDescription.name, { importChain: [module.id] });
|
||||
if (!variable) {
|
||||
module.log(LOGLEVEL_WARN, logMissingExport(importDescription.name, module.id, importDescription.module.id, !!options?.missingButExportExists), importDescription.start);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user