@voxgig/create-sdkgen 0.3.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/bin/create-sdkgen +36 -20
  2. package/dist/create-sdkgen.d.ts +2 -0
  3. package/dist/create-sdkgen.js +51 -5
  4. package/dist/create-sdkgen.js.map +1 -1
  5. package/dist/project/standard/CreateRoot.d.ts +2 -0
  6. package/dist/project/standard/CreateRoot.js +50 -0
  7. package/dist/project/standard/CreateRoot.js.map +1 -0
  8. package/dist/project/standard/ModelSdk.js +6 -1
  9. package/dist/project/standard/ModelSdk.js.map +1 -1
  10. package/dist/tsconfig.tsbuildinfo +1 -1
  11. package/package.json +10 -12
  12. package/project/standard/.sdk/model/api/api-info.jsonic +5 -0
  13. package/project/standard/.sdk/model/config.jsonic +3 -1
  14. package/project/standard/.sdk/model/{api/api-entity-index.jsonic → entity/entity-index.jsonic} +1 -0
  15. package/project/standard/.sdk/model/guide/guide.jsonic +8 -0
  16. package/project/standard/.sdk/model/sdk.fragment.jsonic +6 -10
  17. package/project/standard/.sdk/package.json +5 -7
  18. package/project/standard/.sdk/src/BuildSDK.ts +113 -0
  19. package/project/standard/.sdk/src/Root.ts +19 -7
  20. package/project/standard/.sdk/src/Top.ts +6 -2
  21. package/project/standard/.sdk/test/.model-config/model-config.json +5 -1
  22. package/project/standard/.sdk/test/primary/{outward.jsonic → clean.jsonic} +0 -1
  23. package/project/standard/.sdk/test/primary/done.jsonic +0 -1
  24. package/project/standard/.sdk/test/primary/{inward.jsonic → featureAdd.jsonic} +0 -1
  25. package/project/standard/.sdk/test/primary/featureHook.jsonic +2 -0
  26. package/project/standard/.sdk/test/primary/featureInit.jsonic +2 -0
  27. package/project/standard/.sdk/test/primary/fetcher.jsonic +2 -0
  28. package/project/standard/.sdk/test/primary/makeContext.jsonic +4 -0
  29. package/project/standard/.sdk/test/primary/makeError.jsonic +16 -0
  30. package/project/standard/.sdk/test/primary/makeFetchDef.jsonic +2 -0
  31. package/project/standard/.sdk/test/primary/{options.jsonic → makeOptions.jsonic} +5 -6
  32. package/project/standard/.sdk/test/primary/{request.jsonic → makeRequest.jsonic} +7 -13
  33. package/project/standard/.sdk/test/primary/makeResponse.jsonic +22 -0
  34. package/project/standard/.sdk/test/primary/makeResult.jsonic +2 -0
  35. package/project/standard/.sdk/test/primary/{spec.jsonic → makeSpec.jsonic} +9 -5
  36. package/project/standard/.sdk/test/primary/makeTarget.jsonic +2 -0
  37. package/project/standard/.sdk/test/primary/makeUrl.jsonic +21 -0
  38. package/project/standard/.sdk/test/primary/operator.jsonic +10 -53
  39. package/project/standard/.sdk/test/primary/{findparam.jsonic → param.jsonic} +6 -7
  40. package/project/standard/.sdk/test/primary/prepareAuth.jsonic +13 -0
  41. package/project/standard/.sdk/test/primary/prepareBody.jsonic +18 -0
  42. package/project/standard/.sdk/test/primary/prepareHeaders.jsonic +4 -0
  43. package/project/standard/.sdk/test/primary/prepareMethod.jsonic +10 -0
  44. package/project/standard/.sdk/test/primary/prepareParams.jsonic +9 -0
  45. package/project/standard/.sdk/test/primary/preparePath.jsonic +2 -0
  46. package/project/standard/.sdk/test/primary/prepareQuery.jsonic +8 -0
  47. package/project/standard/.sdk/test/primary/primary-test-index.jsonic +30 -0
  48. package/project/standard/.sdk/test/primary/resultBasic.jsonic +14 -0
  49. package/project/standard/.sdk/test/primary/resultBody.jsonic +4 -0
  50. package/project/standard/.sdk/test/primary/resultHeaders.jsonic +7 -0
  51. package/project/standard/.sdk/test/primary/transformRequest.jsonic +8 -0
  52. package/project/standard/.sdk/test/primary/transformResponse.jsonic +10 -0
  53. package/project/standard/.sdk/test/struct/merge.jsonic +102 -4
  54. package/project/standard/.sdk/test/struct/minor.jsonic +106 -38
  55. package/project/standard/.sdk/test/struct/select.jsonic +86 -5
  56. package/project/standard/.sdk/test/struct/test.json +16635 -0
  57. package/project/standard/.sdk/test/struct/test.jsonic +25 -0
  58. package/project/standard/.sdk/test/struct/transform.jsonic +100 -1
  59. package/project/standard/.sdk/test/struct/validate.jsonic +82 -45
  60. package/project/standard/.sdk/test/struct/walk.jsonic +57 -6
  61. package/project/standard/.sdk/test/test.json +5952 -3326
  62. package/project/standard/.sdk/test/test.jsonic +2 -43
  63. package/src/create-sdkgen.ts +74 -7
  64. package/src/project/standard/{Root.ts → CreateRoot.ts} +11 -6
  65. package/src/project/standard/ModelSdk.ts +6 -1
  66. package/dist/project/standard/Root.d.ts +0 -2
  67. package/dist/project/standard/Root.js +0 -79
  68. package/dist/project/standard/Root.js.map +0 -1
  69. package/dist/standard/ModelSdk.d.ts +0 -2
  70. package/dist/standard/ModelSdk.js +0 -19
  71. package/dist/standard/ModelSdk.js.map +0 -1
  72. package/dist/standard/Root.d.ts +0 -2
  73. package/dist/standard/Root.js +0 -77
  74. package/dist/standard/Root.js.map +0 -1
  75. package/dist/utility.d.ts +0 -2
  76. package/dist/utility.js +0 -5
  77. package/dist/utility.js.map +0 -1
  78. package/project/standard/.sdk/model/api/api-def.jsonic +0 -5
  79. package/project/standard/.sdk/model/guide.jsonic +0 -5
  80. package/project/standard/.sdk/model/target/target-index.jsonic~ +0 -4
  81. package/project/standard/.sdk/test/primary/auth.jsonic +0 -20
  82. package/project/standard/.sdk/test/primary/body.jsonic +0 -27
  83. package/project/standard/.sdk/test/primary/contextify.jsonic +0 -5
  84. package/project/standard/.sdk/test/primary/error.jsonic +0 -19
  85. package/project/standard/.sdk/test/primary/fullurl.jsonic +0 -50
  86. package/project/standard/.sdk/test/primary/headers.jsonic +0 -12
  87. package/project/standard/.sdk/test/primary/method.jsonic +0 -11
  88. package/project/standard/.sdk/test/primary/params.jsonic +0 -10
  89. package/project/standard/.sdk/test/primary/query.jsonic +0 -9
  90. package/project/standard/.sdk/test/primary/reqform.jsonic +0 -9
  91. package/project/standard/.sdk/test/primary/resbasic.jsonic +0 -15
  92. package/project/standard/.sdk/test/primary/resbody.jsonic +0 -5
  93. package/project/standard/.sdk/test/primary/resform.jsonic +0 -11
  94. package/project/standard/.sdk/test/primary/resheaders.jsonic +0 -9
  95. package/project/standard/.sdk/test/primary/response.jsonic +0 -20
