@voxgig/apidef 8.2.3 → 8.4.0

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.
@@ -7,7 +7,7 @@ const jostraca_1 = require("jostraca");
7
7
  const utility_1 = require("../utility");
8
8
  const types_1 = require("../types");
9
9
  const fieldTransform = async function (ctx) {
10
- const { apimodel, def } = ctx;
10
+ const { apimodel, def, guide, model } = ctx;
11
11
  const kit = apimodel.main[types_1.KIT];
12
12
  let msg = 'field ';
13
13
  const opFieldPrecedence = ['load', 'create', 'update', 'patch', 'list'];
@@ -39,9 +39,88 @@ const fieldTransform = async function (ctx) {
39
39
  // Downstream (test generators, fixture builders) gate id-specific code on
40
40
  // this presence so that public read-only APIs without ids don't get
41
41
  // bogus id assertions.
42
+ // COMPOSITE FIRST, because a compound key need not come with an `id`.
43
+ //
44
+ // An entity addressed by `{owner}/{repo}` whose response carries only
45
+ // `owner` and `name` has no field literally named `id`, and its adjacent
46
+ // placeholders are left unrenamed so `addressedById` is false too.
47
+ // Neither branch below then ran, so the entity got NO id descriptor and
48
+ // even an explicit `guide.entity.<name>.id.parts` was silently ignored —
49
+ // while the Go port, which initialises a descriptor unconditionally,
50
+ // emitted the composite. The ports disagreed on exactly the shape this
51
+ // feature exists for.
52
+ const gent = guide?.entity?.[ment.name];
53
+ const composite = compositeId(ment, gent);
42
54
  const idField = fields.find((f) => 'id' === f.name);
43
- if (idField) {
44
- ment.id = { name: 'id', field: 'id' };
55
+ // A COMPOSITE ID IS A STRING, whatever the API's own `id` field is —
56
+ // AND THE API'S OWN id IS KEPT.
57
+ //
58
+ // github's repo declares `id` as an integer, its global database id,
59
+ // while the composite identity is `owner/repo`. Two facts have to
60
+ // survive: `id` must hold a string, because that is what the joined
61
+ // value is and what every generated type has to store; and the spec's
62
+ // numeric property must not be silently reinterpreted, because a
63
+ // consumer that wants the database id is entitled to it with its own
64
+ // type and format intact.
65
+ //
66
+ // So the API's field MOVES to `<api>_id` rather than being rewritten in
67
+ // place, carrying its type, format and per-op overrides with it, and the
68
+ // entity's `alias.field` map records where it went. Retyping in place
69
+ // (the first attempt) claimed the server's numeric id was a string;
70
+ // leaving it alone made `id.field` name a declaration the runtime value
71
+ // cannot satisfy. Moving it is the only option that lies about neither.
72
+ if (null != composite.parts && null != idField && !scalarStringField(idField)) {
73
+ const idf = idField;
74
+ const apiname = String(model?.name || 'api');
75
+ const keep = apiname + '_id';
76
+ if (!fields.some((f) => f.name === keep)) {
77
+ // A DEEP COPY, because the move is followed by deletions on the
78
+ // original. A spread shares the `op` object, so clearing the stale
79
+ // per-op `type` off `id` cleared it off the preserved field too —
80
+ // the preservation preserved nothing for exactly the key it was
81
+ // added to keep.
82
+ fields.push(JSON.parse(JSON.stringify({ ...idf, name: keep })));
83
+ const alias = (ment.alias = ment.alias || {});
84
+ alias.field = alias.field || {};
85
+ alias.field[keep] = 'id';
86
+ }
87
+ idf.type = '`$STRING`';
88
+ // The facts that described the moved type go with it: `format: int64`
89
+ // beside a string, or a per-op `type` override still saying integer,
90
+ // is a model contradicting itself — and the op override is what a
91
+ // generator reads for that op.
92
+ delete idf.format;
93
+ for (const opname of Object.keys(idf.op || {})) {
94
+ delete idf.op[opname].type;
95
+ }
96
+ fields.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
97
+ }
98
+ if (null != composite.parts && null == idField) {
99
+ // The FIELD as well as the descriptor, for the reason the branch below
100
+ // documents: a model that declares the descriptor without the field
101
+ // makes the generated type disagree with the generated test.
102
+ fields.push({
103
+ name: 'id',
104
+ type: '`$STRING`',
105
+ req: false,
106
+ });
107
+ fields.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
108
+ }
109
+ const singleKey = composite.single;
110
+ delete composite.single;
111
+ if (null == idField && null != singleKey && null == composite.parts) {
112
+ // The guide disabled composite; the terminal parameter is the key, and
113
+ // the entity needs the field to carry it for the same reason the
114
+ // composite branch above does.
115
+ fields.push({
116
+ name: 'id',
117
+ type: '`$STRING`',
118
+ req: false,
119
+ });
120
+ fields.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);
121
+ }
122
+ if (idField || null != composite.parts || null != singleKey) {
123
+ ment.id = { name: 'id', field: 'id', ...composite };
45
124
  }
46
125
  else if (addressedById(ment)) {
47
126
  // The FIELD as well as the descriptor. An entity addressed by id has an
@@ -76,13 +155,220 @@ const fieldTransform = async function (ctx) {
76
155
  // with neither a field nor an id param — the read-only public APIs the
77
156
  // rule above was written for — still get no descriptor, so they still
78
157
  // get no id assertions.
79
- ment.id = { name: 'id', field: 'id' };
158
+ ment.id = { name: 'id', field: 'id', ...composite };
80
159
  }
81
160
  msg += ment.name + ' ';
82
161
  });
83
162
  return { ok: true, msg };
84
163
  };
