@suss/extractor 0.15.0 → 0.17.0

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.d.cts CHANGED
@@ -187,8 +187,18 @@ type DiscoveryMatch = {
187
187
  * `development` conditions are not handled yet.
188
188
  */
189
189
  type: "packageExports";
190
- /** Absolute path to the package's `package.json`. */
191
- packageJsonPath: string;
190
+ /**
191
+ * Absolute path to the package's `package.json`. Left out when
192
+ * `workspaces` is set, since the workspace decides the list.
193
+ */
194
+ packageJsonPath?: string;
195
+ /**
196
+ * One pattern for every package the workspace declares. The pack
197
+ * cannot list the packages, because they belong to the project
198
+ * rather than to any library, so the adapter reads the workspace
199
+ * manifest and applies this pattern once per package it finds.
200
+ */
201
+ workspaces?: true;
192
202
  /**
193
203
  * Restrict to these `exports` keys (without the leading `./`). The
194
204
  * root export is keyed `"."`. Leave it unset for every sub-path that
@@ -450,7 +460,14 @@ type DiscoveryMatch = {
450
460
  * than the original, because full symbol resolution is not built yet.
451
461
  */
452
462
  type: "packageImport";
453
- packages: string[];
463
+ /** Left out when `workspaces` is set. */
464
+ packages?: string[];
465
+ /**
466
+ * Track imports of every package the workspace declares. A file
467
+ * inside one workspace package importing another is the consumer
468
+ * side of the package-export boundary, whichever two they are.
469
+ */
470
+ workspaces?: true;
454
471
  };
