@voxgig/create-sdkgen 0.17.2 → 0.18.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 +7 -1
- package/dist/create-sdkgen.js.map +1 -1
- package/package.json +1 -1
- package/project/standard/.github/workflows/ci.yml +60 -48
- package/project/standard/.sdk/src/Root.ts +1 -1
- package/project/standard/.sdk/test/primary/featureAdd.aontu +8 -4
- package/project/standard/.sdk/test/primary/featureHook.aontu +7 -4
- package/project/standard/.sdk/test/primary/featureInit.aontu +7 -4
- package/project/standard/.sdk/test/primary/fetcher.aontu +7 -6
- package/project/standard/.sdk/test/primary/makeFetchDef.aontu +7 -6
- package/project/standard/.sdk/test/primary/makePoint.aontu +122 -8
- package/project/standard/.sdk/test/primary/makeResult.aontu +11 -10
- package/project/standard/.sdk/test/test.json +332 -1
- package/src/create-sdkgen.ts +9 -1
package/dist/create-sdkgen.js
CHANGED
|
@@ -69,7 +69,13 @@ function CreateSdkGen(opts) {
|
|
|
69
69
|
const rootModule = require(rootPath);
|
|
70
70
|
const CreateRoot = rootModule.CreateRoot;
|
|
71
71
|
const name = spec.name;
|
|
72
|
-
|
|
72
|
+
const defGiven = null != spec.def && '' !== spec.def;
|
|
73
|
+
// A given-but-missing --def is a mistake; omitting --def entirely
|
|
74
|
+
// legitimately gets the placeholder spec below.
|
|
75
|
+
if (defGiven && !fs.existsSync(spec.def)) {
|
|
76
|
+
throw new Error(`OpenAPI definition file not found: ${spec.def}`);
|
|
77
|
+
}
|
|
78
|
+
spec.def = defGiven ? spec.def : name + '-openapi3.yml';
|
|
73
79
|
spec.sdk_folder = SDK_FOLDER;
|
|
74
80
|
const cwd = process.cwd();
|
|
75
81
|
const folder = (null == spec.folder || '' == spec.folder) ?
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":";AAAA,yDAAyD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"create-sdkgen.js","sourceRoot":"","sources":["../src/create-sdkgen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -46,9 +46,9 @@ jobs:
|
|
|
46
46
|
go:
|
|
47
47
|
runs-on: ubuntu-latest
|
|
48
48
|
steps:
|
|
49
|
-
- uses: actions/checkout@
|
|
49
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
50
50
|
- if: hashFiles('go/go.mod') != ''
|
|
51
|
-
uses: actions/setup-go@
|
|
51
|
+
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
|
|
52
52
|
with:
|
|
53
53
|
go-version: '1.24'
|
|
54
54
|
- if: hashFiles('go/go.mod') != ''
|
|
@@ -64,9 +64,9 @@ jobs:
|
|
|
64
64
|
env:
|
|
65
65
|
GOSUMDB: 'off'
|
|
66
66
|
steps:
|
|
67
|
-
- uses: actions/checkout@
|
|
67
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
68
68
|
- if: hashFiles('go-cli/go.mod') != ''
|
|
69
|
-
uses: actions/setup-go@
|
|
69
|
+
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
|
|
70
70
|
with:
|
|
71
71
|
go-version: '1.24'
|
|
72
72
|
- if: hashFiles('go-cli/go.mod') != ''
|
|
@@ -80,9 +80,9 @@ jobs:
|
|
|
80
80
|
go-mcp:
|
|
81
81
|
runs-on: ubuntu-latest
|
|
82
82
|
steps:
|
|
83
|
-
- uses: actions/checkout@
|
|
83
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
84
84
|
- if: hashFiles('go-mcp/go.mod') != ''
|
|
85
|
-
uses: actions/setup-go@
|
|
85
|
+
uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7
|
|
86
86
|
with:
|
|
87
87
|
go-version: '1.24'
|
|
88
88
|
- if: hashFiles('go-mcp/go.mod') != ''
|
|
@@ -96,9 +96,9 @@ jobs:
|
|
|
96
96
|
ts:
|
|
97
97
|
runs-on: ubuntu-latest
|
|
98
98
|
steps:
|
|
99
|
-
- uses: actions/checkout@
|
|
99
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
100
100
|
- if: hashFiles('ts/package.json') != ''
|
|
101
|
-
uses: actions/setup-node@
|
|
101
|
+
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
|
|
102
102
|
with:
|
|
103
103
|
node-version: '24'
|
|
104
104
|
- if: hashFiles('ts/package.json') != ''
|
|
@@ -114,9 +114,9 @@ jobs:
|
|
|
114
114
|
py:
|
|
115
115
|
runs-on: ubuntu-latest
|
|
116
116
|
steps:
|
|
117
|
-
- uses: actions/checkout@
|
|
117
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
118
118
|
- if: hashFiles('py/Makefile') != ''
|
|
119
|
-
uses: actions/setup-python@
|
|
119
|
+
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7
|
|
120
120
|
with:
|
|
121
121
|
python-version: '3.13'
|
|
122
122
|
- if: hashFiles('py/Makefile') != ''
|
|
@@ -127,9 +127,9 @@ jobs:
|
|
|
127
127
|
rb:
|
|
128
128
|
runs-on: ubuntu-latest
|
|
129
129
|
steps:
|
|
130
|
-
- uses: actions/checkout@
|
|
130
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
131
131
|
- if: hashFiles('rb/Makefile') != ''
|
|
132
|
-
uses: ruby/setup-ruby@v1
|
|
132
|
+
uses: ruby/setup-ruby@95ef2b042f9d7a56d8268cba8559e2842e2ad01b # v1
|
|
133
133
|
with:
|
|
134
134
|
ruby-version: '3.3'
|
|
135
135
|
- if: hashFiles('rb/Makefile') != ''
|
|
@@ -138,9 +138,9 @@ jobs:
|
|
|
138
138
|
php:
|
|
139
139
|
runs-on: ubuntu-latest
|
|
140
140
|
steps:
|
|
141
|
-
- uses: actions/checkout@
|
|
141
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
142
142
|
- if: hashFiles('php/composer.json') != ''
|
|
143
|
-
uses: shivammathur/setup-php@v2
|
|
143
|
+
uses: shivammathur/setup-php@f3e473d116dcccaddc5834248c87452386958240 # v2
|
|
144
144
|
with:
|
|
145
145
|
php-version: '8.3'
|
|
146
146
|
- if: hashFiles('php/composer.json') != ''
|
|
@@ -151,13 +151,13 @@ jobs:
|
|
|
151
151
|
lua:
|
|
152
152
|
runs-on: ubuntu-latest
|
|
153
153
|
steps:
|
|
154
|
-
- uses: actions/checkout@
|
|
154
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
155
155
|
- if: hashFiles('lua/Makefile') != ''
|
|
156
|
-
uses: leafo/gh-actions-lua@
|
|
156
|
+
uses: leafo/gh-actions-lua@6919171ccf181b826f44b9bca76307b577217377 # v13
|
|
157
157
|
with:
|
|
158
158
|
luaVersion: '5.4'
|
|
159
159
|
- if: hashFiles('lua/Makefile') != ''
|
|
160
|
-
uses: leafo/gh-actions-luarocks@
|
|
160
|
+
uses: leafo/gh-actions-luarocks@35d062def313a7699a0d513e996bcf4352f05389 # v6
|
|
161
161
|
- if: hashFiles('lua/Makefile') != ''
|
|
162
162
|
run: luarocks install busted
|
|
163
163
|
- if: hashFiles('lua/Makefile') != ''
|
|
@@ -169,9 +169,9 @@ jobs:
|
|
|
169
169
|
runs-on: ubuntu-latest
|
|
170
170
|
continue-on-error: true
|
|
171
171
|
steps:
|
|
172
|
-
- uses: actions/checkout@
|
|
172
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
173
173
|
- if: hashFiles('js/Makefile') != ''
|
|
174
|
-
uses: actions/setup-node@
|
|
174
|
+
uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
|
|
175
175
|
with:
|
|
176
176
|
node-version: '24'
|
|
177
177
|
- if: hashFiles('js/package.json') != ''
|
|
@@ -183,9 +183,9 @@ jobs:
|
|
|
183
183
|
runs-on: ubuntu-latest
|
|
184
184
|
continue-on-error: true
|
|
185
185
|
steps:
|
|
186
|
-
- uses: actions/checkout@
|
|
186
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
187
187
|
- if: hashFiles('csharp/Makefile') != ''
|
|
188
|
-
uses: actions/setup-dotnet@
|
|
188
|
+
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6
|
|
189
189
|
with:
|
|
190
190
|
dotnet-version: '8.0.x'
|
|
191
191
|
- if: hashFiles('csharp/Makefile') != ''
|
|
@@ -195,9 +195,9 @@ jobs:
|
|
|
195
195
|
runs-on: ubuntu-latest
|
|
196
196
|
continue-on-error: true
|
|
197
197
|
steps:
|
|
198
|
-
- uses: actions/checkout@
|
|
198
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
199
199
|
- if: hashFiles('java/Makefile') != ''
|
|
200
|
-
uses: actions/setup-java@
|
|
200
|
+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
|
|
201
201
|
with:
|
|
202
202
|
distribution: temurin
|
|
203
203
|
java-version: '21'
|
|
@@ -208,9 +208,9 @@ jobs:
|
|
|
208
208
|
runs-on: ubuntu-latest
|
|
209
209
|
continue-on-error: true
|
|
210
210
|
steps:
|
|
211
|
-
- uses: actions/checkout@
|
|
211
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
212
212
|
- if: hashFiles('kotlin/Makefile') != ''
|
|
213
|
-
uses: actions/setup-java@
|
|
213
|
+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
|
|
214
214
|
with:
|
|
215
215
|
distribution: temurin
|
|
216
216
|
java-version: '21'
|
|
@@ -221,9 +221,9 @@ jobs:
|
|
|
221
221
|
runs-on: ubuntu-latest
|
|
222
222
|
continue-on-error: true
|
|
223
223
|
steps:
|
|
224
|
-
- uses: actions/checkout@
|
|
224
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
225
225
|
- if: hashFiles('scala/Makefile') != ''
|
|
226
|
-
uses: actions/setup-java@
|
|
226
|
+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
|
|
227
227
|
with:
|
|
228
228
|
distribution: temurin
|
|
229
229
|
java-version: '21'
|
|
@@ -235,7 +235,7 @@ jobs:
|
|
|
235
235
|
# what executes in every consumer's CI with no change or review in their
|
|
236
236
|
# repo. Matches how the other third-party setup actions here are pinned.
|
|
237
237
|
- if: hashFiles('scala/Makefile') != ''
|
|
238
|
-
uses: VirtusLab/scala-cli-setup@v1.
|
|
238
|
+
uses: VirtusLab/scala-cli-setup@8db5313925605c20e292348c1749e80dac7eed0f # v1.16.0
|
|
239
239
|
- if: hashFiles('scala/Makefile') != ''
|
|
240
240
|
run: make -C scala test
|
|
241
241
|
|
|
@@ -243,9 +243,13 @@ jobs:
|
|
|
243
243
|
runs-on: ubuntu-latest
|
|
244
244
|
continue-on-error: true
|
|
245
245
|
steps:
|
|
246
|
-
- uses: actions/checkout@
|
|
246
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
247
|
+
# NODE24 EXCEPTION: every other action here runs on the node24 runtime.
|
|
248
|
+
# setup-swift has no node24 release — v2 and v3 are both node20 — so it
|
|
249
|
+
# stays on v2 and will emit a deprecation warning. Revisit when upstream
|
|
250
|
+
# ships one.
|
|
247
251
|
- if: hashFiles('swift/Makefile') != ''
|
|
248
|
-
uses: swift-actions/setup-swift@v2
|
|
252
|
+
uses: swift-actions/setup-swift@7ca6abe6b3b0e8b5421b88be48feee39cbf52c6a # v2
|
|
249
253
|
with:
|
|
250
254
|
swift-version: '6.0'
|
|
251
255
|
- if: hashFiles('swift/Makefile') != ''
|
|
@@ -255,9 +259,9 @@ jobs:
|
|
|
255
259
|
runs-on: ubuntu-latest
|
|
256
260
|
continue-on-error: true
|
|
257
261
|
steps:
|
|
258
|
-
- uses: actions/checkout@
|
|
262
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
259
263
|
- if: hashFiles('dart/Makefile') != ''
|
|
260
|
-
uses: dart-lang/setup-dart@v1
|
|
264
|
+
uses: dart-lang/setup-dart@65eb853c7ba17dde3be364c3d2858773e7144260 # v1
|
|
261
265
|
with:
|
|
262
266
|
sdk: stable
|
|
263
267
|
- if: hashFiles('dart/pubspec.yaml') != ''
|
|
@@ -269,9 +273,14 @@ jobs:
|
|
|
269
273
|
runs-on: ubuntu-latest
|
|
270
274
|
continue-on-error: true
|
|
271
275
|
steps:
|
|
272
|
-
- uses: actions/checkout@
|
|
276
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
273
277
|
- if: hashFiles('rust/Makefile') != ''
|
|
274
|
-
|
|
278
|
+
# The SHA is the head of this action's `stable` BRANCH, whose action.yml
|
|
279
|
+
# carries `toolchain: default: stable`. State it explicitly anyway, so
|
|
280
|
+
# the intended toolchain survives a future re-pin to another branch.
|
|
281
|
+
uses: dtolnay/rust-toolchain@4360b52568e2003a75bf9bc1d59f33a8e3fc893c # stable
|
|
282
|
+
with:
|
|
283
|
+
toolchain: stable
|
|
275
284
|
- if: hashFiles('rust/Makefile') != ''
|
|
276
285
|
run: make -C rust test
|
|
277
286
|
|
|
@@ -279,7 +288,7 @@ jobs:
|
|
|
279
288
|
runs-on: ubuntu-latest
|
|
280
289
|
continue-on-error: true
|
|
281
290
|
steps:
|
|
282
|
-
- uses: actions/checkout@
|
|
291
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
283
292
|
# gcc/make are preinstalled on ubuntu-latest — no setup step needed.
|
|
284
293
|
- if: hashFiles('c/Makefile') != ''
|
|
285
294
|
run: make -C c test
|
|
@@ -288,7 +297,7 @@ jobs:
|
|
|
288
297
|
runs-on: ubuntu-latest
|
|
289
298
|
continue-on-error: true
|
|
290
299
|
steps:
|
|
291
|
-
- uses: actions/checkout@
|
|
300
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
292
301
|
- if: hashFiles('cpp/Makefile') != ''
|
|
293
302
|
run: make -C cpp test
|
|
294
303
|
|
|
@@ -296,13 +305,16 @@ jobs:
|
|
|
296
305
|
runs-on: ubuntu-latest
|
|
297
306
|
continue-on-error: true
|
|
298
307
|
steps:
|
|
299
|
-
- uses: actions/checkout@
|
|
308
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
300
309
|
# 0.13, NOT 0.14+: the generated build.zig.zon declares `.name` as a
|
|
301
310
|
# plain string, which 0.14 rejects ("expected enum literal"). Package_zig
|
|
302
311
|
# says the string form matches the target's toolchain pin — keep the two
|
|
303
312
|
# in step, or move both to the enum-literal + fingerprint form together.
|
|
313
|
+
# NODE24 EXCEPTION: setup-zig has no node24 release — v1 and v2 are both
|
|
314
|
+
# node20 — so it stays on v1 and will emit a deprecation warning.
|
|
315
|
+
# Revisit when upstream ships one.
|
|
304
316
|
- if: hashFiles('zig/build.zig') != ''
|
|
305
|
-
uses: mlugg/setup-zig@v1
|
|
317
|
+
uses: mlugg/setup-zig@53fc45b17fe98b52f92ee5ea08ff48a85a3e7eb7 # v1
|
|
306
318
|
with:
|
|
307
319
|
version: '0.13.0'
|
|
308
320
|
- if: hashFiles('zig/build.zig') != ''
|
|
@@ -312,7 +324,7 @@ jobs:
|
|
|
312
324
|
runs-on: ubuntu-latest
|
|
313
325
|
continue-on-error: true
|
|
314
326
|
steps:
|
|
315
|
-
- uses: actions/checkout@
|
|
327
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
316
328
|
# perl is preinstalled on ubuntu-latest.
|
|
317
329
|
- if: hashFiles('perl/Makefile') != ''
|
|
318
330
|
run: make -C perl test
|
|
@@ -321,14 +333,14 @@ jobs:
|
|
|
321
333
|
runs-on: ubuntu-latest
|
|
322
334
|
continue-on-error: true
|
|
323
335
|
steps:
|
|
324
|
-
- uses: actions/checkout@
|
|
336
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
325
337
|
- if: hashFiles('clojure/Makefile') != ''
|
|
326
|
-
uses: actions/setup-java@
|
|
338
|
+
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5
|
|
327
339
|
with:
|
|
328
340
|
distribution: temurin
|
|
329
341
|
java-version: '21'
|
|
330
342
|
- if: hashFiles('clojure/Makefile') != ''
|
|
331
|
-
uses: DeLaGuardo/setup-clojure@13
|
|
343
|
+
uses: DeLaGuardo/setup-clojure@4c7a6f613e5089821bb3bb2a33a3ee115578580d # 13
|
|
332
344
|
with:
|
|
333
345
|
cli: latest
|
|
334
346
|
- if: hashFiles('clojure/Makefile') != ''
|
|
@@ -338,9 +350,9 @@ jobs:
|
|
|
338
350
|
runs-on: ubuntu-latest
|
|
339
351
|
continue-on-error: true
|
|
340
352
|
steps:
|
|
341
|
-
- uses: actions/checkout@
|
|
353
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
342
354
|
- if: hashFiles('elixir/Makefile') != ''
|
|
343
|
-
uses: erlef/setup-beam@v1
|
|
355
|
+
uses: erlef/setup-beam@54075bcc5e249e4758d363f27d099f55d843f124 # v1
|
|
344
356
|
with:
|
|
345
357
|
otp-version: '27'
|
|
346
358
|
elixir-version: '1.17'
|
|
@@ -351,9 +363,9 @@ jobs:
|
|
|
351
363
|
runs-on: ubuntu-latest
|
|
352
364
|
continue-on-error: true
|
|
353
365
|
steps:
|
|
354
|
-
- uses: actions/checkout@
|
|
366
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
355
367
|
- if: hashFiles('ocaml/Makefile') != ''
|
|
356
|
-
uses: ocaml/setup-ocaml@v3
|
|
368
|
+
uses: ocaml/setup-ocaml@605a7e998e76e035b82c14d618a6e1010732c4ce # v3
|
|
357
369
|
with:
|
|
358
370
|
ocaml-compiler: '5.2'
|
|
359
371
|
- if: hashFiles('ocaml/Makefile') != ''
|
|
@@ -363,9 +375,9 @@ jobs:
|
|
|
363
375
|
runs-on: ubuntu-latest
|
|
364
376
|
continue-on-error: true
|
|
365
377
|
steps:
|
|
366
|
-
- uses: actions/checkout@
|
|
378
|
+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
|
|
367
379
|
- if: hashFiles('haskell/Makefile') != ''
|
|
368
|
-
uses: haskell-actions/setup@v2
|
|
380
|
+
uses: haskell-actions/setup@6037f33647c3f17758a2356c80fc4a53d7e0685d # v2
|
|
369
381
|
with:
|
|
370
382
|
ghc-version: '9.6'
|
|
371
383
|
- if: hashFiles('haskell/Makefile') != ''
|
|
@@ -105,7 +105,7 @@ const Root = cmp(function Root(props: any) {
|
|
|
105
105
|
false !== (phase[name] && phase[name].active)
|
|
106
106
|
|
|
107
107
|
if (phaseActive('entity')) {
|
|
108
|
-
each(entity
|
|
108
|
+
each(entity).filter((entity: any) => entity.active).map((entity: any) => {
|
|
109
109
|
names(entity, entity.name)
|
|
110
110
|
Entity({ target, entity })
|
|
111
111
|
})
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
#
|
|
4
|
+
# featureAdd(ctx, f) mutates client._features, so a case would have to assert
|
|
5
|
+
# on the shared client every other section also uses, and undo itself
|
|
6
|
+
# afterwards. The runner constructs one client per spec (DEF.client) rather
|
|
7
|
+
# than one per entry, so there is no isolation to build that on yet.
|
|
5
8
|
#
|
|
6
9
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
7
|
-
# accident:
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
11
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
12
|
+
# in a comment the consumer never sees.
|
|
10
13
|
|
|
14
|
+
basic: pending: 'featureAdd mutates client._features; the runner builds one client per spec, not per entry, so a case cannot isolate or undo itself.'
|
|
11
15
|
basic: set: []
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
#
|
|
4
|
+
# featureHook(ctx, name) calls f[name] on each registered feature. Asserting
|
|
5
|
+
# it needs features whose hooks are FUNCTIONS; a fixture compiles to JSON and
|
|
6
|
+
# cannot carry one. Covered per-language by the feature suites.
|
|
5
7
|
#
|
|
6
8
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
7
|
-
# accident:
|
|
8
|
-
#
|
|
9
|
-
#
|
|
9
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
10
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
11
|
+
# in a comment the consumer never sees.
|
|
10
12
|
|
|
13
|
+
basic: pending: 'featureHook calls f[name] on each registered feature; a fixture compiles to JSON and cannot carry a function.'
|
|
11
14
|
basic: set: []
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
#
|
|
4
|
+
# featureInit(ctx, f) calls f.init(ctx, fopts). `init` is a function, and a
|
|
5
|
+
# fixture compiles to JSON, so the subject of the test cannot be expressed
|
|
6
|
+
# here at all. Covered per-language by the feature suites.
|
|
5
7
|
#
|
|
6
8
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
7
|
-
# accident:
|
|
8
|
-
#
|
|
9
|
-
#
|
|
9
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
10
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
11
|
+
# in a comment the consumer never sees.
|
|
10
12
|
|
|
13
|
+
basic: pending: 'featureInit calls f.init(ctx, fopts); init is a function, and a fixture compiles to JSON, so the subject cannot be expressed here.'
|
|
11
14
|
basic: set: []
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
# Needs a live
|
|
5
|
-
#
|
|
6
|
-
# feature
|
|
4
|
+
# Needs a live or mocked transport and a client instance; the shared runner
|
|
5
|
+
# has no transport-injection hook. Covered per-language by the netsim and
|
|
6
|
+
# feature suites until this fixture can express a transport.
|
|
7
7
|
#
|
|
8
8
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
9
|
-
# accident:
|
|
10
|
-
#
|
|
11
|
-
#
|
|
9
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
10
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
11
|
+
# in a comment the consumer never sees.
|
|
12
12
|
|
|
13
|
+
basic: pending: 'Needs a live or mocked transport and a client instance; the shared runner has no transport-injection hook.'
|
|
13
14
|
basic: set: []
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
# Depends on a fully built ctx (spec + point + options) that the
|
|
5
|
-
#
|
|
6
|
-
#
|
|
4
|
+
# Depends on a fully built ctx (spec + point + options) that the shared
|
|
5
|
+
# runner cannot assemble from a literal map. Covered indirectly by
|
|
6
|
+
# makeSpec/makeUrl, and by the per-language pipeline suites.
|
|
7
7
|
#
|
|
8
8
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
9
|
-
# accident:
|
|
10
|
-
#
|
|
11
|
-
#
|
|
9
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
10
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
11
|
+
# in a comment the consumer never sees.
|
|
12
12
|
|
|
13
|
+
basic: pending: 'Depends on a fully built ctx (spec + point + options) that the runner cannot assemble from a literal map.'
|
|
13
14
|
basic: set: []
|
|
@@ -1,12 +1,126 @@
|
|
|
1
1
|
|
|
2
|
-
#
|
|
2
|
+
# makePoint chooses which endpoint definition ("point") an operation call
|
|
3
|
+
# should use, and records it on ctx.point.
|
|
3
4
|
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
5
|
+
# The whole selection is driven by DATA: `op` is rebuilt by Context from
|
|
6
|
+
# `opname` + `entity.name` + `config.entity.<name>.op.<opname>.points`, and
|
|
7
|
+
# `options.allow.op` gates the call. So every branch below is expressible as
|
|
8
|
+
# a literal ctx, contrary to the deferral note this fixture used to carry,
|
|
9
|
+
# which claimed it needed a real client.
|
|
6
10
|
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
+
# Errors are RETURNED, not thrown, and their JSON embeds a random ctx id, so
|
|
12
|
+
# the error cases assert `match: out: code` rather than a whole-value `out`.
|
|
13
|
+
# Go returns the error as a second result instead, and its runner normalises
|
|
14
|
+
# it to the same `{code}` shape.
|
|
15
|
+
#
|
|
16
|
+
# `allow.op` is a COMMA-SEPARATED STRING, not a list — that is what the client
|
|
17
|
+
# actually carries. Go reads it with strings.Contains and type-asserts to
|
|
18
|
+
# string, so a list here silently denies every operation; TS's .includes()
|
|
19
|
+
# accepts either and would have hidden the mismatch.
|
|
20
|
+
|
|
21
|
+
basic: set: [
|
|
22
|
+
|
|
23
|
+
# One point: no selection to do, it is simply the point.
|
|
24
|
+
{
|
|
25
|
+
ctx: {
|
|
26
|
+
opname: 'list'
|
|
27
|
+
entity: { name: 'planet' }
|
|
28
|
+
options: { allow: { op: 'list' } }
|
|
29
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
30
|
+
{ method: 'GET', path: ['api', 'planet'], select: {} }
|
|
31
|
+
] } } } } }
|
|
32
|
+
}
|
|
33
|
+
out: { method: 'GET', path: ['api', 'planet'], select: {} }
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
# allow.op is the gate: an operation missing from it is refused before any
|
|
37
|
+
# point is considered.
|
|
38
|
+
{
|
|
39
|
+
ctx: {
|
|
40
|
+
opname: 'list'
|
|
41
|
+
entity: { name: 'planet' }
|
|
42
|
+
options: { allow: { op: 'load' } }
|
|
43
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
44
|
+
{ method: 'GET', path: ['api', 'planet'], select: {} }
|
|
45
|
+
] } } } } }
|
|
46
|
+
}
|
|
47
|
+
match: { out: { code: 'point_op_allow' } }
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
# An operation declared with no points at all is a model error, reported
|
|
51
|
+
# rather than returning an undefined point.
|
|
52
|
+
{
|
|
53
|
+
ctx: {
|
|
54
|
+
opname: 'list'
|
|
55
|
+
entity: { name: 'planet' }
|
|
56
|
+
options: { allow: { op: 'list' } }
|
|
57
|
+
config: { entity: { planet: { op: { list: { points: [] } } } } }
|
|
58
|
+
}
|
|
59
|
+
match: { out: { code: 'point_no_points' } }
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
# Two points: `select.exist` picks the one whose required keys are present
|
|
63
|
+
# in the match. `id` is supplied, so the by-id point wins.
|
|
64
|
+
{
|
|
65
|
+
ctx: {
|
|
66
|
+
opname: 'list'
|
|
67
|
+
entity: { name: 'planet' }
|
|
68
|
+
options: { allow: { op: 'list' } }
|
|
69
|
+
match: { id: 'p01' }
|
|
70
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
71
|
+
{ method: 'GET', path: ['byid'], select: { exist: ['id'] } }
|
|
72
|
+
{ method: 'GET', path: ['all'], select: {} }
|
|
73
|
+
] } } } } }
|
|
74
|
+
}
|
|
75
|
+
out: { method: 'GET', path: ['byid'], select: { exist: ['id'] } }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
# Same two points, but `id` is absent — the exist check fails and selection
|
|
79
|
+
# falls through to the unconstrained point.
|
|
80
|
+
{
|
|
81
|
+
ctx: {
|
|
82
|
+
opname: 'list'
|
|
83
|
+
entity: { name: 'planet' }
|
|
84
|
+
options: { allow: { op: 'list' } }
|
|
85
|
+
match: { name: 'earth' }
|
|
86
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
87
|
+
{ method: 'GET', path: ['byid'], select: { exist: ['id'] } }
|
|
88
|
+
{ method: 'GET', path: ['all'], select: {} }
|
|
89
|
+
] } } } } }
|
|
90
|
+
}
|
|
91
|
+
out: { method: 'GET', path: ['all'], select: {} }
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
# $action selects among points. It is read from reqmatch (the operation
|
|
95
|
+
# argument) only, never from the entity data.
|
|
96
|
+
{
|
|
97
|
+
ctx: {
|
|
98
|
+
opname: 'list'
|
|
99
|
+
entity: { name: 'planet' }
|
|
100
|
+
options: { allow: { op: 'list' } }
|
|
101
|
+
reqmatch: { '$action': 'stop' }
|
|
102
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
103
|
+
{ method: 'POST', path: ['start'], select: { '$action': 'start' } }
|
|
104
|
+
{ method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
|
|
105
|
+
] } } } } }
|
|
106
|
+
}
|
|
107
|
+
out: { method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
# An $action naming no point is refused rather than silently falling back
|
|
111
|
+
# to the last one considered.
|
|
112
|
+
{
|
|
113
|
+
ctx: {
|
|
114
|
+
opname: 'list'
|
|
115
|
+
entity: { name: 'planet' }
|
|
116
|
+
options: { allow: { op: 'list' } }
|
|
117
|
+
reqmatch: { '$action': 'nope' }
|
|
118
|
+
config: { entity: { planet: { op: { list: { points: [
|
|
119
|
+
{ method: 'POST', path: ['start'], select: { '$action': 'start' } }
|
|
120
|
+
{ method: 'POST', path: ['stop'], select: { '$action': 'stop' } }
|
|
121
|
+
] } } } } }
|
|
122
|
+
}
|
|
123
|
+
match: { out: { code: 'point_action_invalid' } }
|
|
124
|
+
}
|
|
11
125
|
|
|
12
|
-
|
|
126
|
+
]
|
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
|
|
2
2
|
# PENDING — this section is deliberately empty.
|
|
3
3
|
#
|
|
4
|
-
# makeResult needs a ctx carrying a constructed Spec AND Result
|
|
5
|
-
# SDK's own NewSpec/NewResult constructors
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
4
|
+
# makeResult needs a ctx carrying a constructed Spec AND Result, built via the
|
|
5
|
+
# SDK's own NewSpec/NewResult constructors, plus the absent-error path for
|
|
6
|
+
# each. The runner builds ctx from a literal map and has no constructor hook,
|
|
7
|
+
# so these cannot be expressed here yet — covered per-language today (e.g.
|
|
8
|
+
# go's makeResult-basic / -no-spec / -no-result), which is exactly the drift
|
|
9
|
+
# this corpus exists to remove. Promoting it needs a runner change, not just
|
|
10
|
+
# fixture data.
|
|
11
11
|
#
|
|
12
12
|
# An empty `set` runs ZERO cases. Runners must not treat that as a pass by
|
|
13
|
-
# accident:
|
|
14
|
-
#
|
|
15
|
-
#
|
|
13
|
+
# accident: `basic: pending` below is the MACHINE-READABLE form of this note,
|
|
14
|
+
# so the guard travels into test.json with the fixture instead of living only
|
|
15
|
+
# in a comment the consumer never sees.
|
|
16
16
|
|
|
17
|
+
basic: pending: 'Needs a ctx carrying a Spec AND Result built via the SDK constructors; the runner builds ctx from a literal map and has no constructor hook.'
|
|
17
18
|
basic: set: []
|
|
@@ -16716,21 +16716,25 @@
|
|
|
16716
16716
|
},
|
|
16717
16717
|
"featureAdd": {
|
|
16718
16718
|
"basic": {
|
|
16719
|
+
"pending": "featureAdd mutates client._features; the runner builds one client per spec, not per entry, so a case cannot isolate or undo itself.",
|
|
16719
16720
|
"set": []
|
|
16720
16721
|
}
|
|
16721
16722
|
},
|
|
16722
16723
|
"featureHook": {
|
|
16723
16724
|
"basic": {
|
|
16725
|
+
"pending": "featureHook calls f[name] on each registered feature; a fixture compiles to JSON and cannot carry a function.",
|
|
16724
16726
|
"set": []
|
|
16725
16727
|
}
|
|
16726
16728
|
},
|
|
16727
16729
|
"featureInit": {
|
|
16728
16730
|
"basic": {
|
|
16731
|
+
"pending": "featureInit calls f.init(ctx, fopts); init is a function, and a fixture compiles to JSON, so the subject cannot be expressed here.",
|
|
16729
16732
|
"set": []
|
|
16730
16733
|
}
|
|
16731
16734
|
},
|
|
16732
16735
|
"fetcher": {
|
|
16733
16736
|
"basic": {
|
|
16737
|
+
"pending": "Needs a live or mocked transport and a client instance; the shared runner has no transport-injection hook.",
|
|
16734
16738
|
"set": []
|
|
16735
16739
|
}
|
|
16736
16740
|
},
|
|
@@ -16831,6 +16835,7 @@
|
|
|
16831
16835
|
},
|
|
16832
16836
|
"makeFetchDef": {
|
|
16833
16837
|
"basic": {
|
|
16838
|
+
"pending": "Depends on a fully built ctx (spec + point + options) that the runner cannot assemble from a literal map.",
|
|
16834
16839
|
"set": []
|
|
16835
16840
|
}
|
|
16836
16841
|
},
|
|
@@ -16979,6 +16984,7 @@
|
|
|
16979
16984
|
},
|
|
16980
16985
|
"makeResult": {
|
|
16981
16986
|
"basic": {
|
|
16987
|
+
"pending": "Needs a ctx carrying a Spec AND Result built via the SDK constructors; the runner builds ctx from a literal map and has no constructor hook.",
|
|
16982
16988
|
"set": []
|
|
16983
16989
|
}
|
|
16984
16990
|
},
|
|
@@ -17029,7 +17035,332 @@
|
|
|
17029
17035
|
},
|
|
17030
17036
|
"makePoint": {
|
|
17031
17037
|
"basic": {
|
|
17032
|
-
"set": [
|
|
17038
|
+
"set": [
|
|
17039
|
+
{
|
|
17040
|
+
"ctx": {
|
|
17041
|
+
"config": {
|
|
17042
|
+
"entity": {
|
|
17043
|
+
"planet": {
|
|
17044
|
+
"op": {
|
|
17045
|
+
"list": {
|
|
17046
|
+
"points": [
|
|
17047
|
+
{
|
|
17048
|
+
"method": "GET",
|
|
17049
|
+
"path": [
|
|
17050
|
+
"api",
|
|
17051
|
+
"planet"
|
|
17052
|
+
],
|
|
17053
|
+
"select": {}
|
|
17054
|
+
}
|
|
17055
|
+
]
|
|
17056
|
+
}
|
|
17057
|
+
}
|
|
17058
|
+
}
|
|
17059
|
+
}
|
|
17060
|
+
},
|
|
17061
|
+
"entity": {
|
|
17062
|
+
"name": "planet"
|
|
17063
|
+
},
|
|
17064
|
+
"opname": "list",
|
|
17065
|
+
"options": {
|
|
17066
|
+
"allow": {
|
|
17067
|
+
"op": "list"
|
|
17068
|
+
}
|
|
17069
|
+
}
|
|
17070
|
+
},
|
|
17071
|
+
"out": {
|
|
17072
|
+
"method": "GET",
|
|
17073
|
+
"path": [
|
|
17074
|
+
"api",
|
|
17075
|
+
"planet"
|
|
17076
|
+
],
|
|
17077
|
+
"select": {}
|
|
17078
|
+
}
|
|
17079
|
+
},
|
|
17080
|
+
{
|
|
17081
|
+
"ctx": {
|
|
17082
|
+
"config": {
|
|
17083
|
+
"entity": {
|
|
17084
|
+
"planet": {
|
|
17085
|
+
"op": {
|
|
17086
|
+
"list": {
|
|
17087
|
+
"points": [
|
|
17088
|
+
{
|
|
17089
|
+
"method": "GET",
|
|
17090
|
+
"path": [
|
|
17091
|
+
"api",
|
|
17092
|
+
"planet"
|
|
17093
|
+
],
|
|
17094
|
+
"select": {}
|
|
17095
|
+
}
|
|
17096
|
+
]
|
|
17097
|
+
}
|
|
17098
|
+
}
|
|
17099
|
+
}
|
|
17100
|
+
}
|
|
17101
|
+
},
|
|
17102
|
+
"entity": {
|
|
17103
|
+
"name": "planet"
|
|
17104
|
+
},
|
|
17105
|
+
"opname": "list",
|
|
17106
|
+
"options": {
|
|
17107
|
+
"allow": {
|
|
17108
|
+
"op": "load"
|
|
17109
|
+
}
|
|
17110
|
+
}
|
|
17111
|
+
},
|
|
17112
|
+
"match": {
|
|
17113
|
+
"out": {
|
|
17114
|
+
"code": "point_op_allow"
|
|
17115
|
+
}
|
|
17116
|
+
}
|
|
17117
|
+
},
|
|
17118
|
+
{
|
|
17119
|
+
"ctx": {
|
|
17120
|
+
"config": {
|
|
17121
|
+
"entity": {
|
|
17122
|
+
"planet": {
|
|
17123
|
+
"op": {
|
|
17124
|
+
"list": {
|
|
17125
|
+
"points": []
|
|
17126
|
+
}
|
|
17127
|
+
}
|
|
17128
|
+
}
|
|
17129
|
+
}
|
|
17130
|
+
},
|
|
17131
|
+
"entity": {
|
|
17132
|
+
"name": "planet"
|
|
17133
|
+
},
|
|
17134
|
+
"opname": "list",
|
|
17135
|
+
"options": {
|
|
17136
|
+
"allow": {
|
|
17137
|
+
"op": "list"
|
|
17138
|
+
}
|
|
17139
|
+
}
|
|
17140
|
+
},
|
|
17141
|
+
"match": {
|
|
17142
|
+
"out": {
|
|
17143
|
+
"code": "point_no_points"
|
|
17144
|
+
}
|
|
17145
|
+
}
|
|
17146
|
+
},
|
|
17147
|
+
{
|
|
17148
|
+
"ctx": {
|
|
17149
|
+
"config": {
|
|
17150
|
+
"entity": {
|
|
17151
|
+
"planet": {
|
|
17152
|
+
"op": {
|
|
17153
|
+
"list": {
|
|
17154
|
+
"points": [
|
|
17155
|
+
{
|
|
17156
|
+
"method": "GET",
|
|
17157
|
+
"path": [
|
|
17158
|
+
"byid"
|
|
17159
|
+
],
|
|
17160
|
+
"select": {
|
|
17161
|
+
"exist": [
|
|
17162
|
+
"id"
|
|
17163
|
+
]
|
|
17164
|
+
}
|
|
17165
|
+
},
|
|
17166
|
+
{
|
|
17167
|
+
"method": "GET",
|
|
17168
|
+
"path": [
|
|
17169
|
+
"all"
|
|
17170
|
+
],
|
|
17171
|
+
"select": {}
|
|
17172
|
+
}
|
|
17173
|
+
]
|
|
17174
|
+
}
|
|
17175
|
+
}
|
|
17176
|
+
}
|
|
17177
|
+
}
|
|
17178
|
+
},
|
|
17179
|
+
"entity": {
|
|
17180
|
+
"name": "planet"
|
|
17181
|
+
},
|
|
17182
|
+
"match": {
|
|
17183
|
+
"id": "p01"
|
|
17184
|
+
},
|
|
17185
|
+
"opname": "list",
|
|
17186
|
+
"options": {
|
|
17187
|
+
"allow": {
|
|
17188
|
+
"op": "list"
|
|
17189
|
+
}
|
|
17190
|
+
}
|
|
17191
|
+
},
|
|
17192
|
+
"out": {
|
|
17193
|
+
"method": "GET",
|
|
17194
|
+
"path": [
|
|
17195
|
+
"byid"
|
|
17196
|
+
],
|
|
17197
|
+
"select": {
|
|
17198
|
+
"exist": [
|
|
17199
|
+
"id"
|
|
17200
|
+
]
|
|
17201
|
+
}
|
|
17202
|
+
}
|
|
17203
|
+
},
|
|
17204
|
+
{
|
|
17205
|
+
"ctx": {
|
|
17206
|
+
"config": {
|
|
17207
|
+
"entity": {
|
|
17208
|
+
"planet": {
|
|
17209
|
+
"op": {
|
|
17210
|
+
"list": {
|
|
17211
|
+
"points": [
|
|
17212
|
+
{
|
|
17213
|
+
"method": "GET",
|
|
17214
|
+
"path": [
|
|
17215
|
+
"byid"
|
|
17216
|
+
],
|
|
17217
|
+
"select": {
|
|
17218
|
+
"exist": [
|
|
17219
|
+
"id"
|
|
17220
|
+
]
|
|
17221
|
+
}
|
|
17222
|
+
},
|
|
17223
|
+
{
|
|
17224
|
+
"method": "GET",
|
|
17225
|
+
"path": [
|
|
17226
|
+
"all"
|
|
17227
|
+
],
|
|
17228
|
+
"select": {}
|
|
17229
|
+
}
|
|
17230
|
+
]
|
|
17231
|
+
}
|
|
17232
|
+
}
|
|
17233
|
+
}
|
|
17234
|
+
}
|
|
17235
|
+
},
|
|
17236
|
+
"entity": {
|
|
17237
|
+
"name": "planet"
|
|
17238
|
+
},
|
|
17239
|
+
"match": {
|
|
17240
|
+
"name": "earth"
|
|
17241
|
+
},
|
|
17242
|
+
"opname": "list",
|
|
17243
|
+
"options": {
|
|
17244
|
+
"allow": {
|
|
17245
|
+
"op": "list"
|
|
17246
|
+
}
|
|
17247
|
+
}
|
|
17248
|
+
},
|
|
17249
|
+
"out": {
|
|
17250
|
+
"method": "GET",
|
|
17251
|
+
"path": [
|
|
17252
|
+
"all"
|
|
17253
|
+
],
|
|
17254
|
+
"select": {}
|
|
17255
|
+
}
|
|
17256
|
+
},
|
|
17257
|
+
{
|
|
17258
|
+
"ctx": {
|
|
17259
|
+
"config": {
|
|
17260
|
+
"entity": {
|
|
17261
|
+
"planet": {
|
|
17262
|
+
"op": {
|
|
17263
|
+
"list": {
|
|
17264
|
+
"points": [
|
|
17265
|
+
{
|
|
17266
|
+
"method": "POST",
|
|
17267
|
+
"path": [
|
|
17268
|
+
"start"
|
|
17269
|
+
],
|
|
17270
|
+
"select": {
|
|
17271
|
+
"$action": "start"
|
|
17272
|
+
}
|
|
17273
|
+
},
|
|
17274
|
+
{
|
|
17275
|
+
"method": "POST",
|
|
17276
|
+
"path": [
|
|
17277
|
+
"stop"
|
|
17278
|
+
],
|
|
17279
|
+
"select": {
|
|
17280
|
+
"$action": "stop"
|
|
17281
|
+
}
|
|
17282
|
+
}
|
|
17283
|
+
]
|
|
17284
|
+
}
|
|
17285
|
+
}
|
|
17286
|
+
}
|
|
17287
|
+
}
|
|
17288
|
+
},
|
|
17289
|
+
"entity": {
|
|
17290
|
+
"name": "planet"
|
|
17291
|
+
},
|
|
17292
|
+
"opname": "list",
|
|
17293
|
+
"options": {
|
|
17294
|
+
"allow": {
|
|
17295
|
+
"op": "list"
|
|
17296
|
+
}
|
|
17297
|
+
},
|
|
17298
|
+
"reqmatch": {
|
|
17299
|
+
"$action": "stop"
|
|
17300
|
+
}
|
|
17301
|
+
},
|
|
17302
|
+
"out": {
|
|
17303
|
+
"method": "POST",
|
|
17304
|
+
"path": [
|
|
17305
|
+
"stop"
|
|
17306
|
+
],
|
|
17307
|
+
"select": {
|
|
17308
|
+
"$action": "stop"
|
|
17309
|
+
}
|
|
17310
|
+
}
|
|
17311
|
+
},
|
|
17312
|
+
{
|
|
17313
|
+
"ctx": {
|
|
17314
|
+
"config": {
|
|
17315
|
+
"entity": {
|
|
17316
|
+
"planet": {
|
|
17317
|
+
"op": {
|
|
17318
|
+
"list": {
|
|
17319
|
+
"points": [
|
|
17320
|
+
{
|
|
17321
|
+
"method": "POST",
|
|
17322
|
+
"path": [
|
|
17323
|
+
"start"
|
|
17324
|
+
],
|
|
17325
|
+
"select": {
|
|
17326
|
+
"$action": "start"
|
|
17327
|
+
}
|
|
17328
|
+
},
|
|
17329
|
+
{
|
|
17330
|
+
"method": "POST",
|
|
17331
|
+
"path": [
|
|
17332
|
+
"stop"
|
|
17333
|
+
],
|
|
17334
|
+
"select": {
|
|
17335
|
+
"$action": "stop"
|
|
17336
|
+
}
|
|
17337
|
+
}
|
|
17338
|
+
]
|
|
17339
|
+
}
|
|
17340
|
+
}
|
|
17341
|
+
}
|
|
17342
|
+
}
|
|
17343
|
+
},
|
|
17344
|
+
"entity": {
|
|
17345
|
+
"name": "planet"
|
|
17346
|
+
},
|
|
17347
|
+
"opname": "list",
|
|
17348
|
+
"options": {
|
|
17349
|
+
"allow": {
|
|
17350
|
+
"op": "list"
|
|
17351
|
+
}
|
|
17352
|
+
},
|
|
17353
|
+
"reqmatch": {
|
|
17354
|
+
"$action": "nope"
|
|
17355
|
+
}
|
|
17356
|
+
},
|
|
17357
|
+
"match": {
|
|
17358
|
+
"out": {
|
|
17359
|
+
"code": "point_action_invalid"
|
|
17360
|
+
}
|
|
17361
|
+
}
|
|
17362
|
+
}
|
|
17363
|
+
]
|
|
17033
17364
|
}
|
|
17034
17365
|
},
|
|
17035
17366
|
"makeUrl": {
|
package/src/create-sdkgen.ts
CHANGED
|
@@ -75,7 +75,15 @@ function CreateSdkGen(opts: FullCreateSdkGenOptions) {
|
|
|
75
75
|
const CreateRoot = rootModule.CreateRoot
|
|
76
76
|
|
|
77
77
|
const name = spec.name
|
|
78
|
-
|
|
78
|
+
const defGiven = null != spec.def && '' !== spec.def
|
|
79
|
+
|
|
80
|
+
// A given-but-missing --def is a mistake; omitting --def entirely
|
|
81
|
+
// legitimately gets the placeholder spec below.
|
|
82
|
+
if (defGiven && !fs.existsSync(spec.def)) {
|
|
83
|
+
throw new Error(`OpenAPI definition file not found: ${spec.def}`)
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
spec.def = defGiven ? spec.def : name + '-openapi3.yml'
|
|
79
87
|
|
|
80
88
|
spec.sdk_folder = SDK_FOLDER
|
|
81
89
|
|