@suss/extractor 0.36.0 → 0.37.1
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/index.cjs +15 -0
- package/dist/index.d.cts +29 -5
- package/dist/index.d.ts +29 -5
- package/dist/index.js +18 -0
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -3837,8 +3837,23 @@ function detectGaps(raw, transitions, options) {
|
|
|
3837
3837
|
if (raw.declaredContract && answersWithHttpResponses(raw)) {
|
|
3838
3838
|
gaps.push(...contractStatusGaps(raw.declaredContract, transitions));
|
|
3839
3839
|
}
|
|
3840
|
+
gaps.push(...unsettledJobGaps(transitions));
|
|
3840
3841
|
return gaps;
|
|
3841
3842
|
}
|
|
3843
|
+
function unsettledJobGaps(transitions) {
|
|
3844
|
+
const callees = /* @__PURE__ */ new Set();
|
|
3845
|
+
for (const transition of transitions) {
|
|
3846
|
+
for (const effect of transition.effects) {
|
|
3847
|
+
if (effect.type !== "interaction" || effect.interaction.class !== "message-send" || !(0, import_behavioral_ir10.isUnsettledJob)(effect.binding)) {
|
|
3848
|
+
continue;
|
|
3849
|
+
}
|
|
3850
|
+
callees.add(effect.callee ?? (0, import_behavioral_ir10.displayLabel)(effect.binding));
|
|
3851
|
+
}
|
|
3852
|
+
}
|
|
3853
|
+
return [...callees].map(
|
|
3854
|
+
(callee) => (0, import_behavioral_ir10.unfollowedCallGap)({ callee, reason: "unsettledJob" })
|
|
3855
|
+
);
|
|
3856
|
+
}
|
|
3842
3857
|
function bodyWentUnread(raw) {
|
|
3843
3858
|
if (raw.readFailure !== void 0) {
|
|
3844
3859
|
return true;
|
package/dist/index.d.cts
CHANGED
|
@@ -590,7 +590,26 @@ type DiscoveryMatch = {
|
|
|
590
590
|
* side of the package-export boundary, whichever two they are.
|
|
591
591
|
*/
|
|
592
592
|
workspaces?: true;
|
|
593
|
-
} | TestCaseMatch;
|
|
593
|
+
} | CallbackArgumentMatch | TestCaseMatch;
|
|
594
|
+
/**
|
|
595
|
+
* A function handed to a call or construction of a library export, which
|
|
596
|
+
* the library then calls with work of its own. BullMQ's
|
|
597
|
+
* `new Worker("emails", async (job) => {...})` is the case it was written
|
|
598
|
+
* for: the processor becomes a unit, and a binding the pattern declares
|
|
599
|
+
* can read its channel off the same call with `callArgument`.
|
|
600
|
+
*
|
|
601
|
+
* `new X(...)` and `x(...)` both match. The function is followed the way
|
|
602
|
+
* any value is, so a processor written in another module and passed by
|
|
603
|
+
* name is found too. A function the run cannot settle to one body, such
|
|
604
|
+
* as a parameter or a file path the library loads itself, gives no unit.
|
|
605
|
+
*/
|
|
606
|
+
interface CallbackArgumentMatch {
|
|
607
|
+
type: "callbackArgument";
|
|
608
|
+
importModule: string;
|
|
609
|
+
importName: string;
|
|
610
|
+
/** Which argument is the function. */
|
|
611
|
+
callbackPosition: number;
|
|
612
|
+
}
|
|
594
613
|
/**
|
|
595
614
|
* Test cases written as nested calls, the way vitest, jest and mocha
|
|
596
615
|
* write them: `describe("orders", () => { it("cancels", () => ...) })`.
|
|
@@ -735,13 +754,18 @@ type BindingExtraction = {
|
|
|
735
754
|
*
|
|
736
755
|
* `decoratorArgument` reads the argument off the same decorator the
|
|
737
756
|
* match selected the handler by, so `@EventPattern("order.placed")`
|
|
738
|
-
* gives "order.placed". `
|
|
739
|
-
*
|
|
740
|
-
*
|
|
757
|
+
* gives "order.placed". `callArgument` reads an argument of the call a
|
|
758
|
+
* `callbackArgument` match found the function in, so
|
|
759
|
+
* `new Worker("emails", fn)` gives "emails". `literal` is for a wire
|
|
760
|
+
* whose channel the library fixes. `unstated` means the wire is known
|
|
761
|
+
* and the channel is not, and it pairs the same as a null channel.
|
|
741
762
|
*/
|
|
742
763
|
type ChannelSource = {
|
|
743
764
|
from: "decoratorArgument";
|
|
744
765
|
position: number;
|
|
766
|
+
} | {
|
|
767
|
+
from: "callArgument";
|
|
768
|
+
position: number;
|
|
745
769
|
} | {
|
|
746
770
|
from: "literal";
|
|
747
771
|
value: string;
|
|
@@ -4237,4 +4261,4 @@ declare function rawConditionToPredicate(c: RawCondition): Predicate;
|
|
|
4237
4261
|
declare function effectToIR(effect: RawEffect): Effect;
|
|
4238
4262
|
declare function paramToInput(param: RawParameter): Input;
|
|
4239
4263
|
|
|
4240
|
-
export { type AccessRecognizer, type AdapterCodeStamp, type AdapterStamp, type ArgumentParser, type AstCapableOps, type BindingExtraction, type BodyContent, type BranchEnding, CACHE_DIR_ENV, type CacheAttribution, type CacheDiagnostic, type CacheInput, type CacheLayer, type CacheLookup, type CallOps, type CaseGroup, type ChannelSource, type ChildrenOf, type ChosenReading, type ClassOps, type CodeHasher, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredEntryPoint, type DeclaredEntryUnit, type DeclaredMatch, type DeclaredModule, type DeclaredStatusDecorators, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type EffectSite, type EmptyStage, EnclosingNodes, type ExitKind, type ExtractionConfig, type ExtractionReport, type ExtractorOptions, type FailureDelivery, type GlobalPrefixCall, type HandOffSite, type HealthCheck, type HealthViolation, type HelperDeclarations, type HelperSearch, type HelperSink, type HelperValue, IdMap, IdSet, type Identified, type InputMappingPattern, type InputRead, type InvocationRecognizer, type KeepsArms, KeptParses, type LanguageAdapter, type LibraryEnvVars, type LoweredStatementParts, MAX_ENTRIES, MAX_HELPER_PATHS, MAX_PATHS, MODULE_SURFACE_RECOGNITION, type ModuleInitOptions, type NodeVisitor, type OpsCarrier, type PackConfigNeed, type PackDeclarations, type PackFailure, type PackFunnel, type PackGradient, type PackPathMissing, type PackTally, type ParameterSupplier, type ParsedNode, type PartialPlan, PathBudgetExceeded, type PatternPack, type PlacedEffect, type ProjectHelper, type ProjectHelpers, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawProvenance, type RawTerminal, type Reading, type ReceiverOrigin, type RedirectDelivery, type RedirectOption, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type RootRecord, type RouteVersioning, SKIP_CHILDREN, type SettledModule, type SourceRange, type SourceSpelling, type StatedSlot, type StatementBlock, type StatementReading, type StatementSites, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TerminalPlacement, type TestCaseMatch, type Timer, type TimingReport, type TransparentWrapper, type UnitRecord, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, type VersionPlacement, type WalkEnd, type WrapperMethodRegistration, type WrapperOptionRegistration, type WrapperRegistration, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, buildUngatedExtractionReport, callSiteKey, chosenCacheRoot, commonDirectoryOf, composeWrappers, computeContentHash, computeDistHashFrom, configuredCallOption, createAdapterStamp, createCacheLayer, createCodeHasher, createPackTallies, createTimer, describeMissingPath, detectGaps, effectToIR, effectsFiringOn, emptyTally, enumerateOrDegrade, enumerateStructuredPaths, evaluatePackHealth, extractionCacheDirFor, extractionConfigStamp, firesOn, firstWrittenReading, formatPackHealth, guardsHoldOn, helperPathsOnVariables, httpRouteDiscovery, isListedTestFile, libraryEnvReadMarker, liveRecordFor, makeIgnoredDirectory, makeTransitionId, mapFolderFor, mapReading, markReturnsAsExitCode, matchesTestFileName, mergeReadShapes, moduleInitStructure, moduleOfFile, noopTimer, numberRepeatedCallSites, ownersWhereWritten, packConfigCheck, packGradients, packPathCheck, paramToInput, placeTerminals, processCodeHasher, projectFileStamp, rawConditionToPredicate, recordPackFailure, redirectDeliveryWhenSet, registrationHelperDiscovery, routeHelperIndex, runDigest, runsBefore, scopeOption, settleModules, sharedGatingConditions, sourceRefsOf, splitAtHandOffs, stampMayMissAWrite, stampModuleImports, stampModules, statementSites, storageSystemOption, summaryCountsByPack, tallyUnit, terminalToOutput, throughHelper, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, walkDescendants, wrapperDiscovery, writtenReading };
|
|
4264
|
+
export { type AccessRecognizer, type AdapterCodeStamp, type AdapterStamp, type ArgumentParser, type AstCapableOps, type BindingExtraction, type BodyContent, type BranchEnding, CACHE_DIR_ENV, type CacheAttribution, type CacheDiagnostic, type CacheInput, type CacheLayer, type CacheLookup, type CallOps, type CallbackArgumentMatch, type CaseGroup, type ChannelSource, type ChildrenOf, type ChosenReading, type ClassOps, type CodeHasher, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredEntryPoint, type DeclaredEntryUnit, type DeclaredMatch, type DeclaredModule, type DeclaredStatusDecorators, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type EffectSite, type EmptyStage, EnclosingNodes, type ExitKind, type ExtractionConfig, type ExtractionReport, type ExtractorOptions, type FailureDelivery, type GlobalPrefixCall, type HandOffSite, type HealthCheck, type HealthViolation, type HelperDeclarations, type HelperSearch, type HelperSink, type HelperValue, IdMap, IdSet, type Identified, type InputMappingPattern, type InputRead, type InvocationRecognizer, type KeepsArms, KeptParses, type LanguageAdapter, type LibraryEnvVars, type LoweredStatementParts, MAX_ENTRIES, MAX_HELPER_PATHS, MAX_PATHS, MODULE_SURFACE_RECOGNITION, type ModuleInitOptions, type NodeVisitor, type OpsCarrier, type PackConfigNeed, type PackDeclarations, type PackFailure, type PackFunnel, type PackGradient, type PackPathMissing, type PackTally, type ParameterSupplier, type ParsedNode, type PartialPlan, PathBudgetExceeded, type PatternPack, type PlacedEffect, type ProjectHelper, type ProjectHelpers, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawProvenance, type RawTerminal, type Reading, type ReceiverOrigin, type RedirectDelivery, type RedirectOption, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type RootRecord, type RouteVersioning, SKIP_CHILDREN, type SettledModule, type SourceRange, type SourceSpelling, type StatedSlot, type StatementBlock, type StatementReading, type StatementSites, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TerminalPlacement, type TestCaseMatch, type Timer, type TimingReport, type TransparentWrapper, type UnitRecord, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, type VersionPlacement, type WalkEnd, type WrapperMethodRegistration, type WrapperOptionRegistration, type WrapperRegistration, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, buildUngatedExtractionReport, callSiteKey, chosenCacheRoot, commonDirectoryOf, composeWrappers, computeContentHash, computeDistHashFrom, configuredCallOption, createAdapterStamp, createCacheLayer, createCodeHasher, createPackTallies, createTimer, describeMissingPath, detectGaps, effectToIR, effectsFiringOn, emptyTally, enumerateOrDegrade, enumerateStructuredPaths, evaluatePackHealth, extractionCacheDirFor, extractionConfigStamp, firesOn, firstWrittenReading, formatPackHealth, guardsHoldOn, helperPathsOnVariables, httpRouteDiscovery, isListedTestFile, libraryEnvReadMarker, liveRecordFor, makeIgnoredDirectory, makeTransitionId, mapFolderFor, mapReading, markReturnsAsExitCode, matchesTestFileName, mergeReadShapes, moduleInitStructure, moduleOfFile, noopTimer, numberRepeatedCallSites, ownersWhereWritten, packConfigCheck, packGradients, packPathCheck, paramToInput, placeTerminals, processCodeHasher, projectFileStamp, rawConditionToPredicate, recordPackFailure, redirectDeliveryWhenSet, registrationHelperDiscovery, routeHelperIndex, runDigest, runsBefore, scopeOption, settleModules, sharedGatingConditions, sourceRefsOf, splitAtHandOffs, stampMayMissAWrite, stampModuleImports, stampModules, statementSites, storageSystemOption, summaryCountsByPack, tallyUnit, terminalToOutput, throughHelper, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, walkDescendants, wrapperDiscovery, writtenReading };
|
package/dist/index.d.ts
CHANGED
|
@@ -590,7 +590,26 @@ type DiscoveryMatch = {
|
|
|
590
590
|
* side of the package-export boundary, whichever two they are.
|
|
591
591
|
*/
|
|
592
592
|
workspaces?: true;
|
|
593
|
-
} | TestCaseMatch;
|
|
593
|
+
} | CallbackArgumentMatch | TestCaseMatch;
|
|
594
|
+
/**
|
|
595
|
+
* A function handed to a call or construction of a library export, which
|
|
596
|
+
* the library then calls with work of its own. BullMQ's
|
|
597
|
+
* `new Worker("emails", async (job) => {...})` is the case it was written
|
|
598
|
+
* for: the processor becomes a unit, and a binding the pattern declares
|
|
599
|
+
* can read its channel off the same call with `callArgument`.
|
|
600
|
+
*
|
|
601
|
+
* `new X(...)` and `x(...)` both match. The function is followed the way
|
|
602
|
+
* any value is, so a processor written in another module and passed by
|
|
603
|
+
* name is found too. A function the run cannot settle to one body, such
|
|
604
|
+
* as a parameter or a file path the library loads itself, gives no unit.
|
|
605
|
+
*/
|
|
606
|
+
interface CallbackArgumentMatch {
|
|
607
|
+
type: "callbackArgument";
|
|
608
|
+
importModule: string;
|
|
609
|
+
importName: string;
|
|
610
|
+
/** Which argument is the function. */
|
|
611
|
+
callbackPosition: number;
|
|
612
|
+
}
|
|
594
613
|
/**
|
|
595
614
|
* Test cases written as nested calls, the way vitest, jest and mocha
|
|
596
615
|
* write them: `describe("orders", () => { it("cancels", () => ...) })`.
|
|
@@ -735,13 +754,18 @@ type BindingExtraction = {
|
|
|
735
754
|
*
|
|
736
755
|
* `decoratorArgument` reads the argument off the same decorator the
|
|
737
756
|
* match selected the handler by, so `@EventPattern("order.placed")`
|
|
738
|
-
* gives "order.placed". `
|
|
739
|
-
*
|
|
740
|
-
*
|
|
757
|
+
* gives "order.placed". `callArgument` reads an argument of the call a
|
|
758
|
+
* `callbackArgument` match found the function in, so
|
|
759
|
+
* `new Worker("emails", fn)` gives "emails". `literal` is for a wire
|
|
760
|
+
* whose channel the library fixes. `unstated` means the wire is known
|
|
761
|
+
* and the channel is not, and it pairs the same as a null channel.
|
|
741
762
|
*/
|
|
742
763
|
type ChannelSource = {
|
|
743
764
|
from: "decoratorArgument";
|
|
744
765
|
position: number;
|
|
766
|
+
} | {
|
|
767
|
+
from: "callArgument";
|
|
768
|
+
position: number;
|
|
745
769
|
} | {
|
|
746
770
|
from: "literal";
|
|
747
771
|
value: string;
|
|
@@ -4237,4 +4261,4 @@ declare function rawConditionToPredicate(c: RawCondition): Predicate;
|
|
|
4237
4261
|
declare function effectToIR(effect: RawEffect): Effect;
|
|
4238
4262
|
declare function paramToInput(param: RawParameter): Input;
|
|
4239
4263
|
|
|
4240
|
-
export { type AccessRecognizer, type AdapterCodeStamp, type AdapterStamp, type ArgumentParser, type AstCapableOps, type BindingExtraction, type BodyContent, type BranchEnding, CACHE_DIR_ENV, type CacheAttribution, type CacheDiagnostic, type CacheInput, type CacheLayer, type CacheLookup, type CallOps, type CaseGroup, type ChannelSource, type ChildrenOf, type ChosenReading, type ClassOps, type CodeHasher, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredEntryPoint, type DeclaredEntryUnit, type DeclaredMatch, type DeclaredModule, type DeclaredStatusDecorators, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type EffectSite, type EmptyStage, EnclosingNodes, type ExitKind, type ExtractionConfig, type ExtractionReport, type ExtractorOptions, type FailureDelivery, type GlobalPrefixCall, type HandOffSite, type HealthCheck, type HealthViolation, type HelperDeclarations, type HelperSearch, type HelperSink, type HelperValue, IdMap, IdSet, type Identified, type InputMappingPattern, type InputRead, type InvocationRecognizer, type KeepsArms, KeptParses, type LanguageAdapter, type LibraryEnvVars, type LoweredStatementParts, MAX_ENTRIES, MAX_HELPER_PATHS, MAX_PATHS, MODULE_SURFACE_RECOGNITION, type ModuleInitOptions, type NodeVisitor, type OpsCarrier, type PackConfigNeed, type PackDeclarations, type PackFailure, type PackFunnel, type PackGradient, type PackPathMissing, type PackTally, type ParameterSupplier, type ParsedNode, type PartialPlan, PathBudgetExceeded, type PatternPack, type PlacedEffect, type ProjectHelper, type ProjectHelpers, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawProvenance, type RawTerminal, type Reading, type ReceiverOrigin, type RedirectDelivery, type RedirectOption, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type RootRecord, type RouteVersioning, SKIP_CHILDREN, type SettledModule, type SourceRange, type SourceSpelling, type StatedSlot, type StatementBlock, type StatementReading, type StatementSites, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TerminalPlacement, type TestCaseMatch, type Timer, type TimingReport, type TransparentWrapper, type UnitRecord, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, type VersionPlacement, type WalkEnd, type WrapperMethodRegistration, type WrapperOptionRegistration, type WrapperRegistration, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, buildUngatedExtractionReport, callSiteKey, chosenCacheRoot, commonDirectoryOf, composeWrappers, computeContentHash, computeDistHashFrom, configuredCallOption, createAdapterStamp, createCacheLayer, createCodeHasher, createPackTallies, createTimer, describeMissingPath, detectGaps, effectToIR, effectsFiringOn, emptyTally, enumerateOrDegrade, enumerateStructuredPaths, evaluatePackHealth, extractionCacheDirFor, extractionConfigStamp, firesOn, firstWrittenReading, formatPackHealth, guardsHoldOn, helperPathsOnVariables, httpRouteDiscovery, isListedTestFile, libraryEnvReadMarker, liveRecordFor, makeIgnoredDirectory, makeTransitionId, mapFolderFor, mapReading, markReturnsAsExitCode, matchesTestFileName, mergeReadShapes, moduleInitStructure, moduleOfFile, noopTimer, numberRepeatedCallSites, ownersWhereWritten, packConfigCheck, packGradients, packPathCheck, paramToInput, placeTerminals, processCodeHasher, projectFileStamp, rawConditionToPredicate, recordPackFailure, redirectDeliveryWhenSet, registrationHelperDiscovery, routeHelperIndex, runDigest, runsBefore, scopeOption, settleModules, sharedGatingConditions, sourceRefsOf, splitAtHandOffs, stampMayMissAWrite, stampModuleImports, stampModules, statementSites, storageSystemOption, summaryCountsByPack, tallyUnit, terminalToOutput, throughHelper, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, walkDescendants, wrapperDiscovery, writtenReading };
|
|
4264
|
+
export { type AccessRecognizer, type AdapterCodeStamp, type AdapterStamp, type ArgumentParser, type AstCapableOps, type BindingExtraction, type BodyContent, type BranchEnding, CACHE_DIR_ENV, type CacheAttribution, type CacheDiagnostic, type CacheInput, type CacheLayer, type CacheLookup, type CallOps, type CallbackArgumentMatch, type CaseGroup, type ChannelSource, type ChildrenOf, type ChosenReading, type ClassOps, type CodeHasher, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredEntryPoint, type DeclaredEntryUnit, type DeclaredMatch, type DeclaredModule, type DeclaredStatusDecorators, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type EffectSite, type EmptyStage, EnclosingNodes, type ExitKind, type ExtractionConfig, type ExtractionReport, type ExtractorOptions, type FailureDelivery, type GlobalPrefixCall, type HandOffSite, type HealthCheck, type HealthViolation, type HelperDeclarations, type HelperSearch, type HelperSink, type HelperValue, IdMap, IdSet, type Identified, type InputMappingPattern, type InputRead, type InvocationRecognizer, type KeepsArms, KeptParses, type LanguageAdapter, type LibraryEnvVars, type LoweredStatementParts, MAX_ENTRIES, MAX_HELPER_PATHS, MAX_PATHS, MODULE_SURFACE_RECOGNITION, type ModuleInitOptions, type NodeVisitor, type OpsCarrier, type PackConfigNeed, type PackDeclarations, type PackFailure, type PackFunnel, type PackGradient, type PackPathMissing, type PackTally, type ParameterSupplier, type ParsedNode, type PartialPlan, PathBudgetExceeded, type PatternPack, type PlacedEffect, type ProjectHelper, type ProjectHelpers, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawProvenance, type RawTerminal, type Reading, type ReceiverOrigin, type RedirectDelivery, type RedirectOption, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type RootRecord, type RouteVersioning, SKIP_CHILDREN, type SettledModule, type SourceRange, type SourceSpelling, type StatedSlot, type StatementBlock, type StatementReading, type StatementSites, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TerminalPlacement, type TestCaseMatch, type Timer, type TimingReport, type TransparentWrapper, type UnitRecord, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, type VersionPlacement, type WalkEnd, type WrapperMethodRegistration, type WrapperOptionRegistration, type WrapperRegistration, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, buildUngatedExtractionReport, callSiteKey, chosenCacheRoot, commonDirectoryOf, composeWrappers, computeContentHash, computeDistHashFrom, configuredCallOption, createAdapterStamp, createCacheLayer, createCodeHasher, createPackTallies, createTimer, describeMissingPath, detectGaps, effectToIR, effectsFiringOn, emptyTally, enumerateOrDegrade, enumerateStructuredPaths, evaluatePackHealth, extractionCacheDirFor, extractionConfigStamp, firesOn, firstWrittenReading, formatPackHealth, guardsHoldOn, helperPathsOnVariables, httpRouteDiscovery, isListedTestFile, libraryEnvReadMarker, liveRecordFor, makeIgnoredDirectory, makeTransitionId, mapFolderFor, mapReading, markReturnsAsExitCode, matchesTestFileName, mergeReadShapes, moduleInitStructure, moduleOfFile, noopTimer, numberRepeatedCallSites, ownersWhereWritten, packConfigCheck, packGradients, packPathCheck, paramToInput, placeTerminals, processCodeHasher, projectFileStamp, rawConditionToPredicate, recordPackFailure, redirectDeliveryWhenSet, registrationHelperDiscovery, routeHelperIndex, runDigest, runsBefore, scopeOption, settleModules, sharedGatingConditions, sourceRefsOf, splitAtHandOffs, stampMayMissAWrite, stampModuleImports, stampModules, statementSites, storageSystemOption, summaryCountsByPack, tallyUnit, terminalToOutput, throughHelper, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, walkDescendants, wrapperDiscovery, writtenReading };
|
package/dist/index.js
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { createHash as createHash8 } from "crypto";
|
|
3
3
|
import {
|
|
4
|
+
displayLabel as displayLabel2,
|
|
4
5
|
effectKey as effectKey2,
|
|
5
6
|
exchangesHttpResponses as exchangesHttpResponses2,
|
|
6
7
|
foldRepeatedEffects,
|
|
8
|
+
isUnsettledJob,
|
|
7
9
|
normalizeCalleeText as normalizeCalleeText2,
|
|
10
|
+
unfollowedCallGap,
|
|
8
11
|
withGraphqlMetadata,
|
|
9
12
|
withHttpMetadata,
|
|
10
13
|
withMountMetadata,
|
|
@@ -3733,8 +3736,23 @@ function detectGaps(raw, transitions, options) {
|
|
|
3733
3736
|
if (raw.declaredContract && answersWithHttpResponses(raw)) {
|
|
3734
3737
|
gaps.push(...contractStatusGaps(raw.declaredContract, transitions));
|
|
3735
3738
|
}
|
|
3739
|
+
gaps.push(...unsettledJobGaps(transitions));
|
|
3736
3740
|
return gaps;
|
|
3737
3741
|
}
|
|
3742
|
+
function unsettledJobGaps(transitions) {
|
|
3743
|
+
const callees = /* @__PURE__ */ new Set();
|
|
3744
|
+
for (const transition of transitions) {
|
|
3745
|
+
for (const effect of transition.effects) {
|
|
3746
|
+
if (effect.type !== "interaction" || effect.interaction.class !== "message-send" || !isUnsettledJob(effect.binding)) {
|
|
3747
|
+
continue;
|
|
3748
|
+
}
|
|
3749
|
+
callees.add(effect.callee ?? displayLabel2(effect.binding));
|
|
3750
|
+
}
|
|
3751
|
+
}
|
|
3752
|
+
return [...callees].map(
|
|
3753
|
+
(callee) => unfollowedCallGap({ callee, reason: "unsettledJob" })
|
|
3754
|
+
);
|
|
3755
|
+
}
|
|
3738
3756
|
function bodyWentUnread(raw) {
|
|
3739
3757
|
if (raw.readFailure !== void 0) {
|
|
3740
3758
|
return true;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@suss/extractor",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.37.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "The suss extraction pipeline, which turns what a language adapter read into the summaries the checker pairs across a boundary.",
|
|
6
6
|
"keywords": [
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"typecheck": "tsc --noEmit"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@suss/behavioral-ir": "0.
|
|
49
|
+
"@suss/behavioral-ir": "0.37.1",
|
|
50
50
|
"zod": "^4.0.0"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|