gitnexus 1.6.13-rc.40 → 1.6.13-rc.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_shared/index.d.ts +1 -1
- package/dist/_shared/index.d.ts.map +1 -1
- package/dist/_shared/index.js +1 -1
- package/dist/_shared/index.js.map +1 -1
- package/dist/_shared/language-detection.d.ts +2 -0
- package/dist/_shared/language-detection.d.ts.map +1 -1
- package/dist/_shared/language-detection.js +5 -1
- package/dist/_shared/language-detection.js.map +1 -1
- package/dist/core/embeddings/ast-utils.js +15 -2
- package/dist/core/graph/edge-reasons.d.ts +12 -0
- package/dist/core/graph/edge-reasons.js +12 -0
- package/dist/core/ingestion/cfg/collect.d.ts +1 -1
- package/dist/core/ingestion/cfg/collect.js +25 -3
- package/dist/core/ingestion/import-resolvers/configs/swift.d.ts +4 -3
- package/dist/core/ingestion/import-resolvers/configs/swift.js +4 -3
- package/dist/core/ingestion/ipynb-extractor.d.ts +28 -0
- package/dist/core/ingestion/ipynb-extractor.js +679 -0
- package/dist/core/ingestion/language-config.d.ts +97 -4
- package/dist/core/ingestion/language-config.js +186 -32
- package/dist/core/ingestion/language-provider.d.ts +3 -0
- package/dist/core/ingestion/languages/python/captures.d.ts +6 -2
- package/dist/core/ingestion/languages/python/captures.js +56 -7
- package/dist/core/ingestion/languages/python.js +1 -1
- package/dist/core/ingestion/languages/swift/implicit-imports.d.ts +27 -29
- package/dist/core/ingestion/languages/swift/implicit-imports.js +63 -47
- package/dist/core/ingestion/languages/swift/import-target.d.ts +12 -4
- package/dist/core/ingestion/languages/swift/import-target.js +59 -6
- package/dist/core/ingestion/languages/swift/index.d.ts +1 -1
- package/dist/core/ingestion/languages/swift/index.js +1 -1
- package/dist/core/ingestion/languages/swift/name-fallback-visibility.d.ts +8 -4
- package/dist/core/ingestion/languages/swift/name-fallback-visibility.js +35 -5
- package/dist/core/ingestion/languages/swift/scope-resolver.d.ts +9 -10
- package/dist/core/ingestion/languages/swift/scope-resolver.js +20 -20
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.d.ts +12 -13
- package/dist/core/ingestion/languages/swift/sibling-type-bindings.js +31 -38
- package/dist/core/ingestion/languages/swift/target-grouping.d.ts +56 -37
- package/dist/core/ingestion/languages/swift/target-grouping.js +186 -68
- package/dist/core/ingestion/languages/swift/target-siblings.d.ts +22 -20
- package/dist/core/ingestion/languages/swift/target-siblings.js +66 -40
- package/dist/core/ingestion/languages/swift/workspace-config.d.ts +20 -0
- package/dist/core/ingestion/languages/swift/workspace-config.js +174 -0
- package/dist/core/ingestion/languages/swift/xcode-project.d.ts +52 -0
- package/dist/core/ingestion/languages/swift/xcode-project.js +326 -0
- package/dist/core/ingestion/scope-extractor-bridge.d.ts +2 -1
- package/dist/core/ingestion/scope-extractor-bridge.js +5 -2
- package/dist/core/ingestion/workers/parse-worker.js +20 -9
- package/dist/core/lbug/csv-generator.js +11 -3
- package/dist/core/lbug/lbug-adapter.js +61 -35
- package/dist/storage/parse-cache.js +3 -1
- package/package.json +1 -1
- package/web/assets/{abnfDiagram-PAR5IXJI-CM9OPETj.js → abnfDiagram-PAR5IXJI-ghbj7sD2.js} +1 -1
- package/web/assets/{agent-C8bWDcKv.js → agent-D7pSP6kP.js} +2 -2
- package/web/assets/{architectureDiagram-2PNWDENW-CFGPVOFL.js → architectureDiagram-2PNWDENW-BVvAcFF7.js} +1 -1
- package/web/assets/{chunk-32MCUW2P-BAKWSoJ_.js → chunk-32MCUW2P-CgOfbkmb.js} +1 -1
- package/web/assets/{chunk-CLS4B6BI-C6Eyf-Zq.js → chunk-CLS4B6BI-DyGNmlKM.js} +1 -1
- package/web/assets/{chunk-NF366YI6-BjQUpZZg.js → chunk-NF366YI6-Bt1kQ0DM.js} +1 -1
- package/web/assets/{chunk-SLDQ463B-DAs7sJcm.js → chunk-SLDQ463B-DJlRPBQc.js} +1 -1
- package/web/assets/{classDiagram-FGAMPOII-ipJcwT2g.js → classDiagram-FGAMPOII-bO3X0enT.js} +1 -1
- package/web/assets/{classDiagram-v2-AI5RJEK4-ipJcwT2g.js → classDiagram-v2-AI5RJEK4-bO3X0enT.js} +1 -1
- package/web/assets/{cynefinDiagram-2OOWUY4M-BfCkzyqC.js → cynefinDiagram-2OOWUY4M-CFGjqhSu.js} +1 -1
- package/web/assets/{dagre-MPVFI544-CMeiFj2H.js → dagre-MPVFI544-j_X2O-kN.js} +1 -1
- package/web/assets/{diagram-AE4NWXFW-B7JUvrjH.js → diagram-AE4NWXFW-Caf0uquT.js} +1 -1
- package/web/assets/{diagram-BUJID5UG-KMWjNniB.js → diagram-BUJID5UG-f7DAZMD-.js} +1 -1
- package/web/assets/{diagram-C44CZ5NI-Bx93uHLb.js → diagram-C44CZ5NI-CNCoqTas.js} +1 -1
- package/web/assets/{diagram-EYOLEXXS-Dsja58oR.js → diagram-EYOLEXXS-iKWoG2R-.js} +1 -1
- package/web/assets/{ebnfDiagram-FTPZ3PV6-Iwxb9NAS.js → ebnfDiagram-FTPZ3PV6-0PKjNF3M.js} +1 -1
- package/web/assets/{erDiagram-H3ERR26V-CJU6qpcb.js → erDiagram-H3ERR26V-B3e3vtyL.js} +1 -1
- package/web/assets/{flowDiagram-YHGXBVSY-Dz6dhw6j.js → flowDiagram-YHGXBVSY-DSNLZyy6.js} +1 -1
- package/web/assets/{index-dXsywuPQ.js → index-D9vqZ2Mx.js} +67 -67
- package/web/assets/{infoDiagram-LV547AFH-P074dR6u.js → infoDiagram-LV547AFH-BrgvPVBW.js} +1 -1
- package/web/assets/{ishikawaDiagram-PUJQGNDS-CZlaIkzm.js → ishikawaDiagram-PUJQGNDS-DWEisfAp.js} +1 -1
- package/web/assets/{kanban-definition-JSQERAZB-BLX38hbF.js → kanban-definition-JSQERAZB-DPJa_ZMA.js} +1 -1
- package/web/assets/{mindmap-definition-VBJCLQLM-Bnu-7Z_9.js → mindmap-definition-VBJCLQLM-B-r6pcv4.js} +1 -1
- package/web/assets/{node.browser-DIc1knUO.js → node.browser-BsMEScc4.js} +1 -1
- package/web/assets/{pegDiagram-7WILOQTJ-SH-3F770.js → pegDiagram-7WILOQTJ-zbINieeM.js} +1 -1
- package/web/assets/{pieDiagram-EFA7CBSB-BGEXuMLa.js → pieDiagram-EFA7CBSB-CzTvsZCX.js} +1 -1
- package/web/assets/{railroadDiagram-5NIQVNLQ-DZMK703w.js → railroadDiagram-5NIQVNLQ-fS4iyUKq.js} +1 -1
- package/web/assets/{requirementDiagram-SXREGOKZ-DLW6bNTm.js → requirementDiagram-SXREGOKZ-DMQvhRON.js} +1 -1
- package/web/assets/{sequenceDiagram-52ZFIFDL-Bu6IKvYQ.js → sequenceDiagram-52ZFIFDL-BA5rAu4o.js} +1 -1
- package/web/assets/{stateDiagram-3QAKPIVI-BrLxhUMB.js → stateDiagram-3QAKPIVI-D_CKobMX.js} +1 -1
- package/web/assets/{stateDiagram-v2-HN2P4RDZ-yZRLNv94.js → stateDiagram-v2-HN2P4RDZ-CB2PHRuW.js} +1 -1
- package/web/assets/{swimlanes-QLVP42QD-BN3CFF8X.js → swimlanes-QLVP42QD-CQPtxHem.js} +1 -1
- package/web/assets/{swimlanesDiagram-JKPDBFCN-BQ7NwLky.js → swimlanesDiagram-JKPDBFCN-BOFXsJZx.js} +1 -1
- package/web/assets/{timeline-definition-GS45XAXW-DMlAtIe0.js → timeline-definition-GS45XAXW-bVpCnHzz.js} +1 -1
- package/web/assets/{vennDiagram-QIQU2ZRJ-DWmjtOEV.js → vennDiagram-QIQU2ZRJ-BiMVB-Bi.js} +1 -1
- package/web/assets/{wardleyDiagram-U6YNM66N-BRdmEKKB.js → wardleyDiagram-U6YNM66N-CvE7A-TC.js} +1 -1
- package/web/assets/{xychartDiagram-XJAZEDNM-roHne1SF.js → xychartDiagram-XJAZEDNM-DpPintys.js} +1 -1
- package/web/index.html +1 -1
package/dist/_shared/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type { NodeLabel, NodeProperties, RelationshipType, GraphNode, GraphRelat
|
|
|
2
2
|
export { NODE_TABLES, REL_TABLE_NAME, REL_TYPES, EMBEDDING_TABLE_NAME, } from './lbug/schema-constants.js';
|
|
3
3
|
export type { NodeTableName, RelType } from './lbug/schema-constants.js';
|
|
4
4
|
export { SupportedLanguages } from './languages.js';
|
|
5
|
-
export { getLanguageFromFilename, getSyntaxLanguageFromFilename, isBladeTemplateFilename, } from './language-detection.js';
|
|
5
|
+
export { getLanguageFromFilename, getSyntaxLanguageFromFilename, isBladeTemplateFilename, isNotebookFilename, } from './language-detection.js';
|
|
6
6
|
export type { MroStrategy } from './mro-strategy.js';
|
|
7
7
|
export { scoreImpactRisk, unusedAxesForImpactWalk } from './impact-risk.js';
|
|
8
8
|
export type { ImpactRisk, ImpactRiskAxis, ImpactRiskInput, ImpactRiskResult, UnusedImpactRiskAxis, UnusedImpactRiskReason, } from './impact-risk.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAC;AAGzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/_shared/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export { NODE_TABLES, REL_TABLE_NAME, REL_TYPES, EMBEDDING_TABLE_NAME, } from './lbug/schema-constants.js';
|
|
3
3
|
// Language support
|
|
4
4
|
export { SupportedLanguages } from './languages.js';
|
|
5
|
-
export { getLanguageFromFilename, getSyntaxLanguageFromFilename, isBladeTemplateFilename, } from './language-detection.js';
|
|
5
|
+
export { getLanguageFromFilename, getSyntaxLanguageFromFilename, isBladeTemplateFilename, isNotebookFilename, } from './language-detection.js';
|
|
6
6
|
// Impact risk scoring
|
|
7
7
|
export { scoreImpactRisk, unusedAxesForImpactWalk } from './impact-risk.js';
|
|
8
8
|
// Evidence + tie-break constants (RFC Appendix A, Appendix B)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,mBAAmB;AACnB,OAAO,EACL,WAAW,EACX,cAAc,EACd,SAAS,EACT,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC,mBAAmB;AACnB,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAGjC,sBAAsB;AACtB,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AA4C5E,8DAA8D;AAC9D,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AACnG,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AAGxE,yDAAyD;AACzD,OAAO,EACL,uBAAuB,EACvB,oBAAoB,GACrB,MAAM,+CAA+C,CAAC;AAGvD,sEAAsE;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AAGrF,gEAAgE;AAChE,yEAAyE;AACzE,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,wCAAwC,CAAC;AA6BxE,oFAAoF;AACpF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6CAA6C,CAAC;AAMvF,uEAAuE;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,0CAA0C,CAAC;AAWpE,sEAAsE;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AAKvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAKrF,OAAO,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAErF,OAAO,EAAE,UAAU,EAAE,MAAM,8CAA8C,CAAC;AAE1E,OAAO,EAAE,eAAe,EAAE,MAAM,mDAAmD,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,2CAA2C,CAAC;AAEpG,OAAO,EACL,gCAAgC,EAChC,kBAAkB,GACnB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EACL,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,0CAA0C,CAAC;AAUlD,2EAA2E;AAC3E,OAAO,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAErF,OAAO,EACL,cAAc,EACd,cAAc,EACd,uBAAuB,GACxB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAG1E,8EAA8E;AAC9E,wEAAwE;AACxE,wEAAwE;AACxE,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAEjG,OAAO,EACL,cAAc,EACd,4BAA4B,EAC5B,kBAAkB,EAClB,eAAe,EACf,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAG3C,mDAAmD;AACnD,OAAO,EACL,+BAA+B,EAC/B,6BAA6B,EAC7B,4BAA4B,EAC5B,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,GACf,MAAM,sCAAsC,CAAC"}
|
|
@@ -15,6 +15,8 @@ import { SupportedLanguages } from './languages.js';
|
|
|
15
15
|
* pure PHP translation unit and must not enter the generic PHP provider path.
|
|
16
16
|
*/
|
|
17
17
|
export declare const isBladeTemplateFilename: (filePath: string) => boolean;
|
|
18
|
+
/** Jupyter notebooks: ingested as Python; on-disk bytes are JSON. */
|
|
19
|
+
export declare const isNotebookFilename: (filePath: string) => boolean;
|
|
18
20
|
/**
|
|
19
21
|
* Map file extension to SupportedLanguage enum.
|
|
20
22
|
* Returns null if the file extension is not recognized.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA2DpD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,OACQ,CAAC;AAEpE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,kBAAkB,GAAG,IAkB/E,CAAC;AA0DF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,aAAc,MAAM,KAAG,
|
|
1
|
+
{"version":3,"file":"language-detection.d.ts","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AA2DpD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,OACQ,CAAC;AAEpE,qEAAqE;AACrE,eAAO,MAAM,kBAAkB,aAAc,MAAM,KAAG,OACS,CAAC;AAEhE;;;GAGG;AACH,eAAO,MAAM,uBAAuB,aAAc,MAAM,KAAG,kBAAkB,GAAG,IAkB/E,CAAC;AA0DF;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,aAAc,MAAM,KAAG,MAWhE,CAAC"}
|
|
@@ -26,7 +26,7 @@ const RUBY_EXTENSIONLESS_FILES = new Set([
|
|
|
26
26
|
const EXTENSION_MAP = {
|
|
27
27
|
[SupportedLanguages.JavaScript]: ['.js', '.jsx', '.mjs', '.cjs'],
|
|
28
28
|
[SupportedLanguages.TypeScript]: ['.ts', '.tsx', '.mts', '.cts'],
|
|
29
|
-
[SupportedLanguages.Python]: ['.py'],
|
|
29
|
+
[SupportedLanguages.Python]: ['.py', '.ipynb'],
|
|
30
30
|
[SupportedLanguages.Java]: ['.java'],
|
|
31
31
|
[SupportedLanguages.C]: ['.c'],
|
|
32
32
|
[SupportedLanguages.ObjectiveC]: ['.m', '.mm'],
|
|
@@ -66,6 +66,8 @@ for (const [lang, exts] of Object.entries(EXTENSION_MAP)) {
|
|
|
66
66
|
* pure PHP translation unit and must not enter the generic PHP provider path.
|
|
67
67
|
*/
|
|
68
68
|
export const isBladeTemplateFilename = (filePath) => filePath.replace(/\\/g, '/').toLowerCase().endsWith('.blade.php');
|
|
69
|
+
/** Jupyter notebooks: ingested as Python; on-disk bytes are JSON. */
|
|
70
|
+
export const isNotebookFilename = (filePath) => filePath.replace(/\\/g, '/').toLowerCase().endsWith('.ipynb');
|
|
69
71
|
/**
|
|
70
72
|
* Map file extension to SupportedLanguage enum.
|
|
71
73
|
* Returns null if the file extension is not recognized.
|
|
@@ -149,6 +151,8 @@ const AUXILIARY_BASENAME_MAP = {
|
|
|
149
151
|
export const getSyntaxLanguageFromFilename = (filePath) => {
|
|
150
152
|
if (isBladeTemplateFilename(filePath))
|
|
151
153
|
return 'markup';
|
|
154
|
+
if (isNotebookFilename(filePath))
|
|
155
|
+
return 'json';
|
|
152
156
|
const lang = getLanguageFromFilename(filePath);
|
|
153
157
|
if (lang)
|
|
154
158
|
return SYNTAX_MAP[lang];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,6DAA6D;AAC7D,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC;IACvC,UAAU;IACV,SAAS;IACT,WAAW;IACX,aAAa;IACb,UAAU;CACX,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,aAAa,GAAkD;IACnE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAChE,CAAC,kBAAkB,CAAC,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAChE,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"language-detection.js","sourceRoot":"","sources":["../src/language-detection.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { createParserForLanguage, isLanguageAvailable, resolveLanguageKey, } from '../tree-sitter/parser-loader.js';
|
|
7
7
|
import { parseSourceSafe } from '../tree-sitter/safe-parse.js';
|
|
8
8
|
import { getLanguageForFileContent, getProvider } from '../ingestion/languages/index.js';
|
|
9
|
+
import { extractNotebookPython, isNotebookPath } from '../ingestion/ipynb-extractor.js';
|
|
9
10
|
const parserCache = new Map();
|
|
10
11
|
/**
|
|
11
12
|
* Ensure parser is initialized and language is loaded, then parse content.
|
|
@@ -31,8 +32,20 @@ export const ensureAndParse = async (content, filePath) => {
|
|
|
31
32
|
// C++ UE macros, Dart extension types) would leave embeddings looking at an
|
|
32
33
|
// error-recovered tree. Resolved from `language` so the transform and the
|
|
33
34
|
// parser always come from the same provider. Length-preserving, so node
|
|
34
|
-
// offsets still index `content`.
|
|
35
|
-
|
|
35
|
+
// offsets still index `content` except for `.ipynb`, which is replaced by
|
|
36
|
+
// concatenated code-cell Python (same as the parse worker).
|
|
37
|
+
const provider = getProvider(language);
|
|
38
|
+
if (isNotebookPath(filePath)) {
|
|
39
|
+
const body = content.charCodeAt(0) === 0xfeff ? content.slice(1) : content;
|
|
40
|
+
if (body.trimStart().startsWith('{')) {
|
|
41
|
+
const extracted = extractNotebookPython(content);
|
|
42
|
+
if (!extracted)
|
|
43
|
+
return null;
|
|
44
|
+
const parseContent = provider.preprocessSource?.(extracted.pythonSource, filePath) ?? extracted.pythonSource;
|
|
45
|
+
return parseSourceSafe(parserInstance, parseContent);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const parseContent = provider.preprocessSource?.(content, filePath) ?? content;
|
|
36
49
|
return parseSourceSafe(parserInstance, parseContent);
|
|
37
50
|
};
|
|
38
51
|
const FUNCTION_LIKE_TYPES = new Set([
|
|
@@ -24,3 +24,15 @@
|
|
|
24
24
|
export declare const GLOBAL_NAME_FALLBACK_REASON = "global-name-fallback";
|
|
25
25
|
/** True when this edge's target was guessed by name rather than resolved. */
|
|
26
26
|
export declare const isHeuristicEdgeReason: (reason: string) => boolean;
|
|
27
|
+
/**
|
|
28
|
+
* An IMPORTS edge from a File to the `Module` node of the compiler module it
|
|
29
|
+
* belongs to, for languages where every file of a module sees every other
|
|
30
|
+
* file's declarations with no `import` (whole-module visibility).
|
|
31
|
+
*
|
|
32
|
+
* One edge per member file instead of one per ordered file pair: the pairwise
|
|
33
|
+
* form is n·(n−1) edges and exhausted V8's Map limit on large modules (#3355).
|
|
34
|
+
* Consumers that need "files that see this file" follow the hub: two files are
|
|
35
|
+
* co-members when both have a membership edge to the same `Module` node
|
|
36
|
+
* (`queryImportersBatch`).
|
|
37
|
+
*/
|
|
38
|
+
export declare const MODULE_MEMBERSHIP_REASON = "module-membership";
|
|
@@ -32,3 +32,15 @@ export const GLOBAL_NAME_FALLBACK_REASON = 'global-name-fallback';
|
|
|
32
32
|
const HEURISTIC_EDGE_REASONS = new Set([GLOBAL_NAME_FALLBACK_REASON]);
|
|
33
33
|
/** True when this edge's target was guessed by name rather than resolved. */
|
|
34
34
|
export const isHeuristicEdgeReason = (reason) => HEURISTIC_EDGE_REASONS.has(reason);
|
|
35
|
+
/**
|
|
36
|
+
* An IMPORTS edge from a File to the `Module` node of the compiler module it
|
|
37
|
+
* belongs to, for languages where every file of a module sees every other
|
|
38
|
+
* file's declarations with no `import` (whole-module visibility).
|
|
39
|
+
*
|
|
40
|
+
* One edge per member file instead of one per ordered file pair: the pairwise
|
|
41
|
+
* form is n·(n−1) edges and exhausted V8's Map limit on large modules (#3355).
|
|
42
|
+
* Consumers that need "files that see this file" follow the hub: two files are
|
|
43
|
+
* co-members when both have a membership edge to the same `Module` node
|
|
44
|
+
* (`queryImportersBatch`).
|
|
45
|
+
*/
|
|
46
|
+
export const MODULE_MEMBERSHIP_REASON = 'module-membership';
|
|
@@ -48,4 +48,4 @@ export interface CollectedCfgs {
|
|
|
48
48
|
/** Per-reason skip counts (#2195). */
|
|
49
49
|
readonly skipped: CfgSkipCounts;
|
|
50
50
|
}
|
|
51
|
-
export declare function collectFunctionCfgs(root: SyntaxNode, visitor: CfgVisitor<SyntaxNode>, filePath: string, maxFunctionLines?: number, lineOffset?: number): CollectedCfgs;
|
|
51
|
+
export declare function collectFunctionCfgs(root: SyntaxNode, visitor: CfgVisitor<SyntaxNode>, filePath: string, maxFunctionLines?: number, lineOffset?: number, mapLine?: (row: number) => number): CollectedCfgs;
|
|
@@ -34,7 +34,28 @@ function shiftCfgLines(cfg, offset) {
|
|
|
34
34
|
bindings: cfg.bindings?.map((bd) => bd.declLine > 0 ? { ...bd, declLine: bd.declLine + offset } : bd),
|
|
35
35
|
};
|
|
36
36
|
}
|
|
37
|
-
|
|
37
|
+
function remapCfgLines(cfg, mapLine) {
|
|
38
|
+
// CFG visitors store 1-based source lines; `mapLine` maps 0-based tree-sitter rows.
|
|
39
|
+
const map1 = (line) => mapLine(line - 1) + 1;
|
|
40
|
+
const mapSite = (site) => site.at !== undefined ? { ...site, at: [map1(site.at[0]), site.at[1]] } : site;
|
|
41
|
+
return {
|
|
42
|
+
...cfg,
|
|
43
|
+
functionStartLine: map1(cfg.functionStartLine),
|
|
44
|
+
functionEndLine: map1(cfg.functionEndLine),
|
|
45
|
+
blocks: cfg.blocks.map((b) => ({
|
|
46
|
+
...b,
|
|
47
|
+
startLine: map1(b.startLine),
|
|
48
|
+
endLine: map1(b.endLine),
|
|
49
|
+
statements: b.statements?.map((s) => ({
|
|
50
|
+
...s,
|
|
51
|
+
line: map1(s.line),
|
|
52
|
+
sites: s.sites?.map(mapSite),
|
|
53
|
+
})),
|
|
54
|
+
})),
|
|
55
|
+
bindings: cfg.bindings?.map((bd) => bd.declLine > 0 ? { ...bd, declLine: map1(bd.declLine) } : bd),
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export function collectFunctionCfgs(root, visitor, filePath, maxFunctionLines = 0, lineOffset = 0, mapLine) {
|
|
38
59
|
const cfgs = [];
|
|
39
60
|
let tooManyLines = 0;
|
|
40
61
|
let tooDeeplyNested = 0;
|
|
@@ -54,8 +75,9 @@ export function collectFunctionCfgs(root, visitor, filePath, maxFunctionLines =
|
|
|
54
75
|
// and silently drop every remaining function's CFG (#2195).
|
|
55
76
|
try {
|
|
56
77
|
const cfg = visitor.buildFunctionCfg(node, filePath);
|
|
57
|
-
if (cfg)
|
|
58
|
-
cfgs.push(shiftCfgLines(cfg, lineOffset));
|
|
78
|
+
if (cfg) {
|
|
79
|
+
cfgs.push(mapLine ? remapCfgLines(cfg, mapLine) : shiftCfgLines(cfg, lineOffset));
|
|
80
|
+
}
|
|
59
81
|
}
|
|
60
82
|
catch (err) {
|
|
61
83
|
if (err instanceof CfgNestingDepthError)
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* `allFileList` entries, and the per-target file ORDER follows
|
|
23
23
|
* `allFileList`.
|
|
24
24
|
*
|
|
25
|
-
* Import-config fans a file to every matching declared target.
|
|
26
|
-
* (`
|
|
27
|
-
* is intentional
|
|
25
|
+
* Import-config fans a file to every matching declared target. Module
|
|
26
|
+
* grouping (`groupSwiftFilesByModule`) anchors target paths at the repo root
|
|
27
|
+
* and picks the deepest. That divergence is intentional: this legacy
|
|
28
|
+
* strategy only sees the root declaration map.
|
|
28
29
|
*/
|
|
29
30
|
import type { ImportResolutionConfig, ImportResolverStrategy } from '../types.js';
|
|
30
31
|
/** Swift Package.swift target map resolution strategy. */
|
|
@@ -22,9 +22,10 @@
|
|
|
22
22
|
* `allFileList` entries, and the per-target file ORDER follows
|
|
23
23
|
* `allFileList`.
|
|
24
24
|
*
|
|
25
|
-
* Import-config fans a file to every matching declared target.
|
|
26
|
-
* (`
|
|
27
|
-
* is intentional
|
|
25
|
+
* Import-config fans a file to every matching declared target. Module
|
|
26
|
+
* grouping (`groupSwiftFilesByModule`) anchors target paths at the repo root
|
|
27
|
+
* and picks the deepest. That divergence is intentional: this legacy
|
|
28
|
+
* strategy only sees the root declaration map.
|
|
28
29
|
*/
|
|
29
30
|
import { SupportedLanguages } from '../../../../_shared/index.js';
|
|
30
31
|
import { coerceDeclaredSwiftTargets, swiftDeclaredTargetPrefix } from '../../language-config.js';
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Jupyter notebook (.ipynb) Python extractor.
|
|
3
|
+
*
|
|
4
|
+
* Pulls code-cell source from nbformat JSON so the Python tree-sitter
|
|
5
|
+
* grammar can parse it. Extraction helpers are I/O-free and worker-safe.
|
|
6
|
+
* `extractNotebookPythonCached` is an optional process-local LRU for FTS.
|
|
7
|
+
*
|
|
8
|
+
* Graph coordinates stay 0-based lines in the on-disk JSON file. Extract
|
|
9
|
+
* buffer lines map through {@link mapExtractLine}.
|
|
10
|
+
*/
|
|
11
|
+
export interface NotebookLineSegment {
|
|
12
|
+
readonly extractStartLine: number;
|
|
13
|
+
readonly extractEndLine: number;
|
|
14
|
+
readonly jsonStartLine: number;
|
|
15
|
+
readonly jsonEndLine: number;
|
|
16
|
+
}
|
|
17
|
+
export interface NotebookPythonExtraction {
|
|
18
|
+
readonly pythonSource: string;
|
|
19
|
+
readonly segments: readonly NotebookLineSegment[];
|
|
20
|
+
}
|
|
21
|
+
export declare function isNotebookPath(filePath: string): boolean;
|
|
22
|
+
export declare function isPythonFamilyLanguage(name: string | undefined | null): boolean;
|
|
23
|
+
export declare function extractNotebookPython(content: string): NotebookPythonExtraction | null;
|
|
24
|
+
export declare function mapExtractLine(row: number, segments: readonly NotebookLineSegment[]): number;
|
|
25
|
+
export declare function extractNotebookPythonCached(filePath: string, content: string): NotebookPythonExtraction | null;
|
|
26
|
+
/** Python snippet for a graph span stored in JSON file coordinates. */
|
|
27
|
+
export declare function notebookPythonSnippetFromExtract(extracted: NotebookPythonExtraction, startLine: number, endLine: number): string | null;
|
|
28
|
+
export declare function notebookPythonSnippet(fileContent: string, startLine: number, endLine: number, filePath?: string): string | null;
|