@spinajs/http-swagger 2.0.490 → 2.0.494
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/lib/cjs/interfaces.d.ts +9 -0
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/openapi-builder.d.ts +113 -0
- package/lib/cjs/openapi-builder.d.ts.map +1 -1
- package/lib/cjs/openapi-builder.js +321 -28
- package/lib/cjs/openapi-builder.js.map +1 -1
- package/lib/cjs/swagger-service.d.ts.map +1 -1
- package/lib/cjs/swagger-service.js +16 -1
- package/lib/cjs/swagger-service.js.map +1 -1
- package/lib/mjs/interfaces.d.ts +9 -0
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/openapi-builder.d.ts +113 -0
- package/lib/mjs/openapi-builder.d.ts.map +1 -1
- package/lib/mjs/openapi-builder.js +321 -28
- package/lib/mjs/openapi-builder.js.map +1 -1
- package/lib/mjs/swagger-service.d.ts.map +1 -1
- package/lib/mjs/swagger-service.js +16 -1
- package/lib/mjs/swagger-service.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/lib/views/swagger-ui-init.js +11 -11
- package/lib/views/swagger.pug +16 -16
- package/package.json +73 -73
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -189,6 +189,15 @@ export interface IOpenApiSchema {
|
|
|
189
189
|
format?: string;
|
|
190
190
|
items?: IOpenApiSchema;
|
|
191
191
|
properties?: Record<string, IOpenApiSchema>;
|
|
192
|
+
/**
|
|
193
|
+
* Value schema for an open-ended map, or `false` to forbid unknown keys.
|
|
194
|
+
*
|
|
195
|
+
* The only way to describe an object keyed by data rather than by a fixed set
|
|
196
|
+
* of names — RBAC grants (resource → action → descriptor) being the case in
|
|
197
|
+
* this codebase. Without it such a schema degrades to a bare `object` and a
|
|
198
|
+
* generated client learns nothing about the values.
|
|
199
|
+
*/
|
|
200
|
+
additionalProperties?: IOpenApiSchema | boolean;
|
|
192
201
|
required?: string[];
|
|
193
202
|
$ref?: string;
|
|
194
203
|
description?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ export declare class OpenApiBuilder {
|
|
|
8
8
|
private tags;
|
|
9
9
|
private registeredResponses;
|
|
10
10
|
private registeredComponents;
|
|
11
|
+
/** Per type name: whether its two flavours differ and therefore need two components. */
|
|
12
|
+
private componentClaims;
|
|
11
13
|
private errorSchemaRegistered;
|
|
12
14
|
private registeredPolicies;
|
|
13
15
|
private policySectionEntries;
|
|
@@ -64,6 +66,10 @@ export declare class OpenApiBuilder {
|
|
|
64
66
|
private mapRouteType;
|
|
65
67
|
/**
|
|
66
68
|
* Build an OpenAPI operation from a route and its documentation.
|
|
69
|
+
*
|
|
70
|
+
* `fullPath` is the OpenAPI path template this operation is filed under. It — not the
|
|
71
|
+
* argument list — decides which path parameters the operation has; see
|
|
72
|
+
* resolvePathPlaceholder() for the contract a declared argument must satisfy.
|
|
67
73
|
*/
|
|
68
74
|
private buildOperation;
|
|
69
75
|
/**
|
|
@@ -109,6 +115,64 @@ export declare class OpenApiBuilder {
|
|
|
109
115
|
* (defaults to path/req.params).
|
|
110
116
|
*/
|
|
111
117
|
private fromDbModelLocation;
|
|
118
|
+
/**
|
|
119
|
+
* The name a non-path parameter is emitted under.
|
|
120
|
+
*
|
|
121
|
+
* orm-http's FromDbModel._extractValue reads `req.query[paramField ?? Name]` (same for
|
|
122
|
+
* headers), so an explicit `paramField` IS the wire name and the TypeScript argument name
|
|
123
|
+
* is not what the runtime looks for. Path parameters do not go through here — their name
|
|
124
|
+
* is the placeholder, see resolvePathPlaceholder().
|
|
125
|
+
*/
|
|
126
|
+
private emittedParamName;
|
|
127
|
+
/**
|
|
128
|
+
* The URL placeholder a path-bound argument declares — or a throw.
|
|
129
|
+
*
|
|
130
|
+
* Path parameters are emitted from the URL template (see buildOperation); a declared
|
|
131
|
+
* argument only enriches the one it names, with its schema and its JSDoc description.
|
|
132
|
+
* There are exactly two ways to name one:
|
|
133
|
+
*
|
|
134
|
+
* 1. `Options.paramField` — that IS the placeholder, and it must exist in the template.
|
|
135
|
+
* It is also the field orm-http's FromDbModel.extract() reads from `req.params`, so
|
|
136
|
+
* the document and the runtime agree by construction.
|
|
137
|
+
* 2. the argument's own name, when it equals a placeholder.
|
|
138
|
+
*
|
|
139
|
+
* Anything else throws. No positional assignment, no "first free placeholder", no
|
|
140
|
+
* underscore aliasing: a controller the documentation layer cannot read unambiguously is
|
|
141
|
+
* a controller to fix, not to guess at. An underscore-prefixed argument (`_campaign`,
|
|
142
|
+
* written only to satisfy `noUnusedParameters`) matches no placeholder and therefore
|
|
143
|
+
* throws — the fix is to DELETE the argument, because the placeholder is emitted from the
|
|
144
|
+
* template whether anything declares it or not.
|
|
145
|
+
*
|
|
146
|
+
* The message has to be enough to fix the route without opening this file: it names the
|
|
147
|
+
* controller, the method, the argument, the template, every placeholder that template
|
|
148
|
+
* carries and the two ways out.
|
|
149
|
+
*/
|
|
150
|
+
private resolvePathPlaceholder;
|
|
151
|
+
/**
|
|
152
|
+
* Whether an @FromModel parameter reads its key from the URL path.
|
|
153
|
+
*
|
|
154
|
+
* Mirrors orm-http's FromDbModel._extractValue: only an absent `paramType` ( the default )
|
|
155
|
+
* or an explicit FromParams reaches `req.params`. Query / body / header keys live somewhere
|
|
156
|
+
* else entirely and have no business claiming a URL placeholder.
|
|
157
|
+
*/
|
|
158
|
+
private readsPathParam;
|
|
159
|
+
/**
|
|
160
|
+
* Schema for the value an @FromModel parameter actually carries: the key the model
|
|
161
|
+
* is looked up by, never the model itself. The runtime picks that column the same
|
|
162
|
+
* way (FromDbModel.fromDbModelDefaultQueryFunction): `Options.queryField` if given,
|
|
163
|
+
* otherwise the model's primary key.
|
|
164
|
+
*
|
|
165
|
+
* The descriptor is read through the global `Symbol.for('MODEL_DESCRIPTOR')` so this
|
|
166
|
+
* package keeps no @spinajs/orm dependency (same trick as extractFilterableColumns).
|
|
167
|
+
* `PrimaryKey` is filled only by the @Primary decorator, so legacy models without it
|
|
168
|
+
* fall back to the column the driver introspected as primary.
|
|
169
|
+
*/
|
|
170
|
+
private fromDbModelKeySchema;
|
|
171
|
+
/**
|
|
172
|
+
* Map a database column type (driver's DATA_TYPE) to an OpenAPI primitive.
|
|
173
|
+
* Unknown types fall back to string — the value travels as a URL segment anyway.
|
|
174
|
+
*/
|
|
175
|
+
private schemaFromDbColumnType;
|
|
112
176
|
/**
|
|
113
177
|
* Build an OpenAPI parameter from route parameter info.
|
|
114
178
|
*/
|
|
@@ -156,6 +220,10 @@ export declare class OpenApiBuilder {
|
|
|
156
220
|
/**
|
|
157
221
|
* Swaps named-type nodes for a reusable component `$ref`, registering each component once.
|
|
158
222
|
* Walks `items` and `properties` so nested types are expanded too.
|
|
223
|
+
*
|
|
224
|
+
* `kind` says which side of the wire this subtree describes and is carried down the whole
|
|
225
|
+
* walk — a relation nested in a response is still a response. It defaults to 'request'
|
|
226
|
+
* so every caller that never had an opinion keeps the schema it always got.
|
|
159
227
|
*/
|
|
160
228
|
private expandNamedSchemas;
|
|
161
229
|
/**
|
|
@@ -163,6 +231,51 @@ export declare class OpenApiBuilder {
|
|
|
163
231
|
* Returns undefined when no provider recognises the name, so the caller leaves the node as-is.
|
|
164
232
|
*/
|
|
165
233
|
private registerNamedComponent;
|
|
234
|
+
/**
|
|
235
|
+
* Pick the schema a component should be built from.
|
|
236
|
+
*
|
|
237
|
+
* An ORM model carries two different contracts under one name: `@Schema` says what a
|
|
238
|
+
* client may SEND, the model's own columns say what the API RETURNS. Serving the write
|
|
239
|
+
* schema as the response contract is how a response ends up missing every column the
|
|
240
|
+
* database generates (`id`, `created_at`), missing `nullable` on columns that are null in
|
|
241
|
+
* practice, carrying `maxLength` copied from the column width, and demanding fields a
|
|
242
|
+
* response legitimately omits — enough for a generated client validator to reject
|
|
243
|
+
* ordinary rows.
|
|
244
|
+
*
|
|
245
|
+
* So a response asks the providers for their response flavour first. Providers that have
|
|
246
|
+
* none (a `@Schema` DTO is the same object both ways) return undefined and we fall back
|
|
247
|
+
* to `getSchema` — which is also the only thing a request ever consults.
|
|
248
|
+
*/
|
|
249
|
+
private resolveNamedSchema;
|
|
250
|
+
/**
|
|
251
|
+
* Component name for `name` in the given flavour.
|
|
252
|
+
*
|
|
253
|
+
* A type whose two flavours agree is ONE component called `<Name>`. When they differ the
|
|
254
|
+
* response keeps `<Name>` and the request becomes `<Name>Request` — always, whichever
|
|
255
|
+
* flavour the traversal happens to reach first. Letting the first arrival keep the base
|
|
256
|
+
* name made the suffix a function of controller-discovery ( filesystem ) order: adding or
|
|
257
|
+
* renaming an unrelated controller could flip `User` to `UserRequest` in every generated
|
|
258
|
+
* client, with nothing in the diff to explain it.
|
|
259
|
+
*
|
|
260
|
+
* The response is the half that keeps the plain name because it is the half most of a
|
|
261
|
+
* client's surface is built from — a list screen references the row type far more often
|
|
262
|
+
* than the write form does.
|
|
263
|
+
*
|
|
264
|
+
* Both flavours are resolved here, at the first encounter, precisely so the answer does not
|
|
265
|
+
* depend on which one asked. Providers are pure lookups, so asking twice costs nothing.
|
|
266
|
+
*
|
|
267
|
+
* @param name - type name to place in components
|
|
268
|
+
* @param kind - flavour being registered right now
|
|
269
|
+
* @param resolved - the schema already resolved for `kind`, reused instead of re-asking
|
|
270
|
+
*/
|
|
271
|
+
private componentNameFor;
|
|
272
|
+
/**
|
|
273
|
+
* Identity of a resolved schema, used only to tell "both flavours, same contract" from
|
|
274
|
+
* "both flavours, different contract". Undefined when the schema can't be serialized —
|
|
275
|
+
* then the two flavours are assumed to differ, which costs a component but never merges
|
|
276
|
+
* two contracts into one.
|
|
277
|
+
*/
|
|
278
|
+
private schemaKey;
|
|
166
279
|
/**
|
|
167
280
|
* Infer an OpenAPI schema from a TypeScript runtime type.
|
|
168
281
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,cAAc,EAAqD,MAAM,eAAe,CAAC;AAClG,OAAO,EAAiB,cAAc,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"openapi-builder.d.ts","sourceRoot":"","sources":["../../src/openapi-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAc,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,cAAc,EAAqD,MAAM,eAAe,CAAC;AAClG,OAAO,EAAiB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,EACL,gBAAgB,EAQhB,kBAAkB,EAClB,cAAc,EAEf,MAAM,iBAAiB,CAAC;AAkIzB,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,mBAAmB,CAA0B;IACrD,OAAO,CAAC,oBAAoB,CAA0B;IACtD,wFAAwF;IACxF,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,kBAAkB,CAA0B;IACpD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,mBAAmB,CAAc;IAGzC,SAAS,CAAC,eAAe,EAAG,cAAc,EAAE,CAAC;gBAEjC,MAAM,EAAE,cAAc;IA2BlC;;OAEG;IACI,aAAa,CAClB,UAAU,EAAE,SAAS,CAAC,cAAc,CAAC,EACrC,QAAQ,EAAE,kBAAkB,GAC3B,IAAI;IAqDP;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAqBrB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;IAMrB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACI,KAAK,IAAI,gBAAgB;IAKhC;;OAEG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAiJtB;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,wBAAwB;IAiBhC;;;;;;;OAOG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;;;;;OAOG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,OAAO,CAAC,sBAAsB;IA2C9B;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAKtB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,oBAAoB;IA2B5B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA+CvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAyEzB;;;;OAIG;IACH,OAAO,CAAC,qBAAqB;IAsB7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA+CxB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAkDtB;;;;;;;;OAQG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAmBzB;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB;IA2B1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAyB9B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,kBAAkB;IAY1B;;;;;;;;;;;;;;;;;;;;OAoBG;IAEH,OAAO,CAAC,gBAAgB;IAkBxB;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IAQjB;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAqB7B;;OAEG;IACH,OAAO,CAAC,YAAY;CAKrB"}
|