85
164
  exports.fieldTransform = fieldTransform;
165
+ // The separator that joins a composite id into one string.
166
+ //
167
+ // A forward slash cannot occur inside a single path segment — a raw `/`
168
+ // would end the segment, and a value that legitimately contains one arrives
169
+ // percent-encoded as `%2F` — so joining on it can never be ambiguous, and
170
+ // splitting on it can never over-split. That is what makes the composite id
171
+ // safe to carry as a single opaque string, which is the property the SDK and
172
+ // Seneca entities are built on.
173
+ const ID_SEP = '/';
174
+ // The ops that address ONE record, most authoritative first. Only a
175
+ // tie-break: identityParams compares candidates from all of them.
176
+ const ID_OPS = ['load', 'update', 'patch', 'remove'];
177
+ // The parameters that TOGETHER name one record: the trailing run of
178
+ // ADJACENT variable segments on the addressing route.
179
+ //
180
+ // ADJACENCY IS THE WHOLE TEST, and it is what separates a compound key from
181
+ // ordinary parent/child nesting:
182
+ //
183
+ // /repos/{owner}/{repo} -> owner, repo COMPOSITE
184
+ // /api/planet/{planet_id}/moon/{moon_id} -> moon_id single
185
+ // /repos/{owner}/{repo}/pulls/{pull_number} -> pull_number single
186
+ //
187
+ // A literal segment between two variables names a SUB-COLLECTION, so the
188
+ // earlier variable scopes the later one — `planet_id` says which planet's
189
+ // moons, and `moon_id` alone identifies the moon. Two variables with nothing
190
+ // between them address no sub-collection: neither value names anything on
191
+ // its own, and only the pair identifies a repository.
192
+ //
193
+ // Taking every variable on the path instead was tried first and is wrong on
194
+ // most real specs — it made `moon` (planet_id + moon_id), petstore's `order`,
195
+ // `pet` and `user`, and taxonomy's `domain` and `kingdom` all falsely
196
+ // composite, which the apidef-validate goldens caught immediately. Nested
197
+ // resources are the common shape; compound keys are the exception, and
198
+ // adjacency is the thing that actually distinguishes them.
199
+ //
200
+ // Read from the op that names a single record, never from `list`: a
201
+ // collection route's path params are the entity's parents. A point ending in
202
+ // a literal is a verb ON the record (`.../{number}/merge`) and carries the
203
+ // same variables, so it is a fallback rather than a different answer.
204
+ // Walk back from a point's end, collecting variables until a literal stops
205
+ // the run. That literal is the sub-collection boundary; anything before it
206
+ // scopes this record rather than naming it.
207
+ function trailingVars(point) {
208
+ const segs = (point?.segments || []).filter((s) => null != s);
209
+ const run = [];
210
+ for (let i = segs.length - 1; 0 <= i; i--) {
211
+ if (null == segs[i].var) {
212
+ break;
213
+ }
214
+ run.unshift(String(segs[i].var));
215
+ }
216
+ return run;
217
+ }
218
+ function identityParams(ment) {
219
+ // EVERY ID-BEARING OP AT ONCE, not the first one that offers a candidate.
220
+ //
221
+ // These four ops all address a single record, so all four describe the
222
+ // same identity — but they do not all carry the same routes. gitlab's
223
+ // `project` has `/api/v4/projects/{id}` under `remove` alone, while its
224
+ // `load` carries only sub-resources like
225
+ // `/api/v4/projects/{id}/uploads/{secret}/{filename}`. Returning on the
226
+ // first op with any candidate therefore made a PROJECT identified by
227
+ // `secret/filename`. The op order is now only a tie-break.
228
+ const cands = [];
229
+ for (let o = 0; o < ID_OPS.length; o++) {
230
+ const mop = ment.op?.[ID_OPS[o]];
231
+ if (null == mop) {
232
+ continue;
233
+ }
234
+ // Action points are verbs dispatched by `$action`, not addresses.
235
+ for (const pt of (mop.points || [])) {
236
+ if (null != pt?.select?.['$action']) {
237
+ continue;
238
+ }
239
+ const run = trailingVars(pt);
240
+ if (0 === run.length) {
241
+ continue;
242
+ }
243
+ cands.push({
244
+ run,
245
+ // Segments BEFORE the run: how much parent scope the route needs.
246
+ scope: ((pt.segments || []).length - run.length),
247
+ // DOES THE RUN END IN THE RECORD'S OWN KEY? Then it is the
248
+ // record's address and nothing further is needed.
249
+ //
250
+ // This transform RENAMES that parameter to `id`, so a run ending in
251
+ // it is this port's own statement of what identifies the record —
252
+ // and the composite inference must not contradict it.
253
+ // `/gists/{gist_id}` becomes `/gists/{id}` and is a gist;
254
+ // `/gists/{gist_id}/{sha}` is a REVISION of one, and won on key
255
+ // length alone, so a gist came out keyed `gist_id/sha` while the
256
+ // generated SDK's own load match takes the single parameter. The
257
+ // same contradiction gave cloudsmith's repo and vulnerability
258
+ // compound keys their SDKs never address them by.
259
+ //
260
+ // Deliberately narrow: exactly `id` or an unrenamed `<entity>_id`,
261
+ // never any `*_id`. `actor_type/actor_id` IS a compound key, and a
262
+ // looser test breaks it.
263
+ own: 'id' === run[run.length - 1] ||
264
+ ment.name + '_id' === run[run.length - 1],
265
+ order: o,
266
+ });
267
+ }
268
+ }
269
+ // WHICH ROUTE IS THE RECORD'S OWN ADDRESS.
270
+ //
271
+ // An entity gathers every route that reads it, and in a large
272
+ // specification most of those are sub-resources. Three earlier rules were
273
+ // measured against the validation corpus, and each is wrong:
274
+ //
275
+ // The FIRST route listed gave github's `repo` the single part
276
+ // `subject_digest`, from
277
+ // `/repos/{owner}/{repo}/attestations/{subject_digest}` — no compound
278
+ // key at all, for the entity this feature exists for. Invisible on a
279
+ // small spec, where the first item route IS the record's own.
280
+ //
281
+ // The SHORTEST route ending in a variable took cloudsmith's
282
+ // `/vulnerabilities/{owner}/` — a LIST of an owner's vulnerabilities —
283
+ // and cut a four-part key down to `owner`, dropping three more
284
+ // composites. Ending in a variable does not make a route an address.
285
+ //
286
+ // The LONGEST trailing run took
287
+ // `/orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}` and made a TEAM
288
+ // identified by `owner/repo`. A deep sub-resource can carry more
289
+ // adjacent variables than the record's own route does.
290
+ //
291
+ // What separates them is PARENT SCOPE: the record's own route is the
292
+ // least-qualified one that names it, and among equally-qualified routes
293
+ // the one carrying the fullest key. `/repos/{owner}/{repo}` is qualified
294
+ // by one segment and the attestations route by four; `/teams/{team_id}`
295
+ // by one and the org-team-repo route by five; cloudsmith's vulnerability
296
+ // routes are all qualified by one, so the fullest of them wins.
297
+ const best = cands.reduce((b, c) => {
298
+ if (null == b) {
299
+ return c;
300
+ }
301
+ if (c.scope !== b.scope) {
302
+ return c.scope < b.scope ? c : b;
303
+ }
304
+ if (c.own !== b.own) {
305
+ return c.own ? c : b;
306
+ }
307
+ if (c.run.length !== b.run.length) {
308
+ return b.run.length < c.run.length ? c : b;
309
+ }
310
+ return c.order < b.order ? c : b;
311
+ }, null);
312
+ return null == best ? [] : best.run;
313
+ }
314
+ // Is this model field declared as a string? A composite id is the parts
315
+ // joined, so the field that holds it has to be one.
316
+ function scalarStringField(f) {
317
+ return String(f?.type || '').toUpperCase().includes('STRING');
318
+ }
319
+ // WHICH PARAMETER IS THE RECORD'S OWN KEY, among several that looked
320
+ // adjacent. The same shape apidef's id handling recognises everywhere else:
321
+ //
322
+ // 1. one named exactly `id`
323
+ // 2. `<entity>_id` — the entity's own id, however the path spells it
324
+ // 3. any `*_id` — an id by name
325
+ // 4. failing all that, the terminal parameter
326
+ //
327
+ // Position is the LAST resort, not the first.
328
+ function singleKeyOf(ment, parts) {
329
+ if (0 === parts.length) {
330
+ return undefined;
331
+ }
332
+ return parts.find((p) => 'id' === p)
333
+ ?? parts.find((p) => p === ment.name + '_id')
334
+ ?? parts.find((p) => p.endsWith('_id'))
335
+ ?? parts[parts.length - 1];
336
+ }
337
+ // The composite half of the id descriptor, or `{}` for the ordinary case.
338
+ //
339
+ // Emitted ONLY for a genuinely composite id (two or more addressing
340
+ // parameters). A single-parameter entity already round-trips through one
341
+ // `id` and gains nothing from carrying a one-element `parts`, so its
342
+ // descriptor is left exactly as it was — no existing model output moves.
343
+ function compositeId(ment, gent) {
344
+ const gid = gent?.id;
345
+ const sep = null != gid?.sep && '' !== String(gid.sep) ? String(gid.sep) : ID_SEP;
346
+ // `composite: false` turns the inference off. A boolean rather than an
347
+ // empty `parts`, because aontu resolves an empty list to nothing and the
348
+ // key would arrive absent — indistinguishable from never having been set.
349
+ if (null != gid && false === gid.composite) {
350
+ // DISABLING COMPOSITE MUST NOT DISABLE THE ID. The correction says these
351
+ // adjacent parameters are not a compound key; it does not say the record
352
+ // has no key. Returning a bare `{}` left an entity whose response has no
353
+ // literal `id` with no descriptor at all — the false positive removed and
354
+ // nothing identifying the real key.
355
+ //
356
+ // WHICH of the adjacent parameters is that key is decided by the same
357
+ // id-finding rules apidef uses elsewhere, not by position. Taking the
358
+ // terminal one picked `archive_format` for
359
+ // `/artifacts/{artifact_id}/{archive_format}` — the modifier, precisely
360
+ // the false positive the correction exists to undo.
361
+ return { single: singleKeyOf(ment, identityParams(ment)) };
362
+ }
363
+ if (null != gid && null != gid.parts) {
364
+ const given = gid.parts
365
+ .filter((p) => null != p && '' !== String(p))
366
+ .map((p) => String(p));
367
+ return 1 < given.length ? { parts: given, sep } : {};
368
+ }
369
+ const parts = identityParams(ment);
370
+ return 1 < parts.length ? { parts, sep } : {};
371
+ }
86
372
  // True when any of the entity's own operation points declares an `id`
