@appland/scanner 1.33.1

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.
Files changed (196) hide show
  1. package/LICENSE.txt +25 -0
  2. package/README.md +122 -0
  3. package/built/algorithms/dataStructures/graph/Graph.js +155 -0
  4. package/built/algorithms/dataStructures/graph/Graph.js.map +1 -0
  5. package/built/algorithms/dataStructures/graph/GraphEdge.js +27 -0
  6. package/built/algorithms/dataStructures/graph/GraphEdge.js.map +1 -0
  7. package/built/algorithms/dataStructures/graph/GraphVertex.js +79 -0
  8. package/built/algorithms/dataStructures/graph/GraphVertex.js.map +1 -0
  9. package/built/algorithms/dataStructures/linked-list/LinkedList.js +134 -0
  10. package/built/algorithms/dataStructures/linked-list/LinkedList.js.map +1 -0
  11. package/built/algorithms/dataStructures/linked-list/LinkedListNode.js +16 -0
  12. package/built/algorithms/dataStructures/linked-list/LinkedListNode.js.map +1 -0
  13. package/built/algorithms/graph/depth-first-search/index.js +49 -0
  14. package/built/algorithms/graph/depth-first-search/index.js.map +1 -0
  15. package/built/algorithms/graph/detect-cycle/index.js +77 -0
  16. package/built/algorithms/graph/detect-cycle/index.js.map +1 -0
  17. package/built/algorithms/utils/Comparator.js +35 -0
  18. package/built/algorithms/utils/Comparator.js.map +1 -0
  19. package/built/analyzer/recordSecrets.js +17 -0
  20. package/built/analyzer/recordSecrets.js.map +1 -0
  21. package/built/analyzer/secretsRegexes.js +13 -0
  22. package/built/analyzer/secretsRegexes.js.map +1 -0
  23. package/built/analyzer/secretsRegexesData.json +51 -0
  24. package/built/check.js +47 -0
  25. package/built/check.js.map +1 -0
  26. package/built/checkInstance.js +69 -0
  27. package/built/checkInstance.js.map +1 -0
  28. package/built/cli/ci/command.js +183 -0
  29. package/built/cli/ci/command.js.map +1 -0
  30. package/built/cli/ci/options.js +3 -0
  31. package/built/cli/ci/options.js.map +1 -0
  32. package/built/cli/exitCode.js +11 -0
  33. package/built/cli/exitCode.js.map +1 -0
  34. package/built/cli/progressReporter.js +16 -0
  35. package/built/cli/progressReporter.js.map +1 -0
  36. package/built/cli/resolveAppId.js +83 -0
  37. package/built/cli/resolveAppId.js.map +1 -0
  38. package/built/cli/scan/command.js +174 -0
  39. package/built/cli/scan/command.js.map +1 -0
  40. package/built/cli/scan/options.js +3 -0
  41. package/built/cli/scan/options.js.map +1 -0
  42. package/built/cli/scan/scanner.js +154 -0
  43. package/built/cli/scan/scanner.js.map +1 -0
  44. package/built/cli/scan.js +103 -0
  45. package/built/cli/scan.js.map +1 -0
  46. package/built/cli/scanArgs.js +26 -0
  47. package/built/cli/scanArgs.js.map +1 -0
  48. package/built/cli/scanOptions.js +3 -0
  49. package/built/cli/scanOptions.js.map +1 -0
  50. package/built/cli/upload/command.js +95 -0
  51. package/built/cli/upload/command.js.map +1 -0
  52. package/built/cli/upload/options.js +3 -0
  53. package/built/cli/upload/options.js.map +1 -0
  54. package/built/cli/validateFile.js +66 -0
  55. package/built/cli/validateFile.js.map +1 -0
  56. package/built/cli.js +32 -0
  57. package/built/cli.js.map +1 -0
  58. package/built/configuration/configurationProvider.js +169 -0
  59. package/built/configuration/configurationProvider.js.map +1 -0
  60. package/built/configuration/schema/match-pattern-config.json +32 -0
  61. package/built/configuration/schema/options.json +193 -0
  62. package/built/configuration/types/checkConfig.js +3 -0
  63. package/built/configuration/types/checkConfig.js.map +1 -0
  64. package/built/configuration/types/configuration.js +3 -0
  65. package/built/configuration/types/configuration.js.map +1 -0
  66. package/built/configuration/types/matchEventConfig.js +3 -0
  67. package/built/configuration/types/matchEventConfig.js.map +1 -0
  68. package/built/configuration/types/matchPatternConfig.js +3 -0
  69. package/built/configuration/types/matchPatternConfig.js.map +1 -0
  70. package/built/database/index.js +259 -0
  71. package/built/database/index.js.map +1 -0
  72. package/built/database/visit.js +80 -0
  73. package/built/database/visit.js.map +1 -0
  74. package/built/errors.js +35 -0
  75. package/built/errors.js.map +1 -0
  76. package/built/findings.js +15 -0
  77. package/built/findings.js.map +1 -0
  78. package/built/integration/appland/fetchStatus.js +51 -0
  79. package/built/integration/appland/fetchStatus.js.map +1 -0
  80. package/built/integration/appland/upload.js +193 -0
  81. package/built/integration/appland/upload.js.map +1 -0
  82. package/built/integration/github/commitStatus.js +19 -0
  83. package/built/integration/github/commitStatus.js.map +1 -0
  84. package/built/integration/vars.js +68 -0
  85. package/built/integration/vars.js.map +1 -0
  86. package/built/openapi/index.js +100 -0
  87. package/built/openapi/index.js.map +1 -0
  88. package/built/openapi/method.js +120 -0
  89. package/built/openapi/method.js.map +1 -0
  90. package/built/openapi/model.js +49 -0
  91. package/built/openapi/model.js.map +1 -0
  92. package/built/openapi/path.js +36 -0
  93. package/built/openapi/path.js.map +1 -0
  94. package/built/openapi/provider.js +133 -0
  95. package/built/openapi/provider.js.map +1 -0
  96. package/built/openapi/response.js +59 -0
  97. package/built/openapi/response.js.map +1 -0
  98. package/built/openapi/rpcRequest.js +130 -0
  99. package/built/openapi/rpcRequest.js.map +1 -0
  100. package/built/openapi/schema.js +42 -0
  101. package/built/openapi/schema.js.map +1 -0
  102. package/built/openapi/securitySchemes.js +32 -0
  103. package/built/openapi/securitySchemes.js.map +1 -0
  104. package/built/openapi/statusCodes.js +68 -0
  105. package/built/openapi/statusCodes.js.map +1 -0
  106. package/built/openapi/util.js +91 -0
  107. package/built/openapi/util.js.map +1 -0
  108. package/built/report/appMapMetadata.js +2 -0
  109. package/built/report/appMapMetadata.js.map +1 -0
  110. package/built/report/findingSummary.js +3 -0
  111. package/built/report/findingSummary.js.map +1 -0
  112. package/built/report/findingsReport.js +37 -0
  113. package/built/report/findingsReport.js.map +1 -0
  114. package/built/report/scanResults.js +103 -0
  115. package/built/report/scanResults.js.map +1 -0
  116. package/built/report/scanSummary.js +3 -0
  117. package/built/report/scanSummary.js.map +1 -0
  118. package/built/report/summaryReport.js +70 -0
  119. package/built/report/summaryReport.js.map +1 -0
  120. package/built/ruleChecker.js +260 -0
  121. package/built/ruleChecker.js.map +1 -0
  122. package/built/rules/authzBeforeAuthn.js +82 -0
  123. package/built/rules/authzBeforeAuthn.js.map +1 -0
  124. package/built/rules/circularDependency.js +227 -0
  125. package/built/rules/circularDependency.js.map +1 -0
  126. package/built/rules/http500.js +18 -0
  127. package/built/rules/http500.js.map +1 -0
  128. package/built/rules/illegalPackageDependency.js +38 -0
  129. package/built/rules/illegalPackageDependency.js.map +1 -0
  130. package/built/rules/incompatibleHttpClientRequest.js +96 -0
  131. package/built/rules/incompatibleHttpClientRequest.js.map +1 -0
  132. package/built/rules/insecureCompare.js +59 -0
  133. package/built/rules/insecureCompare.js.map +1 -0
  134. package/built/rules/jobNotCancelled.js +72 -0
  135. package/built/rules/jobNotCancelled.js.map +1 -0
  136. package/built/rules/lib/hasParameterOrReceiver.js +11 -0
  137. package/built/rules/lib/hasParameterOrReceiver.js.map +1 -0
  138. package/built/rules/lib/matchEvent.js +32 -0
  139. package/built/rules/lib/matchEvent.js.map +1 -0
  140. package/built/rules/lib/matchPattern.js +28 -0
  141. package/built/rules/lib/matchPattern.js.map +1 -0
  142. package/built/rules/lib/rpcWithoutProtection.js +40 -0
  143. package/built/rules/lib/rpcWithoutProtection.js.map +1 -0
  144. package/built/rules/missingAuthentication.js +65 -0
  145. package/built/rules/missingAuthentication.js.map +1 -0
  146. package/built/rules/missingContentType.js +27 -0
  147. package/built/rules/missingContentType.js.map +1 -0
  148. package/built/rules/nPlusOneQuery.js +84 -0
  149. package/built/rules/nPlusOneQuery.js.map +1 -0
  150. package/built/rules/queryFromInvalidPackage.js +37 -0
  151. package/built/rules/queryFromInvalidPackage.js.map +1 -0
  152. package/built/rules/queryFromView.js +29 -0
  153. package/built/rules/queryFromView.js.map +1 -0
  154. package/built/rules/rpcWithoutCircuitBreaker.js +97 -0
  155. package/built/rules/rpcWithoutCircuitBreaker.js.map +1 -0
  156. package/built/rules/saveWithoutValidation.js +27 -0
  157. package/built/rules/saveWithoutValidation.js.map +1 -0
  158. package/built/rules/secretInLog.js +76 -0
  159. package/built/rules/secretInLog.js.map +1 -0
  160. package/built/rules/slowFunctionCall.js +37 -0
  161. package/built/rules/slowFunctionCall.js.map +1 -0
  162. package/built/rules/slowHttpServerRequest.js +24 -0
  163. package/built/rules/slowHttpServerRequest.js.map +1 -0
  164. package/built/rules/slowQuery.js +23 -0
  165. package/built/rules/slowQuery.js.map +1 -0
  166. package/built/rules/tooManyJoins.js +77 -0
  167. package/built/rules/tooManyJoins.js.map +1 -0
  168. package/built/rules/tooManyUpdates.js +143 -0
  169. package/built/rules/tooManyUpdates.js.map +1 -0
  170. package/built/rules/unbatchedMaterializedQuery.js +65 -0
  171. package/built/rules/unbatchedMaterializedQuery.js.map +1 -0
  172. package/built/rules/updateInGetRequest.js +66 -0
  173. package/built/rules/updateInGetRequest.js.map +1 -0
  174. package/built/rules/util.js +102 -0
  175. package/built/rules/util.js.map +1 -0
  176. package/built/sampleConfig/bike_index.yml +10 -0
  177. package/built/sampleConfig/default.yml +19 -0
  178. package/built/sampleConfig/railsSampleApp6thEd.yml +29 -0
  179. package/built/sampleConfig/solidus.yml +31 -0
  180. package/built/scope/commandScope.js +156 -0
  181. package/built/scope/commandScope.js.map +1 -0
  182. package/built/scope/httpClientRequestScope.js +105 -0
  183. package/built/scope/httpClientRequestScope.js.map +1 -0
  184. package/built/scope/httpServerRequestScope.js +105 -0
  185. package/built/scope/httpServerRequestScope.js.map +1 -0
  186. package/built/scope/rootScope.js +105 -0
  187. package/built/scope/rootScope.js.map +1 -0
  188. package/built/scope/scopeImpl.js +88 -0
  189. package/built/scope/scopeImpl.js.map +1 -0
  190. package/built/scope/scopeIterator.js +21 -0
  191. package/built/scope/scopeIterator.js.map +1 -0
  192. package/built/scope/sqlTransactionScope.js +175 -0
  193. package/built/scope/sqlTransactionScope.js.map +1 -0
  194. package/built/wellKnownLabels.js +9 -0
  195. package/built/wellKnownLabels.js.map +1 -0
  196. package/package.json +89 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.js","sourceRoot":"","sources":["../../../src/integration/appland/upload.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAAkC;AAClC,yBAAoC;AACpC,iCAAoC;AACpC,wDAAiC;AACjC,6BAAkC;AAClC,0CAA8C;AAC9C,gDAAqE;AAGrE,2BAA0B;AAE1B,mBAA+B,WAAwB,EAAE,KAAa;;;;;;;oBAC9D,mBAAmB,GAA8B,EAAE,CAAC;oBAClD,QAAQ,GAAK,WAAW,SAAhB,CAAiB;;wBACjC,KAAsB,aAAA,SAAA,QAAQ,CAAA,0FAAE;4BAArB,OAAO;4BAChB,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE;gCACvB,SAAS;6BACV;4BAEK,IAAI,GAAG,IAAA,mBAAU,EAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;4BAC3E,mBAAmB,CAAC,OAAO,CAAC,UAAU,CAAC,GAAM,IAAI,iBAAc,CAAC;yBACjE;;;;;;;;;oBAEK,cAAc,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,OAAO;wBAC1C,IAAM,KAAK,gBAAQ,OAAO,CAAE,CAAC;wBAC7B,IAAI,KAAK,CAAC,UAAU,EAAE;4BACpB,KAAK,CAAC,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;yBAC1D;wBACD,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;oBAEG,iBAAiB,GAAG,yBACrB,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,UAAU,EAAZ,CAAY,CAAC,CAAC,SAC9D,CAAC;oBACR,SAAS,GAAG,IAAA,iBAAI,GAAE,CAAC;;;;oBAEF,sBAAA,SAAA,iBAAiB,CAAA;;;;oBAA7B,QAAQ;oBACF,qBAAM,aAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAA;;oBAApC,MAAM,GAAG,SAA2B;oBAE1C,SAAS,CAAC,KAAK,CACb,EAAE,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,EACvC,IAAI,CAAC,SAAS,CAAC,IAAA,oBAAW,EAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAC5E,CAAC;;;;;;;;;;;;;;;;;oBAGJ,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;oBAC5F,SAAS,CAAC,QAAQ,EAAE,CAAC;oBAEf,IAAI,GAAG,IAAA,iBAAU,GAAE,CAAC;oBAC1B,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEf,IAAI,GAAG,IAAI,mBAAQ,EAAE,CAAC;oBAC5B,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;oBACnD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAE7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,wCAAsC,KAAK,QAAK,CAAC,CAAC;oBACvD,qBAAM,IAAA,kBAAY,EAAC,kBAAkB,CAAC,EAAA;;oBAAhD,OAAO,GAAG,SAAsC;oBACtD,sBAAO,IAAI,OAAO,CAAkB,UAAC,OAAO,EAAE,MAAM;4BAClD,IAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CACjC,OAAO,CAAC,GAAG,EACX;gCACE,MAAM,EAAE,MAAM;gCACd,OAAO,wBACF,OAAO,CAAC,OAAO,GACf,IAAI,CAAC,UAAU,EAAE,CACrB;6BACF,EACD,OAAO,CACR,CAAC;4BACF,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;4BACxB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;wBACjB,CAAC,CAAC;6BACC,IAAI,CAAC,iBAAW,CAAC;6BACjB,IAAI,CAAC,UAAC,QAAyB;4BAC9B,IAAI,OAAO,GAAG,cAAY,WAAW,CAAC,QAAQ,CAAC,MAAM,cAAW,CAAC;4BACjE,IAAI,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;gCAC7B,IAAM,SAAS,GAAG,IAAI,SAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gCACvE,OAAO,IAAI,SAAO,SAAW,CAAC;6BAC/B;4BACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;wBACvB,CAAC,CAAC,EAAC;;;;CACN;AAtED,4BAsEC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var vars_1 = require("../vars");
