@voxgig/apidef 2.2.1 → 2.3.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.
package/dist/apidef.js CHANGED
@@ -165,7 +165,13 @@ ApiDef.makeBuild = async function (opts) {
165
165
  const build = async function (model, build, ctx) {
166
166
  if (null == apidef) {
167
167
  apidef = ApiDef({
168
- ...opts,
168
+ def: opts.def,
169
+ fs: opts.fs,
170
+ debug: opts.debug,
171
+ folder: opts.folder,
172
+ meta: opts.meta,
173
+ outprefix: opts.outprefix,
174
+ strategy: opts.strategy,
169
175
  pino: build.log,
170
176
  });
171
177
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,10 @@ const dlog = (0, utility_1.getdlog)('apidef', __filename);
9
9
  async function heuristic01(ctx) {
10
10
  let guide = ctx.model.main.api.guide;
11
11
  const entityDescs = resolveEntityDescs(ctx);
12
- // console.log('entityDescs')
13
- // console.dir(entityDescs, { depth: null })
14
12
  guide = {
15
13
  control: guide.control,
16
14
  entity: entityDescs,
17
15
  };
18
- // console.log('GUIDE')
19
- // console.dir(guide, { depth: null })
20
16
  return guide;
21
17
  }
22
18
  const METHOD_IDOP = {
@@ -37,21 +33,25 @@ function resolveEntityDescs(ctx) {
37
33
  if (m) {
38
34
  // const entdesc = resolveEntity(entityDescs, pathStr, m[1], m[2])
39
35
  (0, jostraca_1.each)(pathDef, (methodDef, methodStr) => {
36
+ // console.log('PPP', pathStr, methodStr, methodDef)
40
37
  methodStr = methodStr.toLowerCase();
38
+ let why_op = [];
41
39
  if (!METHOD_IDOP[methodStr]) {
42
40
  return;
43
41
  }
44
- const entdesc = resolveEntity(entityDescs, pathDef, pathStr, methodDef, methodStr);
42
+ const why_ent = [];
43
+ const entdesc = resolveEntity(entityDescs, pathDef, pathStr, methodDef, methodStr, why_ent);
45
44
  if (null == entdesc) {
46
45
  console.log('WARNING: unable to resolve entity for method ' + methodStr +
47
46
  ' path ' + pathStr);
48
47
  return;
49
48
  }
49
+ entdesc.path[pathStr].why_ent = why_ent;
50
50
  // if (pathStr.includes('courses')) {
51
51
  // console.log('ENTRES', pathStr, methodStr)
52
52
  // console.dir(ent2, { depth: null })
53
53
  // }
54
- let opname = resolveOpName(methodStr, methodDef, pathStr, entdesc);
54
+ let opname = resolveOpName(methodStr, methodDef, pathStr, entdesc, why_op);
55
55
  if (null == opname) {
56
56
  console.log('WARNING: unable to resolve operation for method ' + methodStr +
57
57
  ' path ' + pathStr);
@@ -61,7 +61,7 @@ function resolveEntityDescs(ctx) {
61
61
  // reqform: '`reqdata`',
62
62
  // resform: '`body`',
63
63
  };
64
- const resokdef = methodDef.responses[200] || methodDef.responses[201];
64
+ const resokdef = methodDef.responses?.[200] || methodDef.responses?.[201];
65
65
  const resbody = resokdef?.content?.['application/json']?.schema;
66
66
  if (resbody) {
67
67
  if (resbody[entdesc.origname]) {
@@ -84,14 +84,15 @@ function resolveEntityDescs(ctx) {
84
84
  op[opname] = {
85
85
  // TODO: in actual guide, remove "standard" method ops since redundant
86
86
  method: methodStr,
87
+ why_op: why_op.join(';')
87
88
  };
88
89
  if (0 < Object.entries(transform).length) {
89
90
  op[opname].transform = transform;
90
91
  }
91
- if ('/v2/users/{user_id}/enrollment' === pathStr) {
92
- console.log('ENT');
93
- console.dir(entdesc, { depth: null });
94
- }
92
+ // if ('/v2/users/{user_id}/enrollment' === pathStr) {
93
+ // console.log('ENT')
94
+ // console.dir(entdesc, { depth: null })
95
+ // }
95
96
  });
96
97
  }
97
98
  });
@@ -99,20 +100,27 @@ function resolveEntityDescs(ctx) {
99
100
  // console.dir(entityDescs.user, { depth: null })
100
101
  return entityDescs;
101
102
  }
102
- function resolveEntity(entityDescs, pathDef, pathStr, methodDef, methodStr) {
103
+ function resolveEntity(entityDescs, pathDef, pathStr, methodDef, methodStr, why_ent) {
103
104
  let entdesc;
104
105
  let entname = '';
105
106
  let origentname = '';
107
+ const why_name = [];
106
108
  const m = pathStr.match(/\/([a-zA-Z0-1_-]+)(\/\{([a-zA-Z0-1_-]+)\})?$/);
107
109
  if (m) {
108
110
  let pathName = m[1];
109
111
  origentname = (0, jostraca_1.snakify)(pathName);
112
+ entname = (0, utility_1.depluralize)(origentname);
110
113
  // Check schema
111
- const compname = resolveComponentName(methodDef, methodStr);
114
+ const compname = resolveComponentName(entname, methodDef, methodStr, pathStr, why_name);
112
115
  if (compname) {
113
116
  origentname = (0, jostraca_1.snakify)(compname);
117
+ entname = (0, utility_1.depluralize)(origentname);
118
+ why_ent.push('cmp:' + entname);
119
+ }
120
+ else {
121
+ why_ent.push('path:' + m[1]);
122
+ why_name.push('path:' + m[1]);
114
123
  }
115
- entname = (0, utility_1.depluralize)(origentname);
116
124
  entdesc = (entityDescs[entname] = entityDescs[entname] || {
117
125
  name: entname,
118
126
  id: Math.random(),
@@ -139,6 +147,9 @@ function resolveEntity(entityDescs, pathDef, pathStr, methodDef, methodStr) {
139
147
  entdesc.path = (entdesc.path || {});
140
148
  entdesc.path[pathStr] = entdesc.path[pathStr] || {};
141
149
  entdesc.path[pathStr].op = entdesc.path[pathStr].op || {};
150
+ if (null == entdesc.why_name) {
151
+ entdesc.why_name = why_name;
152
+ }
142
153
  return entdesc;
143
154
  }
144
155
  const REQKIND = {
@@ -147,103 +158,190 @@ const REQKIND = {
147
158
  put: 'req',
148
159
  patch: 'req',
149
160
  };
150
- function resolveComponentName(methodDef, methodStr) {
151
- const kind = REQKIND[methodStr];
161
+ function resolveComponentName(entname, methodDef, methodStr, pathStr, why_name) {
152
162
  let compname = undefined;
153
- const responses = methodDef.responses;
154
- const schemalist = [
163
+ let xrefs = find(methodDef, 'x-ref')
164
+ .filter(xref => xref.val.includes('schema'))
165
+ // TODO: identify non-ent schemas
166
+ .filter(xref => !xref.val.includes('Meta'))
167
+ .sort((a, b) => a.path.length - b.path.length);
168
+ // console.log('RCN', pathStr, methodStr, xrefs.map(x => [x.val, x.path.length]))
169
+ let first = xrefs[0]?.val;
170
+ if (null != first) {
171
+ let xrefm = first.match(/\/components\/schemas\/(.+)$/);
172
+ if (xrefm) {
173
+ why_name.push('cmp');
174
+ compname = xrefm[1];
175
+ }
176
+ }
177
+ if (null != compname) {
178
+ compname = (0, utility_1.depluralize)((0, jostraca_1.snakify)(compname));
179
+ // Assume sub schemas suffixes are not real entities
180
+ if (compname.includes(entname)) {
181
+ compname = compname.slice(0, compname.indexOf(entname) + entname.length);
182
+ }
183
+ }
184
+ /*
185
+ const responses = methodDef.responses
186
+ const schemalist =
187
+ [
155
188
  methodDef.requestBody?.content,
156
189
  responses?.['201'],
157
190
  responses?.['200'],
158
- ]
191
+ ]
159
192
  .filter(cmp => null != cmp)
160
193
  .map(content => content['application/json']?.schema)
161
194
  .filter(schema => null != schema)
162
- .filter(schema => null != schema['x-ref'])
195
+ // .filter(schema => null != schema['x-ref'])
163
196
  .map(schema => {
164
- let xrefm = schema['x-ref'].match(/\/components\/schemas\/(.+)$/);
165
- if (xrefm) {
166
- schema['x-ref-cmp'] = xrefm[1];
167
- }
168
- return schema;
169
- })
170
- .filter(schema => null != schema['x-ref-cmp']);
171
- let schema = undefined;
172
- let splen = -1;
197
+
198
+ let xrefs = find(schema, 'x-ref')
199
+
200
+ if ('responses' === pathName) {
201
+ console.log('xrefs', xrefs)
202
+ }
203
+
204
+ let xrefv = String(xrefs[0])
205
+
206
+ let xrefm = xrefv.match(/\/components\/schemas\/(.+)$/)
207
+ if (xrefm) {
208
+ schema['x-ref-cmp'] = xrefm[1]
209
+ }
210
+ return schema
211
+ })
212
+ .filter(schema => null != schema['x-ref-cmp'])
213
+
214
+ if ('responses' === pathName) {
215
+ console.log('CMP', pathName, schemalist.length)
216
+ // console.dir(methodDef.responses['200'].content['application/json'].schema, { depth: null })
217
+ }
218
+
219
+ let schema = undefined
220
+ let splen = -1
221
+
222
+ if (0 < schemalist.length) {
223
+ why_name.push('schema')
224
+ }
225
+
173
226
  for (let sI = 0; sI < schemalist.length; sI++) {
174
- let nextschema = schemalist[sI];
175
- let nsplen = nextschema.properties?.length || -1;
176
- // console.log('QQQ', splen, nsplen, schema?.['x-ref-cmp'], nextschema?.['x-ref-cmp'])
177
- if (
227
+ let nextschema = schemalist[sI]
228
+ let nsplen = nextschema.properties?.length || -1
229
+
230
+ // console.log('QQQ', splen, nsplen, schema?.['x-ref-cmp'], nextschema?.['x-ref-cmp'])
231
+
232
+ if (
178
233
  // More properties probably means it is the full entity.
179
234
  splen < nsplen ||
180
- // Shorter name probably means it is the full entity (no suffix/prefix).
181
- (schema && splen === nsplen && nextschema['x-ref-cmp'].length < schema['x-ref-cmp'].length)) {
182
- schema = nextschema;
183
- splen = nsplen;
184
- }
235
+
236
+ // Shorter name probably means it is the full entity (no suffix/prefix).
237
+ (schema && splen === nsplen && nextschema['x-ref-cmp'].length < schema['x-ref-cmp'].length)
238
+
239
+ ) {
240
+ schema = nextschema
241
+ splen = nsplen
242
+ }
185
243
  }
244
+
186
245
  if (schema) {
187
- let xref = schema['x-ref'];
188
- // console.log('RCN-XREF', methodStr, 'xref-0', xref)
189
- if (null == xref) {
190
- const properties = schema.properties || {};
191
- (0, jostraca_1.each)(properties, (prop) => {
192
- if (null == xref) {
193
- if (prop.type === 'array') {
194
- xref = prop.items?.['x-ref'];
195
- // console.log('RCN', methodStr, 'xref-1', xref)
196
- }
197
- }
198
- });
199
- }
200
- if (null != xref && 'string' === typeof xref) {
201
- let xrefm = xref.match(/\/components\/schemas\/(.+)$/);
202
- if (xrefm) {
203
- compname = xrefm[1];
246
+ let xref = schema['x-ref']
247
+ // console.log('RCN-XREF', methodStr, 'xref-0', xref)
248
+
249
+ if (null == xref) {
250
+ why_name.push('xref')
251
+ const properties = schema.properties || {}
252
+ each(properties, (prop) => {
253
+ if (null == xref) {
254
+ if (prop.type === 'array') {
255
+ xref = prop.items?.['x-ref']
256
+ // console.log('RCN', methodStr, 'xref-1', xref)
204
257
  }
258
+ }
259
+ })
260
+ }
261
+
262
+ if (null != xref && 'string' === typeof xref) {
263
+ let xrefm = xref.match(/\/components\/schemas\/(.+)$/)
264
+ if (xrefm) {
265
+ why_name.push('cmp')
266
+ compname = xrefm[1]
205
267
  }
268
+ }
206
269
  }
270
+ */
207
271
  return compname;
208
272
  }
209
- function resolveOpName(methodStr, methodDef, pathStr, entdesc) {
273
+ function resolveOpName(methodStr, methodDef, pathStr, entdesc, why) {
274
+ // console.log('ROP', pathStr, methodDef)
210
275
  let opname = METHOD_IDOP[methodStr];
211
- if (null == opname)
276
+ if (null == opname) {
277
+ why.push('no-op:' + methodStr);
212
278
  return;
279
+ }
213
280
  if ('load' === opname) {
214
- const islist = isListResponse(methodDef, pathStr, entdesc);
281
+ const islist = isListResponse(methodDef, pathStr, entdesc, why);
215
282
  opname = islist ? 'list' : opname;
216
- console.log('ISLIST', entdesc.name, methodStr, opname, pathStr);
283
+ // console.log('ISLIST', entdesc.name, methodStr, opname, pathStr)
284
+ }
285
+ else {
286
+ why.push('not-load');
217
287
  }
218
288
  return opname;
219
289
  }
220
- function isListResponse(methodDef, pathStr, entdesc) {
290
+ function isListResponse(methodDef, pathStr, entdesc, why) {
221
291
  const responses = methodDef.responses;
222
292
  const resdef = responses?.['201'] || responses?.['200'];
223
293
  const content = resdef?.content;
224
294
  let islist = false;
225
- if (null != content) {
295
+ if (null == content) {
296
+ // console.log('NO-CONTENT', pathStr, methodDef)
297
+ why.push('no-content');
298
+ }
299
+ else {
226
300
  const schema = content['application/json']?.schema;
227
- if (schema) {
301
+ if (null == schema) {
302
+ why.push('no-schema');
303
+ }
304
+ else {
228
305
  if (schema.type === 'array') {
306
+ why.push('array');
229
307
  islist = true;
230
308
  }
231
309
  if (!islist) {
232
310
  const properties = schema.properties || {};
233
311
  (0, jostraca_1.each)(properties, (prop) => {
234
312
  if (prop.type === 'array') {
235
- if (1 === (0, struct_1.size)(properties) ||
236
- prop.key$ === entdesc.name ||
237
- prop.key$ === entdesc.origname ||
238
- listedEntity(prop) === entdesc.name) {
313
+ if (1 === (0, struct_1.size)(properties)) {
314
+ why.push('one-prop:' + prop.key$);
315
+ islist = true;
316
+ }
317
+ if (2 === (0, struct_1.size)(properties) &&
318
+ ('data' === prop.key$ ||
319
+ 'list' === prop.key$)) {
320
+ why.push('two-prop:' + prop.key$);
239
321
  islist = true;
240
322
  }
241
- if ('/v2/users' === pathStr) {
242
- console.log('islistresponse', islist, pathStr, entdesc.name, listedEntity(prop), properties);
323
+ if (prop.key$ === entdesc.name) {
324
+ why.push('name:' + entdesc.origname);
325
+ islist = true;
326
+ }
327
+ if (prop.key$ === entdesc.origname) {
328
+ why.push('origname:' + entdesc.origname);
329
+ islist = true;
330
+ }
331
+ const listent = listedEntity(prop);
332
+ if (listent === entdesc.name) {
333
+ why.push('listent:' + listent);
334
+ islist = true;
243
335
  }
336
+ // if ('/v2/users' === pathStr) {
337
+ // console.log('islistresponse', islist, pathStr, entdesc.name, listedEntity(prop), properties)
338
+ // }
244
339
  }
245
340
  });
246
341
  }
342
+ if (!islist) {
343
+ why.push('not-list');
344
+ }
247
345
  }
248
346
  }
249
347
  return islist;
@@ -255,4 +353,14 @@ function listedEntity(prop) {
255
353
  return (0, utility_1.depluralize)((0, jostraca_1.snakify)(m[1]));
256
354
  }
257
355
  }
356
+ function find(obj, qkey) {
357
+ let vals = [];
358
+ (0, struct_1.walk)(obj, (key, val, _p, t) => {
359
+ if (qkey === key) {
360
+ vals.push({ key, val, path: t });
361
+ }
362
+ return val;
363
+ });
364
+ return vals;
365
+ }
258
366
  //# sourceMappingURL=heuristic01.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heuristic01.js","sourceRoot":"","sources":["../../src/guide/heuristic01.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heuristic01.js","sourceRoot":"","sources":["../../src/guide/heuristic01.ts"],"names":[],"mappings":"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"}
package/dist/guide.js CHANGED
@@ -42,11 +42,14 @@ async function resolveGuide(ctx) {
42
42
  ];
43
43
  guideBlocks.push(...(0, jostraca_1.each)(baseguide.entity, (entity, entityname) => {
44
44
  guideBlocks.push(`
45
- entity: ${entityname}: {`);
45
+ entity: ${entityname}: {` +
46
+ (0 < entity.why_name.length ? ' # name:' + entity.why_name.join(';') : ''));
46
47
  (0, jostraca_1.each)(entity.path, (path, pathname) => {
47
- guideBlocks.push(` path: '${pathname}': op: {`);
48
+ guideBlocks.push(` path: '${pathname}': op: {` +
49
+ (0 < path.why_ent.length ? ' # ent:' + path.why_ent.join(';') : ''));
48
50
  (0, jostraca_1.each)(path.op, (op, opname) => {
49
- guideBlocks.push(` '${opname}': method: ${op.method}`);
51
+ guideBlocks.push(` '${opname}': method: ${op.method}` +
52
+ (0 < op.why_op.length ? ' # ' + op.why_op : ''));
50
53
  if (op.transform?.reqform) {
51
54
  guideBlocks.push(` '${opname}': transform: reqform: ${JSON.stringify(op.transform.reqform)}`);
52
55
  }
@@ -78,7 +81,11 @@ function cleanGuide(guide) {
78
81
  return;
79
82
  }
80
83
  }
81
- let ent = clean.entity[name] = clean.entity[name] = { name, path: {} };
84
+ let ent = clean.entity[name] = clean.entity[name] = {
85
+ name,
86
+ why_name: entity.why_name || [],
87
+ path: {}
88
+ };
82
89
  (0, jostraca_1.each)(entity.path, (path, pathname) => {
83
90
  ent.path[pathname] = path;
84
91
  });
package/dist/guide.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"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"}
@@ -157,18 +157,23 @@ const operationTransform = async function (ctx) {
157
157
  return [transform, why];
158
158
  };
159
159
  const opBuilder = {
160
- any: (entityModel, pathdef, op, path, entity, model) => {
161
- const opname = op.key$;
162
- const method = op.method;
160
+ any: (entityModel, pathdef, guideOp, guidePath, guideEntity, model) => {
161
+ if (false === guidePath.active) {
162
+ return;
163
+ }
164
+ const opname = guideOp.key$;
165
+ const method = guideOp.method;
163
166
  const kind = transform_1.OPKIND[opname];
164
- const [resform, resform_COMMENT] = resolveTransform(entityModel, op, kind, 'resform', pathdef);
165
- const [reqform, reqform_COMMENT] = resolveTransform(entityModel, op, kind, 'reqform', pathdef);
167
+ const existingOpModel = entityModel.op[opname];
168
+ const existingParam = existingOpModel?.param;
169
+ const [resform, resform_COMMENT] = resolveTransform(entityModel, guideOp, kind, 'resform', pathdef);
170
+ const [reqform, reqform_COMMENT] = resolveTransform(entityModel, guideOp, kind, 'reqform', pathdef);
166
171
  const opModel = {
167
- path: path.key$,
172
+ path: guidePath.key$,
168
173
  pathalt: [],
169
174
  method,
170
175
  kind,
171
- param: {},
176
+ param: existingParam || {},
172
177
  query: {},
173
178
  resform_COMMENT: 'derivation: ' + resform_COMMENT,
174
179
  resform,
@@ -178,22 +183,22 @@ const operationTransform = async function (ctx) {
178
183
  params: { '`$OPEN`': true }
179
184
  }
180
185
  };
181
- (0, transform_1.fixName)(opModel, op.key$);
186
+ (0, transform_1.fixName)(opModel, guideOp.key$);
182
187
  let params = [];
183
188
  // Params are in the path
184
- if (0 < path.params$.length) {
189
+ if (0 < guidePath.params$.length) {
185
190
  let sharedparams = (0, jostraca_1.getx)(pathdef, 'parameters?in=path') || [];
186
191
  params = sharedparams.concat((0, jostraca_1.getx)(pathdef[method], 'parameters?in=path') || []);
187
192
  // if (Array.isArray(params)) {
188
- params.reduce((a, p) => (paramBuilder(a, p, opModel, entityModel, pathdef, op, path, entity, model), a), opModel.param);
193
+ params.reduce((a, p) => (paramBuilder(a, p, opModel, entityModel, pathdef, guideOp, guidePath, guideEntity, model), a), opModel.param);
189
194
  //}
190
195
  }
191
196
  // Queries are after the ?
192
197
  let sharedqueries = (0, jostraca_1.getx)(pathdef, 'parameters?in!=path') || [];
193
198
  let queries = sharedqueries.concat((0, jostraca_1.getx)(pathdef[method], 'parameters?in!=path') || []);
194
- queries.reduce((a, p) => (queryBuilder(a, p, opModel, entityModel, pathdef, op, path, entity, model), a), opModel.query);
199
+ queries.reduce((a, p) => (queryBuilder(a, p, opModel, entityModel, pathdef, guideOp, guidePath, guideEntity, model), a), opModel.query);
195
200
  let pathalt = [];
196
- const pathselector = makePathSelector(path.key$); // , params)
201
+ const pathselector = makePathSelector(guidePath.key$);
197
202
  let before = false;
198
203
  if (null != entityModel.op[opname]) {
199
204
  pathalt = entityModel.op[opname].pathalt;
@@ -259,14 +264,33 @@ const operationTransform = async function (ctx) {
259
264
  const entityModel = apimodel.main.api.entity[guideEntity.key$];
260
265
  (0, jostraca_1.each)(guideEntity.path, (guidePath) => {
261
266
  const pathdef = def.paths[guidePath.key$];
262
- (0, jostraca_1.each)(guidePath.op, (op) => {
263
- const opbuild = opBuilder[op.key$];
267
+ (0, jostraca_1.each)(guidePath.op, (guideOp) => {
268
+ const opbuild = opBuilder[guideOp.key$];
264
269
  if (opbuild) {
265
- opbuild(entityModel, pathdef, op, guidePath, guideEntity, model);
270
+ opbuild(entityModel, pathdef, guideOp, guidePath, guideEntity, model);
266
271
  opcount++;
267
272
  }
268
273
  });
269
274
  });
275
+ // Full list of params only know after all operations built.
276
+ (0, jostraca_1.each)(entityModel.op, (op) => {
277
+ const params = Object.keys(op.param || {});
278
+ const pathalt = op.pathalt || [];
279
+ // if ('course' === entityModel.name) {
280
+ // console.log('PA', params, pathalt)
281
+ // }
282
+ for (const pa of pathalt) {
283
+ for (const p of params) {
284
+ pa[p] = pa[p] || false;
285
+ // if ('course' === entityModel.name) {
286
+ // console.log('PA-SET', p, pa)
287
+ // }
288
+ }
289
+ }
290
+ });
291
+ // if ('course' === entityModel.name) {
292
+ // console.dir(entityModel, { depth: null })
293
+ // }
270
294
  msg += guideEntity.name + '=' + opcount + ' ';
271
295
  });
272
296
  return { ok: true, msg };
@@ -281,10 +305,6 @@ function makePathSelector(path) {
281
305
  pn$++;
282
306
  }
283
307
  out.pn$ = pn$;
284
- // for (let p of params) {
285
- // setprop(out, p.name, getprop(out, p.name, false))
286
- // console.log('SP', p.name, out[p.name])
287
- // }
288
308
  return out;
289
309
  }
290
310
  //# sourceMappingURL=operation.js.map