package/bin/create-sdkgen CHANGED
@@ -4,17 +4,16 @@ const Path = require('node:path')
4
4
  const { statSync } = require('node:fs')
5
5
  const { parseArgs } = require('node:util')
6
6
 
7
- const { Gubu, Fault, One } = require('gubu')
7
+ const { Shape, Fault, One } = require('shape')
8
8
 
9
9
  const Pkg = require('../package.json')
10
10
 
11
11
  const { CreateSdkGen } = require('../dist/create-sdkgen.js')
12
12
 
13
- const rootpath = require.resolve('../dist/standard/Root')
13
+ // const rootpath = require.resolve('../dist/standard/CreateRoot')
14
14
 
15
15
  let KONSOLE = global['con'+'sole']
16
16
 
17
-
18
17
  run()
19
18
 
20
19
 
@@ -22,10 +21,6 @@ async function run() {
22
21
  try {
23
22
  let options = resolveOptions()
24
23
 
25
- if(options.debug) {
26
- DEBUG = true
27
- }
28
-
29
24
  if(options.version) {
30
25
  version()
31
26
  }
@@ -64,12 +59,13 @@ function generate(options) {
64
59
 
65
60
 
66
61
  const spec = {
67
- root: 'Root',
62
+ root: 'CreateRoot',
68
63
 
69
64
  name: options.name,
70
65
  def: options.def,
71
66
  dryrun: options.dryrun,
72
67
  project: options.project,
68
+ folder: options.folder,
73
69
  install: options.install,
74
70
  target: options.target,
75
71
  feature: options.feature,
@@ -103,14 +99,19 @@ function resolveOptions() {
103
99
  default: 'standard'
104
100
  },
105
101
 
102
+ folder: {
103
+ type: 'string',
104
+ short: 'o',
105
+ default: ''
106
+ },
107
+
106
108
  dryrun: {
107
109
  type: 'boolean',
108
- short: 'y',
110
+ default: false,
109
111
  },
110
112
 
111
113
  install: {
112
114
  type: 'boolean',
113
- short: 'y',
114
115
  default: true,
115
116
  },
116
117
 
@@ -128,7 +129,6 @@ function resolveOptions() {
128
129
 
129
130
  debug: {
130
131
  type: 'string',
131
- short: 'g',
132
132
  default: 'info'
133
133
  },
134
134
 
@@ -157,17 +157,18 @@ function resolveOptions() {
157
157
  name = null == name ? '' : name
158
158
  name = '' === name && (args.values.help || args.values.version) ? '__none__' : name
159
159
 
160
- targets = args.values.target || []
160
+ let targets = args.values.target || []
161
161
  if( 1 < args.positionals.length ) {
162
162
  targets.push(args.positionals.slice(1))
163
163
  }
164
164
 
165
- features = args.values.feature || []
165
+ let features = args.values.feature || []
166
166
 
167
167
  const options = {
168
168
  name,
169
169
  def: args.values.def,
170
170
  project: args.values.project,
171
+ folder: args.values.folder,
171
172
  dryrun: !!args.values.dryrun,
172
173
  install: !!args.values.install,
173
174
  target: targets,
@@ -178,16 +179,21 @@ function resolveOptions() {
178
179
  }
179
180
 
180
181
  // console.log('ARGS', args, options)
182
+
183
+ if(null == options.folder || '' == options.folder) {
184
+ options.folder = options.name + '-sdk'
185
+ }
181
186
 
182
187
  return options
183
188
  }
184
189
 
185
190
 
186
191
  function validateOptions(rawOptions) {
187
- const optShape = Gubu({
192
+ const optShape = Shape({
188
193
  name: Fault('The first argument must be the project name.', String),
189
194
  def: '',
190
195
  project: String,
196
+ folder: String,
191
197
  dryrun: Boolean,
192
198
  install: Boolean,
193
199
  target: [String],
@@ -209,6 +215,9 @@ function validateOptions(rawOptions) {
209
215
 
210
216
 
211
217
  function handleError(err) {
218
+ console.log(err)
219
+ console.trace()
220
+
212
221
  KONSOLE.log('Voxgig Create SDK Error: '+err)
213
222
  exit(err)
214
223
  }
@@ -232,16 +241,23 @@ Usage: npm create @voxgig/sdkgen@latest <name> <args>
232
241
  <args> are the command arguments:
233
242
 
234
243
  --def Path to the OpenAPI definition file (optional).
235
- -d
244
+ -d
236
245
 
237
246
  --project Project template (folder or package reference). Default: standard.
238
- -p
247
+ -p
248
+
249
+ --folder Target output folder. Default: ./<name>-sdk.
250
+ -o
251
+
252
+ --feature Features to add. Can be specified multiple times.
253
+ -f
254
+
255
+ --install Run installation scripts. Default: install.
256
+ --no-install
239
257
 
240
- --dryrun Perform a dry run, where no files are modified.
241
- -y
258
+ --dryrun Perform a dry run, where no files are modified. Default: no-dryrun.
242
259
 
243
260
  --debug Set log level (default: info): trace, error, debug, info, warn, fatal.
244
- -g
245
261
 
246
262
  --help Print this help message.
247
263
  -h
@@ -254,7 +270,7 @@ Examples:
254
270
 
255
271
  # Basic usage
256
272
  > npm create @voxgig/sdkgen@latest foo
257
- # Creates the SDK Project in the folder ./foo
273
+ # Creates the SDK Project in the folder ./foo-sdk
258
274
 
259
275
  See also: https://voxgig.com/sdkgen
260
276
  `
@@ -6,6 +6,7 @@ type FullCreateSdkGenOptions = {
6
6
  };
7
7
  type CreateSdkGenOptions = Partial<FullCreateSdkGenOptions>;
8
8
  type GenerateSpec = {
9
+ sdk_folder: string;
9
10
  name: string;
10
11
  def: string;
11
12
  root: string;
@@ -15,6 +16,7 @@ type GenerateSpec = {
15
16
  target?: string[];
16
17
  feature?: string[];
17
18
  install?: boolean;
19
+ folder?: string;
18
20
  };
19
21
  declare function CreateSdkGen(opts: FullCreateSdkGenOptions): {
20
22
  generate: (spec: GenerateSpec) => Promise<void>;
@@ -39,12 +39,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
40
  exports.CreateSdkGen = CreateSdkGen;
41
41
  const Fs = __importStar(require("node:fs"));
42
+ const Os = __importStar(require("node:os"));
42
43
  const node_path_1 = __importDefault(require("node:path"));
43
44
  const child_process_1 = require("child_process");
44
45
  const JostracaModule = __importStar(require("jostraca"));
45
46
  const util_1 = require("@voxgig/util");
46
47
  const package_json_1 = __importDefault(require("../package.json"));
47
48
  const { names, Jostraca } = JostracaModule;
49
+ const SDK_FOLDER = '.sdk';
48
50
  // TODO: CreateSdkGen opts and generate opts should be mostly the same, and
49
51
  // generate should override
50
52
  function CreateSdkGen(opts) {
@@ -65,10 +67,16 @@ function CreateSdkGen(opts) {
65
67
  const projectFolder = resolveProjectFolder(spec);
66
68
  const rootPath = node_path_1.default.join(projectFolder, spec.root);
67
69
  const rootModule = require(rootPath);
68
- const Root = rootModule.Root;
70
+ const CreateRoot = rootModule.CreateRoot;
69
71
  const name = spec.name;
70
72
  spec.def = (null == spec.def || '' === spec.def) ? name + '-openapi3.yml' : spec.def;
71
- const folder = node_path_1.default.join(process.cwd(), name + (name.endsWith('-sdk') ? '' : '-sdk'));
73
+ spec.sdk_folder = SDK_FOLDER;
74
+ const cwd = process.cwd();
75
+ const folder = (null == spec.folder || '' == spec.folder) ?
76
+ node_path_1.default.join(cwd, name + (name.endsWith('-sdk') ? '' : '-sdk')) :
77
+ node_path_1.default.isAbsolute(spec.folder) ? spec.folder :
78
+ node_path_1.default.join(cwd, spec.folder);
79
+ logCreate(folder);
72
80
  const jopts = {
73
81
  fs: () => fs,
74
82
  debug,
@@ -98,8 +106,8 @@ function CreateSdkGen(opts) {
98
106
  jostraca: jopts,
99
107
  note: JSON.stringify(jopts, null, 2)
100
108
  });
101
- const jres = await jostraca.generate(jopts, () => Root({ model, spec }));
102
- (0, util_1.showChanges)(jopts.log, 'generate-result', jres, node_path_1.default.dirname(process.cwd()));
109
+ const jres = await jostraca.generate(jopts, () => CreateRoot({ model, spec }));
110
+ (0, util_1.showChanges)(jopts.log, 'generate-result', jres, process.cwd());
103
111
  if (spec.dryrun || !spec.install) {
104
112
  log.info({ point: 'generate-install', note: 'skipping npm install' });
105
113
  }
@@ -120,6 +128,44 @@ function CreateSdkGen(opts) {
120
128
  }
121
129
  return projectFolder;
122
130
  }
131
+ function escapeShellArg(arg) {
132
+ // If arg contains no special characters, return as-is
133
+ if (/^[~a-zA-Z0-9_\-\.\/]+$/.test(arg)) {
134
+ return arg;
135
+ }
136
+ // Otherwise, wrap in single quotes and escape any single quotes
137
+ return "'" + arg.replace(/'/g, "'\\''") + "'";
138
+ }
139
+ function logCreate(folder) {
140
+ try {
141
+ const logFolder = node_path_1.default.join(folder, SDK_FOLDER, 'log');
142
+ if (!fs.existsSync(logFolder)) {
143
+ fs.mkdirSync(logFolder, { recursive: true });
144
+ }
145
+ const now = new Date();
146
+ const utcTimestamp = '[' + now.toISOString() + ']';
147
+ const timezoneName = Intl.DateTimeFormat().resolvedOptions().timeZone;
148
+ const localISOString = now.getFullYear() + '-' +
149
+ String(now.getMonth() + 1).padStart(2, '0') + '-' +
150
+ String(now.getDate()).padStart(2, '0') + 'T' +
151
+ String(now.getHours()).padStart(2, '0') + ':' +
152
+ String(now.getMinutes()).padStart(2, '0') + ':' +
153
+ String(now.getSeconds()).padStart(2, '0') + '.' +
154
+ String(now.getMilliseconds()).padStart(3, '0');
155
+ const localTimestamp = timezoneName + '=' + localISOString;
156
+ const homeDir = Os.homedir();
157
+ const command = process.argv
158
+ .map(arg => arg.replace(homeDir, '~'))
159
+ .map(escapeShellArg)
160
+ .join(' ');
161
+ const logLine = `${utcTimestamp} ${localTimestamp} CREATE ${command}\n`;
162
+ const logFile = node_path_1.default.join(logFolder, 'create.log');
163
+ fs.appendFileSync(logFile, logLine, 'utf8');
164
+ }
165
+ catch (err) {
166
+ log.debug({ point: 'logCreate-error', err });
167
+ }
168
+ }
123
169
  return {
124
170
  generate,
125
171
  };
@@ -128,7 +174,7 @@ async function installNpm(spec, opts, model) {
128
174
  const folder = opts.folder;
129
175
  const log = opts.log;
130
176
  return new Promise(async (resolve, reject) => {
131
- const cwd = node_path_1.default.resolve(folder, '.sdk');
177
+ const cwd = node_path_1.default.resolve(folder, SDK_FOLDER);
132
178
  const env = {
133
179
  ...process.env,
134
180
  PATH: `${node_path_1.default.dirname(process.execPath)}${node_path_1.default.delimiter}${process.env.PATH}`,
@@ -1 +1 @@
1
- {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ declare const CreateRoot: import("jostraca").Component;
2
+ export { CreateRoot };
@@ -0,0 +1,50 @@
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.CreateRoot = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ // import * as Fs from 'node:fs'
9
+ const jostraca_1 = require("jostraca");
10
+ const ModelSdk_1 = require("./ModelSdk");
11
+ // TODO: rename to RootSdk
12
+ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
13
+ const { ctx$, ctx$: { folder }, spec, model } = props;
14
+ const fs = ctx$.fs();
15
+ // TODO: move to @voxgig/util as duplicated
16
+ model.const = { name: model.name };
17
+ (0, jostraca_1.names)(model.const, model.name);
18
+ model.const.year = new Date().getFullYear();
19
+ ctx$.model = model;
20
+ (0, jostraca_1.Project)({ folder }, () => {
21
+ const from = node_path_1.default.resolve(node_path_1.default.join(__dirname + '..', '..', '..', '..', 'project', 'standard'));
22
+ // console.log('FROM', from)
23
+ (0, jostraca_1.Copy)({
24
+ from,
25
+ exclude: [/\.fragment\./]
26
+ });
27
+ const origdef = spec.def;
28
+ const projdef = node_path_1.default.basename(origdef);
29
+ spec.def = projdef;
30
+ (0, jostraca_1.Folder)({ name: spec.sdk_folder }, () => {
31
+ (0, jostraca_1.Folder)({ name: 'def' }, () => {
32
+ // TODO: file existence check should be jostraca util
33
+ if (fs.existsSync(origdef)) {
34
+ (0, jostraca_1.Copy)({ from: origdef, to: projdef });
35
+ }
36
+ else {
37
+ console.log('DEF NOT FOUND: ', origdef);
38
+ (0, jostraca_1.File)({ name: projdef }, () => {
39
+ (0, jostraca_1.Content)('# OpenAPI Definition');
40
+ });
41
+ }
42
+ });
43
+ (0, jostraca_1.Folder)({ name: 'model' }, () => {
44
+ (0, ModelSdk_1.ModelSdk)({ spec });
45
+ });
46
+ });
47
+ });
48
+ });
49
+ exports.CreateRoot = CreateRoot;
50
+ //# sourceMappingURL=CreateRoot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":";;;;;;AAEA,0DAA4B;AAC5B,gCAAgC;AAEhC,uCAUiB;AAGjB,yCAAqC;AAGrC,0BAA0B;AAC1B,MAAM,UAAU,GAAG,IAAA,cAAG,EAAC,SAAS,UAAU,CAAC,KAAU;IACnD,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAEpB,2CAA2C;IAC3C,KAAK,CAAC,KAAK,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAA;IAClC,IAAA,gBAAK,EAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;IAC9B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAE3C,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;IAElB,IAAA,kBAAO,EAAC,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACvB,MAAM,IAAI,GACR,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;QAEpF,4BAA4B;QAE5B,IAAA,eAAI,EAAC;YACH,IAAI;YACJ,OAAO,EAAE,CAAC,cAAc,CAAC;SAC1B,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAA;QACxB,MAAM,OAAO,GAAG,mBAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;QACtC,IAAI,CAAC,GAAG,GAAG,OAAO,CAAA;QAElB,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,EAAE;YACrC,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;gBAC3B,qDAAqD;gBACrD,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;oBAC3B,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;gBACtC,CAAC;qBACI,CAAC;oBACJ,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAA;oBAEvC,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;wBAC3B,IAAA,kBAAO,EAAC,sBAAsB,CAAC,CAAA;oBACjC,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,IAAA,iBAAM,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE;gBAC7B,IAAA,mBAAQ,EAAC,EAAE,IAAI,EAAE,CAAC,CAAA;YACpB,CAAC,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IAEJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAIA,gCAAU"}
@@ -1,12 +1,17 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.ModelSdk = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
4
8
  const jostraca_1 = require("jostraca");
5
9
  const ModelSdk = (0, jostraca_1.cmp)(function ModelSdk(props) {
6
10
  const { spec } = props;
11
+ const from = node_path_1.default.resolve(node_path_1.default.join(__dirname + '..', '..', '..', '..', 'project', 'standard'));
7
12
  (0, jostraca_1.File)({ name: 'sdk.jsonic' }, () => {
8
13
  (0, jostraca_1.Fragment)({
9
- from: __dirname + '/../../../project/standard/.sdk/model/sdk.fragment.jsonic',
14
+ from: node_path_1.default.join(from, spec.sdk_folder, 'model', 'sdk.fragment.jsonic'),
10
15
  replace: {
11
16
  ProjectName: spec.name,
12
17
  NAME: spec.name,
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../../src/project/standard/ModelSdk.ts"],"names":[],"mappings":";;;AACA,uCAKiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAGtB,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,mBAAQ,EAAC;YACP,IAAI,EAAE,SAAS,GAAG,2DAA2D;YAC7E,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
1
+ {"version":3,"file":"ModelSdk.js","sourceRoot":"","sources":["../../../src/project/standard/ModelSdk.ts"],"names":[],"mappings":";;;;;;AACA,0DAA4B;AAG5B,uCAKiB;AAIjB,MAAM,QAAQ,GAAG,IAAA,cAAG,EAAC,SAAS,QAAQ,CAAC,KAAU;IAC/C,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAA;IAEtB,MAAM,IAAI,GACR,mBAAI,CAAC,OAAO,CAAC,mBAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAEpF,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE;QAChC,IAAA,mBAAQ,EAAC;YACP,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,qBAAqB,CAAC;YACtE,OAAO,EAAE;gBACP,WAAW,EAAE,IAAI,CAAC,IAAI;gBACtB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG;aACd;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AAEJ,CAAC,CAAC,CAAA;AAIA,4BAAQ"}
@@ -1 +1 @@
1
- {"root":["../src/create-sdkgen.ts","../src/project/standard/modelsdk.ts","../src/project/standard/root.ts"],"version":"5.9.2"}
1
+ {"root":["../src/create-sdkgen.ts","../src/project/standard/createroot.ts","../src/project/standard/modelsdk.ts"],"version":"5.9.3"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voxgig/create-sdkgen",
3
- "version": "0.3.1",
3
+ "version": "0.5.0",
4
4
  "main": "dist/create-sdkgen.js",
5
5
  "type": "commonjs",
6
6
  "types": "dist/create-sdkgen.d.ts",
@@ -26,7 +26,7 @@
26
26
  "build": "tsc --build src test",
27
27
  "test-model": "voxgig-model project/.sdk/test/test.jsonic",
28
28
  "test-model-watch": "voxgig-model -w project/.sdk/test/test.jsonic",
29
- "clean": "rm -rf node_modules yarn.lock package-lock.json",
29
+ "clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
30
30
  "reset": "npm run clean && npm i && npm run build && npm test",
31
31
  "repo-tag": "REPO_VERSION=`node -e \"console.log(require('./package').version)\"` && echo TAG: v$REPO_VERSION && git commit -a -m v$REPO_VERSION && git push && git tag v$REPO_VERSION && git push --tags;",
32
32
  "repo-publish": "npm run clean && npm i && npm run repo-publish-quick",
@@ -41,17 +41,15 @@
41
41
  "LICENSE"
42
42
  ],
43
43
  "devDependencies": {
44
- "@hapi/code": "^9.0.3",
45
- "@types/node": "24.2.0",
46
- "esbuild": "^0.25.8",
47
- "memfs": "^4.36.0",
48
- "typescript": "^5.9.2"
44
+ "@types/node": "25.5.0",
45
+ "memfs": "^4.57.1",
46
+ "typescript": "^5.9.3"
49
47
  },
50
48
  "dependencies": {
51
- "@voxgig/util": "^0.2.0",
52
- "aontu": "^0.28.0",
53
- "chokidar": "^4.0.3",
54
- "gubu": "^9.0.0",
55
- "jostraca": "^0.24.1"
49
+ "@voxgig/util": "^0.4.0",
50
+ "aontu": "^0.39.0",
51
+ "chokidar": "^5.0.0",
52
+ "jostraca": "^0.28.0",
53
+ "shape": "^10.0.1"
56
54
  }
57
55
  }
@@ -0,0 +1,5 @@
1
+ # API Information
2
+
3
+
4
+
5
+
@@ -1,7 +1,9 @@
1
1
  # SDK Configuration
2
2
 
3
- main: sdk: config: {
3
+ main: kit: config: {
4
4
 
5
+ ## TODO: crate in apidef and put servers here
6
+
5
7
  # Authorization header token value prefix
6
8
  auth: prefix: 'Bearer'
7
9
 
@@ -0,0 +1,8 @@
1
+ # Guide
2
+
3
+ @"@voxgig/apidef/model/guide.jsonic"
4
+
5
+ @"base-guide.jsonic"
6
+
7
+
8
+
@@ -1,8 +1,4 @@
1
1
 
2
- # Generation guide.
3
- @"guide.jsonic"
4
-
5
-
6
2
  # Model definitions.
7
3
  @"@voxgig/apidef/model/apidef.jsonic"
8
4
  @"@voxgig/sdkgen/model/sdkgen.jsonic"
@@ -14,18 +10,18 @@ origin: 'voxgig-sdk'
14
10
  def: 'DEF'
15
11
 
16
12
 
17
- # API Definition
18
- @"api/api-def.jsonic"
19
-
20
-
21
- # API Entities
22
- @"api/api-entity-index.jsonic"
13
+ # API Information
14
+ @"api/api-info.jsonic"
23
15
 
24
16
 
25
17
  # SDK Configuration.
26
18
  @"config.jsonic"
27
19
 
28
20
 
21
+ # SDK Entities
22
+ @"entity/entity-index.jsonic"
23
+
24
+
29
25
  # SDK Features.
30
26
  @"feature/feature-index.jsonic"
31
27
 
@@ -12,7 +12,7 @@
12
12
  "watch": "tsc --build src -w",
13
13
  "build": "tsc --build src",
14
14
  "test": "echo no-test",
15
- "clean": "rm -rf node_modules yarn.lock package-lock.json",
15
+ "clean": "rm -rf dist dist-test node_modules yarn.lock package-lock.json",
16
16
  "reset": "npm run clean && npm i && npm run build && npm test",
17
17
  "add-target": "voxgig-sdkgen target add",
18
18
  "dry-add-target": "voxgig-sdkgen -y target add",
@@ -22,16 +22,14 @@
22
22
  "author": "$$const.Name$$",
23
23
  "license": "$$const.License$$",
24
24
  "devDependencies": {
25
- "@types/node": ">=24",
25
+ "@types/node": ">=25",
26
26
  "typescript": ">=5",
27
- "patch-package": ">=8"
28
- },
29
- "dependencies": {
30
- "@voxgig/apidef": ">=2",
27
+ "@voxgig/apidef": ">=3",
31
28
  "@voxgig/model": ">=7",
32
29
  "@voxgig/sdkgen": ">=0",
33
30
  "@voxgig/util": ">=0",
34
31
  "@voxgig/struct": ">=0",
35
- "jostraca": ">=0"
32
+ "jostraca": ">=0",
33
+ "aontu": ">=0"
36
34
  }
37
35
  }
@@ -0,0 +1,113 @@
1
+
2
+ import { size } from '@voxgig/struct'
3
+
4
+
5
+ import {
6
+ Content,
7
+ File,
8
+ Folder,
9
+ cmp,
10
+ each,
11
+ } from '@voxgig/sdkgen'
12
+
13
+
14
+ import type {
15
+ Model,
16
+ ModelEntity,
17
+ ModelField,
18
+ } from '@voxgig/apidef'
19
+
20
+
21
+ import {
22
+ KIT,
23
+ getModelPath,
24
+ nom,
25
+ } from '@voxgig/apidef'
26
+
27
+
28
+ const BuildSDK = cmp(function BuildSDK(props: any) {
29
+ const ctx$ = props.ctx$
30
+ const model: Model = ctx$.model
31
+
32
+ // TODO: should come from ctx$ options
33
+ const sdkBuildFolder = '.sdk'
34
+
35
+ const entityMap: ModelEntity = getModelPath(model, `main.${KIT}.entity`)
36
+
37
+ Folder({ name: sdkBuildFolder }, () => {
38
+ each(entityMap, (entity: ModelEntity) => {
39
+ Folder({ name: 'test' }, () => {
40
+ Folder({ name: 'entity' }, () => {
41
+ Folder({ name: entity.name }, () => {
42
+ File({ name: nom(entity, 'Name') + 'TestData.json' }, () => {
43
+ const entityTestData = makeEntityTestData(model, entity)
44
+ Content(JSON.stringify(entityTestData, null, 2))
45
+ })
46
+ })
47
+ })
48
+ })
49
+ })
50
+ })
51
+ })
52
+
53
+
54
+ function makeEntityTestData(_model: Model, entity: ModelEntity) {
55
+ const data: any = {
56
+ existing: {
57
+ [entity.name]: {}
58
+ },
59
+ new: {
60
+ [entity.name]: {}
61
+ }
62
+ }
63
+
64
+ const idcount = 3
65
+
66
+ const refs = [...Array(idcount).keys()].reduce((a, _x, i) =>
67
+ (a.push(`${entity.name}${String(i).padStart(2, "0")}`), a), [] as string[])
68
+
69
+ const idmap = refs.reduce((a: any, ref) => (a[ref] = ref.toUpperCase(), a), {})
70
+
71
+ let i = 1
72
+
73
+ refs.map((ref) => {
74
+ const id = idmap[ref]
75
+ const ent: any = data.existing[entity.name][id] = {}
76
+
77
+ makeEntityTestFields(entity, i++, ent)
78
+ ent.id = id
79
+ })
80
+
81
+ let id = entity.name + '_ref01'
82
+ const ent: any = data.new[entity.name][id] = {}
83
+ makeEntityTestFields(entity, i++, ent)
84
+ delete ent.id
85
+
86
+ return data
87
+ }
88
+
89
+
90
+ function makeEntityTestFields(entity: ModelEntity, start: number, entdata: Record<string, any>) {
91
+ entdata = entdata ?? {}
92
+ let num = (start * size(entity.fields) * 10)
93
+ each(entity.fields, (field: ModelField) => {
94
+ entdata[field.name] =
95
+ field.name.endsWith('_id') ?
96
+ field.name.substring(0, field.name.length - 3).toUpperCase() + '01' :
97
+ '`$NUMBER`' === field.type ? num :
98
+ '`$BOOLEAN`' === field.type ? 0 === num % 2 :
99
+ '`$OBJECT`' === field.type ? {} :
100
+ '`$MAP`' === field.type ? {} :
101
+ '`$ARRAY`' === field.type ? [] :
102
+ '`$LIST`' === field.type ? [] :
103
+ 's' + (num.toString(16))
104
+ num++
105
+ })
106
+ return entdata
107
+ }
108
+
109
+
110
+ export {
111
+ BuildSDK
112
+ }
113
+