@voxgig/sdkgen 0.39.1 → 0.40.2
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/bin/voxgig-sdkgen +1 -1
- package/dist/action/target.js +7 -1
- package/dist/action/target.js.map +1 -1
- package/dist/helpers/buildIdNames.d.ts +11 -0
- package/dist/helpers/buildIdNames.js +56 -0
- package/dist/helpers/buildIdNames.js.map +1 -0
- package/dist/helpers/collectDeps.d.ts +9 -0
- package/dist/helpers/collectDeps.js +50 -0
- package/dist/helpers/collectDeps.js.map +1 -0
- package/dist/helpers/getMatchEntries.d.ts +2 -0
- package/dist/helpers/getMatchEntries.js +13 -0
- package/dist/helpers/getMatchEntries.js.map +1 -0
- package/dist/sdkgen.d.ts +6 -2
- package/dist/sdkgen.js +17 -2
- package/dist/sdkgen.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/project/.sdk/model/target/lua.jsonic +1 -1
- package/project/.sdk/model/target/php.jsonic +2 -3
- package/project/.sdk/model/target/py.jsonic +1 -1
- package/project/.sdk/src/cmp/go/Entity_go.ts +15 -3
- package/project/.sdk/src/cmp/go/Main_go.ts +3 -2
- package/project/.sdk/src/cmp/go/Package_go.ts +8 -29
- package/project/.sdk/src/cmp/go/TestDirect_go.ts +14 -7
- package/project/.sdk/src/cmp/go/TestEntity_go.ts +43 -30
- package/project/.sdk/src/cmp/js/TestDirect_js.ts +6 -3
- package/project/.sdk/src/cmp/lua/Package_lua.ts +5 -27
- package/project/.sdk/src/cmp/lua/TestDirect_lua.ts +6 -3
- package/project/.sdk/src/cmp/lua/TestEntity_lua.ts +5 -17
- package/project/.sdk/src/cmp/php/Config_php.ts +21 -0
- package/project/.sdk/src/cmp/php/MainEntity_php.ts +11 -1
- package/project/.sdk/src/cmp/php/Package_php.ts +5 -31
- package/project/.sdk/src/cmp/php/TestDirect_php.ts +6 -3
- package/project/.sdk/src/cmp/php/TestEntity_php.ts +25 -29
- package/project/.sdk/src/cmp/py/Main_py.ts +5 -5
- package/project/.sdk/src/cmp/py/Package_py.ts +11 -28
- package/project/.sdk/src/cmp/py/TestDirect_py.ts +9 -6
- package/project/.sdk/src/cmp/py/TestEntity_py.ts +7 -19
- package/project/.sdk/src/cmp/rb/Package_rb.ts +8 -47
- package/project/.sdk/src/cmp/rb/TestDirect_rb.ts +6 -3
- package/project/.sdk/src/cmp/rb/TestEntity_rb.ts +5 -17
- package/project/.sdk/src/cmp/ts/TestDirect_ts.ts +6 -3
- package/project/.sdk/tm/go/core/helpers.go +10 -0
- package/project/.sdk/tm/lua/Makefile +1 -1
- package/project/.sdk/tm/php/Makefile +1 -1
- package/src/action/target.ts +7 -1
- package/src/helpers/buildIdNames.ts +70 -0
- package/src/helpers/collectDeps.ts +70 -0
- package/src/helpers/getMatchEntries.ts +14 -0
- package/src/sdkgen.ts +22 -1
package/bin/voxgig-sdkgen
CHANGED
package/dist/action/target.js
CHANGED
|
@@ -51,7 +51,13 @@ async function target_add(targets, actx) {
|
|
|
51
51
|
});
|
|
52
52
|
const jres = await jostraca.generate(opts, () => TargetRoot({ targets, actx }));
|
|
53
53
|
(0, util_1.showChanges)(opts.log, 'target-result', jres);
|
|
54
|
-
|
|
54
|
+
// The `test` feature is required by every generated target (SDK.test()
|
|
55
|
+
// depends on it), so ensure it is added even if the model does not yet
|
|
56
|
+
// declare it.
|
|
57
|
+
const features = Array.from(new Set([
|
|
58
|
+
'test',
|
|
59
|
+
...Object.keys(actx.model.main[types_1.KIT].feature),
|
|
60
|
+
]));
|
|
55
61
|
await (0, feature_1.feature_add)(features, actx);
|
|
56
62
|
opts.log.info({
|
|
57
63
|
point: 'target-end',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/action/target.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"target.js","sourceRoot":"","sources":["../../src/action/target.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Build the list of placeholder ID names that the test setup populates into
|
|
3
|
+
// `setup.idmap`. The set is the union of:
|
|
4
|
+
// - the entity's own ids (`<entity>01..03`)
|
|
5
|
+
// - every ancestor entity's ids (`<anc>01..03`)
|
|
6
|
+
// - every literal string value referenced by `step.match` across the flow
|
|
7
|
+
// (e.g. path-parameter aliases like `year01` for `/{year}/domain` — apidef
|
|
8
|
+
// doesn't always populate `relations.ancestors` when the parent in the
|
|
9
|
+
// path is a bare parameter rather than an entity, so we have to mine the
|
|
10
|
+
// flow steps directly to avoid KeyError-ing the idmap from generated test
|
|
11
|
+
// code)
|
|
12
|
+
//
|
|
13
|
+
// Identical helper was previously inlined in TestEntity_{go,py,lua,rb,php}.ts.
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.buildIdNames = buildIdNames;
|
|
16
|
+
const COUNT = 3; // 3 ids per name: <name>01, <name>02, <name>03
|
|
17
|
+
function buildIdNames(entity, flow) {
|
|
18
|
+
const idnames = [];
|
|
19
|
+
const seen = new Set();
|
|
20
|
+
const push = (n) => {
|
|
21
|
+
if (!seen.has(n)) {
|
|
22
|
+
seen.add(n);
|
|
23
|
+
idnames.push(n);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
for (let i = 1; i <= COUNT; i++)
|
|
27
|
+
push(`${entity.name}0${i}`);
|
|
28
|
+
const ancestors = (entity.relations?.ancestors || []).flat();
|
|
29
|
+
for (const anc of ancestors) {
|
|
30
|
+
for (let i = 1; i <= COUNT; i++)
|
|
31
|
+
push(`${anc}0${i}`);
|
|
32
|
+
}
|
|
33
|
+
const steps = Array.isArray(flow?.step)
|
|
34
|
+
? flow.step
|
|
35
|
+
: Object.values(flow?.step || {});
|
|
36
|
+
for (const step of steps) {
|
|
37
|
+
if (step?.match) {
|
|
38
|
+
for (const v of Object.values(step.match)) {
|
|
39
|
+
if (typeof v === 'string' && v && !v.endsWith('$'))
|
|
40
|
+
push(v);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// step.data values can also be aliased via setup (e.g. update step.data
|
|
44
|
+
// = {data_type_id: 'data_type01'} → setup adds idmap[data_type_id] =
|
|
45
|
+
// idmap[data_type01]). The right-hand side `data_type01` must be in the
|
|
46
|
+
// idmap or the alias resolves to undefined.
|
|
47
|
+
if (step?.data) {
|
|
48
|
+
for (const v of Object.values(step.data)) {
|
|
49
|
+
if (typeof v === 'string' && v && !v.endsWith('$'))
|
|
50
|
+
push(v);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return idnames;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=buildIdNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildIdNames.js","sourceRoot":"","sources":["../../src/helpers/buildIdNames.ts"],"names":[],"mappings":";AAAA,4EAA4E;AAC5E,0CAA0C;AAC1C,8CAA8C;AAC9C,kDAAkD;AAClD,4EAA4E;AAC5E,+EAA+E;AAC/E,2EAA2E;AAC3E,6EAA6E;AAC7E,8EAA8E;AAC9E,YAAY;AACZ,EAAE;AACF,+EAA+E;;AAyD7E,oCAAY;AAvDd,MAAM,KAAK,GAAG,CAAC,CAAA,CAAC,+CAA+C;AAa/D,SAAS,YAAY,CAAC,MAAkB,EAAE,IAAc;IACtD,MAAM,OAAO,GAAa,EAAE,CAAA;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAA;IAC9B,MAAM,IAAI,GAAG,CAAC,CAAS,EAAE,EAAE;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;YACX,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACjB,CAAC;IACH,CAAC,CAAA;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE;QAAE,IAAI,CAAC,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAA;IAE5D,MAAM,SAAS,GAAa,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACtE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,EAAE;YAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC,IAAI,CAAC,IAAI;QACX,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,CAAA;IACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,EAAE,KAAK,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1C,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;QACD,wEAAwE;QACxE,qEAAqE;QACrE,wEAAwE;QACxE,4CAA4C;QAC5C,IAAI,IAAI,EAAE,IAAI,EAAE,CAAC;YACf,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;oBAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Collect target-language dependencies from features and from the target's
|
|
3
|
+
// own `deps` block, applying the active-flag semantics that every Package_*.ts
|
|
4
|
+
// template was hand-rolling identically:
|
|
5
|
+
//
|
|
6
|
+
// - feature deps : included when `dep.active === true` (default off)
|
|
7
|
+
// - target deps : included when `dep.active !== false` (default on)
|
|
8
|
+
//
|
|
9
|
+
// The two sources are kept distinct via the `source` field so callers can
|
|
10
|
+
// apply their own version defaults / formatting (e.g. go uses `v0.0.0`,
|
|
11
|
+
// python `0.0`). The original dep object is exposed as `raw` for callers that
|
|
12
|
+
// need extra fields like `dep.replace` (go module replace directives) or
|
|
13
|
+
// `dep.kind` (prod/dev/peer).
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.collectDeps = collectDeps;
|
|
16
|
+
const jostraca_1 = require("jostraca");
|
|
17
|
+
const apidef_1 = require("@voxgig/apidef");
|
|
18
|
+
function collectDeps(model, targetName, targetDeps) {
|
|
19
|
+
const out = [];
|
|
20
|
+
const feature = (0, apidef_1.getModelPath)(model, `main.${apidef_1.KIT}.feature`);
|
|
21
|
+
(0, jostraca_1.each)(feature, (f) => {
|
|
22
|
+
const langDeps = f?.deps?.[targetName];
|
|
23
|
+
if (!langDeps)
|
|
24
|
+
return;
|
|
25
|
+
(0, jostraca_1.each)(langDeps, (dep) => {
|
|
26
|
+
if (dep?.active) {
|
|
27
|
+
out.push({
|
|
28
|
+
name: dep.key$,
|
|
29
|
+
version: dep.version,
|
|
30
|
+
source: 'feature',
|
|
31
|
+
raw: dep,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
if (targetDeps) {
|
|
37
|
+
(0, jostraca_1.each)(targetDeps, (dep) => {
|
|
38
|
+
if (dep?.active !== false) {
|
|
39
|
+
out.push({
|
|
40
|
+
name: dep.key$,
|
|
41
|
+
version: dep.version,
|
|
42
|
+
source: 'target',
|
|
43
|
+
raw: dep,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return out;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=collectDeps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectDeps.js","sourceRoot":"","sources":["../../src/helpers/collectDeps.ts"],"names":[],"mappings":";AAAA,2EAA2E;AAC3E,+EAA+E;AAC/E,yCAAyC;AACzC,EAAE;AACF,yEAAyE;AACzE,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,wEAAwE;AACxE,8EAA8E;AAC9E,yEAAyE;AACzE,8BAA8B;;AAyD5B,kCAAW;AAvDb,uCAA+B;AAC/B,2CAAkD;AASlD,SAAS,WAAW,CAClB,KAAU,EACV,UAAkB,EAClB,UAAe;IAEf,MAAM,GAAG,GAAe,EAAE,CAAA;IAC1B,MAAM,OAAO,GAAG,IAAA,qBAAY,EAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,CAAC,CAAA;IAE1D,IAAA,eAAI,EAAC,OAAO,EAAE,CAAC,CAAM,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,UAAU,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ;YAAE,OAAM;QACrB,IAAA,eAAI,EAAC,QAAQ,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC1B,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC;gBAChB,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,MAAM,EAAE,SAAS;oBACjB,GAAG,EAAE,GAAG;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,IAAI,UAAU,EAAE,CAAC;QACf,IAAA,eAAI,EAAC,UAAU,EAAE,CAAC,GAAQ,EAAE,EAAE;YAC5B,IAAI,GAAG,EAAE,MAAM,KAAK,KAAK,EAAE,CAAC;gBAC1B,GAAG,CAAC,IAAI,CAAC;oBACP,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,MAAM,EAAE,QAAQ;oBAChB,GAAG,EAAE,GAAG;iBACT,CAAC,CAAA;YACJ,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Return the user-facing entries of a flow step's `match` object. Keys ending
|
|
3
|
+
// in `$` are jostraca/aontu metadata sentinels and are skipped.
|
|
4
|
+
//
|
|
5
|
+
// Identical helper was previously inlined in TestEntity_*.ts and TestDirect_*.ts.
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.getMatchEntries = getMatchEntries;
|
|
8
|
+
function getMatchEntries(step) {
|
|
9
|
+
if (!step?.match)
|
|
10
|
+
return [];
|
|
11
|
+
return Object.entries(step.match).filter(([k]) => !k.endsWith('$'));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=getMatchEntries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMatchEntries.js","sourceRoot":"","sources":["../../src/helpers/getMatchEntries.ts"],"names":[],"mappings":";AAAA,8EAA8E;AAC9E,gEAAgE;AAChE,EAAE;AACF,kFAAkF;;AAShF,0CAAe;AAPjB,SAAS,eAAe,CAAC,IAAS;IAChC,IAAI,CAAC,IAAI,EAAE,KAAK;QAAE,OAAO,EAAE,CAAA;IAC3B,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC1E,CAAC"}
|
package/dist/sdkgen.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ import { ReadmeHowto } from './cmp/ReadmeHowto';
|
|
|
17
17
|
import { ReadmeExplanation } from './cmp/ReadmeExplanation';
|
|
18
18
|
import { ReadmeRef } from './cmp/ReadmeRef';
|
|
19
19
|
import { FeatureHook } from './cmp/FeatureHook';
|
|
20
|
+
import { buildIdNames } from './helpers/buildIdNames';
|
|
21
|
+
import { getMatchEntries } from './helpers/getMatchEntries';
|
|
22
|
+
import { collectDeps } from './helpers/collectDeps';
|
|
23
|
+
import type { DepEntry } from './helpers/collectDeps';
|
|
20
24
|
type SdkGenOptions = {
|
|
21
25
|
folder: string;
|
|
22
26
|
fs: any;
|
|
@@ -56,7 +60,7 @@ declare function SdkGen(opts: SdkGenOptions): {
|
|
|
56
60
|
declare namespace SdkGen {
|
|
57
61
|
var makeBuild: (opts: SdkGenOptions) => Promise<(model: any, build: any, ctx: any) => Promise<any>>;
|
|
58
62
|
}
|
|
59
|
-
export type { SdkGenOptions, };
|
|
63
|
+
export type { SdkGenOptions, DepEntry, };
|
|
60
64
|
type Component = (props: any, children?: any) => void;
|
|
61
65
|
export declare const cmp: (component: Function) => Component;
|
|
62
66
|
export declare const names: (base: any, name: string, prop?: string) => any;
|
|
@@ -82,4 +86,4 @@ export declare const Inject: Component;
|
|
|
82
86
|
export declare const Line: Component;
|
|
83
87
|
export declare const Slot: Component;
|
|
84
88
|
export declare const List: Component;
|
|
85
|
-
export { Main, Entity, Feature, Test, Readme, ReadmeTop, ReadmeInstall, ReadmeQuick, ReadmeIntro, ReadmeModel, ReadmeOptions, ReadmeEntity, ReadmeHowto, ReadmeExplanation, ReadmeRef, FeatureHook, Jostraca, SdkGen, requirePath, };
|
|
89
|
+
export { Main, Entity, Feature, Test, Readme, ReadmeTop, ReadmeInstall, ReadmeQuick, ReadmeIntro, ReadmeModel, ReadmeOptions, ReadmeEntity, ReadmeHowto, ReadmeExplanation, ReadmeRef, FeatureHook, Jostraca, SdkGen, requirePath, buildIdNames, getMatchEntries, collectDeps, };
|
package/dist/sdkgen.js
CHANGED
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.requirePath = exports.Jostraca = exports.FeatureHook = exports.ReadmeRef = exports.ReadmeExplanation = exports.ReadmeHowto = exports.ReadmeEntity = exports.ReadmeOptions = exports.ReadmeModel = exports.ReadmeIntro = exports.ReadmeQuick = exports.ReadmeInstall = exports.ReadmeTop = exports.Readme = exports.Test = exports.Feature = exports.Entity = exports.Main = exports.List = exports.Slot = exports.Line = exports.Inject = exports.Fragment = exports.Copy = exports.Content = exports.File = exports.Folder = exports.Project = exports.omap = exports.deep = exports.indent = exports.template = exports.getx = exports.get = exports.vmap = exports.cmap = exports.kebabify = exports.camelify = exports.snakify = exports.each = exports.names = exports.cmp = void 0;
|
|
40
|
+
exports.collectDeps = exports.getMatchEntries = exports.buildIdNames = exports.requirePath = exports.Jostraca = exports.FeatureHook = exports.ReadmeRef = exports.ReadmeExplanation = exports.ReadmeHowto = exports.ReadmeEntity = exports.ReadmeOptions = exports.ReadmeModel = exports.ReadmeIntro = exports.ReadmeQuick = exports.ReadmeInstall = exports.ReadmeTop = exports.Readme = exports.Test = exports.Feature = exports.Entity = exports.Main = exports.List = exports.Slot = exports.Line = exports.Inject = exports.Fragment = exports.Copy = exports.Content = exports.File = exports.Folder = exports.Project = exports.omap = exports.deep = exports.indent = exports.template = exports.getx = exports.get = exports.vmap = exports.cmap = exports.kebabify = exports.camelify = exports.snakify = exports.each = exports.names = exports.cmp = void 0;
|
|
41
41
|
exports.SdkGen = SdkGen;
|
|
42
42
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
43
43
|
const node_path_1 = __importDefault(require("node:path"));
|
|
@@ -80,6 +80,12 @@ const ReadmeRef_1 = require("./cmp/ReadmeRef");
|
|
|
80
80
|
Object.defineProperty(exports, "ReadmeRef", { enumerable: true, get: function () { return ReadmeRef_1.ReadmeRef; } });
|
|
81
81
|
const FeatureHook_1 = require("./cmp/FeatureHook");
|
|
82
82
|
Object.defineProperty(exports, "FeatureHook", { enumerable: true, get: function () { return FeatureHook_1.FeatureHook; } });
|
|
83
|
+
const buildIdNames_1 = require("./helpers/buildIdNames");
|
|
84
|
+
Object.defineProperty(exports, "buildIdNames", { enumerable: true, get: function () { return buildIdNames_1.buildIdNames; } });
|
|
85
|
+
const getMatchEntries_1 = require("./helpers/getMatchEntries");
|
|
86
|
+
Object.defineProperty(exports, "getMatchEntries", { enumerable: true, get: function () { return getMatchEntries_1.getMatchEntries; } });
|
|
87
|
+
const collectDeps_1 = require("./helpers/collectDeps");
|
|
88
|
+
Object.defineProperty(exports, "collectDeps", { enumerable: true, get: function () { return collectDeps_1.collectDeps; } });
|
|
83
89
|
const target_1 = require("./action/target");
|
|
84
90
|
const feature_1 = require("./action/feature");
|
|
85
91
|
const { Jostraca } = JostracaModule;
|
|
@@ -89,7 +95,7 @@ const ACTION_MAP = {
|
|
|
89
95
|
feature: feature_1.action_feature,
|
|
90
96
|
};
|
|
91
97
|
const dlog = (0, util_2.getdlog)('sdkgen', __filename);
|
|
92
|
-
|
|
98
|
+
let aontu = null;
|
|
93
99
|
function SdkGen(opts) {
|
|
94
100
|
const fs = opts.fs || node_fs_1.default;
|
|
95
101
|
const folder = opts.folder || '../';
|
|
@@ -165,6 +171,15 @@ function SdkGen(opts) {
|
|
|
165
171
|
function resolveModel() {
|
|
166
172
|
const path = './model/sdk.jsonic';
|
|
167
173
|
const errs = [];
|
|
174
|
+
if (null == aontu) {
|
|
175
|
+
aontu = new aontu_1.Aontu({
|
|
176
|
+
preload: {
|
|
177
|
+
folders: ['./model'],
|
|
178
|
+
ext: ['.jsonic', '.json'],
|
|
179
|
+
recursive: true,
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
}
|
|
168
183
|
const aopts = { path, errs };
|
|
169
184
|
const src = fs.readFileSync(path, 'utf8');
|
|
170
185
|
const model = aontu.generate(src, aopts);
|
package/dist/sdkgen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sdkgen.js","sourceRoot":"","sources":["../src/sdkgen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/sdkgen.ts","../src/types.ts","../src/utility.ts","../src/action/action.ts","../src/action/feature.ts","../src/action/target.ts","../src/cmp/entity.ts","../src/cmp/feature.ts","../src/cmp/featurehook.ts","../src/cmp/main.ts","../src/cmp/readme.ts","../src/cmp/readmeentity.ts","../src/cmp/readmeexplanation.ts","../src/cmp/readmehowto.ts","../src/cmp/readmeinstall.ts","../src/cmp/readmeintro.ts","../src/cmp/readmemodel.ts","../src/cmp/readmeoptions.ts","../src/cmp/readmequick.ts","../src/cmp/readmeref.ts","../src/cmp/readmetop.ts","../src/cmp/test.ts"],"version":"
|
|
1
|
+
{"root":["../src/sdkgen.ts","../src/types.ts","../src/utility.ts","../src/action/action.ts","../src/action/feature.ts","../src/action/target.ts","../src/cmp/entity.ts","../src/cmp/feature.ts","../src/cmp/featurehook.ts","../src/cmp/main.ts","../src/cmp/readme.ts","../src/cmp/readmeentity.ts","../src/cmp/readmeexplanation.ts","../src/cmp/readmehowto.ts","../src/cmp/readmeinstall.ts","../src/cmp/readmeintro.ts","../src/cmp/readmemodel.ts","../src/cmp/readmeoptions.ts","../src/cmp/readmequick.ts","../src/cmp/readmeref.ts","../src/cmp/readmetop.ts","../src/cmp/test.ts","../src/helpers/buildidnames.ts","../src/helpers/collectdeps.ts","../src/helpers/getmatchentries.ts"],"version":"6.0.3"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/sdkgen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.40.2",
|
|
4
4
|
"main": "dist/sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/sdkgen.d.ts",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"LICENSE"
|
|
41
41
|
],
|
|
42
42
|
"devDependencies": {
|
|
43
|
-
"@types/js-yaml": "
|
|
43
|
+
"@types/js-yaml": "4.0.9",
|
|
44
44
|
"@types/node": "25.6.0",
|
|
45
|
-
"json-schema-to-ts": "
|
|
46
|
-
"memfs": "
|
|
47
|
-
"typescript": "
|
|
45
|
+
"json-schema-to-ts": "3.1.1",
|
|
46
|
+
"memfs": "4.57.2",
|
|
47
|
+
"typescript": "6.0.3"
|
|
48
48
|
},
|
|
49
49
|
"peerDependencies": {
|
|
50
50
|
"@voxgig/apidef": ">=5",
|
|
@@ -11,8 +11,8 @@ main: kit: target: lua: {
|
|
|
11
11
|
kind: *'prod' | string
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
# struct utility is vendored under tm/lua/utility/struct - no manifest dep needed
|
|
14
15
|
deps: {
|
|
15
|
-
'voxgig-struct': { active: true, version: '0.0.10' }
|
|
16
16
|
'dkjson': { active: true, version: '2.5' }
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -11,8 +11,8 @@ main: kit: target: py: {
|
|
|
11
11
|
kind: *'prod' | string
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
# struct utility is vendored under tm/py/utility/voxgig_struct - no manifest dep needed
|
|
14
15
|
deps: {
|
|
15
|
-
'voxgig-struct': { active: true, version: '0.0.10' }
|
|
16
16
|
'requests': { active: true, version: '2.33' }
|
|
17
17
|
}
|
|
18
18
|
}
|
|
@@ -32,13 +32,25 @@ const Entity = cmp(function Entity(props: any) {
|
|
|
32
32
|
|
|
33
33
|
const opnames = Object.keys(entity.op)
|
|
34
34
|
|
|
35
|
+
// For each CRUD op: if the spec defines it, splice in the real
|
|
36
|
+
// implementation. Otherwise emit a stub that satisfies the static
|
|
37
|
+
// ProjectNameEntity interface (so the package compiles) but errors
|
|
38
|
+
// at runtime if the caller invokes an unsupported op.
|
|
35
39
|
const opfrags =
|
|
36
40
|
(['load', 'list', 'create', 'update', 'remove']
|
|
37
41
|
.reduce((a: any, opname: string) =>
|
|
38
42
|
(a['// #' + camelify(opname) + 'Op'] =
|
|
39
|
-
!opnames.includes(opname) ?
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
!opnames.includes(opname) ?
|
|
44
|
+
({ indent }: any) => {
|
|
45
|
+
const Method = camelify(opname)
|
|
46
|
+
Content({ indent }, `func (e *${entity.Name}Entity) ${Method}(_ map[string]any, _ map[string]any) (any, error) {
|
|
47
|
+
return core.UnsupportedOp("${opname}", e.name)
|
|
48
|
+
}
|
|
49
|
+
`)
|
|
50
|
+
} :
|
|
51
|
+
({ indent }: any) => {
|
|
52
|
+
EntityOperation({ ff, opname, indent, entity, entrep, gomodule })
|
|
53
|
+
}, a), {}))
|
|
42
54
|
|
|
43
55
|
Fragment({
|
|
44
56
|
from: ff + 'Entity.fragment.go',
|
|
@@ -115,12 +115,13 @@ var NewBaseFeatureFunc func() Feature
|
|
|
115
115
|
})
|
|
116
116
|
|
|
117
117
|
// Generate root package file
|
|
118
|
+
const hasEntities = Object.keys(entity || {}).length > 0
|
|
119
|
+
const entityImport = hasEntities ? `\n\t"${gomodule}/entity"` : ''
|
|
118
120
|
File({ name: model.name + '.' + target.ext }, () => {
|
|
119
121
|
Content(`package ${gomodule}
|
|
120
122
|
|
|
121
123
|
import (
|
|
122
|
-
"${gomodule}/core"
|
|
123
|
-
"${gomodule}/entity"
|
|
124
|
+
"${gomodule}/core"${entityImport}
|
|
124
125
|
"${gomodule}/feature"
|
|
125
126
|
_ "${gomodule}/utility"
|
|
126
127
|
)
|
|
@@ -3,14 +3,12 @@ import {
|
|
|
3
3
|
Content,
|
|
4
4
|
File,
|
|
5
5
|
cmp,
|
|
6
|
-
|
|
6
|
+
collectDeps,
|
|
7
7
|
} from '@voxgig/sdkgen'
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
import {
|
|
11
|
-
KIT,
|
|
10
|
+
import type {
|
|
12
11
|
Model,
|
|
13
|
-
getModelPath,
|
|
14
12
|
} from '@voxgig/apidef'
|
|
15
13
|
|
|
16
14
|
|
|
@@ -20,8 +18,6 @@ const Package = cmp(async function Package(props: any) {
|
|
|
20
18
|
|
|
21
19
|
const model: Model = ctx$.model
|
|
22
20
|
|
|
23
|
-
const feature = getModelPath(model, `main.${KIT}.feature`)
|
|
24
|
-
|
|
25
21
|
// Module name: concatenated lowercase (e.g., voxgigsolardemosdk)
|
|
26
22
|
const orgPrefix = (model.origin || '').replace(/-sdk$/, '').replace(/[^a-z0-9]/gi, '')
|
|
27
23
|
const gomodule = orgPrefix + model.name + 'sdk'
|
|
@@ -33,32 +29,15 @@ go 1.20
|
|
|
33
29
|
|
|
34
30
|
`)
|
|
35
31
|
|
|
36
|
-
// Collect dependencies from features
|
|
37
32
|
const deps: Record<string, string> = {}
|
|
38
33
|
const replaceDirs: Record<string, string> = {}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
deps[dep.key$] = dep.version
|
|
46
|
-
}
|
|
47
|
-
})
|
|
34
|
+
for (const d of collectDeps(model, target.name, target.deps)) {
|
|
35
|
+
// Target-level deps default to 'v0.0.0' when version is absent;
|
|
36
|
+
// feature deps require an explicit version.
|
|
37
|
+
deps[d.name] = d.source === 'target' ? (d.version || 'v0.0.0') : d.version
|
|
38
|
+
if (d.source === 'target' && d.raw?.replace) {
|
|
39
|
+
replaceDirs[d.name] = d.raw.replace
|
|
48
40
|
}
|
|
49
|
-
})
|
|
50
|
-
|
|
51
|
-
// Add target-level deps
|
|
52
|
-
const targetDeps = target.deps
|
|
53
|
-
if (targetDeps) {
|
|
54
|
-
each(targetDeps, (dep: any) => {
|
|
55
|
-
if (dep.active !== false) {
|
|
56
|
-
deps[dep.key$] = dep.version || 'v0.0.0'
|
|
57
|
-
if (dep.replace) {
|
|
58
|
-
replaceDirs[dep.key$] = dep.replace
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
})
|
|
62
41
|
}
|
|
63
42
|
|
|
64
43
|
if (Object.keys(deps).length > 0) {
|
|
@@ -24,10 +24,13 @@ function normalizePathParams(
|
|
|
24
24
|
return part.replace(/\{([^}]+)\}/g, (match: string, rawName: string) => {
|
|
25
25
|
const snaked = snakify(rawName)
|
|
26
26
|
const depluralized = depluralize(snaked)
|
|
27
|
+
// Prefer exact name match — orig matches can collide when one param's
|
|
28
|
+
// original name was renamed to another param's current name (e.g. badge
|
|
29
|
+
// load: param 'group_id' has orig 'id', and another param has name 'id').
|
|
27
30
|
const param = params.find((p: any) =>
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
p.name === snaked || p.name === depluralized) ||
|
|
32
|
+
params.find((p: any) =>
|
|
33
|
+
p.orig === snaked || p.orig === depluralized)
|
|
31
34
|
if (param) return '{' + param.name + '}'
|
|
32
35
|
|
|
33
36
|
if (rename) {
|
|
@@ -128,14 +131,18 @@ func Test${entity.Name}Direct(t *testing.T) {
|
|
|
128
131
|
if (listParams.length > 0) {
|
|
129
132
|
Content(` params := map[string]any{}
|
|
130
133
|
`)
|
|
131
|
-
|
|
134
|
+
listLiveParams.forEach((lp: any, i: number) => {
|
|
135
|
+
// Each path param gets its own placeholder ("direct01", "direct02", ...)
|
|
136
|
+
// in non-live mode so URL-shape assertions can verify the params
|
|
137
|
+
// landed in distinct positions in the URL.
|
|
138
|
+
const placeholder = 'direct0' + (i + 1)
|
|
132
139
|
Content(` if setup.live {
|
|
133
140
|
params["${lp.name}"] = setup.idmap["${lp.key}"]
|
|
134
141
|
} else {
|
|
135
|
-
params["${lp.name}"] = "
|
|
142
|
+
params["${lp.name}"] = "${placeholder}"
|
|
136
143
|
}
|
|
137
144
|
`)
|
|
138
|
-
}
|
|
145
|
+
})
|
|
139
146
|
Content(`
|
|
140
147
|
result, err := client.Direct(map[string]any{
|
|
141
148
|
"path": "${listPath}",
|
|
@@ -320,7 +327,7 @@ func Test${entity.Name}Direct(t *testing.T) {
|
|
|
320
327
|
t.Fatalf("expected method GET, got %v", initMap["method"])
|
|
321
328
|
}
|
|
322
329
|
}
|
|
323
|
-
if url, ok := call["url"].(string); ok {
|
|
330
|
+
if ${loadParams.length > 0 ? 'url' : '_'}, ok := call["url"].(string); ok {
|
|
324
331
|
`)
|
|
325
332
|
|
|
326
333
|
for (let i = 0; i < loadParams.length; i++) {
|