87
373
  // parameter — i.e. the API addresses this entity by id, whether or not its
88
374
  // response schema declares an id field.
@@ -134,6 +420,32 @@ function resolveOpFields(ment, mop, mpoint, def) {
134
420
  mfield.short = short;
135
421
  }
136
422
  }
423
+ // SPEC FACTS ABOUT THE FIELD, carried through verbatim.
424
+ //
425
+ // These four are declared by OpenAPI on the property and were being
426
+ // dropped on the floor. `readOnly` is the one that matters most: it is
427
+ // the difference between a field a client MAY send and one it may not,
428
+ // and nothing else in the model says which — so every generator has been
429
+ // putting server-assigned fields into the type a caller fills in.
430
+ //
431
+ // ONLY WHEN THE SPEC SAYS SO, and for the booleans only when TRUE. Each
432
+ // defaults to false in OpenAPI, so an absent key and an explicit `false`
433
+ // carry the same information; emitting the false ones would add a key to
434
+ // every field of every model and say nothing. Same discipline as
435
+ // `short`: absent means "the spec did not say", never "apidef dropped
436
+ // it".
437
+ for (const flag of ['readOnly', 'writeOnly', 'deprecated']) {
438
+ if (true === fielddef[flag]) {
439
+ mfield[flag] = true;
440
+ }
441
+ }
442
+ // `format` is an open vocabulary — OpenAPI defines a handful and lets a
443
+ // spec coin its own — so it is carried as the string it is rather than
444
+ // interpreted here. `password` is the one a generator acts on today.
445
+ const ffmt = fielddef.format;
446
+ if ('string' === typeof ffmt && '' !== ffmt.trim()) {
447
+ mfield.format = ffmt.trim();
448
+ }
137
449
  // Record an untagged union under this field. The field is already typed
