@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.
- package/LICENSE.txt +25 -0
- package/README.md +122 -0
- package/built/algorithms/dataStructures/graph/Graph.js +155 -0
- package/built/algorithms/dataStructures/graph/Graph.js.map +1 -0
- package/built/algorithms/dataStructures/graph/GraphEdge.js +27 -0
- package/built/algorithms/dataStructures/graph/GraphEdge.js.map +1 -0
- package/built/algorithms/dataStructures/graph/GraphVertex.js +79 -0
- package/built/algorithms/dataStructures/graph/GraphVertex.js.map +1 -0
- package/built/algorithms/dataStructures/linked-list/LinkedList.js +134 -0
- package/built/algorithms/dataStructures/linked-list/LinkedList.js.map +1 -0
- package/built/algorithms/dataStructures/linked-list/LinkedListNode.js +16 -0
- package/built/algorithms/dataStructures/linked-list/LinkedListNode.js.map +1 -0
- package/built/algorithms/graph/depth-first-search/index.js +49 -0
- package/built/algorithms/graph/depth-first-search/index.js.map +1 -0
- package/built/algorithms/graph/detect-cycle/index.js +77 -0
- package/built/algorithms/graph/detect-cycle/index.js.map +1 -0
- package/built/algorithms/utils/Comparator.js +35 -0
- package/built/algorithms/utils/Comparator.js.map +1 -0
- package/built/analyzer/recordSecrets.js +17 -0
- package/built/analyzer/recordSecrets.js.map +1 -0
- package/built/analyzer/secretsRegexes.js +13 -0
- package/built/analyzer/secretsRegexes.js.map +1 -0
- package/built/analyzer/secretsRegexesData.json +51 -0
- package/built/check.js +47 -0
- package/built/check.js.map +1 -0
- package/built/checkInstance.js +69 -0
- package/built/checkInstance.js.map +1 -0
- package/built/cli/ci/command.js +183 -0
- package/built/cli/ci/command.js.map +1 -0
- package/built/cli/ci/options.js +3 -0
- package/built/cli/ci/options.js.map +1 -0
- package/built/cli/exitCode.js +11 -0
- package/built/cli/exitCode.js.map +1 -0
- package/built/cli/progressReporter.js +16 -0
- package/built/cli/progressReporter.js.map +1 -0
- package/built/cli/resolveAppId.js +83 -0
- package/built/cli/resolveAppId.js.map +1 -0
- package/built/cli/scan/command.js +174 -0
- package/built/cli/scan/command.js.map +1 -0
- package/built/cli/scan/options.js +3 -0
- package/built/cli/scan/options.js.map +1 -0
- package/built/cli/scan/scanner.js +154 -0
- package/built/cli/scan/scanner.js.map +1 -0
- package/built/cli/scan.js +103 -0
- package/built/cli/scan.js.map +1 -0
- package/built/cli/scanArgs.js +26 -0
- package/built/cli/scanArgs.js.map +1 -0
- package/built/cli/scanOptions.js +3 -0
- package/built/cli/scanOptions.js.map +1 -0
- package/built/cli/upload/command.js +95 -0
- package/built/cli/upload/command.js.map +1 -0
- package/built/cli/upload/options.js +3 -0
- package/built/cli/upload/options.js.map +1 -0
- package/built/cli/validateFile.js +66 -0
- package/built/cli/validateFile.js.map +1 -0
- package/built/cli.js +32 -0
- package/built/cli.js.map +1 -0
- package/built/configuration/configurationProvider.js +169 -0
- package/built/configuration/configurationProvider.js.map +1 -0
- package/built/configuration/schema/match-pattern-config.json +32 -0
- package/built/configuration/schema/options.json +193 -0
- package/built/configuration/types/checkConfig.js +3 -0
- package/built/configuration/types/checkConfig.js.map +1 -0
- package/built/configuration/types/configuration.js +3 -0
- package/built/configuration/types/configuration.js.map +1 -0
- package/built/configuration/types/matchEventConfig.js +3 -0
- package/built/configuration/types/matchEventConfig.js.map +1 -0
- package/built/configuration/types/matchPatternConfig.js +3 -0
- package/built/configuration/types/matchPatternConfig.js.map +1 -0
- package/built/database/index.js +259 -0
- package/built/database/index.js.map +1 -0
- package/built/database/visit.js +80 -0
- package/built/database/visit.js.map +1 -0
- package/built/errors.js +35 -0
- package/built/errors.js.map +1 -0
- package/built/findings.js +15 -0
- package/built/findings.js.map +1 -0
- package/built/integration/appland/fetchStatus.js +51 -0
- package/built/integration/appland/fetchStatus.js.map +1 -0
- package/built/integration/appland/upload.js +193 -0
- package/built/integration/appland/upload.js.map +1 -0
- package/built/integration/github/commitStatus.js +19 -0
- package/built/integration/github/commitStatus.js.map +1 -0
- package/built/integration/vars.js +68 -0
- package/built/integration/vars.js.map +1 -0
- package/built/openapi/index.js +100 -0
- package/built/openapi/index.js.map +1 -0
- package/built/openapi/method.js +120 -0
- package/built/openapi/method.js.map +1 -0
- package/built/openapi/model.js +49 -0
- package/built/openapi/model.js.map +1 -0
- package/built/openapi/path.js +36 -0
- package/built/openapi/path.js.map +1 -0
- package/built/openapi/provider.js +133 -0
- package/built/openapi/provider.js.map +1 -0
- package/built/openapi/response.js +59 -0
- package/built/openapi/response.js.map +1 -0
- package/built/openapi/rpcRequest.js +130 -0
- package/built/openapi/rpcRequest.js.map +1 -0
- package/built/openapi/schema.js +42 -0
- package/built/openapi/schema.js.map +1 -0
- package/built/openapi/securitySchemes.js +32 -0
- package/built/openapi/securitySchemes.js.map +1 -0
- package/built/openapi/statusCodes.js +68 -0
- package/built/openapi/statusCodes.js.map +1 -0
- package/built/openapi/util.js +91 -0
- package/built/openapi/util.js.map +1 -0
- package/built/report/appMapMetadata.js +2 -0
- package/built/report/appMapMetadata.js.map +1 -0
- package/built/report/findingSummary.js +3 -0
- package/built/report/findingSummary.js.map +1 -0
- package/built/report/findingsReport.js +37 -0
- package/built/report/findingsReport.js.map +1 -0
- package/built/report/scanResults.js +103 -0
- package/built/report/scanResults.js.map +1 -0
- package/built/report/scanSummary.js +3 -0
- package/built/report/scanSummary.js.map +1 -0
- package/built/report/summaryReport.js +70 -0
- package/built/report/summaryReport.js.map +1 -0
- package/built/ruleChecker.js +260 -0
- package/built/ruleChecker.js.map +1 -0
- package/built/rules/authzBeforeAuthn.js +82 -0
- package/built/rules/authzBeforeAuthn.js.map +1 -0
- package/built/rules/circularDependency.js +227 -0
- package/built/rules/circularDependency.js.map +1 -0
- package/built/rules/http500.js +18 -0
- package/built/rules/http500.js.map +1 -0
- package/built/rules/illegalPackageDependency.js +38 -0
- package/built/rules/illegalPackageDependency.js.map +1 -0
- package/built/rules/incompatibleHttpClientRequest.js +96 -0
- package/built/rules/incompatibleHttpClientRequest.js.map +1 -0
- package/built/rules/insecureCompare.js +59 -0
- package/built/rules/insecureCompare.js.map +1 -0
- package/built/rules/jobNotCancelled.js +72 -0
- package/built/rules/jobNotCancelled.js.map +1 -0
- package/built/rules/lib/hasParameterOrReceiver.js +11 -0
- package/built/rules/lib/hasParameterOrReceiver.js.map +1 -0
- package/built/rules/lib/matchEvent.js +32 -0
- package/built/rules/lib/matchEvent.js.map +1 -0
- package/built/rules/lib/matchPattern.js +28 -0
- package/built/rules/lib/matchPattern.js.map +1 -0
- package/built/rules/lib/rpcWithoutProtection.js +40 -0
- package/built/rules/lib/rpcWithoutProtection.js.map +1 -0
- package/built/rules/missingAuthentication.js +65 -0
- package/built/rules/missingAuthentication.js.map +1 -0
- package/built/rules/missingContentType.js +27 -0
- package/built/rules/missingContentType.js.map +1 -0
- package/built/rules/nPlusOneQuery.js +84 -0
- package/built/rules/nPlusOneQuery.js.map +1 -0
- package/built/rules/queryFromInvalidPackage.js +37 -0
- package/built/rules/queryFromInvalidPackage.js.map +1 -0
- package/built/rules/queryFromView.js +29 -0
- package/built/rules/queryFromView.js.map +1 -0
- package/built/rules/rpcWithoutCircuitBreaker.js +97 -0
- package/built/rules/rpcWithoutCircuitBreaker.js.map +1 -0
- package/built/rules/saveWithoutValidation.js +27 -0
- package/built/rules/saveWithoutValidation.js.map +1 -0
- package/built/rules/secretInLog.js +76 -0
- package/built/rules/secretInLog.js.map +1 -0
- package/built/rules/slowFunctionCall.js +37 -0
- package/built/rules/slowFunctionCall.js.map +1 -0
- package/built/rules/slowHttpServerRequest.js +24 -0
- package/built/rules/slowHttpServerRequest.js.map +1 -0
- package/built/rules/slowQuery.js +23 -0
- package/built/rules/slowQuery.js.map +1 -0
- package/built/rules/tooManyJoins.js +77 -0
- package/built/rules/tooManyJoins.js.map +1 -0
- package/built/rules/tooManyUpdates.js +143 -0
- package/built/rules/tooManyUpdates.js.map +1 -0
- package/built/rules/unbatchedMaterializedQuery.js +65 -0
- package/built/rules/unbatchedMaterializedQuery.js.map +1 -0
- package/built/rules/updateInGetRequest.js +66 -0
- package/built/rules/updateInGetRequest.js.map +1 -0
- package/built/rules/util.js +102 -0
- package/built/rules/util.js.map +1 -0
- package/built/sampleConfig/bike_index.yml +10 -0
- package/built/sampleConfig/default.yml +19 -0
- package/built/sampleConfig/railsSampleApp6thEd.yml +29 -0
- package/built/sampleConfig/solidus.yml +31 -0
- package/built/scope/commandScope.js +156 -0
- package/built/scope/commandScope.js.map +1 -0
- package/built/scope/httpClientRequestScope.js +105 -0
- package/built/scope/httpClientRequestScope.js.map +1 -0
- package/built/scope/httpServerRequestScope.js +105 -0
- package/built/scope/httpServerRequestScope.js.map +1 -0
- package/built/scope/rootScope.js +105 -0
- package/built/scope/rootScope.js.map +1 -0
- package/built/scope/scopeImpl.js +88 -0
- package/built/scope/scopeImpl.js.map +1 -0
- package/built/scope/scopeIterator.js +21 -0
- package/built/scope/scopeIterator.js.map +1 -0
- package/built/scope/sqlTransactionScope.js +175 -0
- package/built/scope/sqlTransactionScope.js.map +1 -0
- package/built/wellKnownLabels.js +9 -0
- package/built/wellKnownLabels.js.map +1 -0
- 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":"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"}
|
|
@@ -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":"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"}
|
|
@@ -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"}
|