@suss/adapter-python 0.5.9 → 0.5.10
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 +43 -7
- package/dist/index.js +43 -7
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -15747,7 +15747,16 @@ function date4(params) {
|
|
|
15747
15747
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
15748
15748
|
config(en_default());
|
|
15749
15749
|
|
|
15750
|
-
// ../../ir-core/dist/chunk-
|
|
15750
|
+
// ../../ir-core/dist/chunk-WKR5SU4N.js
|
|
15751
|
+
function gqlIdentityKey(typeName, fieldName) {
|
|
15752
|
+
return `gql:${typeName}.${fieldName}`;
|
|
15753
|
+
}
|
|
15754
|
+
function fnIdentityKey(packageName, exportPath) {
|
|
15755
|
+
return `fn:${packageName}::${exportPath.join(".")}`;
|
|
15756
|
+
}
|
|
15757
|
+
function busIdentityKey(messageBus, subject) {
|
|
15758
|
+
return `bus:${messageBus} ${subject}`;
|
|
15759
|
+
}
|
|
15751
15760
|
function defineBoundarySemantics(definition) {
|
|
15752
15761
|
return definition;
|
|
15753
15762
|
}
|
|
@@ -15789,6 +15798,12 @@ var functionCallSemantics = defineBoundarySemantics({
|
|
|
15789
15798
|
/** A call returns a value, which is not a status and a body. */
|
|
15790
15799
|
exchangesHttpResponses: false,
|
|
15791
15800
|
reportsUnpairedItself: false,
|
|
15801
|
+
/**
|
|
15802
|
+
* In-repo units (components, bare handlers) are keyless by design
|
|
15803
|
+
* and pair through call edges rather than the keyed pass, so a
|
|
15804
|
+
* missing key is not a boundary nothing can reach.
|
|
15805
|
+
*/
|
|
15806
|
+
canPair: () => true,
|
|
15792
15807
|
/**
|
|
15793
15808
|
* `"fn:<package>::<exportPath>"` when both are set. Other in-process
|
|
15794
15809
|
* function-call units, such as components and bare handlers inside
|
|
@@ -15796,7 +15811,7 @@ var functionCallSemantics = defineBoundarySemantics({
|
|
|
15796
15811
|
*/
|
|
15797
15812
|
identityKey(semantics) {
|
|
15798
15813
|
if (semantics.package !== void 0 && semantics.exportPath !== void 0 && semantics.exportPath.length > 0) {
|
|
15799
|
-
return
|
|
15814
|
+
return fnIdentityKey(semantics.package, semantics.exportPath);
|
|
15800
15815
|
}
|
|
15801
15816
|
return null;
|
|
15802
15817
|
}
|
|
@@ -15819,6 +15834,8 @@ var graphqlOperationSemantics = defineBoundarySemantics({
|
|
|
15819
15834
|
exchangesHttpResponses: false,
|
|
15820
15835
|
reportsUnpairedItself: false,
|
|
15821
15836
|
identityKey: () => null,
|
|
15837
|
+
/** Keyless by design; the dedicated pass pairs it by its document. */
|
|
15838
|
+
canPair: () => true,
|
|
15822
15839
|
/** "query GetUser". The contract checker pairs it, the key does not. */
|
|
15823
15840
|
displayLabel(semantics) {
|
|
15824
15841
|
return `${semantics.operationType} ${semantics.operationName ?? "<anonymous>"}`;
|
|
@@ -15852,7 +15869,7 @@ var graphqlResolverSemantics = defineBoundarySemantics({
|
|
|
15852
15869
|
if (semantics.typeName === null || semantics.fieldName === "") {
|
|
15853
15870
|
return null;
|
|
15854
15871
|
}
|
|
15855
|
-
return
|
|
15872
|
+
return gqlIdentityKey(semantics.typeName, semantics.fieldName);
|
|
15856
15873
|
}
|
|
15857
15874
|
}
|
|
15858
15875
|
});
|
|
@@ -15901,6 +15918,12 @@ var messageBusSemantics = defineBoundarySemantics({
|
|
|
15901
15918
|
* ones, so the generic unmatched lists leave them alone.
|
|
15902
15919
|
*/
|
|
15903
15920
|
reportsUnpairedItself: true,
|
|
15921
|
+
/**
|
|
15922
|
+
* A channel unnamed here can still pair: the dedicated pass
|
|
15923
|
+
* collapses env chains before comparing, so a consumer whose
|
|
15924
|
+
* channel arrives at runtime meets the template that declares it.
|
|
15925
|
+
*/
|
|
15926
|
+
canPair: () => true,
|
|
15904
15927
|
/**
|
|
15905
15928
|
* `"bus:<messageBus> <subject>"`, or null when the channel is null
|
|
15906
15929
|
* or its subject is empty.
|
|
@@ -15923,7 +15946,7 @@ var messageBusSemantics = defineBoundarySemantics({
|
|
|
15923
15946
|
if (subject === "") {
|
|
15924
15947
|
return null;
|
|
15925
15948
|
}
|
|
15926
|
-
return
|
|
15949
|
+
return busIdentityKey(semantics.messageBus, subject);
|
|
15927
15950
|
},
|
|
15928
15951
|
sidesAgree(a, b) {
|
|
15929
15952
|
if (a.channel === null || b.channel === null) {
|
|
@@ -16101,8 +16124,13 @@ var StorageRelationalSemanticsSchema = external_exports.object({
|
|
|
16101
16124
|
* and a monorepo with several schemas gives each one its own value.
|
|
16102
16125
|
*/
|
|
16103
16126
|
scope: external_exports.string(),
|
|
16104
|
-
/**
|
|
16105
|
-
|
|
16127
|
+
/**
|
|
16128
|
+
* The table or model name as the schema declares it, or null when
|
|
16129
|
+
* the source states one this reader could not settle. A null table
|
|
16130
|
+
* pairs with nothing, rather than with whatever its source text
|
|
16131
|
+
* happens to spell.
|
|
16132
|
+
*/
|
|
16133
|
+
table: external_exports.string().nullable()
|
|
16106
16134
|
});
|
|
16107
16135
|
var storageRelationalSemantics = defineBoundarySemantics({
|
|
16108
16136
|
name: "storage-relational",
|
|
@@ -16261,6 +16289,14 @@ var SuppressionFileSchema = external_exports.object({
|
|
|
16261
16289
|
version: external_exports.literal(1),
|
|
16262
16290
|
rules: external_exports.array(SuppressionRuleSchema)
|
|
16263
16291
|
}).strict();
|
|
16292
|
+
function namedOrNull(value, field2) {
|
|
16293
|
+
if (value === "") {
|
|
16294
|
+
throw new Error(
|
|
16295
|
+
`${field2} is an empty string; write null when the source does not name it`
|
|
16296
|
+
);
|
|
16297
|
+
}
|
|
16298
|
+
return value;
|
|
16299
|
+
}
|
|
16264
16300
|
function storageRelationalBinding(opts) {
|
|
16265
16301
|
return {
|
|
16266
16302
|
transport: opts.storageSystem,
|
|
@@ -16268,7 +16304,7 @@ function storageRelationalBinding(opts) {
|
|
|
16268
16304
|
name: "storage-relational",
|
|
16269
16305
|
storageSystem: opts.storageSystem,
|
|
16270
16306
|
scope: opts.scope,
|
|
16271
|
-
table: opts.table
|
|
16307
|
+
table: namedOrNull(opts.table, "storage table")
|
|
16272
16308
|
},
|
|
16273
16309
|
recognition: opts.recognition
|
|
16274
16310
|
};
|
package/dist/index.js
CHANGED
|
@@ -15703,7 +15703,16 @@ function date4(params) {
|
|
|
15703
15703
|
// ../../../node_modules/zod/v4/classic/external.js
|
|
15704
15704
|
config(en_default());
|
|
15705
15705
|
|
|
15706
|
-
// ../../ir-core/dist/chunk-
|
|
15706
|
+
// ../../ir-core/dist/chunk-WKR5SU4N.js
|
|
15707
|
+
function gqlIdentityKey(typeName, fieldName) {
|
|
15708
|
+
return `gql:${typeName}.${fieldName}`;
|
|
15709
|
+
}
|
|
15710
|
+
function fnIdentityKey(packageName, exportPath) {
|
|
15711
|
+
return `fn:${packageName}::${exportPath.join(".")}`;
|
|
15712
|
+
}
|
|
15713
|
+
function busIdentityKey(messageBus, subject) {
|
|
15714
|
+
return `bus:${messageBus} ${subject}`;
|
|
15715
|
+
}
|
|
15707
15716
|
function defineBoundarySemantics(definition) {
|
|
15708
15717
|
return definition;
|
|
15709
15718
|
}
|
|
@@ -15745,6 +15754,12 @@ var functionCallSemantics = defineBoundarySemantics({
|
|
|
15745
15754
|
/** A call returns a value, which is not a status and a body. */
|
|
15746
15755
|
exchangesHttpResponses: false,
|
|
15747
15756
|
reportsUnpairedItself: false,
|
|
15757
|
+
/**
|
|
15758
|
+
* In-repo units (components, bare handlers) are keyless by design
|
|
15759
|
+
* and pair through call edges rather than the keyed pass, so a
|
|
15760
|
+
* missing key is not a boundary nothing can reach.
|
|
15761
|
+
*/
|
|
15762
|
+
canPair: () => true,
|
|
15748
15763
|
/**
|
|
15749
15764
|
* `"fn:<package>::<exportPath>"` when both are set. Other in-process
|
|
15750
15765
|
* function-call units, such as components and bare handlers inside
|
|
@@ -15752,7 +15767,7 @@ var functionCallSemantics = defineBoundarySemantics({
|
|
|
15752
15767
|
*/
|
|
15753
15768
|
identityKey(semantics) {
|
|
15754
15769
|
if (semantics.package !== void 0 && semantics.exportPath !== void 0 && semantics.exportPath.length > 0) {
|
|
15755
|
-
return
|
|
15770
|
+
return fnIdentityKey(semantics.package, semantics.exportPath);
|
|
15756
15771
|
}
|
|
15757
15772
|
return null;
|
|
15758
15773
|
}
|
|
@@ -15775,6 +15790,8 @@ var graphqlOperationSemantics = defineBoundarySemantics({
|
|
|
15775
15790
|
exchangesHttpResponses: false,
|
|
15776
15791
|
reportsUnpairedItself: false,
|
|
15777
15792
|
identityKey: () => null,
|
|
15793
|
+
/** Keyless by design; the dedicated pass pairs it by its document. */
|
|
15794
|
+
canPair: () => true,
|
|
15778
15795
|
/** "query GetUser". The contract checker pairs it, the key does not. */
|
|
15779
15796
|
displayLabel(semantics) {
|
|
15780
15797
|
return `${semantics.operationType} ${semantics.operationName ?? "<anonymous>"}`;
|
|
@@ -15808,7 +15825,7 @@ var graphqlResolverSemantics = defineBoundarySemantics({
|
|
|
15808
15825
|
if (semantics.typeName === null || semantics.fieldName === "") {
|
|
15809
15826
|
return null;
|
|
15810
15827
|
}
|
|
15811
|
-
return
|
|
15828
|
+
return gqlIdentityKey(semantics.typeName, semantics.fieldName);
|
|
15812
15829
|
}
|
|
15813
15830
|
}
|
|
15814
15831
|
});
|
|
@@ -15857,6 +15874,12 @@ var messageBusSemantics = defineBoundarySemantics({
|
|
|
15857
15874
|
* ones, so the generic unmatched lists leave them alone.
|
|
15858
15875
|
*/
|
|
15859
15876
|
reportsUnpairedItself: true,
|
|
15877
|
+
/**
|
|
15878
|
+
* A channel unnamed here can still pair: the dedicated pass
|
|
15879
|
+
* collapses env chains before comparing, so a consumer whose
|
|
15880
|
+
* channel arrives at runtime meets the template that declares it.
|
|
15881
|
+
*/
|
|
15882
|
+
canPair: () => true,
|
|
15860
15883
|
/**
|
|
15861
15884
|
* `"bus:<messageBus> <subject>"`, or null when the channel is null
|
|
15862
15885
|
* or its subject is empty.
|
|
@@ -15879,7 +15902,7 @@ var messageBusSemantics = defineBoundarySemantics({
|
|
|
15879
15902
|
if (subject === "") {
|
|
15880
15903
|
return null;
|
|
15881
15904
|
}
|
|
15882
|
-
return
|
|
15905
|
+
return busIdentityKey(semantics.messageBus, subject);
|
|
15883
15906
|
},
|
|
15884
15907
|
sidesAgree(a, b) {
|
|
15885
15908
|
if (a.channel === null || b.channel === null) {
|
|
@@ -16057,8 +16080,13 @@ var StorageRelationalSemanticsSchema = external_exports.object({
|
|
|
16057
16080
|
* and a monorepo with several schemas gives each one its own value.
|
|
16058
16081
|
*/
|
|
16059
16082
|
scope: external_exports.string(),
|
|
16060
|
-
/**
|
|
16061
|
-
|
|
16083
|
+
/**
|
|
16084
|
+
* The table or model name as the schema declares it, or null when
|
|
16085
|
+
* the source states one this reader could not settle. A null table
|
|
16086
|
+
* pairs with nothing, rather than with whatever its source text
|
|
16087
|
+
* happens to spell.
|
|
16088
|
+
*/
|
|
16089
|
+
table: external_exports.string().nullable()
|
|
16062
16090
|
});
|
|
16063
16091
|
var storageRelationalSemantics = defineBoundarySemantics({
|
|
16064
16092
|
name: "storage-relational",
|
|
@@ -16217,6 +16245,14 @@ var SuppressionFileSchema = external_exports.object({
|
|
|
16217
16245
|
version: external_exports.literal(1),
|
|
16218
16246
|
rules: external_exports.array(SuppressionRuleSchema)
|
|
16219
16247
|
}).strict();
|
|
16248
|
+
function namedOrNull(value, field2) {
|
|
16249
|
+
if (value === "") {
|
|
16250
|
+
throw new Error(
|
|
16251
|
+
`${field2} is an empty string; write null when the source does not name it`
|
|
16252
|
+
);
|
|
16253
|
+
}
|
|
16254
|
+
return value;
|
|
16255
|
+
}
|
|
16220
16256
|
function storageRelationalBinding(opts) {
|
|
16221
16257
|
return {
|
|
16222
16258
|
transport: opts.storageSystem,
|
|
@@ -16224,7 +16260,7 @@ function storageRelationalBinding(opts) {
|
|
|
16224
16260
|
name: "storage-relational",
|
|
16225
16261
|
storageSystem: opts.storageSystem,
|
|
16226
16262
|
scope: opts.scope,
|
|
16227
|
-
table: opts.table
|
|
16263
|
+
table: namedOrNull(opts.table, "storage table")
|
|
16228
16264
|
},
|
|
16229
16265
|
recognition: opts.recognition
|
|
16230
16266
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@suss/adapter-python",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Python language adapter for suss — parses source with tree-sitter (WASM), resolves names with a lexical binder, and emits raw extractions for the suss pipeline.",
|
|
6
6
|
"keywords": [
|
|
@@ -47,9 +47,9 @@
|
|
|
47
47
|
"typecheck": "tsc --noEmit"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@suss/behavioral-ir": "0.5.
|
|
51
|
-
"@suss/datalog": "0.5.
|
|
52
|
-
"@suss/extractor": "0.5.
|
|
50
|
+
"@suss/behavioral-ir": "0.5.10",
|
|
51
|
+
"@suss/datalog": "0.5.10",
|
|
52
|
+
"@suss/extractor": "0.5.10",
|
|
53
53
|
"web-tree-sitter": "^0.26.11"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|