@voxgig/apidef 5.8.1 → 5.8.2

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/parse.js CHANGED
@@ -63,6 +63,18 @@ async function parseOpenAPI(source, _meta) {
63
63
  if (null == parsed.components) {
64
64
  parsed.components = {};
65
65
  }
66
+ // Normalize path keys: jsonic's YAML parser leaves the surrounding double
67
+ // quotes IN the key for explicit-key form (`? "..."`). gitlab uses this for
68
+ // long paths and as a result every downstream split('/') sees a literal
69
+ // quote character at the head/tail of the path, breaking URL substitution.
70
+ if (parsed.paths && 'object' === typeof parsed.paths) {
71
+ const cleaned = {};
72
+ for (const [k, v] of Object.entries(parsed.paths)) {
73
+ const stripped = k.replace(/^"+|"+$/g, '');
74
+ cleaned[stripped] = v;
75
+ }
76
+ parsed.paths = cleaned;
77
+ }
66
78
  // Single-pass: add x-ref properties and resolve $ref pointers together.
67
79
  addXRefsAndResolve(parsed, parsed);
68
80
  const def = (0, util_1.decircular)(parsed);
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":"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"}
@@ -33,9 +33,16 @@ const ARG_KIND = {
33
33
  function resolveArgs(ment, mop, mtarget, argdefs) {
34
34
  const touchedKeys = new Set();
35
35
  (0, jostraca_1.each)(argdefs, (argdef) => {
36
- const orig = (0, utility_1.depluralize)((0, jostraca_1.snakify)((0, utility_1.normalizeFieldName)(argdef.name)));
36
+ // Spec name as written (e.g. `dataType`) is what the rename map is keyed
37
+ // by; the snakified form is the user-friendly runtime identifier.
38
+ const specName = (0, utility_1.normalizeFieldName)(argdef.name);
39
+ const orig = (0, utility_1.depluralize)((0, jostraca_1.snakify)(specName));
37
40
  const kind = ARG_KIND[argdef.in] ?? 'query';
38
- const name = mtarget.rename[kind]?.[orig] ?? orig;
41
+ // Rename map can be keyed by either the spec original (camelCase) or by
42
+ // the snakified form depending on which path went through heuristic01.
43
+ // Try both before falling through to `orig`.
44
+ const renameMap = mtarget.rename[kind];
45
+ const name = renameMap?.[specName] ?? renameMap?.[orig] ?? orig;
39
46
  const marg = {
40
47
  name,
41
48
  orig,
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/transform/args.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ exports.resolvePathList = resolvePathList;
5
5
  exports.buildRelations = buildRelations;
6
6
  const jostraca_1 = require("jostraca");
7
7
  const types_1 = require("../types");
8
+ const utility_1 = require("../utility");
8
9
  const entityTransform = async function (ctx) {
9
10
  const { apimodel, guide } = ctx;
10
11
  const kit = apimodel.main[types_1.KIT];
@@ -36,7 +37,26 @@ function resolvePathList(guideEntity, def) {
36
37
  const rename = guidePath.rename ?? {};
37
38
  (0, jostraca_1.each)(rename.param, (param) => {
38
39
  const pI = parts.indexOf('{' + param.key$ + '}');
39
- parts[pI] = '{' + param.val$ + '}';
40
+ if (pI >= 0)
41
+ parts[pI] = '{' + param.val$ + '}';
42
+ });
43
+ // Implicit snake_case normalization for any path placeholder that wasn't
44
+ // explicitly renamed. apidef's args transform snake-cases param names
45
+ // (e.g. spec `platformKey` → param.name `platform_key`); without
46
+ // normalizing the placeholder to match, runtime URL substitution by
47
+ // param.name fails to fill `{platformKey}`.
48
+ rename.param = rename.param ?? {};
49
+ parts.forEach((part, i) => {
50
+ const m = part.match(/^\{(.+)\}$/);
51
+ if (!m)
52
+ return;
53
+ const placeholder = m[1];
54
+ const snake = (0, utility_1.depluralize)((0, jostraca_1.snakify)((0, utility_1.normalizeFieldName)(placeholder)));
55
+ if (snake !== placeholder && rename.param[placeholder] === undefined) {
56
+ ;
57
+ rename.param[placeholder] = snake;
58
+ parts[i] = '{' + snake + '}';
59
+ }
40
60
  });
41
61
  const pathdesc = {
42
62
  orig,
@@ -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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"}
@@ -3,6 +3,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.flowstepTransform = void 0;
4
4
  const jostraca_1 = require("jostraca");
5
5
  const struct_1 = require("@voxgig/struct");
6
+ // Detect a path-parameter that is in fact the entity's own id, after URL
7
+ // renaming. Three ways an identity can show up:
8
+ // 1. The param literally has name 'id' (the common case for e.g. /things/{id}).
9
+ // 2. The param's lower-camelCase name appears in `point.rename.param` mapping
10
+ // to 'id' — e.g. `{connectionId: 'id'}` for `/companies/{company_id}/connections/{id}`.
11
+ // In this case the param's own name is `connection_id` (apidef snake-cased
12
+ // it), which doesn't equal 'id' but the placeholder in `parts` is `{id}`.
13
+ // 3. Positional convention: for singleton ops (load/update/remove), the
14
+ // LAST `{X}` placeholder in the path is the entity's own id. Catches
15
+ // cases where the entity name and path placeholder differ in spelling
16
+ // (e.g. entity `enviroment` vs path `/environments/{environment_id}`)
17
+ // and apidef therefore didn't synthesize a rename-to-id.
18
+ //
19
+ // Without this helper, the flow generator double-counts the entity's id —
20
+ // emitting it as both `srcdatavar.id` AND a separate body field — which the
21
+ // in-memory test mock then requires to match a non-existent field on the
22
+ // stored entity.
23
+ function isEntityIdParam(point, param, opname) {
24
+ if ('id' === param?.name)
25
+ return true;
26
+ const renameMap = point?.rename?.param;
27
+ if (renameMap && param?.name) {
28
+ const camel = (0, jostraca_1.lcf)((0, jostraca_1.camelify)(param.name));
29
+ if ('id' === renameMap[camel])
30
+ return true;
31
+ }
32
+ if ('update' === opname || 'load' === opname || 'remove' === opname) {
33
+ const parts = point?.parts || [];
34
+ let last = null;
35
+ for (const p of parts) {
36
+ const m = String(p).match(/^\{(.+)\}$/);
37
+ if (m)
38
+ last = m[1];
39
+ }
40
+ if (last && last === param?.name)
41
+ return true;
42
+ }
43
+ return false;
44
+ }
6
45
  const types_1 = require("../types");
7
46
  const flowstepTransform = async function (ctx) {
8
47
  const { apimodel, guide } = ctx;
@@ -66,26 +105,97 @@ function newFlowStep(opname, args) {
66
105
  valid: args.valid ?? [],
67
106
  };
68
107
  }
108
+ // Reverse-lookup: given a point with rename.param like {spaceId: 'id'} or
109
+ // {space_id: 'id'}, return the snake_case ORIGINAL name (e.g. 'space_id') of
110
+ // any param whose URL placeholder is now `{id}`. Returns null when no
111
+ // rename-to-id is recorded — the literal `id` then represents the entity's
112
+ // own id and createStep should skip it.
113
+ function originalSnakeNameOfRenamedId(point) {
114
+ const renameMap = point?.rename?.param || {};
115
+ for (const [src, dst] of Object.entries(renameMap)) {
116
+ if ('id' === dst) {
117
+ const srcStr = String(src);
118
+ // Already snake_case? Use as-is. Otherwise convert to snake form.
119
+ return srcStr.includes('_') ? srcStr : (srcStr.replace(/[A-Z]/g, m => '_' + m.toLowerCase()).replace(/^_/, ''));
120
+ }
121
+ }
122
+ return null;
123
+ }
69
124
  const createStep = (opmap, flow, ent, args) => {
70
125
  if (null != opmap.create) {
71
126
  // Use last point as most generic
72
127
  const point = (0, struct_1.getelem)(opmap.create.points, -1);
73
128
  const step = newFlowStep('create', args);
74
129
  (0, jostraca_1.each)(point.args.params, (param) => {
75
- // id should not be here in the first place
76
- if ('id' !== param.name) {
77
- step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
130
+ if ('id' === param.name) {
131
+ // For CREATE, `id` in the path is NOT the entity's own id (entity is
132
+ // being created here — its id doesn't exist yet). It's some parent's
133
+ // id renamed by apidef's path normalization (e.g. `space_id` → `id`
134
+ // in `/spaces/{id}/space_memberships` for SpaceMembership). Recover
135
+ // the original snake_case name so the test seeds the parent's id
136
+ // into both the created entity's data AND the URL.
137
+ const origName = originalSnakeNameOfRenamedId(point);
138
+ if (origName) {
139
+ step.match[origName] = args.input?.[origName] ?? origName.replace(/_id/, '') + '01';
140
+ }
141
+ // If there's no rename-from, this is genuinely the entity's id — skip
142
+ // (the create call generates it).
143
+ return;
78
144
  }
145
+ step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
79
146
  });
147
+ // Also seed any path-param fields required by other ops (typically LIST
148
+ // through a sibling parent path), so the in-memory test mock can find
149
+ // the just-created entity when a later step queries by those fields.
150
+ // Without this, a metric created at /pages/{page_id}/metrics/data lacks
151
+ // the page_access_user_id field required by
152
+ // /pages/{page_id}/page_access_users/{page_access_user_id}/metrics LIST.
153
+ seedRelatedOpParams(opmap, point, step);
80
154
  flow.step.push(step);
81
155
  }
82
156
  };
157
+ function seedRelatedOpParams(opmap, createPoint, step) {
158
+ const otherOps = ['list', 'load', 'update', 'remove'];
159
+ for (const opname of otherOps) {
160
+ const op = opmap[opname];
161
+ if (!op?.points)
162
+ continue;
163
+ for (const point of op.points) {
164
+ const params = point?.args?.params || [];
165
+ for (const param of params) {
166
+ if (!param?.name)
167
+ continue;
168
+ if (isEntityIdParam(point, param, opname))
169
+ continue;
170
+ if (step.match[param.name] !== undefined)
171
+ continue;
172
+ // For renamed-from-id params on CREATE's chosen point we'd already
173
+ // have set the snake-case origin; don't double-write.
174
+ if ('id' === param.name)
175
+ continue;
176
+ step.match[param.name] =
177
+ param.name.replace(/_id/, '') + '01';
178
+ }
179
+ }
180
+ }
181
+ }
83
182
  const listStep = (opmap, flow, ent, args) => {
84
183
  if (null != opmap.list) {
85
184
  // Use last point as most generic
86
185
  const point = (0, struct_1.getelem)(opmap.list.points, -1);
87
186
  const step = newFlowStep('list', args);
88
187
  (0, jostraca_1.each)(point.args.params, (param) => {
188
+ if ('id' === param.name) {
189
+ // For LIST, `id` in the path is a parent's id renamed by apidef
190
+ // (LIST doesn't address a single entity by id). Recover the original
191
+ // snake_case name so test code references a real idmap entry rather
192
+ // than landing on the bogus `id01` default.
193
+ const origName = originalSnakeNameOfRenamedId(point);
194
+ if (origName) {
195
+ step.match[origName] = args.input?.[origName] ?? origName.replace(/_id/, '') + '01';
196
+ }
197
+ return;
198
+ }
89
199
  step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
90
200
  });
91
201
  flow.step.push(step);
@@ -97,12 +207,12 @@ const updateStep = (opmap, flow, ent, args) => {
97
207
  const point = (0, struct_1.getelem)(opmap.update.points, -1);
98
208
  const step = newFlowStep('update', args);
99
209
  (0, jostraca_1.each)(point.args.params, (param) => {
100
- if ('id' === param.name) {
101
- step.data.id = args.input?.id ?? ent.name + '01';
102
- }
103
- else {
104
- step.data[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
210
+ if (isEntityIdParam(point, param, 'update')) {
211
+ // Entity's own id — supplied at test time via the loaded/created
212
+ // entity's id field, not as a separate body parameter. Skip.
213
+ return;
105
214
  }
215
+ step.data[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
106
216
  });
107
217
  flow.step.push(step);
108
218
  }
@@ -113,7 +223,7 @@ const loadStep = (opmap, flow, ent, args) => {
113
223
  const point = (0, struct_1.getelem)(opmap.load.points, -1);
114
224
  const step = newFlowStep('load', args);
115
225
  (0, jostraca_1.each)(point.args.params, (param) => {
116
- if ('id' === param.name) {
226
+ if (isEntityIdParam(point, param, 'load')) {
117
227
  step.match.id = args.input?.id ?? ent.name + '01';
118
228
  }
119
229
  else {
@@ -129,7 +239,7 @@ const removeStep = (opmap, flow, ent, args) => {
129
239
  const point = (0, struct_1.getelem)(opmap.remove.points, -1);
130
240
  const step = newFlowStep('remove', args);
131
241
  (0, jostraca_1.each)(point.args.params, (param) => {
132
- if ('id' === param.name) {
242
+ if (isEntityIdParam(point, param, 'remove')) {
133
243
  step.match.id = args.input?.id ?? ent.name + '01';
134
244
  }
135
245
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"flowstep.js","sourceRoot":"","sources":["../../src/transform/flowstep.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"flowstep.js","sourceRoot":"","sources":["../../src/transform/flowstep.ts"],"names":[],"mappings":"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"}
@@ -87,7 +87,14 @@ function resolveOp(opname, gent) {
87
87
  mop = {
88
88
  name: opname,
89
89
  points: opdesc.paths.map((p) => {
90
- const parts = applyRename(p);
90
+ // Renames already applied by entity.ts resolvePathList — re-applying
91
+ // here corrupted paths for any spec where rename map maps an old
92
+ // name to a value that another rename maps to a different new name
93
+ // (e.g. gitlab `/groups/{id}/badges/{badge_id}` with rename
94
+ // `{badge_id: 'id', id: 'project_id'}` ended up as
95
+ // `/groups/{project_id}/badges/{project_id}` — the second pass
96
+ // rewrote the freshly-renamed `{id}` into `{project_id}` again).
97
+ const parts = p.parts;
91
98
  const mtarget = {
92
99
  orig: p.orig,
93
100
  parts,
@@ -107,8 +114,4 @@ function resolveOp(opname, gent) {
107
114
  }
108
115
  return mop;
109
116
  }
110
- function applyRename(pathdesc) {
111
- const prn = pathdesc.rename?.param ?? {};
112
- return pathdesc.parts.map(p => '{' === p[0] ? (prn[p.substring(1, p.length - 1)] ?? p) : p);
113
- }
114
117
  //# sourceMappingURL=operation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/apidef",
3
- "version": "5.8.1",
3
+ "version": "5.8.2",
4
4
  "main": "dist/apidef.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/apidef.d.ts",
package/src/parse.ts CHANGED
@@ -84,6 +84,19 @@ async function parseOpenAPI(source: any, _meta?: any) {
84
84
  parsed.components = {}
85
85
  }
86
86
 
87
+ // Normalize path keys: jsonic's YAML parser leaves the surrounding double
88
+ // quotes IN the key for explicit-key form (`? "..."`). gitlab uses this for
89
+ // long paths and as a result every downstream split('/') sees a literal
90
+ // quote character at the head/tail of the path, breaking URL substitution.
91
+ if (parsed.paths && 'object' === typeof parsed.paths) {
92
+ const cleaned: Record<string, any> = {}
93
+ for (const [k, v] of Object.entries(parsed.paths)) {
94
+ const stripped = k.replace(/^"+|"+$/g, '')
95
+ cleaned[stripped] = v
96
+ }
97
+ parsed.paths = cleaned
98
+ }
99
+
87
100
  // Single-pass: add x-ref properties and resolve $ref pointers together.
88
101
  addXRefsAndResolve(parsed, parsed)
89
102
 
@@ -71,9 +71,16 @@ function resolveArgs(ment: ModelEntity, mop: ModelOp, mtarget: ModelTarget, argd
71
71
  const touchedKeys = new Set<string>()
72
72
 
73
73
  each(argdefs, (argdef: ParameterDef) => {
74
- const orig = depluralize(snakify(normalizeFieldName(argdef.name)))
74
+ // Spec name as written (e.g. `dataType`) is what the rename map is keyed
75
+ // by; the snakified form is the user-friendly runtime identifier.
76
+ const specName = normalizeFieldName(argdef.name)
77
+ const orig = depluralize(snakify(specName))
75
78
  const kind = ARG_KIND[argdef.in] ?? 'query'
76
- const name = mtarget.rename[kind]?.[orig] ?? orig
79
+ // Rename map can be keyed by either the spec original (camelCase) or by
80
+ // the snakified form depending on which path went through heuristic01.
81
+ // Try both before falling through to `orig`.
82
+ const renameMap = mtarget.rename[kind]
83
+ const name = renameMap?.[specName] ?? renameMap?.[orig] ?? orig
77
84
  const marg: ModelArg = {
78
85
  name,
79
86
  orig,
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- import { each } from 'jostraca'
3
+ import { each, snakify } from 'jostraca'
4
4
 
5
5
  import type { TransformResult, Transform } from '../transform'
6
6
 
@@ -21,6 +21,11 @@ import type {
21
21
  ModelEntity,
22
22
  } from '../model'
23
23
 
24
+ import {
25
+ depluralize,
26
+ normalizeFieldName,
27
+ } from '../utility'
28
+
24
29
 
25
30
 
26
31
  const entityTransform: Transform = async function(
@@ -67,7 +72,24 @@ function resolvePathList(guideEntity: GuideEntity, def: { paths: Record<string,
67
72
 
68
73
  each(rename.param, (param: any) => {
69
74
  const pI = parts.indexOf('{' + param.key$ + '}')
70
- parts[pI] = '{' + param.val$ + '}'
75
+ if (pI >= 0) parts[pI] = '{' + param.val$ + '}'
76
+ })
77
+
78
+ // Implicit snake_case normalization for any path placeholder that wasn't
79
+ // explicitly renamed. apidef's args transform snake-cases param names
80
+ // (e.g. spec `platformKey` → param.name `platform_key`); without
81
+ // normalizing the placeholder to match, runtime URL substitution by
82
+ // param.name fails to fill `{platformKey}`.
83
+ rename.param = (rename.param as any) ?? {}
84
+ parts.forEach((part: string, i: number) => {
85
+ const m = part.match(/^\{(.+)\}$/)
86
+ if (!m) return
87
+ const placeholder = m[1]
88
+ const snake = depluralize(snakify(normalizeFieldName(placeholder)))
89
+ if (snake !== placeholder && (rename.param as any)[placeholder] === undefined) {
90
+ ; (rename.param as any)[placeholder] = snake
91
+ parts[i] = '{' + snake + '}'
92
+ }
71
93
  })
72
94
 
73
95
  const pathdesc: PathDesc = {
@@ -1,6 +1,6 @@
1
1
 
2
2
 
3
- import { each } from 'jostraca'
3
+ import { each, camelify, lcf } from 'jostraca'
4
4
 
5
5
  import type { TransformResult, Transform } from '../transform'
6
6
 
@@ -10,6 +10,43 @@ import {
10
10
  nom,
11
11
  } from '../utility'
12
12
 
13
+
14
+ // Detect a path-parameter that is in fact the entity's own id, after URL
15
+ // renaming. Three ways an identity can show up:
16
+ // 1. The param literally has name 'id' (the common case for e.g. /things/{id}).
17
+ // 2. The param's lower-camelCase name appears in `point.rename.param` mapping
18
+ // to 'id' — e.g. `{connectionId: 'id'}` for `/companies/{company_id}/connections/{id}`.
19
+ // In this case the param's own name is `connection_id` (apidef snake-cased
20
+ // it), which doesn't equal 'id' but the placeholder in `parts` is `{id}`.
21
+ // 3. Positional convention: for singleton ops (load/update/remove), the
22
+ // LAST `{X}` placeholder in the path is the entity's own id. Catches
23
+ // cases where the entity name and path placeholder differ in spelling
24
+ // (e.g. entity `enviroment` vs path `/environments/{environment_id}`)
25
+ // and apidef therefore didn't synthesize a rename-to-id.
26
+ //
27
+ // Without this helper, the flow generator double-counts the entity's id —
28
+ // emitting it as both `srcdatavar.id` AND a separate body field — which the
29
+ // in-memory test mock then requires to match a non-existent field on the
30
+ // stored entity.
31
+ function isEntityIdParam(point: any, param: any, opname?: string): boolean {
32
+ if ('id' === param?.name) return true
33
+ const renameMap = point?.rename?.param
34
+ if (renameMap && param?.name) {
35
+ const camel = lcf(camelify(param.name))
36
+ if ('id' === renameMap[camel]) return true
37
+ }
38
+ if ('update' === opname || 'load' === opname || 'remove' === opname) {
39
+ const parts: any[] = point?.parts || []
40
+ let last: string | null = null
41
+ for (const p of parts) {
42
+ const m = String(p).match(/^\{(.+)\}$/)
43
+ if (m) last = m[1]
44
+ }
45
+ if (last && last === param?.name) return true
46
+ }
47
+ return false
48
+ }
49
+
13
50
  import { KIT } from '../types'
14
51
 
15
52
  import type { KitModel } from '../types'
@@ -116,6 +153,24 @@ function newFlowStep(opname: OpName, args: Record<string, any>): ModelEntityFlow
116
153
  }
117
154
 
118
155
 
156
+ // Reverse-lookup: given a point with rename.param like {spaceId: 'id'} or
157
+ // {space_id: 'id'}, return the snake_case ORIGINAL name (e.g. 'space_id') of
158
+ // any param whose URL placeholder is now `{id}`. Returns null when no
159
+ // rename-to-id is recorded — the literal `id` then represents the entity's
160
+ // own id and createStep should skip it.
161
+ function originalSnakeNameOfRenamedId(point: any): string | null {
162
+ const renameMap = point?.rename?.param || {}
163
+ for (const [src, dst] of Object.entries(renameMap)) {
164
+ if ('id' === dst) {
165
+ const srcStr = String(src)
166
+ // Already snake_case? Use as-is. Otherwise convert to snake form.
167
+ return srcStr.includes('_') ? srcStr : (srcStr.replace(/[A-Z]/g, m => '_' + m.toLowerCase()).replace(/^_/, ''))
168
+ }
169
+ }
170
+ return null
171
+ }
172
+
173
+
119
174
  const createStep: MakeFlowStep = (
120
175
  opmap: any,
121
176
  flow: ModelEntityFlow,
@@ -128,17 +183,59 @@ const createStep: MakeFlowStep = (
128
183
  const step = newFlowStep('create', args)
129
184
 
130
185
  each(point.args.params, (param: any) => {
131
- // id should not be here in the first place
132
- if ('id' !== param.name) {
133
- step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01'
186
+ if ('id' === param.name) {
187
+ // For CREATE, `id` in the path is NOT the entity's own id (entity is
188
+ // being created here — its id doesn't exist yet). It's some parent's
189
+ // id renamed by apidef's path normalization (e.g. `space_id` → `id`
190
+ // in `/spaces/{id}/space_memberships` for SpaceMembership). Recover
191
+ // the original snake_case name so the test seeds the parent's id
192
+ // into both the created entity's data AND the URL.
193
+ const origName = originalSnakeNameOfRenamedId(point)
194
+ if (origName) {
195
+ step.match[origName] = args.input?.[origName] ?? origName.replace(/_id/, '') + '01'
196
+ }
197
+ // If there's no rename-from, this is genuinely the entity's id — skip
198
+ // (the create call generates it).
199
+ return
134
200
  }
201
+ step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01'
135
202
  })
136
203
 
204
+ // Also seed any path-param fields required by other ops (typically LIST
205
+ // through a sibling parent path), so the in-memory test mock can find
206
+ // the just-created entity when a later step queries by those fields.
207
+ // Without this, a metric created at /pages/{page_id}/metrics/data lacks
208
+ // the page_access_user_id field required by
209
+ // /pages/{page_id}/page_access_users/{page_access_user_id}/metrics LIST.
210
+ seedRelatedOpParams(opmap, point, step)
211
+
137
212
  flow.step.push(step)
138
213
  }
139
214
  }
140
215
 
141
216
 
217
+ function seedRelatedOpParams(opmap: any, createPoint: any, step: ModelEntityFlowStep) {
218
+ const otherOps = ['list', 'load', 'update', 'remove']
219
+ for (const opname of otherOps) {
220
+ const op = opmap[opname]
221
+ if (!op?.points) continue
222
+ for (const point of op.points) {
223
+ const params: any[] = point?.args?.params || []
224
+ for (const param of params) {
225
+ if (!param?.name) continue
226
+ if (isEntityIdParam(point, param, opname as any)) continue
227
+ if (step.match[param.name] !== undefined) continue
228
+ // For renamed-from-id params on CREATE's chosen point we'd already
229
+ // have set the snake-case origin; don't double-write.
230
+ if ('id' === param.name) continue
231
+ step.match[param.name] =
232
+ param.name.replace(/_id/, '') + '01'
233
+ }
234
+ }
235
+ }
236
+ }
237
+
238
+
142
239
  const listStep: MakeFlowStep = (
143
240
  opmap: any,
144
241
  flow: ModelEntityFlow,
@@ -151,6 +248,17 @@ const listStep: MakeFlowStep = (
151
248
  const step = newFlowStep('list', args)
152
249
 
153
250
  each(point.args.params, (param: any) => {
251
+ if ('id' === param.name) {
252
+ // For LIST, `id` in the path is a parent's id renamed by apidef
253
+ // (LIST doesn't address a single entity by id). Recover the original
254
+ // snake_case name so test code references a real idmap entry rather
255
+ // than landing on the bogus `id01` default.
256
+ const origName = originalSnakeNameOfRenamedId(point)
257
+ if (origName) {
258
+ step.match[origName] = args.input?.[origName] ?? origName.replace(/_id/, '') + '01'
259
+ }
260
+ return
261
+ }
154
262
  step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01'
155
263
  })
156
264
 
@@ -171,12 +279,12 @@ const updateStep: MakeFlowStep = (
171
279
  const step = newFlowStep('update', args)
172
280
 
173
281
  each(point.args.params, (param: any) => {
174
- if ('id' === param.name) {
175
- step.data.id = args.input?.id ?? ent.name + '01'
176
- }
177
- else {
178
- step.data[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01'
282
+ if (isEntityIdParam(point, param, 'update')) {
283
+ // Entity's own id — supplied at test time via the loaded/created
284
+ // entity's id field, not as a separate body parameter. Skip.
285
+ return
179
286
  }
287
+ step.data[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01'
180
288
  })
181
289
 
182
290
  flow.step.push(step)
@@ -196,7 +304,7 @@ const loadStep: MakeFlowStep = (
196
304
  const step = newFlowStep('load', args)
197
305
 
198
306
  each(point.args.params, (param: any) => {
199
- if ('id' === param.name) {
307
+ if (isEntityIdParam(point, param, 'load')) {
200
308
  step.match.id = args.input?.id ?? ent.name + '01'
201
309
  }
202
310
  else {
@@ -221,7 +329,7 @@ const removeStep: MakeFlowStep = (
221
329
  const step = newFlowStep('remove', args)
222
330
 
223
331
  each(point.args.params, (param: any) => {
224
- if ('id' === param.name) {
332
+ if (isEntityIdParam(point, param, 'remove')) {
225
333
  step.match.id = args.input?.id ?? ent.name + '01'
226
334
  }
227
335
  else {
@@ -137,7 +137,14 @@ function resolveOp(opname: OpName, gent: GuideEntity): undefined | ModelOp {
137
137
  mop = {
138
138
  name: opname,
139
139
  points: opdesc.paths.map((p: PathDesc) => {
140
- const parts = applyRename(p)
140
+ // Renames already applied by entity.ts resolvePathList — re-applying
141
+ // here corrupted paths for any spec where rename map maps an old
142
+ // name to a value that another rename maps to a different new name
143
+ // (e.g. gitlab `/groups/{id}/badges/{badge_id}` with rename
144
+ // `{badge_id: 'id', id: 'project_id'}` ended up as
145
+ // `/groups/{project_id}/badges/{project_id}` — the second pass
146
+ // rewrote the freshly-renamed `{id}` into `{project_id}` again).
147
+ const parts = p.parts
141
148
 
142
149
  const mtarget: ModelTarget = {
143
150
  orig: p.orig,
@@ -162,12 +169,6 @@ function resolveOp(opname: OpName, gent: GuideEntity): undefined | ModelOp {
162
169
  }
163
170
 
164
171
 
165
- function applyRename(pathdesc: PathDesc): string[] {
166
- const prn: Record<string, string> = pathdesc.rename?.param ?? {}
167
- return pathdesc.parts.map(p => '{' === p[0] ? (prn[p.substring(1, p.length - 1)] ?? p) : p)
168
- }
169
-
170
-
171
172
 
172
173
 
173
174
  export {