@voxgig/apidef 2.0.0 → 2.1.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.
Files changed (48) hide show
  1. package/dist/apidef.js +14 -20
  2. package/dist/apidef.js.map +1 -1
  3. package/dist/builder/flow/flowHeuristic01.js +37 -9
  4. package/dist/builder/flow/flowHeuristic01.js.map +1 -1
  5. package/dist/builder/flow.js +3 -3
  6. package/dist/builder/flow.js.map +1 -1
  7. package/dist/guide/heuristic01.js +197 -117
  8. package/dist/guide/heuristic01.js.map +1 -1
  9. package/dist/guide.js +37 -11
  10. package/dist/guide.js.map +1 -1
  11. package/dist/parse.d.ts +2 -1
  12. package/dist/parse.js +81 -3
  13. package/dist/parse.js.map +1 -1
  14. package/dist/transform/clean.d.ts +3 -0
  15. package/dist/transform/clean.js +16 -0
  16. package/dist/transform/clean.js.map +1 -0
  17. package/dist/transform/entity.js +21 -2
  18. package/dist/transform/entity.js.map +1 -1
  19. package/dist/transform/field.js +24 -1
  20. package/dist/transform/field.js.map +1 -1
  21. package/dist/transform/operation.js +131 -47
  22. package/dist/transform/operation.js.map +1 -1
  23. package/dist/transform.d.ts +1 -8
  24. package/dist/transform.js +121 -95
  25. package/dist/transform.js.map +1 -1
  26. package/dist/tsconfig.tsbuildinfo +1 -1
  27. package/dist/types.d.ts +9 -0
  28. package/dist/types.js +3 -2
  29. package/dist/types.js.map +1 -1
  30. package/dist/utility.d.ts +7 -1
  31. package/dist/utility.js +85 -32
  32. package/dist/utility.js.map +1 -1
  33. package/model/apidef.jsonic +1 -0
  34. package/package.json +8 -9
  35. package/src/apidef.ts +23 -33
  36. package/src/builder/flow/flowHeuristic01.ts +44 -9
  37. package/src/builder/flow.ts +4 -3
  38. package/src/guide/heuristic01.ts +281 -124
  39. package/src/guide.ts +49 -14
  40. package/src/parse.ts +106 -4
  41. package/src/transform/clean.ts +28 -0
  42. package/src/transform/entity.ts +26 -3
  43. package/src/transform/field.ts +27 -1
  44. package/src/transform/operation.ts +203 -64
  45. package/src/transform.ts +29 -23
  46. package/src/types.ts +3 -2
  47. package/src/utility.ts +113 -1
  48. package/src/builder/flow/flowHeuristic01.ts~ +0 -45
@@ -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
@@ -6,29 +6,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.resolveGuide = resolveGuide;
7
7
  const node_path_1 = __importDefault(require("node:path"));
8
8
  const jostraca_1 = require("jostraca");
9
+ const struct_1 = require("@voxgig/struct");
9
10
  const heuristic01_1 = require("./guide/heuristic01");
