@voxgig/create-sdkgen 0.25.0 → 0.27.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/project/standard/CreateRoot.js +22 -11
- package/dist/project/standard/CreateRoot.js.map +1 -1
- package/package.json +1 -1
- package/project/standard/.sdk/model/guide/guide.aontu +8 -0
- package/project/standard/.sdk/model/sdk.fragment.aon +4 -4
- package/project/standard/.sdk/package.json +1 -1
- package/project/standard/.sdk/src/BuildSDK.ts +20 -20
- package/src/project/standard/CreateRoot.ts +32 -12
- package/project/standard/.sdk/model/guide/guide.aon +0 -8
- /package/project/standard/.sdk/model/api/{api-info.aon → api-info.aontu} +0 -0
- /package/project/standard/.sdk/model/entity/{entity-index.aon → entity-index.aontu} +0 -0
- /package/project/standard/.sdk/model/flow/{flow-index.aon → flow-index.aontu} +0 -0
|
@@ -73,18 +73,23 @@ const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this fil
|
|
|
73
73
|
#
|
|
74
74
|
# main: kit: target: ts: publish: registry: package: '@scope/name'
|
|
75
75
|
`;
|
|
76
|
-
const GUIDE_FILE = 'guide.
|
|
76
|
+
const GUIDE_FILE = 'guide.aontu';
|
|
77
77
|
const GUIDE_REL = ['model', 'guide', GUIDE_FILE];
|
|
78
|
-
function
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
function renameIncludes(src, from, to) {
|
|
79
|
+
return src.replace(new RegExp(`(@['"][^'"]+)\\.${from}(['"])`, 'g'), `$1.${to}$2`);
|
|
80
|
+
}
|
|
81
|
+
// Only apidef's own files became .aontu; a project's own includes keep theirs.
|
|
82
|
+
function migrateGuideIncludes(src) {
|
|
83
|
+
return src.replace(/(@(['"])(?:@voxgig\/apidef\/model\/[^'"]+|(?:[^'"]*\/)?[^'"/]*base-guide))\.aon\2/g, '$1.aontu$2');
|
|
84
|
+
}
|
|
85
|
+
function migrateOverlay(fs, dir, name, from, to, rewrite = (src) => renameIncludes(src, from, to)) {
|
|
86
|
+
const next = node_path_1.default.join(dir, name + '.' + to);
|
|
87
|
+
const prev = node_path_1.default.join(dir, name + '.' + from);
|
|
81
88
|
if (fs.existsSync(next) || !fs.existsSync(prev)) {
|
|
82
89
|
return;
|
|
83
90
|
}
|
|
84
91
|
try {
|
|
85
|
-
|
|
86
|
-
.replace(/(@['"][^'"]+)\.aontu(['"])/g, '$1.aon$2');
|
|
87
|
-
fs.writeFileSync(next, src);
|
|
92
|
+
fs.writeFileSync(next, rewrite(String(fs.readFileSync(prev))));
|
|
88
93
|
fs.unlinkSync(prev);
|
|
89
94
|
}
|
|
90
95
|
catch (_err) {
|
|
@@ -172,7 +177,9 @@ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
|
|
|
172
177
|
// Same hazard, worse symptom: this file carries the release version,
|
|
173
178
|
// so an ignored project.aontu silently resets every generated manifest
|
|
174
179
|
// to the sdkgen default 0.0.1 — the exact bug fixed earlier this week.
|
|
175
|
-
|
|
180
|
+
if (!spec.dryrun) {
|
|
181
|
+
migrateOverlay(fs, node_path_1.default.dirname(projectPath), 'project', 'aontu', 'aon');
|
|
182
|
+
}
|
|
176
183
|
const existingProject = fs.existsSync(projectPath) ? fs.readFileSync(projectPath, 'utf8') : null;
|
|
177
184
|
(0, jostraca_1.File)({ name: PROJECT_FILE }, () => {
|
|
178
185
|
(0, jostraca_1.Content)(null == existingProject ? PROJECT_STUB : existingProject);
|
|
@@ -184,9 +191,13 @@ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
|
|
|
184
191
|
const guideTemplate = fs.readFileSync(node_path_1.default.join(from, spec.sdk_folder, ...GUIDE_REL), 'utf8');
|
|
185
192
|
const guidePath = node_path_1.default.join(folder, spec.sdk_folder, ...GUIDE_REL);
|
|
186
193
|
// Before the merge looks for it — otherwise a project whose guide is
|
|
187
|
-
// still named .
|
|
188
|
-
|
|
189
|
-
|
|
194
|
+
// still named .aon reads as having no overlay at all.
|
|
195
|
+
if (!spec.dryrun) {
|
|
196
|
+
migrateOverlay(fs, node_path_1.default.dirname(guidePath), 'guide', 'aon', 'aontu', migrateGuideIncludes);
|
|
197
|
+
}
|
|
198
|
+
// An entry already named .aontu can still include a retired .aon file.
|
|
199
|
+
const existingGuide = fs.existsSync(guidePath) ?
|
|
200
|
+
migrateGuideIncludes(fs.readFileSync(guidePath, 'utf8')) : null;
|
|
190
201
|
(0, jostraca_1.File)({ name: GUIDE_FILE }, () => {
|
|
191
202
|
(0, jostraca_1.Content)(mergeGuide(existingGuide, guideTemplate));
|
|
192
203
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
|
|
2
2
|
# Model definitions.
|
|
3
|
-
@"@voxgig/apidef/model/apidef.
|
|
3
|
+
@"@voxgig/apidef/model/apidef.aontu"
|
|
4
4
|
@"@voxgig/sdkgen/model/sdkgen.aon"
|
|
5
5
|
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ def: 'DEF'
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
# API Information
|
|
13
|
-
@"api/api-info.
|
|
13
|
+
@"api/api-info.aontu"
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
# SDK Configuration.
|
|
@@ -18,7 +18,7 @@ def: 'DEF'
|
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
# SDK Entities
|
|
21
|
-
@"entity/entity-index.
|
|
21
|
+
@"entity/entity-index.aontu"
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
# SDK Features.
|
|
@@ -30,7 +30,7 @@ def: 'DEF'
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
# Operation workflows.
|
|
33
|
-
@"flow/flow-index.
|
|
33
|
+
@"flow/flow-index.aontu"
|
|
34
34
|
|
|
35
35
|
|
|
36
36
|
@"./project.aon"
|
|
@@ -110,9 +110,9 @@ function makeEntityTestData(_model: Model, entity: ModelEntity) {
|
|
|
110
110
|
// here made the test data a second copy of the model's own copy of them.
|
|
111
111
|
data.requests = {}
|
|
112
112
|
for (const op of Object.values(entity.op || {}) as any[]) for (const point of op.points || []) {
|
|
113
|
-
if (point.
|
|
114
|
-
provenance: 'operation-contract', version: point.
|
|
115
|
-
source: point.
|
|
113
|
+
if (point.co) data.requests[point.co.id] = {
|
|
114
|
+
provenance: 'operation-contract', version: point.co.version,
|
|
115
|
+
source: point.co.source,
|
|
116
116
|
}
|
|
117
117
|
}
|
|
118
118
|
return data
|
|
@@ -135,17 +135,17 @@ function collectEntityPathParams(entity: any): [string, string][] {
|
|
|
135
135
|
const op = ops[opname]
|
|
136
136
|
const points = op?.points || []
|
|
137
137
|
for (const point of points) {
|
|
138
|
-
const params = point?.
|
|
139
|
-
const renameMap: Record<string, string> = point?.
|
|
138
|
+
const params = point?.g?.params || []
|
|
139
|
+
const renameMap: Record<string, string> = point?.r?.param || {}
|
|
140
140
|
for (const param of params) {
|
|
141
|
-
if (!param?.
|
|
142
|
-
if ('id' === param.
|
|
141
|
+
if (!param?.n) continue
|
|
142
|
+
if ('id' === param.n) continue
|
|
143
143
|
// Skip params that ARE the entity's own id under URL rename.
|
|
144
|
-
const camel = lcf(camelify(param.
|
|
144
|
+
const camel = lcf(camelify(param.n))
|
|
145
145
|
if ('id' === renameMap[camel]) continue
|
|
146
|
-
if (out.has(param.
|
|
147
|
-
const baseName = param.
|
|
148
|
-
out.set(param.
|
|
146
|
+
if (out.has(param.n)) continue
|
|
147
|
+
const baseName = param.n.replace(/_id$/, '')
|
|
148
|
+
out.set(param.n, baseName.toUpperCase() + '01')
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
}
|
|
@@ -157,15 +157,15 @@ function makeEntityTestFields(entity: ModelEntity, start: number, entdata: Recor
|
|
|
157
157
|
entdata = entdata ?? {}
|
|
158
158
|
let num = (start * size(entity.fields) * 10)
|
|
159
159
|
each(entity.fields, (field: ModelField) => {
|
|
160
|
-
entdata[field.
|
|
161
|
-
field.
|
|
162
|
-
field.
|
|
163
|
-
['`$NUMBER`', '`$INTEGER`'].includes(field.
|
|
164
|
-
'`$BOOLEAN`' === field.
|
|
165
|
-
'`$OBJECT`' === field.
|
|
166
|
-
'`$MAP`' === field.
|
|
167
|
-
'`$ARRAY`' === field.
|
|
168
|
-
'`$LIST`' === field.
|
|
160
|
+
entdata[field.n] =
|
|
161
|
+
field.n.endsWith('_id') ?
|
|
162
|
+
field.n.substring(0, field.n.length - 3).toUpperCase() + '01' :
|
|
163
|
+
['`$NUMBER`', '`$INTEGER`'].includes(field.t) ? num :
|
|
164
|
+
'`$BOOLEAN`' === field.t ? 0 === num % 2 :
|
|
165
|
+
'`$OBJECT`' === field.t ? {} :
|
|
166
|
+
'`$MAP`' === field.t ? {} :
|
|
167
|
+
'`$ARRAY`' === field.t ? [] :
|
|
168
|
+
'`$LIST`' === field.t ? [] :
|
|
169
169
|
's' + (num.toString(16))
|
|
170
170
|
num++
|
|
171
171
|
})
|
|
@@ -89,20 +89,33 @@ const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this fil
|
|
|
89
89
|
`
|
|
90
90
|
|
|
91
91
|
|
|
92
|
-
const GUIDE_FILE = 'guide.
|
|
92
|
+
const GUIDE_FILE = 'guide.aontu'
|
|
93
93
|
const GUIDE_REL = ['model', 'guide', GUIDE_FILE]
|
|
94
94
|
|
|
95
95
|
|
|
96
|
-
function
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
function renameIncludes(src: string, from: string, to: string): string {
|
|
97
|
+
return src.replace(new RegExp(`(@['"][^'"]+)\\.${from}(['"])`, 'g'), `$1.${to}$2`)
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
// Only apidef's own files became .aontu; a project's own includes keep theirs.
|
|
102
|
+
function migrateGuideIncludes(src: string): string {
|
|
103
|
+
return src.replace(
|
|
104
|
+
/(@(['"])(?:@voxgig\/apidef\/model\/[^'"]+|(?:[^'"]*\/)?[^'"/]*base-guide))\.aon\2/g,
|
|
105
|
+
'$1.aontu$2')
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
function migrateOverlay(
|
|
110
|
+
fs: any, dir: string, name: string, from: string, to: string,
|
|
111
|
+
rewrite: (src: string) => string = (src) => renameIncludes(src, from, to)): void {
|
|
112
|
+
const next = Path.join(dir, name + '.' + to)
|
|
113
|
+
const prev = Path.join(dir, name + '.' + from)
|
|
99
114
|
if (fs.existsSync(next) || !fs.existsSync(prev)) {
|
|
100
115
|
return
|
|
101
116
|
}
|
|
102
117
|
try {
|
|
103
|
-
|
|
104
|
-
.replace(/(@['"][^'"]+)\.aontu(['"])/g, '$1.aon$2')
|
|
105
|
-
fs.writeFileSync(next, src)
|
|
118
|
+
fs.writeFileSync(next, rewrite(String(fs.readFileSync(prev))))
|
|
106
119
|
fs.unlinkSync(prev)
|
|
107
120
|
}
|
|
108
121
|
catch (_err: any) {
|
|
@@ -217,7 +230,9 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
|
|
|
217
230
|
// Same hazard, worse symptom: this file carries the release version,
|
|
218
231
|
// so an ignored project.aontu silently resets every generated manifest
|
|
219
232
|
// to the sdkgen default 0.0.1 — the exact bug fixed earlier this week.
|
|
220
|
-
|
|
233
|
+
if (!spec.dryrun) {
|
|
234
|
+
migrateOverlay(fs, Path.dirname(projectPath), 'project', 'aontu', 'aon')
|
|
235
|
+
}
|
|
221
236
|
const existingProject =
|
|
222
237
|
fs.existsSync(projectPath) ? fs.readFileSync(projectPath, 'utf8') : null
|
|
223
238
|
|
|
@@ -234,10 +249,15 @@ const CreateRoot = cmp(function CreateRoot(props: any) {
|
|
|
234
249
|
const guidePath = Path.join(folder, spec.sdk_folder, ...GUIDE_REL)
|
|
235
250
|
|
|
236
251
|
// Before the merge looks for it — otherwise a project whose guide is
|
|
237
|
-
// still named .
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
252
|
+
// still named .aon reads as having no overlay at all.
|
|
253
|
+
if (!spec.dryrun) {
|
|
254
|
+
migrateOverlay(fs, Path.dirname(guidePath), 'guide', 'aon', 'aontu',
|
|
255
|
+
migrateGuideIncludes)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
// An entry already named .aontu can still include a retired .aon file.
|
|
259
|
+
const existingGuide = fs.existsSync(guidePath) ?
|
|
260
|
+
migrateGuideIncludes(fs.readFileSync(guidePath, 'utf8')) : null
|
|
241
261
|
|
|
242
262
|
File({ name: GUIDE_FILE }, () => {
|
|
243
263
|
Content(mergeGuide(existingGuide, guideTemplate))
|
|
File without changes
|
|
File without changes
|
|
File without changes
|