@voxgig/apidef 1.8.0 → 2.0.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.d.ts +3 -29
- package/dist/apidef.js +84 -186
- package/dist/apidef.js.map +1 -1
- package/dist/builder/entity/apiEntity.d.ts +3 -0
- package/dist/builder/entity/apiEntity.js +51 -0
- package/dist/builder/entity/apiEntity.js.map +1 -0
- package/dist/builder/entity/def.d.ts +3 -0
- package/dist/builder/entity/def.js +19 -0
- package/dist/builder/entity/def.js.map +1 -0
- package/dist/builder/entity.d.ts +2 -0
- package/dist/builder/entity.js +30 -0
- package/dist/builder/entity.js.map +1 -0
- package/dist/builder/flow/flowHeuristic01.d.ts +2 -0
- package/dist/builder/flow/flowHeuristic01.js +125 -0
- package/dist/builder/flow/flowHeuristic01.js.map +1 -0
- package/dist/builder/flow.d.ts +2 -0
- package/dist/builder/flow.js +41 -0
- package/dist/builder/flow.js.map +1 -0
- package/dist/guide/heuristic01.d.ts +2 -0
- package/dist/guide/heuristic01.js +178 -0
- package/dist/guide/heuristic01.js.map +1 -0
- package/dist/guide.d.ts +2 -0
- package/dist/guide.js +62 -0
- package/dist/guide.js.map +1 -0
- package/dist/parse.d.ts +1 -1
- package/dist/parse.js +5 -4
- package/dist/parse.js.map +1 -1
- package/dist/resolver.d.ts +2 -0
- package/dist/resolver.js +62 -0
- package/dist/resolver.js.map +1 -0
- package/dist/transform/entity.js +4 -2
- package/dist/transform/entity.js.map +1 -1
- package/dist/transform/field.js +4 -84
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/operation.d.ts +2 -2
- package/dist/transform/operation.js +22 -11
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/top.d.ts +2 -2
- package/dist/transform/top.js +5 -4
- package/dist/transform/top.js.map +1 -1
- package/dist/transform.d.ts +1 -1
- package/dist/transform.js +21 -10
- package/dist/transform.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +682 -0
- package/dist/types.js +38 -0
- package/dist/types.js.map +1 -0
- package/dist/utility.d.ts +4 -0
- package/dist/utility.js +59 -0
- package/dist/utility.js.map +1 -0
- package/model/apidef.jsonic +28 -24
- package/package.json +11 -9
- package/src/apidef.ts +117 -263
- package/src/builder/entity/apiEntity.ts +88 -0
- package/src/builder/entity/def.ts +44 -0
- package/src/builder/entity.ts +54 -0
- package/src/builder/flow/flowHeuristic01.ts +165 -0
- package/src/builder/flow/flowHeuristic01.ts~ +45 -0
- package/src/builder/flow.ts +60 -0
- package/src/guide/heuristic01.ts +225 -0
- package/src/guide.ts +91 -0
- package/src/parse.ts +6 -4
- package/src/resolver.ts +91 -0
- package/src/transform/entity.ts +10 -7
- package/src/transform/field.ts +9 -92
- package/src/transform/operation.ts +39 -25
- package/src/transform/top.ts +11 -9
- package/src/transform.ts +23 -11
- package/src/types.ts +88 -0
- package/src/utility.ts +83 -0
- package/dist/transform/manual.d.ts +0 -3
- package/dist/transform/manual.js +0 -12
- package/dist/transform/manual.js.map +0 -1
- package/src/transform/manual.ts +0 -29
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flowHeuristic01 = flowHeuristic01;
|
|
4
|
+
const struct_1 = require("@voxgig/struct");
|
|
5
|
+
const jostraca_1 = require("jostraca");
|
|
6
|
+
async function flowHeuristic01(ctx) {
|
|
7
|
+
let entity = ctx.model.main.api.guide.entity;
|
|
8
|
+
const flows = [];
|
|
9
|
+
(0, jostraca_1.each)(entity, (entity) => {
|
|
10
|
+
flows.push(resolveBasicEntityFlow(ctx, entity));
|
|
11
|
+
});
|
|
12
|
+
return flows;
|
|
13
|
+
}
|
|
14
|
+
function resolveBasicEntityFlow(ctx, entity) {
|
|
15
|
+
const { apimodel, model } = ctx;
|
|
16
|
+
const apiEntity = apimodel.main.api.entity[entity.name];
|
|
17
|
+
const flow = {
|
|
18
|
+
name: 'Basic' + apiEntity.Name
|
|
19
|
+
};
|
|
20
|
+
const refs = [
|
|
21
|
+
`${apiEntity.name}01`,
|
|
22
|
+
`${apiEntity.name}02`,
|
|
23
|
+
`${apiEntity.name}03`,
|
|
24
|
+
];
|
|
25
|
+
const idmap = refs.reduce((a, ref) => (a[ref] = ref.toUpperCase(), a), {});
|
|
26
|
+
flow.model = {
|
|
27
|
+
name: flow.Name,
|
|
28
|
+
param: {
|
|
29
|
+
[`${model.NAME}_TEST_${apiEntity.NAME}_ENTID`]: idmap
|
|
30
|
+
},
|
|
31
|
+
test: { entity: { [apiEntity.Name]: {} } },
|
|
32
|
+
step: []
|
|
33
|
+
};
|
|
34
|
+
(0, jostraca_1.names)(flow, flow.name);
|
|
35
|
+
const data = flow.model.test.entity[apiEntity.Name];
|
|
36
|
+
refs.map((ref, i) => {
|
|
37
|
+
const id = idmap[ref];
|
|
38
|
+
const ent = data[id] = {};
|
|
39
|
+
let num = (i * (0, struct_1.size)(apiEntity.field) * 10);
|
|
40
|
+
(0, jostraca_1.each)(apiEntity.field, (field) => {
|
|
41
|
+
ent[field.name] =
|
|
42
|
+
'number' === field.type ? num :
|
|
43
|
+
'boolean' === field.type ? 0 === num % 2 :
|
|
44
|
+
'object' === field.type ? {} :
|
|
45
|
+
'array' === field.type ? [] :
|
|
46
|
+
's' + (num.toString(16));
|
|
47
|
+
num++;
|
|
48
|
+
});
|
|
49
|
+
ent.id = id;
|
|
50
|
+
});
|
|
51
|
+
const steps = flow.model.step;
|
|
52
|
+
let num = 0;
|
|
53
|
+
let name;
|
|
54
|
+
if (apiEntity.op.load) {
|
|
55
|
+
name = `load_${apiEntity.name}${num}`;
|
|
56
|
+
steps.push({
|
|
57
|
+
name,
|
|
58
|
+
kind: 'entity',
|
|
59
|
+
entity: `${apiEntity.name}`,
|
|
60
|
+
action: 'load',
|
|
61
|
+
match: {
|
|
62
|
+
id: `\`dm$=p.${model.NAME}_TEST_${apiEntity.NAME}_ENTID.${apiEntity.name}01\``
|
|
63
|
+
},
|
|
64
|
+
valid: {
|
|
65
|
+
'`$OPEN`': true,
|
|
66
|
+
id: `\`dm$=s.${name}.match.id\``
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
if (apiEntity.op.update && apiEntity.op.load) {
|
|
71
|
+
num++;
|
|
72
|
+
name = `update_${apiEntity.name}${num}`;
|
|
73
|
+
const id = idmap[`${apiEntity.name}01`];
|
|
74
|
+
const loadref = `load_${apiEntity.name}${num - 1}`;
|
|
75
|
+
const reqdata = makeUpdateData(name, apiEntity, flow, id);
|
|
76
|
+
const valid = makeUpdateValid(name, apiEntity, flow, id, reqdata);
|
|
77
|
+
steps.push({
|
|
78
|
+
name,
|
|
79
|
+
ref: loadref,
|
|
80
|
+
action: 'update',
|
|
81
|
+
reqdata,
|
|
82
|
+
valid: {
|
|
83
|
+
'`$OPEN`': true,
|
|
84
|
+
id: `\`dm$=s.${loadref}.match.id\``,
|
|
85
|
+
...valid
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
num++;
|
|
89
|
+
name = `load_${apiEntity.name}${num}`;
|
|
90
|
+
steps.push({
|
|
91
|
+
name,
|
|
92
|
+
kind: 'entity',
|
|
93
|
+
entity: `${apiEntity.name}`,
|
|
94
|
+
action: 'load',
|
|
95
|
+
match: {
|
|
96
|
+
id: `\`dm$=p.${model.NAME}_TEST_${apiEntity.NAME}_ENTID.${apiEntity.name}01\``
|
|
97
|
+
},
|
|
98
|
+
valid: {
|
|
99
|
+
'`$OPEN`': true,
|
|
100
|
+
id: `\`dm$=s.${loadref}.match.id\``,
|
|
101
|
+
...valid
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
return flow;
|
|
106
|
+
}
|
|
107
|
+
function makeUpdateData(name, apiEntity, flow, id) {
|
|
108
|
+
const ud = {};
|
|
109
|
+
const data = flow.model.test.entity[apiEntity.Name];
|
|
110
|
+
const dataFields = (0, jostraca_1.each)(apiEntity.field).filter(f => 'id' !== f.name && !f.name.includes('_id'));
|
|
111
|
+
const stringFields = (0, jostraca_1.each)(dataFields).filter(f => 'string' === f.type);
|
|
112
|
+
if (0 < (0, struct_1.size)(stringFields)) {
|
|
113
|
+
const f = stringFields[0];
|
|
114
|
+
ud[f.name] = data[id][f.name] + '-`$WHEN`';
|
|
115
|
+
}
|
|
116
|
+
return ud;
|
|
117
|
+
}
|
|
118
|
+
function makeUpdateValid(name, apiEntity, flow, id, reqdata) {
|
|
119
|
+
const vd = {};
|
|
120
|
+
(0, jostraca_1.each)(reqdata, (n) => {
|
|
121
|
+
vd[n.key$] = `\`dm$=s.${name}.reqdata.${n.key$}\``;
|
|
122
|
+
});
|
|
123
|
+
return vd;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=flowHeuristic01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowHeuristic01.js","sourceRoot":"","sources":["../../../src/builder/flow/flowHeuristic01.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.makeFlowBuilder = makeFlowBuilder;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const jostraca_1 = require("jostraca");
|
|
9
|
+
const utility_1 = require("../utility");
|
|
10
|
+
const flowHeuristic01_1 = require("./flow/flowHeuristic01");
|
|
11
|
+
async function makeFlowBuilder(ctx) {
|
|
12
|
+
let flows = [];
|
|
13
|
+
if ('heuristic01' === ctx.opts.strategy) {
|
|
14
|
+
flows = await (0, flowHeuristic01_1.flowHeuristic01)(ctx);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error('Unknown guide strategy: ' + ctx.opts.strategy);
|
|
18
|
+
}
|
|
19
|
+
return function flowBuilder() {
|
|
20
|
+
(0, jostraca_1.Folder)({ name: 'flow' }, () => {
|
|
21
|
+
const barrel = [
|
|
22
|
+
'# Flows\n'
|
|
23
|
+
];
|
|
24
|
+
(0, jostraca_1.each)(flows, (flow) => {
|
|
25
|
+
let flowfile = node_path_1.default.join(ctx.opts.folder, 'flow', (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) +
|
|
26
|
+
flow.Name + 'Flow.jsonic');
|
|
27
|
+
let flowModelSrc = (0, utility_1.formatJsonSrc)(JSON.stringify(flow.model, null, 2));
|
|
28
|
+
let flowsrc = `# ${flow.Name}Flow
|
|
29
|
+
|
|
30
|
+
main: sdk: flow: ${flow.Name}Flow:
|
|
31
|
+
` + flowModelSrc;
|
|
32
|
+
barrel.push(`@"${node_path_1.default.basename(flowfile)}"`);
|
|
33
|
+
(0, jostraca_1.File)({ name: node_path_1.default.basename(flowfile) }, () => (0, jostraca_1.Content)(flowsrc));
|
|
34
|
+
});
|
|
35
|
+
(0, jostraca_1.File)({
|
|
36
|
+
name: (null == ctx.opts.outprefix ? '' : ctx.opts.outprefix) + 'flow-index.jsonic'
|
|
37
|
+
}, () => (0, jostraca_1.Content)(barrel.join('\n')));
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=flow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/builder/flow.ts"],"names":[],"mappings":";;;;;AA0DE,0CAAe;AAzDjB,0DAA4B;AAE5B,uCAAsD;AAEtD,wCAEmB;AAGnB,4DAAwD;AAGxD,KAAK,UAAU,eAAe,CAAC,GAAQ;IACrC,IAAI,KAAK,GAAU,EAAE,CAAA;IAErB,IAAI,aAAa,KAAK,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACxC,KAAK,GAAG,MAAM,IAAA,iCAAe,EAAC,GAAG,CAAC,CAAA;IACpC,CAAC;SACI,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,0BAA0B,GAAG,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,SAAS,WAAW;QAEzB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;YAC5B,MAAM,MAAM,GAAG;gBACb,WAAW;aACZ,CAAA;YAED,IAAA,eAAI,EAAC,KAAK,EAAE,CAAC,IAAS,EAAE,EAAE;gBACxB,IAAI,QAAQ,GACV,mBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAC/B,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;oBACtD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,CAAA;gBAE9B,IAAI,YAAY,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;gBAErE,IAAI,OAAO,GAAG,KAAK,IAAI,CAAC,IAAI;;mBAEjB,IAAI,CAAC,IAAI;CAC3B,GAAG,YAAY,CAAA;gBAER,MAAM,CAAC,IAAI,CAAC,KAAK,mBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;gBAE5C,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,mBAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAO,EAAC,OAAO,CAAC,CAAC,CAAA;YACjE,CAAC,CAAC,CAAA;YAEF,IAAA,eAAI,EAAC;gBACH,IAAI,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,mBAAmB;aACnF,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAO,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACtC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.heuristic01 = heuristic01;
|
|
4
|
+
const jostraca_1 = require("jostraca");
|
|
5
|
+
async function heuristic01(ctx) {
|
|
6
|
+
let guide = ctx.model.main.api.guide;
|
|
7
|
+
const entityDescs = resolveEntityDescs(ctx);
|
|
8
|
+
// console.log('entityDescs')
|
|
9
|
+
// console.dir(entityDescs, { depth: null })
|
|
10
|
+
guide = {
|
|
11
|
+
control: guide.control,
|
|
12
|
+
entity: entityDescs,
|
|
13
|
+
};
|
|
14
|
+
return guide;
|
|
15
|
+
}
|
|
16
|
+
const METHOD_IDOP = {
|
|
17
|
+
get: 'load',
|
|
18
|
+
post: 'create',
|
|
19
|
+
put: 'update',
|
|
20
|
+
patch: 'update',
|
|
21
|
+
delete: 'remove',
|
|
22
|
+
};
|
|
23
|
+
function resolveEntityDescs(ctx) {
|
|
24
|
+
const entityDescs = {};
|
|
25
|
+
const paths = ctx.def.paths;
|
|
26
|
+
(0, jostraca_1.each)(paths, (pathdef, pathname) => {
|
|
27
|
+
// look for rightmmost /entname/{entid}
|
|
28
|
+
const m = pathname.match(/\/([a-zA-Z0-1_-]+)\/\{([a-zA-Z0-1_-]+)\}$/);
|
|
29
|
+
if (m) {
|
|
30
|
+
let origentname = (0, jostraca_1.snakify)(m[1]);
|
|
31
|
+
let entname = depluralize(origentname);
|
|
32
|
+
let entdesc = (entityDescs[entname] = entityDescs[entname] || { name: entname });
|
|
33
|
+
entdesc.plural = origentname;
|
|
34
|
+
(0, jostraca_1.names)(entdesc, entname);
|
|
35
|
+
entdesc.alias = entdesc.alias || {};
|
|
36
|
+
if ('id' != m[2]) {
|
|
37
|
+
entdesc.alias.id = m[2];
|
|
38
|
+
entdesc.alias[m[2]] = 'id';
|
|
39
|
+
}
|
|
40
|
+
entdesc.path = (entdesc.path || {});
|
|
41
|
+
const op = {};
|
|
42
|
+
entdesc.path[pathname] = { op };
|
|
43
|
+
(0, jostraca_1.each)(pathdef, (mdef, method) => {
|
|
44
|
+
const opname = METHOD_IDOP[method];
|
|
45
|
+
if (null == opname)
|
|
46
|
+
return;
|
|
47
|
+
const transform = {
|
|
48
|
+
// reqform: '`reqdata`',
|
|
49
|
+
// resform: '`body`',
|
|
50
|
+
};
|
|
51
|
+
const resokdef = mdef.responses[200] || mdef.responses[201];
|
|
52
|
+
const resbody = resokdef?.content?.['application/json']?.schema;
|
|
53
|
+
if (resbody) {
|
|
54
|
+
if (resbody[origentname]) {
|
|
55
|
+
// TODO: use quotes when @voxgig/struct updated to support them
|
|
56
|
+
// transform.resform = '`body."'+origentname+'"`'
|
|
57
|
+
transform.resform = '`body.' + origentname + '`';
|
|
58
|
+
}
|
|
59
|
+
else if (resbody[entname]) {
|
|
60
|
+
transform.resform = '`body.' + entname + '`';
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const reqdef = mdef.requestBody?.content?.['application/json']?.schema?.properties;
|
|
64
|
+
if (reqdef) {
|
|
65
|
+
if (reqdef[origentname]) {
|
|
66
|
+
transform.reqform = { [origentname]: '`reqdata`' };
|
|
67
|
+
}
|
|
68
|
+
else if (reqdef[entname]) {
|
|
69
|
+
transform.reqform = { [entname]: '`reqdata`' };
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
op[opname] = {
|
|
73
|
+
// TODO: in actual guide, remove "standard" method ops since redundant
|
|
74
|
+
method,
|
|
75
|
+
};
|
|
76
|
+
if (0 < Object.entries(transform).length) {
|
|
77
|
+
op[opname].transform = transform;
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
(0, jostraca_1.each)(paths, (pathdef, pathname) => {
|
|
83
|
+
// look for rightmmost /entname/{entid}
|
|
84
|
+
const m = pathname.match(/\/([a-zA-Z0-1_-]+)$/);
|
|
85
|
+
if (m) {
|
|
86
|
+
let origentname = (0, jostraca_1.snakify)(m[1]);
|
|
87
|
+
let entname = depluralize(origentname);
|
|
88
|
+
let entdesc = entityDescs[entname];
|
|
89
|
+
if (entdesc) {
|
|
90
|
+
entdesc.path = (entdesc.path || {});
|
|
91
|
+
if (pathdef.get) {
|
|
92
|
+
const op = { list: { method: 'get' } };
|
|
93
|
+
entdesc.path[pathname] = { op };
|
|
94
|
+
const transform = {};
|
|
95
|
+
const mdef = pathdef.get;
|
|
96
|
+
const resokdef = mdef.responses[200] || mdef.responses[201];
|
|
97
|
+
const resbody = resokdef?.content?.['application/json']?.schema;
|
|
98
|
+
if (resbody) {
|
|
99
|
+
if (resbody[origentname]) {
|
|
100
|
+
// TODO: use quotes when @voxgig/struct updated to support them
|
|
101
|
+
// transform.resform = '`body."'+origentname+'"`'
|
|
102
|
+
transform.resform = '`body.' + origentname + '`';
|
|
103
|
+
}
|
|
104
|
+
else if (resbody[entname]) {
|
|
105
|
+
transform.resform = '`body.' + entname + '`';
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (0 < Object.entries(transform).length) {
|
|
109
|
+
op.transform = transform;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return entityDescs;
|
|
116
|
+
}
|
|
117
|
+
function depluralize(word) {
|
|
118
|
+
if (!word || word.length === 0) {
|
|
119
|
+
return word;
|
|
120
|
+
}
|
|
121
|
+
// Common irregular plurals
|
|
122
|
+
const irregulars = {
|
|
123
|
+
'children': 'child',
|
|
124
|
+
'men': 'man',
|
|
125
|
+
'women': 'woman',
|
|
126
|
+
'teeth': 'tooth',
|
|
127
|
+
'feet': 'foot',
|
|
128
|
+
'geese': 'goose',
|
|
129
|
+
'mice': 'mouse',
|
|
130
|
+
'people': 'person',
|
|
131
|
+
'data': 'datum',
|
|
132
|
+
'criteria': 'criterion',
|
|
133
|
+
'phenomena': 'phenomenon',
|
|
134
|
+
'indices': 'index',
|
|
135
|
+
'matrices': 'matrix',
|
|
136
|
+
'vertices': 'vertex',
|
|
137
|
+
'analyses': 'analysis',
|
|
138
|
+
'axes': 'axis',
|
|
139
|
+
'crises': 'crisis',
|
|
140
|
+
'diagnoses': 'diagnosis',
|
|
141
|
+
'oases': 'oasis',
|
|
142
|
+
'theses': 'thesis',
|
|
143
|
+
'appendices': 'appendix'
|
|
144
|
+
};
|
|
145
|
+
if (irregulars[word]) {
|
|
146
|
+
return irregulars[word];
|
|
147
|
+
}
|
|
148
|
+
// Rules for regular plurals (applied in order)
|
|
149
|
+
// -ies -> -y (cities -> city)
|
|
150
|
+
if (word.endsWith('ies') && word.length > 3) {
|
|
151
|
+
return word.slice(0, -3) + 'y';
|
|
152
|
+
}
|
|
153
|
+
// -ves -> -f or -fe (wolves -> wolf, knives -> knife)
|
|
154
|
+
if (word.endsWith('ves')) {
|
|
155
|
+
const stem = word.slice(0, -3);
|
|
156
|
+
// Check if it should be -fe (like knife, wife, life)
|
|
157
|
+
if (['kni', 'wi', 'li'].includes(stem)) {
|
|
158
|
+
return stem + 'fe';
|
|
159
|
+
}
|
|
160
|
+
return stem + 'f';
|
|
161
|
+
}
|
|
162
|
+
// -oes -> -o (potatoes -> potato)
|
|
163
|
+
if (word.endsWith('oes')) {
|
|
164
|
+
return word.slice(0, -2);
|
|
165
|
+
}
|
|
166
|
+
// -ses, -xes, -zes, -shes, -ches -> remove -es (boxes -> box)
|
|
167
|
+
if (word.endsWith('ses') || word.endsWith('xes') || word.endsWith('zes') ||
|
|
168
|
+
word.endsWith('shes') || word.endsWith('ches')) {
|
|
169
|
+
return word.slice(0, -2);
|
|
170
|
+
}
|
|
171
|
+
// -s -> remove -s (cats -> cat)
|
|
172
|
+
if (word.endsWith('s') && !word.endsWith('ss')) {
|
|
173
|
+
return word.slice(0, -1);
|
|
174
|
+
}
|
|
175
|
+
// If none of the rules apply, return as is
|
|
176
|
+
return word;
|
|
177
|
+
}
|
|
178
|
+
//# sourceMappingURL=heuristic01.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heuristic01.js","sourceRoot":"","sources":["../../src/guide/heuristic01.ts"],"names":[],"mappings":"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"}
|
package/dist/guide.d.ts
ADDED
package/dist/guide.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.resolveGuide = resolveGuide;
|
|
7
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
8
|
+
const jostraca_1 = require("jostraca");
|
|
9
|
+
const heuristic01_1 = require("./guide/heuristic01");
|
|
10
|
+
async function resolveGuide(ctx) {
|
|
11
|
+
// console.log('GUIDE CTX', ctx)
|
|
12
|
+
let guide = ctx.model.main.api.guide;
|
|
13
|
+
if ('heuristic01' === ctx.opts.strategy) {
|
|
14
|
+
guide = await (0, heuristic01_1.heuristic01)(ctx);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw new Error('Unknown guide strategy: ' + ctx.opts.strategy);
|
|
18
|
+
}
|
|
19
|
+
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');
|
|
22
|
+
const guideBlocks = [
|
|
23
|
+
'# Guide',
|
|
24
|
+
'',
|
|
25
|
+
'main: api: guide: { ',
|
|
26
|
+
'',
|
|
27
|
+
];
|
|
28
|
+
guideBlocks.push(...(0, jostraca_1.each)(guide.entity, (entity, entityname) => {
|
|
29
|
+
guideBlocks.push(`\nentity: ${entityname}: path: {`);
|
|
30
|
+
(0, jostraca_1.each)(entity.path, (path, pathname) => {
|
|
31
|
+
guideBlocks.push(` '${pathname}': op: {`);
|
|
32
|
+
(0, jostraca_1.each)(path.op, (op, opname) => {
|
|
33
|
+
guideBlocks.push(` '${opname}': method: ${op.method}`);
|
|
34
|
+
if (op.transform?.reqform) {
|
|
35
|
+
guideBlocks.push(` '${opname}': transform: reqform: ${JSON.stringify(op.transform.reqform)}`);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
guideBlocks.push(` }`);
|
|
39
|
+
});
|
|
40
|
+
guideBlocks.push(`}`);
|
|
41
|
+
}));
|
|
42
|
+
guideBlocks.push('}');
|
|
43
|
+
const guideSrc = guideBlocks.join('\n');
|
|
44
|
+
// console.log(guideSrc)
|
|
45
|
+
return () => {
|
|
46
|
+
(0, jostraca_1.File)({ name: node_path_1.default.basename(guideFile) }, () => (0, jostraca_1.Content)(guideSrc));
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
function cleanGuide(guide) {
|
|
50
|
+
const clean = {
|
|
51
|
+
control: guide.control,
|
|
52
|
+
entity: {}
|
|
53
|
+
};
|
|
54
|
+
(0, jostraca_1.each)(guide.entity, (entity, name) => {
|
|
55
|
+
let ent = clean.entity[name] = clean.entity[name] = { name, path: {} };
|
|
56
|
+
(0, jostraca_1.each)(entity.path, (path, pathname) => {
|
|
57
|
+
ent.path[pathname] = path;
|
|
58
|
+
});
|
|
59
|
+
});
|
|
60
|
+
return clean;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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,2 @@
|
|
|
1
|
-
declare function parse(kind: string, source: any): Promise<any>;
|
|
1
|
+
declare function parse(kind: string, source: any, meta?: any): Promise<any>;
|
|
2
2
|
export { parse };
|
package/dist/parse.js
CHANGED
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.parse = parse;
|
|
5
5
|
const openapi_core_1 = require("@redocly/openapi-core");
|
|
6
|
-
|
|
6
|
+
// Parse an API definition source into a JSON sructure.
|
|
7
|
+
async function parse(kind, source, meta) {
|
|
7
8
|
if ('OpenAPI' === kind) {
|
|
8
|
-
return parseOpenAPI(source);
|
|
9
|
+
return parseOpenAPI(source, meta);
|
|
9
10
|
}
|
|
10
11
|
else {
|
|
11
12
|
throw new Error('@voxgig/apidef-parse: unknown kind: ' + kind);
|
|
12
13
|
}
|
|
13
14
|
}
|
|
14
|
-
async function parseOpenAPI(source) {
|
|
15
|
-
const config = await (0, openapi_core_1.createConfig)({});
|
|
15
|
+
async function parseOpenAPI(source, meta) {
|
|
16
|
+
const config = await (0, openapi_core_1.createConfig)(meta?.config || {});
|
|
16
17
|
let bundle;
|
|
17
18
|
bundle = await (0, openapi_core_1.bundleFromString)({
|
|
18
19
|
source,
|
package/dist/parse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../src/parse.ts"],"names":[],"mappings":";AAAA,4CAA4C;;
|
|
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"}
|
package/dist/resolver.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* Copyright (c) 2024-2025 Voxgig, MIT License */
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.resolveElements = resolveElements;
|
|
8
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
9
|
+
async function resolveElements(ctx, kind, subkind, standard) {
|
|
10
|
+
const { log, model } = ctx;
|
|
11
|
+
// TODO: model access should be via a utility that generates
|
|
12
|
+
// useful errors when the target is missing
|
|
13
|
+
const control = model.main.api.guide.control[kind][subkind];
|
|
14
|
+
const target = kind + '.' + subkind;
|
|
15
|
+
const elementNames = control.order
|
|
16
|
+
.split(/\s*,\s*/)
|
|
17
|
+
.map((t) => t.trim())
|
|
18
|
+
.filter((elem) => '' != elem);
|
|
19
|
+
log.info({
|
|
20
|
+
point: 'element', note: target + ': order: ' + elementNames.join(';'),
|
|
21
|
+
order: elementNames
|
|
22
|
+
});
|
|
23
|
+
const elementResults = [];
|
|
24
|
+
for (const en of elementNames) {
|
|
25
|
+
log.debug({ point: 'element', note: target + ': ' + en });
|
|
26
|
+
const element = await resolveElement(en, control, target, standard, ctx);
|
|
27
|
+
const result = await element(ctx);
|
|
28
|
+
elementResults.push(result);
|
|
29
|
+
}
|
|
30
|
+
return elementResults;
|
|
31
|
+
}
|
|
32
|
+
async function resolveElement(en, control, target, standard, ctx) {
|
|
33
|
+
const { log } = ctx;
|
|
34
|
+
let element = standard[en];
|
|
35
|
+
if (element) {
|
|
36
|
+
return element;
|
|
37
|
+
}
|
|
38
|
+
const elemdef = control.element[en];
|
|
39
|
+
if (null == elemdef) {
|
|
40
|
+
const err = new Error('Unknown element: ' + en);
|
|
41
|
+
log.error({ what: 'element', element: target + ': ' + en, fail: 'unknown', err });
|
|
42
|
+
throw err;
|
|
43
|
+
}
|
|
44
|
+
if (!en.startsWith('custom')) {
|
|
45
|
+
const err = new Error('Custom element name must start with "custom": ' + en);
|
|
46
|
+
log.error({ what: 'element', element: target + ': ' + en, fail: 'prefix', err });
|
|
47
|
+
throw err;
|
|
48
|
+
}
|
|
49
|
+
const customtpath = node_path_1.default.join(ctx.defpath, elemdef.load);
|
|
50
|
+
try {
|
|
51
|
+
const elementModule = require(customtpath);
|
|
52
|
+
element = elementModule[en];
|
|
53
|
+
}
|
|
54
|
+
catch (e) {
|
|
55
|
+
const err = new Error('Custom element not found: ' +
|
|
56
|
+
customtpath + ': ' + e.message);
|
|
57
|
+
log.error({ what: 'element', element: target + ': ' + en, fail: 'require', err });
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
return element;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../src/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/transform/entity.js
CHANGED
|
@@ -3,12 +3,14 @@ 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 entityTransform = async function (ctx
|
|
6
|
+
const entityTransform = async function (ctx) {
|
|
7
|
+
const { apimodel, model, def } = ctx;
|
|
8
|
+
const guide = model.main.api.guide;
|
|
7
9
|
let msg = '';
|
|
8
10
|
(0, jostraca_1.each)(guide.entity, (guideEntity) => {
|
|
9
11
|
const entityName = guideEntity.key$;
|
|
10
12
|
ctx.log.debug({ point: 'guide-entity', note: entityName });
|
|
11
|
-
const entityModel =
|
|
13
|
+
const entityModel = apimodel.main.api.entity[entityName] = {
|
|
12
14
|
op: {},
|
|
13
15
|
field: {},
|
|
14
16
|
cmd: {},
|
|
@@ -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,
|
|
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"}
|