138
450
  // openly ($ANY/$ARRAY/$OBJECT) because there is nothing to narrow it to;
139
451
  // this says WHY, so the generated docs can explain the open type instead
@@ -446,6 +758,22 @@ function mergeField(mop, existingField, newField) {
446
758
  if (null == existingField.short && null != newField.short) {
447
759
  existingField.short = newField.short;
448
760
  }
761
+ // The spec facts merge the same way, and for the same reason: one schema
762
+ // annotates the field and another references it bare, so taking the first
763
+ // declaration in opFieldPrecedence order is what finds the annotation.
764
+ //
765
+ // THE PRECEDENCE ORDER PUTS `load` FIRST, WHICH IS THE SAFE DIRECTION HERE.
766
+ // A field the response schema marks readOnly and a request body also lists
767
+ // is a self-contradictory spec — OpenAPI says a client must not send a
768
+ // readOnly property at all — and this resolves it by believing the
769
+ // restriction rather than the omission. Marking a writable field readOnly
770
+ // costs a caller one field; the other way round sends a value the server
771
+ // rejects.
772
+ for (const flag of ['readOnly', 'writeOnly', 'deprecated', 'format']) {
773
+ if (null == existingField[flag] && null != newField[flag]) {
774
+ existingField[flag] = newField[flag];
775
+ }
776
+ }
449
777
  return existingField;
450
778
  }
