@voxgig/apidef 1.9.0 → 2.0.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.
Files changed (73) hide show
  1. package/dist/apidef.d.ts +3 -29
  2. package/dist/apidef.js +65 -186
  3. package/dist/apidef.js.map +1 -1
  4. package/dist/builder/entity/apiEntity.d.ts +3 -0
  5. package/dist/builder/entity/apiEntity.js +51 -0
  6. package/dist/builder/entity/apiEntity.js.map +1 -0
  7. package/dist/builder/entity/def.d.ts +3 -0
  8. package/dist/builder/entity/def.js +19 -0
  9. package/dist/builder/entity/def.js.map +1 -0
  10. package/dist/builder/entity.d.ts +2 -0
  11. package/dist/builder/entity.js +30 -0
  12. package/dist/builder/entity.js.map +1 -0
  13. package/dist/builder/flow/flowHeuristic01.d.ts +2 -0
  14. package/dist/builder/flow/flowHeuristic01.js +153 -0
  15. package/dist/builder/flow/flowHeuristic01.js.map +1 -0
  16. package/dist/builder/flow.d.ts +2 -0
  17. package/dist/builder/flow.js +41 -0
  18. package/dist/builder/flow.js.map +1 -0
  19. package/dist/guide/heuristic01.d.ts +2 -0
  20. package/dist/guide/heuristic01.js +119 -0
  21. package/dist/guide/heuristic01.js.map +1 -0
  22. package/dist/guide.d.ts +2 -0
  23. package/dist/guide.js +60 -0
  24. package/dist/guide.js.map +1 -0
  25. package/dist/parse.d.ts +1 -1
  26. package/dist/parse.js +5 -4
  27. package/dist/parse.js.map +1 -1
  28. package/dist/resolver.d.ts +2 -0
  29. package/dist/resolver.js +62 -0
  30. package/dist/resolver.js.map +1 -0
  31. package/dist/transform/entity.js +25 -4
  32. package/dist/transform/entity.js.map +1 -1
  33. package/dist/transform/field.js +4 -84
  34. package/dist/transform/field.js.map +1 -1
  35. package/dist/transform/operation.d.ts +2 -2
  36. package/dist/transform/operation.js +60 -30
  37. package/dist/transform/operation.js.map +1 -1
  38. package/dist/transform/top.d.ts +2 -2
  39. package/dist/transform/top.js +5 -4
  40. package/dist/transform/top.js.map +1 -1
  41. package/dist/transform.d.ts +1 -1
  42. package/dist/transform.js +20 -10
  43. package/dist/transform.js.map +1 -1
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/dist/types.d.ts +691 -0
  46. package/dist/types.js +39 -0
  47. package/dist/types.js.map +1 -0
  48. package/dist/utility.d.ts +5 -0
  49. package/dist/utility.js +84 -0
  50. package/dist/utility.js.map +1 -0
  51. package/model/apidef.jsonic +28 -24
  52. package/package.json +9 -7
  53. package/src/apidef.ts +94 -271
  54. package/src/builder/entity/apiEntity.ts +88 -0
  55. package/src/builder/entity/def.ts +44 -0
  56. package/src/builder/entity.ts +54 -0
  57. package/src/builder/flow/flowHeuristic01.ts +200 -0
  58. package/src/builder/flow.ts +61 -0
  59. package/src/guide/heuristic01.ts +178 -0
  60. package/src/guide.ts +87 -0
  61. package/src/parse.ts +6 -4
  62. package/src/resolver.ts +91 -0
  63. package/src/transform/entity.ts +36 -10
  64. package/src/transform/field.ts +9 -92
  65. package/src/transform/operation.ts +112 -46
  66. package/src/transform/top.ts +11 -9
  67. package/src/transform.ts +22 -11
  68. package/src/types.ts +89 -0
  69. package/src/utility.ts +161 -0
  70. package/dist/transform/manual.d.ts +0 -3
  71. package/dist/transform/manual.js +0 -12
  72. package/dist/transform/manual.js.map +0 -1
  73. package/src/transform/manual.ts +0 -29
