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:
root
2025-11-19 17:48:15 +00:00
parent 77b4d10af8
commit 9ebcc359ae
4360 changed files with 37751 additions and 18578 deletions

0
node_modules/rollup/LICENSE.md generated vendored Executable file → Normal file
View File

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

View File

@@ -1,8 +1,8 @@
#!/usr/bin/env node
/*
@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

View File

@@ -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

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

View File

@@ -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

4
node_modules/rollup/dist/es/rollup.js generated vendored Executable file → Normal file
View File

@@ -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

View File

@@ -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);
}

View File

@@ -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

4
node_modules/rollup/dist/es/shared/watch.js generated vendored Executable file → Normal file
View File

@@ -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

0
node_modules/rollup/dist/getLogFilter.d.ts generated vendored Executable file → Normal file
View File

View File

@@ -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

0
node_modules/rollup/dist/loadConfigFile.d.ts generated vendored Executable file → Normal file
View File

View File

@@ -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

0
node_modules/rollup/dist/parseAst.d.ts generated vendored Executable file → Normal file
View File

View File

@@ -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

0
node_modules/rollup/dist/rollup.d.ts generated vendored Executable file → Normal file
View File

4
node_modules/rollup/dist/rollup.js generated vendored Executable file → Normal file
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

50
node_modules/rollup/dist/shared/rollup.js generated vendored Executable file → Normal file
View File

@@ -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
@@ -42,7 +42,7 @@ function _mergeNamespaces(n, m) {
const promises__namespace = /*#__PURE__*/_interopNamespaceDefault(promises);
var version = "4.53.2";
var version = "4.53.3";
function ensureArray$1(items) {
if (Array.isArray(items)) {
@@ -369,7 +369,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') {
@@ -6375,6 +6375,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());
@@ -6411,8 +6412,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);
@@ -6436,7 +6440,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);
}
}
@@ -8899,6 +8906,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) &&
@@ -13236,7 +13244,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;
@@ -18353,7 +18362,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)) {
@@ -18365,6 +18374,7 @@ function getVariableForExportNameRecursive(target, name, importerForSideEffects,
searchedNamesAndModules.set(name, new Set([target]));
}
return target.getVariableForExportName(name, {
importChain,
importerForSideEffects,
isExportAllSearch,
searchedNamesAndModules
@@ -18695,7 +18705,7 @@ class Module {
}
return this.syntheticNamespace;
}
getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, onlyExplicit, searchedNamesAndModules } = parseAst_js.EMPTY_OBJECT) {
getVariableForExportName(name, { importerForSideEffects, importChain = [], isExportAllSearch, onlyExplicit, searchedNamesAndModules } = parseAst_js.EMPTY_OBJECT) {
if (name[0] === '*') {
if (name.length === 1) {
// export * from './other'
@@ -18703,12 +18713,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(parseAst_js.logMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id, !!options?.missingButExportExists), reexportDeclaration.start);
}
@@ -18744,7 +18756,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;
@@ -18998,7 +19010,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(parseAst_js.logMissingExport(importDescription.name, this.id, otherModule.id, !!options?.missingButExportExists), importDescription.start);
}
@@ -19203,13 +19215,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(parseAst_js.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();
@@ -19221,7 +19233,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);
}
@@ -19262,7 +19274,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);
@@ -23109,7 +23123,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(parseAst_js.LOGLEVEL_WARN, parseAst_js.logMissingExport(importDescription.name, module.id, importDescription.module.id, !!options?.missingButExportExists), importDescription.start);
}

4
node_modules/rollup/dist/shared/watch-cli.js generated vendored Executable file → Normal file
View File

@@ -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

4
node_modules/rollup/dist/shared/watch.js generated vendored Executable file → Normal file
View File

@@ -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

85
node_modules/rollup/package.json generated vendored Executable file → Normal file
View File