451
779
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,15 @@ exports.operationTransform = void 0;
4
4
  const utility_1 = require("../utility");
5
5
  const jostraca_1 = require("jostraca");
6
6
  const types_1 = require("../types");
7
+ // The op names the transform resolves. Anything else under a guide path's
8
+ // `op` map is dropped, and an unknown name (a verb such as `merge`, or a
9
+ // typo) is dropped WITH A WARNING: guide.aon is the only correction surface
10
+ // (ADR-002), so a correction that vanishes silently defeats it. A non-CRUD
11
+ // verb is declared as `action: <verb>: {}` beside a CRUD op on the same path.
12
+ const RESOLVED_OPS = ['load', 'list', 'create', 'update', 'remove', 'patch'];
13
+ // Emitted by the heuristic for HEAD and OPTIONS methods; no SDK operation
14
+ // exists for them yet, so they are skipped without a warning.
15
+ const IGNORED_OPS = ['head', 'options', 'OPTIONS'];
7
16
  const operationTransform = async function (ctx) {
8
17
  const { apimodel, guide } = ctx;
9
18
  const kit = apimodel.main[types_1.KIT];
@@ -11,7 +20,7 @@ const operationTransform = async function (ctx) {
11
20
  (0, jostraca_1.each)(guide.entity, (gent, entname) => {
12
21
  if (!(0, utility_1.guideActive)(gent))
13
22
  return;
14
- collectOps(gent);
23
+ collectOps(ctx, gent);
15
24
  const opm = {
16
25
  load: undefined,
17
26
  list: undefined,
@@ -32,7 +41,7 @@ const operationTransform = async function (ctx) {
32
41
  return { ok: true, msg };
33
42
  };
34
43
  exports.operationTransform = operationTransform;
35
- function collectOps(gent) {
44
+ function collectOps(ctx, gent) {
36
45
  ;
37
46
  gent.opm$ = gent.opm$ ?? {};
38
47
  (0, jostraca_1.each)(gent.paths$, (pathdesc) => {
@@ -41,6 +50,19 @@ function collectOps(gent) {
41
50
  if (!(0, utility_1.guideActive)(gop)) {
42
51
  return;
43
52
  }
53
+ if (!RESOLVED_OPS.includes(opname)) {
54
+ if (!IGNORED_OPS.includes(opname)) {
55
+ ctx.warn?.({
56
+ note: `Unknown op "${opname}" on entity=${gent.name} path=${pathdesc.orig}` +
57
+ ` is dropped: only ${RESOLVED_OPS.join('/')} are resolved.` +
58
+ ` Declare a verb as \`action: ${opname}: {}\` beside a CRUD op on that path.`,
59
+ entity: gent.name,
60
+ path: pathdesc.orig,
61
+ op: opname,
62
+ });
63
+ }
64
+ return;
65
+ }
44
66
  ;
45
67
  gent.opm$[opname] = gent.opm$[opname] ?? { paths: [] };
46
68
  const oppathdesc = {
@@ -49,6 +71,7 @@ function collectOps(gent) {
49
71
  rename: pathdesc.rename,
50
72
  method: gop.method,
51
73
  op: gop,
74
+ action: pathdesc.action,
52
75
  def: pathdesc.def,
53
76
  };
54
77
  gent.opm$[opname].paths.push(oppathdesc);
@@ -78,7 +101,18 @@ function resolveRemove(opm, gent) {
78
101
  function resolvePatch(opm, gent) {
79
102
  const opdesc = resolveOp('patch', gent);
80
103
  // If patch is actually update, make it update!
81
- if (null != opdesc && null == opm.update) {
104
+ //
105
+ // That holds when there is no PUT update at all, and equally when every
106
+ // PUT update point is an ACTION: a verb such as GitHub's `merge` borrows
107
+ // the update slot (actions have no slot of their own) but is not the
108
+ // entity's update. Leaving PATCH as `patch` there made the real update
109
+ // unreachable, since no target emits a `patch` method, and routed a plain
110
+ // update() to the verb. The action points join the promoted PATCH, and
111
+ // `$action` selects them at call time.
112
+ if (null != opdesc && (null == opm.update || onlyActionPaths(gent, 'update'))) {
113
+ if (null != opm.update) {
114
+ opdesc.points.push(...opm.update.points);
115
+ }
82
116
  opm.update = opdesc;
83
117
  opm.update.name = 'update';
84
118
  }
@@ -87,6 +121,12 @@ function resolvePatch(opm, gent) {
87
121
  }
88
122
  return opdesc;
89
123
  }
124
+ // True when every path collected under the op carries a guide action.
125
+ function onlyActionPaths(gent, opname) {
126
+ const paths = gent.opm$?.[opname]?.paths ?? [];
127
+ return 0 < paths.length &&
128
+ paths.every((p) => 0 < Object.keys(p.action ?? {}).length);
129
+ }
90
130
  function resolveOp(opname, gent) {
91
131
  let mop = undefined;
92
132
  let opdesc = gent.opm$[opname];
@@ -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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"}