package/dist/apidef.d.ts CHANGED
@@ -1,36 +1,10 @@
1
- import { Pino } from '@voxgig/util';
2
- type ApiDefOptions = {
3
- def?: string;
4
- fs?: any;
5
- pino?: ReturnType<typeof Pino>;
6
- debug?: boolean | string;
7
- folder?: string;
8
- meta?: Record<string, any>;
9
- outprefix?: string;
10
- };
11
- type ApiModel = {
12
- main: {
13
- api: {
14
- entity: Record<string, any>;
15
- };
16
- def: Record<string, any>;
17
- };
18
- };
1
+ import type { ApiDefOptions, ApiModel } from './types';
2
+ import { parse } from './parse';
19
3
  declare function ApiDef(opts: ApiDefOptions): {
20
4
  generate: (spec: any) => Promise<{
21
- ok: boolean;
22
- name: string;
23
- processResult: {
24
- ok: boolean;
25
- msg: string;
26
- results: import("./transform").TransformResult[];
27
- };
28
- apimodel?: undefined;
29
- } | {
30
5
  ok: boolean;
31
6
  name: string;
32
7
  apimodel: ApiModel;
33
- processResult?: undefined;
34
8
  }>;
35
9
  };
36
10
  declare namespace ApiDef {
@@ -40,4 +14,4 @@ declare namespace ApiDef {
40
14
  }>;
41
15
  }
42
16
  export type { ApiDefOptions, };
43
- export { ApiDef, };
17
+ export { ApiDef, parse, };
package/dist/apidef.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- /* Copyright (c) 2024 Voxgig, MIT License */
2
+ /* Copyright (c) 2024-2025 Voxgig, MIT License */
3
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
4
  if (k2 === undefined) k2 = k;
5
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -37,50 +37,44 @@ 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.parse = void 0;
40
41
  exports.ApiDef = ApiDef;
41
42
  const Fs = __importStar(require("node:fs"));
42
43
  const node_path_1 = __importDefault(require("node:path"));
43
- const node_util_1 = require("node:util");
44
- const openapi_core_1 = require("@redocly/openapi-core");
45
- const gubu_1 = require("gubu");
46
44
  const jostraca_1 = require("jostraca");
47
45
  const util_1 = require("@voxgig/util");
46
+ const types_1 = require("./types");
47
+ const guide_1 = require("./guide");
48
+ const parse_1 = require("./parse");
49
+ Object.defineProperty(exports, "parse", { enumerable: true, get: function () { return parse_1.parse; } });
48
50
  const transform_1 = require("./transform");
