@voxgig/create-sdkgen 0.18.1 → 0.20.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/create-sdkgen.js +1 -1
- package/dist/create-sdkgen.js.map +1 -1
- package/dist/project/standard/CreateRoot.js +56 -12
- package/dist/project/standard/CreateRoot.js.map +1 -1
- package/dist/project/standard/ModelSdk.js +2 -2
- package/dist/project/standard/ModelSdk.js.map +1 -1
- package/package.json +3 -3
- package/project/standard/.sdk/model/.model-config/{model-config.aontu → model-config.aon} +1 -1
- package/project/standard/.sdk/model/{config.aontu → config.aon} +1 -1
- package/project/standard/.sdk/model/guide/guide.aon +8 -0
- package/project/standard/.sdk/model/{sdk.fragment.aontu → sdk.fragment.aon} +10 -10
- package/project/standard/.sdk/package.json +9 -9
- package/project/standard/.sdk/test/.model-config/model-config.aon +4 -0
- package/project/standard/.sdk/test/feature/cost.aon +190 -0
- package/project/standard/.sdk/test/feature/feature-test-index.aon +2 -0
- package/project/standard/.sdk/test/primary/primary-test-index.aon +30 -0
- package/project/standard/.sdk/test/struct/test.aon +25 -0
- package/project/standard/.sdk/test/test.aon +4 -0
- package/project/standard/.sdk/test/test.json +13965 -13422
- package/src/create-sdkgen.ts +1 -1
- package/src/project/standard/CreateRoot.ts +60 -12
- package/src/project/standard/ModelSdk.ts +2 -2
- package/project/standard/.sdk/model/guide/guide.aontu +0 -8
- package/project/standard/.sdk/test/.model-config/model-config.aontu +0 -4
- package/project/standard/.sdk/test/primary/primary-test-index.aontu +0 -30
- package/project/standard/.sdk/test/struct/test.aontu +0 -25
- package/project/standard/.sdk/test/test.aontu +0 -3
- /package/project/standard/.sdk/model/api/{api-info.aontu → api-info.aon} +0 -0
- /package/project/standard/.sdk/model/entity/{entity-index.aontu → entity-index.aon} +0 -0
- /package/project/standard/.sdk/model/feature/{feature-index.aontu → feature-index.aon} +0 -0
- /package/project/standard/.sdk/model/flow/{flow-index.aontu → flow-index.aon} +0 -0
- /package/project/standard/.sdk/model/target/{target-index.aontu → target-index.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{clean.aontu → clean.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{done.aontu → done.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{featureAdd.aontu → featureAdd.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{featureHook.aontu → featureHook.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{featureInit.aontu → featureInit.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{fetcher.aontu → fetcher.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeContext.aontu → makeContext.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeError.aontu → makeError.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeFetchDef.aontu → makeFetchDef.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeOptions.aontu → makeOptions.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makePoint.aontu → makePoint.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeRequest.aontu → makeRequest.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeResponse.aontu → makeResponse.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeResult.aontu → makeResult.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeSpec.aontu → makeSpec.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{makeUrl.aontu → makeUrl.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{operator.aontu → operator.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{param.aontu → param.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareAuth.aontu → prepareAuth.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareBody.aontu → prepareBody.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareHeaders.aontu → prepareHeaders.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareMethod.aontu → prepareMethod.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareParams.aontu → prepareParams.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{preparePath.aontu → preparePath.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{prepareQuery.aontu → prepareQuery.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{resultBasic.aontu → resultBasic.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{resultBody.aontu → resultBody.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{resultHeaders.aontu → resultHeaders.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{transformRequest.aontu → transformRequest.aon} +0 -0
- /package/project/standard/.sdk/test/primary/{transformResponse.aontu → transformResponse.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{getpath.aontu → getpath.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{inject.aontu → inject.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{merge.aontu → merge.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{minor.aontu → minor.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{select.aontu → select.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{transform.aontu → transform.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{validate.aontu → validate.aon} +0 -0
- /package/project/standard/.sdk/test/struct/{walk.aontu → walk.aon} +0 -0
package/dist/create-sdkgen.js
CHANGED
|
@@ -230,7 +230,7 @@ async function installNpm(spec, opts, model) {
|
|
|
230
230
|
// They ARE npm run scripts that resolve @voxgig/sdkgen from node_modules, so
|
|
231
231
|
// without one they cannot work. Fail with an actionable message rather than
|
|
232
232
|
// the raw module-resolution error — and rather than silently skipping, which
|
|
233
|
-
// reports success while leaving config.
|
|
233
|
+
// reports success while leaving config.aon without the requested entries.
|
|
234
234
|
const wanted = [
|
|
235
235
|
(spec.target ?? []).length ? '--target' : '',
|
|
236
236
|
(spec.feature ?? []).length ? '--feature' : '',
|
|
@@ -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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"}
|
|
@@ -52,7 +52,7 @@ log/
|
|
|
52
52
|
//
|
|
53
53
|
// Everything else the scaffold writes is toolchain-derived and is deliberately
|
|
54
54
|
// OVERWRITTEN (see the `existing.txt.write` rationale in create-sdkgen.ts) so a
|
|
55
|
-
// toolchain fix propagates. `model/guide/guide.
|
|
55
|
+
// toolchain fix propagates. `model/guide/guide.aon` is the exception: apidef
|
|
56
56
|
// unifies it OVER the heuristic classification, and it is where every
|
|
57
57
|
// documented customization lives — entity rename, hide, move, activate,
|
|
58
58
|
// per-path deactivation, method override, param rename, response transform.
|
|
@@ -63,25 +63,25 @@ log/
|
|
|
63
63
|
// It is excluded from the bulk Copy and merged instead (see mergeGuide).
|
|
64
64
|
// The PROJECT overlay: the second model file the user owns.
|
|
65
65
|
//
|
|
66
|
-
// `guide.
|
|
66
|
+
// `guide.aon` owns what the API looks like. This owns what the PROJECT is —
|
|
67
67
|
// publication values above all. The sdkgen schema tells you to declare those
|
|
68
|
-
// in `model/sdk.
|
|
69
|
-
// true: ModelSdk rewrites sdk.
|
|
68
|
+
// in `model/sdk.aon` "where they survive a resync", and that was simply not
|
|
69
|
+
// true: ModelSdk rewrites sdk.aon from its template on every scaffold, so a
|
|
70
70
|
// version or package name declared there vanished before the model was built,
|
|
71
71
|
// with no error. The cedar fleet ran for months with every manifest pinned at
|
|
72
72
|
// the schema default 0.0.1 while its git tags climbed past 0.1.1, and this is
|
|
73
73
|
// why.
|
|
74
74
|
//
|
|
75
|
-
// sdk.
|
|
75
|
+
// sdk.aon cannot simply be merged the way guide.aon is. Its template owns
|
|
76
76
|
// `name`, `origin` and especially `def` — the OpenAPI filename, which really
|
|
77
77
|
// does change (three cedar specs were renamed in one week). A "keep the user's
|
|
78
78
|
// file" merge would freeze `def` at a spec that no longer exists and break
|
|
79
|
-
// regeneration. So the template keeps sole ownership of sdk.
|
|
80
|
-
// user gets a file of their own that sdk.
|
|
79
|
+
// regeneration. So the template keeps sole ownership of sdk.aon, and the
|
|
80
|
+
// user gets a file of their own that sdk.aon includes.
|
|
81
81
|
//
|
|
82
82
|
// Written ONCE. If it exists, it is re-emitted byte-for-byte, so a
|
|
83
83
|
// re-scaffold is a no-op on it.
|
|
84
|
-
const PROJECT_FILE = 'project.
|
|
84
|
+
const PROJECT_FILE = 'project.aon';
|
|
85
85
|
const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this file once and never
|
|
86
86
|
# overwrites it, unlike every other file it writes.
|
|
87
87
|
#
|
|
@@ -89,7 +89,7 @@ const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this fil
|
|
|
89
89
|
# regenerated so that toolchain fixes propagate. Put anything here that is a
|
|
90
90
|
# decision about THIS project rather than a fact about the API.
|
|
91
91
|
#
|
|
92
|
-
# Included LAST by sdk.
|
|
92
|
+
# Included LAST by sdk.aon, after target/target-index.aon, because a key
|
|
93
93
|
# under main.kit.target.<t> can only refine a target that has already been
|
|
94
94
|
# defined. Declared earlier, the model build fails with "Cannot unify value:
|
|
95
95
|
# nil with value: string / key ext value was: nil", which names nothing that
|
|
@@ -107,8 +107,45 @@ const PROJECT_STUB = `# Project overlay — YOURS. The scaffold creates this fil
|
|
|
107
107
|
#
|
|
108
108
|
# main: kit: target: ts: publish: registry: package: '@scope/name'
|
|
109
109
|
`;
|
|
110
|
-
const GUIDE_FILE = 'guide.
|
|
110
|
+
const GUIDE_FILE = 'guide.aon';
|
|
111
111
|
const GUIDE_REL = ['model', 'guide', GUIDE_FILE];
|
|
112
|
+
// Rename a user-owned overlay from its pre-2026-08 `.aontu` name to `.aon`.
|
|
113
|
+
//
|
|
114
|
+
// Both overlays are read-if-present and written-if-absent, which is exactly
|
|
115
|
+
// the shape that turns an extension rename into DATA LOSS rather than a
|
|
116
|
+
// rename: look for `guide.aon`, find nothing, write a fresh template over the
|
|
117
|
+
// top, and the user's entity renames, hides and overrides are still sitting
|
|
118
|
+
// in `guide.aontu` being ignored. 660 generated repos carry one.
|
|
119
|
+
//
|
|
120
|
+
// So the legacy file is moved to the new name BEFORE anything reads or writes
|
|
121
|
+
// it. Contents are untouched; only the name changes. Idempotent — once the
|
|
122
|
+
// `.aon` exists this does nothing, so a re-scaffold stays a no-op.
|
|
123
|
+
function migrateOverlay(fs, dir, name) {
|
|
124
|
+
const next = node_path_1.default.join(dir, name + '.aon');
|
|
125
|
+
const prev = node_path_1.default.join(dir, name + '.aontu');
|
|
126
|
+
if (fs.existsSync(next) || !fs.existsSync(prev)) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
try {
|
|
130
|
+
// RENAME THE FILE *AND* ITS INCLUDES. An overlay written before the
|
|
131
|
+
// rename includes the toolchain schemas by their old names —
|
|
132
|
+
// `@"@voxgig/apidef/model/guide.aontu"` — and apidef 8 no longer ships
|
|
133
|
+
// that file, so a migration that moved the file but kept its contents
|
|
134
|
+
// verbatim produced a project that could not resolve its own guide.
|
|
135
|
+
// mergeGuide cannot repair this either: it keeps the user's lines and
|
|
136
|
+
// only ADDS missing template includes, so the dead one would survive
|
|
137
|
+
// beside the new one. Only `@`-include extensions are touched; nothing
|
|
138
|
+
// else in the user's file is rewritten.
|
|
139
|
+
const src = String(fs.readFileSync(prev))
|
|
140
|
+
.replace(/(@['"][^'"]+)\.aontu(['"])/g, '$1.aon$2');
|
|
141
|
+
fs.writeFileSync(next, src);
|
|
142
|
+
fs.unlinkSync(prev);
|
|
143
|
+
}
|
|
144
|
+
catch (_err) {
|
|
145
|
+
// A failed migration must not fail the scaffold: the worst case is the
|
|
146
|
+
// template being written fresh, which is what would have happened anyway.
|
|
147
|
+
}
|
|
148
|
+
}
|
|
112
149
|
// Merge the guide template into an existing guide overlay.
|
|
113
150
|
//
|
|
114
151
|
// A guide is the template's `@`-includes plus whatever the user added. The
|
|
@@ -117,7 +154,7 @@ const GUIDE_REL = ['model', 'guide', GUIDE_FILE];
|
|
|
117
154
|
// is missing — the normal case — the file is returned byte-identical, so a
|
|
118
155
|
// re-scaffold is a no-op on it.
|
|
119
156
|
//
|
|
120
|
-
// Missing includes are restored at the TOP, not appended: `base-guide.
|
|
157
|
+
// Missing includes are restored at the TOP, not appended: `base-guide.aon`
|
|
121
158
|
// carries the heuristic classification that the user's overrides unify over,
|
|
122
159
|
// and the overlay reads correctly only when the includes precede it.
|
|
123
160
|
function mergeGuide(existing, template) {
|
|
@@ -139,7 +176,7 @@ function mergeGuide(existing, template) {
|
|
|
139
176
|
// slugs are not constrained: the freepublicapis corpus contains apostrophes
|
|
140
177
|
// (catherine-shulman's-quotes), accents (dólar-y-monedas, kölner-adressen),
|
|
141
178
|
// and '!' / '>' / '_'. That name is copied into .sdk/def/ AND written verbatim
|
|
142
|
-
// into a single-quoted aontu string in sdk.
|
|
179
|
+
// into a single-quoted aontu string in sdk.aon:
|
|
143
180
|
//
|
|
144
181
|
// def: 'catherine-shulman's-quotes_0.1.0.json'
|
|
145
182
|
// ^ terminates the string -> AontuError, no SDK
|
|
@@ -215,6 +252,10 @@ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
|
|
|
215
252
|
// unchanged rather than skipped, so the write is a no-op instead of a
|
|
216
253
|
// special case in the component tree.
|
|
217
254
|
const projectPath = node_path_1.default.join(folder, spec.sdk_folder, 'model', PROJECT_FILE);
|
|
255
|
+
// Same hazard, worse symptom: this file carries the release version,
|
|
256
|
+
// so an ignored project.aontu silently resets every generated manifest
|
|
257
|
+
// to the sdkgen default 0.0.1 — the exact bug fixed earlier this week.
|
|
258
|
+
migrateOverlay(fs, node_path_1.default.dirname(projectPath), 'project');
|
|
218
259
|
const existingProject = fs.existsSync(projectPath) ? fs.readFileSync(projectPath, 'utf8') : null;
|
|
219
260
|
(0, jostraca_1.File)({ name: PROJECT_FILE }, () => {
|
|
220
261
|
(0, jostraca_1.Content)(null == existingProject ? PROJECT_STUB : existingProject);
|
|
@@ -225,6 +266,9 @@ const CreateRoot = (0, jostraca_1.cmp)(function CreateRoot(props) {
|
|
|
225
266
|
(0, jostraca_1.Folder)({ name: 'guide' }, () => {
|
|
226
267
|
const guideTemplate = fs.readFileSync(node_path_1.default.join(from, spec.sdk_folder, ...GUIDE_REL), 'utf8');
|
|
227
268
|
const guidePath = node_path_1.default.join(folder, spec.sdk_folder, ...GUIDE_REL);
|
|
269
|
+
// Before the merge looks for it — otherwise a project whose guide is
|
|
270
|
+
// still named .aontu reads as having no overlay at all.
|
|
271
|
+
migrateOverlay(fs, node_path_1.default.dirname(guidePath), 'guide');
|
|
228
272
|
const existingGuide = fs.existsSync(guidePath) ? fs.readFileSync(guidePath, 'utf8') : null;
|
|
229
273
|
(0, jostraca_1.File)({ name: GUIDE_FILE }, () => {
|
|
230
274
|
(0, jostraca_1.Content)(mergeGuide(existingGuide, guideTemplate));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":";;;;;;QA+
|
|
1
|
+
{"version":3,"file":"CreateRoot.js","sourceRoot":"","sources":["../../../src/project/standard/CreateRoot.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,9 @@ const jostraca_1 = require("jostraca");
|
|
|
9
9
|
const ModelSdk = (0, jostraca_1.cmp)(function ModelSdk(props) {
|
|
10
10
|
const { spec } = props;
|
|
11
11
|
const from = node_path_1.default.resolve(node_path_1.default.join(__dirname, '..', '..', '..', 'project', 'standard'));
|
|
12
|
-
(0, jostraca_1.File)({ name: 'sdk.
|
|
12
|
+
(0, jostraca_1.File)({ name: 'sdk.aon' }, () => {
|
|
13
13
|
(0, jostraca_1.Fragment)({
|
|
14
|
-
from: node_path_1.default.join(from, spec.sdk_folder, 'model', 'sdk.fragment.
|
|
14
|
+
from: node_path_1.default.join(from, spec.sdk_folder, 'model', 'sdk.fragment.aon'),
|
|
15
15
|
replace: {
|
|
16
16
|
ProjectName: spec.name,
|
|
17
17
|
NAME: spec.name,
|
|
@@ -1 +1 @@
|
|
|
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,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAE7E,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,
|
|
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,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAE7E,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE;QAC7B,IAAA,mBAAQ,EAAC;YACP,IAAI,EAAE,mBAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE,kBAAkB,CAAC;YACnE,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;QAIA,QAAQ"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@voxgig/create-sdkgen",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.20.0",
|
|
4
4
|
"main": "dist/create-sdkgen.js",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"types": "dist/create-sdkgen.d.ts",
|
|
@@ -24,8 +24,8 @@
|
|
|
24
24
|
"test-some": "node --enable-source-maps --test-name-pattern=\"$npm_config_pattern\" --test dist-test/**/*.test.js",
|
|
25
25
|
"watch": "tsc --build src test -w",
|
|
26
26
|
"build": "tsc --build src test",
|
|
27
|
-
"test-model": "voxgig-model project/.sdk/test/test.
|
|
28
|
-
"test-model-watch": "voxgig-model -w project/.sdk/test/test.
|
|
27
|
+
"test-model": "voxgig-model project/.sdk/test/test.aon",
|
|
28
|
+
"test-model-watch": "voxgig-model -w project/.sdk/test/test.aon",
|
|
29
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-bump": "npm version patch --no-git-tag-version && node -e \"console.log('bumped to v' + require('./package.json').version + ' (package.json only - commit via repo-tag / repo-release)')\"",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
main: kit: config: {
|
|
4
4
|
|
|
5
5
|
# The Authorization credential prefix is derived from the OpenAPI
|
|
6
|
-
# security scheme (see api/api-info.
|
|
6
|
+
# security scheme (see api/api-info.aon: main.kit.info.security,
|
|
7
7
|
# set by apidef) and defaults to 'Bearer' when the spec gives no
|
|
8
8
|
# signal. Uncomment to override per-SDK:
|
|
9
9
|
# auth: prefix: 'Bearer'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
|
|
2
2
|
# Model definitions.
|
|
3
|
-
@"@voxgig/apidef/model/apidef.
|
|
4
|
-
@"@voxgig/sdkgen/model/sdkgen.
|
|
3
|
+
@"@voxgig/apidef/model/apidef.aon"
|
|
4
|
+
@"@voxgig/sdkgen/model/sdkgen.aon"
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
# SDK Details.
|
|
@@ -11,31 +11,31 @@ def: 'DEF'
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
# API Information
|
|
14
|
-
@"api/api-info.
|
|
14
|
+
@"api/api-info.aon"
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
# SDK Configuration.
|
|
18
|
-
@"config.
|
|
18
|
+
@"config.aon"
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
# SDK Entities
|
|
22
|
-
@"entity/entity-index.
|
|
22
|
+
@"entity/entity-index.aon"
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
# SDK Features.
|
|
26
|
-
@"feature/feature-index.
|
|
26
|
+
@"feature/feature-index.aon"
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
# SDK Targets.
|
|
30
|
-
@"target/target-index.
|
|
30
|
+
@"target/target-index.aon"
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
# Operation workflows.
|
|
34
|
-
@"flow/flow-index.
|
|
34
|
+
@"flow/flow-index.aon"
|
|
35
35
|
|
|
36
36
|
|
|
37
37
|
# Project overlay — user-owned, created once and never overwritten.
|
|
38
38
|
#
|
|
39
39
|
# LAST, deliberately: it may refine main.kit.target.<t>, and a target can only
|
|
40
|
-
# be refined after target-index.
|
|
41
|
-
@"project.
|
|
40
|
+
# be refined after target-index.aon has defined it.
|
|
41
|
+
@"project.aon"
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
"version": "0.0.1",
|
|
4
4
|
"description": "$$const.Name$$ SDK Project",
|
|
5
5
|
"scripts": {
|
|
6
|
-
"generate": "tsc --build src && voxgig-model model/sdk.
|
|
7
|
-
"watch-generate": "voxgig-model -w model/sdk.
|
|
8
|
-
"dry-generate": "tsc --build src && voxgig-model -y model/sdk.
|
|
9
|
-
"watch-dry-generate": "voxgig-model -w -y model/sdk.
|
|
10
|
-
"test-model": "voxgig-model test/test.
|
|
11
|
-
"watch-test-model": "voxgig-model -w test/test.
|
|
6
|
+
"generate": "tsc --build src && voxgig-model model/sdk.aon && voxgig-model test/test.aon",
|
|
7
|
+
"watch-generate": "voxgig-model -w model/sdk.aon",
|
|
8
|
+
"dry-generate": "tsc --build src && voxgig-model -y model/sdk.aon",
|
|
9
|
+
"watch-dry-generate": "voxgig-model -w -y model/sdk.aon",
|
|
10
|
+
"test-model": "voxgig-model test/test.aon",
|
|
11
|
+
"watch-test-model": "voxgig-model -w test/test.aon",
|
|
12
12
|
"watch": "tsc --build src -w",
|
|
13
13
|
"build": "tsc --build src",
|
|
14
14
|
"test": "echo no-test",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"devDependencies": {
|
|
25
25
|
"@types/node": ">=25.6",
|
|
26
26
|
"typescript": ">=6.0",
|
|
27
|
-
"@voxgig/apidef": ">=
|
|
28
|
-
"@voxgig/model": ">=
|
|
29
|
-
"@voxgig/sdkgen": ">=0
|
|
27
|
+
"@voxgig/apidef": ">=8.0",
|
|
28
|
+
"@voxgig/model": ">=10.0",
|
|
29
|
+
"@voxgig/sdkgen": ">=4.0",
|
|
30
30
|
"@voxgig/util": ">=0.4",
|
|
31
31
|
"@voxgig/struct": ">=0.1.0",
|
|
32
32
|
"jostraca": ">=0.29",
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Cost feature behaviour, as language-neutral cases.
|
|
2
|
+
#
|
|
3
|
+
# Every case is DATA: features are activated by name through the generated
|
|
4
|
+
# config, the options are plain JSON, the transport is scripted by `res`, and
|
|
5
|
+
# the assertion is a subset of the client's cost record. Nothing here needs a
|
|
6
|
+
# function, which is what makes it corpus-expressible where featureAdd /
|
|
7
|
+
# featureHook / featureInit are not (see their PENDING notes).
|
|
8
|
+
#
|
|
9
|
+
# CASE SHAPE
|
|
10
|
+
# name label for the runner
|
|
11
|
+
# feature activation list, IN ORDER. The array form is the one that fixes
|
|
12
|
+
# nesting: each transport feature wraps whatever is already
|
|
13
|
+
# installed, so position IS order. Entries are flat -
|
|
14
|
+
# { name, active, ...options } - as makeOptions expects.
|
|
15
|
+
# res scripted transport responses, consumed in order; the last is
|
|
16
|
+
# reused once exhausted. `throw: true` makes that attempt reject
|
|
17
|
+
# at the transport rather than return a response.
|
|
18
|
+
# op operations to run, in order. `err` marks an op that must FAIL:
|
|
19
|
+
# `true` for any failure, a string to pin the error code.
|
|
20
|
+
# out expected SUBSET of client._cost - runners match partially, so a
|
|
21
|
+
# case asserts only what it is about
|
|
22
|
+
#
|
|
23
|
+
# OPERATION TOKENS
|
|
24
|
+
# The corpus is shared by every generated SDK, and each has its own
|
|
25
|
+
# entities and operations, so no case may name one. `#OP1` and `#OP2` stand
|
|
26
|
+
# for two DISTINCT operations this SDK can actually perform; the runner
|
|
27
|
+
# discovers them from the generated client and substitutes them throughout
|
|
28
|
+
# the case, keys included. They resolve to the '<entity>.<op>' key the cost
|
|
29
|
+
# record attributes spend under, which is why a rate table can be keyed on
|
|
30
|
+
# one. A SDK that offers fewer operations than a case needs skips that case
|
|
31
|
+
# rather than failing it.
|
|
32
|
+
#
|
|
33
|
+
# Determinism comes from data alone: netsim is counter-driven, and retry runs
|
|
34
|
+
# with `minDelay: 1`, which leaves no room for jitter (it is drawn from
|
|
35
|
+
# [0, minDelay)) and costs no real time.
|
|
36
|
+
|
|
37
|
+
basic: set: [
|
|
38
|
+
|
|
39
|
+
# --- pricing sources ----------------------------------------------------
|
|
40
|
+
|
|
41
|
+
{
|
|
42
|
+
name: 'rate table prices each call and attributes it to the op'
|
|
43
|
+
feature: [ { name: 'cost', active: true, rates: { '#OP1': 0.25, '*': 0.01 } } ]
|
|
44
|
+
op: [ { op: '#OP1' }, { op: '#OP1' }, { op: '#OP2' } ]
|
|
45
|
+
out: {
|
|
46
|
+
total: { calls: 3, amount: 0.51, estimated: 0.51 }
|
|
47
|
+
ops: { '#OP1': { calls: 2, amount: 0.5 }, '#OP2': { calls: 1, amount: 0.01 } }
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
{
|
|
52
|
+
name: 'flat unit is the fallback when no rate matches'
|
|
53
|
+
feature: [ { name: 'cost', active: true, unit: 0.002 } ]
|
|
54
|
+
op: [ { op: '#OP1' } ]
|
|
55
|
+
out: { total: { calls: 1, amount: 0.002 }, last: { source: 'unit' } }
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
{
|
|
59
|
+
name: 'a reported header counts as reported, not estimated, and beats the unit'
|
|
60
|
+
feature: [ { name: 'cost', active: true, header: 'x-request-cost', perUnit: 0.5, unit: 99 } ]
|
|
61
|
+
res: [ { status: 200, headers: { 'x-request-cost': '4' }, body: { ok: true } } ]
|
|
62
|
+
op: [ { op: '#OP1' } ]
|
|
63
|
+
out: { total: { amount: 2, reported: 2, estimated: 0 }, last: { source: 'header' } }
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
{
|
|
67
|
+
name: 'a plain header map is matched case-insensitively'
|
|
68
|
+
feature: [ { name: 'cost', active: true, header: 'x-request-cost', perUnit: 0.5, unit: 99 } ]
|
|
69
|
+
res: [ { status: 200, headers: { 'X-Request-Cost': '4' }, body: { ok: true } } ]
|
|
70
|
+
out: { total: { amount: 2, reported: 2 }, last: { source: 'header' } }
|
|
71
|
+
op: [ { op: '#OP1' } ]
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
{
|
|
75
|
+
name: 'a body usage figure prices the whole call, replacing the per-attempt estimate'
|
|
76
|
+
feature: [ { name: 'cost', active: true, path: 'usage.total_tokens', perUnit: 0.00001, unit: 5 } ]
|
|
77
|
+
res: [ { status: 200, body: { usage: { total_tokens: 1000 } } } ]
|
|
78
|
+
op: [ { op: '#OP1' } ]
|
|
79
|
+
out: { total: { amount: 0.01, reported: 0.01, estimated: 0 }, last: { source: 'body' } }
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
# --- attempts vs operations ---------------------------------------------
|
|
83
|
+
|
|
84
|
+
{
|
|
85
|
+
name: 'every retry attempt is charged, but attributed as one operation'
|
|
86
|
+
feature: [
|
|
87
|
+
{ name: 'netsim', active: true, failTimes: 2, failStatus: 503 }
|
|
88
|
+
{ name: 'cost', active: true, unit: 1 }
|
|
89
|
+
{ name: 'retry', active: true, retries: 3, minDelay: 1 }
|
|
90
|
+
]
|
|
91
|
+
op: [ { op: '#OP1' } ]
|
|
92
|
+
out: { total: { calls: 1, attempts: 3, amount: 3 }, last: { attempts: 3 } }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
{
|
|
96
|
+
name: 'reported and estimated stay apart across attempts of one call'
|
|
97
|
+
feature: [
|
|
98
|
+
{ name: 'netsim', active: true, failTimes: 1, failStatus: 503 }
|
|
99
|
+
{ name: 'cost', active: true, header: 'x-cost', perUnit: 1, rates: { '*': 5 } }
|
|
100
|
+
{ name: 'retry', active: true, retries: 2, minDelay: 1 }
|
|
101
|
+
]
|
|
102
|
+
res: [ { status: 200, headers: { 'x-cost': '2' }, body: { ok: true } } ]
|
|
103
|
+
op: [ { op: '#OP1' } ]
|
|
104
|
+
out: { total: { amount: 7, estimated: 5, reported: 2 } }
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
{
|
|
108
|
+
name: 'a rejecting transport is still charged per attempt'
|
|
109
|
+
feature: [
|
|
110
|
+
{ name: 'cost', active: true, unit: 1 }
|
|
111
|
+
{ name: 'retry', active: true, retries: 2, minDelay: 1 }
|
|
112
|
+
]
|
|
113
|
+
res: [ { throw: true } ]
|
|
114
|
+
op: [ { op: '#OP1', err: true } ]
|
|
115
|
+
out: { total: { calls: 1, attempts: 3, amount: 3 } }
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
{
|
|
119
|
+
name: 'a failed operation still commits its spend'
|
|
120
|
+
feature: [ { name: 'cost', active: true, unit: 2 } ]
|
|
121
|
+
res: [ { status: 500, body: { fail: true } } ]
|
|
122
|
+
op: [ { op: '#OP1', err: true } ]
|
|
123
|
+
out: { total: { calls: 1, amount: 2 } }
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
# --- ordering against the cache -----------------------------------------
|
|
127
|
+
|
|
128
|
+
{
|
|
129
|
+
name: 'ordered inside the cache, a hit served from cache costs nothing'
|
|
130
|
+
feature: [
|
|
131
|
+
{ name: 'cost', active: true, unit: 2 }
|
|
132
|
+
{ name: 'cache', active: true, ttl: 10000 }
|
|
133
|
+
]
|
|
134
|
+
op: [ { op: '#OP1' }, { op: '#OP1' } ]
|
|
135
|
+
out: { total: { calls: 2, attempts: 1, amount: 2 } }
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
# --- attribution ---------------------------------------------------------
|
|
139
|
+
|
|
140
|
+
{
|
|
141
|
+
name: 'spend is attributed to the per-call actor'
|
|
142
|
+
feature: [ { name: 'cost', active: true, unit: 1 } ]
|
|
143
|
+
op: [
|
|
144
|
+
{ op: '#OP1', ctrl: { actor: 'user:42' } }
|
|
145
|
+
{ op: '#OP1', ctrl: { actor: 'user:42' } }
|
|
146
|
+
{ op: '#OP1', ctrl: { actor: 'svc:sync' } }
|
|
147
|
+
]
|
|
148
|
+
out: { actors: { 'user:42': { calls: 2, amount: 2 }, 'svc:sync': { calls: 1, amount: 1 } } }
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
# --- the budget ----------------------------------------------------------
|
|
152
|
+
|
|
153
|
+
{
|
|
154
|
+
name: 'warn records the overrun and lets the call through'
|
|
155
|
+
feature: [ { name: 'cost', active: true, unit: 1, budget: 2 } ]
|
|
156
|
+
op: [ { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' } ]
|
|
157
|
+
out: { total: { calls: 3, amount: 3 }, budget: { exceeded: true, remaining: 0 } }
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
{
|
|
161
|
+
name: 'deny refuses the call once the budget is spent, before the network'
|
|
162
|
+
feature: [ { name: 'cost', active: true, unit: 1, budget: 2, onBudget: 'deny' } ]
|
|
163
|
+
op: [ { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1', err: 'cost_budget' } ]
|
|
164
|
+
out: { total: { calls: 2, attempts: 2, amount: 2 }, budget: { exceeded: true } }
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
{
|
|
168
|
+
name: 'an explicit budget of zero means no ceiling'
|
|
169
|
+
feature: [ { name: 'cost', active: true, unit: 1, budget: 0, onBudget: 'deny' } ]
|
|
170
|
+
op: [ { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' } ]
|
|
171
|
+
out: { total: { calls: 5, amount: 5 } }
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
# The case above supplies `budget: 0`; this one omits it. They are separate
|
|
175
|
+
# cases on purpose. An implementation that reads the option into a
|
|
176
|
+
# nullable, or treats "supplied" as "set a ceiling", passes one and fails
|
|
177
|
+
# the other, and a single case cannot tell which path it took.
|
|
178
|
+
{
|
|
179
|
+
name: 'an omitted budget means no ceiling either'
|
|
180
|
+
feature: [ { name: 'cost', active: true, unit: 1, onBudget: 'deny' } ]
|
|
181
|
+
op: [ { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' }, { op: '#OP1' } ]
|
|
182
|
+
out: { total: { calls: 5, amount: 5 } }
|
|
183
|
+
}
|
|
184
|
+
]
|
|
185
|
+
|
|
186
|
+
# NOT EXPRESSIBLE HERE, and deliberately left to the per-language suites.
|
|
187
|
+
# `partial`, not `basic: pending`: the section RUNS, so the deferral marker
|
|
188
|
+
# that means "this whole section is a hole" would be a lie here (and the
|
|
189
|
+
# corpus guard promotes any deferred section that has gained cases).
|
|
190
|
+
partial: 'the sink callback takes a function, which a JSON fixture cannot carry; covered per-language.'
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
primary: clean: @"clean.aon"
|
|
2
|
+
primary: done: @"done.aon"
|
|
3
|
+
primary: featureAdd: @"featureAdd.aon"
|
|
4
|
+
primary: featureHook: @"featureHook.aon"
|
|
5
|
+
primary: featureInit: @"featureInit.aon"
|
|
6
|
+
primary: fetcher: @"fetcher.aon"
|
|
7
|
+
primary: makeContext: @"makeContext.aon"
|
|
8
|
+
primary: makeError: @"makeError.aon"
|
|
9
|
+
primary: makeFetchDef: @"makeFetchDef.aon"
|
|
10
|
+
primary: makeOptions: @"makeOptions.aon"
|
|
11
|
+
primary: makeRequest: @"makeRequest.aon"
|
|
12
|
+
primary: makeResponse: @"makeResponse.aon"
|
|
13
|
+
primary: makeResult: @"makeResult.aon"
|
|
14
|
+
primary: makeSpec: @"makeSpec.aon"
|
|
15
|
+
primary: makePoint: @"makePoint.aon"
|
|
16
|
+
primary: makeUrl: @"makeUrl.aon"
|
|
17
|
+
primary: operator: @"operator.aon"
|
|
18
|
+
primary: param: @"param.aon"
|
|
19
|
+
primary: prepareAuth: @"prepareAuth.aon"
|
|
20
|
+
primary: prepareBody: @"prepareBody.aon"
|
|
21
|
+
primary: prepareHeaders: @"prepareHeaders.aon"
|
|
22
|
+
primary: prepareMethod: @"prepareMethod.aon"
|
|
23
|
+
primary: prepareParams: @"prepareParams.aon"
|
|
24
|
+
primary: preparePath: @"preparePath.aon"
|
|
25
|
+
primary: prepareQuery: @"prepareQuery.aon"
|
|
26
|
+
primary: resultBasic: @"resultBasic.aon"
|
|
27
|
+
primary: resultBody: @"resultBody.aon"
|
|
28
|
+
primary: resultHeaders: @"resultHeaders.aon"
|
|
29
|
+
primary: transformRequest: @"transformRequest.aon"
|
|
30
|
+
primary: transformResponse: @"transformResponse.aon"
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
|
|
2
|
+
struct: &: {
|
|
3
|
+
name: .$KEY
|
|
4
|
+
set: []
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
struct: minor: @"minor.aon"
|
|
8
|
+
struct: getpath: @"getpath.aon"
|
|
9
|
+
struct: inject: @"inject.aon"
|
|
10
|
+
struct: merge: @"merge.aon"
|
|
11
|
+
struct: transform: @"transform.aon"
|
|
12
|
+
struct: walk: @"walk.aon"
|
|
13
|
+
struct: validate: @"validate.aon"
|
|
14
|
+
struct: select: @"select.aon"
|
|
15
|
+
|
|
16
|
+
primary: check: {
|
|
17
|
+
DEF: {
|
|
18
|
+
client:a:test:options:foo:1
|
|
19
|
+
}
|
|
20
|
+
basic: set: [
|
|
21
|
+
{ ctx:meta:bar:BAR0, out:zed:ZED_BAR0 }
|
|
22
|
+
{ ctx:meta:bar:BAR1, client:a, out:zed:ZED1_BAR1 }
|
|
23
|
+
]
|
|
24
|
+
}
|
|
25
|
+
|