[PR #303] [MERGED] feat(javascript): recover commonjs and esm module relationships #1939

Closed
opened 2026-10-16 21:12:41 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/303
Author: @N0zoM1z0
Created: 7/17/2026
Status: ✅ Merged
Merged: 7/17/2026
Merged by: @N0zoM1z0

Base: main ← Head: agent/javascript-module-relationships


📝 Commits (1)

  • 6c41791 feat(javascript): recover commonjs and esm module relationships

📊 Changes

68 files changed (+1613 additions, -207 deletions)

View changed files

📝 docs/api/assets/hierarchy.js (+1 -1)
📝 docs/api/assets/navigation.js (+1 -1)
📝 docs/api/assets/search.js (+1 -1)
📝 docs/api/classes/application_PermissionAuthority.PermissionPathError.html (+1 -1)
📝 docs/api/classes/application_ProcessCaptureError.ProcessCaptureError.html (+1 -1)
📝 docs/api/classes/application_ProjectPermissionStore.ProjectPermissionStoreError.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactAnalysis.analyzeJavaScriptArtifactFiles.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactFiles.readJavaScriptArtifactFiles.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphBuilder.buildJavaScriptArtifactGraph.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.addArtifactContainsEdge.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.addAstContainsEdge.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.addStaticInferenceEdge.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.addUnavailableStaticParseScope.html (+1 -1)
➕ docs/api/functions/application_JavaScriptArtifactGraphContext.artifactFileNodeKind.html (+44 -0)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.artifactLocalIdentity.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.createElectronRoleNode.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.javaScriptAnalysisLimits.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.javascriptAnalysisCoverage.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.linkElectronRoleToAsset.html (+1 -1)
📝 docs/api/functions/application_JavaScriptArtifactGraphContext.moduleLookupKey.html (+1 -1)

...and 48 more files

📄 Description

What

  • Integrates the JavaScript semantic IR into static artifact analysis and graph construction.
  • Adds source-module identities, export-binding nodes, and CommonJS/ESM import edges with provenance, resolution status, coverage, and limitations.
  • Resolves same-container bare package roots through bounded package.json exports/main/module handling for import vs require.
  • Adds inert JSON module observations and links JSON targets from semantic require relationships without executing code.
  • Keeps static source modules out of runtime reconciliation candidates via an explicit semantic_role observation, preserving existing source-map semantics.

Why

REA could already recover syntax-level JavaScript findings, but the artifact graph did not expose binding-aware module composition. That left CommonJS forwarding, ESM re-exports, JSON modules, and conditional package roots either missing or represented only as lower-level references.

Impact

Electron/static JavaScript analysis can now answer module relationship questions with better evidence boundaries: resolved local modules are linked, builtins/external packages remain explicit, invalid JSON is marked partial, and relationship truncation contributes exact graph omissions when available.

Verification

  • git diff --check
  • npm run check
  • npm run verify:package
  • npm run knip
  • npm run jscpd
  • npm run scan:todos

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/303 **Author:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Created:** 7/17/2026 **Status:** ✅ Merged **Merged:** 7/17/2026 **Merged by:** [@N0zoM1z0](https://github.com/N0zoM1z0) **Base:** `main` ← **Head:** `agent/javascript-module-relationships` --- ### 📝 Commits (1) - [`6c41791`](https://github.com/morluto/rea/commit/6c41791519069811d0be0115c450801432f96660) feat(javascript): recover commonjs and esm module relationships ### 📊 Changes **68 files changed** (+1613 additions, -207 deletions) <details> <summary>View changed files</summary> 📝 `docs/api/assets/hierarchy.js` (+1 -1) 📝 `docs/api/assets/navigation.js` (+1 -1) 📝 `docs/api/assets/search.js` (+1 -1) 📝 `docs/api/classes/application_PermissionAuthority.PermissionPathError.html` (+1 -1) 📝 `docs/api/classes/application_ProcessCaptureError.ProcessCaptureError.html` (+1 -1) 📝 `docs/api/classes/application_ProjectPermissionStore.ProjectPermissionStoreError.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactAnalysis.analyzeJavaScriptArtifactFiles.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactFiles.readJavaScriptArtifactFiles.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphBuilder.buildJavaScriptArtifactGraph.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.addArtifactContainsEdge.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.addAstContainsEdge.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.addStaticInferenceEdge.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.addUnavailableStaticParseScope.html` (+1 -1) ➕ `docs/api/functions/application_JavaScriptArtifactGraphContext.artifactFileNodeKind.html` (+44 -0) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.artifactLocalIdentity.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.createElectronRoleNode.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.javaScriptAnalysisLimits.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.javascriptAnalysisCoverage.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.linkElectronRoleToAsset.html` (+1 -1) 📝 `docs/api/functions/application_JavaScriptArtifactGraphContext.moduleLookupKey.html` (+1 -1) _...and 48 more files_ </details> ### 📄 Description ## What - Integrates the JavaScript semantic IR into static artifact analysis and graph construction. - Adds source-module identities, export-binding nodes, and CommonJS/ESM import edges with provenance, resolution status, coverage, and limitations. - Resolves same-container bare package roots through bounded `package.json` `exports`/`main`/`module` handling for import vs require. - Adds inert JSON module observations and links JSON targets from semantic `require` relationships without executing code. - Keeps static source modules out of runtime reconciliation candidates via an explicit `semantic_role` observation, preserving existing source-map semantics. ## Why REA could already recover syntax-level JavaScript findings, but the artifact graph did not expose binding-aware module composition. That left CommonJS forwarding, ESM re-exports, JSON modules, and conditional package roots either missing or represented only as lower-level references. ## Impact Electron/static JavaScript analysis can now answer module relationship questions with better evidence boundaries: resolved local modules are linked, builtins/external packages remain explicit, invalid JSON is marked partial, and relationship truncation contributes exact graph omissions when available. ## Verification - `git diff --check` - `npm run check` - `npm run verify:package` - `npm run knip` - `npm run jscpd` - `npm run scan:todos` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:12:41 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#1939
No description provided.