455
472
  type BindingExtraction = {
456
473
  method: {
@@ -531,11 +548,48 @@ type BindingExtraction = {
531
548
  type: "fromClientMethod";
532
549
  };
533
550
  };
551
+ /**
552
+ * Where a declared channel's spelling comes from.
553
+ *
554
+ * `decoratorArgument` reads the argument off the same decorator the
555
+ * match selected the handler by, so `@EventPattern("order.placed")`
556
+ * gives "order.placed". `literal` is for a wire whose channel the
557
+ * library fixes. `unstated` says the wire is known and the channel is
558
+ * not, which pairs the way a null channel always has.
559
+ */
560
+ type ChannelSource = {
561
+ from: "decoratorArgument";
562
+ position: number;
563
+ } | {
564
+ from: "literal";
565
+ value: string;
566
+ } | {
567
+ from: "unstated";
568
+ };
569
+ /**
570
+ * A binding the pattern states outright, for a boundary the match
571
+ * cannot read from the source.
572
+ *
573
+ * `bindingExtraction` speaks REST and nothing else, so a declarative
574
+ * pack whose boundary is a queue or a topic had nowhere to say so and
575
+ * was pushed into a callback, which pack health then reports as an
576
+ * ast-link. This is the same vocabulary `DiscoveredCustomUnit` already
577
+ * has, declared instead of returned. Message bus only for now; the
578
+ * design note in the proposals directory says what comes next and why
579
+ * the rest stays put.
580
+ */
581
+ type DeclaredBinding = {
582
+ semantics: "message-bus";
583
+ messageBus: MessageBusSemantics["messageBus"];
584
+ channel: ChannelSource;
585
+ };
534
586
  interface DiscoveryPattern {
535
587
  /** The kind of code unit this discovers: "handler", "loader", "action", "component", etc. */
536
588
  kind: string;
537
589
  match: DiscoveryMatch;
538
590
  bindingExtraction?: BindingExtraction;
591
+ /** A binding the pattern states outright. See `DeclaredBinding`. */
592
+ binding?: DeclaredBinding;
539
593
  /**
540
594
  * How the routable this pattern discovers (Express's `Router()`,
541
595
  * Hono's `new Hono()`, and similar) can itself be mounted onto
@@ -2262,4 +2316,4 @@ declare function terminalToOutput(terminal: RawTerminal): Output;
2262
2316
  declare function effectToIR(effect: RawEffect): Effect;
2263
2317
  declare function paramToInput(param: RawParameter): Input;
2264
2318
 
2265
- export { type AccessRecognizer, type AstCapableOps, type BindingExtraction, type BodyContent, type CallOps, type CaseGroup, type ChosenReading, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBy, type DeclaredMatch, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type ExitKind, type ExtractorOptions, type FailureDelivery, IdMap, IdSet, type Identified, type InputMappingPattern, type InvocationRecognizer, type LanguageAdapter, type LoweredStatementParts, type OpsCarrier, type PackDeclarations, PathBudgetExceeded, type PatternPack, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawTerminal, type Reading, type ReceiverOrigin, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type SourceRange, type StatementBlock, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TransparentWrapper, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, detectGaps, effectToIR, enumerateOrDegrade, enumerateStructuredPaths, firstWrittenReading, httpRouteDiscovery, makeTransitionId, mapReading, paramToInput, registrationHelperDiscovery, sharedGatingConditions, terminalToOutput, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, writtenReading };
2319
+ export { type AccessRecognizer, type AstCapableOps, type BindingExtraction, type BodyContent, type CallOps, type CaseGroup, type ChannelSource, type ChosenReading, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredMatch, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type ExitKind, type ExtractorOptions, type FailureDelivery, IdMap, IdSet, type Identified, type InputMappingPattern, type InvocationRecognizer, type LanguageAdapter, type LoweredStatementParts, type OpsCarrier, type PackDeclarations, PathBudgetExceeded, type PatternPack, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawTerminal, type Reading, type ReceiverOrigin, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type SourceRange, type StatementBlock, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TransparentWrapper, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, detectGaps, effectToIR, enumerateOrDegrade, enumerateStructuredPaths, firstWrittenReading, httpRouteDiscovery, makeTransitionId, mapReading, paramToInput, registrationHelperDiscovery, sharedGatingConditions, terminalToOutput, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, writtenReading };
package/dist/index.d.ts CHANGED
@@ -187,8 +187,18 @@ type DiscoveryMatch = {
187
187
  * `development` conditions are not handled yet.
188
188
  */
189
189
  type: "packageExports";
190
- /** Absolute path to the package's `package.json`. */
191
- packageJsonPath: string;
190
+ /**
191
+ * Absolute path to the package's `package.json`. Left out when
192
+ * `workspaces` is set, since the workspace decides the list.
193
+ */
194
+ packageJsonPath?: string;
195
+ /**
196
+ * One pattern for every package the workspace declares. The pack
197
+ * cannot list the packages, because they belong to the project
198
+ * rather than to any library, so the adapter reads the workspace
199
+ * manifest and applies this pattern once per package it finds.
200
+ */
201
+ workspaces?: true;
192
202
  /**
193
203
  * Restrict to these `exports` keys (without the leading `./`). The
194
204
  * root export is keyed `"."`. Leave it unset for every sub-path that
@@ -450,7 +460,14 @@ type DiscoveryMatch = {
450
460
  * than the original, because full symbol resolution is not built yet.
451
461
  */
452
462
  type: "packageImport";
453
- packages: string[];
463
+ /** Left out when `workspaces` is set. */
464
+ packages?: string[];
465
+ /**
466
+ * Track imports of every package the workspace declares. A file
467
+ * inside one workspace package importing another is the consumer
468
+ * side of the package-export boundary, whichever two they are.
469
+ */
470
+ workspaces?: true;
454
471
  };
455
472
  type BindingExtraction = {
456
473
  method: {
@@ -531,11 +548,48 @@ type BindingExtraction = {
531
548
  type: "fromClientMethod";
532
549
  };
533
550
  };
551
+ /**
552
+ * Where a declared channel's spelling comes from.
553
+ *
554
+ * `decoratorArgument` reads the argument off the same decorator the
555
+ * match selected the handler by, so `@EventPattern("order.placed")`
556
+ * gives "order.placed". `literal` is for a wire whose channel the
557
+ * library fixes. `unstated` says the wire is known and the channel is
558
+ * not, which pairs the way a null channel always has.
559
+ */
560
+ type ChannelSource = {
561
+ from: "decoratorArgument";
562
+ position: number;
563
+ } | {
564
+ from: "literal";
565
+ value: string;
566
+ } | {
567
+ from: "unstated";
568
+ };
569
+ /**
570
+ * A binding the pattern states outright, for a boundary the match
571
+ * cannot read from the source.
572
+ *
573
+ * `bindingExtraction` speaks REST and nothing else, so a declarative
574
+ * pack whose boundary is a queue or a topic had nowhere to say so and
575
+ * was pushed into a callback, which pack health then reports as an
576
+ * ast-link. This is the same vocabulary `DiscoveredCustomUnit` already
577
+ * has, declared instead of returned. Message bus only for now; the
578
+ * design note in the proposals directory says what comes next and why
579
+ * the rest stays put.
580
+ */
581
+ type DeclaredBinding = {
582
+ semantics: "message-bus";
583
+ messageBus: MessageBusSemantics["messageBus"];
584
+ channel: ChannelSource;
585
+ };
534
586
  interface DiscoveryPattern {
535
587
  /** The kind of code unit this discovers: "handler", "loader", "action", "component", etc. */
536
588
  kind: string;
537
589
  match: DiscoveryMatch;
538
590
  bindingExtraction?: BindingExtraction;
591
+ /** A binding the pattern states outright. See `DeclaredBinding`. */
592
+ binding?: DeclaredBinding;
539
593
  /**
540
594
  * How the routable this pattern discovers (Express's `Router()`,
541
595
  * Hono's `new Hono()`, and similar) can itself be mounted onto
@@ -2262,4 +2316,4 @@ declare function terminalToOutput(terminal: RawTerminal): Output;
2262
2316
  declare function effectToIR(effect: RawEffect): Effect;
2263
2317
  declare function paramToInput(param: RawParameter): Input;
2264
2318
 
2265
- export { type AccessRecognizer, type AstCapableOps, type BindingExtraction, type BodyContent, type CallOps, type CaseGroup, type ChosenReading, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBy, type DeclaredMatch, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type ExitKind, type ExtractorOptions, type FailureDelivery, IdMap, IdSet, type Identified, type InputMappingPattern, type InvocationRecognizer, type LanguageAdapter, type LoweredStatementParts, type OpsCarrier, type PackDeclarations, PathBudgetExceeded, type PatternPack, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawTerminal, type Reading, type ReceiverOrigin, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type SourceRange, type StatementBlock, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TransparentWrapper, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, detectGaps, effectToIR, enumerateOrDegrade, enumerateStructuredPaths, firstWrittenReading, httpRouteDiscovery, makeTransitionId, mapReading, paramToInput, registrationHelperDiscovery, sharedGatingConditions, terminalToOutput, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, writtenReading };
2319
+ export { type AccessRecognizer, type AstCapableOps, type BindingExtraction, type BodyContent, type CallOps, type CaseGroup, type ChannelSource, type ChosenReading, type ConditionHandle, type ConditionInfo, type ConditionSource, type ConstructedFrom, type ContractPattern, type DeclaredBinding, type DeclaredBy, type DeclaredMatch, type DefaultedReading, type DiscoveredCustomUnit, type DiscoveredSubUnit, type DiscoveredSubUnitParent, type DiscoveryMatch, type DiscoveryPattern, type EffectArg, type ExitKind, type ExtractorOptions, type FailureDelivery, IdMap, IdSet, type Identified, type InputMappingPattern, type InvocationRecognizer, type LanguageAdapter, type LoweredStatementParts, type OpsCarrier, type PackDeclarations, PathBudgetExceeded, type PatternPack, type RawBranch, type RawCodeStructure, type RawCondition, type RawDeclaredContract, type RawDependencyCall, type RawEffect, type RawParameter, type RawTerminal, type Reading, type ReceiverOrigin, type RegistrationHelper, type ResponsePropertyMapping, type ResponsePropertyMeaning, type SourceRange, type StatementBlock, type StructuredPathConditionsInput, type StructuredPathConditionsResult, type StructuredStatement, type TerminalExtraction, type TerminalMatch, type TerminalPattern, type TransparentWrapper, UnmodeledFlow, type UnsettledName, type ValueEntry, type ValueOps, absentReading, ambiguousReading, andThenReading, assembleSummary, assessConfidence, detectGaps, effectToIR, enumerateOrDegrade, enumerateStructuredPaths, firstWrittenReading, httpRouteDiscovery, makeTransitionId, mapReading, paramToInput, registrationHelperDiscovery, sharedGatingConditions, terminalToOutput, unreadableReading, unwrapJsonStringify, valueToReadFurtherFrom, writtenReading };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@suss/extractor",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "type": "module",
5
5
  "description": "Framework-agnostic extraction pipeline that turns raw extractions into suss behavioral summaries.",
6
6
  "keywords": [
@@ -45,7 +45,7 @@
45
45
  "typecheck": "tsc --noEmit"
46
46
  },
47
47
  "dependencies": {
48
- "@suss/behavioral-ir": "0.15.0"
48
+ "@suss/behavioral-ir": "0.17.0"
49
49
  },
50
50
  "devDependencies": {
51
51
  "tsup": "*",