@descryy/adapter-go 0.4.1 → 0.5.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/client.js CHANGED
@@ -4,6 +4,9 @@
4
4
  * `client.*` only admitted on a resolved `http.Client` type.
5
5
  */
6
6
  import { endpointQsp, nodeId } from "@descryy/ir";
7
+ import { originOf, pathPrefixOf, prefixOfBaseLiteral } from "./client-base.js";
8
+ /** The origin set before any base has been read. Named so a caller cannot pass `new Set()` by accident and mean something else. */
9
+ export const NO_KNOWN_ORIGINS = new Set();
7
10
  const HTTP_PACKAGE = "net/http";
8
11
  /** Convenience methods whose name states the verb, on either the package or a `*Client`. */
9
12
  const VERB_METHODS = new Map([
@@ -70,6 +73,11 @@ function relativePath(value) {
70
73
  const cut = value.indexOf("?");
71
74
  return cut === -1 ? value : value.slice(0, cut);
72
75
  }
76
+ /** Everything before the first `?` — the query is stripped before an id is built from a path (DEC-013). */
77
+ function stripQueryOf(value) {
78
+ const cut = value.indexOf("?");
79
+ return cut === -1 ? value : value.slice(0, cut);
80
+ }
73
81
  /** A literal that unambiguously names a *different* origin. Copied, not re-derived. */
74
82
  function namesAnotherOrigin(value) {
75
83
  return /^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//.test(value) || value.startsWith("//");
@@ -104,18 +112,148 @@ function isHttpClientType(written, unit) {
104
112
  const name = written.slice(cut + 1);
105
113
  return name === "Client" && unit.imports.get(qualifier) === HTTP_PACKAGE;
106
114
  }
115
+ // --- DEC-164's splice reader -------------------------------------------------
116
+ //
117
+ // Go's base-carrying shape is `NAME + "/suffix/" + param`. The chain is
118
+ // left-nested, so it is flattened back into source order before anything is
119
+ // read from it.
120
+ /** The operands of a left-nested `+` chain, in source order. `undefined` for anything else. */
121
+ function spliceOperands(node) {
122
+ if (node.type !== "binary_expression")
123
+ return undefined;
124
+ const operator = node.childForFieldName("operator");
125
+ if (operator === null || operator.text !== "+")
126
+ return undefined;
127
+ const left = node.childForFieldName("left");
128
+ const right = node.childForFieldName("right");
129
+ if (left === null || right === null)
130
+ return undefined;
131
+ return [...(spliceOperands(left) ?? [left]), right];
132
+ }
133
+ /**
134
+ * `name := expr` / `var name = expr` / `const name = expr` inside one body.
135
+ *
136
+ * Only the expression is kept, not a value: whether it is readable is
137
+ * `baseOf`'s question, and a binding whose RHS is `os.Getenv("X")` has to
138
+ * reach the refusal row as that exact text (DEC-242's `blockedBy`).
139
+ */
140
+ function localBindings(body) {
141
+ const bound = new Map();
142
+ const pair = (left, right) => {
143
+ if (left === null || right === null)
144
+ return;
145
+ if (left.namedChildCount !== 1 || right.namedChildCount !== 1)
146
+ return;
147
+ const name = left.namedChild(0);
148
+ const value = right.namedChild(0);
149
+ if (name === null || value === null || name.type !== "identifier")
150
+ return;
151
+ // First writer wins: a name reassigned later is one this reader cannot
152
+ // follow, and the first binding is the one it can state honestly.
153
+ if (!bound.has(name.text))
154
+ bound.set(name.text, value);
155
+ };
156
+ const visit = (node) => {
157
+ if (node.type === "short_var_declaration") {
158
+ pair(node.childForFieldName("left"), node.childForFieldName("right"));
159
+ }
160
+ if (node.type === "var_declaration" || node.type === "const_declaration") {
161
+ for (let i = 0; i < node.namedChildCount; i += 1) {
162
+ const spec = node.namedChild(i);
163
+ if (spec === null || (spec.type !== "var_spec" && spec.type !== "const_spec"))
164
+ continue;
165
+ const names = [];
166
+ for (let n = 0; n < spec.namedChildCount; n += 1) {
167
+ const child = spec.namedChild(n);
168
+ if (child !== null && child.type === "identifier")
169
+ names.push(child);
170
+ }
171
+ const values = spec.childForFieldName("value");
172
+ if (names.length !== 1 || values === null || values.namedChildCount !== 1)
173
+ continue;
174
+ const name = names[0];
175
+ const value = values.namedChild(0);
176
+ if (name === undefined || value === null)
177
+ continue;
178
+ if (!bound.has(name.text))
179
+ bound.set(name.text, value);
180
+ }
181
+ }
182
+ for (let i = 0; i < node.namedChildCount; i += 1) {
183
+ const child = node.namedChild(i);
184
+ if (child !== null)
185
+ visit(child);
186
+ }
187
+ };
188
+ visit(body);
189
+ return bound;
190
+ }
191
+ /**
192
+ * The base a named head operand resolves to.
193
+ *
194
+ * A *string literal* head is deliberately not a base — `"/orders/" + id` is a
195
+ * path with an interpolated segment, which `adapter-typescript` draws the same
196
+ * line on ("a non-empty head is a path, not a base"). Only a name can carry
197
+ * one, and a name this file does not bind to a literal is `unresolved` rather
198
+ * than a guess.
199
+ */
200
+ function baseOf(head, locals, packageConsts) {
201
+ const unreadable = (why) => ({ base: { state: "unresolved", why } });
202
+ if (head.type !== "identifier")
203
+ return unreadable(head.text.slice(0, 120));
204
+ const bound = locals.get(head.text);
205
+ const literal = bound === undefined ? packageConsts.get(head.text) : literalOf(bound);
206
+ if (literal === undefined) {
207
+ return unreadable((bound === undefined ? head : bound).text.slice(0, 120));
208
+ }
209
+ const prefix = prefixOfBaseLiteral(literal);
210
+ // A literal that is neither absolute nor repository-relative — `"api/v1"`.
211
+ // Nothing to strip and nothing to anchor it to, so no claim is made and the
212
+ // existing refusal keeps the call.
213
+ if (prefix === undefined)
214
+ return unreadable(literal.slice(0, 120));
215
+ const origin = originOf(literal);
216
+ return { base: { state: "resolved", path: prefix }, ...(origin === undefined ? {} : { origin }) };
217
+ }
218
+ /** The written suffix after the base operand, as a `{param}` template. */
219
+ function suffixOf(operands) {
220
+ let out = "";
221
+ for (const operand of operands.slice(1)) {
222
+ const literal = literalOf(operand);
223
+ out += literal ?? "{param}";
224
+ }
225
+ return out;
226
+ }
107
227
  /** Every outbound HTTP call in a function body, ledger row per refusal. `locals` read but never written here. */
108
- export function readGoClientCalls(body, unit, locals, isTest, parameterNames = new Set()) {
228
+ export function readGoClientCalls(body, unit, locals, isTest, parameterNames = new Set(),
229
+ /** DEC-164: this file's package-level string constants, the only base table Go's per-file parse has. */
230
+ packageConsts = new Map(),
231
+ /** Origins some base in this same file already resolves to — see `client-base.ts`'s header. */
232
+ knownOrigins = NO_KNOWN_ORIGINS) {
109
233
  const calls = [];
110
234
  const refusals = [];
111
235
  const callerKind = isTest ? "test" : "production";
236
+ const bindings = localBindings(body);
237
+ /** DEC-164's `none`: no base-setting mechanism in play at this call site. */
238
+ const NO_BASE = { state: "none" };
112
239
  const admit = (method, verb, rawUrl, line) => {
113
240
  const template = relativePath(rawUrl);
114
241
  if (template !== undefined) {
115
- calls.push({ method, verb, template, line, callerKind });
242
+ calls.push({ method, verb, template, line, callerKind, clientBase: NO_BASE });
116
243
  return;
117
244
  }
118
245
  if (namesAnotherOrigin(rawUrl)) {
246
+ // DEC-164's 08c, and the one narrow exception to DEC-113: an origin
247
+ // some base in this same file resolves to is an origin this program
248
+ // treats as its own API, so the path under it is a path in this
249
+ // repository. A bare origin with no path is not an endpoint anything
250
+ // serves and stays out of scope.
251
+ const origin = originOf(rawUrl);
252
+ const under = origin !== undefined && knownOrigins.has(origin) ? pathPrefixOf(stripQueryOf(rawUrl)) : undefined;
253
+ if (under !== undefined && under !== "") {
254
+ calls.push({ method, verb, template: under, line, callerKind, clientBase: NO_BASE });
255
+ return;
256
+ }
119
257
  refusals.push({
120
258
  raw: `${method}(${rawUrl})`,
121
259
  line,
@@ -133,9 +271,69 @@ export function readGoClientCalls(body, unit, locals, isTest, parameterNames = n
133
271
  `— or elsewhere, so neither an endpoint nor a scope boundary is claimed.`,
134
272
  // Not a per-call value and not a named blocking expression either —
135
273
  // this reader just cannot see the base configuration.
274
+ //
275
+ // And NO `clientBase`: this row exists precisely because the reader
276
+ // could not tell whether a base applies, so DEC-164's fourth state —
277
+ // the field's absence — is the only honest one. Writing `none` here
278
+ // would turn "I did not determine this" into "there is none", which is
279
+ // the claim the refusal's own text denies making.
136
280
  ...CAPABILITY_GAP,
137
281
  });
138
282
  };
283
+ /**
284
+ * DEC-164: a base spliced in front of the path. Returns `true` when this
285
+ * reader owned the argument — admitted or refused — and `false` when it is
286
+ * not a splice at all and the caller's own rules still apply.
287
+ */
288
+ const admitSplice = (method, verb, urlArg, line) => {
289
+ const operands = spliceOperands(urlArg);
290
+ const head = operands?.[0];
291
+ // Only a NAME carries a base. A string-literal head is a path with an
292
+ // interpolated segment, which this reader does not own.
293
+ if (operands === undefined || head === undefined || head.type !== "identifier")
294
+ return false;
295
+ const { base, origin } = baseOf(head, bindings, packageConsts);
296
+ const suffix = suffixOf(operands);
297
+ if (base.state === "unresolved") {
298
+ // DEC-164 §2: never guess. No edge, and the row names BOTH halves —
299
+ // the blocking expression and the call's own path.
300
+ refusals.push({
301
+ raw: `${method}(${urlArg.text.slice(0, 120)})`,
302
+ line,
303
+ reason: `an HTTP call whose path splices the base \`${base.why}\` in front of \`${suffix}\`, and that base ` +
304
+ `does not resolve to a string literal this reader can see. DEC-164 refuses rather than guesses ` +
305
+ `what an unreadable base composes to.`,
306
+ ...diagnoseArgument(base.why, parameterNames),
307
+ clientBase: base,
308
+ ...(suffix.startsWith("/") ? { callPath: suffix } : {}),
309
+ });
310
+ return true;
311
+ }
312
+ if (!suffix.startsWith("/")) {
313
+ // A base this reader read, joined to a suffix that does not start a
314
+ // path. Nothing composes without inventing the separator, so the base
315
+ // is reported and the edge is not.
316
+ refusals.push({
317
+ raw: `${method}(${urlArg.text.slice(0, 120)})`,
318
+ line,
319
+ reason: `an HTTP call whose base this reader resolved to \`${base.path}\` but whose remaining path ` +
320
+ `\`${suffix}\` does not begin at a segment boundary. Joining the two would invent a separator.`,
321
+ ...CAPABILITY_GAP,
322
+ clientBase: base,
323
+ });
324
+ return true;
325
+ }
326
+ calls.push({
327
+ method,
328
+ verb,
329
+ template: `${base.path}${suffix}`,
330
+ line,
331
+ callerKind,
332
+ clientBase: base,
333
+ ...(origin === undefined ? {} : { baseOrigin: origin }),
334
+ });
335
+ return true;
336
+ };
139
337
  const readCall = (call) => {
140
338
  const callee = call.childForFieldName("function");
141
339
  if (callee === null || callee.type !== "selector_expression")
@@ -160,6 +358,12 @@ export function readGoClientCalls(body, unit, locals, isTest, parameterNames = n
160
358
  const urlArg = args?.namedChild(skip + 1) ?? null;
161
359
  const verb = verbOf(methodArg, unit);
162
360
  const rawUrl = literalOf(urlArg);
361
+ if (verb !== undefined && rawUrl === undefined && urlArg !== null) {
362
+ // DEC-164: a base spliced in front of the path. Owned here or not at
363
+ // all — `admitSplice` returns false for anything that is not one.
364
+ if (admitSplice(`${base.text}.${method}`, verb, urlArg, line))
365
+ return;
366
+ }
163
367
  if (verb === undefined || rawUrl === undefined) {
164
368
  refusals.push({
165
369
  raw: `${base.text}.${method}(...)`,
@@ -195,6 +399,8 @@ export function readGoClientCalls(body, unit, locals, isTest, parameterNames = n
195
399
  // `Get`/`Head`/`Post`/`PostForm` all take the URL as their first argument.
196
400
  const urlArg = args?.namedChild(0) ?? null;
197
401
  const rawUrl = literalOf(urlArg);
402
+ if (rawUrl === undefined && urlArg !== null && admitSplice(`${base.text}.${method}`, verb, urlArg, line))
403
+ return;
198
404
  if (rawUrl === undefined) {
199
405
  refusals.push({
200
406
  raw: `${base.text}.${method}(...)`,
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/extract.d.ts CHANGED
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { type IdentityScope, type IREdge, type IRNode, type ResolutionLevel, type UnresolvedRef } from "@descryy/ir";
7
7
  import type { GoFile } from "./parse.ts";
8
+ import type { GoShapeResult } from "./go-types.ts";
8
9
  export declare const LANGUAGE = "go";
9
10
  declare const REASONS: {
10
11
  readonly outside: string;
@@ -14,6 +15,8 @@ declare const REASONS: {
14
15
  readonly noImportPath: string;
15
16
  readonly unknownName: "no declaration for this name in the package, its imports, or the analysed set.";
16
17
  readonly routeIdCollision: string;
18
+ readonly grpcImplUnreadable: string;
19
+ readonly grpcImplUntyped: string;
17
20
  };
18
21
  export interface ExtractInput {
19
22
  readonly repo: string;
@@ -25,12 +28,62 @@ export interface ExtractInput {
25
28
  * them is ours whether or not this run read it; treating it as a dependency
26
29
  * is the error that never surfaces. Absent = no boundary attribution. */
27
30
  readonly ownModulePaths?: readonly string[];
31
+ /**
32
+ * `go/types`-backed struct shapes and the handlers that decode/encode them —
33
+ * `go-types.ts`'s `runGoShapeExtractor`, or absent when this run never
34
+ * attempted it (the default) or the toolchain/helper was unavailable.
35
+ * **Only consumed when `reached >= 3`** — `adapter.ts` sets the two
36
+ * together, and this function re-checks it rather than trusting the caller,
37
+ * the same defence-in-depth every other resolution-gated pass here applies.
38
+ */
39
+ readonly goShapes?: GoShapeResult;
40
+ /** Set when a caller asked for R3 (`maxResolution: 3`) and this run could not
41
+ * reach it — `adapter.ts`'s honest-degradation message, surfaced here as one
42
+ * disclosed row rather than swallowed. Never set alongside `goShapes`. */
43
+ readonly goShapesUnavailableReason?: string;
28
44
  }
29
45
  export interface Extraction {
30
46
  readonly nodes: readonly IRNode[];
31
47
  readonly edges: readonly IREdge[];
32
48
  readonly unresolved: readonly UnresolvedRef[];
33
49
  }
50
+ /**
51
+ * The fallback graph when `extract()` throws mid-run, per
52
+ * `DEC-NEXT-degraded-graph-shape-for-adapters-without-one.md`.
53
+ *
54
+ * `MODULE`, not `FILE` — unlike C#/Java (whose module identity is a
55
+ * declaration *inside* the file, exactly the machinery a mid-extraction
56
+ * throw means just failed), Go's import path is, in this adapter's own
57
+ * words, "declared, so `qsp` needs no anchor inference": it is resolved from
58
+ * `go.mod`'s `module` line plus the file's own directory (`modules.ts`'s
59
+ * `importPathOf`), never from parsing the file's content. `prepare()`
60
+ * already computed it, successfully, for every unit that reaches this
61
+ * function — `isolateFile` keeps a per-file parse/walk throw from ever
62
+ * populating `input.files` in the first place, so a throw here is
63
+ * necessarily further downstream (cross-file resolution, edge building), not
64
+ * a sign the identity below is unreliable. Minting `MODULE` with the exact
65
+ * id computation `extract()`'s own healthy path uses (`namespaceOf` +
66
+ * `symbolQsp`) means a degraded run's nodes merge with a later healthy run's
67
+ * for the same files, rather than forking against them the way a generic
68
+ * `FILE` node would.
69
+ *
70
+ * The per-file `try`/`catch` is defensive only: `namespaceOf` reads fields
71
+ * `prepare()` already resolved without error, so it should be unreachable in
72
+ * practice. If some future caller ever hands this function a unit whose
73
+ * fields are not what `prepare()` guarantees, falling back to the shared,
74
+ * language-blind `fileNode` (`@descryy/adapter-common`) for that one file
75
+ * keeps the fallback itself from becoming a second uncaught throw.
76
+ *
77
+ * One disclosure row, not one per file — the fact is about the run. Anchored
78
+ * to the first file's node because the ledger requires a `fromNodeId`.
79
+ */
80
+ export declare function degradedGraph(input: {
81
+ readonly repo: string;
82
+ readonly workspace: string | undefined;
83
+ readonly producedBy: string;
84
+ readonly files: readonly GoFile[];
85
+ readonly cause: string;
86
+ }): Extraction;
34
87
  export declare function extract(input: ExtractInput): Extraction;
35
88
  export { REASONS };
36
89
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAOL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAIrB,OAAO,KAAK,EAAE,MAAM,EAA6C,MAAM,YAAY,CAAC;AAGpF,eAAO,MAAM,QAAQ,OAAO,CAAC;AAI7B,QAAA,MAAM,OAAO;;;;;;;;CAqBH,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;8EAE0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAgCD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CA67BvD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../src/extract.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAQL,KAAK,aAAa,EAClB,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,eAAe,EACpB,KAAK,aAAa,EACnB,MAAM,aAAa,CAAC;AAOrB,OAAO,KAAK,EAAE,MAAM,EAA6C,MAAM,YAAY,CAAC;AAIpF,OAAO,KAAK,EAAc,aAAa,EAAiB,MAAM,eAAe,CAAC;AAE9E,eAAO,MAAM,QAAQ,OAAO,CAAC;AAc7B,QAAA,MAAM,OAAO;;;;;;;;;;CA8BH,CAAC;AAEX,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC;;8EAE0E;IAC1E,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C;;;;;;;OAOG;IACH,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAClC;;+EAE2E;IAC3E,QAAQ,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC;CAC7C;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,UAAU,EAAE,SAAS,aAAa,EAAE,CAAC;CAC/C;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IACnC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,GAAG,UAAU,CA6Cb;AAkCD,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CA+vCvD;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}