11
+ const utility_1 = require("./utility");
12
+ // Log non-fatal wierdness.
13
+ const dlog = (0, utility_1.getdlog)('apidef', __filename);
10
14
  async function resolveGuide(ctx) {
11
- // console.log('GUIDE CTX', ctx)
12
- let guide = ctx.model.main.api.guide;
15
+ let baseguide = {};
16
+ let override = ctx.model.main.api.guide;
13
17
  if ('heuristic01' === ctx.opts.strategy) {
14
- guide = await (0, heuristic01_1.heuristic01)(ctx);
18
+ baseguide = await (0, heuristic01_1.heuristic01)(ctx);
15
19
  }
16
20
  else {
17
21
  throw new Error('Unknown guide strategy: ' + ctx.opts.strategy);
18
22
  }
23
+ // Override generated base guide with custom hints
24
+ let guide = (0, struct_1.merge)([{}, baseguide, override]);
25
+ // TODO: this is a hack!!!
26
+ // Instead, update @voxgig/model, so that builders can request a reload of the entire
27
+ // model. This allows builders to modify the model for later buidlers
28
+ // during a single generation pass.
19
29
  guide = cleanGuide(guide);
20
- ctx.model.main.api.guide = guide;
21
- const guideFile = node_path_1.default.join(ctx.opts.folder, (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) + 'guide.jsonic');
30
+ // TODO: FIX: sdk.jsonic should have final version of guide
31
+ if (ctx.model.main?.api) {
32
+ ctx.model.main.api.guide = guide;
33
+ }
34
+ else {
35
+ dlog('missing', 'ctx.model.main.api');
36
+ }
37
+ const guideFile = node_path_1.default.join(ctx.opts.folder, (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) + 'base-guide.jsonic');
22
38
  const guideBlocks = [
23
39
  '# Guide',
24
40
  '',
25
41
  'main: api: guide: { ',
26
- '',
27
42
  ];
28
- guideBlocks.push(...(0, jostraca_1.each)(guide.entity, (entity, entityname) => {
29
- guideBlocks.push(`\nentity: ${entityname}: path: {`);
43
+ guideBlocks.push(...(0, jostraca_1.each)(baseguide.entity, (entity, entityname) => {
44
+ guideBlocks.push(`
45
+ entity: ${entityname}: {`);
30
46
  (0, jostraca_1.each)(entity.path, (path, pathname) => {
31
- guideBlocks.push(` '${pathname}': op: {`);
47
+ guideBlocks.push(` path: '${pathname}': op: {`);
32
48
  (0, jostraca_1.each)(path.op, (op, opname) => {
33
49
  guideBlocks.push(` '${opname}': method: ${op.method}`);
34
50
  if (op.transform?.reqform) {
@@ -41,9 +57,9 @@ async function resolveGuide(ctx) {
41
57
  }));
42
58
  guideBlocks.push('}');
43
59
  const guideSrc = guideBlocks.join('\n');
44
- // console.log(guideSrc)
45
60
  return () => {
46
- (0, jostraca_1.File)({ name: node_path_1.default.basename(guideFile) }, () => (0, jostraca_1.Content)(guideSrc));
61
+ // Save base guide for reference
62
+ (0, jostraca_1.File)({ name: '../def/' + node_path_1.default.basename(guideFile) }, () => (0, jostraca_1.Content)(guideSrc));
47
63
  };
48
64
  }
49
65
  function cleanGuide(guide) {
@@ -51,7 +67,17 @@ function cleanGuide(guide) {
51
67
  control: guide.control,
52
68
  entity: {}
53
69
  };
70
+ const exclude_entity = guide.exclude?.entity?.split(',') || [];
71
+ const include_entity = guide.include?.entity?.split(',') || [];
54
72
  (0, jostraca_1.each)(guide.entity, (entity, name) => {
73
+ if (exclude_entity.includes(name)) {
74
+ return;
75
+ }
76
+ if (exclude_entity.includes('*')) {
77
+ if (!include_entity.includes(name)) {
78
+ return;
79
+ }
80
+ }
55
81
  let ent = clean.entity[name] = clean.entity[name] = { name, path: {} };
56
82
  (0, jostraca_1.each)(entity.path, (path, pathname) => {
57
83
  ent.path[pathname] = path;
package/dist/guide.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":";;;;;AAyFE,oCAAY;AAxFd,0DAA4B;AAE5B,uCAA8C;AAG9C,qDAAiD;AAGjD,KAAK,UAAU,YAAY,CAAC,GAAQ;IAClC,gCAAgC;IAEhC,IAAI,KAAK,GAAwB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IAEzD,IAAI,aAAa,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,MAAM,IAAA,yBAAW,EAAC,GAAG,CAAC,CAAA;IAChC,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAED,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,CAAA;IAEzB,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAA;IAEhC,MAAM,SAAS,GACb,mBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EACvB,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,cAAc,CAAC,CAAA;IAE5E,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,EAAE;QACF,sBAAsB;QACtB,EAAE;KACH,CAAA;IAGD,WAAW,CAAC,IAAI,CAAC,GAAG,IAAA,eAAI,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE;QAC5D,WAAW,CAAC,IAAI,CAAC,aAAa,UAAU,WAAW,CAAC,CAAA;QAEpD,IAAA,eAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;YACnC,WAAW,CAAC,IAAI,CAAC,MAAM,QAAQ,UAAU,CAAC,CAAA;YAE1C,IAAA,eAAI,EAAC,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE;gBAC3B,WAAW,CAAC,IAAI,CAAC,QAAQ,MAAM,cAAc,EAAE,CAAC,MAAM,EAAE,CAAC,CAAA;gBACzD,IAAI,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,CAAC;oBAC1B,WAAW,CAAC,IAAI,CACd,QAAQ,MAAM,0BAA0B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;gBACnF,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACvB,CAAC,CAAC,CAAC,CAAA;IAEH,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAErB,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEvC,wBAAwB;IAExB,OAAO,GAAG,EAAE;QACV,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,mBAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAO,EAAC,QAAQ,CAAC,CAAC,CAAA;IAEnE,CAAC,CAAA;AACH,CAAC;AAGD,SAAS,UAAU,CAAC,KAA0B;IAC5C,MAAM,KAAK,GAAwB;QACjC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,MAAM,EAAE,EAAE;KACX,CAAA;IAED,IAAA,eAAI,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,MAAW,EAAE,IAAY,EAAE,EAAE;QAC/C,IAAI,GAAG,GAAQ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;QAE3E,IAAA,eAAI,EAAC,MAAM,CAAC,IAAI,EAAE,CAAC,IAAS,EAAE,QAAgB,EAAE,EAAE;YAChD,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAA;QAC3B,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"guide.js","sourceRoot":"","sources":["../src/guide.ts"],"names":[],"mappings":"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"}
package/dist/parse.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  declare function parse(kind: string, source: any, meta?: any): Promise<any>;
2
- export { parse };
2
+ declare function rewrite(def: any): any;
3
+ export { parse, rewrite, };
package/dist/parse.js CHANGED
@@ -2,7 +2,10 @@
2
2
  /* Copyright (c) 2024 Voxgig, MIT License */
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.parse = parse;
5
+ exports.rewrite = rewrite;
5
6
  const openapi_core_1 = require("@redocly/openapi-core");
7
+ const jostraca_1 = require("jostraca");
8
+ const utility_1 = require("./utility");
6
9
  // Parse an API definition source into a JSON sructure.
7
10
  async function parse(kind, source, meta) {
8
11
  if ('OpenAPI' === kind) {
@@ -13,14 +16,89 @@ async function parse(kind, source, meta) {
13
16
  }
14
17
  }
15
18
  async function parseOpenAPI(source, meta) {
16
- const config = await (0, openapi_core_1.createConfig)(meta?.config || {});
17
- let bundle;
18
- bundle = await (0, openapi_core_1.bundleFromString)({
19
+ const base = meta?.config || {};
20
+ const config = await (0, openapi_core_1.createConfig)(base);
21
+ // First pass: parse without dereferencing to preserve $refs
22
+ const bundleWithRefs = await (0, openapi_core_1.bundleFromString)({
19
23
  source,
20
24
  config,
25
+ dereference: false,
26
+ });
27
+ // Walk the tree and add x-ref properties
28
+ const seen = new WeakSet();
29
+ let refCount = 0;
30
+ function addXRefs(obj, path = '') {
31
+ if (!obj || typeof obj !== 'object' || seen.has(obj))
32
+ return;
33
+ seen.add(obj);
34
+ if (Array.isArray(obj)) {
35
+ obj.forEach((item, index) => addXRefs(item, `${path}[${index}]`));
36
+ }
37
+ else {
38
+ // Check for $ref property
39
+ if (obj.$ref && typeof obj.$ref === 'string') {
40
+ obj['x-ref'] = obj.$ref;
41
+ refCount++;
42
+ }
43
+ // Recursively process all properties
44
+ for (const [key, value] of Object.entries(obj)) {
45
+ if (value && typeof value === 'object') {
46
+ addXRefs(value, path ? `${path}.${key}` : key);
47
+ }
48
+ }
49
+ }
50
+ }
51
+ addXRefs(bundleWithRefs.bundle.parsed);
52
+ // Serialize back to string with x-refs preserved
53
+ const sourceWithXRefs = JSON.stringify(bundleWithRefs.bundle.parsed);
54
+ // Second pass: parse with dereferencing
55
+ const bundle = await (0, openapi_core_1.bundleFromString)({
56
+ source: sourceWithXRefs,
57
+ config,
21
58
  dereference: true,
22
59
  });
23
60
  const def = bundle.bundle.parsed;
24
61
  return def;
25
62
  }
63
+ // Make consistent changes to support semantic entities.
64
+ function rewrite(def) {
65
+ const paths = def.paths;
66
+ (0, jostraca_1.each)(paths, (path) => {
67
+ (0, jostraca_1.each)(path.parameters, (param) => {
68
+ let new_param = param.name;
69
+ let new_path = path.key$;
70
+ // Rename param if nane is "id", and not the final param.
71
+ // Rewrite /foo/{id}/bar as /foo/{foo_id}/bar.
72
+ // Avoids ambiguity with bar id.
73
+ if (param.name.match(/^id$/i)) {
74
+ let m = path.key$.match(/\/([^\/]+)\/{id\}\/[^\/]/);
75
+ if (m) {
76
+ const parent = (0, utility_1.depluralize)((0, jostraca_1.snakify)(m[1]));
77
+ new_param = `${parent}_id`;
78
+ new_path = path.key$.replace('{id}', '{' + new_param + '}');
79
+ }
80
+ }
81
+ else {
82
+ new_param = (0, utility_1.depluralize)((0, jostraca_1.snakify)(param.name));
83
+ new_path = path.key$.replace('{' + param.name + '}', '{' + new_param + '}');
84
+ }
85
+ let pathdef = paths[path.key$];
86
+ delete paths[path.key$];
87
+ paths[new_path] = pathdef;
88
+ path.key$ = new_path;
89
+ param.name = new_param;
90
+ });
91
+ });
92
+ sortkeys(def, 'paths');
93
+ sortkeys(def, 'components');
94
+ return def;
95
+ }
96
+ function sortkeys(obj, prop) {
97
+ const sorted = {};
98
+ const sorted_keys = Object.keys(obj[prop]).sort();
99
+ for (let sk of sorted_keys) {
100
+ sorted[sk] = obj[prop][sk];
101
+ }
102
+ obj[prop] = sorted;
103
+ }
26
104
  //# sourceMappingURL=parse.js.map
package/dist/parse.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";AAAA,4CAA4C;;AAkC1C,sBAAK;AAhCP,wDAAsE;AAItE,uDAAuD;AACvD,KAAK,UAAU,KAAK,CAAC,IAAY,EAAE,MAAW,EAAE,IAAU;IACxD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAC,CAAA;IAChE,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,IAAU;IACjD,MAAM,MAAM,GAAG,MAAM,IAAA,2BAAY,EAAC,IAAI,EAAE,MAAM,IAAI,EAAE,CAAC,CAAA;IACrD,IAAI,MAAM,CAAA;IAEV,MAAM,GAAG,MAAM,IAAA,+BAAgB,EAAC;QAC9B,MAAM;QACN,MAAM;QACN,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;IAEhC,OAAO,GAAG,CAAA;AACZ,CAAC"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";AAAA,4CAA4C;;AAuI1C,sBAAK;AACL,0BAAO;AAtIT,wDAAsE;AAEtE,uCAAwC;AAGxC,uCAAuC;AAGvC,uDAAuD;AACvD,KAAK,UAAU,KAAK,CAAC,IAAY,EAAE,MAAW,EAAE,IAAU;IACxD,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QACvB,OAAO,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,sCAAsC,GAAG,IAAI,CAAC,CAAA;IAChE,CAAC;AACH,CAAC;AAGD,KAAK,UAAU,YAAY,CAAC,MAAW,EAAE,IAAU;IACjD,MAAM,IAAI,GAAG,IAAI,EAAE,MAAM,IAAI,EAAE,CAAA;IAC/B,MAAM,MAAM,GAAQ,MAAM,IAAA,2BAAY,EAAC,IAAI,CAAC,CAAA;IAE5C,4DAA4D;IAC5D,MAAM,cAAc,GAAG,MAAM,IAAA,+BAAgB,EAAC;QAC5C,MAAM;QACN,MAAM;QACN,WAAW,EAAE,KAAK;KACnB,CAAC,CAAA;IAEF,yCAAyC;IACzC,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAA;IAC1B,IAAI,QAAQ,GAAG,CAAC,CAAA;IAEhB,SAAS,QAAQ,CAAC,GAAQ,EAAE,OAAe,EAAE;QAC3C,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAM;QAC5D,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;QAEb,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAA;QACnE,CAAC;aAAM,CAAC;YACN,0BAA0B;YAC1B,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7C,GAAG,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,IAAI,CAAA;gBACvB,QAAQ,EAAE,CAAA;YACZ,CAAC;YAED,qCAAqC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/C,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACvC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;gBAChD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEtC,iDAAiD;IACjD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAEpE,wCAAwC;IACxC,MAAM,MAAM,GAAG,MAAM,IAAA,+BAAgB,EAAC;QACpC,MAAM,EAAE,eAAe;QACvB,MAAM;QACN,WAAW,EAAE,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAA;IAEhC,OAAO,GAAG,CAAA;AACZ,CAAC;AAQD,wDAAwD;AACxD,SAAS,OAAO,CAAC,GAAQ;IACvB,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAA;IACvB,IAAA,eAAI,EAAC,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE;QACnB,IAAA,eAAI,EAAC,IAAI,CAAC,UAAU,EAAE,CAAC,KAAU,EAAE,EAAE;YAEnC,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAA;YAC1B,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;YAExB,yDAAyD;YACzD,8CAA8C;YAC9C,gCAAgC;YAChC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAA;gBAEnD,IAAI,CAAC,EAAE,CAAC;oBACN,MAAM,MAAM,GAAG,IAAA,qBAAW,EAAC,IAAA,kBAAO,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oBACzC,SAAS,GAAG,GAAG,MAAM,KAAK,CAAA;oBAC1B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,CAAA;gBAC7D,CAAC;YACH,CAAC;iBACI,CAAC;gBACJ,SAAS,GAAG,IAAA,qBAAW,EAAC,IAAA,kBAAO,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC5C,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,GAAG,CAAC,CAAA;YAC7E,CAAC;YAED,IAAI,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YAEvB,KAAK,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAA;YACzB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;YAEpB,KAAK,CAAC,IAAI,GAAG,SAAS,CAAA;QACxB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAGF,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAA;IACtB,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAE3B,OAAO,GAAG,CAAA;AACZ,CAAC;AAGD,SAAS,QAAQ,CAAC,GAAQ,EAAE,IAAY;IACtC,MAAM,MAAM,GAAQ,EAAE,CAAA;IACtB,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;IACjD,KAAK,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;QAC3B,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAA;IAC5B,CAAC;IACD,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { TransformResult } from '../transform';
2
+ declare const cleanTransform: (ctx: any) => Promise<TransformResult>;
3
+ export { cleanTransform };
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cleanTransform = void 0;
4
+ const struct_1 = require("@voxgig/struct");
5
+ const cleanTransform = async function (ctx) {
6
+ const { apimodel } = ctx;
7
+ (0, struct_1.walk)(apimodel, (k, v) => {
8
+ if ('string' === typeof k && k.includes('$')) {
9
+ return undefined;
10
+ }
11
+ return v;
12
+ });
13
+ return { ok: true, msg: 'clean' };
14
+ };
15
+ exports.cleanTransform = cleanTransform;
16
+ //# sourceMappingURL=clean.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clean.js","sourceRoot":"","sources":["../../src/transform/clean.ts"],"names":[],"mappings":";;;AAKA,2CAAqC;AAIrC,MAAM,cAAc,GAAG,KAAK,WAC1B,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,GAAG,CAAA;IAExB,IAAA,aAAI,EAAC,QAAQ,EAAE,CAAC,CAAM,EAAE,CAAM,EAAE,EAAE;QAChC,IAAI,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7C,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,OAAO,CAAC,CAAA;IACV,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC,CAAA;AAIC,wCAAc"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.entityTransform = void 0;
4
4
  const jostraca_1 = require("jostraca");
5
5
  const transform_1 = require("../transform");
6
+ const utility_1 = require("../utility");
6
7
  const entityTransform = async function (ctx) {
7
8
  const { apimodel, model, def } = ctx;
8
9
  const guide = model.main.api.guide;
@@ -17,10 +18,13 @@ const entityTransform = async function (ctx) {
17
18
  id: {
18
19
  name: 'id',
19
20
  field: 'id',
20
- }
21
+ },
22
+ ancestors: []
21
23
  };
22
24
  (0, transform_1.fixName)(entityModel, guideEntity.key$);
23
- (0, jostraca_1.each)(guideEntity.path, (guidePath) => {
25
+ let ancestors = [];
26
+ let ancestorsDone = false;
27
+ (0, jostraca_1.each)(guideEntity.path, (guidePath, pathStr) => {
24
28
  const path = guidePath.key$;
25
29
  const pathdef = def.paths[path];
26
30
  if (null == pathdef) {
@@ -32,7 +36,22 @@ const entityTransform = async function (ctx) {
32
36
  guidePath.params$ = guidePath.parts$
33
37
  .filter((p) => p.startsWith('{'))
34
38
  .map((p) => p.substring(1, p.length - 1));
39
+ if (!ancestorsDone) {
40
+ // Find all path sections matching /foo/{..param..} and build ancestors array
41
+ const paramRegex = /\/([a-zA-Z0-9_-]+)\/\{[a-zA-Z0-9_-]+\}/g;
42
+ let m;
43
+ while ((m = paramRegex.exec(pathStr)) !== null) {
44
+ // Skip if this is the last section (the entity itself)
45
+ const remainingPath = pathStr.substring(m.index + m[0].length);
46
+ if (remainingPath.length > 0) {
47
+ const ancestorName = (0, utility_1.depluralize)((0, jostraca_1.snakify)(m[1]));
48
+ ancestors.push(ancestorName);
49
+ }
50
+ }
51
+ ancestorsDone = true;
52
+ }
35
53
  });
54
+ entityModel.ancestors = ancestors;
36
55
  msg += guideEntity.name + ' ';
37
56
  });
38
57
  return { ok: true, msg };
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":";;;AAEA,uCAA+B;AAI/B,4CAAsC;AAGtC,MAAM,eAAe,GAAc,KAAK,WACtC,GAAQ;IAMR,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IAElC,IAAI,GAAG,GAAG,EAAE,CAAA;IAEZ,IAAA,eAAI,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,WAAgB,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAA;QACnC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAA;QAE1D,MAAM,WAAW,GAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG;YAC9D,EAAE,EAAE,EAAE;YACN,KAAK,EAAE,EAAE;YACT,GAAG,EAAE,EAAE;YACP,EAAE,EAAE;gBACF,IAAI,EAAE,IAAI;gBACV,KAAK,EAAE,IAAI;aACZ;SACF,CAAA;QAED,IAAA,mBAAO,EAAC,WAAW,EAAE,WAAW,CAAC,IAAI,CAAC,CAAA;QAEtC,IAAA,eAAI,EAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAAc,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAE/B,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;gBACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,GAAG,IAAI;oBAClD,YAAY,GAAG,WAAW,CAAC,IAAI,GAAG,GAAG,CAAC,CAAA;YAC1C,CAAC;YAED,wBAAwB;YACxB,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YAClC,SAAS,CAAC,OAAO,GAAG,SAAS,CAAC,MAAM;iBACjC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;iBACxC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAA;QAErD,CAAC,CAAC,CAAA;QAEF,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,GAAG,CAAA;IAC/B,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC,CAAA;AAIC,0CAAe"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/transform/entity.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,8 @@ function fieldbuild(entityModel, pathdef, op, path, entity, model) {
42
42
  const field = (entityModel.field[property.key$] = entityModel.field[property.key$] || {});
43
43
  field.name = property.key$;
44
44
  (0, transform_1.fixName)(field, field.name);
45
- field.type = property.type;
45
+ // field.type = property.type
46
+ resolveFieldType(entityModel, field, property);
46
47
  (0, transform_1.fixName)(field, field.type, 'type');
47
48
  field.short = property.description;
48
49
  fieldCount++;
@@ -60,4 +61,26 @@ function fieldbuild(entityModel, pathdef, op, path, entity, model) {
60
61
  }
61
62
  return fieldCount;
62
63
  }
64
+ // Resovles a heuristic "primary" type which subsumes the more detailed type.
65
+ // The primary type is only: string, number, boolean, null, object, array
66
+ function resolveFieldType(entity, field, property) {
67
+ const ptt = typeof property.type;
68
+ if ('string' === ptt) {
69
+ field.type = property.type;
70
+ }
71
+ else if (Array.isArray(property.type)) {
72
+ field.type =
73
+ (property.type.filter((t) => 'null' != t).sort()[0]) ||
74
+ property.type[0] ||
75
+ 'string';
76
+ field.typelist = property.type;
77
+ }
78
+ else if ('undefined' === ptt && null != property.enum) {
79
+ field.type = 'string';
80
+ field.enum = property.enum;
81
+ }
82
+ else {
83
+ throw new Error(`APIDEF: Unsupported property type: ${property.type} (${entity.name}.${field.name})`);
84
+ }
85
+ }
63
86
  //# sourceMappingURL=field.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":";;;AAEA,uCAAqC;AAIrC,4CAAsC;AAItC,MAAM,cAAc,GAAc,KAAK,WACrC,GAAQ;IAMR,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IACpC,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAA;IAElC,IAAI,GAAG,GAAG,UAAU,CAAA;IAEpB,IAAA,eAAI,EAAC,KAAK,CAAC,MAAM,EAAE,CAAC,WAAgB,EAAE,EAAE;QACtC,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAA;QACnC,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;QAExD,IAAI,UAAU,GAAG,CAAC,CAAA;QAClB,IAAA,eAAI,EAAC,WAAW,CAAC,IAAI,EAAE,CAAC,SAAc,EAAE,EAAE;YACxC,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAA;YAC3B,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;YAE/B,IAAA,eAAI,EAAC,SAAS,CAAC,EAAE,EAAE,CAAC,EAAO,EAAE,EAAE;gBAC7B,MAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAA;gBAEtB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,UAAU,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;gBAClF,CAAC;YAEH,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,GAAG,IAAI,WAAW,CAAC,IAAI,GAAG,GAAG,GAAG,UAAU,GAAG,GAAG,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAA;AAC1B,CAAC,CAAA;AAoDC,wCAAc;AAjDhB,SAAS,UAAU,CACjB,WAAgB,EAAE,OAAY,EAAE,EAAO,EAAE,IAAS,EAAE,MAAW,EAAE,KAAU;IAE3E,IAAI,UAAU,GAAG,CAAC,CAAA;IAClB,IAAI,SAAS,GAAG,IAAA,eAAI,EAAC,OAAO,CAAC,GAAG,EAAE,iDAAiD,CAAC,CAAA;IAEpF,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAA;QAC7B,CAAC;aACI,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;YAC9B,SAAS,GAAG,CAAC,SAAS,CAAC,CAAA;QACzB,CAAC;IACH,CAAC;IAED,IAAA,eAAI,EAAC,SAAS,EAAE,CAAC,QAAa,EAAE,EAAE;QAChC,IAAA,eAAI,EAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,QAAa,EAAE,EAAE;YAC1C,MAAM,KAAK,GACT,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAA;YAE7E,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC1B,IAAA,mBAAO,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;YAE1B,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YAC1B,IAAA,mBAAO,EAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;YAElC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,WAAW,CAAA;YAElC,UAAU,EAAE,CAAA;QACd,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,2CAA2C;IAC3C,IAAI,MAAM,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAA;QAC1B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAA;QACzC,IAAI,CAAC,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,CAAC,EAAE,CAAC;gBACvF,WAAW,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC"}
1
+ {"version":3,"file":"field.js","sourceRoot":"","sources":["../../src/transform/field.ts"],"names":[],"mappings":"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"}