4
+ function postCommitStatus(state, description) {
5
+ (0, vars_1.validateToken)();
6
+ (0, vars_1.validateRepo)();
7
+ (0, vars_1.validateOwner)();
8
+ (0, vars_1.validateSha)();
9
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
10
+ var octokat = require('octokat');
11
+ var octo = new octokat({ token: (0, vars_1.token)() });
12
+ return octo.repos((0, vars_1.owner)(), (0, vars_1.repo)()).statuses((0, vars_1.sha)()).create({
13
+ state: state,
14
+ context: 'appland/scanner',
15
+ description: description,
16
+ });
17
+ }
18
+ exports.default = postCommitStatus;
19
+ //# sourceMappingURL=commitStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"commitStatus.js","sourceRoot":"","sources":["../../../src/integration/github/commitStatus.ts"],"names":[],"mappings":";;AAAA,gCASiB;AAIjB,SAAwB,gBAAgB,CACtC,KAAwB,EACxB,WAAmB;IAEnB,IAAA,oBAAa,GAAE,CAAC;IAChB,IAAA,mBAAY,GAAE,CAAC;IACf,IAAA,oBAAa,GAAE,CAAC;IAChB,IAAA,kBAAW,GAAE,CAAC;IAEd,8DAA8D;IAC9D,IAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,IAAM,IAAI,GAAG,IAAI,OAAO,CAAC,EAAE,KAAK,EAAE,IAAA,YAAK,GAAE,EAAE,CAAC,CAAC;IAE7C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAA,YAAK,GAAE,EAAE,IAAA,WAAI,GAAE,CAAC,CAAC,QAAQ,CAAC,IAAA,UAAG,GAAE,CAAC,CAAC,MAAM,CAAC;QACxD,KAAK,EAAE,KAAK;QACZ,OAAO,EAAE,iBAAiB;QAC1B,WAAW,EAAE,WAAW;KACzB,CAAC,CAAC;AACL,CAAC;AAlBD,mCAkBC"}
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validatePullRequestNumber = exports.validateSha = exports.validateRepo = exports.validateOwner = exports.validateToken = exports.pullRequestNumber = exports.repo = exports.sha = exports.owner = exports.token = void 0;
4
+ var errors_1 = require("../errors");
5
+ function token() {
6
+ return process.env.GH_STATUS_TOKEN || process.env.GH_TOKEN;
7
+ }
8
+ exports.token = token;
9
+ function sha() {
10
+ return (process.env.CIRCLE_SHA1 ||
11
+ process.env.TRAVIS_PULL_REQUEST_SHA ||
12
+ process.env.TRAVIS_COMMIT ||
13
+ process.env.CI_COMMIT_ID);
14
+ }
15
+ exports.sha = sha;
16
+ function pullRequestNumber() {
17
+ return (process.env.CIRCLE_PR_NUMBER || process.env.TRAVIS_PULL_REQUEST || process.env.CI_PR_NUMBER);
18
+ }
19
+ exports.pullRequestNumber = pullRequestNumber;
20
+ function owner() {
21
+ return (process.env.CIRCLE_PROJECT_USERNAME ||
22
+ extractSlug(process.env.TRAVIS_REPO_SLUG, 0) ||
23
+ extractSlug(process.env.CI_REPO_OWNER, 0));
24
+ }
25
+ exports.owner = owner;
26
+ function repo() {
27
+ return (process.env.CIRCLE_PROJECT_REPONAME ||
28
+ extractSlug(process.env.TRAVIS_REPO_SLUG, 1) ||
29
+ extractSlug(process.env.CI_REPO_NAME, 1));
30
+ }
31
+ exports.repo = repo;
32
+ function extractSlug(path, index) {
33
+ if (!path) {
34
+ return undefined;
35
+ }
36
+ return path.split('/')[index];
37
+ }
38
+ function validateToken() {
39
+ if (!token()) {
40
+ throw new errors_1.ValidationError('GitHub token not configured (use GH_STATUS_TOKEN or GH_TOKEN env var)');
41
+ }
42
+ }
43
+ exports.validateToken = validateToken;
44
+ function validateSha() {
45
+ if (!sha()) {
46
+ throw new errors_1.ValidationError('Unable to detect current build’s SHA');
47
+ }
48
+ }
49
+ exports.validateSha = validateSha;
50
+ function validatePullRequestNumber() {
51
+ if (!pullRequestNumber()) {
52
+ throw new errors_1.ValidationError('Unable to detect current pull request number');
53
+ }
54
+ }
55
+ exports.validatePullRequestNumber = validatePullRequestNumber;
56
+ function validateOwner() {
57
+ if (!owner()) {
58
+ throw new errors_1.ValidationError('Unable to detect repository owner');
59
+ }
60
+ }
61
+ exports.validateOwner = validateOwner;
62
+ function validateRepo() {
63
+ if (!repo()) {
64
+ throw new errors_1.ValidationError('Unable to detect repository name');
65
+ }
66
+ }
67
+ exports.validateRepo = validateRepo;
68
+ //# sourceMappingURL=vars.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vars.js","sourceRoot":"","sources":["../../src/integration/vars.ts"],"names":[],"mappings":";;;AAAA,oCAA4C;AAE5C,SAAS,KAAK;IACZ,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC7D,CAAC;AA0EC,sBAAK;AAxEP,SAAS,GAAG;IACV,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnC,OAAO,CAAC,GAAG,CAAC,aAAa;QACzB,OAAO,CAAC,GAAG,CAAC,YAAY,CACzB,CAAC;AACJ,CAAC;AAmEC,kBAAG;AAjEL,SAAS,iBAAiB;IACxB,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,CAC5F,CAAC;AACJ,CAAC;AA+DC,8CAAiB;AA7DnB,SAAS,KAAK;IACZ,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAC1C,CAAC;AACJ,CAAC;AAoDC,sBAAK;AAlDP,SAAS,IAAI;IACX,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,uBAAuB;QACnC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC5C,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,CAAC,CACzC,CAAC;AACJ,CAAC;AA8CC,oBAAI;AA5CN,SAAS,WAAW,CAAC,IAAwB,EAAE,KAAa;IAC1D,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,SAAS,CAAC;KAClB;IAED,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,aAAa;IACpB,IAAI,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,IAAI,wBAAe,CACvB,uEAAuE,CACxE,CAAC;KACH;AACH,CAAC;AAgCC,sCAAa;AA9Bf,SAAS,WAAW;IAClB,IAAI,CAAC,GAAG,EAAE,EAAE;QACV,MAAM,IAAI,wBAAe,CAAC,sCAAsC,CAAC,CAAC;KACnE;AACH,CAAC;AA6BC,kCAAW;AA3Bb,SAAS,yBAAyB;IAChC,IAAI,CAAC,iBAAiB,EAAE,EAAE;QACxB,MAAM,IAAI,wBAAe,CAAC,8CAA8C,CAAC,CAAC;KAC3E;AACH,CAAC;AAwBC,8DAAyB;AAtB3B,SAAS,aAAa;IACpB,IAAI,CAAC,KAAK,EAAE,EAAE;QACZ,MAAM,IAAI,wBAAe,CAAC,mCAAmC,CAAC,CAAC;KAChE;AACH,CAAC;AAeC,sCAAa;AAbf,SAAS,YAAY;IACnB,IAAI,CAAC,IAAI,EAAE,EAAE;QACX,MAAM,IAAI,wBAAe,CAAC,kCAAkC,CAAC,CAAC;KAC/D;AACH,CAAC;AAUC,oCAAY"}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ exports.breakingChanges = exports.forURL = exports.forClientRequest = void 0;
43
+ var provider_1 = __importDefault(require("./provider"));
44
+ var openapi_diff_1 = __importDefault(require("openapi-diff"));
45
+ var model_1 = __importDefault(require("./model"));
46
+ var securitySchemes_1 = __importDefault(require("./securitySchemes"));
47
+ var rpcRequest_1 = require("./rpcRequest");
48
+ var fs_1 = require("fs");
49
+ var util_1 = require("../rules/util");
50
+ var url_1 = require("url");
51
+ var forClientRequest = function (event) {
52
+ var rpcRequest = (0, rpcRequest_1.rpcRequestForEvent)(event);
53
+ if (!rpcRequest) {
54
+ return;
55
+ }
56
+ var securitySchemes = new securitySchemes_1.default();
57
+ var model = new model_1.default();
58
+ securitySchemes.addRpcRequest(rpcRequest);
59
+ model.addRpcRequest(rpcRequest);
60
+ return { paths: model.openapi(), securitySchemes: securitySchemes.openapi() };
61
+ };
62
+ exports.forClientRequest = forClientRequest;
63
+ var forURL = function (url, openapiSchemata) { return __awaiter(void 0, void 0, void 0, function () {
64
+ return __generator(this, function (_a) {
65
+ return [2 /*return*/, (0, provider_1.default)(new url_1.URL(url).host, openapiSchemata)];
66
+ });
67
+ }); };
68
+ exports.forURL = forURL;
69
+ var breakingChanges = function (schemaHead, schemaBase) { return __awaiter(void 0, void 0, void 0, function () {
70
+ var result;
71
+ return __generator(this, function (_a) {
72
+ switch (_a.label) {
73
+ case 0:
74
+ if ((0, util_1.verbose)()) {
75
+ (0, fs_1.writeFileSync)('openapi_head.json', JSON.stringify(schemaHead, null, 2));
76
+ (0, fs_1.writeFileSync)('openapi_base.json', JSON.stringify(schemaBase, null, 2));
77
+ }
78
+ return [4 /*yield*/, openapi_diff_1.default.diffSpecs({
79
+ sourceSpec: {
80
+ content: JSON.stringify(schemaHead),
81
+ location: 'openapi_head.json',
82
+ format: 'openapi3',
83
+ },
84
+ destinationSpec: {
85
+ content: JSON.stringify(schemaBase),
86
+ location: 'openapi_base.json',
87
+ format: 'openapi3',
88
+ },
89
+ })];
90
+ case 1:
91
+ result = _a.sent();
92
+ if (result.breakingDifferencesFound) {
93
+ return [2 /*return*/, result.breakingDifferences];
94
+ }
95
+ return [2 /*return*/, []];
96
+ }
97
+ });
98
+ }); };
99
+ exports.breakingChanges = breakingChanges;
100
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/openapi/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wDAAkC;AAClC,8DAAuC;AACvC,kDAA4B;AAC5B,sEAAgD;AAChD,2CAAkD;AAGlD,yBAAmC;AACnC,sCAAwC;AACxC,2BAA0B;AAO1B,IAAM,gBAAgB,GAAG,UAAC,KAAY;IACpC,IAAM,UAAU,GAAG,IAAA,+BAAkB,EAAC,KAAK,CAAC,CAAC;IAC7C,IAAI,CAAC,UAAU,EAAE;QACf,OAAO;KACR;IAED,IAAM,eAAe,GAAG,IAAI,yBAAe,EAAE,CAAC;IAC9C,IAAM,KAAK,GAAG,IAAI,eAAK,EAAE,CAAC;IAC1B,eAAe,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAEhC,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,EAAE,eAAe,EAAE,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC;AAChF,CAAC,CAAC;AAsCO,4CAAgB;AApCzB,IAAM,MAAM,GAAG,UACb,GAAW,EACX,eAAuC;;QAEvC,sBAAO,IAAA,kBAAQ,EAAC,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,CAAC,EAAC;;KACrD,CAAC;AA+ByB,wBAAM;AA7BjC,IAAM,eAAe,GAAG,UACtB,UAA8B,EAC9B,UAA8B;;;;;gBAE9B,IAAI,IAAA,cAAO,GAAE,EAAE;oBACb,IAAA,kBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBACxE,IAAA,kBAAa,EAAC,mBAAmB,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;iBACzE;gBAEc,qBAAM,sBAAW,CAAC,SAAS,CAAC;wBACzC,UAAU,EAAE;4BACV,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;4BACnC,QAAQ,EAAE,mBAAmB;4BAC7B,MAAM,EAAE,UAAU;yBACnB;wBACD,eAAe,EAAE;4BACf,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;4BACnC,QAAQ,EAAE,mBAAmB;4BAC7B,MAAM,EAAE,UAAU;yBACnB;qBACF,CAAC,EAAA;;gBAXI,MAAM,GAAG,SAWb;gBAEF,IAAI,MAAM,CAAC,wBAAwB,EAAE;oBACnC,sBAAO,MAAM,CAAC,mBAAmB,EAAC;iBACnC;gBAED,sBAAO,EAAE,EAAC;;;KACX,CAAC;AAEiC,0CAAe"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var response_1 = __importDefault(require("./response"));
7
+ var schema_1 = __importDefault(require("./schema"));
8
+ var util_1 = require("./util");
9
+ var bodyParamMethods = new Set(['delete', 'put', 'post', 'patch']);
10
+ function openapiIn(rpcRequest, name) {
11
+ var pathInfo = rpcRequest.requestPath;
12
+ // Trim format info from Rails paths, e.g. /foo/bar(.:format)
13
+ var tokens = pathInfo.split('/').map(function (token) { return token.split('(')[0]; });
14
+ // Recognize Rails-style normalized paths /org/:org_id and OpenAPI-style paths /org/{org_id}
15
+ if (tokens.includes(":" + name) || tokens.includes("{" + name + "}")) {
16
+ return 'path';
17
+ }
18
+ return 'query';
19
+ }
20
+ var Method = /** @class */ (function () {
21
+ function Method() {
22
+ this.rpcRequests = [];
23
+ this.responses = {};
24
+ }
25
+ Method.prototype.openapi = function () {
26
+ var _this = this;
27
+ var responseByStatus = Object.keys(this.responses)
28
+ .sort()
29
+ .reduce(function (memo, status) {
30
+ // eslint-disable-next-line no-param-reassign
31
+ memo[status] = _this.responses[status].openapi();
32
+ return memo;
33
+ }, {});
34
+ var schemata = {};
35
+ var parameters = [];
36
+ var securitySchemeId;
37
+ var uniqueNames = new Set(['controller', 'action', '_method']);
38
+ this.rpcRequests.forEach(function (rpcRequest) {
39
+ var messages = rpcRequest.parameters;
40
+ if (!securitySchemeId) {
41
+ var authorization = rpcRequest.requestHeaders['Authorization'];
42
+ if (authorization) {
43
+ var scheme = (0, util_1.parseScheme)(authorization);
44
+ securitySchemeId = scheme.schemeId;
45
+ }
46
+ }
47
+ var schema;
48
+ if (rpcRequest.contentType) {
49
+ var mimeType = rpcRequest.contentType.split(';')[0];
50
+ if (!schemata[mimeType]) {
51
+ schemata[mimeType] = new schema_1.default();
52
+ }
53
+ schema = schemata[mimeType];
54
+ }
55
+ messages.forEach(function (message) {
56
+ if (!message.name) {
57
+ return;
58
+ }
59
+ if (uniqueNames.has(message.name)) {
60
+ return;
61
+ }
62
+ uniqueNames.add(message.name);
63
+ var inLocation = openapiIn(rpcRequest, message.name);
64
+ if (inLocation !== 'path' &&
65
+ rpcRequest.requestMethod &&
66
+ bodyParamMethods.has(rpcRequest.requestMethod)) {
67
+ if (schema) {
68
+ schema.addExample(message);
69
+ }
70
+ }
71
+ else {
72
+ var parameter = {
73
+ name: message.name,
74
+ in: inLocation,
75
+ schema: (0, util_1.messageToOpenAPISchema)(message),
76
+ };
77
+ if (parameter.in === 'path') {
78
+ parameter.required = true;
79
+ }
80
+ parameters.push(parameter);
81
+ }
82
+ });
83
+ });
84
+ var response = {
85
+ responses: responseByStatus,
86
+ };
87
+ if (securitySchemeId) {
88
+ var securityObj = {};
89
+ securityObj[securitySchemeId] = [];
90
+ response.security = [securityObj];
91
+ }
92
+ var mediaTypes = Object.keys(schemata)
93
+ .sort()
94
+ .map(function (contentType) { return ({ contentType: contentType, schema: schemata[contentType].schema() }); })
95
+ .filter(function (entry) { return entry.schema; });
96
+ if (mediaTypes.length > 0) {
97
+ var content = mediaTypes.reduce(function (memo, entry) {
98
+ memo[entry.contentType] = { schema: entry.schema };
99
+ return memo;
100
+ }, {});
101
+ response.requestBody = { content: content };
102
+ }
103
+ if (parameters.length > 0) {
104
+ response.parameters = parameters.sort(function (a, b) { return a.name.localeCompare(b.name); });
105
+ }
106
+ return response;
107
+ };
108
+ Method.prototype.addRpcRequest = function (request) {
109
+ var status = request.status;
110
+ if (!this.responses[status]) {
111
+ this.responses[status] = new response_1.default(status);
112
+ }
113
+ this.rpcRequests.push(request);
114
+ var responseObj = this.responses[status];
115
+ responseObj.addRpcRequest(request);
116
+ };
117
+ return Method;
118
+ }());
119
+ exports.default = Method;
120
+ //# sourceMappingURL=method.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"method.js","sourceRoot":"","sources":["../../src/openapi/method.ts"],"names":[],"mappings":";;;;;AAEA,wDAAkC;AAElC,oDAA8B;AAC9B,+BAA6D;AAE7D,IAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;AAErE,SAAS,SAAS,CAAC,UAAsB,EAAE,IAAY;IACrD,IAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,CAAC;IACxC,6DAA6D;IAC7D,IAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAnB,CAAmB,CAAC,CAAC;IACvE,4FAA4F;IAC5F,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAI,IAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAI,IAAI,MAAG,CAAC,EAAE;QAC/D,OAAO,MAAM,CAAC;KACf;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;IAAA;QACE,gBAAW,GAAiB,EAAE,CAAC;QAC/B,cAAS,GAA6B,EAAE,CAAC;IAwG3C,CAAC;IAtGC,wBAAO,GAAP;QAAA,iBA2FC;QA1FC,IAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC;aACjD,IAAI,EAAE;aACN,MAAM,CAAC,UAAC,IAAI,EAAE,MAAc;YAC3B,6CAA6C;YAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,KAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAA8C,CAAC,CAAC;QAErD,IAAM,QAAQ,GAA2B,EAAE,CAAC;QAC5C,IAAM,UAAU,GAAkC,EAAE,CAAC;QACrD,IAAI,gBAAoC,CAAC;QAEzC,IAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,YAAY,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAC,UAAU;YAClC,IAAM,QAAQ,GAA+B,UAAU,CAAC,UAAU,CAAC;YAEnE,IAAI,CAAC,gBAAgB,EAAE;gBACrB,IAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC;gBACjE,IAAI,aAAa,EAAE;oBACjB,IAAM,MAAM,GAAG,IAAA,kBAAW,EAAC,aAAa,CAAC,CAAC;oBAC1C,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;iBACpC;aACF;YAED,IAAI,MAAc,CAAC;YACnB,IAAI,UAAU,CAAC,WAAW,EAAE;gBAC1B,IAAM,QAAQ,GAAG,UAAU,CAAC,WAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACvB,QAAQ,CAAC,QAAQ,CAAC,GAAG,IAAI,gBAAM,EAAE,CAAC;iBACnC;gBACD,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;aAC7B;YAED,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAwB;gBACxC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;oBACjB,OAAO;iBACR;gBACD,IAAI,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;oBACjC,OAAO;iBACR;gBACD,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAC9B,IAAM,UAAU,GAAG,SAAS,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;gBACvD,IACE,UAAU,KAAK,MAAM;oBACrB,UAAU,CAAC,aAAa;oBACxB,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,EAC9C;oBACA,IAAI,MAAM,EAAE;wBACV,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;qBAC5B;iBACF;qBAAM;oBACL,IAAM,SAAS,GAAG;wBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,EAAE,EAAE,UAAU;wBACd,MAAM,EAAE,IAAA,6BAAsB,EAAC,OAAO,CAAC;qBACX,CAAC;oBAC/B,IAAI,SAAS,CAAC,EAAE,KAAK,MAAM,EAAE;wBAC3B,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;qBAC3B;oBACD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;iBAC5B;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAM,QAAQ,GAAG;YACf,SAAS,EAAE,gBAAgB;SACC,CAAC;QAC/B,IAAI,gBAAgB,EAAE;YACpB,IAAM,WAAW,GAAwC,EAAE,CAAC;YAC5D,WAAW,CAAC,gBAAgB,CAAC,GAAG,EAAE,CAAC;YACnC,QAAQ,CAAC,QAAQ,GAAG,CAAC,WAAW,CAAC,CAAC;SACnC;QACD,IAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;aACrC,IAAI,EAAE;aACN,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,CAAC,EAAE,WAAW,aAAA,EAAE,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,EAAzD,CAAyD,CAAC;aAC/E,MAAM,CAAC,UAAC,KAAK,IAAK,OAAA,KAAK,CAAC,MAAM,EAAZ,CAAY,CAAC,CAAC;QACnC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,IAAM,OAAO,GAA8C,UAAU,CAAC,MAAM,CAC1E,UAAC,IAAI,EAAE,KAAK;gBACV,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;gBACnD,OAAO,IAAI,CAAC;YACd,CAAC,EACD,EAA+C,CAChD,CAAC;YACF,QAAQ,CAAC,WAAW,GAAG,EAAE,OAAO,SAAA,EAAE,CAAC;SACpC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,QAAQ,CAAC,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,EAA5B,CAA4B,CAAC,CAAC;SAC/E;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,8BAAa,GAAb,UAAc,OAAmB;QACvB,IAAA,MAAM,GAAK,OAAO,OAAZ,CAAa;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YAC3B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI,kBAAQ,CAAC,MAAM,CAAC,CAAC;SAC/C;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/B,IAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC3C,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IACH,aAAC;AAAD,CAAC,AA1GD,IA0GC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var path_1 = __importDefault(require("./path"));
7
+ var Model = /** @class */ (function () {
8
+ function Model() {
9
+ this.paths = {};
10
+ }
11
+ Model.prototype.openapi = function () {
12
+ var _this = this;
13
+ var paths = Object.keys(this.paths)
14
+ .sort()
15
+ .reduce(function (memo, path) {
16
+ // eslint-disable-next-line no-param-reassign
17
+ memo[path] = _this.paths[path].openapi();
18
+ return memo;
19
+ }, {});
20
+ return paths;
21
+ };
22
+ Model.prototype.addRpcRequest = function (rpcRequest) {
23
+ var path = Model.basePath(rpcRequest.requestPath);
24
+ if (!this.paths[path]) {
25
+ this.paths[path] = new path_1.default();
26
+ }
27
+ var pathObj = this.paths[path];
28
+ pathObj.addRpcRequest(rpcRequest);
29
+ };
30
+ Model.basePath = function (path) {
31
+ var pathTokens = path
32
+ .split('(')[0]
33
+ .split('/')
34
+ .map(function (entry) {
35
+ if (entry.match(/^:(.*)/)) {
36
+ // eslint-disable-next-line no-param-reassign
37
+ entry = "{" + entry.substring(1) + "}";
38
+ }
39
+ return entry;
40
+ });
41
+ if (pathTokens.length === 1 && path[0] === '') {
42
+ pathTokens.push('');
43
+ }
44
+ return pathTokens.join('/');
45
+ };
46
+ return Model;
47
+ }());
48
+ exports.default = Model;
49
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/openapi/model.ts"],"names":[],"mappings":";;;;;AACA,gDAA0B;AAG1B;IAAA;QACE,UAAK,GAAyB,EAAE,CAAC;IAsCnC,CAAC;IApCC,uBAAO,GAAP;QAAA,iBASC;QARC,IAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;aAClC,IAAI,EAAE;aACN,MAAM,CAAC,UAAC,IAAI,EAAE,IAAI;YACjB,6CAA6C;YAC7C,IAAI,CAAC,IAAI,CAAC,GAAG,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAA8C,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,6BAAa,GAAb,UAAc,UAAsB;QAClC,IAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,cAAI,EAAE,CAAC;SAC/B;QACD,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IAEM,cAAQ,GAAf,UAAgB,IAAY;QAC1B,IAAM,UAAU,GAAG,IAAI;aACpB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aACb,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,KAAK;YACT,IAAI,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE;gBACzB,6CAA6C;gBAC7C,KAAK,GAAG,MAAI,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,MAAG,CAAC;aACnC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACL,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7C,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrB;QACD,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC9B,CAAC;IACH,YAAC;AAAD,CAAC,AAvCD,IAuCC"}
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var method_1 = __importDefault(require("./method"));
7
+ var Path = /** @class */ (function () {
8
+ function Path() {
9
+ this.methods = {};
10
+ }
11
+ Path.prototype.openapi = function () {
12
+ var _this = this;
13
+ return Object.keys(this.methods)
14
+ .sort()
15
+ .reduce(function (memo, method) {
16
+ // eslint-disable-next-line no-param-reassign
17
+ memo[method] =
18
+ _this.methods[method].openapi();
19
+ return memo;
20
+ }, {});
21
+ };
22
+ Path.prototype.addRpcRequest = function (rpcRequest) {
23
+ var method = rpcRequest.requestMethod;
24
+ if (!method) {
25
+ return;
26
+ }
27
+ if (!this.methods[method]) {
28
+ this.methods[method] = new method_1.default();
29
+ }
30
+ var methodObj = this.methods[method];
31
+ methodObj.addRpcRequest(rpcRequest);
32
+ };
33
+ return Path;
34
+ }());
35
+ exports.default = Path;
36
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/openapi/path.ts"],"names":[],"mappings":";;;;;AACA,oDAA8B;AAG9B;IAAA;QACE,YAAO,GAA2B,EAAE,CAAC;IAyBvC,CAAC;IAvBC,sBAAO,GAAP;QAAA,iBASC;QARC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;aAC7B,IAAI,EAAE;aACN,MAAM,CAAC,UAAC,IAAI,EAAE,MAAc;YAC3B,6CAA6C;YAC7C,IAAI,CAAC,MAA+B,CAAC;gBACnC,KAAI,CAAC,OAAO,CAAC,MAA+B,CAAC,CAAC,OAAO,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAA8D,CAAC,CAAC;IACvE,CAAC;IAED,4BAAa,GAAb,UAAc,UAAsB;QAClC,IAAM,MAAM,GAAG,UAAU,CAAC,aAAa,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACzB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,gBAAM,EAAE,CAAC;SACrC;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IACH,WAAC;AAAD,CAAC,AA1BD,IA0BC"}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __generator = (this && this.__generator) || function (thisArg, body) {
12
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
13
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
14
+ function verb(n) { return function (v) { return step([n, v]); }; }
15
+ function step(op) {
16
+ if (f) throw new TypeError("Generator is already executing.");
17
+ while (_) try {
18
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
19
+ if (y = 0, t) op = [op[0] & 2, t.value];
20
+ switch (op[0]) {
21
+ case 0: case 1: t = op; break;
22
+ case 4: _.label++; return { value: op[1], done: false };
23
+ case 5: _.label++; y = op[1]; op = [0]; continue;
24
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
25
+ default:
26
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
27
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
28
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
29
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
30
+ if (t[2]) _.ops.pop();
31
+ _.trys.pop(); continue;
32
+ }
33
+ op = body.call(thisArg, _);
34
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
35
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
36
+ }
37
+ };
38
+ var __importDefault = (this && this.__importDefault) || function (mod) {
39
+ return (mod && mod.__esModule) ? mod : { "default": mod };
40
+ };
41
+ Object.defineProperty(exports, "__esModule", { value: true });
42
+ var js_yaml_1 = require("js-yaml");
43
+ var url_1 = require("url");
44
+ var http_1 = __importDefault(require("http"));
45
+ var https_1 = __importDefault(require("https"));
46
+ var promises_1 = require("fs/promises");
47
+ var URLLoader = function (protocol) {
48
+ return function (url) {
49
+ return new Promise(function (resolve, reject) {
50
+ protocol
51
+ .get(url)
52
+ .on('response', function (response) {
53
+ if (response.statusCode !== 200) {
54
+ return reject(response.statusCode + " " + response.statusMessage);
55
+ }
56
+ var data = [];
57
+ response
58
+ .on('data', function (chunk) {
59
+ data.push(Buffer.from(chunk));
60
+ })
61
+ .on('end', function () {
62
+ resolve(Buffer.concat(data));
63
+ });
64
+ })
65
+ .on('error', reject);
66
+ });
67
+ };
68
+ };
69
+ var FileLoader = function (url) {
70
+ return (0, promises_1.readFile)(url.pathname);
71
+ };
72
+ var ProtocolLoader = {
73
+ 'http:': URLLoader(http_1.default),
74
+ 'https:': URLLoader(https_1.default),
75
+ 'file:': FileLoader,
76
+ };
77
+ var fetch = function (urlStr) {
78
+ var url = new url_1.URL(urlStr);
79
+ var loader = ProtocolLoader[url.protocol];
80
+ if (!loader) {
81
+ throw new Error("No schema loader for protocol " + url.protocol);
82
+ }
83
+ return loader(url);
84
+ };
85
+ var SchemaCache = {};
86
+ var schemaCache = function (key, fn) { return __awaiter(void 0, void 0, void 0, function () {
87
+ var cachedResult, result;
88
+ return __generator(this, function (_a) {
89
+ switch (_a.label) {
90
+ case 0:
91
+ cachedResult = SchemaCache[key];
92
+ if (cachedResult) {
93
+ return [2 /*return*/, cachedResult];
94
+ }
95
+ return [4 /*yield*/, fn(key)];
96
+ case 1:
97
+ result = _a.sent();
98
+ SchemaCache[key] = result;
99
+ return [2 /*return*/, result];
100
+ }
101
+ });
102
+ }); };
103
+ var fetchSchema = function (sourceURL) { return __awaiter(void 0, void 0, void 0, function () {
104
+ return __generator(this, function (_a) {
105
+ return [2 /*return*/, schemaCache(sourceURL, function (sourceURL) { return __awaiter(void 0, void 0, void 0, function () {
106
+ var data;
107
+ return __generator(this, function (_a) {
108
+ switch (_a.label) {
109
+ case 0: return [4 /*yield*/, fetch(sourceURL)];
110
+ case 1:
111
+ data = _a.sent();
112
+ return [2 /*return*/, (0, js_yaml_1.load)(data.toString())];
113
+ }
114
+ });
115
+ }); })];
116
+ });
117
+ }); };
118
+ var lookup = function (host, openapiSchemata) { return __awaiter(void 0, void 0, void 0, function () {
119
+ var sourceURL;
120
+ return __generator(this, function (_a) {
121
+ switch (_a.label) {
122
+ case 0:
123
+ sourceURL = openapiSchemata[host];
124
+ if (!sourceURL) {
125
+ throw new Error("No OpenAPI schema URL configured for host " + host + ". Available hosts are: " + Object.keys(openapiSchemata).join(', '));
126
+ }
127
+ return [4 /*yield*/, fetchSchema(sourceURL)];
128
+ case 1: return [2 /*return*/, _a.sent()];
129
+ }
130
+ });
131
+ }); };
132
+ exports.default = lookup;
133
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/openapi/provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAA+B;AAC/B,2BAA0B;AAE1B,8CAA6C;AAC7C,gDAA0B;AAC1B,wCAAuC;AAIvC,IAAM,SAAS,GAAG,UAAC,QAAa;IAC9B,OAAO,UAAC,GAAQ;QACd,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;YACjC,QAAQ;iBACL,GAAG,CAAC,GAAG,CAAC;iBACR,EAAE,CAAC,UAAU,EAAE,UAAC,QAAyB;gBACxC,IAAI,QAAQ,CAAC,UAAU,KAAK,GAAG,EAAE;oBAC/B,OAAO,MAAM,CAAI,QAAQ,CAAC,UAAU,SAAI,QAAQ,CAAC,aAAe,CAAC,CAAC;iBACnE;gBAED,IAAM,IAAI,GAAa,EAAE,CAAC;gBAC1B,QAAQ;qBACL,EAAE,CAAC,MAAM,EAAE,UAAC,KAAa;oBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBAChC,CAAC,CAAC;qBACD,EAAE,CAAC,KAAK,EAAE;oBACT,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACP,CAAC,CAAC;iBACD,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,IAAM,UAAU,GAAG,UAAC,GAAQ;IAC1B,OAAO,IAAA,mBAAQ,EAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF,IAAM,cAAc,GAA2B;IAC7C,OAAO,EAAE,SAAS,CAAC,cAAI,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC,eAAK,CAAC;IAC1B,OAAO,EAAE,UAAU;CACpB,CAAC;AAEF,IAAM,KAAK,GAAG,UAAC,MAAc;IAC3B,IAAM,GAAG,GAAG,IAAI,SAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAM,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC5C,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,IAAI,KAAK,CAAC,mCAAiC,GAAG,CAAC,QAAU,CAAC,CAAC;KAClE;IACD,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;AACrB,CAAC,CAAC;AAEF,IAAM,WAAW,GAAuC,EAAE,CAAC;AAC3D,IAAM,WAAW,GAAG,UAAO,GAAW,EAAE,EAAgD;;;;;gBAChF,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,YAAY,EAAE;oBAChB,sBAAO,YAAY,EAAC;iBACrB;gBAEc,qBAAM,EAAE,CAAC,GAAG,CAAC,EAAA;;gBAAtB,MAAM,GAAG,SAAa;gBAC5B,WAAW,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC;gBAC1B,sBAAO,MAAM,EAAC;;;KACf,CAAC;AAEF,IAAM,WAAW,GAAG,UAAO,SAAiB;;QAC1C,sBAAO,WAAW,CAAC,SAAS,EAAE,UAAO,SAAiB;;;;gCACvC,qBAAM,KAAK,CAAC,SAAS,CAAC,EAAA;;4BAA7B,IAAI,GAAG,SAAsB;4BACnC,sBAAO,IAAA,cAAI,EAAC,IAAI,CAAC,QAAQ,EAAE,CAAuB,EAAC;;;iBACpD,CAAC,EAAC;;KACJ,CAAC;AAEF,IAAM,MAAM,GAAG,UACb,IAAY,EACZ,eAAuC;;;;;gBAEjC,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,SAAS,EAAE;oBACd,MAAM,IAAI,KAAK,CACb,+CAA6C,IAAI,+BAA0B,MAAM,CAAC,IAAI,CACpF,eAAe,CAChB,CAAC,IAAI,CAAC,IAAI,CAAG,CACf,CAAC;iBACH;gBACM,qBAAM,WAAW,CAAC,SAAS,CAAC,EAAA;oBAAnC,sBAAO,SAA4B,EAAC;;;KACrC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var __read = (this && this.__read) || function (o, n) {
3
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
4
+ if (!m) return o;
5
+ var i = m.call(o), r, ar = [], e;
6
+ try {
7
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
8
+ }
9
+ catch (error) { e = { error: error }; }
10
+ finally {
11
+ try {
12
+ if (r && !r.done && (m = i["return"])) m.call(i);
13
+ }
14
+ finally { if (e) throw e.error; }
15
+ }
16
+ return ar;
17
+ };
18
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
19
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
20
+ if (ar || !(i in from)) {
21
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
22
+ ar[i] = from[i];
23
+ }
24
+ }
25
+ return to.concat(ar || Array.prototype.slice.call(from));
26
+ };
27
+ var __importDefault = (this && this.__importDefault) || function (mod) {
28
+ return (mod && mod.__esModule) ? mod : { "default": mod };
29
+ };
30
+ Object.defineProperty(exports, "__esModule", { value: true });
31
+ var statusCodes_1 = __importDefault(require("./statusCodes"));
32
+ var Response = /** @class */ (function () {
33
+ function Response(statusCode) {
34
+ this.statusCode = statusCode;
35
+ this.rpcRequests = [];
36
+ }
37
+ Response.prototype.openapi = function () {
38
+ var _this = this;
39
+ // eslint-disable-next-line arrow-body-style
40
+ var contentTypes = function () {
41
+ return _this.rpcRequests
42
+ .map(function (rpcRequest) { return rpcRequest.contentType; })
43
+ .filter(function (ct) { return ct; })
44
+ .map(function (ct) { return ct.split(';')[0]; });
45
+ };
46
+ var content = __spreadArray([], __read(new Set(contentTypes())), false).sort().reduce(function (memo, mimeType) {
47
+ // eslint-disable-next-line no-param-reassign
48
+ memo[mimeType] = {};
49
+ return memo;
50
+ }, {});
51
+ return { content: content, description: statusCodes_1.default[this.statusCode] };
52
+ };
53
+ Response.prototype.addRpcRequest = function (rpcRequest) {
54
+ this.rpcRequests.push(rpcRequest);
55
+ };
56
+ return Response;
57
+ }());
58
+ exports.default = Response;
59
+ //# sourceMappingURL=response.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.js","sourceRoot":"","sources":["../../src/openapi/response.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,8DAAwC;AAIxC;IAGE,kBAAmB,UAAkB;QAAlB,eAAU,GAAV,UAAU,CAAQ;QAFrC,gBAAW,GAAiB,EAAE,CAAC;IAES,CAAC;IAEzC,0BAAO,GAAP;QAAA,iBAcC;QAbC,4CAA4C;QAC5C,IAAM,YAAY,GAAG;YACnB,OAAO,KAAI,CAAC,WAAW;iBACpB,GAAG,CAAC,UAAC,UAAU,IAAK,OAAA,UAAU,CAAC,WAAW,EAAtB,CAAsB,CAAC;iBAC3C,MAAM,CAAC,UAAC,EAAE,IAAK,OAAA,EAAE,EAAF,CAAE,CAAC;iBAClB,GAAG,CAAC,UAAC,EAAE,IAAK,OAAA,EAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAjB,CAAiB,CAAC,CAAC;QACpC,CAAC,CAAC;QACF,IAAM,OAAO,GAAG,yBAAI,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC,UAAE,IAAI,EAAE,CAAC,MAAM,CAAC,UAAC,IAAI,EAAE,QAAQ;YACxE,6CAA6C;YAC7C,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC;QACd,CAAC,EAAE,EAA+C,CAAC,CAAC;QACpD,OAAO,EAAE,OAAO,SAAA,EAAE,WAAW,EAAE,qBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;IAChE,CAAC;IAED,gCAAa,GAAb,UAAc,UAAsB;QAClC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;IACH,eAAC;AAAD,CAAC,AAxBD,IAwBC"}