@loopback/openapi-v3 4.0.1 → 5.0.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/CHANGELOG.md CHANGED
@@ -3,6 +3,61 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [5.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@4.0.1...@loopback/openapi-v3@5.0.0) (2020-10-07)
7
+
8
+
9
+ ### Features
10
+
11
+ * **openapi-v3:** add OAS3 visibility decorator ([c388cbf](https://github.com/strongloop/loopback-next/commit/c388cbf94ea06065432b4bb52a8b494b5d8c4c8e)), closes [#6392](https://github.com/strongloop/loopback-next/issues/6392)
12
+ * update dependency openapi3-ts to v2 ([aabd6e6](https://github.com/strongloop/loopback-next/commit/aabd6e62a11d5e10ff2256ec664a923041e27ce0))
13
+
14
+
15
+ ### BREAKING CHANGES
16
+
17
+ * openapi3-ts@2.x has a stricter typing for `type` and `format`
18
+ properties as union types with a known list of values.
19
+
20
+ We now either have to explicitly type the schema as `SchemaObject`
21
+ or cast the `type` to `SchemaObject['type'], for example:
22
+
23
+ ```ts
24
+ import {SchemaObject} from '@loopback/openapi-v3';
25
+
26
+ const schemaDef1 = {
27
+ type: 'number' as const; // cast the type to be 'number' from 'string'
28
+ };
29
+
30
+ // Use the explicit `SchemaObject` to enforce inference
31
+ const schemaDef2: SchemaObject = {
32
+ type: 'number' as const;
33
+ };
34
+ ```
35
+
36
+ It also applies to OpenAPI parameter objects:
37
+
38
+ ```ts
39
+ import {ParameterObject} from '@loopback/openapi-v3';
40
+
41
+ const paramDef1 = {
42
+ type: 'number' as const, // cast the type to be 'number' from 'string'
43
+ name: 'limit',
44
+ in: 'query',
45
+ }
46
+
47
+ // Use the explicit `ParameterObject` to enforce inference
48
+ const paramDef2: ParameterObject = {
49
+ type: 'number',
50
+ name: 'limit',
51
+ in: 'query',
52
+ }
53
+ ```
54
+
55
+ Signed-off-by: Renovate Bot <bot@renovateapp.com>
56
+
57
+
58
+
59
+
60
+
6
61
  ## [4.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@4.0.0...@loopback/openapi-v3@4.0.1) (2020-09-17)
7
62
 
8
63
  **Note:** Version bump only for package @loopback/openapi-v3
@@ -20,7 +20,7 @@ exports.TS_TYPE_KEY = 'x-ts-type';
20
20
  * @param constructor - Controller class
21
21
  */
22
22
  function resolveControllerSpec(constructor) {
23
- var _a, _b, _c, _d, _e, _f, _g;
23
+ var _a, _b, _c, _d, _e, _f, _g, _h;
24
24
  debug(`Retrieving OpenAPI specification for controller ${constructor.name}`);
25
25
  let spec = core_1.MetadataInspector.getClassMetadata(keys_1.OAI3Keys.CLASS_KEY, constructor);
26
26
  if (spec) {
@@ -35,10 +35,14 @@ function resolveControllerSpec(constructor) {
35
35
  debug(' using class-level @deprecated()');
36
36
  }
37
37
  const classTags = core_1.MetadataInspector.getClassMetadata(keys_1.OAI3Keys.TAGS_CLASS_KEY, constructor);
38
+ const classVisibility = core_1.MetadataInspector.getClassMetadata(keys_1.OAI3Keys.VISIBILITY_CLASS_KEY, constructor);
39
+ if (classVisibility) {
40
+ debug(` using class-level @oas.visibility(): '${classVisibility}'`);
41
+ }
38
42
  if (classTags) {
39
43
  debug(' using class-level @oas.tags()');
40
44
  }
41
- if (classTags || isClassDeprecated) {
45
+ if (classTags || isClassDeprecated || classVisibility) {
42
46
  for (const path of Object.keys(spec.paths)) {
43
47
  for (const method of Object.keys(spec.paths[path])) {
44
48
  /* istanbul ignore else */
@@ -46,6 +50,10 @@ function resolveControllerSpec(constructor) {
46
50
  spec.paths[path][method].deprecated = true;
47
51
  }
48
52
  /* istanbul ignore else */
53
+ if (classVisibility) {
54
+ spec.paths[path][method]['x-visibility'] = classVisibility;
55
+ }
56
+ /* istanbul ignore else */
49
57
  if (classTags) {
50
58
  if ((_a = spec.paths[path][method].tags) === null || _a === void 0 ? void 0 : _a.length) {
51
59
  spec.paths[path][method].tags = spec.paths[path][method].tags.concat(classTags.tags);
@@ -68,6 +76,10 @@ function resolveControllerSpec(constructor) {
68
76
  if (isMethodDeprecated) {
69
77
  debug(' using method-level deprecation via @deprecated()');
70
78
  }
79
+ const methodVisibility = core_1.MetadataInspector.getMethodMetadata(keys_1.OAI3Keys.VISIBILITY_METHOD_KEY, constructor.prototype, op);
80
+ if (methodVisibility) {
81
+ debug(` using method-level visibility via @visibility(): '${methodVisibility}'`);
82
+ }
71
83
  const methodTags = core_1.MetadataInspector.getMethodMetadata(keys_1.OAI3Keys.TAGS_METHOD_KEY, constructor.prototype, op);
72
84
  if (methodTags) {
73
85
  debug(' using method-level tags via @oas.tags()');
@@ -114,16 +126,21 @@ function resolveControllerSpec(constructor) {
114
126
  }
115
127
  debug(' operation for method %s: %j', op, endpoint);
116
128
  debug(' spec responses for method %s: %o', op, operationSpec.responses);
117
- // Prescedence: method decorator > class decorator > operationSpec > undefined
129
+ // Precedence: method decorator > class decorator > operationSpec > undefined
118
130
  const deprecationSpec = (_e = (_d = isMethodDeprecated !== null && isMethodDeprecated !== void 0 ? isMethodDeprecated : isClassDeprecated) !== null && _d !== void 0 ? _d : operationSpec.deprecated) !== null && _e !== void 0 ? _e : false;
119
131
  if (deprecationSpec) {
120
132
  operationSpec.deprecated = true;
121
133
  }
134
+ // Precedence: method decorator > class decorator > operationSpec > 'documented'
135
+ const visibilitySpec = (_f = methodVisibility !== null && methodVisibility !== void 0 ? methodVisibility : classVisibility) !== null && _f !== void 0 ? _f : operationSpec['x-visibility'];
136
+ if (visibilitySpec) {
137
+ operationSpec['x-visibility'] = visibilitySpec;
138
+ }
122
139
  for (const code in operationSpec.responses) {
123
140
  const responseObject = operationSpec.responses[code];
124
141
  if (types_1.isReferenceObject(responseObject))
125
142
  continue;
126
- const content = (_f = responseObject.content) !== null && _f !== void 0 ? _f : {};
143
+ const content = (_g = responseObject.content) !== null && _g !== void 0 ? _g : {};
127
144
  for (const c in content) {
128
145
  debug(' processing response code %s with content-type %', code, c);
129
146
  processSchemaExtensions(spec, content[c].schema);
@@ -199,7 +216,7 @@ function resolveControllerSpec(constructor) {
199
216
  spec.paths[path][verb] = operationSpec;
200
217
  debug(` inferring schema object for method %s`, op);
201
218
  const opMetadata = core_1.MetadataInspector.getDesignTypeForMethod(constructor.prototype, op);
202
- const paramTypes = (_g = opMetadata === null || opMetadata === void 0 ? void 0 : opMetadata.parameterTypes) !== null && _g !== void 0 ? _g : [];
219
+ const paramTypes = (_h = opMetadata === null || opMetadata === void 0 ? void 0 : opMetadata.parameterTypes) !== null && _h !== void 0 ? _h : [];
203
220
  const isComplexType = (ctor) => !lodash_1.includes([String, Number, Boolean, Array, Object], ctor);
204
221
  for (const p of paramTypes) {
205
222
  if (isComplexType(p)) {
@@ -1 +1 @@
1
- {"version":3,"file":"controller-spec.js","sourceRoot":"","sources":["../src/controller-spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controller-spec.js","sourceRoot":"","sources":["../src/controller-spec.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAAmE;AACnE,6EAI0C;AAC1C,mCAAgC;AAChC,mFAA2E;AAC3E,uDAAgD;AAChD,qDAA+D;AAC/D,iCAAgC;AAChC,mCAeiB;AAEjB,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,4CAA4C,CAAC,CAAC;AA8BhE,QAAA,WAAW,GAAG,WAAW,CAAC;AAEvC;;;GAGG;AACH,SAAS,qBAAqB,CAAC,WAAqB;;IAClD,KAAK,CAAC,mDAAmD,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAE7E,IAAI,IAAI,GAAG,wBAAiB,CAAC,gBAAgB,CAC3C,eAAQ,CAAC,SAAS,EAClB,WAAW,CACZ,CAAC;IACF,IAAI,IAAI,EAAE;QACR,KAAK,CAAC,6CAA6C,EAAE,IAAI,CAAC,CAAC;QAC3D,IAAI,GAAG,uBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACzC;SAAM;QACL,IAAI,GAAG,EAAC,KAAK,EAAE,EAAE,EAAC,CAAC;KACpB;IAED,MAAM,iBAAiB,GAAG,wBAAiB,CAAC,gBAAgB,CAC1D,eAAQ,CAAC,oBAAoB,EAC7B,WAAW,CACZ,CAAC;IAEF,IAAI,iBAAiB,EAAE;QACrB,KAAK,CAAC,mCAAmC,CAAC,CAAC;KAC5C;IACD,MAAM,SAAS,GAAG,wBAAiB,CAAC,gBAAgB,CAClD,eAAQ,CAAC,cAAc,EACvB,WAAW,CACZ,CAAC;IAEF,MAAM,eAAe,GAAG,wBAAiB,CAAC,gBAAgB,CAExD,eAAQ,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;IAE9C,IAAI,eAAe,EAAE;QACnB,KAAK,CAAC,2CAA2C,eAAe,GAAG,CAAC,CAAC;KACtE;IAED,IAAI,SAAS,EAAE;QACb,KAAK,CAAC,iCAAiC,CAAC,CAAC;KAC1C;IAED,IAAI,SAAS,IAAI,iBAAiB,IAAI,eAAe,EAAE;QACrD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC1C,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE;gBAClD,0BAA0B;gBAC1B,IAAI,iBAAiB,EAAE;oBACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC;iBAC5C;gBAED,0BAA0B;gBAC1B,IAAI,eAAe,EAAE;oBACnB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,GAAG,eAAe,CAAC;iBAC5D;gBAED,0BAA0B;gBAC1B,IAAI,SAAS,EAAE;oBACb,UAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,0CAAE,MAAM,EAAE;wBACzC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAC9C,MAAM,CACP,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;qBAC/B;yBAAM;wBACL,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;qBAChD;iBACF;aACF;SACF;KACF;IAED,IAAI,SAAS,SACX,wBAAiB,CAAC,oBAAoB,CACpC,eAAQ,CAAC,WAAW,EACpB,WAAW,CAAC,SAAS,CACtB,mCAAI,EAAE,CAAC;IAEV,SAAS,GAAG,uBAAgB,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;IAClD,KAAK,MAAM,EAAE,IAAI,SAAS,EAAE;QAC1B,KAAK,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;QAEpC,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAK,CAAC;QAE5B,MAAM,kBAAkB,GAAG,wBAAiB,CAAC,iBAAiB,CAC5D,eAAQ,CAAC,qBAAqB,EAC9B,WAAW,CAAC,SAAS,EACrB,EAAE,CACH,CAAC;QACF,IAAI,kBAAkB,EAAE;YACtB,KAAK,CAAC,oDAAoD,CAAC,CAAC;SAC7D;QAED,MAAM,gBAAgB,GAAG,wBAAiB,CAAC,iBAAiB,CAE1D,eAAQ,CAAC,qBAAqB,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE7D,IAAI,gBAAgB,EAAE;YACpB,KAAK,CACH,uDAAuD,gBAAgB,GAAG,CAC3E,CAAC;SACH;QAED,MAAM,UAAU,GAAG,wBAAiB,CAAC,iBAAiB,CAEpD,eAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAEvD,IAAI,UAAU,EAAE;YACd,KAAK,CAAC,2CAA2C,CAAC,CAAC;SACpD;QAED,IAAI,YAAY,GAAG,EAAE,CAAC;QACtB,wBAAwB;QACxB,IAAI,KAAK,CAAC,OAAO,EAAE;YACjB,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,IAAI,kBAAkB,CAAC;YACzD,MAAM,cAAc,GAAG,GAAG,SAAS,IAAI,EAAE,EAAE,CAAC;YAC5C,YAAY,GAAG,GAAG,cAAc,KAAK,IAAI,IAAI,IAAI,GAAG,CAAC;SACtD;QAED,MAAM,eAAe,GAAG;YACtB,KAAK,EAAE;gBACL,WAAW,EAAE,mBAAmB,WAAW,CAAC,IAAI,IAAI,EAAE,EAAE;aACzD;SACF,CAAC;QAEF,IAAI,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC;QAElC,MAAM,kBAAkB,GAAG,wBAAiB,CAAC,iBAAiB,CAE5D,eAAQ,CAAC,mBAAmB,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAE3D,IAAI,CAAC,aAAa,EAAE;YAClB,IAAI,kBAAkB,EAAE;gBACtB,aAAa,GAAG,0DAA0B,CAAC,kBAAkB,CAAC,CAAC;aAChE;iBAAM;gBACL,oEAAoE;gBACpE,aAAa,GAAG;oBACd,SAAS,EAAE,eAAe;iBAC3B,CAAC;aACH;YACD,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC;SAC/B;aAAM,IAAI,kBAAkB,EAAE;YAC7B,aAAa,GAAG,0DAA0B,CACxC,kBAAkB,EAClB,aAAa,CACd,CAAC;SACH;QAED,IAAI,SAAS,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YACpC,aAAa,CAAC,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC;SACrC;QAED,IAAI,UAAU,EAAE;YACd,UAAI,aAAa,CAAC,IAAI,0CAAE,MAAM,EAAE;gBAC9B,aAAa,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACjE;iBAAM;gBACL,aAAa,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC;aACtC;SACF;QAED,KAAK,CAAC,+BAA+B,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QAErD,KAAK,CAAC,oCAAoC,EAAE,EAAE,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;QAEzE,6EAA6E;QAC7E,MAAM,eAAe,eACnB,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAClB,iBAAiB,mCACjB,aAAa,CAAC,UAAU,mCACxB,KAAK,CAAC;QAER,IAAI,eAAe,EAAE;YACnB,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC;SACjC;QAED,gFAAgF;QAChF,MAAM,cAAc,SAClB,gBAAgB,aAAhB,gBAAgB,cAAhB,gBAAgB,GAAI,eAAe,mCAAI,aAAa,CAAC,cAAc,CAAC,CAAC;QAEvE,IAAI,cAAc,EAAE;YAClB,aAAa,CAAC,cAAc,CAAC,GAAG,cAAc,CAAC;SAChD;QAED,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE;YAC1C,MAAM,cAAc,GAClB,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAChC,IAAI,yBAAiB,CAAC,cAAc,CAAC;gBAAE,SAAS;YAChD,MAAM,OAAO,SAAG,cAAc,CAAC,OAAO,mCAAI,EAAE,CAAC;YAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE;gBACvB,KAAK,CAAC,mDAAmD,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBACpE,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;aAClD;SACF;QAED,KAAK,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;QACnD,IAAI,MAAM,GAAG,wBAAiB,CAAC,uBAAuB,CACpD,eAAQ,CAAC,cAAc,EACvB,WAAW,CAAC,SAAS,EACrB,EAAE,CACH,CAAC;QAEF,KAAK,CAAC,gCAAgC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;QACpD,IAAI,MAAM,IAAI,IAAI,EAAE;YAClB,MAAM,GAAG,uBAAgB,CAAC,SAAS,CAAoB,MAAM,CAAC,CAAC;YAC/D;;;;;;;;;;;eAWG;YACH,aAAa,CAAC,UAAU,GAAG,MAAM;iBAC9B,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC;iBACtB,GAAG,CAAC,CAAC,CAAC,EAAE;gBACP,kEAAkE;gBAClE,IAAI,CAAC,CAAC,EAAE,KAAK,MAAM,EAAE;oBACnB,CAAC,CAAC,QAAQ,GAAG,IAAI,CAAC;iBACnB;gBACD,OAAO,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;SACN;QAED,KAAK,CAAC,wCAAwC,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI,aAAa,GAAG,wBAAiB,CAAC,uBAAuB,CAE3D,eAAQ,CAAC,gBAAgB,EAAE,WAAW,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;QAExD,IAAI,aAAa,IAAI,IAAI;YACvB,aAAa,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC;QACvD,IAAI,WAA8B,CAAC;QAEnC,IAAI,aAAa,EAAE;YACjB,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;gBAC1B,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE,CAAC;YAEJ,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAC/B,KAAK,CAAC,iCAAiC,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC;YAC1D,0BAA0B;YAC1B,IAAI,WAAW,EAAE;gBACf,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC;gBAExC,0BAA0B;gBAC1B,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC;gBAC1C,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE;oBAC/B,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;iBAC1D;aACF;SACF;QAED,aAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC;QACvC,aAAa,CAAC,mBAAmB,CAAC;YAChC,aAAa,CAAC,mBAAmB,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC;QAEzD,IAAI,aAAa,CAAC,WAAW,IAAI,IAAI,EAAE;YACrC,8DAA8D;YAC9D,wEAAwE;YACxE,0DAA0D;YAC1D,aAAa,CAAC,WAAW;gBACvB,aAAa,CAAC,mBAAmB,CAAC;oBAClC,GAAG;oBACH,aAAa,CAAC,kBAAkB,CAAC,CAAC;SACrC;QAED,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SACvB;QAED,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE;YAC1B,0DAA0D;YAC1D,KAAK,CAAC,gBAAgB,YAAY,iCAAiC,CAAC,CAAC;SACtE;QAED,KAAK,CAAC,YAAY,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;QAEvC,KAAK,CAAC,yCAAyC,EAAE,EAAE,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,wBAAiB,CAAC,sBAAsB,CACzD,WAAW,CAAC,SAAS,EACrB,EAAE,CACH,CAAC;QACF,MAAM,UAAU,SAAG,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,cAAc,mCAAI,EAAE,CAAC;QAEpD,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,EAAE,CACvC,CAAC,iBAAQ,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QAE5D,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;YAC1B,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE;gBACpB,qBAAqB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;aAChC;SACF;KACF;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAGD,MAAM,eAAe,GAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAE9D;;;;GAIG;AACH,SAAS,uBAAuB,CAC9B,IAAoB,EACpB,MAAmE;IAEnE,KAAK,CAAC,uCAAuC,EAAE,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,MAAM;QAAE,OAAO;IAEpB,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC;IAE1B;;;;OAIG;IACH,IAAI,MAAM,CAAC,GAAG,EAAE;QACd,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;KAC3C;IAED;;;OAGG;IACH,0BAA0B;IAC1B,MAAM,MAAM,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9B,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAEvE,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;QACxC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAS,EAAE,EAAE;YACpC,0BAA0B;YAC1B,IAAI,CAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAG,CAAC,MAAK,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;gBAC3C,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAqC,EAAE,EAAE;oBAC1D,uBAAuB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACnC,CAAC,CAAC,CAAC;aACJ;QACH,CAAC,CAAC,CAAC;KACJ;SAAM;QACL,IAAI,yBAAiB,CAAC,MAAM,CAAC;YAAE,OAAO;QAEtC,MAAM,MAAM,GAAG,MAAM,CAAC,mBAAW,CAAC,CAAC;QACnC,KAAK,CAAC,YAAY,EAAE,mBAAW,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE;YACV,MAAM,GAAG,+BAAa,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YACvC,IAAI,MAAM,CAAC,IAAI;gBAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAErD,mDAAmD;YACnD,OAAO,MAAM,CAAC,mBAAW,CAAC,CAAC;YAC3B,OAAO;SACR;QACD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE;YAC3B,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;SAC7C;aAAM,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE;YACnC,IAAI,MAAM,CAAC,UAAU,EAAE;gBACrB,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,EAAE;oBACjC,uBAAuB,CAAC,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrD;aACF;SACF;KACF;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAAoB,EAAE,MAAgB;;IACnE,IAAI,CAAC,UAAU,SAAG,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,OAAO,SAAG,IAAI,CAAC,UAAU,CAAC,OAAO,mCAAI,EAAE,CAAC;IACxD,IAAI,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;QAC1C,qCAAqC;QACrC,KAAK,CAAC,yCAAyC,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;QACxE,OAAO;KACR;IACD,MAAM,UAAU,GAAG,sCAAa,CAAC,MAAM,CAAC,CAAC;IACzC,MAAM,aAAa,GAAG,mCAAkB,CAAC,UAAU,CAAC,CAAC;IAErD,oBAAoB,CAAC,IAAI,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IACtD,OAAO,aAAa,CAAC,WAAW,CAAC;IAEjC,KAAK,CAAC,gCAAgC,EAAE,MAAM,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACpE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,oBAAoB,CAC3B,IAAoB,EACpB,WAA2B;;IAE3B,IAAI,CAAC,WAAW;QAAE,OAAO;IACzB,KAAK,CACH,iCAAiC,EACjC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CACxC,CAAC;IACF,IAAI,CAAC,UAAU,SAAG,IAAI,CAAC,UAAU,mCAAI,EAAE,CAAC;IACxC,IAAI,CAAC,UAAU,CAAC,OAAO,SAAG,IAAI,CAAC,UAAU,CAAC,OAAO,mCAAI,EAAE,CAAC;IACxD,MAAM,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAE9C,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE;QAC7B,qCAAqC;QACrC,IAAI,GAAG,IAAI,aAAa;YAAE,SAAS;QACnC,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACvC,KAAK,CAAC,2CAA2C,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;QACvE,aAAa,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;KACpC;AACH,CAAC;AAED;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,WAAqB;IACrD,IAAI,IAAI,GAAG,wBAAiB,CAAC,gBAAgB,CAC3C,eAAQ,CAAC,mBAAmB,EAC5B,WAAW,EACX,EAAC,eAAe,EAAE,IAAI,EAAC,CACxB,CAAC;IACF,IAAI,CAAC,IAAI,EAAE;QACT,IAAI,GAAG,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC1C,wBAAiB,CAAC,cAAc,CAC9B,eAAQ,CAAC,mBAAmB,CAAC,GAAG,EAChC,IAAI,EACJ,WAAW,CACZ,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAfD,8CAeC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,SAAgB,iBAAiB,CAC/B,SAAoC,EACpC,OAA8B;IAE9B,MAAM,UAAU,GAAG,yCAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,OAAO,mCAAkB,CAAC,UAAU,CAAc,CAAC;AACrD,CAAC;AAND,8CAMC"}
@@ -3,6 +3,7 @@ export * from './deprecated.decorator';
3
3
  export * from './operation.decorator';
4
4
  export * from './parameter.decorator';
5
5
  export * from './request-body.decorator';
6
+ export * from './visibility.decorator';
6
7
  import { api } from './api.decorator';
7
8
  import { deprecated } from './deprecated.decorator';
8
9
  import { del, get, operation, patch, post, put } from './operation.decorator';
@@ -10,6 +11,7 @@ import { param } from './parameter.decorator';
10
11
  import { requestBody } from './request-body.decorator';
11
12
  import { response } from './response.decorator';
12
13
  import { tags } from './tags.decorator';
14
+ import { visibility } from './visibility.decorator';
13
15
  export declare const oas: {
14
16
  api: typeof api;
15
17
  operation: typeof operation;
@@ -23,4 +25,5 @@ export declare const oas: {
23
25
  deprecated: typeof deprecated;
24
26
  response: typeof response;
25
27
  tags: typeof tags;
28
+ visibility: typeof visibility;
26
29
  };
@@ -11,6 +11,7 @@ tslib_1.__exportStar(require("./deprecated.decorator"), exports);
11
11
  tslib_1.__exportStar(require("./operation.decorator"), exports);
12
12
  tslib_1.__exportStar(require("./parameter.decorator"), exports);
13
13
  tslib_1.__exportStar(require("./request-body.decorator"), exports);
14
+ tslib_1.__exportStar(require("./visibility.decorator"), exports);
14
15
  const api_decorator_1 = require("./api.decorator");
15
16
  const deprecated_decorator_1 = require("./deprecated.decorator");
16
17
  const operation_decorator_1 = require("./operation.decorator");
@@ -18,6 +19,7 @@ const parameter_decorator_1 = require("./parameter.decorator");
18
19
  const request_body_decorator_1 = require("./request-body.decorator");
19
20
  const response_decorator_1 = require("./response.decorator");
20
21
  const tags_decorator_1 = require("./tags.decorator");
22
+ const visibility_decorator_1 = require("./visibility.decorator");
21
23
  exports.oas = {
22
24
  api: api_decorator_1.api,
23
25
  operation: operation_decorator_1.operation,
@@ -35,5 +37,6 @@ exports.oas = {
35
37
  deprecated: deprecated_decorator_1.deprecated,
36
38
  response: response_decorator_1.response,
37
39
  tags: tags_decorator_1.tags,
40
+ visibility: visibility_decorator_1.visibility,
38
41
  };
39
42
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAgC;AAChC,iEAAuC;AACvC,gEAAsC;AACtC,gEAAsC;AACtC,mEAAyC;AAEzC,mDAAoC;AACpC,iEAAkD;AAClD,+DAA4E;AAC5E,+DAA4C;AAC5C,qEAAqD;AACrD,6DAA8C;AAC9C,qDAAsC;AAEzB,QAAA,GAAG,GAAG;IACjB,GAAG,EAAH,mBAAG;IACH,SAAS,EAAT,+BAAS;IAET,UAAU;IACV,GAAG,EAAH,yBAAG;IACH,IAAI,EAAJ,0BAAI;IACJ,GAAG,EAAH,yBAAG;IACH,KAAK,EAAL,2BAAK;IACL,GAAG,EAAH,yBAAG;IAEH,OAAO;IACP,KAAK,EAAL,2BAAK;IAEL,eAAe;IACf,WAAW,EAAX,oCAAW;IAEX,6BAA6B;IAC7B,UAAU,EAAV,iCAAU;IACV,QAAQ,EAAR,6BAAQ;IACR,IAAI,EAAJ,qBAAI;CACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,0DAAgC;AAChC,iEAAuC;AACvC,gEAAsC;AACtC,gEAAsC;AACtC,mEAAyC;AACzC,iEAAuC;AAEvC,mDAAoC;AACpC,iEAAkD;AAClD,+DAA4E;AAC5E,+DAA4C;AAC5C,qEAAqD;AACrD,6DAA8C;AAC9C,qDAAsC;AACtC,iEAAkD;AAErC,QAAA,GAAG,GAAG;IACjB,GAAG,EAAH,mBAAG;IACH,SAAS,EAAT,+BAAS;IAET,UAAU;IACV,GAAG,EAAH,yBAAG;IACH,IAAI,EAAJ,0BAAI;IACJ,GAAG,EAAH,yBAAG;IACH,KAAK,EAAL,2BAAK;IACL,GAAG,EAAH,yBAAG;IAEH,OAAO;IACP,KAAK,EAAL,2BAAK;IAEL,eAAe;IACf,WAAW,EAAX,oCAAW;IAEX,6BAA6B;IAC7B,UAAU,EAAV,iCAAU;IACV,QAAQ,EAAR,6BAAQ;IACR,IAAI,EAAJ,qBAAI;IACJ,UAAU,EAAV,iCAAU;CACX,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parameter.decorator.js","sourceRoot":"","sources":["../../src/decorators/parameter.decorator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { OperationVisibility } from '../types';
2
+ /**
3
+ * Marks an api path with the specfied visibility. When applied to a class,
4
+ * this decorator marks all paths with the specified visibility.
5
+ *
6
+ * You can optionally mark all controllers in a class with
7
+ * `@visibility('undocumented')`, but use `@visibility('documented')`
8
+ * on a specific method to ensure it is not marked as `undocumented`.
9
+ *
10
+ * @param visibilityTyoe - The visbility of the api path on the OAS3 spec.
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * @oas.visibility('undocumented')
15
+ * class MyController {
16
+ * @get('/greet')
17
+ * async function greet() {
18
+ * return 'Hello, World!'
19
+ * }
20
+ *
21
+ * @get('/greet-v2')
22
+ * @oas.deprecated('documented')
23
+ * async function greetV2() {
24
+ * return 'Hello, World!'
25
+ * }
26
+ * }
27
+ *
28
+ * class MyOtherController {
29
+ * @get('/echo')
30
+ * async function echo() {
31
+ * return 'Echo!'
32
+ * }
33
+ * }
34
+ * ```
35
+ */
36
+ export declare function visibility(visibilityType: OperationVisibility): (target: any, method?: string | undefined, methodDescriptor?: TypedPropertyDescriptor<any> | undefined) => any;
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ // Copyright IBM Corp. 2020. All Rights Reserved.
3
+ // Node module: @loopback/openapi-v3
4
+ // This file is licensed under the MIT License.
5
+ // License text available at https://opensource.org/licenses/MIT
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.visibility = void 0;
8
+ const core_1 = require("@loopback/core");
9
+ const keys_1 = require("../keys");
10
+ const debug = require('debug')('loopback:openapi3:metadata:controller-spec:visibility');
11
+ /**
12
+ * Marks an api path with the specfied visibility. When applied to a class,
13
+ * this decorator marks all paths with the specified visibility.
14
+ *
15
+ * You can optionally mark all controllers in a class with
16
+ * `@visibility('undocumented')`, but use `@visibility('documented')`
17
+ * on a specific method to ensure it is not marked as `undocumented`.
18
+ *
19
+ * @param visibilityTyoe - The visbility of the api path on the OAS3 spec.
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * @oas.visibility('undocumented')
24
+ * class MyController {
25
+ * @get('/greet')
26
+ * async function greet() {
27
+ * return 'Hello, World!'
28
+ * }
29
+ *
30
+ * @get('/greet-v2')
31
+ * @oas.deprecated('documented')
32
+ * async function greetV2() {
33
+ * return 'Hello, World!'
34
+ * }
35
+ * }
36
+ *
37
+ * class MyOtherController {
38
+ * @get('/echo')
39
+ * async function echo() {
40
+ * return 'Echo!'
41
+ * }
42
+ * }
43
+ * ```
44
+ */
45
+ function visibility(visibilityType) {
46
+ return function visibilityDecoratorForClassOrMethod(
47
+ // Class or a prototype
48
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
+ target, method,
50
+ // Use `any` to for `TypedPropertyDescriptor`
51
+ // See https://github.com/strongloop/loopback-next/pull/2704
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ methodDescriptor) {
54
+ debug(target, method, methodDescriptor);
55
+ if (method && methodDescriptor) {
56
+ // Method
57
+ return core_1.MethodDecoratorFactory.createDecorator(keys_1.OAI3Keys.VISIBILITY_METHOD_KEY, visibilityType, {
58
+ decoratorName: '@oas.visibility',
59
+ })(target, method, methodDescriptor);
60
+ }
61
+ else if (typeof target === 'function' && !method && !methodDescriptor) {
62
+ // Class
63
+ return core_1.ClassDecoratorFactory.createDecorator(keys_1.OAI3Keys.VISIBILITY_CLASS_KEY, visibilityType, { decoratorName: '@oas.visibility' })(target);
64
+ }
65
+ else {
66
+ throw new Error('@oas.visibility cannot be used on a property: ' +
67
+ core_1.DecoratorFactory.getTargetName(target, method, methodDescriptor));
68
+ }
69
+ };
70
+ }
71
+ exports.visibility = visibility;
72
+ //# sourceMappingURL=visibility.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"visibility.decorator.js","sourceRoot":"","sources":["../../src/decorators/visibility.decorator.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAIwB;AACxB,kCAAiC;AAGjC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAC5B,uDAAuD,CACxD,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,UAAU,CAAC,cAAmC;IAC5D,OAAO,SAAS,mCAAmC;IACjD,uBAAuB;IACvB,8DAA8D;IAC9D,MAAW,EACX,MAAe;IACf,6CAA6C;IAC7C,4DAA4D;IAC5D,8DAA8D;IAC9D,gBAA+C;QAE/C,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;QAExC,IAAI,MAAM,IAAI,gBAAgB,EAAE;YAC9B,SAAS;YACT,OAAO,6BAAsB,CAAC,eAAe,CAC3C,eAAQ,CAAC,qBAAqB,EAC9B,cAAc,EACd;gBACE,aAAa,EAAE,iBAAiB;aACjC,CACF,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;SACrC;aAAM,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,MAAM,IAAI,CAAC,gBAAgB,EAAE;YACvE,QAAQ;YACR,OAAO,4BAAqB,CAAC,eAAe,CAC1C,eAAQ,CAAC,oBAAoB,EAC7B,cAAc,EACd,EAAC,aAAa,EAAE,iBAAiB,EAAC,CACnC,CAAC,MAAM,CAAC,CAAC;SACX;aAAM;YACL,MAAM,IAAI,KAAK,CACb,gDAAgD;gBAC9C,uBAAgB,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,gBAAgB,CAAC,CACnE,CAAC;SACH;IACH,CAAC,CAAC;AACJ,CAAC;AApCD,gCAoCC"}
package/dist/keys.d.ts CHANGED
@@ -14,6 +14,14 @@ export declare namespace OAI3Keys {
14
14
  * Metadata key used to set or retrieve `@deprecated` metadata on a class
15
15
  */
16
16
  const DEPRECATED_CLASS_KEY: MetadataAccessor<boolean, ClassDecorator>;
17
+ /**
18
+ * Metadata key used to set or retrieve `@visibility` metadata on a method.
19
+ */
20
+ const VISIBILITY_METHOD_KEY: MetadataAccessor<boolean, MethodDecorator>;
21
+ /**
22
+ * Metadata key used to set or retrieve `@visibility` metadata on a class
23
+ */
24
+ const VISIBILITY_CLASS_KEY: MetadataAccessor<boolean, ClassDecorator>;
17
25
  const RESPONSE_METHOD_KEY: MetadataAccessor<ResponseDecoratorMetadata, MethodDecorator>;
18
26
  /**
19
27
  * Metadata key used to set or retrieve `param` decorator metadata
package/dist/keys.js CHANGED
@@ -20,6 +20,14 @@ var OAI3Keys;
20
20
  * Metadata key used to set or retrieve `@deprecated` metadata on a class
21
21
  */
22
22
  OAI3Keys.DEPRECATED_CLASS_KEY = core_1.MetadataAccessor.create('openapi-v3:class:deprecated');
23
+ /**
24
+ * Metadata key used to set or retrieve `@visibility` metadata on a method.
25
+ */
26
+ OAI3Keys.VISIBILITY_METHOD_KEY = core_1.MetadataAccessor.create('openapi-v3:methods:visibility');
27
+ /**
28
+ * Metadata key used to set or retrieve `@visibility` metadata on a class
29
+ */
30
+ OAI3Keys.VISIBILITY_CLASS_KEY = core_1.MetadataAccessor.create('openapi-v3:class:visibility');
23
31
  /*
24
32
  * Metadata key used to add to or retrieve an endpoint's responses
25
33
  */
package/dist/keys.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAAgD;AAQhD,IAAiB,QAAQ,CAgFxB;AAhFD,WAAiB,QAAQ;IACvB;;OAEG;IACU,oBAAW,GAAG,uBAAgB,CAAC,MAAM,CAGhD,oBAAoB,CAAC,CAAC;IAExB;;OAEG;IACU,8BAAqB,GAAG,uBAAgB,CAAC,MAAM,CAG1D,+BAA+B,CAAC,CAAC;IAEnC;;OAEG;IACU,6BAAoB,GAAG,uBAAgB,CAAC,MAAM,CAGzD,6BAA6B,CAAC,CAAC;IAEjC;;OAEG;IACU,4BAAmB,GAAG,uBAAgB,CAAC,MAAM,CAGxD,6BAA6B,CAAC,CAAC;IAEjC;;OAEG;IACU,uBAAc,GAAG,uBAAgB,CAAC,MAAM,CAGnD,uBAAuB,CAAC,CAAC;IAE3B;;OAEG;IACU,wBAAe,GAAG,uBAAgB,CAAC,MAAM,CAGpD,yBAAyB,CAAC,CAAC;IAE7B;;OAEG;IACU,uBAAc,GAAG,uBAAgB,CAAC,MAAM,CAGnD,uBAAuB,CAAC,CAAC;IAE3B;;OAEG;IACU,kBAAS,GAAG,uBAAgB,CAAC,MAAM,CAG9C,kBAAkB,CAAC,CAAC;IAEtB;;OAEG;IACU,4BAAmB,GAAG,uBAAgB,CAAC,MAAM,CAGxD,4BAA4B,CAAC,CAAC;IAEhC;;OAEG;IACU,yBAAgB,GAAG,uBAAgB,CAAC,MAAM,CAGrD,yBAAyB,CAAC,CAAC;AAC/B,CAAC,EAhFgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAgFxB"}
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;AAEhE,yCAAgD;AAQhD,IAAiB,QAAQ,CAgGxB;AAhGD,WAAiB,QAAQ;IACvB;;OAEG;IACU,oBAAW,GAAG,uBAAgB,CAAC,MAAM,CAGhD,oBAAoB,CAAC,CAAC;IAExB;;OAEG;IACU,8BAAqB,GAAG,uBAAgB,CAAC,MAAM,CAG1D,+BAA+B,CAAC,CAAC;IAEnC;;OAEG;IACU,6BAAoB,GAAG,uBAAgB,CAAC,MAAM,CAGzD,6BAA6B,CAAC,CAAC;IAEjC;;OAEG;IACU,8BAAqB,GAAG,uBAAgB,CAAC,MAAM,CAG1D,+BAA+B,CAAC,CAAC;IAEnC;;OAEG;IACU,6BAAoB,GAAG,uBAAgB,CAAC,MAAM,CAGzD,6BAA6B,CAAC,CAAC;IAEjC;;OAEG;IACU,4BAAmB,GAAG,uBAAgB,CAAC,MAAM,CAGxD,6BAA6B,CAAC,CAAC;IAEjC;;OAEG;IACU,uBAAc,GAAG,uBAAgB,CAAC,MAAM,CAGnD,uBAAuB,CAAC,CAAC;IAE3B;;OAEG;IACU,wBAAe,GAAG,uBAAgB,CAAC,MAAM,CAGpD,yBAAyB,CAAC,CAAC;IAE7B;;OAEG;IACU,uBAAc,GAAG,uBAAgB,CAAC,MAAM,CAGnD,uBAAuB,CAAC,CAAC;IAE3B;;OAEG;IACU,kBAAS,GAAG,uBAAgB,CAAC,MAAM,CAG9C,kBAAkB,CAAC,CAAC;IAEtB;;OAEG;IACU,4BAAmB,GAAG,uBAAgB,CAAC,MAAM,CAGxD,4BAA4B,CAAC,CAAC;IAEhC;;OAEG;IACU,yBAAgB,GAAG,uBAAgB,CAAC,MAAM,CAGrD,yBAAyB,CAAC,CAAC;AAC/B,CAAC,EAhGgB,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAgGxB"}
package/dist/types.d.ts CHANGED
@@ -15,6 +15,10 @@ export declare function createEmptyApiSpec(): OpenApiSpec;
15
15
  export interface TagsDecoratorMetadata {
16
16
  tags: string[];
17
17
  }
18
+ export declare enum OperationVisibility {
19
+ DOCUMENTED = "documented",
20
+ UNDOCUMENTED = "undocumented"
21
+ }
18
22
  export declare type ResponseModelOrSpec = typeof Model | SchemaObject | ResponseObject | ReferenceObject;
19
23
  export interface ResponseDecoratorMetadataItem {
20
24
  responseCode: number;
package/dist/types.js CHANGED
@@ -4,7 +4,7 @@
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createEmptyApiSpec = exports.DEFAULT_OPENAPI_SPEC_INFO = void 0;
7
+ exports.OperationVisibility = exports.createEmptyApiSpec = exports.DEFAULT_OPENAPI_SPEC_INFO = void 0;
8
8
  const tslib_1 = require("tslib");
9
9
  // Export also all spec interfaces
10
10
  tslib_1.__exportStar(require("openapi3-ts"), exports);
@@ -28,4 +28,9 @@ function createEmptyApiSpec() {
28
28
  };
29
29
  }
30
30
  exports.createEmptyApiSpec = createEmptyApiSpec;
31
+ var OperationVisibility;
32
+ (function (OperationVisibility) {
33
+ OperationVisibility["DOCUMENTED"] = "documented";
34
+ OperationVisibility["UNDOCUMENTED"] = "undocumented";
35
+ })(OperationVisibility = exports.OperationVisibility || (exports.OperationVisibility = {}));
31
36
  //# sourceMappingURL=types.js.map
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAchE,kCAAkC;AAClC,sDAA4B;AAEf,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAE,sBAAsB;IAC7B,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,GAAG,iCAAyB;SAC7B;QACD,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC;KACtB,CAAC;AACJ,CAAC;AATD,gDASC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,oCAAoC;AACpC,+CAA+C;AAC/C,gEAAgE;;;;AAchE,kCAAkC;AAClC,sDAA4B;AAEf,QAAA,yBAAyB,GAAG;IACvC,KAAK,EAAE,sBAAsB;IAC7B,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF;;;;GAIG;AACH,SAAgB,kBAAkB;IAChC,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ,GAAG,iCAAyB;SAC7B;QACD,KAAK,EAAE,EAAE;QACT,OAAO,EAAE,CAAC,EAAC,GAAG,EAAE,GAAG,EAAC,CAAC;KACtB,CAAC;AACJ,CAAC;AATD,gDASC;AAMD,IAAY,mBAGX;AAHD,WAAY,mBAAmB;IAC7B,gDAAyB,CAAA;IACzB,oDAA6B,CAAA;AAC/B,CAAC,EAHW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAG9B"}
package/package.json CHANGED
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "name": "@loopback/openapi-v3",
3
- "version": "4.0.1",
3
+ "version": "5.0.0",
4
4
  "description": "Decorators that annotate LoopBack artifacts with OpenAPI v3 metadata and utilities that transform LoopBack metadata to OpenAPI v3 specifications",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
7
  "engines": {
8
- "node": ">=10.16"
8
+ "node": "^10.16 || 12 || 14"
9
9
  },
10
10
  "peerDependencies": {
11
- "@loopback/core": "^2.10.1"
11
+ "@loopback/core": "^2.11.0"
12
12
  },
13
13
  "dependencies": {
14
- "@loopback/repository-json-schema": "^3.0.1",
15
- "debug": "^4.1.1",
14
+ "@loopback/repository-json-schema": "^3.0.2",
15
+ "debug": "^4.2.0",
16
16
  "http-status": "^1.4.2",
17
17
  "json-merge-patch": "^1.0.0",
18
18
  "lodash": "^4.17.20",
19
- "openapi3-ts": "^1.4.0",
20
- "tslib": "^2.0.1"
19
+ "openapi3-ts": "^2.0.0",
20
+ "tslib": "^2.0.2"
21
21
  },
22
22
  "devDependencies": {
23
- "@loopback/build": "^6.2.4",
24
- "@loopback/core": "^2.10.1",
25
- "@loopback/eslint-config": "^10.0.0",
26
- "@loopback/openapi-spec-builder": "^2.1.15",
27
- "@loopback/repository": "^3.0.1",
28
- "@loopback/testlab": "^3.2.6",
23
+ "@loopback/build": "^6.2.5",
24
+ "@loopback/core": "^2.11.0",
25
+ "@loopback/eslint-config": "^10.0.1",
26
+ "@loopback/openapi-spec-builder": "^3.0.0",
27
+ "@loopback/repository": "^3.1.0",
28
+ "@loopback/testlab": "^3.2.7",
29
29
  "@types/debug": "^4.1.5",
30
30
  "@types/http-status": "^1.1.2",
31
31
  "@types/json-merge-patch": "0.0.5",
@@ -63,5 +63,5 @@
63
63
  "url": "https://github.com/strongloop/loopback-next.git",
64
64
  "directory": "packages/openapi-v3"
65
65
  },
66
- "gitHead": "79327fd7e68ebb05be0aa689f4986b54e2a99a6b"
66
+ "gitHead": "390f2794d10eea3d969ae417963af815ce1bc417"
67
67
  }
@@ -19,6 +19,7 @@ import {
19
19
  ISpecificationExtension,
20
20
  isReferenceObject,
21
21
  OperationObject,
22
+ OperationVisibility,
22
23
  ParameterObject,
23
24
  PathObject,
24
25
  ReferenceObject,
@@ -93,17 +94,31 @@ function resolveControllerSpec(constructor: Function): ControllerSpec {
93
94
  constructor,
94
95
  );
95
96
 
97
+ const classVisibility = MetadataInspector.getClassMetadata<
98
+ OperationVisibility
99
+ >(OAI3Keys.VISIBILITY_CLASS_KEY, constructor);
100
+
101
+ if (classVisibility) {
102
+ debug(` using class-level @oas.visibility(): '${classVisibility}'`);
103
+ }
104
+
96
105
  if (classTags) {
97
106
  debug(' using class-level @oas.tags()');
98
107
  }
99
108
 
100
- if (classTags || isClassDeprecated) {
109
+ if (classTags || isClassDeprecated || classVisibility) {
101
110
  for (const path of Object.keys(spec.paths)) {
102
111
  for (const method of Object.keys(spec.paths[path])) {
103
112
  /* istanbul ignore else */
104
113
  if (isClassDeprecated) {
105
114
  spec.paths[path][method].deprecated = true;
106
115
  }
116
+
117
+ /* istanbul ignore else */
118
+ if (classVisibility) {
119
+ spec.paths[path][method]['x-visibility'] = classVisibility;
120
+ }
121
+
107
122
  /* istanbul ignore else */
108
123
  if (classTags) {
109
124
  if (spec.paths[path][method].tags?.length) {
@@ -141,6 +156,16 @@ function resolveControllerSpec(constructor: Function): ControllerSpec {
141
156
  debug(' using method-level deprecation via @deprecated()');
142
157
  }
143
158
 
159
+ const methodVisibility = MetadataInspector.getMethodMetadata<
160
+ OperationVisibility
161
+ >(OAI3Keys.VISIBILITY_METHOD_KEY, constructor.prototype, op);
162
+
163
+ if (methodVisibility) {
164
+ debug(
165
+ ` using method-level visibility via @visibility(): '${methodVisibility}'`,
166
+ );
167
+ }
168
+
144
169
  const methodTags = MetadataInspector.getMethodMetadata<
145
170
  TagsDecoratorMetadata
146
171
  >(OAI3Keys.TAGS_METHOD_KEY, constructor.prototype, op);
@@ -202,7 +227,7 @@ function resolveControllerSpec(constructor: Function): ControllerSpec {
202
227
 
203
228
  debug(' spec responses for method %s: %o', op, operationSpec.responses);
204
229
 
205
- // Prescedence: method decorator > class decorator > operationSpec > undefined
230
+ // Precedence: method decorator > class decorator > operationSpec > undefined
206
231
  const deprecationSpec =
207
232
  isMethodDeprecated ??
208
233
  isClassDeprecated ??
@@ -213,6 +238,14 @@ function resolveControllerSpec(constructor: Function): ControllerSpec {
213
238
  operationSpec.deprecated = true;
214
239
  }
215
240
 
241
+ // Precedence: method decorator > class decorator > operationSpec > 'documented'
242
+ const visibilitySpec: OperationVisibility =
243
+ methodVisibility ?? classVisibility ?? operationSpec['x-visibility'];
244
+
245
+ if (visibilitySpec) {
246
+ operationSpec['x-visibility'] = visibilitySpec;
247
+ }
248
+
216
249
  for (const code in operationSpec.responses) {
217
250
  const responseObject: ResponseObject | ReferenceObject =
218
251
  operationSpec.responses[code];
@@ -8,6 +8,7 @@ export * from './deprecated.decorator';
8
8
  export * from './operation.decorator';
9
9
  export * from './parameter.decorator';
10
10
  export * from './request-body.decorator';
11
+ export * from './visibility.decorator';
11
12
 
12
13
  import {api} from './api.decorator';
13
14
  import {deprecated} from './deprecated.decorator';
@@ -16,6 +17,7 @@ import {param} from './parameter.decorator';
16
17
  import {requestBody} from './request-body.decorator';
17
18
  import {response} from './response.decorator';
18
19
  import {tags} from './tags.decorator';
20
+ import {visibility} from './visibility.decorator';
19
21
 
20
22
  export const oas = {
21
23
  api,
@@ -38,4 +40,5 @@ export const oas = {
38
40
  deprecated,
39
41
  response,
40
42
  tags,
43
+ visibility,
41
44
  };
@@ -86,7 +86,7 @@ export function param(paramSpec: ParameterObject) {
86
86
  * reference link:
87
87
  * https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#data-types
88
88
  */
89
- const builtinTypes = {
89
+ const builtinTypes: Record<string, ParamShortcutOptions> = {
90
90
  string: {type: 'string'},
91
91
  boolean: {type: 'boolean'},
92
92
  number: {type: 'number'},
@@ -489,7 +489,7 @@ export namespace param {
489
489
  }
490
490
 
491
491
  interface ParamShortcutOptions {
492
- type: string;
492
+ type: SchemaObject['type'];
493
493
  format?: string;
494
494
  }
495
495
 
@@ -0,0 +1,88 @@
1
+ // Copyright IBM Corp. 2020. All Rights Reserved.
2
+ // Node module: @loopback/openapi-v3
3
+ // This file is licensed under the MIT License.
4
+ // License text available at https://opensource.org/licenses/MIT
5
+
6
+ import {
7
+ ClassDecoratorFactory,
8
+ DecoratorFactory,
9
+ MethodDecoratorFactory,
10
+ } from '@loopback/core';
11
+ import {OAI3Keys} from '../keys';
12
+ import {OperationVisibility} from '../types';
13
+
14
+ const debug = require('debug')(
15
+ 'loopback:openapi3:metadata:controller-spec:visibility',
16
+ );
17
+
18
+ /**
19
+ * Marks an api path with the specfied visibility. When applied to a class,
20
+ * this decorator marks all paths with the specified visibility.
21
+ *
22
+ * You can optionally mark all controllers in a class with
23
+ * `@visibility('undocumented')`, but use `@visibility('documented')`
24
+ * on a specific method to ensure it is not marked as `undocumented`.
25
+ *
26
+ * @param visibilityTyoe - The visbility of the api path on the OAS3 spec.
27
+ *
28
+ * @example
29
+ * ```ts
30
+ * @oas.visibility('undocumented')
31
+ * class MyController {
32
+ * @get('/greet')
33
+ * async function greet() {
34
+ * return 'Hello, World!'
35
+ * }
36
+ *
37
+ * @get('/greet-v2')
38
+ * @oas.deprecated('documented')
39
+ * async function greetV2() {
40
+ * return 'Hello, World!'
41
+ * }
42
+ * }
43
+ *
44
+ * class MyOtherController {
45
+ * @get('/echo')
46
+ * async function echo() {
47
+ * return 'Echo!'
48
+ * }
49
+ * }
50
+ * ```
51
+ */
52
+ export function visibility(visibilityType: OperationVisibility) {
53
+ return function visibilityDecoratorForClassOrMethod(
54
+ // Class or a prototype
55
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
+ target: any,
57
+ method?: string,
58
+ // Use `any` to for `TypedPropertyDescriptor`
59
+ // See https://github.com/strongloop/loopback-next/pull/2704
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ methodDescriptor?: TypedPropertyDescriptor<any>,
62
+ ) {
63
+ debug(target, method, methodDescriptor);
64
+
65
+ if (method && methodDescriptor) {
66
+ // Method
67
+ return MethodDecoratorFactory.createDecorator<OperationVisibility>(
68
+ OAI3Keys.VISIBILITY_METHOD_KEY,
69
+ visibilityType,
70
+ {
71
+ decoratorName: '@oas.visibility',
72
+ },
73
+ )(target, method, methodDescriptor);
74
+ } else if (typeof target === 'function' && !method && !methodDescriptor) {
75
+ // Class
76
+ return ClassDecoratorFactory.createDecorator<OperationVisibility>(
77
+ OAI3Keys.VISIBILITY_CLASS_KEY,
78
+ visibilityType,
79
+ {decoratorName: '@oas.visibility'},
80
+ )(target);
81
+ } else {
82
+ throw new Error(
83
+ '@oas.visibility cannot be used on a property: ' +
84
+ DecoratorFactory.getTargetName(target, method, methodDescriptor),
85
+ );
86
+ }
87
+ };
88
+ }
package/src/keys.ts CHANGED
@@ -36,6 +36,22 @@ export namespace OAI3Keys {
36
36
  ClassDecorator
37
37
  >('openapi-v3:class:deprecated');
38
38
 
39
+ /**
40
+ * Metadata key used to set or retrieve `@visibility` metadata on a method.
41
+ */
42
+ export const VISIBILITY_METHOD_KEY = MetadataAccessor.create<
43
+ boolean,
44
+ MethodDecorator
45
+ >('openapi-v3:methods:visibility');
46
+
47
+ /**
48
+ * Metadata key used to set or retrieve `@visibility` metadata on a class
49
+ */
50
+ export const VISIBILITY_CLASS_KEY = MetadataAccessor.create<
51
+ boolean,
52
+ ClassDecorator
53
+ >('openapi-v3:class:visibility');
54
+
39
55
  /*
40
56
  * Metadata key used to add to or retrieve an endpoint's responses
41
57
  */
package/src/types.ts CHANGED
@@ -43,6 +43,11 @@ export interface TagsDecoratorMetadata {
43
43
  tags: string[];
44
44
  }
45
45
 
46
+ export enum OperationVisibility {
47
+ DOCUMENTED = 'documented',
48
+ UNDOCUMENTED = 'undocumented',
49
+ }
50
+
46
51
  export type ResponseModelOrSpec =
47
52
  | typeof Model
48
53
  | SchemaObject