49
- const ModelShape = (0, gubu_1.Gubu)({
50
- def: String,
51
- main: {
52
- sdk: {},
53
- def: {},
54
- api: {},
55
- }
56
- });
57
- const OpenModelShape = (0, gubu_1.Gubu)((0, gubu_1.Open)(ModelShape));
58
- const BuildShape = (0, gubu_1.Gubu)({
59
- spec: {
60
- base: '',
61
- path: '',
62
- debug: '',
63
- use: {},
64
- res: [],
65
- require: '',
66
- log: {},
67
- fs: (0, gubu_1.Any)(),
68
- watch: {
69
- mod: true,
70
- add: true,
71
- rem: true,
72
- }
73
- }
74
- });
75
- const OpenBuildShape = (0, gubu_1.Gubu)((0, gubu_1.Open)(BuildShape));
51
+ const resolver_1 = require("./resolver");
52
+ const utility_1 = require("./utility");
53
+ const top_1 = require("./transform/top");
54
+ const entity_1 = require("./transform/entity");
55
+ const operation_1 = require("./transform/operation");
56
+ const field_1 = require("./transform/field");
57
+ const entity_2 = require("./builder/entity");
58
+ const flow_1 = require("./builder/flow");
76
59
  function ApiDef(opts) {
60
+ // TODO: gubu opts!
77
61
  const fs = opts.fs || Fs;
78
62
  const pino = (0, util_1.prettyPino)('apidef', opts);
79
63
  const log = pino.child({ cmp: 'apidef' });
64
+ opts.strategy = opts.strategy || 'heuristic01';
80
65
  async function generate(spec) {
81
66
  const start = Date.now();
82
- const model = OpenModelShape(spec.model);
83
- const build = OpenBuildShape(spec.build);
67
+ const model = (0, types_1.OpenModelShape)(spec.model);
68
+ const build = (0, types_1.OpenBuildShape)(spec.build);
69
+ (0, jostraca_1.names)(model, model.name);
70
+ const apimodel = {
71
+ main: {
72
+ api: {
73
+ entity: {}
74
+ },
75
+ def: {},
76
+ },
77
+ };
84
78
  const buildspec = build.spec;
85
79
  let defpath = model.def;
86
80
  // TOOD: defpath should be independently defined
@@ -91,61 +85,51 @@ function ApiDef(opts) {
91
85
  });
92
86
  // TODO: Validate spec
93
87
  const ctx = {
88
+ fs,
94
89
  log,
95
90
  spec,
96
91
  opts,
97
92
  util: { fixName: transform_1.fixName },
98
93
  defpath: node_path_1.default.dirname(defpath),
99
94
  model,
95
+ apimodel,
96
+ def: undefined
100
97
  };
101
- const transformSpec = await (0, transform_1.resolveTransforms)(ctx);
102
- log.debug({
103
- point: 'transform', spec: transformSpec,
104
- note: log.levelVal <= 20 ? (0, node_util_1.inspect)(transformSpec) : ''
98
+ const defsrc = (0, utility_1.loadFile)(defpath, 'def', fs, log);
99
+ const def = await (0, parse_1.parse)('OpenAPI', defsrc, { file: defpath });
100
+ ctx.def = def;
101
+ const guideBuilder = await (0, guide_1.resolveGuide)(ctx);
102
+ // const transformSpec = await resolveTransforms(ctx)
103
+ const transforms = await (0, resolver_1.resolveElements)(ctx, 'transform', 'openapi', {
104
+ top: top_1.topTransform,
105
+ entity: entity_1.entityTransform,
106
+ operation: operation_1.operationTransform,
107
+ field: field_1.fieldTransform,
105
108
  });
106
- let source;
107
- try {
108
- source = fs.readFileSync(defpath, 'utf8');
109
- }
110
- catch (err) {
111
- log.error({ read: 'fail', what: 'def', file: defpath, err });
112
- throw err;
113
- }
114
- const config = await (0, openapi_core_1.createConfig)({});
115
- let bundle;
116
- try {
117
- bundle = await (0, openapi_core_1.bundleFromString)({
118
- source,
119
- config,
120
- dereference: true,
121
- });
122
- }
123
- catch (err) {
124
- log.error({ parse: 'fail', what: 'openapi', file: defpath, err });
125
- throw err;
126
- }
127
- const apimodel = {
128
- main: {
129
- api: {
130
- entity: {}
131
- },
132
- def: {},
133
- },
134
- };
135
- const def = bundle.bundle.parsed;
136
- const processResult = await (0, transform_1.processTransforms)(ctx, transformSpec, apimodel, def);
137
- if (!processResult.ok) {
138
- log.error({
139
- fail: 'process', point: 'transform-result',
140
- result: processResult, note: processResult.msg,
141
- err: processResult.results[0]?.err
142
- });
143
- return { ok: false, name: 'apidef', processResult };
144
- }
145
- const modelPath = node_path_1.default.normalize(spec.config.model);
146
- buildModel_api(apimodel, modelPath);
147
- buildModel_def(apimodel, modelPath);
148
- buildModel_entity(apimodel, modelPath);
109
+ const builders = await (0, resolver_1.resolveElements)(ctx, 'builder', 'standard', {
110
+ entity: entity_2.makeEntityBuilder,
111
+ flow: flow_1.makeFlowBuilder,
112
+ });
113
+ const jostraca = (0, jostraca_1.Jostraca)({
114
+ now: spec.now,
115
+ fs: () => fs,
116
+ log,
117
+ });
118
+ const jmodel = {};
119
+ const root = () => (0, jostraca_1.Project)({ folder: '.' }, async () => {
120
+ guideBuilder();
121
+ // entityBuilder()
122
+ // flowBuilder()
123
+ for (let builder of builders) {
124
+ builder();
125
+ }
126
+ });
127
+ const jres = await jostraca.generate({
128
+ // folder: Path.dirname(opts.folder as string),
129
+ folder: opts.folder,
130
+ model: jmodel,
131
+ existing: { txt: { merge: true } }
132
+ }, root);
149
133
  log.info({ point: 'generate-end', note: 'success', break: true });
150
134
  return {
151
135
  ok: true,
@@ -153,102 +137,16 @@ function ApiDef(opts) {
153
137
  apimodel,
154
138
  };
155
139
  }
156
- function buildModel_api(apimodel, modelPath) {
157
- const modelapi = { main: { api: apimodel.main.api } };
158
- let modelSrc = JSON.stringify(modelapi, null, 2);
159
- modelSrc =
160
- '# GENERATED FILE - DO NOT EDIT\n\n' +
161
- modelSrc.substring(1, modelSrc.length - 1).replace(/\n /g, '\n');
162
- writeChanged('api-model', modelPath, modelSrc);
163
- return modelPath;
164
- }
165
- function buildModel_def(apimodel, modelPath) {
166
- const modelBasePath = node_path_1.default.dirname(modelPath);
167
- const defFilePath = node_path_1.default.join(modelBasePath, (null == opts.outprefix ? '' : opts.outprefix) + 'def-generated.jsonic');
168
- const modelDef = { main: { def: apimodel.main.def } };
169
- let modelDefSrc = JSON.stringify(modelDef, null, 2);
170
- modelDefSrc =
171
- '# GENERATED FILE - DO NOT EDIT\n\n' +
172
- modelDefSrc.substring(1, modelDefSrc.length - 1).replace(/\n /g, '\n');
173
- writeChanged('def-model', defFilePath, modelDefSrc);
174
- }
175
- function buildModel_entity(apimodel, modelPath) {
176
- const modelBasePath = node_path_1.default.dirname(modelPath);
177
- const entityIncludes = [];
178
- (0, jostraca_1.each)(apimodel.main.api.entity, ((entity) => {
179
- entityIncludes.push(entity.name);
180
- // HEURISTIC: id may be name_id or nameId
181
- const fieldAliases = (0, jostraca_1.each)(entity.op, (op) => (0, jostraca_1.each)(op.param))
182
- .flat()
183
- .reduce((a, p) => (entity.field[p.keys] ? null :
184
- (p.key$.toLowerCase().includes(entity.name) ?
185
- (a[p.key$] = 'id', a.id = p.key$) :
186
- null)
187
- , a), {});
188
- const fieldAliasesSrc = JSON.stringify(fieldAliases, null, 2)
189
- .replace(/\n/g, '\n ');
190
- const entityFileSrc = `
191
- # Entity ${entity.name}
192
-
193
- main: sdk: entity: ${entity.name}: {
194
- alias: field: ${fieldAliasesSrc}
195
- }
196
-
197
- `;
198
- const entityFilePath = node_path_1.default.join(modelBasePath, 'entity', (null == opts.outprefix ? '' : opts.outprefix) + entity.name + '.jsonic');
199
- fs.mkdirSync(node_path_1.default.dirname(entityFilePath), { recursive: true });
200
- // TODO: diff merge
201
- writeChanged('entity-model', entityFilePath, entityFileSrc, { update: false });
202
- }));
203
- modifyModel(fs, node_path_1.default.join(modelBasePath, (null == opts.outprefix ? '' : opts.outprefix) + 'sdk.jsonic'), entityIncludes);
204
- }
205
- function writeChanged(point, path, content, flags) {
206
- let exists = false;
207
- let changed = false;
208
- flags = flags || {};
209
- flags.update = null == flags.update ? true : !!flags.update;
210
- let action = '';
211
- try {
212
- let existingContent = '';
213
- path = node_path_1.default.normalize(path);
214
- exists = fs.existsSync(path);
215
- if (exists) {
216
- action = 'read';
217
- existingContent = fs.readFileSync(path, 'utf8');
218
- }
219
- changed = existingContent !== content;
220
- action = flags.update ? 'write' : 'skip';
221
- log.info({
222
- point: 'write-' + point,
223
- note: (changed ? '' : 'not-') + 'changed ' + path,
224
- write: 'file', skip: !changed, exists, changed,
225
- contentLength: content.length, file: path
226
- });
227
- if (!exists || (changed && flags.update)) {
228
- fs.writeFileSync(path, content);
229
- }
230
- }
231
- catch (err) {
232
- log.error({
233
- fail: action, point, file: path, exists, changed,
234
- contentLength: content.length, err
235
- });
236
- err.__logged__ = true;
237
- throw err;
238
- }
239
- }
240
140
  return {
241
141
  generate,
242
142
  };
243
143
  }
244
144
  ApiDef.makeBuild = async function (opts) {
245
145
  let apidef = undefined;
246
- const outprefix = null == opts.outprefix ? '' : opts.outprefix;
146
+ // const outprefix = null == opts.outprefix ? '' : opts.outprefix
247
147
  const config = {
248
148
  def: opts.def || 'no-def',
249
149
  kind: 'openapi3',
250
- model: opts.folder ?
251
- (opts.folder + '/' + outprefix + 'api-generated.jsonic') : 'no-model',
252
150
  meta: opts.meta || {},
253
151
  };
254
152
  const build = async function (model, build, ctx) {
@@ -263,23 +161,4 @@ ApiDef.makeBuild = async function (opts) {
263
161
  build.step = 'pre';
264
162
  return build;
265
163
  };
266
- async function modifyModel(fs, path, entityIncludes) {
267
- // TODO: This is a kludge.
268
- // Aontu should provide option for as-is AST so that can be used
269
- // to find injection point more reliably
270
- let src = fs.existsSync(path) ? fs.readFileSync(path, 'utf8') :
271
- 'main: sdk: entity: {}\n';
272
- let newsrc = '' + src;
273
- // Inject target file references into model
274
- entityIncludes.sort().map((entname) => {
275
- const lineRE = new RegExp(`@"entity/${entname}.jsonic"`);
276
- if (!src.match(lineRE)) {
277
- newsrc = newsrc.replace(/(main:\s+sdk:\s+entity:\s+\{\s*\}\n)/, '$1' +
278
- `@"entity/${entname}.jsonic"\n`);
279
- }
280
- });
281
- if (newsrc.length !== src.length) {
282
- fs.writeFileSync(path, newsrc);
283
- }
284
- }
285
164
  //# sourceMappingURL=apidef.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apidef.js","sourceRoot":"","sources":["../src/apidef.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefOptions } from '../../types';
2
+ declare function resolveApiEntity(apimodel: any, opts: ApiDefOptions): () => void;
3
+ export { resolveApiEntity };
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ /* Copyright (c) 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.resolveApiEntity = resolveApiEntity;
8
+ const node_path_1 = __importDefault(require("node:path"));
9
+ const jostraca_1 = require("jostraca");
10
+ const utility_1 = require("../../utility");
11
+ function resolveApiEntity(apimodel, opts) {
12
+ const barrel = [
13
+ '# Entity Models\n'
14
+ ];
15
+ const entityFiles = [];
16
+ (0, jostraca_1.each)(apimodel.main.api.entity, ((entity, entityName) => {
17
+ const entityFile = (null == opts.outprefix ? '' : opts.outprefix) + entityName + '.jsonic';
18
+ const entityJSON = JSON.stringify(entity, null, 2);
19
+ const fieldAliasesSrc = fieldAliases(entity);
20
+ const entitySrc = `# Entity: ${entity.name}\n\n` +
21
+ `main: api: entity: ${entity.name}: {\n\n` +
22
+ ` alias: field: ${fieldAliasesSrc}\n` +
23
+ (0, utility_1.formatJsonSrc)(entityJSON.substring(1, entityJSON.length - 1)) +
24
+ '\n\n}\n';
25
+ entityFiles.push({ name: entityFile, src: entitySrc });
26
+ barrel.push(`@"${node_path_1.default.basename(entityFile)}"`);
27
+ }));
28
+ const indexFile = (null == opts.outprefix ? '' : opts.outprefix) + 'api-entity-index.jsonic';
29
+ return function apiEntityBuilder() {
30
+ (0, jostraca_1.Folder)({ name: 'api' }, () => {
31
+ (0, jostraca_1.each)(entityFiles, (entityFile) => {
32
+ (0, jostraca_1.File)({ name: entityFile.name }, () => (0, jostraca_1.Content)(entityFile.src));
33
+ });
34
+ (0, jostraca_1.File)({ name: indexFile }, () => (0, jostraca_1.Content)(barrel.join('\n')));
35
+ });
36
+ };
37
+ }
38
+ function fieldAliases(entity) {
39
+ // HEURISTIC: id may be name_id or nameId
40
+ const fieldAliases = (0, jostraca_1.each)(entity.op, (op) => (0, jostraca_1.each)(op.param))
41
+ .flat()
42
+ .reduce((a, p) => (entity.field[p.keys] ? null :
43
+ (p.key$.toLowerCase().includes(entity.name) ?
44
+ (a[p.key$] = 'id', a.id = p.key$) :
45
+ null)
46
+ , a), {});
47
+ const fieldAliasesSrc = JSON.stringify(fieldAliases, null, 2)
48
+ .replace(/\n/g, '\n ');
49
+ return fieldAliasesSrc;
50
+ }
51
+ //# sourceMappingURL=apiEntity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiEntity.js","sourceRoot":"","sources":["../../../src/builder/entity/apiEntity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ApiDefOptions, ApiModel } from '../../types';
2
+ declare function resolveDef(apimodel: ApiModel, opts: ApiDefOptions): () => void;
3
+ export { resolveDef };
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Voxgig, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.resolveDef = resolveDef;
5
+ const jostraca_1 = require("jostraca");
6
+ function resolveDef(apimodel, opts) {
7
+ const defFile = (null == opts.outprefix ? '' : opts.outprefix) + 'api-def.jsonic';
8
+ const modelDef = { main: { def: apimodel.main.def } };
9
+ let modelDefSrc = JSON.stringify(modelDef, null, 2);
10
+ modelDefSrc =
11
+ '# API Definition\n\n' +
12
+ modelDefSrc.substring(1, modelDefSrc.length - 1).replace(/\n /g, '\n');
13
+ return function defBuilder() {
14
+ (0, jostraca_1.Folder)({ name: 'api' }, () => {
15
+ (0, jostraca_1.File)({ name: defFile }, () => (0, jostraca_1.Content)(modelDefSrc));
16
+ });
17
+ };
18
+ }
19
+ //# sourceMappingURL=def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"def.js","sourceRoot":"","sources":["../../../src/builder/entity/def.ts"],"names":[],"mappings":";AAAA,4CAA4C;;AA0C1C,gCAAU;AA/BZ,uCAIiB;AAGjB,SAAS,UAAU,CACjB,QAAkB,EAClB,IAAmB;IAEnB,MAAM,OAAO,GACX,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAA;IAEnE,MAAM,QAAQ,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,CAAA;IACrD,IAAI,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAEnD,WAAW;QACT,sBAAsB;YACtB,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;IAEzE,OAAO,SAAS,UAAU;QACxB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;YAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,CAAC,IAAA,kBAAO,EAAC,WAAW,CAAC,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AAEH,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function makeEntityBuilder(ctx: any): Promise<() => void>;
2
+ export { makeEntityBuilder };
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /* Copyright (c) 2025 Voxgig, MIT License */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.makeEntityBuilder = makeEntityBuilder;
5
+ // import { each } from 'jostraca'
6
+ // import type {
7
+ // ApiDefOptions,
8
+ // Log,
9
+ // FsUtil,
10
+ // } from '../types'
11
+ // import {
12
+ // writeChanged
13
+ // } from '../utility'
14
+ const apiEntity_1 = require("./entity/apiEntity");
15
+ const def_1 = require("./entity/def");
16
+ // import {
17
+ // resolveSdkEntity
18
+ // } from './entity/sdkEntity'
19
+ async function makeEntityBuilder(ctx) {
20
+ const { apimodel, opts } = ctx;
21
+ const apiEntityBuilder = (0, apiEntity_1.resolveApiEntity)(apimodel, opts);
22
+ const defBuilder = (0, def_1.resolveDef)(apimodel, opts);
23
+ // const sdkEntityBuilder = resolveSdkEntity(apimodel, opts)
24
+ return function entityBuilder() {
25
+ apiEntityBuilder();
26
+ defBuilder();
27
+ // sdkEntityBuilder()
28
+ };
29
+ }
30
+ //# sourceMappingURL=entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/builder/entity.ts"],"names":[],"mappings":";AAAA,4CAA4C;;AAoD1C,8CAAiB;AAhDnB,kCAAkC;AAGlC,gBAAgB;AAChB,mBAAmB;AACnB,SAAS;AACT,YAAY;AACZ,oBAAoB;AAGpB,WAAW;AACX,iBAAiB;AACjB,sBAAsB;AAGtB,kDAE2B;AAE3B,sCAEqB;AAErB,WAAW;AACX,qBAAqB;AACrB,8BAA8B;AAI9B,KAAK,UAAU,iBAAiB,CAAC,GAAQ;IACvC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,GAAG,CAAA;IAE9B,MAAM,gBAAgB,GAAG,IAAA,4BAAgB,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACzD,MAAM,UAAU,GAAG,IAAA,gBAAU,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IAC7C,4DAA4D;IAE5D,OAAO,SAAS,aAAa;QAC3B,gBAAgB,EAAE,CAAA;QAClB,UAAU,EAAE,CAAA;QACZ,qBAAqB;IACvB,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ declare function flowHeuristic01(ctx: any): Promise<any[]>;
2
+ export { flowHeuristic01 };