@suss/adapter-python 0.5.9 → 0.5.11
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 +87 -36
- package/dist/index.d.cts +9 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.js +87 -36
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -1739,7 +1739,7 @@ __export(core_exports2, {
|
|
|
1739
1739
|
parse: () => parse,
|
|
1740
1740
|
parseAsync: () => parseAsync,
|
|
1741
1741
|
prettifyError: () => prettifyError,
|
|
1742
|
-
process: () =>
|
|
1742
|
+
process: () => process2,
|
|
1743
1743
|
regexes: () => regexes_exports,
|
|
1744
1744
|
registry: () => registry,
|
|
1745
1745
|
safeDecode: () => safeDecode,
|
|
@@ -12664,7 +12664,7 @@ function initializeContext(params) {
|
|
|
12664
12664
|
external: params?.external ?? void 0
|
|
12665
12665
|
};
|
|
12666
12666
|
}
|
|
12667
|
-
function
|
|
12667
|
+
function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
12668
12668
|
var _a3;
|
|
12669
12669
|
const def = schema._zod.def;
|
|
12670
12670
|
const seen = ctx.seen.get(schema);
|
|
@@ -12701,7 +12701,7 @@ function process(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
|
12701
12701
|
if (parent) {
|
|
12702
12702
|
if (!result.ref)
|
|
12703
12703
|
result.ref = parent;
|
|
12704
|
-
|
|
12704
|
+
process2(parent, ctx, params);
|
|
12705
12705
|
ctx.seen.get(parent).isParent = true;
|
|
12706
12706
|
}
|
|
12707
12707
|
}
|
|
@@ -12989,14 +12989,14 @@ function isTransforming(_schema, _ctx) {
|
|
|
12989
12989
|
}
|
|
12990
12990
|
var createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
|
|
12991
12991
|
const ctx = initializeContext({ ...params, processors });
|
|
12992
|
-
|
|
12992
|
+
process2(schema, ctx);
|
|
12993
12993
|
extractDefs(ctx, schema);
|
|
12994
12994
|
return finalize(ctx, schema);
|
|
12995
12995
|
};
|
|
12996
12996
|
var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {
|
|
12997
12997
|
const { libraryOptions, target } = params ?? {};
|
|
12998
12998
|
const ctx = initializeContext({ ...libraryOptions ?? {}, target, io, processors });
|
|
12999
|
-
|
|
12999
|
+
process2(schema, ctx);
|
|
13000
13000
|
extractDefs(ctx, schema);
|
|
13001
13001
|
return finalize(ctx, schema);
|
|
13002
13002
|
};
|
|
@@ -13242,7 +13242,7 @@ var arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
13242
13242
|
if (typeof maximum === "number")
|
|
13243
13243
|
json2.maxItems = maximum;
|
|
13244
13244
|
json2.type = "array";
|
|
13245
|
-
json2.items =
|
|
13245
|
+
json2.items = process2(def.element, ctx, {
|
|
13246
13246
|
...params,
|
|
13247
13247
|
path: [...params.path, "items"]
|
|
13248
13248
|
});
|
|
@@ -13254,7 +13254,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13254
13254
|
json2.properties = {};
|
|
13255
13255
|
const shape = def.shape;
|
|
13256
13256
|
for (const key in shape) {
|
|
13257
|
-
json2.properties[key] =
|
|
13257
|
+
json2.properties[key] = process2(shape[key], ctx, {
|
|
13258
13258
|
...params,
|
|
13259
13259
|
path: [...params.path, "properties", key]
|
|
13260
13260
|
});
|
|
@@ -13277,7 +13277,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13277
13277
|
if (ctx.io === "output")
|
|
13278
13278
|
json2.additionalProperties = false;
|
|
13279
13279
|
} else if (def.catchall) {
|
|
13280
|
-
json2.additionalProperties =
|
|
13280
|
+
json2.additionalProperties = process2(def.catchall, ctx, {
|
|
13281
13281
|
...params,
|
|
13282
13282
|
path: [...params.path, "additionalProperties"]
|
|
13283
13283
|
});
|
|
@@ -13286,7 +13286,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13286
13286
|
var unionProcessor = (schema, ctx, json2, params) => {
|
|
13287
13287
|
const def = schema._zod.def;
|
|
13288
13288
|
const isExclusive = def.inclusive === false;
|
|
13289
|
-
const options = def.options.map((x, i) =>
|
|
13289
|
+
const options = def.options.map((x, i) => process2(x, ctx, {
|
|
13290
13290
|
...params,
|
|
13291
13291
|
path: [...params.path, isExclusive ? "oneOf" : "anyOf", i]
|
|
13292
13292
|
}));
|
|
@@ -13298,11 +13298,11 @@ var unionProcessor = (schema, ctx, json2, params) => {
|
|
|
13298
13298
|
};
|
|
13299
13299
|
var intersectionProcessor = (schema, ctx, json2, params) => {
|
|
13300
13300
|
const def = schema._zod.def;
|
|
13301
|
-
const a =
|
|
13301
|
+
const a = process2(def.left, ctx, {
|
|
13302
13302
|
...params,
|
|
13303
13303
|
path: [...params.path, "allOf", 0]
|
|
13304
13304
|
});
|
|
13305
|
-
const b =
|
|
13305
|
+
const b = process2(def.right, ctx, {
|
|
13306
13306
|
...params,
|
|
13307
13307
|
path: [...params.path, "allOf", 1]
|
|
13308
13308
|
});
|
|
@@ -13319,11 +13319,11 @@ var tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
13319
13319
|
json2.type = "array";
|
|
13320
13320
|
const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
13321
13321
|
const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
13322
|
-
const prefixItems = def.items.map((x, i) =>
|
|
13322
|
+
const prefixItems = def.items.map((x, i) => process2(x, ctx, {
|
|
13323
13323
|
...params,
|
|
13324
13324
|
path: [...params.path, prefixPath, i]
|
|
13325
13325
|
}));
|
|
13326
|
-
const rest = def.rest ?
|
|
13326
|
+
const rest = def.rest ? process2(def.rest, ctx, {
|
|
13327
13327
|
...params,
|
|
13328
13328
|
path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []]
|
|
13329
13329
|
}) : null;
|
|
@@ -13363,7 +13363,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13363
13363
|
const keyBag = keyType._zod.bag;
|
|
13364
13364
|
const patterns = keyBag?.patterns;
|
|
13365
13365
|
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
13366
|
-
const valueSchema =
|
|
13366
|
+
const valueSchema = process2(def.valueType, ctx, {
|
|
13367
13367
|
...params,
|
|
13368
13368
|
path: [...params.path, "patternProperties", "*"]
|
|
13369
13369
|
});
|
|
@@ -13373,12 +13373,12 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13373
13373
|
}
|
|
13374
13374
|
} else {
|
|
13375
13375
|
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") {
|
|
13376
|
-
json2.propertyNames =
|
|
13376
|
+
json2.propertyNames = process2(def.keyType, ctx, {
|
|
13377
13377
|
...params,
|
|
13378
13378
|
path: [...params.path, "propertyNames"]
|
|
13379
13379
|
});
|
|
13380
13380
|
}
|
|
13381
|
-
json2.additionalProperties =
|
|
13381
|
+
json2.additionalProperties = process2(def.valueType, ctx, {
|
|
13382
13382
|
...params,
|
|
13383
13383
|
path: [...params.path, "additionalProperties"]
|
|
13384
13384
|
});
|
|
@@ -13393,7 +13393,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13393
13393
|
};
|
|
13394
13394
|
var nullableProcessor = (schema, ctx, json2, params) => {
|
|
13395
13395
|
const def = schema._zod.def;
|
|
13396
|
-
const inner =
|
|
13396
|
+
const inner = process2(def.innerType, ctx, params);
|
|
13397
13397
|
const seen = ctx.seen.get(schema);
|
|
13398
13398
|
if (ctx.target === "openapi-3.0") {
|
|
13399
13399
|
seen.ref = def.innerType;
|
|
@@ -13404,20 +13404,20 @@ var nullableProcessor = (schema, ctx, json2, params) => {
|
|
|
13404
13404
|
};
|
|
13405
13405
|
var nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
13406
13406
|
const def = schema._zod.def;
|
|
13407
|
-
|
|
13407
|
+
process2(def.innerType, ctx, params);
|
|
13408
13408
|
const seen = ctx.seen.get(schema);
|
|
13409
13409
|
seen.ref = def.innerType;
|
|
13410
13410
|
};
|
|
13411
13411
|
var defaultProcessor = (schema, ctx, json2, params) => {
|
|
13412
13412
|
const def = schema._zod.def;
|
|
13413
|
-
|
|
13413
|
+
process2(def.innerType, ctx, params);
|
|
13414
13414
|
const seen = ctx.seen.get(schema);
|
|
13415
13415
|
seen.ref = def.innerType;
|
|
13416
13416
|
json2.default = JSON.parse(JSON.stringify(def.defaultValue));
|
|
13417
13417
|
};
|
|
13418
13418
|
var prefaultProcessor = (schema, ctx, json2, params) => {
|
|
13419
13419
|
const def = schema._zod.def;
|
|
13420
|
-
|
|
13420
|
+
process2(def.innerType, ctx, params);
|
|
13421
13421
|
const seen = ctx.seen.get(schema);
|
|
13422
13422
|
seen.ref = def.innerType;
|
|
13423
13423
|
if (ctx.io === "input")
|
|
@@ -13425,7 +13425,7 @@ var prefaultProcessor = (schema, ctx, json2, params) => {
|
|
|
13425
13425
|
};
|
|
13426
13426
|
var catchProcessor = (schema, ctx, json2, params) => {
|
|
13427
13427
|
const def = schema._zod.def;
|
|
13428
|
-
|
|
13428
|
+
process2(def.innerType, ctx, params);
|
|
13429
13429
|
const seen = ctx.seen.get(schema);
|
|
13430
13430
|
seen.ref = def.innerType;
|
|
13431
13431
|
let catchValue;
|
|
@@ -13440,32 +13440,32 @@ var pipeProcessor = (schema, ctx, _json, params) => {
|
|
|
13440
13440
|
const def = schema._zod.def;
|
|
13441
13441
|
const inIsTransform = def.in._zod.traits.has("$ZodTransform");
|
|
13442
13442
|
const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out;
|
|
13443
|
-
|
|
13443
|
+
process2(innerType, ctx, params);
|
|
13444
13444
|
const seen = ctx.seen.get(schema);
|
|
13445
13445
|
seen.ref = innerType;
|
|
13446
13446
|
};
|
|
13447
13447
|
var readonlyProcessor = (schema, ctx, json2, params) => {
|
|
13448
13448
|
const def = schema._zod.def;
|
|
13449
|
-
|
|
13449
|
+
process2(def.innerType, ctx, params);
|
|
13450
13450
|
const seen = ctx.seen.get(schema);
|
|
13451
13451
|
seen.ref = def.innerType;
|
|
13452
13452
|
json2.readOnly = true;
|
|
13453
13453
|
};
|
|
13454
13454
|
var promiseProcessor = (schema, ctx, _json, params) => {
|
|
13455
13455
|
const def = schema._zod.def;
|
|
13456
|
-
|
|
13456
|
+
process2(def.innerType, ctx, params);
|
|
13457
13457
|
const seen = ctx.seen.get(schema);
|
|
13458
13458
|
seen.ref = def.innerType;
|
|
13459
13459
|
};
|
|
13460
13460
|
var optionalProcessor = (schema, ctx, _json, params) => {
|
|
13461
13461
|
const def = schema._zod.def;
|
|
13462
|
-
|
|
13462
|
+
process2(def.innerType, ctx, params);
|
|
13463
13463
|
const seen = ctx.seen.get(schema);
|
|
13464
13464
|
seen.ref = def.innerType;
|
|
13465
13465
|
};
|
|
13466
13466
|
var lazyProcessor = (schema, ctx, _json, params) => {
|
|
13467
13467
|
const innerType = schema._zod.innerType;
|
|
13468
|
-
|
|
13468
|
+
process2(innerType, ctx, params);
|
|
13469
13469
|
const seen = ctx.seen.get(schema);
|
|
13470
13470
|
seen.ref = innerType;
|
|
13471
13471
|
};
|
|
@@ -13517,7 +13517,7 @@ function toJSONSchema(input, params) {
|
|
|
13517
13517
|
const defs = {};
|
|
13518
13518
|
for (const entry of registry2._idmap.entries()) {
|
|
13519
13519
|
const [_, schema] = entry;
|
|
13520
|
-
|
|
13520
|
+
process2(schema, ctx2);
|
|
13521
13521
|
}
|
|
13522
13522
|
const schemas = {};
|
|
13523
13523
|
const external = {
|
|
@@ -13540,7 +13540,7 @@ function toJSONSchema(input, params) {
|
|
|
13540
13540
|
return { schemas };
|
|
13541
13541
|
}
|
|
13542
13542
|
const ctx = initializeContext({ ...params, processors: allProcessors });
|
|
13543
|
-
|
|
13543
|
+
process2(input, ctx);
|
|
13544
13544
|
extractDefs(ctx, input);
|
|
13545
13545
|
return finalize(ctx, input);
|
|
13546
13546
|
}
|
|
@@ -13598,7 +13598,7 @@ var JSONSchemaGenerator = class {
|
|
|
13598
13598
|
* This must be called before emit().
|
|
13599
13599
|
*/
|
|
13600
13600
|
process(schema, _params = { path: [], schemaPath: [] }) {
|
|
13601
|
-
return
|
|
13601
|
+
return process2(schema, this.ctx, _params);
|
|
13602
13602
|
}
|
|
13603
13603
|
/**
|
|
13604
13604
|
* Emit the final JSON Schema after processing.
|
|
@@ -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
|
};
|
|
@@ -19195,11 +19231,26 @@ function carrierPrefix(carrier, constructorArg, objectName, scope, scan) {
|
|
|
19195
19231
|
}
|
|
19196
19232
|
|
|
19197
19233
|
// src/project.ts
|
|
19234
|
+
function reportUnresolvedProjectModules(options) {
|
|
19235
|
+
for (const pack of options.packs) {
|
|
19236
|
+
for (const module2 of pack.projectModules ?? []) {
|
|
19237
|
+
const resolved = resolveAbsoluteModule(module2, { roots: options.roots });
|
|
19238
|
+
if (resolved.status === "resolved") {
|
|
19239
|
+
continue;
|
|
19240
|
+
}
|
|
19241
|
+
process.stderr.write(
|
|
19242
|
+
`[suss] ${pack.name}: the configured module ${module2} does not resolve under ${options.roots.join(", ")}, so nothing it wraps will be discovered.
|
|
19243
|
+
`
|
|
19244
|
+
);
|
|
19245
|
+
}
|
|
19246
|
+
}
|
|
19247
|
+
}
|
|
19198
19248
|
async function extractPythonProject(options) {
|
|
19199
19249
|
const db = new import_datalog3.Database();
|
|
19200
19250
|
const summaries = [];
|
|
19201
19251
|
const gapHandling = options.gapHandling ?? "permissive";
|
|
19202
19252
|
const displayPathOf = (file2) => options.workspaceRoot !== void 0 ? import_node_path3.default.relative(options.workspaceRoot, file2) : file2;
|
|
19253
|
+
reportUnresolvedProjectModules(options);
|
|
19203
19254
|
const bound = [];
|
|
19204
19255
|
for (const file2 of options.files) {
|
|
19205
19256
|
const source = import_node_fs3.default.readFileSync(file2, "utf8");
|
package/dist/index.d.cts
CHANGED
|
@@ -178,6 +178,15 @@ interface PythonPack {
|
|
|
178
178
|
/** Wire protocol for the produced boundary bindings, e.g. "http". */
|
|
179
179
|
protocol: string;
|
|
180
180
|
discovery: PythonDiscoveryPattern[];
|
|
181
|
+
/**
|
|
182
|
+
* Modules the project itself supplies, the wrappers a person names
|
|
183
|
+
* when configuring the pack. The library's own module is not one of
|
|
184
|
+
* these: it lives outside the project and would never resolve. The
|
|
185
|
+
* adapter checks each of these against the project's roots, because
|
|
186
|
+
* a wrapper that resolves to nothing does not match any decorator
|
|
187
|
+
* and never says why (#188).
|
|
188
|
+
*/
|
|
189
|
+
projectModules?: string[];
|
|
181
190
|
/** What the library's own database queries look like. The README says how one is matched. */
|
|
182
191
|
storage?: StoragePattern[];
|
|
183
192
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -178,6 +178,15 @@ interface PythonPack {
|
|
|
178
178
|
/** Wire protocol for the produced boundary bindings, e.g. "http". */
|
|
179
179
|
protocol: string;
|
|
180
180
|
discovery: PythonDiscoveryPattern[];
|
|
181
|
+
/**
|
|
182
|
+
* Modules the project itself supplies, the wrappers a person names
|
|
183
|
+
* when configuring the pack. The library's own module is not one of
|
|
184
|
+
* these: it lives outside the project and would never resolve. The
|
|
185
|
+
* adapter checks each of these against the project's roots, because
|
|
186
|
+
* a wrapper that resolves to nothing does not match any decorator
|
|
187
|
+
* and never says why (#188).
|
|
188
|
+
*/
|
|
189
|
+
projectModules?: string[];
|
|
181
190
|
/** What the library's own database queries look like. The README says how one is matched. */
|
|
182
191
|
storage?: StoragePattern[];
|
|
183
192
|
}
|
package/dist/index.js
CHANGED
|
@@ -1695,7 +1695,7 @@ __export(core_exports2, {
|
|
|
1695
1695
|
parse: () => parse,
|
|
1696
1696
|
parseAsync: () => parseAsync,
|
|
1697
1697
|
prettifyError: () => prettifyError,
|
|
1698
|
-
process: () =>
|
|
1698
|
+
process: () => process2,
|
|
1699
1699
|
regexes: () => regexes_exports,
|
|
1700
1700
|
registry: () => registry,
|
|
1701
1701
|
safeDecode: () => safeDecode,
|
|
@@ -12620,7 +12620,7 @@ function initializeContext(params) {
|
|
|
12620
12620
|
external: params?.external ?? void 0
|
|
12621
12621
|
};
|
|
12622
12622
|
}
|
|
12623
|
-
function
|
|
12623
|
+
function process2(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
12624
12624
|
var _a3;
|
|
12625
12625
|
const def = schema._zod.def;
|
|
12626
12626
|
const seen = ctx.seen.get(schema);
|
|
@@ -12657,7 +12657,7 @@ function process(schema, ctx, _params = { path: [], schemaPath: [] }) {
|
|
|
12657
12657
|
if (parent) {
|
|
12658
12658
|
if (!result.ref)
|
|
12659
12659
|
result.ref = parent;
|
|
12660
|
-
|
|
12660
|
+
process2(parent, ctx, params);
|
|
12661
12661
|
ctx.seen.get(parent).isParent = true;
|
|
12662
12662
|
}
|
|
12663
12663
|
}
|
|
@@ -12945,14 +12945,14 @@ function isTransforming(_schema, _ctx) {
|
|
|
12945
12945
|
}
|
|
12946
12946
|
var createToJSONSchemaMethod = (schema, processors = {}) => (params) => {
|
|
12947
12947
|
const ctx = initializeContext({ ...params, processors });
|
|
12948
|
-
|
|
12948
|
+
process2(schema, ctx);
|
|
12949
12949
|
extractDefs(ctx, schema);
|
|
12950
12950
|
return finalize(ctx, schema);
|
|
12951
12951
|
};
|
|
12952
12952
|
var createStandardJSONSchemaMethod = (schema, io, processors = {}) => (params) => {
|
|
12953
12953
|
const { libraryOptions, target } = params ?? {};
|
|
12954
12954
|
const ctx = initializeContext({ ...libraryOptions ?? {}, target, io, processors });
|
|
12955
|
-
|
|
12955
|
+
process2(schema, ctx);
|
|
12956
12956
|
extractDefs(ctx, schema);
|
|
12957
12957
|
return finalize(ctx, schema);
|
|
12958
12958
|
};
|
|
@@ -13198,7 +13198,7 @@ var arrayProcessor = (schema, ctx, _json, params) => {
|
|
|
13198
13198
|
if (typeof maximum === "number")
|
|
13199
13199
|
json2.maxItems = maximum;
|
|
13200
13200
|
json2.type = "array";
|
|
13201
|
-
json2.items =
|
|
13201
|
+
json2.items = process2(def.element, ctx, {
|
|
13202
13202
|
...params,
|
|
13203
13203
|
path: [...params.path, "items"]
|
|
13204
13204
|
});
|
|
@@ -13210,7 +13210,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13210
13210
|
json2.properties = {};
|
|
13211
13211
|
const shape = def.shape;
|
|
13212
13212
|
for (const key in shape) {
|
|
13213
|
-
json2.properties[key] =
|
|
13213
|
+
json2.properties[key] = process2(shape[key], ctx, {
|
|
13214
13214
|
...params,
|
|
13215
13215
|
path: [...params.path, "properties", key]
|
|
13216
13216
|
});
|
|
@@ -13233,7 +13233,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13233
13233
|
if (ctx.io === "output")
|
|
13234
13234
|
json2.additionalProperties = false;
|
|
13235
13235
|
} else if (def.catchall) {
|
|
13236
|
-
json2.additionalProperties =
|
|
13236
|
+
json2.additionalProperties = process2(def.catchall, ctx, {
|
|
13237
13237
|
...params,
|
|
13238
13238
|
path: [...params.path, "additionalProperties"]
|
|
13239
13239
|
});
|
|
@@ -13242,7 +13242,7 @@ var objectProcessor = (schema, ctx, _json, params) => {
|
|
|
13242
13242
|
var unionProcessor = (schema, ctx, json2, params) => {
|
|
13243
13243
|
const def = schema._zod.def;
|
|
13244
13244
|
const isExclusive = def.inclusive === false;
|
|
13245
|
-
const options = def.options.map((x, i) =>
|
|
13245
|
+
const options = def.options.map((x, i) => process2(x, ctx, {
|
|
13246
13246
|
...params,
|
|
13247
13247
|
path: [...params.path, isExclusive ? "oneOf" : "anyOf", i]
|
|
13248
13248
|
}));
|
|
@@ -13254,11 +13254,11 @@ var unionProcessor = (schema, ctx, json2, params) => {
|
|
|
13254
13254
|
};
|
|
13255
13255
|
var intersectionProcessor = (schema, ctx, json2, params) => {
|
|
13256
13256
|
const def = schema._zod.def;
|
|
13257
|
-
const a =
|
|
13257
|
+
const a = process2(def.left, ctx, {
|
|
13258
13258
|
...params,
|
|
13259
13259
|
path: [...params.path, "allOf", 0]
|
|
13260
13260
|
});
|
|
13261
|
-
const b =
|
|
13261
|
+
const b = process2(def.right, ctx, {
|
|
13262
13262
|
...params,
|
|
13263
13263
|
path: [...params.path, "allOf", 1]
|
|
13264
13264
|
});
|
|
@@ -13275,11 +13275,11 @@ var tupleProcessor = (schema, ctx, _json, params) => {
|
|
|
13275
13275
|
json2.type = "array";
|
|
13276
13276
|
const prefixPath = ctx.target === "draft-2020-12" ? "prefixItems" : "items";
|
|
13277
13277
|
const restPath = ctx.target === "draft-2020-12" ? "items" : ctx.target === "openapi-3.0" ? "items" : "additionalItems";
|
|
13278
|
-
const prefixItems = def.items.map((x, i) =>
|
|
13278
|
+
const prefixItems = def.items.map((x, i) => process2(x, ctx, {
|
|
13279
13279
|
...params,
|
|
13280
13280
|
path: [...params.path, prefixPath, i]
|
|
13281
13281
|
}));
|
|
13282
|
-
const rest = def.rest ?
|
|
13282
|
+
const rest = def.rest ? process2(def.rest, ctx, {
|
|
13283
13283
|
...params,
|
|
13284
13284
|
path: [...params.path, restPath, ...ctx.target === "openapi-3.0" ? [def.items.length] : []]
|
|
13285
13285
|
}) : null;
|
|
@@ -13319,7 +13319,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13319
13319
|
const keyBag = keyType._zod.bag;
|
|
13320
13320
|
const patterns = keyBag?.patterns;
|
|
13321
13321
|
if (def.mode === "loose" && patterns && patterns.size > 0) {
|
|
13322
|
-
const valueSchema =
|
|
13322
|
+
const valueSchema = process2(def.valueType, ctx, {
|
|
13323
13323
|
...params,
|
|
13324
13324
|
path: [...params.path, "patternProperties", "*"]
|
|
13325
13325
|
});
|
|
@@ -13329,12 +13329,12 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13329
13329
|
}
|
|
13330
13330
|
} else {
|
|
13331
13331
|
if (ctx.target === "draft-07" || ctx.target === "draft-2020-12") {
|
|
13332
|
-
json2.propertyNames =
|
|
13332
|
+
json2.propertyNames = process2(def.keyType, ctx, {
|
|
13333
13333
|
...params,
|
|
13334
13334
|
path: [...params.path, "propertyNames"]
|
|
13335
13335
|
});
|
|
13336
13336
|
}
|
|
13337
|
-
json2.additionalProperties =
|
|
13337
|
+
json2.additionalProperties = process2(def.valueType, ctx, {
|
|
13338
13338
|
...params,
|
|
13339
13339
|
path: [...params.path, "additionalProperties"]
|
|
13340
13340
|
});
|
|
@@ -13349,7 +13349,7 @@ var recordProcessor = (schema, ctx, _json, params) => {
|
|
|
13349
13349
|
};
|
|
13350
13350
|
var nullableProcessor = (schema, ctx, json2, params) => {
|
|
13351
13351
|
const def = schema._zod.def;
|
|
13352
|
-
const inner =
|
|
13352
|
+
const inner = process2(def.innerType, ctx, params);
|
|
13353
13353
|
const seen = ctx.seen.get(schema);
|
|
13354
13354
|
if (ctx.target === "openapi-3.0") {
|
|
13355
13355
|
seen.ref = def.innerType;
|
|
@@ -13360,20 +13360,20 @@ var nullableProcessor = (schema, ctx, json2, params) => {
|
|
|
13360
13360
|
};
|
|
13361
13361
|
var nonoptionalProcessor = (schema, ctx, _json, params) => {
|
|
13362
13362
|
const def = schema._zod.def;
|
|
13363
|
-
|
|
13363
|
+
process2(def.innerType, ctx, params);
|
|
13364
13364
|
const seen = ctx.seen.get(schema);
|
|
13365
13365
|
seen.ref = def.innerType;
|
|
13366
13366
|
};
|
|
13367
13367
|
var defaultProcessor = (schema, ctx, json2, params) => {
|
|
13368
13368
|
const def = schema._zod.def;
|
|
13369
|
-
|
|
13369
|
+
process2(def.innerType, ctx, params);
|
|
13370
13370
|
const seen = ctx.seen.get(schema);
|
|
13371
13371
|
seen.ref = def.innerType;
|
|
13372
13372
|
json2.default = JSON.parse(JSON.stringify(def.defaultValue));
|
|
13373
13373
|
};
|
|
13374
13374
|
var prefaultProcessor = (schema, ctx, json2, params) => {
|
|
13375
13375
|
const def = schema._zod.def;
|
|
13376
|
-
|
|
13376
|
+
process2(def.innerType, ctx, params);
|
|
13377
13377
|
const seen = ctx.seen.get(schema);
|
|
13378
13378
|
seen.ref = def.innerType;
|
|
13379
13379
|
if (ctx.io === "input")
|
|
@@ -13381,7 +13381,7 @@ var prefaultProcessor = (schema, ctx, json2, params) => {
|
|
|
13381
13381
|
};
|
|
13382
13382
|
var catchProcessor = (schema, ctx, json2, params) => {
|
|
13383
13383
|
const def = schema._zod.def;
|
|
13384
|
-
|
|
13384
|
+
process2(def.innerType, ctx, params);
|
|
13385
13385
|
const seen = ctx.seen.get(schema);
|
|
13386
13386
|
seen.ref = def.innerType;
|
|
13387
13387
|
let catchValue;
|
|
@@ -13396,32 +13396,32 @@ var pipeProcessor = (schema, ctx, _json, params) => {
|
|
|
13396
13396
|
const def = schema._zod.def;
|
|
13397
13397
|
const inIsTransform = def.in._zod.traits.has("$ZodTransform");
|
|
13398
13398
|
const innerType = ctx.io === "input" ? inIsTransform ? def.out : def.in : def.out;
|
|
13399
|
-
|
|
13399
|
+
process2(innerType, ctx, params);
|
|
13400
13400
|
const seen = ctx.seen.get(schema);
|
|
13401
13401
|
seen.ref = innerType;
|
|
13402
13402
|
};
|
|
13403
13403
|
var readonlyProcessor = (schema, ctx, json2, params) => {
|
|
13404
13404
|
const def = schema._zod.def;
|
|
13405
|
-
|
|
13405
|
+
process2(def.innerType, ctx, params);
|
|
13406
13406
|
const seen = ctx.seen.get(schema);
|
|
13407
13407
|
seen.ref = def.innerType;
|
|
13408
13408
|
json2.readOnly = true;
|
|
13409
13409
|
};
|
|
13410
13410
|
var promiseProcessor = (schema, ctx, _json, params) => {
|
|
13411
13411
|
const def = schema._zod.def;
|
|
13412
|
-
|
|
13412
|
+
process2(def.innerType, ctx, params);
|
|
13413
13413
|
const seen = ctx.seen.get(schema);
|
|
13414
13414
|
seen.ref = def.innerType;
|
|
13415
13415
|
};
|
|
13416
13416
|
var optionalProcessor = (schema, ctx, _json, params) => {
|
|
13417
13417
|
const def = schema._zod.def;
|
|
13418
|
-
|
|
13418
|
+
process2(def.innerType, ctx, params);
|
|
13419
13419
|
const seen = ctx.seen.get(schema);
|
|
13420
13420
|
seen.ref = def.innerType;
|
|
13421
13421
|
};
|
|
13422
13422
|
var lazyProcessor = (schema, ctx, _json, params) => {
|
|
13423
13423
|
const innerType = schema._zod.innerType;
|
|
13424
|
-
|
|
13424
|
+
process2(innerType, ctx, params);
|
|
13425
13425
|
const seen = ctx.seen.get(schema);
|
|
13426
13426
|
seen.ref = innerType;
|
|
13427
13427
|
};
|
|
@@ -13473,7 +13473,7 @@ function toJSONSchema(input, params) {
|
|
|
13473
13473
|
const defs = {};
|
|
13474
13474
|
for (const entry of registry2._idmap.entries()) {
|
|
13475
13475
|
const [_, schema] = entry;
|
|
13476
|
-
|
|
13476
|
+
process2(schema, ctx2);
|
|
13477
13477
|
}
|
|
13478
13478
|
const schemas = {};
|
|
13479
13479
|
const external = {
|
|
@@ -13496,7 +13496,7 @@ function toJSONSchema(input, params) {
|
|
|
13496
13496
|
return { schemas };
|
|
13497
13497
|
}
|
|
13498
13498
|
const ctx = initializeContext({ ...params, processors: allProcessors });
|
|
13499
|
-
|
|
13499
|
+
process2(input, ctx);
|
|
13500
13500
|
extractDefs(ctx, input);
|
|
13501
13501
|
return finalize(ctx, input);
|
|
13502
13502
|
}
|
|
@@ -13554,7 +13554,7 @@ var JSONSchemaGenerator = class {
|
|
|
13554
13554
|
* This must be called before emit().
|
|
13555
13555
|
*/
|
|
13556
13556
|
process(schema, _params = { path: [], schemaPath: [] }) {
|
|
13557
|
-
return
|
|
13557
|
+
return process2(schema, this.ctx, _params);
|
|
13558
13558
|
}
|
|
13559
13559
|
/**
|
|
13560
13560
|
* Emit the final JSON Schema after processing.
|
|
@@ -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
|
};
|
|
@@ -19151,11 +19187,26 @@ function carrierPrefix(carrier, constructorArg, objectName, scope, scan) {
|
|
|
19151
19187
|
}
|
|
19152
19188
|
|
|
19153
19189
|
// src/project.ts
|
|
19190
|
+
function reportUnresolvedProjectModules(options) {
|
|
19191
|
+
for (const pack of options.packs) {
|
|
19192
|
+
for (const module of pack.projectModules ?? []) {
|
|
19193
|
+
const resolved = resolveAbsoluteModule(module, { roots: options.roots });
|
|
19194
|
+
if (resolved.status === "resolved") {
|
|
19195
|
+
continue;
|
|
19196
|
+
}
|
|
19197
|
+
process.stderr.write(
|
|
19198
|
+
`[suss] ${pack.name}: the configured module ${module} does not resolve under ${options.roots.join(", ")}, so nothing it wraps will be discovered.
|
|
19199
|
+
`
|
|
19200
|
+
);
|
|
19201
|
+
}
|
|
19202
|
+
}
|
|
19203
|
+
}
|
|
19154
19204
|
async function extractPythonProject(options) {
|
|
19155
19205
|
const db = new Database();
|
|
19156
19206
|
const summaries = [];
|
|
19157
19207
|
const gapHandling = options.gapHandling ?? "permissive";
|
|
19158
19208
|
const displayPathOf = (file2) => options.workspaceRoot !== void 0 ? path3.relative(options.workspaceRoot, file2) : file2;
|
|
19209
|
+
reportUnresolvedProjectModules(options);
|
|
19159
19210
|
const bound = [];
|
|
19160
19211
|
for (const file2 of options.files) {
|
|
19161
19212
|
const source = fs3.readFileSync(file2, "utf8");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@suss/adapter-python",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.11",
|
|
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.11",
|
|
51
|
+
"@suss/datalog": "0.5.11",
|
|
52
|
+
"@suss/extractor": "0.5.11",
|
|
53
53
|
"web-tree-sitter": "^0.26.11"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|