@@ -1,6 +1,6 @@
{
"name": "rollup",
"version": "4.53.2",
"version": "4.53.3",
"description": "Next-generation ES module bundler",
"main": "dist/rollup.js",
"module": "dist/es/rollup.js",
@@ -57,9 +57,8 @@
"preview:docs": "vitepress preview docs",
"ci:artifacts": "napi artifacts",
"ci:lint": "concurrently -c red,yellow,green,blue 'npm:lint:js:nofix' 'npm:lint:native-js' 'npm:lint:markdown:nofix' 'npm:lint:rust:nofix'",
"ci:test:only": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && npm run test:only",
"ci:test:all": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && concurrently --kill-others-on-fail -c green,blue,magenta,cyan 'npm:test:only' 'npm:test:typescript' 'npm:test:leak' 'npm:test:browser'",
"ci:coverage": "npm run build:cjs && npm run build:copy-native && npm run build:bootstrap && npm run build:copy-native && NODE_OPTIONS=--no-experimental-require-module nyc --reporter lcovonly mocha",
"ci:test:all": "concurrently --kill-others-on-fail -c green,blue,magenta,cyan 'npm:test:only' 'npm:test:typescript' 'npm:test:leak' 'npm:test:browser'",
"ci:coverage": "NODE_OPTIONS=--no-experimental-require-module nyc --reporter lcovonly mocha",
"lint": "concurrently -c red,yellow,green,blue 'npm:lint:js' 'npm:lint:native-js' 'npm:lint:markdown' 'npm:lint:rust'",
"lint:js": "eslint . --fix --cache --concurrency auto",
"lint:js:nofix": "eslint . --cache --concurrency auto",
@@ -69,12 +68,15 @@
"lint:rust": "cd rust && cargo fmt && cargo clippy --fix --allow-dirty",
"lint:rust:nofix": "cd rust && cargo fmt --check && cargo clippy",
"perf": "npm run build:bootstrap:cjs && node --expose-gc scripts/perf-report/index.js",
"prepare": "husky && patch-package && node scripts/check-release.js || npm run build:prepare",
"prepare": "husky && npm run prepare:patch && node scripts/check-release.js || npm run build:prepare",
"prepare:patch": "patch-package",
"prepublishOnly": "node scripts/check-release.js && node scripts/prepublish.js",
"postpublish": "node scripts/postpublish.js",
"prepublish:napi": "napi prepublish --no-gh-release",
"release": "node scripts/prepare-release.js",
"release:docs": "git fetch --update-head-ok origin master:master && git branch --force documentation-published master && git push origin documentation-published",
"check-audit": "check-audit",
"resolve-audit": "resolve-audit",
"test": "npm run build && npm run test:all",
"test:update-snapshots": "node scripts/update-snapshots.js",
"test:cjs": "npm run build:cjs && npm run test:only",
@@ -86,7 +88,7 @@
"test:package": "node scripts/test-package.js",
"test:options": "node scripts/test-options.js",
"test:only": "mocha test/test.js",
"test:typescript": "echo skipped",
"test:typescript": "shx rm -rf test/typescript/dist && shx cp -r dist test/typescript/ && tsc --noEmit -p test/typescript && tsc --noEmit -p . && tsc --noEmit -p scripts && vue-tsc --noEmit -p docs",
"test:browser": "mocha test/browser/index.js",
"watch": "rollup --config rollup.config.ts --configPlugin typescript --watch"
},
@@ -109,28 +111,28 @@
"homepage": "https://rollupjs.org/",
"optionalDependencies": {
"fsevents": "~2.3.2",
"@rollup/rollup-darwin-arm64": "4.53.2",
"@rollup/rollup-android-arm64": "4.53.2",
"@rollup/rollup-win32-arm64-msvc": "4.53.2",
"@rollup/rollup-freebsd-arm64": "4.53.2",
"@rollup/rollup-linux-arm64-gnu": "4.53.2",
"@rollup/rollup-linux-arm64-musl": "4.53.2",
"@rollup/rollup-android-arm-eabi": "4.53.2",
"@rollup/rollup-linux-arm-gnueabihf": "4.53.2",
"@rollup/rollup-linux-arm-musleabihf": "4.53.2",
"@rollup/rollup-win32-ia32-msvc": "4.53.2",
"@rollup/rollup-linux-loong64-gnu": "4.53.2",
"@rollup/rollup-linux-riscv64-gnu": "4.53.2",
"@rollup/rollup-linux-riscv64-musl": "4.53.2",
"@rollup/rollup-linux-ppc64-gnu": "4.53.2",
"@rollup/rollup-linux-s390x-gnu": "4.53.2",
"@rollup/rollup-darwin-x64": "4.53.2",
"@rollup/rollup-win32-x64-gnu": "4.53.2",
"@rollup/rollup-win32-x64-msvc": "4.53.2",
"@rollup/rollup-freebsd-x64": "4.53.2",
"@rollup/rollup-linux-x64-gnu": "4.53.2",
"@rollup/rollup-linux-x64-musl": "4.53.2",
"@rollup/rollup-openharmony-arm64": "4.53.2"
"@rollup/rollup-darwin-arm64": "4.53.3",
"@rollup/rollup-android-arm64": "4.53.3",
"@rollup/rollup-win32-arm64-msvc": "4.53.3",
"@rollup/rollup-freebsd-arm64": "4.53.3",
"@rollup/rollup-linux-arm64-gnu": "4.53.3",
"@rollup/rollup-linux-arm64-musl": "4.53.3",
"@rollup/rollup-android-arm-eabi": "4.53.3",
"@rollup/rollup-linux-arm-gnueabihf": "4.53.3",
"@rollup/rollup-linux-arm-musleabihf": "4.53.3",
"@rollup/rollup-win32-ia32-msvc": "4.53.3",
"@rollup/rollup-linux-loong64-gnu": "4.53.3",
"@rollup/rollup-linux-riscv64-gnu": "4.53.3",
"@rollup/rollup-linux-riscv64-musl": "4.53.3",
"@rollup/rollup-linux-ppc64-gnu": "4.53.3",
"@rollup/rollup-linux-s390x-gnu": "4.53.3",
"@rollup/rollup-darwin-x64": "4.53.3",
"@rollup/rollup-win32-x64-gnu": "4.53.3",
"@rollup/rollup-win32-x64-msvc": "4.53.3",
"@rollup/rollup-freebsd-x64": "4.53.3",
"@rollup/rollup-linux-x64-gnu": "4.53.3",
"@rollup/rollup-linux-x64-musl": "4.53.3",
"@rollup/rollup-openharmony-arm64": "4.53.3"
},
"dependencies": {
"@types/estree": "1.0.8"
@@ -146,9 +148,9 @@
"@codemirror/state": "^6.5.2",
"@codemirror/view": "^6.38.6",
"@eslint/js": "^9.39.1",
"@inquirer/prompts": "^7.9.0",
"@inquirer/prompts": "^7.10.0",
"@jridgewell/sourcemap-codec": "^1.5.5",
"@mermaid-js/mermaid-cli": "^11.4.0",
"@mermaid-js/mermaid-cli": "^11.12.0",
"@napi-rs/cli": "^3.4.1",
"@rollup/plugin-alias": "^6.0.0",
"@rollup/plugin-buble": "^1.0.3",
@@ -159,9 +161,9 @@
"@rollup/plugin-terser": "^0.4.4",
"@rollup/plugin-typescript": "^12.3.0",
"@rollup/pluginutils": "^5.3.0",
"@shikijs/vitepress-twoslash": "^3.14.0",
"@shikijs/vitepress-twoslash": "^3.15.0",
"@types/mocha": "^10.0.10",
"@types/node": "^20.19.24",
"@types/node": "^20.19.25",
"@types/picomatch": "^4.0.2",
"@types/semver": "^7.7.1",
"@types/yargs-parser": "^21.0.3",
@@ -194,19 +196,20 @@
"locate-character": "^3.0.0",
"magic-string": "^0.30.21",
"memfs": "^4.50.0",
"mocha": "^11.7.4",
"nodemon": "^3.1.10",
"mocha": "^11.7.5",
"nodemon": "^3.1.11",
"npm-audit-resolver": "^3.0.0-RC.0",
"nyc": "^17.1.0",
"patch-package": "^8.0.1",
"picocolors": "^1.1.1",
"picomatch": "^4.0.3",
"pinia": "^3.0.3",
"pinia": "^3.0.4",
"prettier": "^3.6.2",
"prettier-plugin-organize-imports": "^4.3.0",
"pretty-bytes": "^7.1.0",
"pretty-ms": "^9.3.0",
"requirejs": "^2.3.7",
"rollup": "^4.52.5",
"rollup": "^4.53.2",
"rollup-plugin-license": "^3.6.0",
"rollup-plugin-string": "^3.0.0",
"semver": "^7.7.3",
@@ -215,20 +218,20 @@
"source-map": "^0.7.6",
"source-map-support": "^0.5.21",
"systemjs": "^6.15.1",
"terser": "^5.44.0",
"terser": "^5.44.1",
"tslib": "^2.8.1",
"typescript": "^5.9.3",
"typescript-eslint": "^8.46.3",
"vite": "^7.1.12",
"typescript-eslint": "^8.46.4",
"vite": "^7.2.2",
"vitepress": "^1.6.4",
"vue": "^3.5.22",
"vue": "^3.5.24",
"vue-eslint-parser": "^10.2.0",
"vue-tsc": "^3.1.3",
"wasm-pack": "^0.13.1",
"yargs-parser": "^21.1.1"
},
"overrides": {
"axios": "^1.13.1",
"axios": "^1.13.2",
"esbuild": ">0.24.2",
"readable-stream": "npm:@built-in/readable-stream@1",
"semver": "^7.7.3",