@voxgig/apidef 8.11.0 → 8.12.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.
Files changed (79) hide show
  1. package/dist/apidef.d.ts +4 -1
  2. package/dist/apidef.js +12 -34
  3. package/dist/apidef.js.map +1 -1
  4. package/dist/builder/entity/entity.js +0 -33
  5. package/dist/builder/entity/entity.js.map +1 -1
  6. package/dist/builder/entity/info.js +0 -4
  7. package/dist/builder/entity/info.js.map +1 -1
  8. package/dist/builder/flow.d.ts +4 -1
  9. package/dist/builder/flow.js +36 -27
  10. package/dist/builder/flow.js.map +1 -1
  11. package/dist/guide/graphql01.js +0 -55
  12. package/dist/guide/graphql01.js.map +1 -1
  13. package/dist/guide/guide.js +3 -126
  14. package/dist/guide/guide.js.map +1 -1
  15. package/dist/guide/heuristic01.js +40 -181
  16. package/dist/guide/heuristic01.js.map +1 -1
  17. package/dist/parse/graphql.js +0 -25
  18. package/dist/parse/graphql.js.map +1 -1
  19. package/dist/parse.js +51 -56
  20. package/dist/parse.js.map +1 -1
  21. package/dist/resolved.d.ts +23 -0
  22. package/dist/resolved.js +92 -0
  23. package/dist/resolved.js.map +1 -0
  24. package/dist/resolver.js +0 -2
  25. package/dist/resolver.js.map +1 -1
  26. package/dist/transform/args.js +2 -25
  27. package/dist/transform/args.js.map +1 -1
  28. package/dist/transform/casecollide.d.ts +3 -0
  29. package/dist/transform/casecollide.js +67 -0
  30. package/dist/transform/casecollide.js.map +1 -0
  31. package/dist/transform/contract.js +43 -38
  32. package/dist/transform/contract.js.map +1 -1
  33. package/dist/transform/entity.js +0 -56
  34. package/dist/transform/entity.js.map +1 -1
  35. package/dist/transform/field.js +1 -368
  36. package/dist/transform/field.js.map +1 -1
  37. package/dist/transform/flowstep.js +0 -49
  38. package/dist/transform/flowstep.js.map +1 -1
  39. package/dist/transform/graphql.js +0 -36
  40. package/dist/transform/graphql.js.map +1 -1
  41. package/dist/transform/operation.js +0 -23
  42. package/dist/transform/operation.js.map +1 -1
  43. package/dist/transform/top.js +1 -128
  44. package/dist/transform/top.js.map +1 -1
  45. package/dist/transform.js.map +1 -1
  46. package/dist/tsconfig.tsbuildinfo +1 -1
  47. package/dist/types.d.ts +2 -0
  48. package/dist/types.js.map +1 -1
  49. package/dist/utility.d.ts +2 -1
  50. package/dist/utility.js +17 -316
  51. package/dist/utility.js.map +1 -1
  52. package/model/apidef.aon +20 -113
  53. package/model/guide.aon +1 -32
  54. package/package.json +5 -5
  55. package/src/apidef.ts +22 -33
  56. package/src/builder/entity/entity.ts +0 -33
  57. package/src/builder/entity/info.ts +0 -4
  58. package/src/builder/flow.ts +39 -24
  59. package/src/desc.ts +0 -22
  60. package/src/guide/graphql01.ts +0 -75
  61. package/src/guide/guide.ts +5 -127
  62. package/src/guide/heuristic01.ts +47 -182
  63. package/src/model.ts +6 -85
  64. package/src/parse/graphql.ts +0 -25
  65. package/src/parse.ts +61 -56
  66. package/src/resolved.ts +136 -0
  67. package/src/resolver.ts +0 -2
  68. package/src/transform/args.ts +2 -25
  69. package/src/transform/casecollide.ts +80 -0
  70. package/src/transform/contract.ts +44 -34
  71. package/src/transform/entity.ts +0 -56
  72. package/src/transform/field.ts +2 -368
  73. package/src/transform/flowstep.ts +0 -49
  74. package/src/transform/graphql.ts +0 -36
  75. package/src/transform/operation.ts +0 -23
  76. package/src/transform/top.ts +1 -131
  77. package/src/transform.ts +0 -1
  78. package/src/types.ts +4 -13
  79. package/src/utility.ts +18 -314
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /* Copyright (c) 2024-2026 Voxgig Ltd, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.METHODS = void 0;
5
+ exports.operationFacts = operationFacts;
6
+ exports.operationIndex = operationIndex;
7
+ exports.makeResolved = makeResolved;
8
+ exports.publishResolved = publishResolved;
9
+ exports.resolvedSpec = resolvedSpec;
10
+ // See docs/design/resolved-spec-capability.md
11
+ const contract_1 = require("./transform/contract");
12
+ const METHODS = [
13
+ 'get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'
14
+ ];
15
+ exports.METHODS = METHODS;
16
+ // The single definition of a resolved operation, shared by contractTransform
17
+ // and by consumers of the capability, so the two cannot disagree.
18
+ function operationFacts(def, point) {
19
+ const path = def?.paths?.[point.orig];
20
+ const method = path?.[String(point.method).toLowerCase()];
21
+ const graphql = def?.query?.[point.orig] || def?.mutation?.[point.orig];
22
+ if (!method && !graphql)
23
+ return undefined;
24
+ const facts = { protocol: graphql ? 'graphql' : 'http' };
25
+ if (graphql) {
26
+ facts.field = graphql;
27
+ facts.types = (0, contract_1.graphqlInputTypes)(graphql, def.types || {});
28
+ facts.typesScope = 'inputs';
29
+ return facts;
30
+ }
31
+ for (const key of ['operationId', 'requestBody', 'responses', 'consumes', 'produces']) {
32
+ if (undefined !== method[key])
33
+ facts[key] = method[key];
34
+ }
35
+ // A path item may declare parameters shared by every operation under it.
36
+ facts.parameters = [...(path.parameters || []), ...(method.parameters || [])];
37
+ facts.security = method.security ?? def.security;
38
+ facts.securitySource = method.security !== undefined ? 'operation' :
39
+ def.security !== undefined ? 'definition' : 'unspecified';
40
+ // swagger2 names this `securityDefinitions`.
41
+ facts.securitySchemes = def.components?.securitySchemes ?? def.securityDefinitions;
42
+ facts.consumes ??= def.consumes;
43
+ facts.produces ??= def.produces;
44
+ return facts;
45
+ }
46
+ // Every described operation, keyed 'METHOD path' as `point.contract.id` is.
47
+ function operationIndex(def) {
48
+ const out = {};
49
+ for (const path of Object.keys(def?.paths || {})) {
50
+ for (const method of METHODS) {
51
+ if (null == def.paths[path]?.[method])
52
+ continue;
53
+ const facts = operationFacts(def, { method, orig: path });
54
+ if (facts)
55
+ out[method.toUpperCase() + ' ' + path] = facts;
56
+ }
57
+ }
58
+ for (const kind of ['query', 'mutation']) {
59
+ for (const field of Object.keys(def?.[kind] || {})) {
60
+ const facts = operationFacts(def, { method: 'POST', orig: field });
61
+ if (facts)
62
+ out['POST ' + field] = facts;
63
+ }
64
+ }
65
+ return out;
66
+ }
67
+ function makeResolved(kind, def) {
68
+ return {
69
+ version: 1,
70
+ kind,
71
+ def,
72
+ operation: (method, path) => operationFacts(def, { method, orig: path }),
73
+ };
74
+ }
75
+ // Tolerates a missing context: apidef also runs outside a model build.
76
+ function publishResolved(ctx, kind, def) {
77
+ const resolved = makeResolved(kind, def);
78
+ if (null != ctx && 'object' === typeof ctx) {
79
+ ctx.state = ctx.state || {};
80
+ ctx.state.apidef = { ...(ctx.state.apidef || {}), resolved };
81
+ }
82
+ return resolved;
83
+ }
84
+ function resolvedSpec(carrier) {
85
+ if (null == carrier || 'object' !== typeof carrier)
86
+ return undefined;
87
+ return carrier.state?.apidef?.resolved ??
88
+ carrier.ctx?.state?.apidef?.resolved ??
89
+ carrier.apidef?.resolved ??
90
+ undefined;
91
+ }
92
+ //# sourceMappingURL=resolved.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolved.js","sourceRoot":"","sources":["../src/resolved.ts"],"names":[],"mappings":"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"}
package/dist/resolver.js CHANGED
@@ -9,8 +9,6 @@ const node_path_1 = __importDefault(require("node:path"));
9
9
  const utility_1 = require("./utility");
10
10
  async function resolveElements(ctx, kind, subkind, standard) {
11
11
  const { log, model, guide } = ctx;
12
- // TODO: model access should be via a utility that generates
13
- // useful errors when the target is missing
14
12
  const control = guide.control[kind][subkind];
15
13
  const target = kind + '.' + subkind;
16
14
  const elementNames = control.order
@@ -1 +1 @@
1
- {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
@@ -36,8 +36,8 @@ const argsTransform = async function (ctx) {
36
36
  }
37
37
  else {
38
38
  const pathdef = def.paths[mpoint.orig];
39
- argdefs.push(...(pathdef.parameters ?? []));
40
- const opdef = pathdef[mpoint.method.toLowerCase()];
39
+ argdefs.push(...(pathdef?.parameters ?? []));
40
+ const opdef = pathdef?.[mpoint.method.toLowerCase()];
41
41
  argdefs.push(...(opdef?.parameters ?? []));
42
42
  }
43
43
  resolveArgs(ctx, ment, mop, mpoint, argdefs);
@@ -54,14 +54,6 @@ function graphqlFieldDef(def, mpoint) {
54
54
  return 'mutation' === mpoint.graphql?.optype ?
55
55
  def.mutation?.[field] : def.query?.[field];
56
56
  }
57
- // Map a GraphQL named type onto the JSON-schema-ish scalar names the
58
- // existing arg/field typing understands.
59
- //
60
- // Only the built-in scalars have a known JSON shape. A custom scalar can be
61
- // anything — JSON/JSONObject accept objects and arrays, DateTime is a
62
- // string, Upload is a file handle — so anything unrecognised stays
63
- // unconstrained rather than being wrongly advertised (and validated) as a
64
- // string. ID and String are the two custom-free string cases.
65
57
  function gqlScalarType(typeName) {
66
58
  return 'Int' === typeName ? 'integer' :
67
59
  'Float' === typeName ? 'number' :
@@ -78,16 +70,8 @@ const ARG_KIND = {
78
70
  function resolveArgs(ctx, ment, mop, mpoint, argdefs) {
79
71
  const touchedKeys = new Set();
80
72
  (0, jostraca_1.each)(argdefs, (argdef) => {
81
- // Spec name as written (e.g. `dataType`) is what the rename map is keyed
82
- // by; the snakified form is the user-friendly runtime identifier.
83
73
  const specName = (0, utility_1.normalizeFieldName)(argdef.name);
84
74
  const orig = (0, utility_1.depluralize)((0, jostraca_1.snakify)(specName));
85
- // A parameter with no name is not a parameter. This is what a DANGLING
86
- // `$ref` looks like by the time it reaches here: the reference survives
87
- // unresolved, `name` and `in` are both absent, and the arg would become
88
- // a nameless `query` entry that every target then has to render. Ruby
89
- // cannot: `Struct.new(:"")` raises at load and takes the whole SDK with
90
- // it. Drop it and say which reference is missing.
91
75
  if ('' === orig) {
92
76
  const ref = argdef?.$ref;
93
77
  ctx?.warn?.({
@@ -132,13 +116,6 @@ function resolveArgs(ctx, ment, mop, mpoint, argdefs) {
132
116
  mpoint.args[key]?.sort(cmp);
133
117
  }
134
118
  }
135
- // OpenAPI lets specs advertise example values four ways:
136
- // parameter.example (single value, OAS 3.0+)
137
- // parameter.examples (named-example object, take first .value)
138
- // parameter.schema.example (single value on the schema)
139
- // parameter.schema.default (default value)
140
- // Pick the first one we find so test generators can produce valid live
141
- // requests even when the parameter is required and has no other source.
142
119
  function resolveArgExample(argdef) {
143
120
  if (undefined !== argdef?.example)
144
121
  return argdef.example;
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":";;;AAEA,uCAAwC;AAIxC,wCAAqG;AAGrG,oCAA8B;AAoB9B,MAAM,aAAa,GAAc,KAAK,WACpC,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC7B,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,CAAC,WAAG,CAAC,CAAA;IAExC,IAAI,GAAG,GAAG,OAAO,CAAA;IAGjB,IAAA,eAAI,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,IAAiB,EAAE,OAAe,EAAE,EAAE;QACtD,IAAA,eAAI,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,GAAY,EAAE,MAAc,EAAE,EAAE;YAC7C,IAAA,eAAI,EAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAkB,EAAE,EAAE;gBACtC,MAAM,OAAO,GAAmB,EAAE,CAAA;gBAElC,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC9B,oEAAoE;oBACpE,6DAA6D;oBAC7D,kEAAkE;oBAClE,8DAA8D;oBAC9D,6DAA6D;oBAC7D,MAAM,QAAQ,GAAQ,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBAClD,KAAK,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;wBACzC,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;wBACrC,IAAI,IAAI,IAAI,OAAO,IAAI,cAAc,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;4BACvD,SAAQ;wBACV,CAAC;wBACD,OAAO,CAAC,IAAI,CAAC;4BACX,IAAI,EAAE,GAAG,CAAC,IAAI;4BACd,EAAE,EAAE,MAAM;4BACV,8DAA8D;4BAC9D,0DAA0D;4BAC1D,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,KAAK,GAAG,CAAC,KAAK;4BAC7C,MAAM,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;yBACnC,CAAC,CAAA;oBACX,CAAC;gBACH,CAAC;qBACI,CAAC;oBACJ,MAAM,OAAO,GAAY,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;oBAC/C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;oBAE3C,MAAM,KAAK,GAAe,OAAe,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;oBACtE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,UAAU,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC5C,CAAC;gBAED,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;QAEJ,CAAC,CAAC,CAAA;QAEF,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;IACxB,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC,CAAA;QAuIC,aAAa;AApIf,yEAAyE;AACzE,SAAS,eAAe,CAAC,GAAQ,EAAE,MAAkB;IACnD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,EAAE,KAAK,IAAI,MAAM,CAAC,IAAI,CAAA;IAClD,OAAO,UAAU,KAAK,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC5C,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAA;AAC9C,CAAC;AAGD,qEAAqE;AACrE,yCAAyC;AACzC,EAAE;AACF,4EAA4E;AAC5E,sEAAsE;AACtE,mEAAmE;AACnE,0EAA0E;AAC1E,8DAA8D;AAC9D,SAAS,aAAa,CAAC,QAAgB;IACrC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC/B,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAClC,CAAC,QAAQ,KAAK,QAAQ,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBACvD,SAAS,CAAA;AACnB,CAAC;AAGD,MAAM,QAAQ,GAAqC;IACjD,OAAO,EAAE,OAAO;IAChB,QAAQ,EAAE,QAAQ;IAClB,MAAM,EAAE,OAAO;IACf,QAAQ,EAAE,QAAQ;CACnB,CAAA;AAGD,SAAS,WAAW,CAClB,GAAQ,EACR,IAAiB,EAAE,GAAY,EAAE,MAAkB,EAAE,OAAuB;IAE5E,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAA;IAErC,IAAA,eAAI,EAAC,OAAO,EAAE,CAAC,MAAoB,EAAE,EAAE;QACrC,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,QAAQ,GAAG,IAAA,4BAAkB,EAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAChD,MAAM,IAAI,GAAG,IAAA,qBAAW,EAAC,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC,CAAA;QAE3C,uEAAuE;QACvE,wEAAwE;QACxE,wEAAwE;QACxE,sEAAsE;QACtE,wEAAwE;QACxE,kDAAkD;QAClD,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,MAAM,GAAG,GAAI,MAAc,EAAE,IAAI,CAAA;YACjC,GAAG,EAAE,IAAI,EAAE,CAAC;gBACV,IAAI,EAAE,oCAAoC,IAAI,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,EAAE;oBAClE,SAAS,MAAM,CAAC,IAAI,aAAa;oBACjC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,wBAAwB,CAAC;oBAChE,mEAAmE;gBACrE,MAAM,EAAE,IAAI,CAAC,IAAI;gBACjB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,EAAE,EAAE,GAAG,CAAC,IAAI;aACb,CAAC,CAAA;YACF,OAAM;QACR,CAAC;QAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,OAAO,CAAA;QAC3C,wEAAwE;QACxE,uEAAuE;QACvE,6CAA6C;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QACrC,MAAM,IAAI,GAAG,SAAS,EAAE,CAAC,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAA;QAC/D,MAAM,IAAI,GAAa;YACrB,IAAI;YACJ,IAAI;YACJ,IAAI,EAAE,IAAA,wBAAc,EAAC,IAAI,EAAE,IAAA,mBAAS,EAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC1D,IAAI;YACJ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;SACxB,CAAA;QAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;QACxB,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpB,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAA;QAC1F,IAAI,QAAQ,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAA;QAClE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,GAAG,GAAG,CAAC,CAAW,EAAE,CAAW,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACxF,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,GAA+B,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAA;IACzD,CAAC;AACH,CAAC;AAGD,yDAAyD;AACzD,wDAAwD;AACxD,0EAA0E;AAC1E,4DAA4D;AAC5D,+CAA+C;AAC/C,uEAAuE;AACvE,wEAAwE;AACxE,SAAS,iBAAiB,CAAC,MAAW;IACpC,IAAI,SAAS,KAAK,MAAM,EAAE,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAA;IAExD,MAAM,QAAQ,GAAG,MAAM,EAAE,QAAQ,CAAA;IACjC,IAAI,QAAQ,IAAI,QAAQ,KAAK,OAAO,QAAQ,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,SAAS,KAAM,CAAS,CAAC,KAAK,EAAE,CAAC;gBACjE,OAAQ,CAAS,CAAC,KAAK,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,EAAE,MAAM,CAAA;IAC7B,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,OAAO,CAAA;QACvD,IAAI,SAAS,KAAK,MAAM,CAAC,OAAO;YAAE,OAAO,MAAM,CAAC,OAAO,CAAA;IACzD,CAAC;IAED,OAAO,SAAS,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Transform } from '../transform';
2
+ declare const casecollideTransform: Transform;
3
+ export { casecollideTransform };
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.casecollideTransform = void 0;
4
+ const jostraca_1 = require("jostraca");
5
+ const types_1 = require("../types");
6
+ // See docs/design/derived-names.md
7
+ function deepempty(v) {
8
+ if (null == v)
9
+ return true;
10
+ if ('object' !== typeof v)
11
+ return false;
12
+ const keys = Object.keys(v);
13
+ if (0 === keys.length)
14
+ return true;
15
+ return keys.every((k) => deepempty(v[k]));
16
+ }
17
+ const casecollideTransform = async function (ctx) {
18
+ const { apimodel, guide } = ctx;
19
+ const kit = apimodel.main[types_1.KIT];
20
+ const bylower = {};
21
+ (0, jostraca_1.each)(kit.entity, (_entity, entname) => {
22
+ const lower = String((0, jostraca_1.camelify)(entname)).toLowerCase();
23
+ bylower[lower] = bylower[lower] || [];
24
+ bylower[lower].push(entname);
25
+ });
26
+ const dropped = [];
27
+ for (const lower of Object.keys(bylower)) {
28
+ const group = bylower[lower].sort();
29
+ if (group.length < 2)
30
+ continue;
31
+ // See docs/design/derived-names.md
32
+ const opcount = (name) => {
33
+ const ops = kit.entity[name]?.op || {};
34
+ return Object.keys(ops).filter((opname) => !deepempty(ops[opname])).length;
35
+ };
36
+ const withops = group.filter(n => 0 < opcount(n));
37
+ const noops = group.filter(n => 0 === opcount(n));
38
+ if (0 === withops.length || 0 === noops.length) {
39
+ ctx.log.warn({
40
+ point: 'entity-case-collision',
41
+ entity: group,
42
+ note: 'entity names differ only by case and all carry operations: ' +
43
+ group.join(', ') + ' — the generated files collide on a ' +
44
+ 'case-insensitive filesystem. Not resolved here: dropping one ' +
45
+ 'would remove operations from the SDK.'
46
+ });
47
+ continue;
48
+ }
49
+ for (const name of noops) {
50
+ delete kit.entity[name];
51
+ if (guide?.entity)
52
+ delete guide.entity[name];
53
+ dropped.push(name);
54
+ ctx.log.info({
55
+ point: 'entity-case-collision-drop',
56
+ entity: name,
57
+ kept: withops,
58
+ note: 'dropped entity ' + name + ': it carries no operations and its ' +
59
+ 'name differs only by case from ' + withops.join(', ') +
60
+ ', so both would generate to one file.'
61
+ });
62
+ }
63
+ }
64
+ return { ok: true, msg: 0 === dropped.length ? '' : 'dropped: ' + dropped.join(',') };
65
+ };
66
+ exports.casecollideTransform = casecollideTransform;
67
+ //# sourceMappingURL=casecollide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"casecollide.js","sourceRoot":"","sources":["../../src/transform/casecollide.ts"],"names":[],"mappings":"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"}
@@ -3,24 +3,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.contractTransform = void 0;
4
4
  exports.contractJSON = contractJSON;
5
5
  exports.graphqlInputTypes = graphqlInputTypes;
6
+ const resolved_1 = require("../resolved");
6
7
  function contractJSON(value) {
7
- const ancestors = new Map();
8
- function copy(v, path) {
9
- if (v === null || typeof v !== 'object')
10
- return v;
11
- if (ancestors.has(v))
12
- return { $ref: ancestors.get(v) };
13
- ancestors.set(v, path);
14
- const out = Array.isArray(v) ? v.map((item, i) => copy(item, path + '/' + i)) : {};
15
- if (!Array.isArray(v))
16
- for (const k of Object.keys(v).sort()) {
17
- if (!k.endsWith('$') && !k.startsWith('x-') && undefined !== v[k])
18
- out[k] = copy(v[k], path + '/' + k.replace(/~/g, '~0').replace(/\//g, '~1'));
19
- }
20
- ancestors.delete(v);
21
- return out;
8
+ function walk(root, base) {
9
+ // One memo per fact, so refs stay local to it.
10
+ const seen = new Map();
11
+ function copy(v, path) {
12
+ if (v === null || typeof v !== 'object')
13
+ return v;
14
+ if (seen.has(v))
15
+ return { $ref: seen.get(v) };
16
+ seen.set(v, path);
17
+ const out = Array.isArray(v) ? v.map((item, i) => copy(item, path + '/' + i)) : {};
18
+ if (!Array.isArray(v))
19
+ for (const k of Object.keys(v).sort()) {
20
+ if (!k.endsWith('$') && !k.startsWith('x-') && undefined !== v[k])
21
+ out[k] = copy(v[k], path + '/' + k.replace(/~/g, '~0').replace(/\//g, '~1'));
22
+ }
23
+ return out;
24
+ }
25
+ return copy(root, base);
26
+ }
27
+ if (null === value || 'object' !== typeof value || Array.isArray(value)) {
28
+ return JSON.stringify(walk(value, '#'));
29
+ }
30
+ const out = {};
31
+ for (const k of Object.keys(value).sort()) {
32
+ if (k.endsWith('$') || k.startsWith('x-') || undefined === value[k])
33
+ continue;
34
+ out[k] = walk(value[k], '#/' + k.replace(/~/g, '~0').replace(/\//g, '~1'));
22
35
  }
23
- return JSON.stringify(copy(value, '#'));
36
+ return JSON.stringify(out);
24
37
  }
25
38
  // An operation needs its argument types, including recursive input objects.
26
39
  // Output types are represented by the field and generated invocation selection;
@@ -51,26 +64,12 @@ const contractTransform = async (ctx) => {
51
64
  const graphql = def.query?.[point.orig] || def.mutation?.[point.orig];
52
65
  if (!method && !graphql)
53
66
  continue;
54
- const facts = { protocol: graphql ? 'graphql' : 'http' };
55
- if (graphql) {
56
- facts.field = graphql;
57
- facts.types = graphqlInputTypes(graphql, def.types || {});
58
- facts.typesScope = 'inputs';
67
+ const facts = (0, resolved_1.operationFacts)(def, point);
68
+ if (null == facts)
69
+ continue;
70
+ // A property of the point, not of the definition.
71
+ if (graphql)
59
72
  facts.invocation = point.graphql;
60
- }
61
- else {
62
- for (const key of ['operationId', 'requestBody', 'responses', 'consumes', 'produces']) {
63
- if (undefined !== method[key])
64
- facts[key] = method[key];
65
- }
66
- facts.parameters = [...(path.parameters || []), ...(method.parameters || [])];
67
- facts.security = method.security ?? def.security;
68
- facts.securitySource = method.security !== undefined ? 'operation' :
69
- def.security !== undefined ? 'definition' : 'unspecified';
70
- facts.securitySchemes = def.components?.securitySchemes ?? def.securityDefinitions;
71
- facts.consumes ??= def.consumes;
72
- facts.produces ??= def.produces;
73
- }
74
73
  const guideOp = ctx.guide?.entity?.[entity.name]?.[graphql ? 'field' : 'path']?.[point.orig]?.op?.[op.name];
75
74
  const hint = guideOp?.live;
76
75
  for (const key of ['requestBody', 'responses', 'parameters', 'security']) {
@@ -79,11 +78,17 @@ const contractTransform = async (ctx) => {
79
78
  (facts.factSources ??= {})[key] = 'guide';
80
79
  }
81
80
  }
82
- if (hint !== undefined)
81
+ if (hint !== undefined) {
83
82
  facts.live = hint;
83
+ point.live = hint;
84
+ }
85
+ // Identity only; facts come from the capability. See
86
+ // docs/design/resolved-spec-capability.md
84
87
  point.contract = { version: 1, id: point.method + ' ' + point.orig,
85
- source: graphql ? 'graphql' : def.swagger ? 'swagger2' : 'openapi3',
86
- json: contractJSON(facts) };
88
+ source: graphql ? 'graphql' : def.swagger ? 'swagger2' : 'openapi3' };
89
+ if (ctx.opts?.contractJson) {
90
+ point.contract.json = contractJSON(facts);
91
+ }
87
92
  }
88
93
  }
89
94
  }
@@ -1 +1 @@
1
- {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/transform/contract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contract.js","sourceRoot":"","sources":["../../src/transform/contract.ts"],"names":[],"mappings":";;;;;AAGA,0CAA4C;AAG5C,sBAA6B,KAAU;IACrC,SAAS,IAAI,CAAC,IAAS,EAAE,IAAY;QACnC,+CAA+C;QAC/C,MAAM,IAAI,GAAG,IAAI,GAAG,EAAe,CAAA;QACnC,SAAS,IAAI,CAAC,CAAM,EAAE,IAAY;YAChC,IAAI,CAAC,KAAK,IAAI,IAAI,OAAO,CAAC,KAAK,QAAQ;gBAAE,OAAO,CAAC,CAAA;YACjD,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC7C,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;YACjB,MAAM,GAAG,GAAQ,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACvF,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBAAE,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;oBAC7D,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC;wBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;gBACjJ,CAAC;YACD,OAAO,GAAG,CAAA;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,IAAI,IAAI,KAAK,KAAK,IAAI,QAAQ,KAAK,OAAO,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAA;IACzC,CAAC;IAED,MAAM,GAAG,GAAQ,EAAE,CAAA;IACnB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC;YAAE,SAAQ;QAC7E,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5E,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAED,4EAA4E;AAC5E,gFAAgF;AAChF,oFAAoF;AACpF,2BAAkC,KAAU,EAAE,KAAU;IACtD,MAAM,GAAG,GAAQ,EAAE,CAAA;IACnB,SAAS,KAAK,CAAC,IAAY;QACzB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;YAAE,OAAM;QAC3E,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAA;QACxB,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;QAChB,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAU;gBAAE,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,IAAI,EAAE;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IACnD,OAAO,GAAG,CAAA;AACZ,CAAC;AAEM,MAAM,iBAAiB,GAAc,KAAK,EAAE,GAAQ,EAAE,EAAE;IAC7D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAA;IACzB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAU,EAAE,CAAC;QAChF,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAU,EAAE,CAAC;YACzD,KAAK,MAAM,KAAK,IAAI,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBACrC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACpC,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;gBACjD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBACrE,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO;oBAAE,SAAQ;gBACjC,MAAM,KAAK,GAAQ,IAAA,yBAAc,EAAC,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC7C,IAAI,IAAI,IAAI,KAAK;oBAAE,SAAQ;gBAE3B,kDAAkD;gBAClD,IAAI,OAAO;oBAAE,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,OAAO,CAAA;gBAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAA;gBAC3G,MAAM,IAAI,GAAG,OAAO,EAAE,IAAI,CAAA;gBAC1B,KAAK,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,CAAC,EAAE,CAAC;oBACzE,IAAI,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CACjC;wBAAA,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;oBAC5C,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACvB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;oBACjB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;gBACnB,CAAC;gBACD,qDAAqD;gBACrD,0CAA0C;gBAC1C,KAAK,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI;oBAChE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,EAAE,CAAA;gBAEvE,IAAI,GAAG,CAAC,IAAI,EAAE,YAAY,EAAE,CAAC;oBAC3B,KAAK,CAAC,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,KAAK,CAAC,CAAA;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,CAAA;AACtC,CAAC,CAAA;AAtCY,QAAA,iBAAiB,GAAjB,iBAAiB,CAsC7B"}
@@ -11,26 +11,10 @@ const entityTransform = async function (ctx) {
11
11
  const { apimodel, guide } = ctx;
12
12
  const kit = apimodel.main[types_1.KIT];
13
13
  let msg = '';
14
- // Pre-pass: merge collection paths into the entity that owns the
15
- // per-instance paths. Heuristic01 sometimes assigns "/people" to a
16
- // separate "*_search" entity (because the response wraps Person in
17
- // a search/pagination component) while "/people/{id}" and
18
- // "/people/{id}/anime" land on "person". Result: the person entity has
19
- // no primary list endpoint, so direct-load tests can't bootstrap an
20
- // ID. Move "/people" onto person here; this also clears the way for
21
- // sensible flow generation (one entity, one collection, multiple
22
- // sub-resources).
23
- // Path-shaped collection merging is meaningless for root-field guides.
24
14
  if (true !== ctx.def?.graphql) {
25
15
  mergeCollectionPaths(guide, ctx.log);
26
16
  }
27
17
  (0, jostraca_1.each)(guide.entity, (guideEntity, entname) => {
28
- // `active: false` in guide.aontu drops the entity. The guide model has
29
- // always declared `active?: boolean` at entity, path and op level and the
30
- // docs call it the intended escape hatch, but nothing read it — so an
31
- // entity a heuristic invented (a response envelope classified as a
32
- // resource, say) could not be removed by the one file a user is meant to
33
- // edit. Absent means active, so existing guides are unaffected.
34
18
  if (!(0, utility_1.guideActive)(guideEntity)) {
35
19
  ctx.log.debug({ point: 'guide-entity', note: entname, active: false });
36
20
  return;
@@ -40,9 +24,6 @@ const entityTransform = async function (ctx) {
40
24
  const paths$ = graphql ?
41
25
  resolveFieldList(guideEntity, ctx.def) :
42
26
  resolvePathList(guideEntity, ctx.def);
43
- // Ancestry is inferred from literal/{param} path pairs, which root
44
- // fields do not have; GraphQL relations come from the schema instead
45
- // (see transform/graphql.ts).
46
27
  const relations = graphql ?
47
28
  { ancestors: [] } :
48
29
  buildRelations(guideEntity, paths$);
@@ -63,10 +44,6 @@ exports.entityTransform = entityTransform;
63
44
  // per-instance paths — leaves correctly-classified APIs alone.
64
45
  function mergeCollectionPaths(guide, log) {
65
46
  const entities = guide.entity;
66
- // First pass: build collectionRoot -> owner-entity-name map.
67
- // owner is the entity whose name contains "/X/{...}" paths; we prefer
68
- // the owner whose direct-load path is "/X/{id}" (no further segments)
69
- // so that nested-resource entities don't claim the root.
70
47
  const rootOwners = {};
71
48
  for (const [ename, entity] of Object.entries(entities)) {
72
49
  for (const pathStr of Object.keys(entity.path ?? {})) {
@@ -76,8 +53,6 @@ function mergeCollectionPaths(guide, log) {
76
53
  continue;
77
54
  const root = m[1];
78
55
  const trailing = m[2] ?? '';
79
- // Depth = number of segments after the {id} placeholder. Lower
80
- // depth wins (e.g. "/people/{id}" beats "/people/{id}/anime").
81
56
  const depth = trailing === '' ? 0 : trailing.split('/').filter(Boolean).length;
82
57
  const cur = rootOwners[root];
83
58
  if (!cur || depth < cur.depth) {
@@ -114,11 +89,6 @@ function mergeCollectionPaths(guide, log) {
114
89
  targetEntity.path[pathStr] = srcPath;
115
90
  }
116
91
  else {
117
- // Target already owns this path under a different heuristic-discovered
118
- // entity (e.g. `/gists` GET on `base_gist`, `/gists` POST on `gist`).
119
- // Merge op/action/rename sets so no method is silently lost — without
120
- // this, the second source's contribution drops on the floor and the
121
- // base-guide loses paths that were in the original spec.
122
92
  if (srcPath?.op) {
123
93
  tgtPath.op = tgtPath.op ?? {};
124
94
  for (const opname of Object.keys(srcPath.op)) {
@@ -162,14 +132,6 @@ function resolvePathList(guideEntity, def) {
162
132
  if (!(0, utility_1.guideActive)(guidePath)) {
163
133
  return;
164
134
  }
165
- // THE path construction site (ADR-003). The split, the rename
166
- // application and the segment typing all happen here and nowhere else:
167
- // a second place that decides what a path segment is would be free to
168
- // decide differently.
169
- //
170
- // A segment is a literal or a variable. The braced form this replaces
171
- // could not tell a literal containing braces from a parameter, so the
172
- // brace test below is the LAST point at which that ambiguity exists.
173
135
  const rename = guidePath.rename ?? {};
174
136
  const segments = orig
175
137
  .split('/')
@@ -179,12 +141,6 @@ function resolvePathList(guideEntity, def) {
179
141
  return { lit: p };
180
142
  }
181
143
  const raw = p.slice(1, -1);
182
- // A WHOLE element is the placeholder, or it is a literal. `{a}.{b}`
183
- // is two parameters glued into one element with a separator that
184
- // belongs to neither; it is not one parameter called `a}.{b`, and
185
- // there is no honest `var` for it. `{}` names nothing. Both stay
186
- // literal — which is exactly what the braced-string form did with
187
- // them, since the rename lookup was a whole-element match too.
188
144
  if ('' === raw || raw.includes('{') || raw.includes('}')) {
189
145
  return { lit: p };
190
146
  }
@@ -245,18 +201,6 @@ function resolveFieldList(guideEntity, def) {
245
201
  return paths$;
246
202
  }
247
203
  function buildRelations(guideEntity, paths$) {
248
- // An ancestor is a literal collection segment (e.g. "rems") followed by
249
- // a path-param placeholder that names an instance ID. We only collect
250
- // the literal parts — placeholder parts like "{año}" must be excluded
251
- // even when they're themselves followed by another placeholder, otherwise
252
- // downstream code treats `{año}` as an ancestor name and emits broken
253
- // idmap entries / match keys.
254
- //
255
- // Each captured segment is then normalised to its entity name —
256
- // depluralize+snakify — so that "files"/"audit-log" become "file"/"audit_log",
257
- // i.e. the same keys downstream code uses to look up entities. Without this,
258
- // `apimodel.main.kit.entity[ancestorName]` misses the parent entity for
259
- // pluralised path segments.
260
204
  let ancestors = paths$
261
205
  .map(pli => pli.segments
262
206
  .map((s, i) => {
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":"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"}