@voxgig/apidef 3.0.2 → 3.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.
- package/dist/apidef.d.ts +5 -4
- package/dist/apidef.js +12 -21
- package/dist/apidef.js.map +1 -1
- package/dist/builder/entity/info.js +1 -1
- package/dist/builder/entity/info.js.map +1 -1
- package/dist/builder/flow.js +29 -27
- package/dist/builder/flow.js.map +1 -1
- package/dist/desc.d.ts +11 -13
- package/dist/guide/guide.js +1 -1
- package/dist/guide/guide.js.map +1 -1
- package/dist/guide/heuristic01.js +4 -2
- package/dist/guide/heuristic01.js.map +1 -1
- package/dist/model.d.ts +42 -7
- package/dist/parse.d.ts +3 -1
- package/dist/parse.js +35 -2
- package/dist/parse.js.map +1 -1
- package/dist/resolver.js +2 -1
- package/dist/resolver.js.map +1 -1
- package/dist/transform/args.d.ts +2 -2
- package/dist/transform/args.js +9 -13
- package/dist/transform/args.js.map +1 -1
- package/dist/transform/clean.d.ts +2 -2
- package/dist/transform/clean.js +2 -1
- package/dist/transform/clean.js.map +1 -1
- package/dist/transform/entity.d.ts +3 -3
- package/dist/transform/entity.js.map +1 -1
- package/dist/transform/field.d.ts +2 -2
- package/dist/transform/field.js +2 -3
- package/dist/transform/field.js.map +1 -1
- package/dist/transform/flow.d.ts +3 -0
- package/dist/transform/flow.js +26 -0
- package/dist/transform/flow.js.map +1 -0
- package/dist/transform/flowstep.d.ts +3 -0
- package/dist/transform/flowstep.js +145 -0
- package/dist/transform/flowstep.js.map +1 -0
- package/dist/transform/operation.d.ts +2 -2
- package/dist/transform/operation.js +15 -8
- package/dist/transform/operation.js.map +1 -1
- package/dist/transform/select.d.ts +2 -2
- package/dist/transform/select.js +28 -7
- package/dist/transform/select.js.map +1 -1
- package/dist/transform/top.d.ts +0 -9
- package/dist/transform/top.js +13 -0
- package/dist/transform/top.js.map +1 -1
- package/dist/transform.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +9 -1
- package/dist/types.js.map +1 -1
- package/dist/utility.d.ts +5 -1
- package/dist/utility.js +64 -1
- package/dist/utility.js.map +1 -1
- package/model/apidef.jsonic +8 -7
- package/package.json +7 -7
- package/src/apidef.ts +15 -22
- package/src/builder/entity/info.ts +1 -1
- package/src/builder/flow.ts +16 -9
- package/src/desc.ts +28 -17
- package/src/guide/guide.ts +2 -1
- package/src/guide/heuristic01.ts +5 -3
- package/src/model.ts +51 -6
- package/src/parse.ts +50 -3
- package/src/resolver.ts +3 -1
- package/src/transform/args.ts +11 -15
- package/src/transform/clean.ts +4 -5
- package/src/transform/entity.ts +4 -7
- package/src/transform/field.ts +7 -25
- package/src/transform/flow.ts +59 -0
- package/src/transform/flowstep.ts +242 -0
- package/src/transform/operation.ts +27 -31
- package/src/transform/select.ts +44 -15
- package/src/transform/top.ts +11 -42
- package/src/transform.ts +4 -4
- package/src/types.ts +2 -6
- package/src/utility.ts +87 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flowstepTransform = void 0;
|
|
4
|
+
const jostraca_1 = require("jostraca");
|
|
5
|
+
const struct_1 = require("@voxgig/struct");
|
|
6
|
+
const types_1 = require("../types");
|
|
7
|
+
const flowstepTransform = async function (ctx) {
|
|
8
|
+
const { apimodel, guide } = ctx;
|
|
9
|
+
const kit = apimodel.main[types_1.KIT];
|
|
10
|
+
let msg = '';
|
|
11
|
+
(0, jostraca_1.each)(kit.flow, (flow, flowname) => {
|
|
12
|
+
ctx.log.debug({ point: 'flowstep', note: flowname });
|
|
13
|
+
const ent = kit.entity[flow.entity];
|
|
14
|
+
const opmap = ent.op;
|
|
15
|
+
// TODO: spec parameter passed into each step func, used semantically by generator
|
|
16
|
+
// validation: part of spec, semantic name and params, up to generator how to use it
|
|
17
|
+
const ref01 = ent.name + '_ref01';
|
|
18
|
+
createStep(opmap, flow, ent, { input: { ref: ref01 } });
|
|
19
|
+
listStep(opmap, flow, ent, { valid: [{ apply: 'ItemExists', def: { ref: ref01 } }] });
|
|
20
|
+
const mark01 = 'Mark01-' + ref01;
|
|
21
|
+
const firsttf = firstTextField(ent);
|
|
22
|
+
updateStep(opmap, flow, ent, {
|
|
23
|
+
input: {
|
|
24
|
+
ref: ref01,
|
|
25
|
+
textfield: firsttf?.name,
|
|
26
|
+
suffix: '_up0',
|
|
27
|
+
srcdatavar: ref01 + '_data'
|
|
28
|
+
},
|
|
29
|
+
spec: [{
|
|
30
|
+
apply: 'TextFieldMark',
|
|
31
|
+
def: { mark: mark01 }
|
|
32
|
+
}]
|
|
33
|
+
});
|
|
34
|
+
loadStep(opmap, flow, ent, {
|
|
35
|
+
input: {
|
|
36
|
+
ref: ref01,
|
|
37
|
+
suffix: '_dt0',
|
|
38
|
+
srcdatavar: ref01 + '_data'
|
|
39
|
+
},
|
|
40
|
+
valid: [{
|
|
41
|
+
apply: 'TextFieldMark',
|
|
42
|
+
def: { mark: mark01 }
|
|
43
|
+
}]
|
|
44
|
+
});
|
|
45
|
+
removeStep(opmap, flow, ent, {
|
|
46
|
+
input: { ref: ref01, suffix: '_rm0' }
|
|
47
|
+
});
|
|
48
|
+
if (null != opmap.remove) {
|
|
49
|
+
listStep(opmap, flow, ent, {
|
|
50
|
+
input: { suffix: '_rt0' },
|
|
51
|
+
valid: [{ apply: 'ItemNotExists', def: { ref: ref01 } }]
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
msg += flowname + ' ';
|
|
55
|
+
});
|
|
56
|
+
return { ok: true, msg };
|
|
57
|
+
};
|
|
58
|
+
exports.flowstepTransform = flowstepTransform;
|
|
59
|
+
function newFlowStep(opname, args) {
|
|
60
|
+
return {
|
|
61
|
+
op: opname,
|
|
62
|
+
input: args.input ?? {},
|
|
63
|
+
match: args.match ?? {},
|
|
64
|
+
data: args.data ?? {},
|
|
65
|
+
spec: args.spec ?? [],
|
|
66
|
+
valid: args.valid ?? [],
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
const createStep = (opmap, flow, ent, args) => {
|
|
70
|
+
if (null != opmap.update) {
|
|
71
|
+
// Use last alt as most generic
|
|
72
|
+
const alt = (0, struct_1.getelem)(opmap.update.alts, -1);
|
|
73
|
+
const step = newFlowStep('create', args);
|
|
74
|
+
flow.step.push(step);
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const listStep = (opmap, flow, ent, args) => {
|
|
78
|
+
if (null != opmap.list) {
|
|
79
|
+
// Use last alt as most generic
|
|
80
|
+
const alt = (0, struct_1.getelem)(opmap.list.alts, -1);
|
|
81
|
+
const step = newFlowStep('list', args);
|
|
82
|
+
(0, jostraca_1.each)(alt.args.param, (param) => {
|
|
83
|
+
step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
|
|
84
|
+
});
|
|
85
|
+
flow.step.push(step);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const updateStep = (opmap, flow, ent, args) => {
|
|
89
|
+
if (null != opmap.update) {
|
|
90
|
+
// Use last alt as most generic
|
|
91
|
+
const alt = (0, struct_1.getelem)(opmap.update.alts, -1);
|
|
92
|
+
const step = newFlowStep('update', args);
|
|
93
|
+
(0, jostraca_1.each)(alt.args.param, (param) => {
|
|
94
|
+
if ('id' === param.name) {
|
|
95
|
+
step.data.id = args.input?.id ?? ent.name + '01';
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
step.data[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
flow.step.push(step);
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
const loadStep = (opmap, flow, ent, args) => {
|
|
105
|
+
if (null != opmap.load) {
|
|
106
|
+
// Use last alt as most generic
|
|
107
|
+
const alt = (0, struct_1.getelem)(opmap.update.alts, -1);
|
|
108
|
+
const step = newFlowStep('load', args);
|
|
109
|
+
(0, jostraca_1.each)(alt.args.param, (param) => {
|
|
110
|
+
if ('id' === param.name) {
|
|
111
|
+
step.match.id = args.input?.id ?? ent.name + '01';
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
flow.step.push(step);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const removeStep = (opmap, flow, ent, args) => {
|
|
121
|
+
if (null != opmap.remove) {
|
|
122
|
+
// Use last alt as most generic
|
|
123
|
+
const alt = (0, struct_1.getelem)(opmap.update.alts, -1);
|
|
124
|
+
const step = newFlowStep('remove', args);
|
|
125
|
+
(0, jostraca_1.each)(alt.args.param, (param) => {
|
|
126
|
+
if ('id' === param.name) {
|
|
127
|
+
step.match.id = args.input?.id ?? ent.name + '01';
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
step.match[param.name] = args.input?.[param.name] ?? param.name.replace(/_id/, '') + '01';
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
flow.step.push(step);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
function firstTextField(ent) {
|
|
137
|
+
const fields = (0, jostraca_1.each)(ent.fields);
|
|
138
|
+
for (let fI = 0; fI < fields.length; fI++) {
|
|
139
|
+
const field = fields[fI];
|
|
140
|
+
if ('`$STRING`' === field.type && 'id' !== field.name) {
|
|
141
|
+
return field;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=flowstep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flowstep.js","sourceRoot":"","sources":["../../src/transform/flowstep.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare const operationTransform:
|
|
1
|
+
import type { Transform } from '../transform';
|
|
2
|
+
declare const operationTransform: Transform;
|
|
3
3
|
export { operationTransform, };
|
|
@@ -14,14 +14,14 @@ const operationTransform = async function (ctx) {
|
|
|
14
14
|
list: undefined,
|
|
15
15
|
create: undefined,
|
|
16
16
|
update: undefined,
|
|
17
|
-
|
|
17
|
+
remove: undefined,
|
|
18
18
|
patch: undefined,
|
|
19
19
|
};
|
|
20
20
|
resolveLoad(opm, gent);
|
|
21
21
|
resolveList(opm, gent);
|
|
22
22
|
resolveCreate(opm, gent);
|
|
23
23
|
resolveUpdate(opm, gent);
|
|
24
|
-
|
|
24
|
+
resolveRemove(opm, gent);
|
|
25
25
|
resolvePatch(opm, gent);
|
|
26
26
|
kit.entity[entname].op = opm;
|
|
27
27
|
msg += gent.name + ' ';
|
|
@@ -30,16 +30,18 @@ const operationTransform = async function (ctx) {
|
|
|
30
30
|
};
|
|
31
31
|
exports.operationTransform = operationTransform;
|
|
32
32
|
function collectOps(gent) {
|
|
33
|
+
;
|
|
33
34
|
gent.opm$ = gent.opm$ ?? {};
|
|
34
35
|
(0, jostraca_1.each)(gent.paths$, (pathdesc) => {
|
|
35
36
|
(0, jostraca_1.each)(pathdesc.op, (gop, opname) => {
|
|
37
|
+
;
|
|
36
38
|
gent.opm$[opname] = gent.opm$[opname] ?? { paths: [] };
|
|
37
39
|
const oppathdesc = {
|
|
38
40
|
orig: pathdesc.orig,
|
|
39
41
|
parts: pathdesc.parts,
|
|
40
42
|
rename: pathdesc.rename,
|
|
41
43
|
method: gop.method,
|
|
42
|
-
op:
|
|
44
|
+
op: gop,
|
|
43
45
|
def: pathdesc.def,
|
|
44
46
|
};
|
|
45
47
|
gent.opm$[opname].paths.push(oppathdesc);
|
|
@@ -62,8 +64,8 @@ function resolveUpdate(opm, gent) {
|
|
|
62
64
|
const opdesc = opm.update = resolveOp('update', gent);
|
|
63
65
|
return opdesc;
|
|
64
66
|
}
|
|
65
|
-
function
|
|
66
|
-
const opdesc = opm.
|
|
67
|
+
function resolveRemove(opm, gent) {
|
|
68
|
+
const opdesc = opm.remove = resolveOp('remove', gent);
|
|
67
69
|
return opdesc;
|
|
68
70
|
}
|
|
69
71
|
function resolvePatch(opm, gent) {
|
|
@@ -82,18 +84,23 @@ function resolveOp(opname, gent) {
|
|
|
82
84
|
let mop = undefined;
|
|
83
85
|
let opdesc = gent.opm$[opname];
|
|
84
86
|
if (opdesc) {
|
|
85
|
-
// console.dir(opdesc, { depth: null })
|
|
86
87
|
mop = {
|
|
87
88
|
name: opname,
|
|
88
|
-
alts: opdesc.paths.map(p => {
|
|
89
|
+
alts: opdesc.paths.map((p) => {
|
|
89
90
|
const parts = applyRename(p);
|
|
90
91
|
const malt = {
|
|
91
92
|
orig: p.orig,
|
|
92
93
|
parts,
|
|
94
|
+
rename: p.rename,
|
|
93
95
|
method: p.method,
|
|
94
96
|
args: {},
|
|
95
|
-
|
|
97
|
+
transform: opdesc.transform ?? {},
|
|
98
|
+
select: {
|
|
99
|
+
exist: []
|
|
100
|
+
}
|
|
96
101
|
};
|
|
102
|
+
malt.transform.req = malt.transform.req ?? '`reqdata`';
|
|
103
|
+
malt.transform.res = malt.transform.res ?? '`body`';
|
|
97
104
|
return malt;
|
|
98
105
|
})
|
|
99
106
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"operation.js","sourceRoot":"","sources":["../../src/transform/operation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
declare const selectTransform:
|
|
1
|
+
import type { Transform } from '../transform';
|
|
2
|
+
declare const selectTransform: Transform;
|
|
3
3
|
export { selectTransform, };
|
package/dist/transform/select.js
CHANGED
|
@@ -7,33 +7,35 @@ const selectTransform = async function (ctx) {
|
|
|
7
7
|
const { apimodel, def, guide } = ctx;
|
|
8
8
|
const kit = apimodel.main[types_1.KIT];
|
|
9
9
|
let msg = 'select ';
|
|
10
|
-
(0, jostraca_1.each)(kit.entity, (ment,
|
|
11
|
-
(0, jostraca_1.each)(ment.op, (mop,
|
|
10
|
+
(0, jostraca_1.each)(kit.entity, (ment, _entname) => {
|
|
11
|
+
(0, jostraca_1.each)(ment.op, (mop, _opname) => {
|
|
12
12
|
(0, jostraca_1.each)(mop.alts, (malt) => {
|
|
13
13
|
const pdef = def.paths[malt.orig];
|
|
14
14
|
resolveSelect(guide, ment, mop, malt, pdef);
|
|
15
15
|
});
|
|
16
|
+
if (null != mop.alts && 0 < mop.alts.length) {
|
|
17
|
+
sortAlts(guide, ment, mop);
|
|
18
|
+
}
|
|
16
19
|
});
|
|
17
20
|
msg += ment.name + ' ';
|
|
18
21
|
});
|
|
19
22
|
return { ok: true, msg };
|
|
20
23
|
};
|
|
21
24
|
exports.selectTransform = selectTransform;
|
|
22
|
-
function resolveSelect(guide, ment,
|
|
25
|
+
function resolveSelect(guide, ment, _mop, malt, _pdef) {
|
|
23
26
|
const select = malt.select;
|
|
24
27
|
const margs = malt.args;
|
|
25
28
|
const argkinds = ['param', 'query', 'header', 'cookie'];
|
|
26
29
|
argkinds.map((kind) => {
|
|
27
30
|
(0, jostraca_1.each)(margs[kind], (marg) => {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
select[kind][marg.name] = true;
|
|
31
|
+
if (!select.exist.includes(marg.name)) {
|
|
32
|
+
select.exist.push(marg.name);
|
|
31
33
|
}
|
|
32
34
|
});
|
|
33
35
|
});
|
|
36
|
+
select.exist.sort();
|
|
34
37
|
const gent = guide.entity[ment.name];
|
|
35
38
|
const gpath = gent.path[malt.orig];
|
|
36
|
-
// console.log('GPATH', gpath)
|
|
37
39
|
if (gpath.action) {
|
|
38
40
|
const actname = Object.keys(gpath.action)[0];
|
|
39
41
|
if (null != actname) {
|
|
@@ -41,4 +43,23 @@ function resolveSelect(guide, ment, mop, malt, pdef) {
|
|
|
41
43
|
}
|
|
42
44
|
}
|
|
43
45
|
}
|
|
46
|
+
function sortAlts(_guide, _ment, mop) {
|
|
47
|
+
mop.alts.sort((a, b) => {
|
|
48
|
+
// longest exist len first
|
|
49
|
+
let order = b.select.exist.length - a.select.exist.length;
|
|
50
|
+
if (0 === order) {
|
|
51
|
+
if (null != a.select.$action && null != b.select.$action) {
|
|
52
|
+
order = a.select.$action < b.select.$action ? -1 :
|
|
53
|
+
a.select.$action > b.select.$action ? 1 : 0;
|
|
54
|
+
}
|
|
55
|
+
if (0 === order) {
|
|
56
|
+
const a_exist_str = a.select.exist.join('\t');
|
|
57
|
+
const b_exist_str = b.select.exist.join('\t');
|
|
58
|
+
order = a_exist_str < b_exist_str ? -1 :
|
|
59
|
+
a_exist_str > b_exist_str ? 1 : 0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return order;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
44
65
|
//# sourceMappingURL=select.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transform/select.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"select.js","sourceRoot":"","sources":["../../src/transform/select.ts"],"names":[],"mappings":"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"}
|
package/dist/transform/top.d.ts
CHANGED
|
@@ -1,12 +1,3 @@
|
|
|
1
1
|
import type { TransformResult } from '../transform';
|
|
2
|
-
import type { GuidePath, PathDesc, OpDesc } from '../desc';
|
|
3
|
-
import type { OpName } from '../model';
|
|
4
|
-
type GuideEntity = {
|
|
5
|
-
name: string;
|
|
6
|
-
path: Record<string, GuidePath>;
|
|
7
|
-
paths$: PathDesc[];
|
|
8
|
-
opm$: Record<OpName, OpDesc>;
|
|
9
|
-
};
|
|
10
2
|
declare const topTransform: (ctx: any) => Promise<TransformResult>;
|
|
11
3
|
export { topTransform };
|
|
12
|
-
export type { GuideEntity, };
|
package/dist/transform/top.js
CHANGED
|
@@ -3,6 +3,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.topTransform = void 0;
|
|
4
4
|
const struct_1 = require("@voxgig/struct");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
|
+
// Guide* => from guide model
|
|
7
|
+
// *Desc => internal working descriptiuon
|
|
8
|
+
// *Def => API spec definition
|
|
9
|
+
// Model* => Generated SDK Model
|
|
10
|
+
// type GuideEntity = {
|
|
11
|
+
// name: string,
|
|
12
|
+
// path: Record<string, GuidePath>
|
|
13
|
+
// paths$: PathDesc[]
|
|
14
|
+
// opm$: Record<OpName, OpDesc>
|
|
15
|
+
// }
|
|
6
16
|
const topTransform = async function (ctx) {
|
|
7
17
|
const { apimodel, def } = ctx;
|
|
8
18
|
const kit = apimodel.main[types_1.KIT];
|
|
@@ -17,4 +27,7 @@ const topTransform = async function (ctx) {
|
|
|
17
27
|
return { ok: true, msg: 'top' };
|
|
18
28
|
};
|
|
19
29
|
exports.topTransform = topTransform;
|
|
30
|
+
// export type {
|
|
31
|
+
// GuideEntity,
|
|
32
|
+
// }
|
|
20
33
|
//# sourceMappingURL=top.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/transform/top.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/transform/top.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,oCAA8B;AAmB9B,6BAA6B;AAC7B,yCAAyC;AACzC,8BAA8B;AAC9B,gCAAgC;AAGhC,uBAAuB;AACvB,kBAAkB;AAClB,oCAAoC;AAEpC,uBAAuB;AACvB,iCAAiC;AACjC,IAAI;AAGJ,MAAM,YAAY,GAAG,KAAK,WACxB,GAAQ;IAER,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAA;IAC7B,MAAM,GAAG,GAAa,QAAQ,CAAC,IAAI,CAAC,WAAG,CAAC,CAAA;IAExC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAA;IACnB,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,EAAE,CAAA;IAEpC,cAAc;IACd,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;QACb,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;YACpB,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,KAAK,GAAG,IAAA,gBAAO,EAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;SAC/E,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,CAAA;AACjC,CAAC,CAAA;AAIC,oCAAY;AAId,gBAAgB;AAChB,iBAAiB;AACjB,IAAI"}
|
package/dist/transform.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ type TransformResult = {
|
|
|
15
15
|
err?: any;
|
|
16
16
|
transform?: any;
|
|
17
17
|
};
|
|
18
|
-
type Transform = (ctx: TransformCtx
|
|
18
|
+
type Transform = (ctx: TransformCtx) => Promise<TransformResult>;
|
|
19
19
|
declare const OPKIND: any;
|
|
20
20
|
declare const GuideShape: {
|
|
21
21
|
<V>(root?: V | undefined, ctx?: import("gubu").Context): V & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/apidef.ts","../src/def.ts","../src/desc.ts","../src/model.ts","../src/parse.ts","../src/resolver.ts","../src/transform.ts","../src/types.ts","../src/utility.ts","../src/builder/entity.ts","../src/builder/flow.ts","../src/builder/entity/entity.ts","../src/builder/entity/info.ts","../src/builder/flow/flowheuristic01.ts","../src/guide/guide.ts","../src/guide/heuristic01.ts","../src/transform/args.ts","../src/transform/clean.ts","../src/transform/entity.ts","../src/transform/field.ts","../src/transform/operation.ts","../src/transform/select.ts","../src/transform/top.ts"],"version":"5.9.3"}
|
|
1
|
+
{"root":["../src/apidef.ts","../src/def.ts","../src/desc.ts","../src/model.ts","../src/parse.ts","../src/resolver.ts","../src/transform.ts","../src/types.ts","../src/utility.ts","../src/builder/entity.ts","../src/builder/flow.ts","../src/builder/entity/entity.ts","../src/builder/entity/info.ts","../src/builder/flow/flowheuristic01.ts","../src/guide/guide.ts","../src/guide/heuristic01.ts","../src/transform/args.ts","../src/transform/clean.ts","../src/transform/entity.ts","../src/transform/field.ts","../src/transform/flow.ts","../src/transform/flowstep.ts","../src/transform/operation.ts","../src/transform/select.ts","../src/transform/top.ts"],"version":"5.9.3"}
|
package/dist/types.d.ts
CHANGED
|
@@ -986,7 +986,15 @@ declare const OpenBuildShape: {
|
|
|
986
986
|
};
|
|
987
987
|
};
|
|
988
988
|
type Build = ReturnType<typeof BuildShape>;
|
|
989
|
-
type ApiModel = {
|
|
989
|
+
type ApiModel = {
|
|
990
|
+
main: {
|
|
991
|
+
kit: {
|
|
992
|
+
info: Record<string, any>;
|
|
993
|
+
entity: Record<string, any>;
|
|
994
|
+
flow: Record<string, any>;
|
|
995
|
+
};
|
|
996
|
+
};
|
|
997
|
+
};
|
|
990
998
|
type KitModel = {
|
|
991
999
|
info: Record<string, any>;
|
|
992
1000
|
entity: Record<string, any>;
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAK5C,+BAAsC;AAGtC,MAAM,GAAG,GAAG,KAAK,CAAA;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,4CAA4C;;;AAK5C,+BAAsC;AAGtC,MAAM,GAAG,GAAG,KAAK,CAAA;AAyOf,kBAAG;AAzML,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC;IACxB,IAAI,EAAE;QACJ,KAAK,EAAE,IAAI;QACX,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,IAAI;QAClB,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;KACf;CACF,CAAC,CAAA;AACF,MAAM,gBAAgB,GAAG,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,YAAY,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAA;AAkMpE,4CAAgB;AA5LlB,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC;IACtB,IAAI,EAAE,MAAM;IACZ,GAAG,EAAE,MAAM;IACX,IAAI,EAAE;QACJ,CAAC,GAAG,CAAC,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE;YACH,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;SACX;KACF;CACF,CAAC,CAAA;AACF,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;AAiL9D,wCAAc;AA5KhB,MAAM,UAAU,GAAG,IAAA,WAAI,EAAC;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,EAAE;QACR,IAAI,EAAE,EAAE;QACR,KAAK,EAAE,EAAE;QACT,GAAG,EAAE,EAAE;QACP,GAAG,EAAE,EAAE;QACP,OAAO,EAAE,EAAE;QACX,GAAG,EAAE,EAAE;QACP,EAAE,EAAE,IAAA,UAAG,GAAE;QACT,MAAM,EAAE,KAAK;QACb,SAAS,EAAE,EAAE;QACb,KAAK,EAAE;YACL,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;YACT,GAAG,EAAE,IAAI;SACV;KACF;CACF,CAAC,CAAA;AACF,MAAM,cAAc,GAAG,IAAA,WAAI,EAAC,IAAA,WAAI,EAAC,UAAU,CAAC,CAAC,CAAA;AA0J3C,wCAAc"}
|
package/dist/utility.d.ts
CHANGED
|
@@ -36,5 +36,9 @@ declare function findPathsWithPrefix(ctx: any, pathStr: string, opts?: {
|
|
|
36
36
|
param?: boolean;
|
|
37
37
|
}): number;
|
|
38
38
|
declare function nom(v: any, format: string): string;
|
|
39
|
+
declare function relativizePath(path: string): string;
|
|
40
|
+
declare function getModelPath(model: any, path: string, flags?: {
|
|
41
|
+
required?: boolean;
|
|
42
|
+
}): any;
|
|
39
43
|
export type { PathMatch };
|
|
40
|
-
export { nom, getdlog, loadFile, formatJsonSrc, depluralize, find, capture, pathMatch, makeWarner, formatJSONIC, validator, canonize, debugpath, findPathsWithPrefix, writeFileSyncWarn, warnOnError, };
|
|
44
|
+
export { nom, getdlog, loadFile, formatJsonSrc, depluralize, find, capture, pathMatch, makeWarner, formatJSONIC, validator, canonize, debugpath, findPathsWithPrefix, writeFileSyncWarn, warnOnError, relativizePath, getModelPath, };
|
package/dist/utility.js
CHANGED
|
@@ -19,6 +19,8 @@ exports.debugpath = debugpath;
|
|
|
19
19
|
exports.findPathsWithPrefix = findPathsWithPrefix;
|
|
20
20
|
exports.writeFileSyncWarn = writeFileSyncWarn;
|
|
21
21
|
exports.warnOnError = warnOnError;
|
|
22
|
+
exports.relativizePath = relativizePath;
|
|
23
|
+
exports.getModelPath = getModelPath;
|
|
22
24
|
const node_path_1 = __importDefault(require("node:path"));
|
|
23
25
|
const jostraca_1 = require("jostraca");
|
|
24
26
|
const util_1 = require("@voxgig/util");
|
|
@@ -42,7 +44,7 @@ function writeFileSyncWarn(warn, fs, path, text) {
|
|
|
42
44
|
catch (err) {
|
|
43
45
|
warn({
|
|
44
46
|
err,
|
|
45
|
-
note: 'Unable to save file: ' + path
|
|
47
|
+
note: 'Unable to save file: ' + relativizePath(path)
|
|
46
48
|
});
|
|
47
49
|
}
|
|
48
50
|
}
|
|
@@ -631,6 +633,8 @@ function findPathsWithPrefix(ctx, pathStr, opts) {
|
|
|
631
633
|
function allcapify(s) {
|
|
632
634
|
return 'string' === typeof s ? (0, jostraca_1.snakify)(s).toUpperCase() : '';
|
|
633
635
|
}
|
|
636
|
+
// Get value from object as string, and format as indicated.
|
|
637
|
+
// Example: nom({foo:'bar'},'Foo') -> 'Bar'
|
|
634
638
|
function nom(v, format) {
|
|
635
639
|
let formatstr = 'string' == typeof format ? format : null;
|
|
636
640
|
if (null == formatstr) {
|
|
@@ -644,4 +648,63 @@ function nom(v, format) {
|
|
|
644
648
|
/-/.test(formatstr) ? (0, jostraca_1.kebabify)(out) : out;
|
|
645
649
|
return out;
|
|
646
650
|
}
|
|
651
|
+
function relativizePath(path) {
|
|
652
|
+
const cwd = process.cwd();
|
|
653
|
+
if (path.startsWith(cwd)) {
|
|
654
|
+
return '.' + path.slice(cwd.length);
|
|
655
|
+
}
|
|
656
|
+
return path;
|
|
657
|
+
}
|
|
658
|
+
function getModelPath(model, path, flags) {
|
|
659
|
+
const required = flags?.required ?? true;
|
|
660
|
+
if (path === '') {
|
|
661
|
+
if (required) {
|
|
662
|
+
throw new Error('getModelPath: empty path provided');
|
|
663
|
+
}
|
|
664
|
+
return undefined;
|
|
665
|
+
}
|
|
666
|
+
const parts = path.split('.');
|
|
667
|
+
const fullPath = path; // Store the full path for error messages
|
|
668
|
+
let current = model;
|
|
669
|
+
let validPath = [];
|
|
670
|
+
for (let i = 0; i < parts.length; i++) {
|
|
671
|
+
const part = parts[i];
|
|
672
|
+
if (current == null) {
|
|
673
|
+
if (required) {
|
|
674
|
+
const validPathStr = validPath.length > 0 ? validPath.join('.') : '(root)';
|
|
675
|
+
throw new Error(`getModelPath: path not found at '${fullPath}'.\n` +
|
|
676
|
+
`Valid path up to: '${validPathStr}'.\n` +
|
|
677
|
+
`Cannot access property '${part}' of ${current === null ? 'null' : 'undefined'}.`);
|
|
678
|
+
}
|
|
679
|
+
return undefined;
|
|
680
|
+
}
|
|
681
|
+
// Check if current is an object before using 'in' operator
|
|
682
|
+
if (typeof current !== 'object' || current === null) {
|
|
683
|
+
if (required) {
|
|
684
|
+
const validPathStr = validPath.length > 0 ? validPath.join('.') : '(root)';
|
|
685
|
+
throw new Error(`getModelPath: path not found at '${fullPath}'.\n` +
|
|
686
|
+
`Valid path up to: '${validPathStr}'.\n` +
|
|
687
|
+
`Cannot access property '${part}' of ${typeof current}.`);
|
|
688
|
+
}
|
|
689
|
+
return undefined;
|
|
690
|
+
}
|
|
691
|
+
// Check if the key exists
|
|
692
|
+
if (!(part in current)) {
|
|
693
|
+
if (required) {
|
|
694
|
+
const validPathStr = validPath.length > 0 ? validPath.join('.') : '(root)';
|
|
695
|
+
const availableKeys = Array.isArray(current)
|
|
696
|
+
? `array indices 0-${current.length - 1}`
|
|
697
|
+
: `[${Object.keys(current).join(', ')}]`;
|
|
698
|
+
throw new Error(`getModelPath: path not found at '${fullPath}'.\n` +
|
|
699
|
+
`Valid path up to: '${validPathStr}'.\n` +
|
|
700
|
+
`Property '${part}' does not exist.\n` +
|
|
701
|
+
`Available keys: ${availableKeys}`);
|
|
702
|
+
}
|
|
703
|
+
return undefined;
|
|
704
|
+
}
|
|
705
|
+
validPath.push(part);
|
|
706
|
+
current = current[part];
|
|
707
|
+
}
|
|
708
|
+
return current;
|
|
709
|
+
}
|
|
647
710
|
//# sourceMappingURL=utility.js.map
|