@shapeshift-labs/frontier-lang-compiler 0.2.149 → 0.2.151
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/README.md +315 -9
- package/bench/real-repo-corpus-checkout-identity.mjs +134 -0
- package/bench/real-repo-corpus-checkout-proof.mjs +263 -0
- package/bench/real-repo-corpus-command-execution.mjs +314 -0
- package/bench/real-repo-corpus-evidence.mjs +165 -0
- package/bench/real-repo-corpus-suite.mjs +273 -0
- package/bench/smoke.mjs +109 -7
- package/dist/declarations/import-adapter-core.d.ts +4 -3
- package/dist/declarations/import-adapter-options-native.d.ts +21 -0
- package/dist/declarations/js-ts-project-merge-admission-routes.d.ts +35 -0
- package/dist/declarations/js-ts-project-merge-commonjs-interop.d.ts +29 -0
- package/dist/declarations/js-ts-project-merge-confidence.d.ts +64 -0
- package/dist/declarations/js-ts-project-merge-declaration-emit-parity.d.ts +37 -0
- package/dist/declarations/js-ts-project-merge-declarations.d.ts +65 -0
- package/dist/declarations/js-ts-project-merge-diagnostics.d.ts +97 -0
- package/dist/declarations/js-ts-project-merge-global-augmentation.d.ts +30 -0
- package/dist/declarations/js-ts-project-merge-jsx-render-branch.d.ts +48 -0
- package/dist/declarations/js-ts-project-merge-proof-levels.d.ts +109 -0
- package/dist/declarations/js-ts-project-merge-quality-gates.d.ts +38 -0
- package/dist/declarations/js-ts-project-merge-semantic-equivalence-proof.d.ts +45 -0
- package/dist/declarations/js-ts-project-merge-tsconfig.d.ts +43 -0
- package/dist/declarations/js-ts-safe-merge.d.ts +47 -0
- package/dist/declarations/js-ts-safe-project-merge.d.ts +120 -38
- package/dist/declarations/native-project-compiler-assignability-oracle.d.ts +41 -0
- package/dist/declarations/native-project-compiler-callable-signatures.d.ts +31 -0
- package/dist/declarations/native-project-compiler-class-member-runtime-proof.d.ts +87 -0
- package/dist/declarations/native-project-compiler-composite-types.d.ts +23 -0
- package/dist/declarations/native-project-compiler-enum-proof.d.ts +58 -0
- package/dist/declarations/native-project-compiler-index-signature.d.ts +7 -0
- package/dist/declarations/native-project-compiler-public-api-source-binding.d.ts +8 -0
- package/dist/declarations/native-project-compiler-scope.d.ts +37 -0
- package/dist/declarations/native-project-compiler-type-reference-targets.d.ts +38 -0
- package/dist/declarations/native-project-css-modules.d.ts +90 -0
- package/dist/declarations/native-project-decorator-metadata.d.ts +126 -0
- package/dist/declarations/native-project-jsx-graph.d.ts +313 -0
- package/dist/declarations/native-project-module-declarations.d.ts +52 -0
- package/dist/declarations/native-project-module-resolution.d.ts +76 -1
- package/dist/declarations/native-project-runtime-effect-target.d.ts +29 -0
- package/dist/declarations/native-project-runtime-executable-effect-evidence.d.ts +107 -0
- package/dist/declarations/native-project-runtime-mutation-target.d.ts +33 -0
- package/dist/declarations/native-project-runtime-promise-chain.d.ts +30 -0
- package/dist/declarations/native-project-runtime-promise-combinator.d.ts +22 -0
- package/dist/declarations/native-project-runtime-reachability.d.ts +30 -0
- package/dist/declarations/native-project-runtime-resource-management.d.ts +27 -0
- package/dist/declarations/native-project-runtime-yield-delegation.d.ts +10 -0
- package/dist/declarations/native-project-scope-template-reference.d.ts +13 -0
- package/dist/declarations/native-project-source-evidence.d.ts +8 -0
- package/dist/declarations/native-project.d.ts +40 -39
- package/dist/declarations/semantic-edit-script.d.ts +10 -8
- package/dist/declarations/semantic-graph-layers.d.ts +79 -0
- package/dist/declarations/semantic-patch-bundle-composition.d.ts +62 -0
- package/dist/declarations/semantic-sidecar.d.ts +3 -2
- package/dist/declarations/semantic-structural-diff.d.ts +94 -0
- package/dist/declarations/source-preservation.d.ts +32 -1
- package/dist/declarations/target-adapters.d.ts +22 -2
- package/dist/index.d.ts +32 -0
- package/dist/index.js +6 -0
- package/dist/internal/index-impl/compileNativeSource.js +53 -5
- package/dist/internal/index-impl/createLightweightNativeImport.js +58 -4
- package/dist/internal/index-impl/createNativeImportFromSyntaxAst.js +17 -1
- package/dist/internal/index-impl/createNativeImportFromTypeScriptAst.js +28 -4
- package/dist/internal/index-impl/createNativeProjectImportResult.js +31 -27
- package/dist/internal/index-impl/createNativeProjectModuleResolutionFromPackageManifests.js +145 -0
- package/dist/internal/index-impl/createNativeSourcePreservation.js +34 -7
- package/dist/internal/index-impl/createSemanticImportSidecar.js +27 -1
- package/dist/internal/index-impl/createTypeScriptCompilerNativeImporterAdapter.js +16 -5
- package/dist/internal/index-impl/dynamicImportExpressionMetadata.js +80 -0
- package/dist/internal/index-impl/importMetaUrlDependencyMetadata.js +176 -0
- package/dist/internal/index-impl/importNativeSource.js +2 -3
- package/dist/internal/index-impl/moduleImportAttributeMetadata.js +232 -0
- package/dist/internal/index-impl/projectSemanticEditScriptToSource.js +8 -1
- package/dist/internal/index-impl/projectSymbolGraphClassStaticBlocks.js +148 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerAdvancedTypeMetadata.js +45 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerCallableSignatureEquivalence.js +107 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerClassPrivateAccessorRuntimeProof.js +280 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerClassShapeEquivalence.js +103 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerConditionalTypeEquivalence.js +242 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerDecoratorRuntimeProof.js +197 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerEnumEquivalence.js +188 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerFacts.js +244 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerIndexSignatureEquivalence.js +58 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerMetadata.js +168 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerTypeEquivalence.js +199 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerTypeEquivalenceProof.js +204 -0
- package/dist/internal/index-impl/projectSymbolGraphCompilerTypeReferenceTargetEquivalence.js +99 -0
- package/dist/internal/index-impl/projectSymbolGraphCssModuleRecords.js +264 -0
- package/dist/internal/index-impl/projectSymbolGraphCssModuleScanners.js +242 -0
- package/dist/internal/index-impl/projectSymbolGraphCssModuleUtils.js +152 -0
- package/dist/internal/index-impl/projectSymbolGraphCssModules.js +82 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxComponentImports.js +170 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxComponentProviderLookup.js +167 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxComponentWrappers.js +150 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxContextTargets.js +71 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxContextValues.js +212 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxEventHandlers.js +172 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxHookEffects.js +124 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxHooks.js +281 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxMemberComponents.js +139 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxPropFlows.js +320 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxPropValues.js +145 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxProviderFlows.js +133 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxRecords.js +315 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxRenderCollections.js +155 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxRenderReturns.js +291 -0
- package/dist/internal/index-impl/projectSymbolGraphJsxRenderRisk.js +279 -0
- package/dist/internal/index-impl/projectSymbolGraphModuleDeclarationShapes.js +138 -0
- package/dist/internal/index-impl/projectSymbolGraphModuleResolution.js +89 -87
- package/dist/internal/index-impl/projectSymbolGraphPackageConditions.js +314 -0
- package/dist/internal/index-impl/projectSymbolGraphReExportImportTargets.js +43 -0
- package/dist/internal/index-impl/projectSymbolGraphReExports.js +55 -1
- package/dist/internal/index-impl/projectSymbolGraphRuntimeRegions.js +108 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefAliases.js +307 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefLexical.js +320 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefOwners.js +50 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefRecordBuilders.js +112 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefRecords.js +238 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefStructural.js +104 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefStructuralNormalize.js +242 -0
- package/dist/internal/index-impl/projectSymbolGraphScopeUseDefUseHashes.js +107 -0
- package/dist/internal/index-impl/projectSymbolGraphSourceMapGeneratedBoundary.js +111 -0
- package/dist/internal/index-impl/projectSymbolGraphSourceRecords.js +268 -0
- package/dist/internal/index-impl/projectSymbolGraphSourceRecordsOwnership.js +309 -0
- package/dist/internal/index-impl/replaySemanticEditProjection.js +53 -39
- package/dist/internal/index-impl/runtimeOrderEvidenceBinding.js +151 -0
- package/dist/internal/index-impl/runtimeOrderProofSurfaces.js +253 -0
- package/dist/internal/index-impl/semanticEditCallsiteArgumentMerge.js +319 -0
- package/dist/internal/index-impl/semanticEditExplicitSourceReplacement.js +7 -2
- package/dist/internal/index-impl/semanticEditProjectionRecord.js +8 -0
- package/dist/internal/index-impl/semanticEditReplayDiagnostics.js +7 -2
- package/dist/internal/index-impl/semanticEditReplayOutputBinding.js +61 -0
- package/dist/internal/index-impl/semanticEditReplayRerunRoute.js +27 -0
- package/dist/internal/index-impl/semanticEditReplaySourceReplacement.js +6 -1
- package/dist/internal/index-impl/semanticEditRuntimeOrderReasons.js +320 -0
- package/dist/internal/index-impl/semanticEditScriptClassification.js +90 -5
- package/dist/internal/index-impl/semanticEditScripts.js +42 -5
- package/dist/internal/index-impl/semanticEditTypeSyntaxReasons.js +134 -0
- package/dist/internal/index-impl/semanticIndexFromNativeDeclarations.js +11 -5
- package/dist/internal/index-impl/semanticPatchBundleComposition.js +166 -0
- package/dist/internal/index-impl/semanticStructuralDiffRecords.js +150 -0
- package/dist/internal/index-impl/sourceMapGeneratedBoundaryGate.js +185 -0
- package/dist/internal/index-impl/staticMemberLiteral.js +31 -0
- package/dist/internal/index-impl/staticOptionalMemberReference.js +22 -0
- package/dist/internal/index-impl/syntaxAstSourcePreservation.js +273 -0
- package/dist/internal/index-impl/syntaxCommonJsModuleDeclarationEntries.js +297 -0
- package/dist/internal/index-impl/syntaxModuleDeclarationEntries.js +56 -132
- package/dist/internal/index-impl/syntaxModuleEntryRecords.js +160 -0
- package/dist/internal/index-impl/typeScriptCompilerAdvancedTypeShapes.js +160 -0
- package/dist/internal/index-impl/typeScriptCompilerAssignabilityOracle.js +97 -0
- package/dist/internal/index-impl/typeScriptCompilerClassApi.js +238 -0
- package/dist/internal/index-impl/typeScriptCompilerDecoratorMetadata.js +290 -0
- package/dist/internal/index-impl/typeScriptCompilerEnumShape.js +279 -0
- package/dist/internal/index-impl/typeScriptCompilerFacts.js +294 -0
- package/dist/internal/index-impl/typeScriptCompilerInferenceSyntax.js +170 -0
- package/dist/internal/index-impl/typeScriptCompilerReferenceGraph.js +186 -0
- package/dist/internal/index-impl/typeScriptCompilerSymbolIdentity.js +294 -0
- package/dist/internal/index-impl/typeScriptCompilerTypeReferenceTargets.js +142 -0
- package/dist/internal/index-impl/typeScriptDeclaration.js +10 -38
- package/dist/internal/index-impl/typeScriptModuleDeclarationEntries.js +52 -15
- package/dist/internal/index-impl/typeScriptSourceFilePreservation.js +296 -0
- package/dist/js-ts-safe-member-class-invariants.js +247 -0
- package/dist/js-ts-safe-member-merge-result.js +23 -3
- package/dist/js-ts-safe-member-merge.js +28 -4
- package/dist/js-ts-safe-merge-binding-patterns.js +170 -0
- package/dist/js-ts-safe-merge-context.js +1 -0
- package/dist/js-ts-safe-merge-jsx-attribute-fallback.js +314 -0
- package/dist/js-ts-safe-merge-jsx-attribute-parser.js +277 -0
- package/dist/js-ts-safe-merge-jsx-child-expression-fallback.js +161 -0
- package/dist/js-ts-safe-merge-jsx-child-expression-merge.js +319 -0
- package/dist/js-ts-safe-merge-jsx-child-expression-parser.js +300 -0
- package/dist/js-ts-safe-merge-parse-declarations.js +46 -2
- package/dist/js-ts-safe-merge-parse-statements.js +8 -0
- package/dist/js-ts-safe-merge-plan.js +3 -1
- package/dist/js-ts-safe-merge-semantic-edit-fallback.js +49 -0
- package/dist/js-ts-safe-merge-source-shape-fallbacks.js +5 -1
- package/dist/js-ts-safe-merge-top-level-rename-fallback.js +31 -5
- package/dist/js-ts-safe-merge-top-level-rename-result.js +7 -2
- package/dist/js-ts-safe-merge-variable-declarator-fallback.js +124 -6
- package/dist/js-ts-safe-merge-variable-declarator-parser.js +34 -4
- package/dist/js-ts-safe-merge.js +136 -0
- package/dist/js-ts-safe-project-merge-admission-routes.js +216 -0
- package/dist/js-ts-safe-project-merge-admission.js +161 -0
- package/dist/js-ts-safe-project-merge-ambient.js +110 -0
- package/dist/js-ts-safe-project-merge-core.js +85 -0
- package/dist/js-ts-safe-project-merge-css-module-conflicts.js +60 -0
- package/dist/js-ts-safe-project-merge-declaration-emit-parity.js +186 -0
- package/dist/js-ts-safe-project-merge-declarations.js +227 -0
- package/dist/js-ts-safe-project-merge-diagnostics-metadata.js +42 -0
- package/dist/js-ts-safe-project-merge-diagnostics-ts.js +73 -0
- package/dist/js-ts-safe-project-merge-diagnostics.js +283 -0
- package/dist/js-ts-safe-project-merge-evidence-routing.js +38 -0
- package/dist/js-ts-safe-project-merge-files.js +70 -0
- package/dist/js-ts-safe-project-merge-global-augmentation-compatibility.js +99 -0
- package/dist/js-ts-safe-project-merge-graph-conflicts.js +90 -2
- package/dist/js-ts-safe-project-merge-graph-delta-commonjs-interop.js +108 -0
- package/dist/js-ts-safe-project-merge-graph-delta-compiler-conflicts.js +179 -0
- package/dist/js-ts-safe-project-merge-graph-delta-compiler-details.js +189 -0
- package/dist/js-ts-safe-project-merge-graph-delta-conflicts.js +51 -184
- package/dist/js-ts-safe-project-merge-graph-delta-identity-conflicts.js +202 -0
- package/dist/js-ts-safe-project-merge-graph-delta-inference-syntax.js +80 -0
- package/dist/js-ts-safe-project-merge-graph-delta-module-declarations.js +155 -0
- package/dist/js-ts-safe-project-merge-graph-limits.js +16 -1
- package/dist/js-ts-safe-project-merge-graph.js +37 -5
- package/dist/js-ts-safe-project-merge-import-removal.js +292 -0
- package/dist/js-ts-safe-project-merge-jsx-graph-conflict-details.js +235 -0
- package/dist/js-ts-safe-project-merge-jsx-graph-conflicts.js +173 -0
- package/dist/js-ts-safe-project-merge-jsx-prop-contracts.js +86 -0
- package/dist/js-ts-safe-project-merge-jsx-render-branch-proof.js +189 -0
- package/dist/js-ts-safe-project-merge-missing-evidence.js +310 -0
- package/dist/js-ts-safe-project-merge-move-rename.js +209 -0
- package/dist/js-ts-safe-project-merge-proof-conflicts.js +44 -0
- package/dist/js-ts-safe-project-merge-proof-levels.js +320 -0
- package/dist/js-ts-safe-project-merge-quality-gates.js +140 -0
- package/dist/js-ts-safe-project-merge-routing-calibration.js +125 -0
- package/dist/js-ts-safe-project-merge-runtime-region-conflicts.js +156 -0
- package/dist/js-ts-safe-project-merge-scope-use-def-conflicts.js +292 -0
- package/dist/js-ts-safe-project-merge-semantic-equivalence-proof.js +175 -0
- package/dist/js-ts-safe-project-merge-semantic-replay-proof.js +311 -0
- package/dist/js-ts-safe-project-merge-semantic-replay-routes.js +179 -0
- package/dist/js-ts-safe-project-merge-source-span-conflicts.js +310 -0
- package/dist/js-ts-safe-project-merge-source-span-roundtrip-proof.js +172 -0
- package/dist/js-ts-safe-project-merge-split-merge-admission.js +96 -0
- package/dist/js-ts-safe-project-merge-split-merge-records.js +320 -0
- package/dist/js-ts-safe-project-merge-split-merge-shapes.js +234 -0
- package/dist/js-ts-safe-project-merge-split-merge.js +218 -0
- package/dist/js-ts-safe-project-merge-summary.js +320 -0
- package/dist/js-ts-safe-project-merge-symbol-move-admission.js +63 -0
- package/dist/js-ts-safe-project-merge-symbol-move-default-admission.js +143 -0
- package/dist/js-ts-safe-project-merge-symbol-move-risks.js +213 -0
- package/dist/js-ts-safe-project-merge-symbol-move.js +316 -0
- package/dist/js-ts-safe-project-merge-symbol-rename-admission.js +59 -0
- package/dist/js-ts-safe-project-merge-symbol-rename-default-admission.js +111 -0
- package/dist/js-ts-safe-project-merge-symbol-rename.js +319 -0
- package/dist/js-ts-safe-project-merge-ts-options.js +205 -0
- package/dist/js-ts-safe-project-merge-ts-program.js +268 -0
- package/dist/js-ts-safe-project-merge-typed-property-rename-rebase-utils.js +69 -0
- package/dist/js-ts-safe-project-merge-typed-property-rename-rebase.js +317 -0
- package/dist/js-ts-safe-project-merge-unsupported-surfaces.js +319 -0
- package/dist/js-ts-safe-project-merge.js +171 -172
- package/dist/js-ts-semantic-scope-use-def-bindings.js +287 -0
- package/dist/js-ts-semantic-scope-use-def-scan.js +241 -0
- package/dist/js-ts-semantic-scope-use-def-utils.js +132 -0
- package/dist/js-ts-semantic-scope-use-def.js +217 -0
- package/dist/lightweight-dependency-effects.js +28 -4
- package/dist/lightweight-dependency-relations.js +13 -7
- package/dist/lightweight-dependency-top-level.js +63 -0
- package/dist/native-import-language-profiles.js +27 -1
- package/dist/native-js-ts-importers.js +9 -5
- package/dist/native-parser-ast-format-profiles.js +12 -0
- package/dist/native-parser-html-css-format-profiles.js +85 -0
- package/dist/native-region-scanner-core.js +5 -3
- package/dist/native-region-scanner-js-commonjs.js +155 -0
- package/dist/native-region-scanner-js-imports.js +51 -13
- package/dist/native-region-scanner-js-reexports.js +79 -0
- package/dist/native-region-scanner-js-ts-helpers.js +23 -0
- package/dist/native-source-ledger-helpers.js +1 -1
- package/dist/native-source-ledger.js +24 -10
- package/dist/native-source-maps-ecma426.js +316 -0
- package/dist/native-source-maps.js +36 -6
- package/dist/native-source-preservation-ownership.js +292 -0
- package/dist/native-source-preservation-scanner.js +63 -25
- package/dist/native-source-preservation-types.d.ts +3 -0
- package/dist/semantic-import-effect-occurrences.js +242 -0
- package/dist/semantic-import-effect-regions.js +95 -58
- package/dist/semantic-import-graph-layers.js +224 -0
- package/dist/semantic-import-runtime-conditional-evidence.js +135 -0
- package/dist/semantic-import-runtime-effect-target-evidence.js +145 -0
- package/dist/semantic-import-runtime-exit-evidence.js +32 -0
- package/dist/semantic-import-runtime-import-meta-evidence.js +33 -0
- package/dist/semantic-import-runtime-mutation-evidence.js +155 -0
- package/dist/semantic-import-runtime-order-evidence.js +318 -0
- package/dist/semantic-import-runtime-promise-chain-evidence.js +103 -0
- package/dist/semantic-import-runtime-promise-combinator-evidence.js +166 -0
- package/dist/semantic-import-runtime-reachability-evidence.js +269 -0
- package/dist/semantic-import-runtime-resource-management-evidence.js +293 -0
- package/dist/semantic-import-runtime-switch-evidence.js +304 -0
- package/dist/semantic-import-runtime-throw-evidence.js +44 -0
- package/dist/semantic-import-runtime-try-finally-evidence.js +172 -0
- package/dist/semantic-import-sidecar-entry.js +4 -0
- package/dist/semantic-import-source-preservation.js +6 -2
- package/package.json +1 -1
|
@@ -60,6 +60,8 @@ export type NativeSourceTokenKind =
|
|
|
60
60
|
| 'operator'
|
|
61
61
|
| 'punctuation'
|
|
62
62
|
| 'comment'
|
|
63
|
+
| 'jsdoc-comment'
|
|
64
|
+
| 'block-comment'
|
|
63
65
|
| 'source-map-comment'
|
|
64
66
|
| 'whitespace'
|
|
65
67
|
| 'newline'
|
|
@@ -145,6 +147,22 @@ export interface NativeSourceLedger {
|
|
|
145
147
|
readonly summary: NativeSourceLedgerSummary;
|
|
146
148
|
}
|
|
147
149
|
|
|
150
|
+
export type ParserTriviaExactnessStatus = 'exact' | 'approximate' | 'blocked' | (string & {});
|
|
151
|
+
export type ParserTriviaOwnershipStatus = 'exact' | 'blocked' | (string & {});
|
|
152
|
+
export type ParserTriviaOwnershipRelation =
|
|
153
|
+
| 'directive-prologue'
|
|
154
|
+
| 'source-directive'
|
|
155
|
+
| 'leading-comment'
|
|
156
|
+
| 'trailing-comment'
|
|
157
|
+
| 'jsdoc-comment'
|
|
158
|
+
| 'block-comment'
|
|
159
|
+
| 'file-comment'
|
|
160
|
+
| 'generated-source-boundary'
|
|
161
|
+
| 'file-entrypoint-directive'
|
|
162
|
+
| (string & {});
|
|
163
|
+
export interface ParserTriviaEvidenceInput { readonly [key: string]: unknown; readonly status?: ParserTriviaExactnessStatus; readonly exactParserTrivia?: boolean; readonly exact?: boolean; readonly losslessCst?: boolean; readonly sourceHash?: string; readonly sourceId?: string; readonly roundtripHash?: string; readonly evidenceSourceHash?: string; readonly parserEvidence?: string; readonly adapterId?: string; readonly parserAdapterId?: string; readonly parserId?: string; readonly adapter?: string; readonly evidenceId?: string; readonly id?: string; readonly blocked?: boolean; readonly reasonCodes?: readonly string[]; readonly blockReasonCodes?: readonly string[]; readonly metadata?: Record<string, unknown>; }
|
|
164
|
+
export interface ParserTriviaExactnessRecord { readonly schema: 'frontier.lang.parserTriviaExactness.v1'; readonly version: 1; readonly status: ParserTriviaExactnessStatus; readonly exactParserTrivia: boolean; readonly losslessCst?: boolean; readonly sourcePath?: string; readonly sourceHash?: string; readonly evidenceSourceHash?: string; readonly sourceHashVerified?: boolean; readonly parserEvidence?: string; readonly adapterId?: string; readonly evidenceId?: string; readonly reasonCodes: readonly string[]; readonly blockReasonCodes: readonly string[]; readonly reviewRequired: boolean; readonly autoMergeClaim: false; readonly semanticEquivalenceClaim: false; }
|
|
165
|
+
|
|
148
166
|
export interface NativeSourcePreservation {
|
|
149
167
|
readonly kind: 'frontier.lang.nativeSourcePreservation';
|
|
150
168
|
readonly version: 1;
|
|
@@ -174,8 +192,19 @@ export interface NativeSourcePreservation {
|
|
|
174
192
|
readonly braces?: number;
|
|
175
193
|
readonly exactSourceAvailable: boolean;
|
|
176
194
|
readonly truncated: boolean;
|
|
195
|
+
readonly parserTriviaExactnessStatus?: string;
|
|
196
|
+
readonly exactParserTrivia?: boolean;
|
|
197
|
+
readonly parserTriviaExactnessReasonCodes?: readonly string[];
|
|
198
|
+
readonly parserTriviaExactnessBlockReasonCodes?: readonly string[];
|
|
177
199
|
};
|
|
178
|
-
readonly metadata?: Record<string, unknown
|
|
200
|
+
readonly metadata?: Record<string, unknown> & { readonly parserTriviaExactness?: ParserTriviaExactnessRecord };
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
export interface NativeSourceTokenTriviaScan {
|
|
204
|
+
readonly tokens: readonly NativeSourcePreservedToken[];
|
|
205
|
+
readonly trivia: readonly NativeSourcePreservedToken[];
|
|
206
|
+
readonly truncated?: boolean;
|
|
207
|
+
readonly parserEvidence?: string;
|
|
179
208
|
}
|
|
180
209
|
|
|
181
210
|
export interface CreateNativeSourcePreservationOptions {
|
|
@@ -192,7 +221,9 @@ export interface CreateNativeSourcePreservationOptions {
|
|
|
192
221
|
readonly includeSourceLedger?: boolean;
|
|
193
222
|
readonly maxTokens?: number;
|
|
194
223
|
readonly maxTrivia?: number;
|
|
224
|
+
readonly tokensAndTrivia?: NativeSourceTokenTriviaScan;
|
|
195
225
|
readonly maxDirectives?: number;
|
|
196
226
|
readonly maxLedgerSpans?: number;
|
|
227
|
+
readonly parserTriviaEvidence?: ParserTriviaEvidenceInput;
|
|
197
228
|
readonly metadata?: Record<string, unknown>;
|
|
198
229
|
}
|
|
@@ -81,11 +81,31 @@ export interface NativeTargetProjectionAdapterInput {
|
|
|
81
81
|
readonly metadata: Record<string, unknown>;
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
export interface Ecma426SourceMapSection {
|
|
85
|
+
readonly offset: { readonly line: number; readonly column: number };
|
|
86
|
+
readonly map: Ecma426SourceMapPayload;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export interface Ecma426SourceMapPayload {
|
|
90
|
+
readonly version: 3;
|
|
91
|
+
readonly file?: string;
|
|
92
|
+
readonly sourceRoot?: string;
|
|
93
|
+
readonly sources?: readonly (string | null)[];
|
|
94
|
+
readonly sourcesContent?: readonly (string | null)[];
|
|
95
|
+
readonly names?: readonly string[];
|
|
96
|
+
readonly mappings?: string;
|
|
97
|
+
readonly ignoreList?: readonly number[];
|
|
98
|
+
readonly sections?: readonly Ecma426SourceMapSection[];
|
|
99
|
+
readonly [key: string]: unknown;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export type NativeSourceMapInput = SourceMapRecord | Ecma426SourceMapPayload | string;
|
|
103
|
+
|
|
84
104
|
export interface NativeTargetProjectionAdapterResult {
|
|
85
105
|
readonly id?: string;
|
|
86
106
|
readonly output?: string;
|
|
87
107
|
readonly outputHash?: string;
|
|
88
|
-
readonly sourceMaps?: readonly
|
|
108
|
+
readonly sourceMaps?: readonly NativeSourceMapInput[];
|
|
89
109
|
readonly losses?: readonly NativeAstLossRecord[];
|
|
90
110
|
readonly evidence?: readonly EvidenceRecord[];
|
|
91
111
|
readonly diagnostics?: readonly NativeImporterAdapterDiagnostic[];
|
|
@@ -128,7 +148,7 @@ export interface NativeTargetProjectionResult {
|
|
|
128
148
|
readonly output: string;
|
|
129
149
|
readonly outputHash: string;
|
|
130
150
|
readonly outputMode: 'target-adapter';
|
|
131
|
-
readonly sourceMaps: readonly
|
|
151
|
+
readonly sourceMaps: readonly NativeSourceMapInput[];
|
|
132
152
|
readonly losses: readonly NativeAstLossRecord[];
|
|
133
153
|
readonly lossSummary: NativeImportLossSummary;
|
|
134
154
|
readonly readiness: NativeImportReadinessClassification;
|
package/dist/index.d.ts
CHANGED
|
@@ -18,19 +18,28 @@ export * from './declarations/semantic-sidecar-admission.js';
|
|
|
18
18
|
export * from './declarations/semantic-merge-candidates.js';
|
|
19
19
|
export * from './declarations/semantic-merge-conflicts.js';
|
|
20
20
|
export * from './declarations/semantic-edit-script.js';
|
|
21
|
+
export * from './declarations/semantic-structural-diff.js';
|
|
21
22
|
export * from './declarations/semantic-lineage.js';
|
|
22
23
|
export * from './declarations/semantic-history.js';
|
|
23
24
|
export * from './declarations/semantic-edit-bundle.js';
|
|
24
25
|
export * from './declarations/semantic-patch-bundle-index.js';
|
|
25
26
|
export * from './declarations/semantic-patch-bundle.js';
|
|
26
27
|
export * from './declarations/semantic-patch-bundle-overlaps.js';
|
|
28
|
+
export * from './declarations/semantic-patch-bundle-composition.js';
|
|
27
29
|
export * from './declarations/semantic-transform-identity.js';
|
|
28
30
|
export * from './declarations/bidirectional-target-change.js';
|
|
29
31
|
export * from './declarations/bidirectional-target-change-source-edit.js';
|
|
30
32
|
export * from './declarations/semantic-impact.js';
|
|
33
|
+
export * from './declarations/semantic-graph-layers.js';
|
|
31
34
|
export * from './declarations/semantic-sidecar.js';
|
|
32
35
|
export * from './declarations/semantic-sidecar-example.js';
|
|
33
36
|
export * from './declarations/js-ts-semantic-merge.js';
|
|
37
|
+
export * from './declarations/js-ts-project-merge-declaration-emit-parity.js';
|
|
38
|
+
export * from './declarations/js-ts-project-merge-declarations.js';
|
|
39
|
+
export * from './declarations/js-ts-project-merge-diagnostics.js';
|
|
40
|
+
export * from './declarations/js-ts-project-merge-tsconfig.js';
|
|
41
|
+
export * from './declarations/js-ts-project-merge-jsx-render-branch.js';
|
|
42
|
+
export * from './declarations/js-ts-project-merge-semantic-equivalence-proof.js';
|
|
34
43
|
export * from './declarations/native-diff.js';
|
|
35
44
|
export * from './declarations/semantic-slice.js';
|
|
36
45
|
export * from './declarations/semantic-slice-admission.js';
|
|
@@ -41,6 +50,29 @@ export * from './declarations/import-adapter-options-platform.js';
|
|
|
41
50
|
export * from './declarations/target-adapters.js';
|
|
42
51
|
export * from './declarations/native-project-admission.js';
|
|
43
52
|
export * from './declarations/native-project-module-resolution.js';
|
|
53
|
+
export * from './declarations/native-project-source-evidence.js';
|
|
54
|
+
export * from './declarations/native-project-jsx-graph.js';
|
|
55
|
+
export * from './declarations/native-project-css-modules.js';
|
|
56
|
+
export * from './declarations/native-project-compiler-callable-signatures.js';
|
|
57
|
+
export * from './declarations/native-project-compiler-composite-types.js';
|
|
58
|
+
export * from './declarations/native-project-compiler-index-signature.js';
|
|
59
|
+
export * from './declarations/native-project-compiler-assignability-oracle.js';
|
|
60
|
+
export * from './declarations/native-project-compiler-public-api-source-binding.js';
|
|
61
|
+
export * from './declarations/native-project-compiler-type-reference-targets.js';
|
|
62
|
+
export * from './declarations/native-project-compiler-enum-proof.js';
|
|
63
|
+
export * from './declarations/native-project-compiler-class-member-runtime-proof.js';
|
|
64
|
+
export * from './declarations/native-project-compiler-scope.js';
|
|
65
|
+
export * from './declarations/native-project-scope-template-reference.js';
|
|
66
|
+
export * from './declarations/native-project-decorator-metadata.js';
|
|
67
|
+
export * from './declarations/native-project-runtime-effect-target.js';
|
|
68
|
+
export * from './declarations/native-project-runtime-mutation-target.js';
|
|
69
|
+
export * from './declarations/native-project-runtime-resource-management.js';
|
|
70
|
+
export * from './declarations/native-project-runtime-reachability.js';
|
|
71
|
+
export * from './declarations/native-project-runtime-promise-combinator.js';
|
|
72
|
+
export * from './declarations/native-project-runtime-promise-chain.js';
|
|
73
|
+
export * from './declarations/native-project-runtime-yield-delegation.js';
|
|
74
|
+
export * from './declarations/native-project-runtime-executable-effect-evidence.js';
|
|
75
|
+
export * from './declarations/native-project-module-declarations.js';
|
|
44
76
|
export * from './declarations/native-project.js';
|
|
45
77
|
export * from './declarations/roundtrip.js';
|
|
46
78
|
export * from './declarations/runtime.js';
|
package/dist/index.js
CHANGED
|
@@ -15,6 +15,7 @@ export { createNativeImportCoverageMatrix } from './internal/index-impl/createNa
|
|
|
15
15
|
export { createNativeImportResultContract } from './internal/index-impl/createNativeImportResultContract.js';
|
|
16
16
|
export { createNativeParserAstFormatMatrix } from './internal/index-impl/createNativeParserAstFormatMatrix.js';
|
|
17
17
|
export { createNativeParserFeatureMatrix } from './internal/index-impl/createNativeParserFeatureMatrix.js';
|
|
18
|
+
export { createNativeProjectModuleResolutionFromPackageManifests } from './internal/index-impl/createNativeProjectModuleResolutionFromPackageManifests.js';
|
|
18
19
|
export { createNativeRoundtripEvidence } from './internal/index-impl/createNativeRoundtripEvidence.js';
|
|
19
20
|
export { createProjectImportAdmissionRecord } from './internal/index-impl/createProjectImportAdmissionRecord.js';
|
|
20
21
|
export { createNativeSourcePreservation } from './internal/index-impl/createNativeSourcePreservation.js';
|
|
@@ -23,8 +24,12 @@ export { createProjectionTargetLossMatrix } from './internal/index-impl/createPr
|
|
|
23
24
|
export { createPythonAstNativeImporterAdapter } from './internal/index-impl/createPythonAstNativeImporterAdapter.js';
|
|
24
25
|
export { createRustSynNativeImporterAdapter } from './internal/index-impl/createRustSynNativeImporterAdapter.js';
|
|
25
26
|
export { createSemanticImportSidecar } from './internal/index-impl/createSemanticImportSidecar.js';
|
|
27
|
+
export { createSemanticGraphLayerSummary, SemanticGraphLayerKinds } from './semantic-import-graph-layers.js';
|
|
26
28
|
export { compactSemanticSidecarExample } from './semantic-sidecar-example.js';
|
|
27
29
|
export * from './js-ts-semantic-merge.js';
|
|
30
|
+
export { createJsTsProjectMergeDeclarationEmitParityProof } from './js-ts-safe-project-merge-declaration-emit-parity.js';
|
|
31
|
+
export { createJsTsProjectMergeDeclarationGate } from './js-ts-safe-project-merge-declarations.js';
|
|
32
|
+
export { createJsTsProjectMergeDiagnosticsGate } from './js-ts-safe-project-merge-diagnostics.js';
|
|
28
33
|
export { createSemanticSlice } from './internal/index-impl/createSemanticSlice.js';
|
|
29
34
|
export { createSemanticSliceAdmissionRecord } from './internal/index-impl/createSemanticSliceAdmissionRecord.js';
|
|
30
35
|
export { createSwiftSyntaxNativeImporterAdapter } from './internal/index-impl/createSwiftSyntaxNativeImporterAdapter.js';
|
|
@@ -72,6 +77,7 @@ export { queryProjectionReadinessMatrix } from './internal/index-impl/queryProje
|
|
|
72
77
|
export { createSemanticPatchBundleRecord, querySemanticPatchBundleRecords, SemanticPatchBundleAdmissionStatuses } from './internal/index-impl/semanticPatchBundleRecords.js';
|
|
73
78
|
export { createSemanticEditBundleAdmission, SemanticEditBundleAdmissionStatuses } from './internal/index-impl/semanticEditBundleAdmission.js';
|
|
74
79
|
export { compareSemanticPatchBundleRecords, querySemanticPatchBundleOverlaps, SemanticPatchBundleOverlapKinds, SemanticPatchBundleOverlapStatuses } from './internal/index-impl/semanticPatchBundleOverlaps.js';
|
|
80
|
+
export { composeSemanticPatchBundleProjections } from './internal/index-impl/semanticPatchBundleComposition.js';
|
|
75
81
|
export { createSemanticTransformIdentityRecord, deriveSemanticTransformIdentityRecords, semanticTransformIdentityFields } from './internal/index-impl/semanticTransformIdentityRecords.js';
|
|
76
82
|
export { createSemanticMergeCandidateAdmissionRecord, decorateSemanticMergeCandidateForAdmission, querySemanticMergeCandidateAdmissionOverlaps, SemanticMergeCandidateProjectionRisks, semanticMergeCandidateReadinessSortKey, sortSemanticMergeCandidateAdmissionRecords } from './internal/index-impl/semanticMergeCandidateRecords.js';
|
|
77
83
|
export { querySemanticMergeConflictClasses, SemanticMergeConflictClasses, semanticMergeConflictRiskScore, sortSemanticMergeCandidatesByConflictRisk, summarizeSemanticMergeConflicts } from './internal/index-impl/semanticMergeConflicts.js';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import{nativeLanguageCompileTarget}from'../../coverage-matrix-profiles.js';import{idFragment,uniqueByEvidenceId,uniqueByLossId}from'../../native-import-utils.js';
|
|
1
|
+
import{nativeLanguageCompileTarget}from'../../coverage-matrix-profiles.js';import{idFragment,uniqueByEvidenceId,uniqueByLossId}from'../../native-import-utils.js';import{normalizeSourceMaps}from'../../native-source-maps.js';
|
|
2
2
|
import{classifyNativeImportReadiness}from'./classifyNativeImportReadiness.js';import{createNativeRoundtripEvidence}from'./createNativeRoundtripEvidence.js';import{createProjectionTargetLossMatrix}from'./createProjectionTargetLossMatrix.js';import{importNativeSource}from'./importNativeSource.js';import{isNativeSourceImportResult}from'./isNativeSourceImportResult.js';import{nativeCompileSourceLanguage}from'./nativeCompileSourceLanguage.js';import{nativeCompileTarget}from'./nativeCompileTarget.js';import{nativeProjectionReview}from'./nativeProjectionReview.js';import{nativeSourceCompileEvidence}from'./nativeSourceCompileEvidence.js';import{nativeSourceCompileSourceMaps}from'./nativeSourceCompileSourceMaps.js';import{nativeSourceCompileTargetCoverage}from'./nativeSourceCompileTargetCoverage.js';import{nativeSourceCompileTargetLosses}from'./nativeSourceCompileTargetLosses.js';import{projectNativeImportToSource}from'./projectNativeImportToSource.js';import{resolveNativeTargetProjectionAdapter}from'./resolveNativeTargetProjectionAdapter.js';import{runNativeTargetProjectionAdapter}from'./runNativeTargetProjectionAdapter.js';import{summarizeNativeImportLosses}from'./summarizeNativeImportLosses.js';
|
|
3
|
+
import{classifySourceMapGeneratedBoundary}from'./sourceMapGeneratedBoundaryGate.js';
|
|
3
4
|
export function compileNativeSource(input, options = {}) {
|
|
4
5
|
const importResult = isNativeSourceImportResult(input) ? input : importNativeSource(input);
|
|
5
6
|
const sourceLanguage = nativeCompileSourceLanguage(importResult, input);
|
|
@@ -105,7 +106,7 @@ export function compileNativeSource(input, options = {}) {
|
|
|
105
106
|
scanKind: 'native-source-compile',
|
|
106
107
|
semanticStatus: importResult.metadata?.semanticStatus ?? options.semanticStatus
|
|
107
108
|
});
|
|
108
|
-
const
|
|
109
|
+
const emittedSourceMaps = options.emitSourceMap === false
|
|
109
110
|
? []
|
|
110
111
|
: nativeSourceCompileSourceMaps({
|
|
111
112
|
id: options.sourceMapId ?? `source_map_${idFragment(id)}_${idFragment(target)}`,
|
|
@@ -123,8 +124,32 @@ export function compileNativeSource(input, options = {}) {
|
|
|
123
124
|
losses,
|
|
124
125
|
compileResultId: id
|
|
125
126
|
});
|
|
127
|
+
const sourceMaps = normalizeSourceMaps(emittedSourceMaps, {
|
|
128
|
+
document: importResult.document,
|
|
129
|
+
nativeSources: [importResult.nativeSource].filter(Boolean),
|
|
130
|
+
nativeAst: importResult.nativeAst ?? importResult.nativeSource?.ast,
|
|
131
|
+
nativeSource: importResult.nativeSource,
|
|
132
|
+
semanticIndex: importResult.semanticIndex ?? importResult.universalAst?.semanticIndex,
|
|
133
|
+
evidence,
|
|
134
|
+
losses,
|
|
135
|
+
sourcePreservation: importResult.metadata?.sourcePreservation ?? importResult.nativeSource?.metadata?.sourcePreservation,
|
|
136
|
+
target,
|
|
137
|
+
targetPath: options.targetPath ?? targetProjection?.targetPath,
|
|
138
|
+
targetHash: options.targetHash ?? outputHash,
|
|
139
|
+
sourcePath: importResult.sourcePath ?? importResult.nativeSource?.sourcePath,
|
|
140
|
+
sourceHash: importResult.nativeSource?.sourceHash ?? importResult.nativeAst?.sourceHash ?? importResult.sourceHash,
|
|
141
|
+
defaultSourceMapId: options.sourceMapId ?? `source_map_${idFragment(id)}_${idFragment(target)}`
|
|
142
|
+
});
|
|
143
|
+
if (targetProjection?.sourceMaps?.length) targetProjection.sourceMaps = sourceMaps;
|
|
126
144
|
const sourceMap = sourceMaps[0];
|
|
127
|
-
const
|
|
145
|
+
const sourceMapGeneratedBoundaryGate = classifySourceMapGeneratedBoundary(sourceMaps, {
|
|
146
|
+
sourceLanguage,
|
|
147
|
+
target,
|
|
148
|
+
outputMode,
|
|
149
|
+
projectionMode: projection.mode
|
|
150
|
+
});
|
|
151
|
+
const projectionReview = {
|
|
152
|
+
...nativeProjectionReview({
|
|
128
153
|
mode: projection.mode, outputMode, language: projection.language, sourceLanguage, target,
|
|
129
154
|
sourcePath: importResult.sourcePath ?? importResult.nativeSource?.sourcePath,
|
|
130
155
|
exactSourceAvailable: projection.metadata?.exactSourceAvailable === true,
|
|
@@ -132,9 +157,12 @@ export function compileNativeSource(input, options = {}) {
|
|
|
132
157
|
sourceHashVerified: projection.metadata?.sourceHashVerified === true,
|
|
133
158
|
declarationCount: projection.declarations.length, sourceMapCount: sourceMaps.length,
|
|
134
159
|
losses, targetLosses, readiness: readiness.readiness, targetCoverage, targetProjection
|
|
135
|
-
|
|
160
|
+
}),
|
|
161
|
+
sourceMapGeneratedBoundaryGate
|
|
162
|
+
};
|
|
136
163
|
compileEvidence.metadata.projectionReview = projectionReview;
|
|
137
|
-
|
|
164
|
+
compileEvidence.metadata.sourceMapGeneratedBoundaryGate = sourceMapGeneratedBoundaryGate;
|
|
165
|
+
for (const record of sourceMaps) record.metadata = { ...(record.metadata ?? {}), projectionReview, sourceMapGeneratedBoundaryGate };
|
|
138
166
|
const roundtripEvidence = createNativeRoundtripEvidence(importResult, {
|
|
139
167
|
id: `evidence_${idPart}_${idFragment(target)}_native_roundtrip`,
|
|
140
168
|
projection,
|
|
@@ -146,6 +174,25 @@ export function compileNativeSource(input, options = {}) {
|
|
|
146
174
|
target,
|
|
147
175
|
outputMode
|
|
148
176
|
});
|
|
177
|
+
const roundtripBoundaryGate = {
|
|
178
|
+
schema: sourceMapGeneratedBoundaryGate.schema,
|
|
179
|
+
version: sourceMapGeneratedBoundaryGate.version,
|
|
180
|
+
status: sourceMapGeneratedBoundaryGate.status,
|
|
181
|
+
readiness: sourceMapGeneratedBoundaryGate.readiness,
|
|
182
|
+
action: sourceMapGeneratedBoundaryGate.action,
|
|
183
|
+
reviewRequired: sourceMapGeneratedBoundaryGate.reviewRequired,
|
|
184
|
+
exactBoundary: sourceMapGeneratedBoundaryGate.exactBoundary,
|
|
185
|
+
sourceMapIds: sourceMapGeneratedBoundaryGate.sourceMapIds,
|
|
186
|
+
sourceMapMappingIds: sourceMapGeneratedBoundaryGate.sourceMapMappingIds,
|
|
187
|
+
reasonCodes: sourceMapGeneratedBoundaryGate.reasonCodes,
|
|
188
|
+
summary: sourceMapGeneratedBoundaryGate.summary
|
|
189
|
+
};
|
|
190
|
+
roundtripEvidence.metadata.sourceMapGeneratedBoundaryGate = roundtripBoundaryGate;
|
|
191
|
+
roundtripEvidence.metadata.roundtripEvidence.sourceMapGeneratedBoundaryGate = roundtripBoundaryGate;
|
|
192
|
+
roundtripEvidence.metadata.roundtripEvidence.audit = {
|
|
193
|
+
...roundtripEvidence.metadata.roundtripEvidence.audit,
|
|
194
|
+
sourceMapGeneratedBoundaryGate: roundtripBoundaryGate
|
|
195
|
+
};
|
|
149
196
|
const resultEvidence = uniqueByEvidenceId([...evidence, roundtripEvidence]);
|
|
150
197
|
return {
|
|
151
198
|
kind: 'frontier.lang.nativeSourceCompileResult',
|
|
@@ -191,6 +238,7 @@ export function compileNativeSource(input, options = {}) {
|
|
|
191
238
|
targetReadiness: targetCoverage.readiness,
|
|
192
239
|
targetSupported: targetCoverage.supported,
|
|
193
240
|
projectionReview,
|
|
241
|
+
sourceMapGeneratedBoundaryGate,
|
|
194
242
|
...options.metadata,
|
|
195
243
|
roundtripEvidence: roundtripEvidence.metadata.roundtripEvidence
|
|
196
244
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{idFragment,uniqueRecordsById}from'../../native-import-utils.js';import{lightweightDependencyRelations}from'../../lightweight-dependency-relations.js';import{lightweightCoverageLosses,scanNativeDeclarations}from'../../native-region-scanner.js';import{semanticOwnershipRegionForDeclaration,semanticPatchHintForRegion}from'../../semantic-import-regions.js';import{createSemanticIndexRecord,hashSemanticValue}from'@shapeshift-labs/frontier-lang-kernel';
|
|
1
|
+
import{idFragment,uniqueRecordsById}from'../../native-import-utils.js';import{lightweightDependencyRelations}from'../../lightweight-dependency-relations.js';import{lightweightCoverageLosses,scanNativeDeclarations}from'../../native-region-scanner.js';import{semanticOwnershipRegionForDeclaration,semanticPatchHintForRegion}from'../../semantic-import-regions.js';import{createSemanticIndexRecord,hashSemanticValue}from'@shapeshift-labs/frontier-lang-kernel';import{dynamicImportExpressionEdgeFields}from'./dynamicImportExpressionMetadata.js';
|
|
2
2
|
export function createLightweightNativeImport(input) {
|
|
3
3
|
const parser = input.parser ?? `${input.language}.lightweight-declaration-scan`;
|
|
4
4
|
const rootId = 'native_root';
|
|
@@ -43,6 +43,8 @@ export function createLightweightNativeImport(input) {
|
|
|
43
43
|
};
|
|
44
44
|
if (declaration.symbolId) {
|
|
45
45
|
const occurrenceId = `occ_${idFragment(declaration.nodeId)}_def`;
|
|
46
|
+
const relationId = `rel_${idFragment(documentId)}_${idFragment(declaration.nodeId)}`;
|
|
47
|
+
const moduleEdge = lightweightModuleEdge(declaration, input, documentId, relationId, ownershipRegion);
|
|
46
48
|
symbols.push({
|
|
47
49
|
id: declaration.symbolId,
|
|
48
50
|
scheme: 'frontier',
|
|
@@ -68,10 +70,11 @@ export function createLightweightNativeImport(input) {
|
|
|
68
70
|
nativeAstNodeId: declaration.nodeId
|
|
69
71
|
});
|
|
70
72
|
relations.push({
|
|
71
|
-
id:
|
|
73
|
+
id: relationId,
|
|
72
74
|
sourceId: documentId,
|
|
73
|
-
predicate: declaration
|
|
74
|
-
targetId: declaration.symbolId
|
|
75
|
+
predicate: lightweightRelationPredicate(declaration),
|
|
76
|
+
targetId: declaration.symbolId,
|
|
77
|
+
...(moduleEdge ? { metadata: { moduleEdge } } : {})
|
|
75
78
|
});
|
|
76
79
|
facts.push({
|
|
77
80
|
id: `fact_${idFragment(declaration.nodeId)}_kind`,
|
|
@@ -93,6 +96,14 @@ export function createLightweightNativeImport(input) {
|
|
|
93
96
|
key: ownershipRegion.key
|
|
94
97
|
}
|
|
95
98
|
});
|
|
99
|
+
if (moduleEdge) facts.push({
|
|
100
|
+
id: `fact_${idFragment(relationId)}_${idFragment(declaration.symbolId)}_module_edge`,
|
|
101
|
+
predicate: 'moduleEdge',
|
|
102
|
+
subjectId: declaration.symbolId,
|
|
103
|
+
objectId: declaration.symbolId,
|
|
104
|
+
value: moduleEdge,
|
|
105
|
+
evidenceIds: [evidenceId]
|
|
106
|
+
});
|
|
96
107
|
mappings.push({
|
|
97
108
|
id: `map_${idFragment(declaration.nodeId)}`,
|
|
98
109
|
nativeAstNodeId: declaration.nodeId,
|
|
@@ -190,3 +201,46 @@ export function createLightweightNativeImport(input) {
|
|
|
190
201
|
}
|
|
191
202
|
};
|
|
192
203
|
}
|
|
204
|
+
|
|
205
|
+
function lightweightRelationPredicate(declaration) {
|
|
206
|
+
if (declaration.role === 'import') return 'imports';
|
|
207
|
+
if (declaration.role === 'export') return 'exports';
|
|
208
|
+
return 'defines';
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
function lightweightModuleEdge(declaration, input, documentId, relationId, ownershipRegion) {
|
|
212
|
+
if (declaration.role !== 'import' && declaration.role !== 'export') return undefined;
|
|
213
|
+
const fields = declaration.fields ?? {};
|
|
214
|
+
const metadata = declaration.metadata ?? {};
|
|
215
|
+
const moduleSpecifier = fields.importPath ?? fields.moduleSpecifier ?? fields.exportPath ?? fields.source
|
|
216
|
+
?? metadata.importPath ?? metadata.moduleSpecifier ?? metadata.exportPath ?? metadata.source;
|
|
217
|
+
return compactRecord({
|
|
218
|
+
kind: 'frontier.lang.moduleEdge',
|
|
219
|
+
version: 1,
|
|
220
|
+
id: relationId,
|
|
221
|
+
edgeKind: declaration.role === 'import' ? 'import' : moduleSpecifier || metadata.reexport ? 're-export' : 'export',
|
|
222
|
+
role: declaration.role,
|
|
223
|
+
sourceDocumentId: documentId,
|
|
224
|
+
sourcePath: input.sourcePath,
|
|
225
|
+
sourceHash: input.sourceHash,
|
|
226
|
+
moduleSpecifier,
|
|
227
|
+
symbolId: declaration.symbolId,
|
|
228
|
+
relationId,
|
|
229
|
+
ownershipRegionId: ownershipRegion.id,
|
|
230
|
+
ownershipRegionKey: ownershipRegion.key,
|
|
231
|
+
importKind: fields.importKind ?? metadata.importKind,
|
|
232
|
+
exportKind: fields.exportKind ?? metadata.exportKind,
|
|
233
|
+
importedName: fields.importedName ?? metadata.importedName,
|
|
234
|
+
exportedName: fields.exportedName ?? metadata.exportedName,
|
|
235
|
+
localName: fields.localName ?? metadata.localName,
|
|
236
|
+
namespace: fields.namespace ?? metadata.namespace,
|
|
237
|
+
exportStar: fields.exportStar ?? metadata.exportStar,
|
|
238
|
+
isTypeOnly: fields.typeOnly ?? fields.isTypeOnly ?? metadata.typeOnly ?? metadata.isTypeOnly,
|
|
239
|
+
...dynamicImportExpressionEdgeFields(metadata),
|
|
240
|
+
publicContract: declaration.role === 'export' || metadata.publicContract
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
function compactRecord(record) {
|
|
245
|
+
return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
|
|
246
|
+
}
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import{adapterDiagnosticToLoss}from'./adapterDiagnosticToLoss.js';
|
|
1
|
+
import { adapterDiagnosticToLoss } from './adapterDiagnosticToLoss.js';
|
|
2
|
+
import { createAstNormalizationContext } from './createAstNormalizationContext.js';
|
|
3
|
+
import { mergeNativeLosses } from './mergeNativeLosses.js';
|
|
4
|
+
import { missingInjectedParserResult } from './missingInjectedParserResult.js';
|
|
5
|
+
import { normalizeSyntaxAstRoot } from './normalizeSyntaxAstRoot.js';
|
|
6
|
+
import { semanticIndexFromNativeDeclarations } from './semanticIndexFromNativeDeclarations.js';
|
|
7
|
+
import { createSyntaxAstSourcePreservation } from './syntaxAstSourcePreservation.js';
|
|
8
|
+
import { truncatedAstLoss } from './truncatedAstLoss.js';
|
|
9
|
+
import { visitSyntaxAstNode } from './visitSyntaxAstNode.js';
|
|
10
|
+
|
|
2
11
|
export function createNativeImportFromSyntaxAst(ast, input, options) {
|
|
3
12
|
const root = normalizeSyntaxAstRoot(ast, options.astFormat);
|
|
4
13
|
if (!root) {
|
|
@@ -14,6 +23,7 @@ export function createNativeImportFromSyntaxAst(ast, input, options) {
|
|
|
14
23
|
context.losses.push(truncatedAstLoss(input, context, options));
|
|
15
24
|
}
|
|
16
25
|
const semantic = semanticIndexFromNativeDeclarations(context.declarations, input, options);
|
|
26
|
+
const sourcePreservation = createSyntaxAstSourcePreservation(ast, input, options);
|
|
17
27
|
return {
|
|
18
28
|
rootId: context.rootId,
|
|
19
29
|
nodes: context.nodes,
|
|
@@ -25,11 +35,17 @@ export function createNativeImportFromSyntaxAst(ast, input, options) {
|
|
|
25
35
|
}, input)) ?? []),
|
|
26
36
|
evidence: semantic.evidence,
|
|
27
37
|
diagnostics: options.diagnostics,
|
|
38
|
+
...(sourcePreservation ? { sourcePreservation } : {}),
|
|
28
39
|
metadata: {
|
|
29
40
|
astFormat: options.astFormat,
|
|
30
41
|
parser: options.parser,
|
|
31
42
|
normalizedNodeCount: Object.keys(context.nodes).length,
|
|
32
43
|
declarationCount: context.declarations.length,
|
|
44
|
+
...(sourcePreservation ? {
|
|
45
|
+
sourcePreservationId: sourcePreservation.id,
|
|
46
|
+
sourcePreservationSummary: sourcePreservation.summary,
|
|
47
|
+
parserTriviaExactness: sourcePreservation.metadata?.parserTriviaExactness
|
|
48
|
+
} : {}),
|
|
33
49
|
truncated: context.truncated
|
|
34
50
|
}
|
|
35
51
|
};
|
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import{createAstNormalizationContext}from'./createAstNormalizationContext.js';
|
|
1
|
+
import { createAstNormalizationContext } from './createAstNormalizationContext.js';
|
|
2
|
+
import { semanticIndexFromNativeDeclarations } from './semanticIndexFromNativeDeclarations.js';
|
|
3
|
+
import {
|
|
4
|
+
attachTypeScriptCompilerReferenceGraph,
|
|
5
|
+
createTypeScriptCompilerReferenceGraph
|
|
6
|
+
} from './typeScriptCompilerReferenceGraph.js';
|
|
7
|
+
import { createTypeScriptSourceFilePreservation } from './typeScriptSourceFilePreservation.js';
|
|
8
|
+
import { truncatedAstLoss } from './truncatedAstLoss.js';
|
|
9
|
+
import { visitTypeScriptAstNode } from './visitTypeScriptAstNode.js';
|
|
10
|
+
|
|
2
11
|
export function createNativeImportFromTypeScriptAst(sourceFile, input, options) {
|
|
3
12
|
const context = createAstNormalizationContext(input, options);
|
|
4
13
|
visitTypeScriptAstNode(sourceFile, sourceFile, context, 'root', options.ts);
|
|
@@ -6,18 +15,33 @@ export function createNativeImportFromTypeScriptAst(sourceFile, input, options)
|
|
|
6
15
|
context.losses.push(truncatedAstLoss(input, context, options));
|
|
7
16
|
}
|
|
8
17
|
const semantic = semanticIndexFromNativeDeclarations(context.declarations, input, options);
|
|
18
|
+
const referenceGraph = createTypeScriptCompilerReferenceGraph(
|
|
19
|
+
sourceFile,
|
|
20
|
+
input,
|
|
21
|
+
options,
|
|
22
|
+
context,
|
|
23
|
+
semantic.semanticIndex
|
|
24
|
+
);
|
|
25
|
+
const sourcePreservation = createTypeScriptSourceFilePreservation(sourceFile, input, options);
|
|
9
26
|
return {
|
|
10
27
|
rootId: context.rootId,
|
|
11
28
|
nodes: context.nodes,
|
|
12
|
-
semanticIndex: semantic.semanticIndex,
|
|
13
|
-
mappings: semantic.mappings,
|
|
29
|
+
semanticIndex: attachTypeScriptCompilerReferenceGraph(semantic.semanticIndex, referenceGraph),
|
|
30
|
+
mappings: [...semantic.mappings, ...referenceGraph.mappings],
|
|
14
31
|
losses: context.losses,
|
|
15
|
-
evidence: semantic.evidence,
|
|
32
|
+
evidence: [...semantic.evidence, ...referenceGraph.evidence],
|
|
33
|
+
...(sourcePreservation ? { sourcePreservation } : {}),
|
|
16
34
|
metadata: {
|
|
17
35
|
astFormat: options.astFormat,
|
|
18
36
|
parser: options.parser,
|
|
19
37
|
normalizedNodeCount: Object.keys(context.nodes).length,
|
|
20
38
|
declarationCount: context.declarations.length,
|
|
39
|
+
compilerReferenceGraph: referenceGraph.summary,
|
|
40
|
+
...(sourcePreservation ? {
|
|
41
|
+
sourcePreservationId: sourcePreservation.id,
|
|
42
|
+
sourcePreservationSummary: sourcePreservation.summary,
|
|
43
|
+
parserTriviaExactness: sourcePreservation.metadata?.parserTriviaExactness
|
|
44
|
+
} : {}),
|
|
21
45
|
truncated: context.truncated
|
|
22
46
|
}
|
|
23
47
|
};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import{idFragment,uniqueByEvidenceId,uniqueByLossId,uniqueStrings}from'../../native-import-utils.js';import{createDocument,createPatch,createUniversalAstEnvelope}from'@shapeshift-labs/frontier-lang-kernel';
|
|
2
2
|
import{createNativeImportResultContract}from'./createNativeImportResultContract.js';import{createProjectImportAdmissionRecord}from'./createProjectImportAdmissionRecord.js';import{mergeSemanticIndexes}from'./mergeSemanticIndexes.js';import{summarizeNativeImportLosses}from'./summarizeNativeImportLosses.js';import{summarizeProjectSourcePreservation}from'./summarizeProjectSourcePreservation.js';
|
|
3
3
|
import{createProjectDocumentExportSymbolResolver,createProjectDocumentExportSymbolsResolver,createProjectModuleSymbolResolver,resolveProjectModule}from'./projectSymbolGraphModuleResolution.js';
|
|
4
|
+
import{createProjectCompilerGraphRecords}from'./projectSymbolGraphCompilerFacts.js';import{createProjectJsxGraphRecords}from'./projectSymbolGraphJsxRecords.js';import{createProjectRuntimeRegionRecords}from'./projectSymbolGraphRuntimeRegions.js';import{createProjectScopeUseDefRecords}from'./projectSymbolGraphScopeUseDefRecords.js';import{createProjectSourceEvidenceRecords}from'./projectSymbolGraphSourceRecords.js';import{createProjectCssModuleGraphRecords}from'./projectSymbolGraphCssModules.js';
|
|
4
5
|
import{publicContractRegionRecord}from'./projectSymbolGraphPublicContracts.js';
|
|
5
|
-
import{exportStarReExportIdentityRecords,isReExportImportEdge,reExportIdentityInputFromEdge,reExportIdentityRecord}from'./projectSymbolGraphReExports.js';
|
|
6
|
+
import{commonJsAliasReExportIdentityRecords,exportStarReExportIdentityRecords,isReExportImportEdge,reExportIdentityInputFromEdge,reExportIdentityRecord}from'./projectSymbolGraphReExports.js';import{createProjectModuleDeclarationShapeRecords}from'./projectSymbolGraphModuleDeclarationShapes.js';import{resolveReExportIdentityImportTargets}from'./projectSymbolGraphReExportImportTargets.js';
|
|
6
7
|
export function createNativeProjectImportResult(input, imports) {
|
|
7
8
|
const idPart = idFragment(input.id ?? input.projectRoot ?? 'native_project');
|
|
8
9
|
const nodes = {};
|
|
@@ -141,9 +142,7 @@ export function createNativeProjectImportResult(input, imports) {
|
|
|
141
142
|
}
|
|
142
143
|
};
|
|
143
144
|
}
|
|
144
|
-
|
|
145
145
|
const PROJECT_SYMBOL_GRAPH_REMAINING_FIELDS = Object.freeze([]);
|
|
146
|
-
|
|
147
146
|
function createProjectSymbolGraphSummary(semanticIndex, imports, input) {
|
|
148
147
|
const documents = semanticIndex?.documents ?? [];
|
|
149
148
|
const symbolsById = new Map((semanticIndex?.symbols ?? []).map((symbol) => [symbol.id, symbol]));
|
|
@@ -155,7 +154,7 @@ function createProjectSymbolGraphSummary(semanticIndex, imports, input) {
|
|
|
155
154
|
const resolveDocumentExportSymbols = createProjectDocumentExportSymbolsResolver(semanticIndex?.symbols ?? [], documents);
|
|
156
155
|
const facts = semanticIndex?.facts ?? [];
|
|
157
156
|
const moduleEdgeFacts = facts.filter((fact) => fact.predicate === 'moduleEdge');
|
|
158
|
-
const moduleEdgeByRelation = new Map(moduleEdgeFacts.map((fact) => [fact.subjectId, fact]));
|
|
157
|
+
const moduleEdgeByRelation = new Map(moduleEdgeFacts.map((fact) => [objectValue(fact.value).relationId ?? fact.subjectId, fact]));
|
|
159
158
|
const relations = semanticIndex?.relations ?? [];
|
|
160
159
|
const importEdges = relations
|
|
161
160
|
.filter((relation) => relation.predicate === 'imports')
|
|
@@ -167,19 +166,19 @@ function createProjectSymbolGraphSummary(semanticIndex, imports, input) {
|
|
|
167
166
|
const reExportIdentities = uniqueRecords([
|
|
168
167
|
...facts
|
|
169
168
|
.filter((fact) => fact.predicate === 'reExportIdentity' && fact.value)
|
|
169
|
+
.filter((fact) => hasConcreteReExportIdentity(objectValue(fact.value)))
|
|
170
170
|
.map((fact) => reExportIdentityRecord(objectValue(fact.value), moduleEdgeById.get(objectValue(fact.value).relationId ?? fact.objectId), resolveDocumentExportSymbolId, { factId: fact.id })),
|
|
171
|
-
...exportEdges
|
|
172
|
-
.filter((edge) => edge.isReExport)
|
|
173
|
-
.map((edge) => reExportIdentityRecord(reExportIdentityInputFromEdge(edge, `reexport_${idFragment(edge.id)}`), edge, resolveDocumentExportSymbolId)),
|
|
174
171
|
...importEdges
|
|
175
172
|
.filter((edge) => isReExportImportEdge(edge))
|
|
176
173
|
.flatMap((edge) => edge.exportStar
|
|
177
174
|
? exportStarReExportIdentityRecords(edge, resolveDocumentExportSymbols(edge.targetDocumentId))
|
|
178
|
-
: [reExportIdentityRecord(reExportIdentityInputFromEdge(edge, `reexport_${idFragment(edge.id)}`), edge, resolveDocumentExportSymbolId)])
|
|
175
|
+
: [reExportIdentityRecord(reExportIdentityInputFromEdge(edge, `reexport_${idFragment(edge.id)}`), edge, resolveDocumentExportSymbolId)]),...commonJsAliasReExportIdentityRecords(importEdges, exportEdges, resolveDocumentExportSymbolId)
|
|
179
176
|
]);
|
|
177
|
+
const resolvedImportEdges = resolveReExportIdentityImportTargets(importEdges, reExportIdentities);
|
|
180
178
|
const publicContractRegions = uniqueRecords(facts
|
|
181
179
|
.filter((fact) => fact.predicate === 'publicContractRegion' && fact.value)
|
|
182
180
|
.map((fact) => publicContractRegionRecord(objectValue(fact.value), fact, symbolsById.get(fact.subjectId))));
|
|
181
|
+
const compilerGraphRecords = createProjectCompilerGraphRecords(semanticIndex, symbolsById, documentsById, publicContractRegions); const runtimeRegionRecords = createProjectRuntimeRegionRecords(semanticIndex, imports, publicContractRegions); const scopeUseDefRecords = createProjectScopeUseDefRecords(semanticIndex, imports, publicContractRegions); const jsxGraphRecords = createProjectJsxGraphRecords(semanticIndex, imports, publicContractRegions, resolvedImportEdges, exportEdges); const cssModuleGraphRecords = createProjectCssModuleGraphRecords(semanticIndex, imports, resolvedImportEdges, scopeUseDefRecords.scopeReferenceRecords, jsxGraphRecords.jsxPropRecords); const sourceEvidenceRecords = createProjectSourceEvidenceRecords(imports); const moduleDeclarationShapeRecords = createProjectModuleDeclarationShapeRecords(semanticIndex, exportEdges);
|
|
183
182
|
const fileHashes = uniqueRecords([
|
|
184
183
|
...documents.map((document) => fileHashRecord(document)),
|
|
185
184
|
...facts
|
|
@@ -197,10 +196,20 @@ function createProjectSymbolGraphSummary(semanticIndex, imports, input) {
|
|
|
197
196
|
relationCount: relations.length,
|
|
198
197
|
factCount: facts.length,
|
|
199
198
|
fileHashes,
|
|
200
|
-
importEdges,
|
|
199
|
+
importEdges: resolvedImportEdges,
|
|
201
200
|
exportEdges,
|
|
202
|
-
reExportIdentities,
|
|
201
|
+
reExportIdentities, moduleDeclarationRecords: moduleDeclarationShapeRecords.moduleDeclarationRecords, exportAssignmentRecords: moduleDeclarationShapeRecords.exportAssignmentRecords,
|
|
203
202
|
publicContractRegions,
|
|
203
|
+
sourceFileRecords: sourceEvidenceRecords.sourceFileRecords, sourceSpanRecords: sourceEvidenceRecords.sourceSpanRecords,
|
|
204
|
+
compilerSymbolRecords: compilerGraphRecords.compilerSymbolRecords,
|
|
205
|
+
compilerTypeRecords: compilerGraphRecords.compilerTypeRecords,
|
|
206
|
+
runtimeRegionRecords,
|
|
207
|
+
scopeBindingRecords: scopeUseDefRecords.scopeBindingRecords,
|
|
208
|
+
scopeReferenceRecords: scopeUseDefRecords.scopeReferenceRecords,
|
|
209
|
+
jsxElementRecords: jsxGraphRecords.jsxElementRecords,
|
|
210
|
+
jsxPropRecords: jsxGraphRecords.jsxPropRecords,
|
|
211
|
+
cssModuleImportBindings: cssModuleGraphRecords.cssModuleImportBindings, cssModuleUseSites: cssModuleGraphRecords.cssModuleUseSites,
|
|
212
|
+
cssModuleUseSiteBlockers: cssModuleGraphRecords.cssModuleUseSiteBlockers, cssModuleUseSiteGraphs: cssModuleGraphRecords.cssModuleUseSiteGraphs,
|
|
204
213
|
remainingFields: PROJECT_SYMBOL_GRAPH_REMAINING_FIELDS
|
|
205
214
|
};
|
|
206
215
|
}
|
|
@@ -223,7 +232,8 @@ function moduleEdgeRecord(relation, moduleEdgeByRelation, symbolsById, documents
|
|
|
223
232
|
symbolMetadata.source,
|
|
224
233
|
symbol?.kind === 'module' ? symbol.name : undefined
|
|
225
234
|
);
|
|
226
|
-
const
|
|
235
|
+
const runtimeEdgeMetadata = compactRecord({ importKind: firstString(moduleEdge.importKind, value.importKind, symbolMetadata.importKind), exportKind: firstString(moduleEdge.exportKind, value.exportKind, symbolMetadata.exportKind), dynamicImport: firstBoolean(moduleEdge.dynamicImport, value.dynamicImport, metadata.dynamicImport, symbolMetadata.dynamicImport), hostDependencyKind: firstString(moduleEdge.hostDependencyKind, value.hostDependencyKind, metadata.hostDependencyKind, symbolMetadata.hostDependencyKind), commonJs: firstBoolean(moduleEdge.commonJs, value.commonJs, metadata.commonJs, symbolMetadata.commonJs), interopHelper: firstString(moduleEdge.interopHelper, value.interopHelper, metadata.interopHelper, symbolMetadata.interopHelper), packageEnvironmentCondition: firstString(moduleEdge.packageEnvironmentCondition, value.packageEnvironmentCondition, metadata.packageEnvironmentCondition, symbolMetadata.packageEnvironmentCondition) });
|
|
236
|
+
const resolution = resolveProjectModule(document?.path, moduleSpecifier, documentsByPath, moduleResolution, runtimeEdgeMetadata);
|
|
227
237
|
const record = {
|
|
228
238
|
id: relation.id,
|
|
229
239
|
sourceDocumentId: relation.sourceId,
|
|
@@ -239,11 +249,15 @@ function moduleEdgeRecord(relation, moduleEdgeByRelation, symbolsById, documents
|
|
|
239
249
|
resolutionPathVariant: resolution?.resolutionPathVariant,
|
|
240
250
|
packageName: resolution?.packageName,
|
|
241
251
|
packageSubpath: resolution?.packageSubpath,
|
|
252
|
+
packageExportKey: resolution?.packageExportKey,
|
|
242
253
|
packageExportCondition: resolution?.packageExportCondition,
|
|
254
|
+
packageExportTarget: resolution?.packageExportTarget,
|
|
255
|
+
packageRuntimeCondition: resolution?.packageRuntimeCondition, packageRuntimeConditionEvidenceSource: resolution?.packageRuntimeConditionEvidenceSource, packageRuntimeConditionEdgeKind: resolution?.packageRuntimeConditionEdgeKind, packageRuntimeConditionCandidates: resolution?.packageRuntimeConditionCandidates, packageRuntimeConditionReasonCode: resolution?.packageRuntimeConditionReasonCode, packageEnvironmentCondition: resolution?.packageEnvironmentCondition, packageEnvironmentConditionEvidenceSource: resolution?.packageEnvironmentConditionEvidenceSource, packageEnvironmentConditionCandidates: resolution?.packageEnvironmentConditionCandidates, packageEnvironmentConditionReasonCode: resolution?.packageEnvironmentConditionReasonCode, packageWorkspaceRootAmbiguous: resolution?.packageWorkspaceRootAmbiguous, packageWorkspaceRoots: resolution?.packageWorkspaceRoots, packageResolutionReasonCode: resolution?.packageResolutionReasonCode,
|
|
256
|
+
packageType: resolution?.packageType,
|
|
243
257
|
packageImportKey: resolution?.packageImportKey,
|
|
244
258
|
packageImportCondition: resolution?.packageImportCondition,
|
|
245
259
|
packageImportTarget: resolution?.packageImportTarget,
|
|
246
|
-
importKind: firstString(moduleEdge.importKind, value.importKind, symbolMetadata.importKind),
|
|
260
|
+
importKind: firstString(moduleEdge.importKind, value.importKind, symbolMetadata.importKind), commonJs: firstBoolean(moduleEdge.commonJs, value.commonJs, metadata.commonJs, symbolMetadata.commonJs), interopHelper: firstString(moduleEdge.interopHelper, value.interopHelper, metadata.interopHelper, symbolMetadata.interopHelper), dynamicImport: firstBoolean(moduleEdge.dynamicImport, value.dynamicImport, metadata.dynamicImport, symbolMetadata.dynamicImport), dynamicImportSpecifierKind: firstString(moduleEdge.dynamicImportSpecifierKind, value.dynamicImportSpecifierKind, metadata.dynamicImportSpecifierKind, symbolMetadata.dynamicImportSpecifierKind), dynamicImportExpressionText: firstString(moduleEdge.dynamicImportExpressionText, value.dynamicImportExpressionText, metadata.dynamicImportExpressionText, symbolMetadata.dynamicImportExpressionText), dynamicImportExpressionHash: firstString(moduleEdge.dynamicImportExpressionHash, value.dynamicImportExpressionHash, metadata.dynamicImportExpressionHash, symbolMetadata.dynamicImportExpressionHash), dynamicImportStaticSpecifierEvidence: firstBoolean(moduleEdge.dynamicImportStaticSpecifierEvidence, value.dynamicImportStaticSpecifierEvidence, metadata.dynamicImportStaticSpecifierEvidence, symbolMetadata.dynamicImportStaticSpecifierEvidence), dynamicImportRuntimeResolutionClaim: firstBoolean(moduleEdge.dynamicImportRuntimeResolutionClaim, value.dynamicImportRuntimeResolutionClaim, metadata.dynamicImportRuntimeResolutionClaim, symbolMetadata.dynamicImportRuntimeResolutionClaim), dynamicImportResolutionProofRequired: firstBoolean(moduleEdge.dynamicImportResolutionProofRequired, value.dynamicImportResolutionProofRequired, metadata.dynamicImportResolutionProofRequired, symbolMetadata.dynamicImportResolutionProofRequired), hostDependency: firstBoolean(moduleEdge.hostDependency, value.hostDependency, metadata.hostDependency, symbolMetadata.hostDependency), hostDependencyKind: firstString(moduleEdge.hostDependencyKind, value.hostDependencyKind, metadata.hostDependencyKind, symbolMetadata.hostDependencyKind), hostDependencyBase: firstString(moduleEdge.hostDependencyBase, value.hostDependencyBase, metadata.hostDependencyBase, symbolMetadata.hostDependencyBase), hostDependencyExpressionText: firstString(moduleEdge.hostDependencyExpressionText, value.hostDependencyExpressionText, metadata.hostDependencyExpressionText, symbolMetadata.hostDependencyExpressionText), hostDependencyExpressionHash: firstString(moduleEdge.hostDependencyExpressionHash, value.hostDependencyExpressionHash, metadata.hostDependencyExpressionHash, symbolMetadata.hostDependencyExpressionHash), hostDependencyStaticSpecifierEvidence: firstBoolean(moduleEdge.hostDependencyStaticSpecifierEvidence, value.hostDependencyStaticSpecifierEvidence, metadata.hostDependencyStaticSpecifierEvidence, symbolMetadata.hostDependencyStaticSpecifierEvidence), hostDependencyRuntimeResolutionClaim: firstBoolean(moduleEdge.hostDependencyRuntimeResolutionClaim, value.hostDependencyRuntimeResolutionClaim, metadata.hostDependencyRuntimeResolutionClaim, symbolMetadata.hostDependencyRuntimeResolutionClaim), hostDependencyResolutionProofRequired: firstBoolean(moduleEdge.hostDependencyResolutionProofRequired, value.hostDependencyResolutionProofRequired, metadata.hostDependencyResolutionProofRequired, symbolMetadata.hostDependencyResolutionProofRequired), hasImportAttributes: firstBoolean(moduleEdge.hasImportAttributes, value.hasImportAttributes, metadata.hasImportAttributes, symbolMetadata.hasImportAttributes), importAttributeCount: moduleEdge.importAttributeCount ?? value.importAttributeCount ?? metadata.importAttributeCount ?? symbolMetadata.importAttributeCount, importAttributeKeys: moduleEdge.importAttributeKeys ?? value.importAttributeKeys ?? metadata.importAttributeKeys ?? symbolMetadata.importAttributeKeys, importAttributeHash: firstString(moduleEdge.importAttributeHash, value.importAttributeHash, metadata.importAttributeHash, symbolMetadata.importAttributeHash), importAttributes: moduleEdge.importAttributes ?? value.importAttributes ?? metadata.importAttributes ?? symbolMetadata.importAttributes,
|
|
247
261
|
exportKind: firstString(moduleEdge.exportKind, value.exportKind, symbolMetadata.exportKind),
|
|
248
262
|
importedName: firstString(moduleEdge.importedName, value.importedName, symbolMetadata.importedName),
|
|
249
263
|
exportedName: firstString(moduleEdge.exportedName, value.exportedName, symbolMetadata.exportedName),
|
|
@@ -252,7 +266,7 @@ function moduleEdgeRecord(relation, moduleEdgeByRelation, symbolsById, documents
|
|
|
252
266
|
exportStar: firstBoolean(moduleEdge.exportStar, value.exportStar, symbolMetadata.exportStar),
|
|
253
267
|
isTypeOnly: firstBoolean(moduleEdge.isTypeOnly, value.isTypeOnly, symbolMetadata.isTypeOnly, symbolMetadata.typeOnly),
|
|
254
268
|
isReExport: firstBoolean(moduleEdge.isReExport, value.isReExport, symbolMetadata.reexport) ?? (relation.predicate === 'exports' && Boolean(moduleSpecifier)),
|
|
255
|
-
publicContract: firstBoolean(moduleEdge.publicContract, value.publicContract, metadata.publicContract),
|
|
269
|
+
publicContract: firstBoolean(moduleEdge.publicContract, value.publicContract, metadata.publicContract, symbolMetadata.publicContract),
|
|
256
270
|
evidenceIds: uniqueStrings([...(relation.evidenceIds ?? []), ...(fact?.evidenceIds ?? [])])
|
|
257
271
|
};
|
|
258
272
|
return compactRecord({ ...record, resolvedTargetSymbolId: resolveTargetSymbolId(record) });
|
|
@@ -277,6 +291,8 @@ function objectValue(value) {
|
|
|
277
291
|
return value && typeof value === 'object' && !Array.isArray(value) ? value : {};
|
|
278
292
|
}
|
|
279
293
|
|
|
294
|
+
function hasConcreteReExportIdentity(identity) { return Boolean(identity.exportedName || identity.importedName || identity.localName || identity.namespace); }
|
|
295
|
+
|
|
280
296
|
function compactRecord(record) {
|
|
281
297
|
return Object.fromEntries(Object.entries(record).filter(([, value]) => value !== undefined));
|
|
282
298
|
}
|
|
@@ -292,17 +308,5 @@ function uniqueRecords(records) {
|
|
|
292
308
|
}
|
|
293
309
|
return result;
|
|
294
310
|
}
|
|
295
|
-
|
|
296
|
-
function
|
|
297
|
-
for (const value of values) {
|
|
298
|
-
if (value !== undefined && value !== null && String(value)) return String(value);
|
|
299
|
-
}
|
|
300
|
-
return undefined;
|
|
301
|
-
}
|
|
302
|
-
|
|
303
|
-
function firstBoolean(...values) {
|
|
304
|
-
for (const value of values) {
|
|
305
|
-
if (typeof value === 'boolean') return value;
|
|
306
|
-
}
|
|
307
|
-
return undefined;
|
|
308
|
-
}
|
|
311
|
+
function firstString(...values) { for (const value of values) if (value !== undefined && value !== null && String(value)) return String(value); return undefined; }
|
|
312
|
+
function firstBoolean(...values) { for (const value of values) if (typeof value === 'boolean') return value; return undefined; }
|